diff --git a/AWS.html b/AWS.html index 5f8b8c7b26..13c91ba767 100644 --- a/AWS.html +++ b/AWS.html @@ -7317,7 +7317,7 @@

- + aws/sns_sms.cr diff --git a/AWS/SnsSms.html b/AWS/SnsSms.html index 776f326a24..337782e691 100644 --- a/AWS/SnsSms.html +++ b/AWS/SnsSms.html @@ -7333,7 +7333,7 @@

- + aws/sns_sms.cr @@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
diff --git a/AmberTech.html b/AmberTech.html index 47453b7651..c874c6d7ac 100644 --- a/AmberTech.html +++ b/AmberTech.html @@ -7317,7 +7317,7 @@

- + amber_tech/grandview_models.cr diff --git a/AmberTech/DevInfo.html b/AmberTech/DevInfo.html index b470712969..1a896bdfb5 100644 --- a/AmberTech/DevInfo.html +++ b/AmberTech/DevInfo.html @@ -7347,7 +7347,7 @@

- + amber_tech/grandview_models.cr @@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
diff --git a/AmberTech/Devices.html b/AmberTech/Devices.html index 9ff04db532..d3fd97e9c7 100644 --- a/AmberTech/Devices.html +++ b/AmberTech/Devices.html @@ -7347,7 +7347,7 @@

- + amber_tech/grandview_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/AmberTech/Grandview.html b/AmberTech/Grandview.html index 32a6c3f3f0..082f408707 100644 --- a/AmberTech/Grandview.html +++ b/AmberTech/Grandview.html @@ -7335,7 +7335,7 @@

- + amber_tech/grandview.cr @@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
diff --git a/AmberTech/Status.html b/AmberTech/Status.html index 4a861b3576..7913dd6ed7 100644 --- a/AmberTech/Status.html +++ b/AmberTech/Status.html @@ -7317,7 +7317,7 @@

- + amber_tech/grandview_models.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/AmberTech/StatusResp.html b/AmberTech/StatusResp.html index 5ed3015267..937dc0a574 100644 --- a/AmberTech/StatusResp.html +++ b/AmberTech/StatusResp.html @@ -7347,7 +7347,7 @@

- + amber_tech/grandview_models.cr @@ -7464,7 +7464,7 @@


- [View source] + [View source]
@@ -7496,7 +7496,7 @@


- [View source] + [View source]
diff --git a/Amx.html b/Amx.html index b4d25d3773..7da490b01a 100644 --- a/Amx.html +++ b/Amx.html @@ -7317,7 +7317,7 @@

- + amx/svsi/n_series_decoder.cr diff --git a/Amx/Svsi.html b/Amx/Svsi.html index d1e6876553..2a4f595eb0 100644 --- a/Amx/Svsi.html +++ b/Amx/Svsi.html @@ -7317,7 +7317,7 @@

- + amx/svsi/n_series_decoder.cr diff --git a/Amx/Svsi/NSeriesDecoder.html b/Amx/Svsi/NSeriesDecoder.html index 51cc43bb5d..bd1468d884 100644 --- a/Amx/Svsi/NSeriesDecoder.html +++ b/Amx/Svsi/NSeriesDecoder.html @@ -7335,7 +7335,7 @@

- + amx/svsi/n_series_decoder.cr @@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7932,7 +7932,7 @@


- [View source] + [View source]
@@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7964,7 +7964,7 @@


- [View source] + [View source]
@@ -7980,7 +7980,7 @@


- [View source] + [View source]
@@ -7996,7 +7996,7 @@


- [View source] + [View source]
diff --git a/Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html b/Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html index fcb4b1798e..dd1c5dc477 100644 --- a/Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html +++ b/Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html @@ -7317,7 +7317,7 @@

- + amx/svsi/n_series_decoder.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Amx/Svsi/NSeriesEncoder.html b/Amx/Svsi/NSeriesEncoder.html index 27525d8b74..53b73c2373 100644 --- a/Amx/Svsi/NSeriesEncoder.html +++ b/Amx/Svsi/NSeriesEncoder.html @@ -7335,14 +7335,14 @@

- + amx/svsi/n_series_encoder.cr
- + amx/svsi/n_series_switcher.cr @@ -8062,7 +8062,7 @@


- [View source] + [View source]
@@ -8078,7 +8078,7 @@


- [View source] + [View source]
@@ -8094,7 +8094,7 @@


- [View source] + [View source]
@@ -8110,7 +8110,7 @@


- [View source] + [View source]
@@ -8126,7 +8126,7 @@


- [View source] + [View source]
@@ -8142,7 +8142,7 @@


- [View source] + [View source]
@@ -8158,7 +8158,7 @@


- [View source] + [View source]
@@ -8174,7 +8174,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8206,7 +8206,7 @@


- [View source] + [View source]
@@ -8222,7 +8222,7 @@


- [View source] + [View source]
@@ -8238,7 +8238,7 @@


- [View source] + [View source]
@@ -8254,7 +8254,7 @@


- [View source] + [View source]
@@ -8270,7 +8270,7 @@


- [View source] + [View source]
@@ -8286,7 +8286,7 @@


- [View source] + [View source]
@@ -8302,7 +8302,7 @@


- [View source] + [View source]
@@ -8318,7 +8318,7 @@


- [View source] + [View source]
@@ -8334,7 +8334,7 @@


- [View source] + [View source]
@@ -8350,7 +8350,7 @@


- [View source] + [View source]
@@ -8366,7 +8366,7 @@


- [View source] + [View source]
@@ -8382,7 +8382,7 @@


- [View source] + [View source]
@@ -8398,7 +8398,7 @@


- [View source] + [View source]
@@ -8414,7 +8414,7 @@


- [View source] + [View source]
@@ -8430,7 +8430,7 @@


- [View source] + [View source]
@@ -8446,7 +8446,7 @@


- [View source] + [View source]
@@ -8462,7 +8462,7 @@


- [View source] + [View source]
@@ -8478,7 +8478,7 @@


- [View source] + [View source]
@@ -8494,7 +8494,7 @@


- [View source] + [View source]
@@ -8510,7 +8510,7 @@


- [View source] + [View source]
@@ -8526,7 +8526,7 @@


- [View source] + [View source]
@@ -8542,7 +8542,7 @@


- [View source] + [View source]
@@ -8558,7 +8558,7 @@


- [View source] + [View source]
@@ -8574,7 +8574,7 @@


- [View source] + [View source]
@@ -8590,7 +8590,7 @@


- [View source] + [View source]
@@ -8606,7 +8606,7 @@


- [View source] + [View source]
@@ -8622,7 +8622,7 @@


- [View source] + [View source]
@@ -8638,7 +8638,7 @@


- [View source] + [View source]
@@ -8654,7 +8654,7 @@


- [View source] + [View source]
@@ -8670,7 +8670,7 @@


- [View source] + [View source]
@@ -8686,7 +8686,7 @@


- [View source] + [View source]
@@ -8702,7 +8702,7 @@


- [View source] + [View source]
@@ -8718,7 +8718,7 @@


- [View source] + [View source]
@@ -8734,7 +8734,7 @@


- [View source] + [View source]
@@ -8750,7 +8750,7 @@


- [View source] + [View source]
@@ -8766,7 +8766,7 @@


- [View source] + [View source]
@@ -8782,7 +8782,7 @@


- [View source] + [View source]
@@ -8798,7 +8798,7 @@


- [View source] + [View source]
@@ -8814,7 +8814,7 @@


- [View source] + [View source]
@@ -8830,7 +8830,7 @@


- [View source] + [View source]
@@ -8846,7 +8846,7 @@


- [View source] + [View source]
@@ -8862,7 +8862,7 @@


- [View source] + [View source]
@@ -8887,7 +8887,7 @@


- [View source] + [View source]
@@ -8903,7 +8903,7 @@


- [View source] + [View source]
@@ -8919,7 +8919,7 @@


- [View source] + [View source]
@@ -8935,7 +8935,7 @@


- [View source] + [View source]
@@ -8951,7 +8951,7 @@


- [View source] + [View source]
@@ -8967,7 +8967,7 @@


- [View source] + [View source]
@@ -8983,7 +8983,7 @@


- [View source] + [View source]
@@ -8999,7 +8999,7 @@


- [View source] + [View source]
@@ -9015,7 +9015,7 @@


- [View source] + [View source]
@@ -9031,7 +9031,7 @@


- [View source] + [View source]
@@ -9047,7 +9047,7 @@


- [View source] + [View source]
@@ -9063,7 +9063,7 @@


- [View source] + [View source]
@@ -9079,7 +9079,7 @@


- [View source] + [View source]
@@ -9095,7 +9095,7 @@


- [View source] + [View source]
@@ -9111,7 +9111,7 @@


- [View source] + [View source]
@@ -9127,7 +9127,7 @@


- [View source] + [View source]
@@ -9143,7 +9143,7 @@


- [View source] + [View source]
@@ -9159,7 +9159,7 @@


- [View source] + [View source]
@@ -9175,7 +9175,7 @@


- [View source] + [View source]
@@ -9191,7 +9191,7 @@


- [View source] + [View source]
@@ -9207,7 +9207,7 @@


- [View source] + [View source]
@@ -9223,7 +9223,7 @@


- [View source] + [View source]
@@ -9239,7 +9239,7 @@


- [View source] + [View source]
@@ -9255,7 +9255,7 @@


- [View source] + [View source]
@@ -9271,7 +9271,7 @@


- [View source] + [View source]
@@ -9287,7 +9287,7 @@


- [View source] + [View source]
@@ -9303,7 +9303,7 @@


- [View source] + [View source]
@@ -9319,7 +9319,7 @@


- [View source] + [View source]
@@ -9335,7 +9335,7 @@


- [View source] + [View source]
@@ -9351,7 +9351,7 @@


- [View source] + [View source]
@@ -9367,7 +9367,7 @@


- [View source] + [View source]
@@ -9383,7 +9383,7 @@


- [View source] + [View source]
@@ -9399,7 +9399,7 @@


- [View source] + [View source]
@@ -9415,7 +9415,7 @@


- [View source] + [View source]
@@ -9431,7 +9431,7 @@


- [View source] + [View source]
@@ -9447,7 +9447,7 @@


- [View source] + [View source]
@@ -9463,7 +9463,7 @@


- [View source] + [View source]
@@ -9479,7 +9479,7 @@


- [View source] + [View source]
@@ -9495,7 +9495,7 @@


- [View source] + [View source]
@@ -9511,7 +9511,7 @@


- [View source] + [View source]
@@ -9527,7 +9527,7 @@


- [View source] + [View source]
@@ -9543,7 +9543,7 @@


- [View source] + [View source]
@@ -9559,7 +9559,7 @@


- [View source] + [View source]
@@ -9575,7 +9575,7 @@


- [View source] + [View source]
@@ -9591,7 +9591,7 @@


- [View source] + [View source]
@@ -9607,7 +9607,7 @@


- [View source] + [View source]
@@ -9623,7 +9623,7 @@


- [View source] + [View source]
@@ -9639,7 +9639,7 @@


- [View source] + [View source]
@@ -9655,7 +9655,7 @@


- [View source] + [View source]
diff --git a/Amx/Svsi/NSeriesEncoder/InOut.html b/Amx/Svsi/NSeriesEncoder/InOut.html index f7b986c953..78403a096a 100644 --- a/Amx/Svsi/NSeriesEncoder/InOut.html +++ b/Amx/Svsi/NSeriesEncoder/InOut.html @@ -7327,7 +7327,7 @@

- + amx/svsi/n_series_switcher.cr diff --git a/Amx/Svsi/NSeriesEncoder/Input.html b/Amx/Svsi/NSeriesEncoder/Input.html index b03e0640ec..c834f716b0 100644 --- a/Amx/Svsi/NSeriesEncoder/Input.html +++ b/Amx/Svsi/NSeriesEncoder/Input.html @@ -7317,7 +7317,7 @@

- + amx/svsi/n_series_encoder.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Amx/Svsi/NSeriesEncoder/Response.html b/Amx/Svsi/NSeriesEncoder/Response.html index 29baa245f0..2e75a441e0 100644 --- a/Amx/Svsi/NSeriesEncoder/Response.html +++ b/Amx/Svsi/NSeriesEncoder/Response.html @@ -7317,7 +7317,7 @@

- + amx/svsi/n_series_encoder.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Amx/Svsi/VirtualSwitcher.html b/Amx/Svsi/VirtualSwitcher.html index 7813ccf8cf..1c298ad768 100644 --- a/Amx/Svsi/VirtualSwitcher.html +++ b/Amx/Svsi/VirtualSwitcher.html @@ -7333,7 +7333,7 @@

- + amx/svsi/virtual_switcher.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
diff --git a/Ashrae.html b/Ashrae.html index 97f18d11c2..adf3b8828b 100644 --- a/Ashrae.html +++ b/Ashrae.html @@ -7317,7 +7317,7 @@

- + ashrae/bacnet_models.cr diff --git a/Ashrae/BACnet.html b/Ashrae/BACnet.html index 3f9d3eb187..061b843f2f 100644 --- a/Ashrae/BACnet.html +++ b/Ashrae/BACnet.html @@ -7333,7 +7333,7 @@

- + ashrae/bacnet.cr @@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
diff --git a/Ashrae/BACnet/DeviceInfo.html b/Ashrae/BACnet/DeviceInfo.html index 60321e1c7a..0ac96295b8 100644 --- a/Ashrae/BACnet/DeviceInfo.html +++ b/Ashrae/BACnet/DeviceInfo.html @@ -7327,7 +7327,7 @@

- + ashrae/bacnet.cr diff --git a/Ashrae/BACnet/ObjectType.html b/Ashrae/BACnet/ObjectType.html index 97e651f0b3..d37181490e 100644 --- a/Ashrae/BACnet/ObjectType.html +++ b/Ashrae/BACnet/ObjectType.html @@ -7327,7 +7327,7 @@

- + ashrae/bacnet.cr diff --git a/Ashrae/BACnetDataPoints.html b/Ashrae/BACnetDataPoints.html index 9243fa2d6e..4ad7aa41b0 100644 --- a/Ashrae/BACnetDataPoints.html +++ b/Ashrae/BACnetDataPoints.html @@ -7319,7 +7319,7 @@

- + ashrae/bacnet_datapoints.cr @@ -7466,7 +7466,7 @@


- [View source] + [View source]
diff --git a/Ashrae/DeviceAddress.html b/Ashrae/DeviceAddress.html index 65cddd37de..fb6c89540d 100644 --- a/Ashrae/DeviceAddress.html +++ b/Ashrae/DeviceAddress.html @@ -7347,7 +7347,7 @@

- + ashrae/bacnet_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/Ashrae/DispatchProtocol.html b/Ashrae/DispatchProtocol.html index 17554ed5a1..964a694944 100644 --- a/Ashrae/DispatchProtocol.html +++ b/Ashrae/DispatchProtocol.html @@ -7319,7 +7319,7 @@

- + ashrae/bacnet_models.cr @@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7879,7 +7879,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7927,7 +7927,7 @@


- [View source] + [View source]
@@ -7943,7 +7943,7 @@


- [View source] + [View source]
@@ -7959,7 +7959,7 @@


- [View source] + [View source]
@@ -7975,7 +7975,7 @@


- [View source] + [View source]
@@ -7991,7 +7991,7 @@


- [View source] + [View source]
@@ -8007,7 +8007,7 @@


- [View source] + [View source]
@@ -8023,7 +8023,7 @@


- [View source] + [View source]
@@ -8039,7 +8039,7 @@


- [View source] + [View source]
@@ -8055,7 +8055,7 @@


- [View source] + [View source]
@@ -8071,7 +8071,7 @@


- [View source] + [View source]
@@ -8087,7 +8087,7 @@


- [View source] + [View source]
@@ -8103,7 +8103,7 @@


- [View source] + [View source]
@@ -8119,7 +8119,7 @@


- [View source] + [View source]
@@ -8135,7 +8135,7 @@


- [View source] + [View source]
@@ -8151,7 +8151,7 @@


- [View source] + [View source]
@@ -8167,7 +8167,7 @@


- [View source] + [View source]
@@ -8183,7 +8183,7 @@


- [View source] + [View source]
@@ -8199,7 +8199,7 @@


- [View source] + [View source]
@@ -8215,7 +8215,7 @@


- [View source] + [View source]
@@ -8231,7 +8231,7 @@


- [View source] + [View source]
@@ -8247,7 +8247,7 @@


- [View source] + [View source]
@@ -8263,7 +8263,7 @@


- [View source] + [View source]
@@ -8279,7 +8279,7 @@


- [View source] + [View source]
@@ -8295,7 +8295,7 @@


- [View source] + [View source]
@@ -8323,7 +8323,7 @@


- [View source] + [View source]
diff --git a/Ashrae/DispatchProtocol/MessageType.html b/Ashrae/DispatchProtocol/MessageType.html index 8fb5d113c3..b15c91de58 100644 --- a/Ashrae/DispatchProtocol/MessageType.html +++ b/Ashrae/DispatchProtocol/MessageType.html @@ -7317,7 +7317,7 @@

- + ashrae/bacnet_models.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Aver.html b/Aver.html index 1e79c557ba..e7f7ef1780 100644 --- a/Aver.html +++ b/Aver.html @@ -7317,7 +7317,7 @@

- + aver/cam520_pro_models.cr diff --git a/Aver/Auth.html b/Aver/Auth.html index e8dac69ec1..3684708a1d 100644 --- a/Aver/Auth.html +++ b/Aver/Auth.html @@ -7347,7 +7347,7 @@

- + aver/cam520_pro_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Aver/AxisSelect.html b/Aver/AxisSelect.html index 21dacb6ebc..cf6b08f6a3 100644 --- a/Aver/AxisSelect.html +++ b/Aver/AxisSelect.html @@ -7317,7 +7317,7 @@

- + aver/cam520_pro_models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Aver/Cam520Pro.html b/Aver/Cam520Pro.html index a7799afc14..62f3d46c7a 100644 --- a/Aver/Cam520Pro.html +++ b/Aver/Cam520Pro.html @@ -7335,7 +7335,7 @@

- + aver/cam520_pro.cr @@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7896,7 +7896,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8059,7 +8059,7 @@


- [View source] + [View source]
@@ -8075,7 +8075,7 @@


- [View source] + [View source]
@@ -8091,7 +8091,7 @@


- [View source] + [View source]
@@ -8107,7 +8107,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
diff --git a/Aver/Cam520Pro/Presets.html b/Aver/Cam520Pro/Presets.html index 9b565b1fbe..dc44e24819 100644 --- a/Aver/Cam520Pro/Presets.html +++ b/Aver/Cam520Pro/Presets.html @@ -7327,7 +7327,7 @@

- + aver/cam520_pro.cr diff --git a/Aver/Event.html b/Aver/Event.html index c84cc6896a..e4e0fbd9cc 100644 --- a/Aver/Event.html +++ b/Aver/Event.html @@ -7361,7 +7361,7 @@

- + aver/cam520_pro_models.cr @@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
diff --git a/Aver/EventOption.html b/Aver/EventOption.html index 8433245de8..ca89806242 100644 --- a/Aver/EventOption.html +++ b/Aver/EventOption.html @@ -7347,7 +7347,7 @@

- + aver/cam520_pro_models.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
diff --git a/Aver/HttpResponse.html b/Aver/HttpResponse.html index f91d24cb0f..ab8a3022b0 100644 --- a/Aver/HttpResponse.html +++ b/Aver/HttpResponse.html @@ -7347,7 +7347,7 @@

- + aver/cam520_pro_models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Aver/Option.html b/Aver/Option.html index 9f290077bf..b3400c78a5 100644 --- a/Aver/Option.html +++ b/Aver/Option.html @@ -7347,7 +7347,7 @@

- + aver/cam520_pro_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Aver/OptionType.html b/Aver/OptionType.html index 6850d2a307..d70597442d 100644 --- a/Aver/OptionType.html +++ b/Aver/OptionType.html @@ -7317,7 +7317,7 @@

- + aver/cam520_pro_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Biamp.html b/Biamp.html index dc1edde498..5731908872 100644 --- a/Biamp.html +++ b/Biamp.html @@ -7317,14 +7317,14 @@

- + biamp/ntp.cr
- + biamp/tesira.cr diff --git a/Biamp/NTP.html b/Biamp/NTP.html index b00440169a..219cea96a4 100644 --- a/Biamp/NTP.html +++ b/Biamp/NTP.html @@ -7343,7 +7343,7 @@

- + biamp/ntp.cr diff --git a/Biamp/NTP/Command.html b/Biamp/NTP/Command.html index bf1ac77ade..0395561227 100644 --- a/Biamp/NTP/Command.html +++ b/Biamp/NTP/Command.html @@ -7319,7 +7319,7 @@

- + biamp/ntp.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Command/Type.html b/Biamp/NTP/Command/Type.html index 40456aef83..78bcc7c6d1 100644 --- a/Biamp/NTP/Command/Type.html +++ b/Biamp/NTP/Command/Type.html @@ -7317,7 +7317,7 @@

- + biamp/ntp.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Response.html b/Biamp/NTP/Response.html index e530b85cfa..4022d9ab20 100644 --- a/Biamp/NTP/Response.html +++ b/Biamp/NTP/Response.html @@ -7317,7 +7317,7 @@

- + biamp/ntp.cr @@ -7380,7 +7380,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Response/Error.html b/Biamp/NTP/Response/Error.html index e14da35d9d..d0cea36926 100644 --- a/Biamp/NTP/Response/Error.html +++ b/Biamp/NTP/Response/Error.html @@ -7319,7 +7319,7 @@

- + biamp/ntp.cr @@ -7446,7 +7446,7 @@


- [View source] + [View source]
@@ -7478,7 +7478,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Response/FullPath.html b/Biamp/NTP/Response/FullPath.html index ecd5d827a8..f141007db9 100644 --- a/Biamp/NTP/Response/FullPath.html +++ b/Biamp/NTP/Response/FullPath.html @@ -7319,7 +7319,7 @@

- + biamp/ntp.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Response/Invalid.html b/Biamp/NTP/Response/Invalid.html index 2eb2f368dc..e681654824 100644 --- a/Biamp/NTP/Response/Invalid.html +++ b/Biamp/NTP/Response/Invalid.html @@ -7319,7 +7319,7 @@

- + biamp/ntp.cr @@ -7446,7 +7446,7 @@


- [View source] + [View source]
@@ -7478,7 +7478,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
diff --git a/Biamp/NTP/Response/OK.html b/Biamp/NTP/Response/OK.html index 076a53fce7..5191b3a5f8 100644 --- a/Biamp/NTP/Response/OK.html +++ b/Biamp/NTP/Response/OK.html @@ -7319,7 +7319,7 @@

- + biamp/ntp.cr @@ -7441,7 +7441,7 @@


- [View source] + [View source]
@@ -7473,7 +7473,7 @@


- [View source] + [View source]
@@ -7489,7 +7489,7 @@


- [View source] + [View source]
diff --git a/Biamp/Nexia.html b/Biamp/Nexia.html index 8b273a6046..125f3b4286 100644 --- a/Biamp/Nexia.html +++ b/Biamp/Nexia.html @@ -7333,7 +7333,7 @@

- + biamp/nexia.cr @@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
diff --git a/Biamp/Tesira.html b/Biamp/Tesira.html index d4326c05ef..f28422cc5b 100644 --- a/Biamp/Tesira.html +++ b/Biamp/Tesira.html @@ -7319,7 +7319,7 @@

- + biamp/tesira.cr @@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7848,7 +7848,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7880,7 +7880,7 @@


- [View source] + [View source]
diff --git a/Biamp/Tesira/Ids.html b/Biamp/Tesira/Ids.html index 0415bb197c..dc788c03f5 100644 --- a/Biamp/Tesira/Ids.html +++ b/Biamp/Tesira/Ids.html @@ -7327,7 +7327,7 @@

- + biamp/tesira.cr diff --git a/Biamp/Tesira/Num.html b/Biamp/Tesira/Num.html index 593a5d697e..4502c074c1 100644 --- a/Biamp/Tesira/Num.html +++ b/Biamp/Tesira/Num.html @@ -7327,7 +7327,7 @@

- + biamp/tesira.cr diff --git a/Bose.html b/Bose.html index 5d5c02a010..bf84383df6 100644 --- a/Bose.html +++ b/Bose.html @@ -7317,7 +7317,7 @@

- + bose/control_space_serial.cr diff --git a/Bose/ControlSpaceSerial.html b/Bose/ControlSpaceSerial.html index 777701b4ad..ed1c60a740 100644 --- a/Bose/ControlSpaceSerial.html +++ b/Bose/ControlSpaceSerial.html @@ -7319,7 +7319,7 @@

- + bose/control_space_serial.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
diff --git a/Cisco.html b/Cisco.html index 0b9cc45b71..4152ff8f37 100644 --- a/Cisco.html +++ b/Cisco.html @@ -7317,196 +7317,196 @@

- + cisco/collaboration_endpoint.cr
- + cisco/meraki/geo.cr
- + cisco/webex/api/messages.cr
- + cisco/webex/api/people.cr
- + cisco/webex/api/rooms.cr
- + cisco/webex/client.cr
- + cisco/webex/command.cr
- + cisco/webex/commands/echo.cr
- + cisco/webex/commands/greeting.cr
- + cisco/webex/constants.cr
- + cisco/webex/exceptions/argument.cr
- + cisco/webex/exceptions/method.cr
- + cisco/webex/exceptions/rate_limit.cr
- + cisco/webex/exceptions/status_code.cr
- + cisco/webex/models/device.cr
- + cisco/webex/models/event.cr
- + cisco/webex/models/events/activity.cr
- + cisco/webex/models/events/actor.cr
- + cisco/webex/models/events/data.cr
- + cisco/webex/models/events/target.cr
- + cisco/webex/models/events/type.cr
- + cisco/webex/models/message.cr
- + cisco/webex/models/peek.cr
- + cisco/webex/models/person.cr
- + cisco/webex/models/room.cr
- + cisco/webex/session.cr
- + cisco/webex/status_code.cr
- + cisco/webex/utils.cr diff --git a/Cisco/CollaborationEndpoint.html b/Cisco/CollaborationEndpoint.html index 20fb4c9d7d..a4787f6598 100644 --- a/Cisco/CollaborationEndpoint.html +++ b/Cisco/CollaborationEndpoint.html @@ -7333,7 +7333,7 @@

- + cisco/collaboration_endpoint.cr @@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7787,7 +7787,7 @@


- [View source] + [View source]
@@ -7803,7 +7803,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7840,7 +7840,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Cameras.html b/Cisco/CollaborationEndpoint/Cameras.html index 363f150124..26519da438 100644 --- a/Cisco/CollaborationEndpoint/Cameras.html +++ b/Cisco/CollaborationEndpoint/Cameras.html @@ -7347,7 +7347,7 @@

- + cisco/collaboration_endpoint/cameras.cr @@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Cameras/CameraAxis.html b/Cisco/CollaborationEndpoint/Cameras/CameraAxis.html index 900961538e..bf7c2f9685 100644 --- a/Cisco/CollaborationEndpoint/Cameras/CameraAxis.html +++ b/Cisco/CollaborationEndpoint/Cameras/CameraAxis.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/cameras.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Cameras/FocusDirection.html b/Cisco/CollaborationEndpoint/Cameras/FocusDirection.html index b0341d45e0..9e2be7b610 100644 --- a/Cisco/CollaborationEndpoint/Cameras/FocusDirection.html +++ b/Cisco/CollaborationEndpoint/Cameras/FocusDirection.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/cameras.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Cameras/Interface.html b/Cisco/CollaborationEndpoint/Cameras/Interface.html index b393410e04..2017e6d9b6 100644 --- a/Cisco/CollaborationEndpoint/Cameras/Interface.html +++ b/Cisco/CollaborationEndpoint/Cameras/Interface.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint/cameras.cr diff --git a/Cisco/CollaborationEndpoint/Config.html b/Cisco/CollaborationEndpoint/Config.html index 911d43c310..ea3554f0eb 100644 --- a/Cisco/CollaborationEndpoint/Config.html +++ b/Cisco/CollaborationEndpoint/Config.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint.cr diff --git a/Cisco/CollaborationEndpoint/Feedback.html b/Cisco/CollaborationEndpoint/Feedback.html index b5fcec697c..8efdf7986b 100644 --- a/Cisco/CollaborationEndpoint/Feedback.html +++ b/Cisco/CollaborationEndpoint/Feedback.html @@ -7319,7 +7319,7 @@

- + cisco/collaboration_endpoint/feedback.cr @@ -7452,7 +7452,7 @@


- [View source] + [View source]
@@ -7484,7 +7484,7 @@


- [View source] + [View source]
@@ -7500,7 +7500,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/JSONBasic.html b/Cisco/CollaborationEndpoint/JSONBasic.html index 77708c2367..673f44465a 100644 --- a/Cisco/CollaborationEndpoint/JSONBasic.html +++ b/Cisco/CollaborationEndpoint/JSONBasic.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint.cr diff --git a/Cisco/CollaborationEndpoint/Powerable.html b/Cisco/CollaborationEndpoint/Powerable.html index cb73c16016..35d201e740 100644 --- a/Cisco/CollaborationEndpoint/Powerable.html +++ b/Cisco/CollaborationEndpoint/Powerable.html @@ -7347,7 +7347,7 @@

- + cisco/collaboration_endpoint/powerable.cr @@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Powerable/Interface.html b/Cisco/CollaborationEndpoint/Powerable/Interface.html index b813ad7274..469f0d9914 100644 --- a/Cisco/CollaborationEndpoint/Powerable/Interface.html +++ b/Cisco/CollaborationEndpoint/Powerable/Interface.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint/powerable.cr diff --git a/Cisco/CollaborationEndpoint/Powerable/PowerOff.html b/Cisco/CollaborationEndpoint/Powerable/PowerOff.html index 2c3175a75e..f188709969 100644 --- a/Cisco/CollaborationEndpoint/Powerable/PowerOff.html +++ b/Cisco/CollaborationEndpoint/Powerable/PowerOff.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/powerable.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Presentation.html b/Cisco/CollaborationEndpoint/Presentation.html index c0fb836ee6..ba6877336b 100644 --- a/Cisco/CollaborationEndpoint/Presentation.html +++ b/Cisco/CollaborationEndpoint/Presentation.html @@ -7347,7 +7347,7 @@

- + cisco/collaboration_endpoint/presentation.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html b/Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html index 6c219efbb5..b675c7f1e8 100644 --- a/Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html +++ b/Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/presentation.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Presentation/SendingMode.html b/Cisco/CollaborationEndpoint/Presentation/SendingMode.html index bbd29bb1fc..8c425f64a9 100644 --- a/Cisco/CollaborationEndpoint/Presentation/SendingMode.html +++ b/Cisco/CollaborationEndpoint/Presentation/SendingMode.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/presentation.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/Presets.html b/Cisco/CollaborationEndpoint/Presets.html index a3b0d9a819..c3cc198df6 100644 --- a/Cisco/CollaborationEndpoint/Presets.html +++ b/Cisco/CollaborationEndpoint/Presets.html @@ -7338,7 +7338,7 @@

- + cisco/collaboration_endpoint.cr diff --git a/Cisco/CollaborationEndpoint/Toogle.html b/Cisco/CollaborationEndpoint/Toogle.html index ff6f931aea..4f82eb20a8 100644 --- a/Cisco/CollaborationEndpoint/Toogle.html +++ b/Cisco/CollaborationEndpoint/Toogle.html @@ -7328,7 +7328,7 @@

- + cisco/collaboration_endpoint.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/UIExtensions.html b/Cisco/CollaborationEndpoint/UIExtensions.html index a28b131866..9a6ca47096 100644 --- a/Cisco/CollaborationEndpoint/UIExtensions.html +++ b/Cisco/CollaborationEndpoint/UIExtensions.html @@ -7347,7 +7347,7 @@

- + cisco/collaboration_endpoint/ui_extensions.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html b/Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html index 24744302be..5de4e52dd1 100644 --- a/Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html +++ b/Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/ui_extensions.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html b/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html index a212609fbf..43d1409fe8 100644 --- a/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html +++ b/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/ui_extensions.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/XAPI.html b/Cisco/CollaborationEndpoint/XAPI.html index a7c369f8bb..75fd3e1a8a 100644 --- a/Cisco/CollaborationEndpoint/XAPI.html +++ b/Cisco/CollaborationEndpoint/XAPI.html @@ -7337,14 +7337,14 @@

- + cisco/collaboration_endpoint/response.cr
- + cisco/collaboration_endpoint/xapi.cr @@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/XAPI/ActionType.html b/Cisco/CollaborationEndpoint/XAPI/ActionType.html index 356131d057..6662e4db5f 100644 --- a/Cisco/CollaborationEndpoint/XAPI/ActionType.html +++ b/Cisco/CollaborationEndpoint/XAPI/ActionType.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/xapi.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html b/Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html index 09ecda4668..65326cba16 100644 --- a/Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html +++ b/Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html @@ -7317,7 +7317,7 @@

- + cisco/collaboration_endpoint/xapi.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces.html b/Cisco/DNASpaces.html index d9a3673d86..6f158ef590 100644 --- a/Cisco/DNASpaces.html +++ b/Cisco/DNASpaces.html @@ -7335,14 +7335,14 @@

- + cisco/dna_spaces.cr
- + cisco/dna_spaces/sensor_interface.cr @@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7716,7 +7716,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7764,7 +7764,7 @@


- [View source] + [View source]
@@ -7780,7 +7780,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7812,7 +7812,7 @@


- [View source] + [View source]
@@ -7828,7 +7828,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@

- [View source] + [View source]
@@ -7869,7 +7869,7 @@

- [View source] + [View source]
@@ -7891,7 +7891,7 @@

- [View source] + [View source]
@@ -7907,7 +7907,7 @@

- [View source] + [View source]
@@ -7923,7 +7923,7 @@

- [View source] + [View source]
@@ -7939,7 +7939,7 @@

- [View source] + [View source]
@@ -7964,7 +7964,7 @@

- [View source] + [View source]
@@ -7991,7 +7991,7 @@

- [View source] + [View source]
@@ -8012,7 +8012,7 @@

- [View source] + [View source]
@@ -8028,7 +8028,7 @@

- [View source] + [View source]
@@ -8044,7 +8044,7 @@

- [View source] + [View source]
diff --git a/Cisco/DNASpaces/ActivactionPublicKey.html b/Cisco/DNASpaces/ActivactionPublicKey.html index 0ef06b1141..c3e2b224a1 100644 --- a/Cisco/DNASpaces/ActivactionPublicKey.html +++ b/Cisco/DNASpaces/ActivactionPublicKey.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/activation_publickey.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/AppActivaction.html b/Cisco/DNASpaces/AppActivaction.html index ce56c46b75..d0eed023d8 100644 --- a/Cisco/DNASpaces/AppActivaction.html +++ b/Cisco/DNASpaces/AppActivaction.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/app_activaction.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/AppActivactionWrapper.html b/Cisco/DNASpaces/AppActivactionWrapper.html index e11a1822b3..2fa68f53d5 100644 --- a/Cisco/DNASpaces/AppActivactionWrapper.html +++ b/Cisco/DNASpaces/AppActivactionWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/BlePayload.html b/Cisco/DNASpaces/BlePayload.html index 4c01f2741e..d2367bbbe7 100644 --- a/Cisco/DNASpaces/BlePayload.html +++ b/Cisco/DNASpaces/BlePayload.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/ble_rssi_update.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/BleRssiUpdate.html b/Cisco/DNASpaces/BleRssiUpdate.html index 87c5264b7a..cd8d70893f 100644 --- a/Cisco/DNASpaces/BleRssiUpdate.html +++ b/Cisco/DNASpaces/BleRssiUpdate.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/ble_rssi_update.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/BleRssiUpdateWrapper.html b/Cisco/DNASpaces/BleRssiUpdateWrapper.html index e5dd61a3d7..93bdfd96d3 100644 --- a/Cisco/DNASpaces/BleRssiUpdateWrapper.html +++ b/Cisco/DNASpaces/BleRssiUpdateWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/Device.html b/Cisco/DNASpaces/Device.html index 939c4f9caa..e2f2fda129 100644 --- a/Cisco/DNASpaces/Device.html +++ b/Cisco/DNASpaces/Device.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device.cr @@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceCount.html b/Cisco/DNASpaces/DeviceCount.html index 721cbacc87..7d9a0bc67e 100644 --- a/Cisco/DNASpaces/DeviceCount.html +++ b/Cisco/DNASpaces/DeviceCount.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device_count.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceCountWrapper.html b/Cisco/DNASpaces/DeviceCountWrapper.html index 40a934250f..ddde25f4c7 100644 --- a/Cisco/DNASpaces/DeviceCountWrapper.html +++ b/Cisco/DNASpaces/DeviceCountWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceEntry.html b/Cisco/DNASpaces/DeviceEntry.html index 9248e5d625..06173b5056 100644 --- a/Cisco/DNASpaces/DeviceEntry.html +++ b/Cisco/DNASpaces/DeviceEntry.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device_entry.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceEntryWrapper.html b/Cisco/DNASpaces/DeviceEntryWrapper.html index 43088f788a..f2c4ba0ad7 100644 --- a/Cisco/DNASpaces/DeviceEntryWrapper.html +++ b/Cisco/DNASpaces/DeviceEntryWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceExit.html b/Cisco/DNASpaces/DeviceExit.html index 12b7cb8e5e..d855f37f7b 100644 --- a/Cisco/DNASpaces/DeviceExit.html +++ b/Cisco/DNASpaces/DeviceExit.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device_exit.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceExitWrapper.html b/Cisco/DNASpaces/DeviceExitWrapper.html index 32eb22c2d5..c789d1357a 100644 --- a/Cisco/DNASpaces/DeviceExitWrapper.html +++ b/Cisco/DNASpaces/DeviceExitWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceLocationUpdate.html b/Cisco/DNASpaces/DeviceLocationUpdate.html index e89a64d760..08c2d45504 100644 --- a/Cisco/DNASpaces/DeviceLocationUpdate.html +++ b/Cisco/DNASpaces/DeviceLocationUpdate.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device_location_update.cr @@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7716,7 +7716,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7764,7 +7764,7 @@


- [View source] + [View source]
@@ -7780,7 +7780,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7812,7 +7812,7 @@


- [View source] + [View source]
@@ -7828,7 +7828,7 @@


- [View source] + [View source]
@@ -7844,7 +7844,7 @@


- [View source] + [View source]
@@ -7860,7 +7860,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DeviceLocationUpdateWrapper.html b/Cisco/DNASpaces/DeviceLocationUpdateWrapper.html index 5bce05f43d..42612bd7c6 100644 --- a/Cisco/DNASpaces/DeviceLocationUpdateWrapper.html +++ b/Cisco/DNASpaces/DeviceLocationUpdateWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DevicePresence.html b/Cisco/DNASpaces/DevicePresence.html index 25833e5bbf..89964e1e75 100644 --- a/Cisco/DNASpaces/DevicePresence.html +++ b/Cisco/DNASpaces/DevicePresence.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/device_presence.cr @@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
@@ -7821,7 +7821,7 @@


- [View source] + [View source]
@@ -7837,7 +7837,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/DevicePresenceWrapper.html b/Cisco/DNASpaces/DevicePresenceWrapper.html index 48bd7928f5..2842a0d3ae 100644 --- a/Cisco/DNASpaces/DevicePresenceWrapper.html +++ b/Cisco/DNASpaces/DevicePresenceWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/Dimension.html b/Cisco/DNASpaces/Dimension.html index ac8c87a0ce..557a0d07a2 100644 --- a/Cisco/DNASpaces/Dimension.html +++ b/Cisco/DNASpaces/Dimension.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/map_info.cr @@ -7484,7 +7484,7 @@


- [View source] + [View source]
@@ -7516,7 +7516,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/Events.html b/Cisco/DNASpaces/Events.html index ebeb387f0f..410d9357bb 100644 --- a/Cisco/DNASpaces/Events.html +++ b/Cisco/DNASpaces/Events.html @@ -7398,7 +7398,7 @@

- + cisco/dna_spaces/events.cr @@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/IotDeviceInfo.html b/Cisco/DNASpaces/IotDeviceInfo.html index e8460a1a3d..58beac7f46 100644 --- a/Cisco/DNASpaces/IotDeviceInfo.html +++ b/Cisco/DNASpaces/IotDeviceInfo.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/iot_telemetry.cr @@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/IotPosition.html b/Cisco/DNASpaces/IotPosition.html index 9b0f48586e..6e5ecaf74c 100644 --- a/Cisco/DNASpaces/IotPosition.html +++ b/Cisco/DNASpaces/IotPosition.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/iot_telemetry.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/IotTelemetry.html b/Cisco/DNASpaces/IotTelemetry.html index a3102eaa6a..56423597fc 100644 --- a/Cisco/DNASpaces/IotTelemetry.html +++ b/Cisco/DNASpaces/IotTelemetry.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/iot_telemetry.cr @@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
@@ -7914,7 +7914,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7946,7 +7946,7 @@


- [View source] + [View source]
@@ -7962,7 +7962,7 @@


- [View source] + [View source]
@@ -7983,7 +7983,7 @@


- [View source] + [View source]
@@ -8004,7 +8004,7 @@


- [View source] + [View source]
@@ -8020,7 +8020,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
@@ -8121,7 +8121,7 @@


- [View source] + [View source]
@@ -8137,7 +8137,7 @@


- [View source] + [View source]
@@ -8153,7 +8153,7 @@


- [View source] + [View source]
@@ -8169,7 +8169,7 @@


- [View source] + [View source]
@@ -8185,7 +8185,7 @@


- [View source] + [View source]
@@ -8201,7 +8201,7 @@


- [View source] + [View source]
@@ -8217,7 +8217,7 @@


- [View source] + [View source]
@@ -8233,7 +8233,7 @@


- [View source] + [View source]
@@ -8249,7 +8249,7 @@


- [View source] + [View source]
@@ -8265,7 +8265,7 @@


- [View source] + [View source]
@@ -8281,7 +8281,7 @@


- [View source] + [View source]
@@ -8297,7 +8297,7 @@


- [View source] + [View source]
@@ -8313,7 +8313,7 @@


- [View source] + [View source]
@@ -8329,7 +8329,7 @@


- [View source] + [View source]
@@ -8345,7 +8345,7 @@


- [View source] + [View source]
@@ -8361,7 +8361,7 @@


- [View source] + [View source]
@@ -8377,7 +8377,7 @@


- [View source] + [View source]
@@ -8393,7 +8393,7 @@


- [View source] + [View source]
@@ -8409,7 +8409,7 @@


- [View source] + [View source]
@@ -8425,7 +8425,7 @@


- [View source] + [View source]
@@ -8441,7 +8441,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/IotTelemetryWrapper.html b/Cisco/DNASpaces/IotTelemetryWrapper.html index 007a0c7435..25fe69442a 100644 --- a/Cisco/DNASpaces/IotTelemetryWrapper.html +++ b/Cisco/DNASpaces/IotTelemetryWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/KeepAlive.html b/Cisco/DNASpaces/KeepAlive.html index cbeddfde77..21ecc4564d 100644 --- a/Cisco/DNASpaces/KeepAlive.html +++ b/Cisco/DNASpaces/KeepAlive.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/Location.html b/Cisco/DNASpaces/Location.html index b175306c31..728529b098 100644 --- a/Cisco/DNASpaces/Location.html +++ b/Cisco/DNASpaces/Location.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/location.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationChange.html b/Cisco/DNASpaces/LocationChange.html index 3115be2eb2..ba5279a274 100644 --- a/Cisco/DNASpaces/LocationChange.html +++ b/Cisco/DNASpaces/LocationChange.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/location_change.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationChange/LocationDetails.html b/Cisco/DNASpaces/LocationChange/LocationDetails.html index 255a9403a5..6538ec6253 100644 --- a/Cisco/DNASpaces/LocationChange/LocationDetails.html +++ b/Cisco/DNASpaces/LocationChange/LocationDetails.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/location_change.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationChange/Metadata.html b/Cisco/DNASpaces/LocationChange/Metadata.html index 6279479b74..d89455a8dc 100644 --- a/Cisco/DNASpaces/LocationChange/Metadata.html +++ b/Cisco/DNASpaces/LocationChange/Metadata.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/location_change.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationChangeWrapper.html b/Cisco/DNASpaces/LocationChangeWrapper.html index a1d46060a0..50c9816fc0 100644 --- a/Cisco/DNASpaces/LocationChangeWrapper.html +++ b/Cisco/DNASpaces/LocationChangeWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationDetails.html b/Cisco/DNASpaces/LocationDetails.html index c562211e83..68c7f7eacc 100644 --- a/Cisco/DNASpaces/LocationDetails.html +++ b/Cisco/DNASpaces/LocationDetails.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/location_details.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/LocationInfo.html b/Cisco/DNASpaces/LocationInfo.html index 034e4da180..3c1671e181 100644 --- a/Cisco/DNASpaces/LocationInfo.html +++ b/Cisco/DNASpaces/LocationInfo.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/MapInfo.html b/Cisco/DNASpaces/MapInfo.html index 2785d81106..fa6cab11b6 100644 --- a/Cisco/DNASpaces/MapInfo.html +++ b/Cisco/DNASpaces/MapInfo.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/map_info.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/PeopleCountUpdate.html b/Cisco/DNASpaces/PeopleCountUpdate.html index 9eabb9e402..744d823de2 100644 --- a/Cisco/DNASpaces/PeopleCountUpdate.html +++ b/Cisco/DNASpaces/PeopleCountUpdate.html @@ -7358,7 +7358,7 @@

- + cisco/dna_spaces/people_count_update.cr @@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/PeopleCountUpdateWrapper.html b/Cisco/DNASpaces/PeopleCountUpdateWrapper.html index 0290964643..ee193e99d6 100644 --- a/Cisco/DNASpaces/PeopleCountUpdateWrapper.html +++ b/Cisco/DNASpaces/PeopleCountUpdateWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/ProfileUpdateWrapper.html b/Cisco/DNASpaces/ProfileUpdateWrapper.html index 6ebc9cf5b6..605c341270 100644 --- a/Cisco/DNASpaces/ProfileUpdateWrapper.html +++ b/Cisco/DNASpaces/ProfileUpdateWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/RssiMeasurement.html b/Cisco/DNASpaces/RssiMeasurement.html index 8db76c417c..169ddae0d0 100644 --- a/Cisco/DNASpaces/RssiMeasurement.html +++ b/Cisco/DNASpaces/RssiMeasurement.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/ble_rssi_update.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/RssiNotification.html b/Cisco/DNASpaces/RssiNotification.html index 5fae352a9e..653945cabd 100644 --- a/Cisco/DNASpaces/RssiNotification.html +++ b/Cisco/DNASpaces/RssiNotification.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/ble_rssi_update.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/TpData.html b/Cisco/DNASpaces/TpData.html index 1607cd7a51..451db3632a 100644 --- a/Cisco/DNASpaces/TpData.html +++ b/Cisco/DNASpaces/TpData.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/iot_telemetry.cr @@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7836,7 +7836,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/UserPresence.html b/Cisco/DNASpaces/UserPresence.html index e1eb16f65b..4197deaacf 100644 --- a/Cisco/DNASpaces/UserPresence.html +++ b/Cisco/DNASpaces/UserPresence.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/user_presence.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/UserPresence/User.html b/Cisco/DNASpaces/UserPresence/User.html index f6b6339888..86a48e4c61 100644 --- a/Cisco/DNASpaces/UserPresence/User.html +++ b/Cisco/DNASpaces/UserPresence/User.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/user_presence.cr @@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/UserPresence/UserCount.html b/Cisco/DNASpaces/UserPresence/UserCount.html index 7011cc8e9c..4367969e08 100644 --- a/Cisco/DNASpaces/UserPresence/UserCount.html +++ b/Cisco/DNASpaces/UserPresence/UserCount.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/user_presence.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/UserPresenceWrapper.html b/Cisco/DNASpaces/UserPresenceWrapper.html index ca9f25bff6..df12ba88ea 100644 --- a/Cisco/DNASpaces/UserPresenceWrapper.html +++ b/Cisco/DNASpaces/UserPresenceWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/WebexDeviceInfo.html b/Cisco/DNASpaces/WebexDeviceInfo.html index f471a02e2f..2556bbaeaf 100644 --- a/Cisco/DNASpaces/WebexDeviceInfo.html +++ b/Cisco/DNASpaces/WebexDeviceInfo.html @@ -7358,7 +7358,7 @@

- + cisco/dna_spaces/webex_telemetry.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/WebexTelemetry.html b/Cisco/DNASpaces/WebexTelemetry.html index 73dfda5707..08cda477dc 100644 --- a/Cisco/DNASpaces/WebexTelemetry.html +++ b/Cisco/DNASpaces/WebexTelemetry.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/webex_telemetry.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/WebexTelemetryUpdate.html b/Cisco/DNASpaces/WebexTelemetryUpdate.html index cf45b041f6..28c61ca7cf 100644 --- a/Cisco/DNASpaces/WebexTelemetryUpdate.html +++ b/Cisco/DNASpaces/WebexTelemetryUpdate.html @@ -7347,7 +7347,7 @@

- + cisco/dna_spaces/webex_telemetry.cr @@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
diff --git a/Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html b/Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html index cb949068ad..91261b9695 100644 --- a/Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html +++ b/Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html @@ -7319,7 +7319,7 @@

- + cisco/dna_spaces/events.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
diff --git a/Cisco/Ise.html b/Cisco/Ise.html index 988545496b..247344162b 100644 --- a/Cisco/Ise.html +++ b/Cisco/Ise.html @@ -7317,7 +7317,7 @@

- + cisco/ise/guest_users.cr diff --git a/Cisco/Ise/Guests.html b/Cisco/Ise/Guests.html index 3a655d1b81..b67d05fae9 100644 --- a/Cisco/Ise/Guests.html +++ b/Cisco/Ise/Guests.html @@ -7319,7 +7319,7 @@

- + cisco/ise/guest_users.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
diff --git a/Cisco/Ise/Models.html b/Cisco/Ise/Models.html index ac3150168b..8496873505 100644 --- a/Cisco/Ise/Models.html +++ b/Cisco/Ise/Models.html @@ -7317,7 +7317,7 @@

- + cisco/ise/models/internal_user.cr diff --git a/Cisco/Ise/Models/InternalUser.html b/Cisco/Ise/Models/InternalUser.html index 69e9fc07dc..940ecc9661 100644 --- a/Cisco/Ise/Models/InternalUser.html +++ b/Cisco/Ise/Models/InternalUser.html @@ -7347,7 +7347,7 @@

- + cisco/ise/models/internal_user.cr @@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7691,7 +7691,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7771,7 +7771,7 @@


- [View source] + [View source]
@@ -7787,7 +7787,7 @@


- [View source] + [View source]
@@ -7803,7 +7803,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7835,7 +7835,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7867,7 +7867,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
@@ -7899,7 +7899,7 @@


- [View source] + [View source]
@@ -7915,7 +7915,7 @@


- [View source] + [View source]
@@ -7931,7 +7931,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7963,7 +7963,7 @@


- [View source] + [View source]
@@ -7979,7 +7979,7 @@


- [View source] + [View source]
diff --git a/Cisco/Ise/NetworkAccess.html b/Cisco/Ise/NetworkAccess.html index 2e1ab3efcc..ff4774ba25 100644 --- a/Cisco/Ise/NetworkAccess.html +++ b/Cisco/Ise/NetworkAccess.html @@ -7319,7 +7319,7 @@

- + cisco/ise/network_access.cr @@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7700,7 +7700,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki.html b/Cisco/Meraki.html index 95c127b6e4..0d85c55839 100644 --- a/Cisco/Meraki.html +++ b/Cisco/Meraki.html @@ -7328,28 +7328,28 @@

- + cisco/meraki/captive_portal.cr
- + cisco/meraki/geo.cr
- + cisco/meraki/mqtt_models.cr
- + cisco/meraki/scanning_api.cr diff --git a/Cisco/Meraki/AlertType.html b/Cisco/Meraki/AlertType.html index 141e79180d..960817670e 100644 --- a/Cisco/Meraki/AlertType.html +++ b/Cisco/Meraki/AlertType.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/scanning_api.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CameraAnalytics.html b/Cisco/Meraki/CameraAnalytics.html index 8b4c9d7341..2b909f894f 100644 --- a/Cisco/Meraki/CameraAnalytics.html +++ b/Cisco/Meraki/CameraAnalytics.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CameraAnalytics/PeopleCount.html b/Cisco/Meraki/CameraAnalytics/PeopleCount.html index e0bff55821..c255164da5 100644 --- a/Cisco/Meraki/CameraAnalytics/PeopleCount.html +++ b/Cisco/Meraki/CameraAnalytics/PeopleCount.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CameraZone.html b/Cisco/Meraki/CameraZone.html index 0512b834eb..8daf3c6f82 100644 --- a/Cisco/Meraki/CameraZone.html +++ b/Cisco/Meraki/CameraZone.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CameraZone/Region.html b/Cisco/Meraki/CameraZone/Region.html index f68e800603..c2f287bd9f 100644 --- a/Cisco/Meraki/CameraZone/Region.html +++ b/Cisco/Meraki/CameraZone/Region.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CaptivePortal.html b/Cisco/Meraki/CaptivePortal.html index 8a6b30a0b6..e0d1af6d34 100644 --- a/Cisco/Meraki/CaptivePortal.html +++ b/Cisco/Meraki/CaptivePortal.html @@ -7319,7 +7319,7 @@

- + cisco/meraki/captive_portal.cr @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CaptivePortal/ChallengePayload.html b/Cisco/Meraki/CaptivePortal/ChallengePayload.html index 8f846a9001..9e7325b489 100644 --- a/Cisco/Meraki/CaptivePortal/ChallengePayload.html +++ b/Cisco/Meraki/CaptivePortal/ChallengePayload.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/captive_portal.cr @@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7771,7 +7771,7 @@


- [View source] + [View source]
@@ -7787,7 +7787,7 @@


- [View source] + [View source]
@@ -7803,7 +7803,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7835,7 +7835,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7867,7 +7867,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Client.html b/Cisco/Meraki/Client.html index a86609395d..cd699e55ae 100644 --- a/Cisco/Meraki/Client.html +++ b/Cisco/Meraki/Client.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8025,7 +8025,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
@@ -8121,7 +8121,7 @@


- [View source] + [View source]
@@ -8137,7 +8137,7 @@


- [View source] + [View source]
@@ -8153,7 +8153,7 @@


- [View source] + [View source]
@@ -8169,7 +8169,7 @@


- [View source] + [View source]
@@ -8185,7 +8185,7 @@


- [View source] + [View source]
@@ -8201,7 +8201,7 @@


- [View source] + [View source]
@@ -8217,7 +8217,7 @@


- [View source] + [View source]
@@ -8247,7 +8247,7 @@


- [View source] + [View source]
@@ -8277,7 +8277,7 @@


- [View source] + [View source]
@@ -8293,7 +8293,7 @@


- [View source] + [View source]
@@ -8309,7 +8309,7 @@


- [View source] + [View source]
@@ -8325,7 +8325,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/ConnectionType.html b/Cisco/Meraki/ConnectionType.html index b368220c0e..d0e44d5881 100644 --- a/Cisco/Meraki/ConnectionType.html +++ b/Cisco/Meraki/ConnectionType.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/scanning_api.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CountType.html b/Cisco/Meraki/CountType.html index 41e208465e..c1ccda6005 100644 --- a/Cisco/Meraki/CountType.html +++ b/Cisco/Meraki/CountType.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Crossing.html b/Cisco/Meraki/Crossing.html index 6c7eafbccf..4ac69fccb7 100644 --- a/Cisco/Meraki/Crossing.html +++ b/Cisco/Meraki/Crossing.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CrossingEvent.html b/Cisco/Meraki/CrossingEvent.html index 906c047d2b..d190266c3c 100644 --- a/Cisco/Meraki/CrossingEvent.html +++ b/Cisco/Meraki/CrossingEvent.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/CrossingObject.html b/Cisco/Meraki/CrossingObject.html index 4fdc4fc518..f07191e042 100644 --- a/Cisco/Meraki/CrossingObject.html +++ b/Cisco/Meraki/CrossingObject.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Dashboard.html b/Cisco/Meraki/Dashboard.html index aad94ad0bf..92eaf99060 100644 --- a/Cisco/Meraki/Dashboard.html +++ b/Cisco/Meraki/Dashboard.html @@ -7319,7 +7319,7 @@

- + cisco/meraki/dashboard.cr @@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Data.html b/Cisco/Meraki/Data.html index 54258e89bd..afd89cd76f 100644 --- a/Cisco/Meraki/Data.html +++ b/Cisco/Meraki/Data.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/DeskMappings.html b/Cisco/Meraki/DeskMappings.html index 3817b4a3ac..27cfc01c2f 100644 --- a/Cisco/Meraki/DeskMappings.html +++ b/Cisco/Meraki/DeskMappings.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/DetectedDesks.html b/Cisco/Meraki/DetectedDesks.html index 8b8cfbab50..7f07233ece 100644 --- a/Cisco/Meraki/DetectedDesks.html +++ b/Cisco/Meraki/DetectedDesks.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/DeviceLocation.html b/Cisco/Meraki/DeviceLocation.html index 5ef66ec4bf..d03c1efac5 100644 --- a/Cisco/Meraki/DeviceLocation.html +++ b/Cisco/Meraki/DeviceLocation.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7915,7 +7915,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8065,7 +8065,7 @@


- [View source] + [View source]
@@ -8081,7 +8081,7 @@


- [View source] + [View source]
@@ -8097,7 +8097,7 @@


- [View source] + [View source]
@@ -8113,7 +8113,7 @@


- [View source] + [View source]
@@ -8129,7 +8129,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8187,7 +8187,7 @@


- [View source] + [View source]
@@ -8203,7 +8203,7 @@


- [View source] + [View source]
@@ -8219,7 +8219,7 @@


- [View source] + [View source]
@@ -8235,7 +8235,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/DevicesSeen.html b/Cisco/Meraki/DevicesSeen.html index 7f3512c591..5fab8f5b33 100644 --- a/Cisco/Meraki/DevicesSeen.html +++ b/Cisco/Meraki/DevicesSeen.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Entrances.html b/Cisco/Meraki/Entrances.html index 21f19705ed..1c5c5d17de 100644 --- a/Cisco/Meraki/Entrances.html +++ b/Cisco/Meraki/Entrances.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/FloorMapping.html b/Cisco/Meraki/FloorMapping.html index 225d290e8d..709a60ca5d 100644 --- a/Cisco/Meraki/FloorMapping.html +++ b/Cisco/Meraki/FloorMapping.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/FloorPlan.html b/Cisco/Meraki/FloorPlan.html index 850dd4b25f..834f864968 100644 --- a/Cisco/Meraki/FloorPlan.html +++ b/Cisco/Meraki/FloorPlan.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/FloorPlanLocation.html b/Cisco/Meraki/FloorPlanLocation.html index ea7cf7b780..f0279625c6 100644 --- a/Cisco/Meraki/FloorPlanLocation.html +++ b/Cisco/Meraki/FloorPlanLocation.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Geo.html b/Cisco/Meraki/Geo.html index e35bc223af..45accd46b3 100644 --- a/Cisco/Meraki/Geo.html +++ b/Cisco/Meraki/Geo.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/geo.cr @@ -7422,7 +7422,7 @@


- [View source] + [View source]
@@ -7444,7 +7444,7 @@


- [View source] + [View source]
@@ -7465,7 +7465,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Geo/Distance.html b/Cisco/Meraki/Geo/Distance.html index e6209fa5d4..8a95b4d06b 100644 --- a/Cisco/Meraki/Geo/Distance.html +++ b/Cisco/Meraki/Geo/Distance.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/geo.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Geo/Point.html b/Cisco/Meraki/Geo/Point.html index d4a22f0d37..1a629facf6 100644 --- a/Cisco/Meraki/Geo/Point.html +++ b/Cisco/Meraki/Geo/Point.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/geo.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/LatestRecord.html b/Cisco/Meraki/LatestRecord.html index d6047d73e4..d290de678c 100644 --- a/Cisco/Meraki/LatestRecord.html +++ b/Cisco/Meraki/LatestRecord.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Locations.html b/Cisco/Meraki/Locations.html index d022a75a10..3e0e1fb5e8 100644 --- a/Cisco/Meraki/Locations.html +++ b/Cisco/Meraki/Locations.html @@ -7335,7 +7335,7 @@

- + cisco/meraki/meraki_locations.cr @@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7892,7 +7892,7 @@

- [View source] + [View source]
@@ -7917,7 +7917,7 @@

- [View source] + [View source]
@@ -7933,7 +7933,7 @@

- [View source] + [View source]
@@ -7949,7 +7949,7 @@

- [View source] + [View source]
@@ -7965,7 +7965,7 @@

- [View source] + [View source]
@@ -7981,7 +7981,7 @@

- [View source] + [View source]
@@ -7997,7 +7997,7 @@

- [View source] + [View source]
@@ -8013,7 +8013,7 @@

- [View source] + [View source]
@@ -8029,7 +8029,7 @@

- [View source] + [View source]
@@ -8045,7 +8045,7 @@

- [View source] + [View source]
@@ -8067,7 +8067,7 @@

- [View source] + [View source]
@@ -8088,7 +8088,7 @@

- [View source] + [View source]
@@ -8104,7 +8104,7 @@

- [View source] + [View source]
@@ -8125,7 +8125,7 @@

- [View source] + [View source]
@@ -8141,7 +8141,7 @@

- [View source] + [View source]
@@ -8162,7 +8162,7 @@

- [View source] + [View source]
@@ -8188,7 +8188,7 @@

- [View source] + [View source]
@@ -8204,7 +8204,7 @@

- [View source] + [View source]
@@ -8220,7 +8220,7 @@

- [View source] + [View source]
@@ -8236,7 +8236,7 @@

- [View source] + [View source]
@@ -8257,7 +8257,7 @@

- [View source] + [View source]
@@ -8273,7 +8273,7 @@

- [View source] + [View source]
@@ -8298,7 +8298,7 @@

- [View source] + [View source]
@@ -8325,7 +8325,7 @@

- [View source] + [View source]
@@ -8341,7 +8341,7 @@

- [View source] + [View source]
@@ -8357,7 +8357,7 @@

- [View source] + [View source]
@@ -8373,7 +8373,7 @@

- [View source] + [View source]
@@ -8394,7 +8394,7 @@

- [View source] + [View source]
@@ -8410,7 +8410,7 @@

- [View source] + [View source]
diff --git a/Cisco/Meraki/Locations/CamAnalytics.html b/Cisco/Meraki/Locations/CamAnalytics.html index 9f56b7725a..1dcb730d34 100644 --- a/Cisco/Meraki/Locations/CamAnalytics.html +++ b/Cisco/Meraki/Locations/CamAnalytics.html @@ -7327,7 +7327,7 @@

- + cisco/meraki/meraki_locations.cr diff --git a/Cisco/Meraki/Locations/Lookup.html b/Cisco/Meraki/Locations/Lookup.html index d82d530cc6..0c00489709 100644 --- a/Cisco/Meraki/Locations/Lookup.html +++ b/Cisco/Meraki/Locations/Lookup.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/meraki_locations.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Locations/WiredDesks.html b/Cisco/Meraki/Locations/WiredDesks.html index 508c98328b..a25f35a38e 100644 --- a/Cisco/Meraki/Locations/WiredDesks.html +++ b/Cisco/Meraki/Locations/WiredDesks.html @@ -7327,7 +7327,7 @@

- + cisco/meraki/meraki_locations.cr diff --git a/Cisco/Meraki/LuxLevel.html b/Cisco/Meraki/LuxLevel.html index 69caaf90ed..d1b2d6715f 100644 --- a/Cisco/Meraki/LuxLevel.html +++ b/Cisco/Meraki/LuxLevel.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/mqtt_models.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7503,7 +7503,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/MQTT.html b/Cisco/Meraki/MQTT.html index 1dd0e3c7e1..c86cc8f411 100644 --- a/Cisco/Meraki/MQTT.html +++ b/Cisco/Meraki/MQTT.html @@ -7333,7 +7333,7 @@

- + cisco/meraki/mqtt.cr @@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/MessageType.html b/Cisco/Meraki/MessageType.html index 1bf6aeb9e1..29b302407c 100644 --- a/Cisco/Meraki/MessageType.html +++ b/Cisco/Meraki/MessageType.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/scanning_api.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Network.html b/Cisco/Meraki/Network.html index b9fb8b7b44..fc01e233c1 100644 --- a/Cisco/Meraki/Network.html +++ b/Cisco/Meraki/Network.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
@@ -7821,7 +7821,7 @@


- [View source] + [View source]
@@ -7837,7 +7837,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/NetworkDevice.html b/Cisco/Meraki/NetworkDevice.html index 2b332903b9..243695fb02 100644 --- a/Cisco/Meraki/NetworkDevice.html +++ b/Cisco/Meraki/NetworkDevice.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7867,7 +7867,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Observation.html b/Cisco/Meraki/Observation.html index 775ee5a14a..67d2fa86bf 100644 --- a/Cisco/Meraki/Observation.html +++ b/Cisco/Meraki/Observation.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/Organization.html b/Cisco/Meraki/Organization.html index faea57676f..4c3b658dd6 100644 --- a/Cisco/Meraki/Organization.html +++ b/Cisco/Meraki/Organization.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/PortState.html b/Cisco/Meraki/PortState.html index 63a3a32703..8c5187434a 100644 --- a/Cisco/Meraki/PortState.html +++ b/Cisco/Meraki/PortState.html @@ -7317,7 +7317,7 @@

- + cisco/meraki/scanning_api.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/PortStatusResponse.html b/Cisco/Meraki/PortStatusResponse.html index 8fc149665a..e2e47c38a6 100644 --- a/Cisco/Meraki/PortStatusResponse.html +++ b/Cisco/Meraki/PortStatusResponse.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7691,7 +7691,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/RSSI.html b/Cisco/Meraki/RSSI.html index 282fab8ab7..123e03754a 100644 --- a/Cisco/Meraki/RSSI.html +++ b/Cisco/Meraki/RSSI.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/WebhookAlert.html b/Cisco/Meraki/WebhookAlert.html index c7edea8de1..b8d2bd34c8 100644 --- a/Cisco/Meraki/WebhookAlert.html +++ b/Cisco/Meraki/WebhookAlert.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/WebhookAlert/PortData.html b/Cisco/Meraki/WebhookAlert/PortData.html index 91fa9335d9..fea400b00c 100644 --- a/Cisco/Meraki/WebhookAlert/PortData.html +++ b/Cisco/Meraki/WebhookAlert/PortData.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Cisco/Meraki/ZoneDetails.html b/Cisco/Meraki/ZoneDetails.html index ba78e6e883..f062af619a 100644 --- a/Cisco/Meraki/ZoneDetails.html +++ b/Cisco/Meraki/ZoneDetails.html @@ -7347,7 +7347,7 @@

- + cisco/meraki/scanning_api.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit.html b/Cisco/RoomKit.html index 950c52a193..095a9e4eea 100644 --- a/Cisco/RoomKit.html +++ b/Cisco/RoomKit.html @@ -7343,7 +7343,7 @@

- + cisco/room_kit.cr @@ -8384,7 +8384,7 @@


- [View source] + [View source]
@@ -8414,7 +8414,7 @@


- [View source] + [View source]
@@ -8430,7 +8430,7 @@


- [View source] + [View source]
@@ -8446,7 +8446,7 @@


- [View source] + [View source]
@@ -8462,7 +8462,7 @@


- [View source] + [View source]
@@ -8478,7 +8478,7 @@


- [View source] + [View source]
@@ -8494,7 +8494,7 @@


- [View source] + [View source]
@@ -8510,7 +8510,7 @@


- [View source] + [View source]
@@ -8526,7 +8526,7 @@


- [View source] + [View source]
@@ -8542,7 +8542,7 @@


- [View source] + [View source]
@@ -8558,7 +8558,7 @@


- [View source] + [View source]
@@ -8574,7 +8574,7 @@


- [View source] + [View source]
@@ -8590,7 +8590,7 @@


- [View source] + [View source]
@@ -8606,7 +8606,7 @@


- [View source] + [View source]
@@ -8622,7 +8622,7 @@


- [View source] + [View source]
@@ -8638,7 +8638,7 @@


- [View source] + [View source]
@@ -8654,7 +8654,7 @@


- [View source] + [View source]
@@ -8670,7 +8670,7 @@


- [View source] + [View source]
@@ -8686,7 +8686,7 @@


- [View source] + [View source]
@@ -8702,7 +8702,7 @@


- [View source] + [View source]
@@ -8718,7 +8718,7 @@


- [View source] + [View source]
@@ -8734,7 +8734,7 @@


- [View source] + [View source]
@@ -8759,7 +8759,7 @@


- [View source] + [View source]
@@ -8786,7 +8786,7 @@


- [View source] + [View source]
@@ -8802,7 +8802,7 @@


- [View source] + [View source]
@@ -8818,7 +8818,7 @@


- [View source] + [View source]
@@ -8834,7 +8834,7 @@


- [View source] + [View source]
@@ -8850,7 +8850,7 @@


- [View source] + [View source]
@@ -8866,7 +8866,7 @@


- [View source] + [View source]
@@ -8882,7 +8882,7 @@


- [View source] + [View source]
@@ -8898,7 +8898,7 @@


- [View source] + [View source]
@@ -8914,7 +8914,7 @@


- [View source] + [View source]
@@ -8930,7 +8930,7 @@


- [View source] + [View source]
@@ -8946,7 +8946,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/CallType.html b/Cisco/RoomKit/CallType.html index 80fd5a936d..d92d3c6316 100644 --- a/Cisco/RoomKit/CallType.html +++ b/Cisco/RoomKit/CallType.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/DialProtocol.html b/Cisco/RoomKit/DialProtocol.html index 73ed0e0d19..85aa45099a 100644 --- a/Cisco/RoomKit/DialProtocol.html +++ b/Cisco/RoomKit/DialProtocol.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/LayoutFamily.html b/Cisco/RoomKit/LayoutFamily.html index 76e611f481..e8cc2b1ab9 100644 --- a/Cisco/RoomKit/LayoutFamily.html +++ b/Cisco/RoomKit/LayoutFamily.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/LayoutTarget.html b/Cisco/RoomKit/LayoutTarget.html index bdaeb5f9a3..f47cb70fa2 100644 --- a/Cisco/RoomKit/LayoutTarget.html +++ b/Cisco/RoomKit/LayoutTarget.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/MonitorRole.html b/Cisco/RoomKit/MonitorRole.html index 1bc5da2fcd..18755fe7f3 100644 --- a/Cisco/RoomKit/MonitorRole.html +++ b/Cisco/RoomKit/MonitorRole.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/PhonebookType.html b/Cisco/RoomKit/PhonebookType.html index 06f09d5849..431fa72720 100644 --- a/Cisco/RoomKit/PhonebookType.html +++ b/Cisco/RoomKit/PhonebookType.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/PiPPosition.html b/Cisco/RoomKit/PiPPosition.html index cedc5d99c0..dc3f585463 100644 --- a/Cisco/RoomKit/PiPPosition.html +++ b/Cisco/RoomKit/PiPPosition.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/PresentationMode.html b/Cisco/RoomKit/PresentationMode.html index c72e732f1f..945d138411 100644 --- a/Cisco/RoomKit/PresentationMode.html +++ b/Cisco/RoomKit/PresentationMode.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/Sound.html b/Cisco/RoomKit/Sound.html index 04557c123b..e22f115d17 100644 --- a/Cisco/RoomKit/Sound.html +++ b/Cisco/RoomKit/Sound.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/Toogle.html b/Cisco/RoomKit/Toogle.html index 6f747c3c9a..e9f600c2ea 100644 --- a/Cisco/RoomKit/Toogle.html +++ b/Cisco/RoomKit/Toogle.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomKit/VideoLayout.html b/Cisco/RoomKit/VideoLayout.html index 55166077d3..1d99c4daad 100644 --- a/Cisco/RoomKit/VideoLayout.html +++ b/Cisco/RoomKit/VideoLayout.html @@ -7317,7 +7317,7 @@

- + cisco/room_kit.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Cisco/RoomOS.html b/Cisco/RoomOS.html index 2a7929adb2..5fc1f50e2b 100644 --- a/Cisco/RoomOS.html +++ b/Cisco/RoomOS.html @@ -7335,7 +7335,7 @@

- + cisco/room_os.cr @@ -7716,7 +7716,7 @@


- [View source] + [View source]
diff --git a/Cisco/SpacesRoom.html b/Cisco/SpacesRoom.html index 355b8b80b6..21be2fd870 100644 --- a/Cisco/SpacesRoom.html +++ b/Cisco/SpacesRoom.html @@ -7333,7 +7333,7 @@

- + cisco/spaces_room.cr @@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
diff --git a/Cisco/Switch.html b/Cisco/Switch.html index 23bf483483..bdc3c1332e 100644 --- a/Cisco/Switch.html +++ b/Cisco/Switch.html @@ -7317,7 +7317,7 @@

- + cisco/switch/snooping_catalyst.cr diff --git a/Cisco/Switch/SnoopingCatalyst.html b/Cisco/Switch/SnoopingCatalyst.html index 637a1e89d1..1595e874b0 100644 --- a/Cisco/Switch/SnoopingCatalyst.html +++ b/Cisco/Switch/SnoopingCatalyst.html @@ -7319,7 +7319,7 @@

- + cisco/switch/snooping_catalyst.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
diff --git a/Cisco/UIExtender.html b/Cisco/UIExtender.html index 3da192c87c..05ab2edcb7 100644 --- a/Cisco/UIExtender.html +++ b/Cisco/UIExtender.html @@ -7319,7 +7319,7 @@

- + cisco/ui_extender.cr @@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7764,7 +7764,7 @@


- [View source] + [View source]
@@ -7780,7 +7780,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7812,7 +7812,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7896,7 +7896,7 @@


- [View source] + [View source]
diff --git a/Cisco/UIExtender/Binding.html b/Cisco/UIExtender/Binding.html index 85868c865f..2e2ccd38aa 100644 --- a/Cisco/UIExtender/Binding.html +++ b/Cisco/UIExtender/Binding.html @@ -7327,7 +7327,7 @@

- + cisco/ui_extender.cr diff --git a/Cisco/UIExtender/Bindings.html b/Cisco/UIExtender/Bindings.html index 09fe7048c2..76b730c4d3 100644 --- a/Cisco/UIExtender/Bindings.html +++ b/Cisco/UIExtender/Bindings.html @@ -7338,7 +7338,7 @@

- + cisco/ui_extender.cr diff --git a/Cisco/Webex.html b/Cisco/Webex.html index cc0e004f44..ca4d99f98a 100644 --- a/Cisco/Webex.html +++ b/Cisco/Webex.html @@ -7317,182 +7317,182 @@

- + cisco/webex/api/messages.cr
- + cisco/webex/api/people.cr
- + cisco/webex/api/rooms.cr
- + cisco/webex/client.cr
- + cisco/webex/command.cr
- + cisco/webex/commands/echo.cr
- + cisco/webex/commands/greeting.cr
- + cisco/webex/constants.cr
- + cisco/webex/exceptions/argument.cr
- + cisco/webex/exceptions/method.cr
- + cisco/webex/exceptions/rate_limit.cr
- + cisco/webex/exceptions/status_code.cr
- + cisco/webex/models/device.cr
- + cisco/webex/models/event.cr
- + cisco/webex/models/events/activity.cr
- + cisco/webex/models/events/actor.cr
- + cisco/webex/models/events/data.cr
- + cisco/webex/models/events/target.cr
- + cisco/webex/models/events/type.cr
- + cisco/webex/models/message.cr
- + cisco/webex/models/peek.cr
- + cisco/webex/models/person.cr
- + cisco/webex/models/room.cr
- + cisco/webex/session.cr
- + cisco/webex/status_code.cr
- + cisco/webex/utils.cr diff --git a/Cisco/Webex/Api.html b/Cisco/Webex/Api.html index b55d0fb5cc..0f6c92a2d5 100644 --- a/Cisco/Webex/Api.html +++ b/Cisco/Webex/Api.html @@ -7317,21 +7317,21 @@

- + cisco/webex/api/messages.cr
- + cisco/webex/api/people.cr
- + cisco/webex/api/rooms.cr diff --git a/Cisco/Webex/Api/Messages.html b/Cisco/Webex/Api/Messages.html index 8493b56a57..1444268947 100644 --- a/Cisco/Webex/Api/Messages.html +++ b/Cisco/Webex/Api/Messages.html @@ -7319,7 +7319,7 @@

- + cisco/webex/api/messages.cr @@ -7438,7 +7438,7 @@


- [View source] + [View source]
@@ -7470,7 +7470,7 @@


- [View source] + [View source]
@@ -7486,7 +7486,7 @@


- [View source] + [View source]
@@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Api/People.html b/Cisco/Webex/Api/People.html index dc98d3a828..4be6b15315 100644 --- a/Cisco/Webex/Api/People.html +++ b/Cisco/Webex/Api/People.html @@ -7319,7 +7319,7 @@

- + cisco/webex/api/people.cr @@ -7423,7 +7423,7 @@


- [View source] + [View source]
@@ -7455,7 +7455,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Api/Rooms.html b/Cisco/Webex/Api/Rooms.html index 97e3387a26..4d401c16b1 100644 --- a/Cisco/Webex/Api/Rooms.html +++ b/Cisco/Webex/Api/Rooms.html @@ -7319,7 +7319,7 @@

- + cisco/webex/api/rooms.cr @@ -7438,7 +7438,7 @@


- [View source] + [View source]
@@ -7470,7 +7470,7 @@


- [View source] + [View source]
@@ -7486,7 +7486,7 @@


- [View source] + [View source]
@@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Client.html b/Cisco/Webex/Client.html index d5974f0f77..eba85748ea 100644 --- a/Cisco/Webex/Client.html +++ b/Cisco/Webex/Client.html @@ -7319,7 +7319,7 @@

- + cisco/webex/client.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Command.html b/Cisco/Webex/Command.html index d5d2fe1e0f..d78a3dd343 100644 --- a/Cisco/Webex/Command.html +++ b/Cisco/Webex/Command.html @@ -7335,7 +7335,7 @@

- + cisco/webex/command.cr @@ -7438,7 +7438,7 @@


- [View source] + [View source]
@@ -7454,7 +7454,7 @@


- [View source] + [View source]
@@ -7470,7 +7470,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Commands.html b/Cisco/Webex/Commands.html index d394013eb4..fa38e7ce40 100644 --- a/Cisco/Webex/Commands.html +++ b/Cisco/Webex/Commands.html @@ -7317,14 +7317,14 @@

- + cisco/webex/commands/echo.cr
- + cisco/webex/commands/greeting.cr diff --git a/Cisco/Webex/Commands/Echo.html b/Cisco/Webex/Commands/Echo.html index a7f48482e7..edb107a6c6 100644 --- a/Cisco/Webex/Commands/Echo.html +++ b/Cisco/Webex/Commands/Echo.html @@ -7319,7 +7319,7 @@

- + cisco/webex/commands/echo.cr @@ -7454,7 +7454,7 @@


- [View source] + [View source]
@@ -7470,7 +7470,7 @@


- [View source] + [View source]
@@ -7486,7 +7486,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Commands/Greeting.html b/Cisco/Webex/Commands/Greeting.html index 21491d3c18..4a4ed1e9ec 100644 --- a/Cisco/Webex/Commands/Greeting.html +++ b/Cisco/Webex/Commands/Greeting.html @@ -7319,7 +7319,7 @@

- + cisco/webex/commands/greeting.cr @@ -7454,7 +7454,7 @@


- [View source] + [View source]
@@ -7470,7 +7470,7 @@


- [View source] + [View source]
@@ -7486,7 +7486,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Constants.html b/Cisco/Webex/Constants.html index 774ad5f127..f9c3e3c6e4 100644 --- a/Cisco/Webex/Constants.html +++ b/Cisco/Webex/Constants.html @@ -7317,7 +7317,7 @@

- + cisco/webex/constants.cr diff --git a/Cisco/Webex/Exceptions.html b/Cisco/Webex/Exceptions.html index 885f427ad6..f57ca34ed9 100644 --- a/Cisco/Webex/Exceptions.html +++ b/Cisco/Webex/Exceptions.html @@ -7317,28 +7317,28 @@

- + cisco/webex/exceptions/argument.cr
- + cisco/webex/exceptions/method.cr
- + cisco/webex/exceptions/rate_limit.cr
- + cisco/webex/exceptions/status_code.cr diff --git a/Cisco/Webex/Exceptions/Argument.html b/Cisco/Webex/Exceptions/Argument.html index a62c932f25..ac2f1d7a51 100644 --- a/Cisco/Webex/Exceptions/Argument.html +++ b/Cisco/Webex/Exceptions/Argument.html @@ -7319,7 +7319,7 @@

- + cisco/webex/exceptions/argument.cr diff --git a/Cisco/Webex/Exceptions/Method.html b/Cisco/Webex/Exceptions/Method.html index bdf04ff8ef..20b5887494 100644 --- a/Cisco/Webex/Exceptions/Method.html +++ b/Cisco/Webex/Exceptions/Method.html @@ -7319,7 +7319,7 @@

- + cisco/webex/exceptions/method.cr diff --git a/Cisco/Webex/Exceptions/RateLimit.html b/Cisco/Webex/Exceptions/RateLimit.html index e7fbe87b5c..8646f4daa3 100644 --- a/Cisco/Webex/Exceptions/RateLimit.html +++ b/Cisco/Webex/Exceptions/RateLimit.html @@ -7319,7 +7319,7 @@

- + cisco/webex/exceptions/rate_limit.cr diff --git a/Cisco/Webex/Exceptions/StatusCode.html b/Cisco/Webex/Exceptions/StatusCode.html index 72c0d175cf..5c907d77ae 100644 --- a/Cisco/Webex/Exceptions/StatusCode.html +++ b/Cisco/Webex/Exceptions/StatusCode.html @@ -7319,7 +7319,7 @@

- + cisco/webex/exceptions/status_code.cr diff --git a/Cisco/Webex/InstantConnect.html b/Cisco/Webex/InstantConnect.html index 42f3d9958b..cab6e69a06 100644 --- a/Cisco/Webex/InstantConnect.html +++ b/Cisco/Webex/InstantConnect.html @@ -7319,7 +7319,7 @@

- + cisco/webex/instant_connect.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7503,7 +7503,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/InstantConnect/JoseEncryptResponse.html b/Cisco/Webex/InstantConnect/JoseEncryptResponse.html index 80c1c681a0..4eb69a3846 100644 --- a/Cisco/Webex/InstantConnect/JoseEncryptResponse.html +++ b/Cisco/Webex/InstantConnect/JoseEncryptResponse.html @@ -7347,7 +7347,7 @@

- + cisco/webex/instant_connect.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/InstantConnect/MeetingDetails.html b/Cisco/Webex/InstantConnect/MeetingDetails.html index db47ec91ba..e22dc9f79f 100644 --- a/Cisco/Webex/InstantConnect/MeetingDetails.html +++ b/Cisco/Webex/InstantConnect/MeetingDetails.html @@ -7347,7 +7347,7 @@

- + cisco/webex/instant_connect.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models.html b/Cisco/Webex/Models.html index 5485355988..d58cf71d09 100644 --- a/Cisco/Webex/Models.html +++ b/Cisco/Webex/Models.html @@ -7317,77 +7317,77 @@

- + cisco/webex/models/device.cr
- + cisco/webex/models/event.cr
- + cisco/webex/models/events/activity.cr
- + cisco/webex/models/events/actor.cr
- + cisco/webex/models/events/data.cr
- + cisco/webex/models/events/target.cr
- + cisco/webex/models/events/type.cr
- + cisco/webex/models/message.cr
- + cisco/webex/models/peek.cr
- + cisco/webex/models/person.cr
- + cisco/webex/models/room.cr diff --git a/Cisco/Webex/Models/Device.html b/Cisco/Webex/Models/Device.html index 0c283e6081..cf66caca23 100644 --- a/Cisco/Webex/Models/Device.html +++ b/Cisco/Webex/Models/Device.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/device.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Event.html b/Cisco/Webex/Models/Event.html index 43aeae90b3..652f477d47 100644 --- a/Cisco/Webex/Models/Event.html +++ b/Cisco/Webex/Models/Event.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/event.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Events.html b/Cisco/Webex/Models/Events.html index 6c15687166..7992efa5ad 100644 --- a/Cisco/Webex/Models/Events.html +++ b/Cisco/Webex/Models/Events.html @@ -7317,35 +7317,35 @@

- + cisco/webex/models/events/activity.cr
- + cisco/webex/models/events/actor.cr
- + cisco/webex/models/events/data.cr
- + cisco/webex/models/events/target.cr
- + cisco/webex/models/events/type.cr diff --git a/Cisco/Webex/Models/Events/Activity.html b/Cisco/Webex/Models/Events/Activity.html index 6e3d38124c..5337cefe6d 100644 --- a/Cisco/Webex/Models/Events/Activity.html +++ b/Cisco/Webex/Models/Events/Activity.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/events/activity.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Events/Actor.html b/Cisco/Webex/Models/Events/Actor.html index d0b1633299..c66a0870d0 100644 --- a/Cisco/Webex/Models/Events/Actor.html +++ b/Cisco/Webex/Models/Events/Actor.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/events/actor.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Events/Data.html b/Cisco/Webex/Models/Events/Data.html index 801f70ac28..8bb2741cd0 100644 --- a/Cisco/Webex/Models/Events/Data.html +++ b/Cisco/Webex/Models/Events/Data.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/events/data.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Events/Target.html b/Cisco/Webex/Models/Events/Target.html index f5c0ac7470..ef520f8f3b 100644 --- a/Cisco/Webex/Models/Events/Target.html +++ b/Cisco/Webex/Models/Events/Target.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/events/target.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Events/Type.html b/Cisco/Webex/Models/Events/Type.html index 06b5414f8c..f7703cdb10 100644 --- a/Cisco/Webex/Models/Events/Type.html +++ b/Cisco/Webex/Models/Events/Type.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/events/type.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Message.html b/Cisco/Webex/Models/Message.html index cb18a5fff6..f8fa504911 100644 --- a/Cisco/Webex/Models/Message.html +++ b/Cisco/Webex/Models/Message.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/message.cr @@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7860,7 +7860,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7944,7 +7944,7 @@


- [View source] + [View source]
@@ -7965,7 +7965,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8007,7 +8007,7 @@


- [View source] + [View source]
@@ -8028,7 +8028,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8091,7 +8091,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8133,7 +8133,7 @@


- [View source] + [View source]
@@ -8154,7 +8154,7 @@


- [View source] + [View source]
@@ -8175,7 +8175,7 @@


- [View source] + [View source]
@@ -8196,7 +8196,7 @@


- [View source] + [View source]
@@ -8217,7 +8217,7 @@


- [View source] + [View source]
@@ -8238,7 +8238,7 @@


- [View source] + [View source]
@@ -8259,7 +8259,7 @@


- [View source] + [View source]
@@ -8280,7 +8280,7 @@


- [View source] + [View source]
@@ -8301,7 +8301,7 @@


- [View source] + [View source]
@@ -8322,7 +8322,7 @@


- [View source] + [View source]
@@ -8343,7 +8343,7 @@


- [View source] + [View source]
@@ -8364,7 +8364,7 @@


- [View source] + [View source]
@@ -8385,7 +8385,7 @@


- [View source] + [View source]
@@ -8406,7 +8406,7 @@


- [View source] + [View source]
@@ -8427,7 +8427,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Peek.html b/Cisco/Webex/Models/Peek.html index 506f050691..e6e64c638a 100644 --- a/Cisco/Webex/Models/Peek.html +++ b/Cisco/Webex/Models/Peek.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/peek.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Person.html b/Cisco/Webex/Models/Person.html index a7a9f72893..08ccce91b8 100644 --- a/Cisco/Webex/Models/Person.html +++ b/Cisco/Webex/Models/Person.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/person.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Models/Room.html b/Cisco/Webex/Models/Room.html index 5407422a9f..e50b9c272a 100644 --- a/Cisco/Webex/Models/Room.html +++ b/Cisco/Webex/Models/Room.html @@ -7347,7 +7347,7 @@

- + cisco/webex/models/room.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7979,7 +7979,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Session.html b/Cisco/Webex/Session.html index 9f02c36ef1..3244df8d3a 100644 --- a/Cisco/Webex/Session.html +++ b/Cisco/Webex/Session.html @@ -7319,7 +7319,7 @@

- + cisco/webex/session.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/StatusCode.html b/Cisco/Webex/StatusCode.html index 1d915fbd35..6378068ab8 100644 --- a/Cisco/Webex/StatusCode.html +++ b/Cisco/Webex/StatusCode.html @@ -7319,7 +7319,7 @@

- + cisco/webex/status_code.cr @@ -7428,7 +7428,7 @@


- [View source] + [View source]
@@ -7460,7 +7460,7 @@


- [View source] + [View source]
@@ -7476,7 +7476,7 @@


- [View source] + [View source]
diff --git a/Cisco/Webex/Utils.html b/Cisco/Webex/Utils.html index 478c344159..f005bcfb09 100644 --- a/Cisco/Webex/Utils.html +++ b/Cisco/Webex/Utils.html @@ -7317,7 +7317,7 @@

- + cisco/webex/utils.cr @@ -7385,7 +7385,7 @@


- [View source] + [View source]
@@ -7401,7 +7401,7 @@


- [View source] + [View source]
diff --git a/Clipsal.html b/Clipsal.html index 68bb5063de..4fce8b18e3 100644 --- a/Clipsal.html +++ b/Clipsal.html @@ -7317,7 +7317,7 @@

- + clipsal/c_bus.cr diff --git a/Clipsal/CBus.html b/Clipsal/CBus.html index 000af8d6ab..6da79ec86a 100644 --- a/Clipsal/CBus.html +++ b/Clipsal/CBus.html @@ -7335,7 +7335,7 @@

- + clipsal/c_bus.cr @@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
diff --git a/Clipsal/CBus/Area.html b/Clipsal/CBus/Area.html index 46676d4f68..90882e1a98 100644 --- a/Clipsal/CBus/Area.html +++ b/Clipsal/CBus/Area.html @@ -7327,7 +7327,7 @@

- + clipsal/c_bus.cr diff --git a/Company3M.html b/Company3M.html index bb8182c1c4..b52e6bfc2a 100644 --- a/Company3M.html +++ b/Company3M.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr diff --git a/Company3M/Displays.html b/Company3M/Displays.html index 7b49757119..50e873c4dc 100644 --- a/Company3M/Displays.html +++ b/Company3M/Displays.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr diff --git a/Company3M/Displays/WallDisplay.html b/Company3M/Displays/WallDisplay.html index 18313a8d11..61d6be0836 100644 --- a/Company3M/Displays/WallDisplay.html +++ b/Company3M/Displays/WallDisplay.html @@ -7337,7 +7337,7 @@

- + company_3m/displays/wall_display.cr @@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/ColourTemp.html b/Company3M/Displays/WallDisplay/ColourTemp.html index 052038cf2b..1b96f5c67b 100644 --- a/Company3M/Displays/WallDisplay/ColourTemp.html +++ b/Company3M/Displays/WallDisplay/ColourTemp.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/Command.html b/Company3M/Displays/WallDisplay/Command.html index 5497ac6794..24f97a5b4d 100644 --- a/Company3M/Displays/WallDisplay/Command.html +++ b/Company3M/Displays/WallDisplay/Command.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/Input.html b/Company3M/Displays/WallDisplay/Input.html index 3738a59261..0a98dd26b1 100644 --- a/Company3M/Displays/WallDisplay/Input.html +++ b/Company3M/Displays/WallDisplay/Input.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/MessageSender.html b/Company3M/Displays/WallDisplay/MessageSender.html index c7377e1621..bd138f324c 100644 --- a/Company3M/Displays/WallDisplay/MessageSender.html +++ b/Company3M/Displays/WallDisplay/MessageSender.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7455,7 +7455,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/MessageType.html b/Company3M/Displays/WallDisplay/MessageType.html index 75469baaee..5fe462f781 100644 --- a/Company3M/Displays/WallDisplay/MessageType.html +++ b/Company3M/Displays/WallDisplay/MessageType.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/MonitorID.html b/Company3M/Displays/WallDisplay/MonitorID.html index 2e8d312e43..b582fa794a 100644 --- a/Company3M/Displays/WallDisplay/MonitorID.html +++ b/Company3M/Displays/WallDisplay/MonitorID.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/RequestPacket.html b/Company3M/Displays/WallDisplay/RequestPacket.html index c3b45c23d5..e9cba50d57 100644 --- a/Company3M/Displays/WallDisplay/RequestPacket.html +++ b/Company3M/Displays/WallDisplay/RequestPacket.html @@ -7319,7 +7319,7 @@

- + company_3m/displays/wall_display.cr @@ -7892,7 +7892,7 @@


- [View source] + [View source]
@@ -7920,7 +7920,7 @@


- [View source] + [View source]
@@ -7936,7 +7936,7 @@


- [View source] + [View source]
@@ -7952,7 +7952,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8160,7 +8160,7 @@


- [View source] + [View source]
@@ -8176,7 +8176,7 @@


- [View source] + [View source]
@@ -8192,7 +8192,7 @@


- [View source] + [View source]
@@ -8208,7 +8208,7 @@


- [View source] + [View source]
@@ -8224,7 +8224,7 @@


- [View source] + [View source]
@@ -8240,7 +8240,7 @@


- [View source] + [View source]
@@ -8256,7 +8256,7 @@


- [View source] + [View source]
@@ -8272,7 +8272,7 @@


- [View source] + [View source]
@@ -8288,7 +8288,7 @@


- [View source] + [View source]
@@ -8304,7 +8304,7 @@


- [View source] + [View source]
@@ -8320,7 +8320,7 @@


- [View source] + [View source]
@@ -8336,7 +8336,7 @@


- [View source] + [View source]
@@ -8352,7 +8352,7 @@


- [View source] + [View source]
@@ -8368,7 +8368,7 @@


- [View source] + [View source]
@@ -8384,7 +8384,7 @@


- [View source] + [View source]
@@ -8400,7 +8400,7 @@


- [View source] + [View source]
@@ -8416,7 +8416,7 @@


- [View source] + [View source]
@@ -8432,7 +8432,7 @@


- [View source] + [View source]
@@ -8448,7 +8448,7 @@


- [View source] + [View source]
@@ -8464,7 +8464,7 @@


- [View source] + [View source]
@@ -8480,7 +8480,7 @@


- [View source] + [View source]
@@ -8496,7 +8496,7 @@


- [View source] + [View source]
@@ -8512,7 +8512,7 @@


- [View source] + [View source]
@@ -8528,7 +8528,7 @@


- [View source] + [View source]
@@ -8544,7 +8544,7 @@


- [View source] + [View source]
@@ -8560,7 +8560,7 @@


- [View source] + [View source]
@@ -8576,7 +8576,7 @@


- [View source] + [View source]
@@ -8592,7 +8592,7 @@


- [View source] + [View source]
@@ -8608,7 +8608,7 @@


- [View source] + [View source]
@@ -8624,7 +8624,7 @@


- [View source] + [View source]
@@ -8640,7 +8640,7 @@


- [View source] + [View source]
@@ -8656,7 +8656,7 @@


- [View source] + [View source]
@@ -8672,7 +8672,7 @@


- [View source] + [View source]
@@ -8688,7 +8688,7 @@


- [View source] + [View source]
@@ -8704,7 +8704,7 @@


- [View source] + [View source]
@@ -8720,7 +8720,7 @@


- [View source] + [View source]
@@ -8736,7 +8736,7 @@


- [View source] + [View source]
@@ -8764,7 +8764,7 @@


- [View source] + [View source]
@@ -8780,7 +8780,7 @@


- [View source] + [View source]
@@ -9104,7 +9104,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/ResponsePacket.html b/Company3M/Displays/WallDisplay/ResponsePacket.html index bb4c7e1826..e4908d688d 100644 --- a/Company3M/Displays/WallDisplay/ResponsePacket.html +++ b/Company3M/Displays/WallDisplay/ResponsePacket.html @@ -7319,7 +7319,7 @@

- + company_3m/displays/wall_display.cr @@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7976,7 +7976,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
@@ -8008,7 +8008,7 @@


- [View source] + [View source]
@@ -8024,7 +8024,7 @@


- [View source] + [View source]
@@ -8040,7 +8040,7 @@


- [View source] + [View source]
@@ -8056,7 +8056,7 @@


- [View source] + [View source]
@@ -8072,7 +8072,7 @@


- [View source] + [View source]
@@ -8088,7 +8088,7 @@


- [View source] + [View source]
@@ -8104,7 +8104,7 @@


- [View source] + [View source]
@@ -8120,7 +8120,7 @@


- [View source] + [View source]
@@ -8136,7 +8136,7 @@


- [View source] + [View source]
@@ -8152,7 +8152,7 @@


- [View source] + [View source]
@@ -8168,7 +8168,7 @@


- [View source] + [View source]
@@ -8184,7 +8184,7 @@


- [View source] + [View source]
@@ -8200,7 +8200,7 @@


- [View source] + [View source]
@@ -8216,7 +8216,7 @@


- [View source] + [View source]
@@ -8232,7 +8232,7 @@


- [View source] + [View source]
@@ -8248,7 +8248,7 @@


- [View source] + [View source]
@@ -8264,7 +8264,7 @@


- [View source] + [View source]
@@ -8280,7 +8280,7 @@


- [View source] + [View source]
@@ -8296,7 +8296,7 @@


- [View source] + [View source]
@@ -8312,7 +8312,7 @@


- [View source] + [View source]
@@ -8328,7 +8328,7 @@


- [View source] + [View source]
@@ -8344,7 +8344,7 @@


- [View source] + [View source]
@@ -8360,7 +8360,7 @@


- [View source] + [View source]
@@ -8376,7 +8376,7 @@


- [View source] + [View source]
@@ -8392,7 +8392,7 @@


- [View source] + [View source]
@@ -8408,7 +8408,7 @@


- [View source] + [View source]
@@ -8424,7 +8424,7 @@


- [View source] + [View source]
@@ -8440,7 +8440,7 @@


- [View source] + [View source]
@@ -8456,7 +8456,7 @@


- [View source] + [View source]
@@ -8472,7 +8472,7 @@


- [View source] + [View source]
@@ -8488,7 +8488,7 @@


- [View source] + [View source]
@@ -8504,7 +8504,7 @@


- [View source] + [View source]
@@ -8520,7 +8520,7 @@


- [View source] + [View source]
@@ -8536,7 +8536,7 @@


- [View source] + [View source]
@@ -8552,7 +8552,7 @@


- [View source] + [View source]
@@ -8568,7 +8568,7 @@


- [View source] + [View source]
@@ -8584,7 +8584,7 @@


- [View source] + [View source]
@@ -8600,7 +8600,7 @@


- [View source] + [View source]
@@ -8616,7 +8616,7 @@


- [View source] + [View source]
@@ -8632,7 +8632,7 @@


- [View source] + [View source]
@@ -8648,7 +8648,7 @@


- [View source] + [View source]
@@ -8664,7 +8664,7 @@


- [View source] + [View source]
@@ -8680,7 +8680,7 @@


- [View source] + [View source]
@@ -8696,7 +8696,7 @@


- [View source] + [View source]
@@ -8712,7 +8712,7 @@


- [View source] + [View source]
@@ -8728,7 +8728,7 @@


- [View source] + [View source]
@@ -8744,7 +8744,7 @@


- [View source] + [View source]
@@ -8760,7 +8760,7 @@


- [View source] + [View source]
@@ -8776,7 +8776,7 @@


- [View source] + [View source]
@@ -8792,7 +8792,7 @@


- [View source] + [View source]
@@ -8808,7 +8808,7 @@


- [View source] + [View source]
@@ -8836,7 +8836,7 @@


- [View source] + [View source]
@@ -8880,7 +8880,7 @@


- [View source] + [View source]
@@ -9316,7 +9316,7 @@


- [View source] + [View source]
@@ -9332,7 +9332,7 @@


- [View source] + [View source]
diff --git a/Company3M/Displays/WallDisplay/ResultCode.html b/Company3M/Displays/WallDisplay/ResultCode.html index 5d74c74092..8482b01fea 100644 --- a/Company3M/Displays/WallDisplay/ResultCode.html +++ b/Company3M/Displays/WallDisplay/ResultCode.html @@ -7317,7 +7317,7 @@

- + company_3m/displays/wall_display.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Crestron.html b/Crestron.html index 09507c7efa..a3c3df26f5 100644 --- a/Crestron.html +++ b/Crestron.html @@ -7317,7 +7317,7 @@

- + crestron/nvx_models.cr diff --git a/Crestron/AspectRatio.html b/Crestron/AspectRatio.html index eccbcd88f3..76c515372b 100644 --- a/Crestron/AspectRatio.html +++ b/Crestron/AspectRatio.html @@ -7317,7 +7317,7 @@

- + crestron/nvx_models.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Crestron/CresNext.html b/Crestron/CresNext.html index 1d3501709b..89183bc669 100644 --- a/Crestron/CresNext.html +++ b/Crestron/CresNext.html @@ -7360,7 +7360,7 @@

- + crestron/cres_next.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@

View source] + [View source] @@ -7582,7 +7582,7 @@

View source] + [View source] @@ -7598,7 +7598,7 @@

View source] + [View source] @@ -7614,7 +7614,7 @@

View source] + [View source] @@ -7630,7 +7630,7 @@

View source] + [View source] diff --git a/Crestron/CresNextAuth.html b/Crestron/CresNextAuth.html index ec4a06e2ad..663dc35e3d 100644 --- a/Crestron/CresNextAuth.html +++ b/Crestron/CresNextAuth.html @@ -7333,7 +7333,7 @@

- + crestron/cres_next_auth.cr @@ -7405,7 +7405,7 @@


- [View source] + [View source]
@@ -7421,7 +7421,7 @@


- [View source] + [View source]
diff --git a/Crestron/Fusion.html b/Crestron/Fusion.html index 6cc5d6e8a7..ed83eee633 100644 --- a/Crestron/Fusion.html +++ b/Crestron/Fusion.html @@ -7332,7 +7332,7 @@

- + crestron/fusion.cr @@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxAddressManager.html b/Crestron/NvxAddressManager.html index 9ed71182d2..26a050ea34 100644 --- a/Crestron/NvxAddressManager.html +++ b/Crestron/NvxAddressManager.html @@ -7319,7 +7319,7 @@

- + crestron/nvx_address_manager.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxRx.html b/Crestron/NvxRx.html index 584ca066bf..6eb4a291e6 100644 --- a/Crestron/NvxRx.html +++ b/Crestron/NvxRx.html @@ -7337,7 +7337,7 @@

- + crestron/nvx_rx.cr @@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxRx/Input.html b/Crestron/NvxRx/Input.html index b7086e40ce..c90076b4e0 100644 --- a/Crestron/NvxRx/Input.html +++ b/Crestron/NvxRx/Input.html @@ -7327,7 +7327,7 @@

- + crestron/nvx_rx.cr diff --git a/Crestron/NvxRx/Output.html b/Crestron/NvxRx/Output.html index d13c36b60a..4b55f5aec9 100644 --- a/Crestron/NvxRx/Output.html +++ b/Crestron/NvxRx/Output.html @@ -7327,7 +7327,7 @@

- + crestron/nvx_rx.cr diff --git a/Crestron/NvxRx/SourceType.html b/Crestron/NvxRx/SourceType.html index 32b3e18b98..b71ba08c66 100644 --- a/Crestron/NvxRx/SourceType.html +++ b/Crestron/NvxRx/SourceType.html @@ -7317,7 +7317,7 @@

- + crestron/nvx_rx.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxScalerControl.html b/Crestron/NvxScalerControl.html index d651dc5d31..ca9c2cc024 100644 --- a/Crestron/NvxScalerControl.html +++ b/Crestron/NvxScalerControl.html @@ -7319,7 +7319,7 @@

- + crestron/nvx_scaler_control.cr @@ -7490,7 +7490,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxTx.html b/Crestron/NvxTx.html index 496f17a010..ac48aa7748 100644 --- a/Crestron/NvxTx.html +++ b/Crestron/NvxTx.html @@ -7335,7 +7335,7 @@

- + crestron/nvx_tx.cr @@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
diff --git a/Crestron/NvxTx/Input.html b/Crestron/NvxTx/Input.html index 97321e65c6..41eed0751c 100644 --- a/Crestron/NvxTx/Input.html +++ b/Crestron/NvxTx/Input.html @@ -7317,7 +7317,7 @@

- + crestron/nvx_tx.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Crestron/OccupancySensor.html b/Crestron/OccupancySensor.html index 6d33675017..7211ffbf6d 100644 --- a/Crestron/OccupancySensor.html +++ b/Crestron/OccupancySensor.html @@ -7335,7 +7335,7 @@

- + crestron/occupancy_sensor.cr @@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
diff --git a/Crestron/Receiver.html b/Crestron/Receiver.html index abb55ffbb1..c5de89ce2a 100644 --- a/Crestron/Receiver.html +++ b/Crestron/Receiver.html @@ -7331,7 +7331,7 @@

- + crestron/nvx_models.cr diff --git a/Crestron/SourceType.html b/Crestron/SourceType.html index 3ebd4ede51..0f69a017fd 100644 --- a/Crestron/SourceType.html +++ b/Crestron/SourceType.html @@ -7317,7 +7317,7 @@

- + crestron/nvx_models.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Crestron/Transmitter.html b/Crestron/Transmitter.html index 30729eeff2..eba3c0fdbc 100644 --- a/Crestron/Transmitter.html +++ b/Crestron/Transmitter.html @@ -7342,7 +7342,7 @@

- + crestron/nvx_models.cr diff --git a/Crestron/VirtualSwitcher.html b/Crestron/VirtualSwitcher.html index 92d3328ffa..ccacb3d91c 100644 --- a/Crestron/VirtualSwitcher.html +++ b/Crestron/VirtualSwitcher.html @@ -7335,7 +7335,7 @@

- + crestron/virtual_switcher.cr @@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
diff --git a/Crestron/VirtualSwitcher/AudioSink.html b/Crestron/VirtualSwitcher/AudioSink.html index 3a810dc9d6..25d5edfad0 100644 --- a/Crestron/VirtualSwitcher/AudioSink.html +++ b/Crestron/VirtualSwitcher/AudioSink.html @@ -7347,7 +7347,7 @@

- + crestron/virtual_switcher.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Delta.html b/Delta.html index ed1308e41e..b00730cbb6 100644 --- a/Delta.html +++ b/Delta.html @@ -7317,70 +7317,70 @@

- + delta/models/device.cr
- + delta/models/generic_value.cr
- + delta/models/list_devices_by_site_name_response.cr
- + delta/models/list_objects_by_device_number_response.cr
- + delta/models/list_sites_response.cr
- + delta/models/local_value.cr
- + delta/models/object.cr
- + delta/models/property_identifier.cr
- + delta/models/reference.cr
- + delta/models/value_property.cr diff --git a/Delta/API.html b/Delta/API.html index 21dae65f40..0491c2a921 100644 --- a/Delta/API.html +++ b/Delta/API.html @@ -7319,7 +7319,7 @@

- + delta/api.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
diff --git a/Delta/Models.html b/Delta/Models.html index 669e926702..f7561e8546 100644 --- a/Delta/Models.html +++ b/Delta/Models.html @@ -7317,70 +7317,70 @@

- + delta/models/device.cr
- + delta/models/generic_value.cr
- + delta/models/list_devices_by_site_name_response.cr
- + delta/models/list_objects_by_device_number_response.cr
- + delta/models/list_sites_response.cr
- + delta/models/local_value.cr
- + delta/models/object.cr
- + delta/models/property_identifier.cr
- + delta/models/reference.cr
- + delta/models/value_property.cr diff --git a/Delta/Models/Device.html b/Delta/Models/Device.html index 628c4dfe22..e1bdfdeb21 100644 --- a/Delta/Models/Device.html +++ b/Delta/Models/Device.html @@ -7347,7 +7347,7 @@

- + delta/models/device.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/GenericValue.html b/Delta/Models/GenericValue.html index aaf8647e3e..98da8233d5 100644 --- a/Delta/Models/GenericValue.html +++ b/Delta/Models/GenericValue.html @@ -7347,7 +7347,7 @@

- + delta/models/generic_value.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/ListDevicesBySiteNameResponse.html b/Delta/Models/ListDevicesBySiteNameResponse.html index 4ea3d1b63f..f14aba7389 100644 --- a/Delta/Models/ListDevicesBySiteNameResponse.html +++ b/Delta/Models/ListDevicesBySiteNameResponse.html @@ -7349,7 +7349,7 @@

- + delta/models/list_devices_by_site_name_response.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/ListObjectsByDeviceNumber.html b/Delta/Models/ListObjectsByDeviceNumber.html index 0b9707f6c2..2b0b78f6d2 100644 --- a/Delta/Models/ListObjectsByDeviceNumber.html +++ b/Delta/Models/ListObjectsByDeviceNumber.html @@ -7349,7 +7349,7 @@

- + delta/models/list_objects_by_device_number_response.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/ListSitesResponse.html b/Delta/Models/ListSitesResponse.html index 2c51e00856..dc77f0cfd5 100644 --- a/Delta/Models/ListSitesResponse.html +++ b/Delta/Models/ListSitesResponse.html @@ -7349,7 +7349,7 @@

- + delta/models/list_sites_response.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/LocalValue.html b/Delta/Models/LocalValue.html index 7051d02d98..bf2e84f87e 100644 --- a/Delta/Models/LocalValue.html +++ b/Delta/Models/LocalValue.html @@ -7347,7 +7347,7 @@

- + delta/models/local_value.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/Object.html b/Delta/Models/Object.html index ee860ed615..6e61e3408a 100644 --- a/Delta/Models/Object.html +++ b/Delta/Models/Object.html @@ -7347,7 +7347,7 @@

- + delta/models/object.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/PropertyIdentifier.html b/Delta/Models/PropertyIdentifier.html index 469e59b691..71a881d5e8 100644 --- a/Delta/Models/PropertyIdentifier.html +++ b/Delta/Models/PropertyIdentifier.html @@ -7347,7 +7347,7 @@

- + delta/models/property_identifier.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/Reference.html b/Delta/Models/Reference.html index 176c5cf272..528c57ee3d 100644 --- a/Delta/Models/Reference.html +++ b/Delta/Models/Reference.html @@ -7347,7 +7347,7 @@

- + delta/models/reference.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/Delta/Models/ValueProperty.html b/Delta/Models/ValueProperty.html index 3869e90ba2..8851ac830b 100644 --- a/Delta/Models/ValueProperty.html +++ b/Delta/Models/ValueProperty.html @@ -7347,7 +7347,7 @@

- + delta/models/value_property.cr @@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7879,7 +7879,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7927,7 +7927,7 @@


- [View source] + [View source]
@@ -7943,7 +7943,7 @@


- [View source] + [View source]
@@ -7959,7 +7959,7 @@


- [View source] + [View source]
@@ -7975,7 +7975,7 @@


- [View source] + [View source]
@@ -7991,7 +7991,7 @@


- [View source] + [View source]
@@ -8007,7 +8007,7 @@


- [View source] + [View source]
@@ -8023,7 +8023,7 @@


- [View source] + [View source]
@@ -8039,7 +8039,7 @@


- [View source] + [View source]
@@ -8055,7 +8055,7 @@


- [View source] + [View source]
@@ -8071,7 +8071,7 @@


- [View source] + [View source]
@@ -8087,7 +8087,7 @@


- [View source] + [View source]
@@ -8103,7 +8103,7 @@


- [View source] + [View source]
@@ -8119,7 +8119,7 @@


- [View source] + [View source]
@@ -8135,7 +8135,7 @@


- [View source] + [View source]
@@ -8151,7 +8151,7 @@


- [View source] + [View source]
@@ -8167,7 +8167,7 @@


- [View source] + [View source]
@@ -8183,7 +8183,7 @@


- [View source] + [View source]
@@ -8199,7 +8199,7 @@


- [View source] + [View source]
@@ -8215,7 +8215,7 @@


- [View source] + [View source]
@@ -8231,7 +8231,7 @@


- [View source] + [View source]
@@ -8247,7 +8247,7 @@


- [View source] + [View source]
@@ -8263,7 +8263,7 @@


- [View source] + [View source]
@@ -8279,7 +8279,7 @@


- [View source] + [View source]
@@ -8295,7 +8295,7 @@


- [View source] + [View source]
@@ -8311,7 +8311,7 @@


- [View source] + [View source]
@@ -8327,7 +8327,7 @@


- [View source] + [View source]
@@ -8343,7 +8343,7 @@


- [View source] + [View source]
@@ -8359,7 +8359,7 @@


- [View source] + [View source]
@@ -8375,7 +8375,7 @@


- [View source] + [View source]
@@ -8391,7 +8391,7 @@


- [View source] + [View source]
diff --git a/Delta/UNOnext.html b/Delta/UNOnext.html index a989e2c8e1..076eb0c13d 100644 --- a/Delta/UNOnext.html +++ b/Delta/UNOnext.html @@ -7333,7 +7333,7 @@

- + delta/uno_next.cr @@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@

View source] + [View source] @@ -7635,7 +7635,7 @@

View source] + [View source] @@ -7651,7 +7651,7 @@

View source] + [View source] diff --git a/Delta/UNOnext/ManMap.html b/Delta/UNOnext/ManMap.html index 68d95accc4..832a76b0a5 100644 --- a/Delta/UNOnext/ManMap.html +++ b/Delta/UNOnext/ManMap.html @@ -7347,7 +7347,7 @@

- + delta/uno_next.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Delta/ZenPIRLocation.html b/Delta/ZenPIRLocation.html index da4a35ee8d..0ad3fa5439 100644 --- a/Delta/ZenPIRLocation.html +++ b/Delta/ZenPIRLocation.html @@ -7333,7 +7333,7 @@

- + delta/zen_pir_location.cr @@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@

View source] + [View source] @@ -7642,7 +7642,7 @@

View source] + [View source] @@ -7658,7 +7658,7 @@

View source] + [View source] @@ -7674,7 +7674,7 @@

View source] + [View source] @@ -7690,7 +7690,7 @@

View source] + [View source] @@ -7706,7 +7706,7 @@

View source] + [View source] diff --git a/Delta/ZenPIRLocation/Location.html b/Delta/ZenPIRLocation/Location.html index e7da5c6e7f..cf76aae69a 100644 --- a/Delta/ZenPIRLocation/Location.html +++ b/Delta/ZenPIRLocation/Location.html @@ -7347,7 +7347,7 @@

- + delta/zen_pir_location.cr @@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
diff --git a/Delta/ZenPIRLocation/PIR.html b/Delta/ZenPIRLocation/PIR.html index 050547bf45..63fc06c7d0 100644 --- a/Delta/ZenPIRLocation/PIR.html +++ b/Delta/ZenPIRLocation/PIR.html @@ -7347,7 +7347,7 @@

- + delta/zen_pir_location.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
diff --git a/Delta/ZenPIRLocation/PIRMap.html b/Delta/ZenPIRLocation/PIRMap.html index c4d0777a10..09196dc3cd 100644 --- a/Delta/ZenPIRLocation/PIRMap.html +++ b/Delta/ZenPIRLocation/PIRMap.html @@ -7347,7 +7347,7 @@

- + delta/zen_pir_location.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Denon.html b/Denon.html index a7d382cac6..e4c2e876e1 100644 --- a/Denon.html +++ b/Denon.html @@ -7328,7 +7328,7 @@

- + denon/amplifier/av_receiver.cr diff --git a/Denon/Amplifier.html b/Denon/Amplifier.html index c04c4e688e..ba01c33894 100644 --- a/Denon/Amplifier.html +++ b/Denon/Amplifier.html @@ -7317,7 +7317,7 @@

- + denon/amplifier/av_receiver.cr diff --git a/Denon/Amplifier/AvReceiver.html b/Denon/Amplifier/AvReceiver.html index c85bafc26a..9aa5b622a4 100644 --- a/Denon/Amplifier/AvReceiver.html +++ b/Denon/Amplifier/AvReceiver.html @@ -7335,7 +7335,7 @@

- + denon/amplifier/av_receiver.cr @@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
diff --git a/DigitalIO.html b/DigitalIO.html index f3a0b8c679..759850fa37 100644 --- a/DigitalIO.html +++ b/DigitalIO.html @@ -7319,7 +7319,7 @@

- + global_cache/ir_tv_spec.cr @@ -7526,7 +7526,7 @@


- [View source] + [View source]
diff --git a/Digraph.html b/Digraph.html index 2a70017526..9f8f4dfd50 100644 --- a/Digraph.html +++ b/Digraph.html @@ -7327,7 +7327,7 @@

- + place/router/digraph_spec.cr diff --git a/DispatchProtocol.html b/DispatchProtocol.html index d541dd1732..94d785081f 100644 --- a/DispatchProtocol.html +++ b/DispatchProtocol.html @@ -7319,7 +7319,7 @@

- + knx/disptach_model.cr @@ -7853,7 +7853,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8025,7 +8025,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
@@ -8121,7 +8121,7 @@


- [View source] + [View source]
@@ -8137,7 +8137,7 @@


- [View source] + [View source]
@@ -8153,7 +8153,7 @@


- [View source] + [View source]
@@ -8169,7 +8169,7 @@


- [View source] + [View source]
@@ -8185,7 +8185,7 @@


- [View source] + [View source]
@@ -8201,7 +8201,7 @@


- [View source] + [View source]
@@ -8217,7 +8217,7 @@


- [View source] + [View source]
@@ -8233,7 +8233,7 @@


- [View source] + [View source]
@@ -8249,7 +8249,7 @@


- [View source] + [View source]
@@ -8265,7 +8265,7 @@


- [View source] + [View source]
@@ -8281,7 +8281,7 @@


- [View source] + [View source]
@@ -8297,7 +8297,7 @@


- [View source] + [View source]
@@ -8313,7 +8313,7 @@


- [View source] + [View source]
@@ -8329,7 +8329,7 @@


- [View source] + [View source]
@@ -8345,7 +8345,7 @@


- [View source] + [View source]
@@ -8361,7 +8361,7 @@


- [View source] + [View source]
@@ -8377,7 +8377,7 @@


- [View source] + [View source]
@@ -8393,7 +8393,7 @@


- [View source] + [View source]
@@ -8409,7 +8409,7 @@


- [View source] + [View source]
@@ -8425,7 +8425,7 @@


- [View source] + [View source]
@@ -8441,7 +8441,7 @@


- [View source] + [View source]
@@ -8457,7 +8457,7 @@


- [View source] + [View source]
@@ -8473,7 +8473,7 @@


- [View source] + [View source]
@@ -8489,7 +8489,7 @@


- [View source] + [View source]
@@ -8505,7 +8505,7 @@


- [View source] + [View source]
@@ -8521,7 +8521,7 @@


- [View source] + [View source]
@@ -8537,7 +8537,7 @@


- [View source] + [View source]
@@ -8553,7 +8553,7 @@


- [View source] + [View source]
@@ -8569,7 +8569,7 @@


- [View source] + [View source]
@@ -8585,7 +8585,7 @@


- [View source] + [View source]
@@ -8601,7 +8601,7 @@


- [View source] + [View source]
@@ -8617,7 +8617,7 @@


- [View source] + [View source]
@@ -8633,7 +8633,7 @@


- [View source] + [View source]
@@ -8649,7 +8649,7 @@


- [View source] + [View source]
@@ -8665,7 +8665,7 @@


- [View source] + [View source]
@@ -8681,7 +8681,7 @@


- [View source] + [View source]
@@ -8697,7 +8697,7 @@


- [View source] + [View source]
@@ -8713,7 +8713,7 @@


- [View source] + [View source]
@@ -8729,7 +8729,7 @@


- [View source] + [View source]
@@ -8745,7 +8745,7 @@


- [View source] + [View source]
@@ -8761,7 +8761,7 @@


- [View source] + [View source]
@@ -8777,7 +8777,7 @@


- [View source] + [View source]
@@ -8793,7 +8793,7 @@


- [View source] + [View source]
@@ -8809,7 +8809,7 @@


- [View source] + [View source]
@@ -8825,7 +8825,7 @@


- [View source] + [View source]
@@ -8841,7 +8841,7 @@


- [View source] + [View source]
@@ -8869,7 +8869,7 @@


- [View source] + [View source]
diff --git a/DispatchProtocol/MessageType.html b/DispatchProtocol/MessageType.html index f673979eff..c9a893f40d 100644 --- a/DispatchProtocol/MessageType.html +++ b/DispatchProtocol/MessageType.html @@ -7317,7 +7317,7 @@

- + knx/disptach_model.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Echo360.html b/Echo360.html index b96c79c6fc..a1d5998910 100644 --- a/Echo360.html +++ b/Echo360.html @@ -7317,7 +7317,7 @@

- + echo360/device_capture.cr diff --git a/Echo360/DeviceCapture.html b/Echo360/DeviceCapture.html index 6654840f3f..1715425727 100644 --- a/Echo360/DeviceCapture.html +++ b/Echo360/DeviceCapture.html @@ -7319,7 +7319,7 @@

- + echo360/device_capture.cr @@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
diff --git a/Embedia.html b/Embedia.html index d097619fd7..4b49e16d7c 100644 --- a/Embedia.html +++ b/Embedia.html @@ -7317,7 +7317,7 @@

- + embedia/control_point.cr diff --git a/Embedia/ControlPoint.html b/Embedia/ControlPoint.html index aff4fc648f..fa60391a75 100644 --- a/Embedia/ControlPoint.html +++ b/Embedia/ControlPoint.html @@ -7319,7 +7319,7 @@

- + embedia/control_point.cr @@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
@@ -7821,7 +7821,7 @@


- [View source] + [View source]
diff --git a/Enumerable.html b/Enumerable.html index 5042305d49..0087ed734e 100644 --- a/Enumerable.html +++ b/Enumerable.html @@ -7349,7 +7349,7 @@

- + cisco/collaboration_endpoint/response.cr @@ -7416,7 +7416,7 @@


- [View source] + [View source]
diff --git a/Enumerable/JSONBasic.html b/Enumerable/JSONBasic.html index 454bdcabe4..0c354bf828 100644 --- a/Enumerable/JSONBasic.html +++ b/Enumerable/JSONBasic.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint/response.cr diff --git a/Enumerable/JSONComplex.html b/Enumerable/JSONComplex.html index f94745c6e6..1416b45588 100644 --- a/Enumerable/JSONComplex.html +++ b/Enumerable/JSONComplex.html @@ -7327,7 +7327,7 @@

- + cisco/collaboration_endpoint/response.cr diff --git a/Epson.html b/Epson.html index e16874ae6e..e35d5665d6 100644 --- a/Epson.html +++ b/Epson.html @@ -7317,7 +7317,7 @@

- + epson/projector/esc_vp21.cr diff --git a/Epson/Projector.html b/Epson/Projector.html index 80adb490b0..17b881a115 100644 --- a/Epson/Projector.html +++ b/Epson/Projector.html @@ -7317,7 +7317,7 @@

- + epson/projector/esc_vp21.cr diff --git a/Epson/Projector/EscVp21.html b/Epson/Projector/EscVp21.html index 0b74ed1a98..d1f7984e0c 100644 --- a/Epson/Projector/EscVp21.html +++ b/Epson/Projector/EscVp21.html @@ -7337,7 +7337,7 @@

- + epson/projector/esc_vp21.cr @@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7928,7 +7928,7 @@


- [View source] + [View source]
@@ -7944,7 +7944,7 @@


- [View source] + [View source]
diff --git a/Epson/Projector/EscVp21/Input.html b/Epson/Projector/EscVp21/Input.html index 3e644f66f8..fc75a1bfa4 100644 --- a/Epson/Projector/EscVp21/Input.html +++ b/Epson/Projector/EscVp21/Input.html @@ -7317,7 +7317,7 @@

- + epson/projector/esc_vp21.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Exterity.html b/Exterity.html index 4c3e0085a1..a52940fd29 100644 --- a/Exterity.html +++ b/Exterity.html @@ -7317,7 +7317,7 @@

- + exterity/avedia_player/m93xx.cr diff --git a/Exterity/AvediaPlayer.html b/Exterity/AvediaPlayer.html index ec310e7417..1cea9a7a71 100644 --- a/Exterity/AvediaPlayer.html +++ b/Exterity/AvediaPlayer.html @@ -7317,7 +7317,7 @@

- + exterity/avedia_player/m93xx.cr diff --git a/Exterity/AvediaPlayer/R92xx.html b/Exterity/AvediaPlayer/R92xx.html index 0bef93afbe..50b85cb874 100644 --- a/Exterity/AvediaPlayer/R92xx.html +++ b/Exterity/AvediaPlayer/R92xx.html @@ -7319,7 +7319,7 @@

- + exterity/avedia_player/r92xx.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
diff --git a/Exterity/AvediaPlayer/R93xx.html b/Exterity/AvediaPlayer/R93xx.html index ccd31f538d..3de759ba13 100644 --- a/Exterity/AvediaPlayer/R93xx.html +++ b/Exterity/AvediaPlayer/R93xx.html @@ -7319,14 +7319,14 @@

- + exterity/avedia_player/m93xx.cr
- + exterity/avedia_player/r93xx.cr @@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
diff --git a/Exterity/AvediaPlayer/R93xx/ChannelDetail.html b/Exterity/AvediaPlayer/R93xx/ChannelDetail.html index e85482df0e..dc89f506c5 100644 --- a/Exterity/AvediaPlayer/R93xx/ChannelDetail.html +++ b/Exterity/AvediaPlayer/R93xx/ChannelDetail.html @@ -7347,7 +7347,7 @@

- + exterity/avedia_player/m93xx.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Extron.html b/Extron.html index acacc33d3d..28d015b1a9 100644 --- a/Extron.html +++ b/Extron.html @@ -7317,7 +7317,7 @@

- + extron/sis/command.cr diff --git a/Extron/Matrix.html b/Extron/Matrix.html index 4877c38b3a..125a5b8953 100644 --- a/Extron/Matrix.html +++ b/Extron/Matrix.html @@ -7339,7 +7339,7 @@

- + extron/matrix.cr @@ -7691,7 +7691,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7764,7 +7764,7 @@


- [View source] + [View source]
@@ -7780,7 +7780,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7812,7 +7812,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
diff --git a/Extron/Matrix/Outputs.html b/Extron/Matrix/Outputs.html index 86871ee7a7..9bd8fdbc3f 100644 --- a/Extron/Matrix/Outputs.html +++ b/Extron/Matrix/Outputs.html @@ -7327,7 +7327,7 @@

- + extron/matrix.cr diff --git a/Extron/Matrix/SignalMap.html b/Extron/Matrix/SignalMap.html index f4b2e5430a..20756e7bae 100644 --- a/Extron/Matrix/SignalMap.html +++ b/Extron/Matrix/SignalMap.html @@ -7327,7 +7327,7 @@

- + extron/matrix.cr diff --git a/Extron/SIS.html b/Extron/SIS.html index e16d8651b1..f831eac93a 100644 --- a/Extron/SIS.html +++ b/Extron/SIS.html @@ -7346,14 +7346,14 @@

- + extron/sis.cr
- + extron/sis/command.cr diff --git a/Extron/SIS/Command.html b/Extron/SIS/Command.html index e12827bd21..3cf1c44e5c 100644 --- a/Extron/SIS/Command.html +++ b/Extron/SIS/Command.html @@ -7332,7 +7332,7 @@

- + extron/sis/command.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Error.html b/Extron/SIS/Error.html index f751fa43aa..390342a30d 100644 --- a/Extron/SIS/Error.html +++ b/Extron/SIS/Error.html @@ -7328,7 +7328,7 @@

- + extron/sis.cr @@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Input.html b/Extron/SIS/Input.html index ae0a847399..7ce9e4addd 100644 --- a/Extron/SIS/Input.html +++ b/Extron/SIS/Input.html @@ -7327,7 +7327,7 @@

- + extron/sis.cr diff --git a/Extron/SIS/MatrixLayer.html b/Extron/SIS/MatrixLayer.html index e58f5513f2..837a3c3d4b 100644 --- a/Extron/SIS/MatrixLayer.html +++ b/Extron/SIS/MatrixLayer.html @@ -7328,7 +7328,7 @@

- + extron/sis.cr @@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/MatrixSize.html b/Extron/SIS/MatrixSize.html index 79b583425e..69a04cf86b 100644 --- a/Extron/SIS/MatrixSize.html +++ b/Extron/SIS/MatrixSize.html @@ -7330,7 +7330,7 @@

- + extron/sis.cr @@ -7462,7 +7462,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Ok.html b/Extron/SIS/Ok.html index c6108d97c0..53019e19c2 100644 --- a/Extron/SIS/Ok.html +++ b/Extron/SIS/Ok.html @@ -7330,7 +7330,7 @@

- + extron/sis.cr @@ -7447,7 +7447,7 @@


- [View source] + [View source]
@@ -7479,7 +7479,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Output.html b/Extron/SIS/Output.html index b409a7aacb..90b88eef13 100644 --- a/Extron/SIS/Output.html +++ b/Extron/SIS/Output.html @@ -7327,7 +7327,7 @@

- + extron/sis.cr diff --git a/Extron/SIS/Response.html b/Extron/SIS/Response.html index 1c35b00893..ad358dcbf6 100644 --- a/Extron/SIS/Response.html +++ b/Extron/SIS/Response.html @@ -7343,7 +7343,7 @@

- + extron/sis/response.cr @@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Switch.html b/Extron/SIS/Switch.html index a03b66579f..6facfc76e0 100644 --- a/Extron/SIS/Switch.html +++ b/Extron/SIS/Switch.html @@ -7330,7 +7330,7 @@

- + extron/sis.cr @@ -7462,7 +7462,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/SwitcherInformation.html b/Extron/SIS/SwitcherInformation.html index 56694b6119..7705918fe2 100644 --- a/Extron/SIS/SwitcherInformation.html +++ b/Extron/SIS/SwitcherInformation.html @@ -7330,7 +7330,7 @@

- + extron/sis.cr @@ -7462,7 +7462,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/Extron/SIS/Tie.html b/Extron/SIS/Tie.html index 84fba13ede..2fab58a4d8 100644 --- a/Extron/SIS/Tie.html +++ b/Extron/SIS/Tie.html @@ -7330,7 +7330,7 @@

- + extron/sis.cr @@ -7467,7 +7467,7 @@


- [View source] + [View source]
@@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/Extron/UsbExtenderPlus.html b/Extron/UsbExtenderPlus.html index 96e581bcd7..461ab1f94e 100644 --- a/Extron/UsbExtenderPlus.html +++ b/Extron/UsbExtenderPlus.html @@ -7317,7 +7317,7 @@

- + extron/usb_extender_plus/endpoint.cr diff --git a/Extron/UsbExtenderPlus/Endpoint.html b/Extron/UsbExtenderPlus/Endpoint.html index 8efd224314..cd9716d0e2 100644 --- a/Extron/UsbExtenderPlus/Endpoint.html +++ b/Extron/UsbExtenderPlus/Endpoint.html @@ -7319,7 +7319,7 @@

- + extron/usb_extender_plus/endpoint.cr @@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
diff --git a/Extron/UsbExtenderPlus/VirtualSwitcher.html b/Extron/UsbExtenderPlus/VirtualSwitcher.html index 0a28641897..720e6475f5 100644 --- a/Extron/UsbExtenderPlus/VirtualSwitcher.html +++ b/Extron/UsbExtenderPlus/VirtualSwitcher.html @@ -7333,7 +7333,7 @@

- + extron/usb_extender_plus/virtual_switcher.cr @@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
diff --git a/Floorsense.html b/Floorsense.html index a0ce8824d3..51127f9d69 100644 --- a/Floorsense.html +++ b/Floorsense.html @@ -7328,7 +7328,7 @@

- + floorsense/models.cr diff --git a/Floorsense/AuthInfo.html b/Floorsense/AuthInfo.html index f904f4ceac..38c6268ede 100644 --- a/Floorsense/AuthInfo.html +++ b/Floorsense/AuthInfo.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Booking.html b/Floorsense/Booking.html index 08d0d23a50..5474307be9 100644 --- a/Floorsense/Booking.html +++ b/Floorsense/Booking.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8065,7 +8065,7 @@


- [View source] + [View source]
@@ -8081,7 +8081,7 @@


- [View source] + [View source]
@@ -8097,7 +8097,7 @@


- [View source] + [View source]
@@ -8113,7 +8113,7 @@


- [View source] + [View source]
@@ -8129,7 +8129,7 @@


- [View source] + [View source]
@@ -8145,7 +8145,7 @@


- [View source] + [View source]
@@ -8161,7 +8161,7 @@


- [View source] + [View source]
@@ -8177,7 +8177,7 @@


- [View source] + [View source]
@@ -8193,7 +8193,7 @@


- [View source] + [View source]
@@ -8209,7 +8209,7 @@


- [View source] + [View source]
@@ -8225,7 +8225,7 @@


- [View source] + [View source]
@@ -8241,7 +8241,7 @@


- [View source] + [View source]
@@ -8257,7 +8257,7 @@


- [View source] + [View source]
@@ -8273,7 +8273,7 @@


- [View source] + [View source]
@@ -8289,7 +8289,7 @@


- [View source] + [View source]
@@ -8319,7 +8319,7 @@


- [View source] + [View source]
@@ -8349,7 +8349,7 @@


- [View source] + [View source]
@@ -8365,7 +8365,7 @@


- [View source] + [View source]
@@ -8381,7 +8381,7 @@


- [View source] + [View source]
@@ -8397,7 +8397,7 @@


- [View source] + [View source]
@@ -8413,7 +8413,7 @@


- [View source] + [View source]
@@ -8429,7 +8429,7 @@


- [View source] + [View source]
@@ -8445,7 +8445,7 @@


- [View source] + [View source]
@@ -8461,7 +8461,7 @@


- [View source] + [View source]
@@ -8477,7 +8477,7 @@


- [View source] + [View source]
@@ -8493,7 +8493,7 @@


- [View source] + [View source]
@@ -8509,7 +8509,7 @@


- [View source] + [View source]
@@ -8525,7 +8525,7 @@


- [View source] + [View source]
@@ -8541,7 +8541,7 @@


- [View source] + [View source]
@@ -8557,7 +8557,7 @@


- [View source] + [View source]
@@ -8573,7 +8573,7 @@


- [View source] + [View source]
@@ -8589,7 +8589,7 @@


- [View source] + [View source]
@@ -8605,7 +8605,7 @@


- [View source] + [View source]
@@ -8621,7 +8621,7 @@


- [View source] + [View source]
@@ -8637,7 +8637,7 @@


- [View source] + [View source]
@@ -8653,7 +8653,7 @@


- [View source] + [View source]
@@ -8669,7 +8669,7 @@


- [View source] + [View source]
@@ -8685,7 +8685,7 @@


- [View source] + [View source]
@@ -8701,7 +8701,7 @@


- [View source] + [View source]
@@ -8717,7 +8717,7 @@


- [View source] + [View source]
diff --git a/Floorsense/BookingStatus.html b/Floorsense/BookingStatus.html index 259aea901d..40eaedc28d 100644 --- a/Floorsense/BookingStatus.html +++ b/Floorsense/BookingStatus.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7906,7 +7906,7 @@


- [View source] + [View source]
@@ -7922,7 +7922,7 @@


- [View source] + [View source]
@@ -7938,7 +7938,7 @@


- [View source] + [View source]
@@ -7954,7 +7954,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8002,7 +8002,7 @@


- [View source] + [View source]
@@ -8018,7 +8018,7 @@


- [View source] + [View source]
@@ -8034,7 +8034,7 @@


- [View source] + [View source]
@@ -8050,7 +8050,7 @@


- [View source] + [View source]
@@ -8066,7 +8066,7 @@


- [View source] + [View source]
@@ -8082,7 +8082,7 @@


- [View source] + [View source]
@@ -8098,7 +8098,7 @@


- [View source] + [View source]
@@ -8114,7 +8114,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8174,7 +8174,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8206,7 +8206,7 @@


- [View source] + [View source]
@@ -8222,7 +8222,7 @@


- [View source] + [View source]
@@ -8238,7 +8238,7 @@


- [View source] + [View source]
@@ -8254,7 +8254,7 @@


- [View source] + [View source]
@@ -8275,7 +8275,7 @@


- [View source] + [View source]
@@ -8296,7 +8296,7 @@


- [View source] + [View source]
@@ -8312,7 +8312,7 @@


- [View source] + [View source]
@@ -8328,7 +8328,7 @@


- [View source] + [View source]
@@ -8344,7 +8344,7 @@


- [View source] + [View source]
@@ -8360,7 +8360,7 @@


- [View source] + [View source]
@@ -8381,7 +8381,7 @@


- [View source] + [View source]
@@ -8402,7 +8402,7 @@


- [View source] + [View source]
diff --git a/Floorsense/BookingsSync.html b/Floorsense/BookingsSync.html index 4170b729d6..7a4474b764 100644 --- a/Floorsense/BookingsSync.html +++ b/Floorsense/BookingsSync.html @@ -7319,7 +7319,7 @@

- + floorsense/bookings_sync.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@

- [View source] + [View source]
@@ -7567,7 +7567,7 @@

View source] + [View source] @@ -7583,7 +7583,7 @@

View source] + [View source] @@ -7599,7 +7599,7 @@

View source] + [View source] @@ -7615,7 +7615,7 @@

View source] + [View source] @@ -7631,7 +7631,7 @@

View source] + [View source] @@ -7647,7 +7647,7 @@

View source] + [View source] @@ -7663,7 +7663,7 @@

View source] + [View source] @@ -7688,7 +7688,7 @@

<
- [View source] + [View source]
diff --git a/Floorsense/BookingsSync/Booking.html b/Floorsense/BookingsSync/Booking.html index 9ca6a2d9f4..833440fc24 100644 --- a/Floorsense/BookingsSync/Booking.html +++ b/Floorsense/BookingsSync/Booking.html @@ -7347,7 +7347,7 @@

- + floorsense/bookings_sync.cr @@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
@@ -7914,7 +7914,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7946,7 +7946,7 @@


- [View source] + [View source]
@@ -7962,7 +7962,7 @@


- [View source] + [View source]
@@ -7978,7 +7978,7 @@


- [View source] + [View source]
@@ -7994,7 +7994,7 @@


- [View source] + [View source]
@@ -8010,7 +8010,7 @@


- [View source] + [View source]
@@ -8026,7 +8026,7 @@


- [View source] + [View source]
@@ -8042,7 +8042,7 @@


- [View source] + [View source]
@@ -8058,7 +8058,7 @@


- [View source] + [View source]
@@ -8074,7 +8074,7 @@


- [View source] + [View source]
@@ -8090,7 +8090,7 @@


- [View source] + [View source]
@@ -8106,7 +8106,7 @@


- [View source] + [View source]
@@ -8122,7 +8122,7 @@


- [View source] + [View source]
@@ -8138,7 +8138,7 @@


- [View source] + [View source]
@@ -8154,7 +8154,7 @@


- [View source] + [View source]
diff --git a/Floorsense/ControllerInfo.html b/Floorsense/ControllerInfo.html index 47f7c6c997..4f89a828ae 100644 --- a/Floorsense/ControllerInfo.html +++ b/Floorsense/ControllerInfo.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
@@ -7862,7 +7862,7 @@


- [View source] + [View source]
@@ -7878,7 +7878,7 @@


- [View source] + [View source]
@@ -7894,7 +7894,7 @@


- [View source] + [View source]
@@ -7910,7 +7910,7 @@


- [View source] + [View source]
@@ -7926,7 +7926,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
diff --git a/Floorsense/CustomBookingsSync.html b/Floorsense/CustomBookingsSync.html index ee4b844de7..77d63c57bc 100644 --- a/Floorsense/CustomBookingsSync.html +++ b/Floorsense/CustomBookingsSync.html @@ -7319,7 +7319,7 @@

- + floorsense/custom_bookings_sync.cr @@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@

- [View source] + [View source]
@@ -7588,7 +7588,7 @@

- [View source] + [View source]
@@ -7604,7 +7604,7 @@

- [View source] + [View source]
@@ -7620,7 +7620,7 @@

- [View source] + [View source]
@@ -7636,7 +7636,7 @@

- [View source] + [View source]
@@ -7652,7 +7652,7 @@

- [View source] + [View source]
@@ -7668,7 +7668,7 @@

- [View source] + [View source]
@@ -7684,7 +7684,7 @@

- [View source] + [View source]
@@ -7700,7 +7700,7 @@

- [View source] + [View source]
@@ -7716,7 +7716,7 @@

- [View source] + [View source]
@@ -7732,7 +7732,7 @@

- [View source] + [View source]
diff --git a/Floorsense/CustomBookingsSync/PlaceUser.html b/Floorsense/CustomBookingsSync/PlaceUser.html index 3f486ab86a..3cb9b33c63 100644 --- a/Floorsense/CustomBookingsSync/PlaceUser.html +++ b/Floorsense/CustomBookingsSync/PlaceUser.html @@ -7327,7 +7327,7 @@

- + floorsense/custom_bookings_sync.cr diff --git a/Floorsense/DeskInfo.html b/Floorsense/DeskInfo.html index fe5e085c43..f0c0b80a9a 100644 --- a/Floorsense/DeskInfo.html +++ b/Floorsense/DeskInfo.html @@ -7349,7 +7349,7 @@

- + floorsense/models.cr @@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DeskMeta.html b/Floorsense/DeskMeta.html index ddd82e2264..a79e402e19 100644 --- a/Floorsense/DeskMeta.html +++ b/Floorsense/DeskMeta.html @@ -7358,7 +7358,7 @@

- + floorsense/models.cr @@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DeskStatus.html b/Floorsense/DeskStatus.html index 4df6355920..d7373696de 100644 --- a/Floorsense/DeskStatus.html +++ b/Floorsense/DeskStatus.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7987,7 +7987,7 @@


- [View source] + [View source]
@@ -8003,7 +8003,7 @@


- [View source] + [View source]
@@ -8019,7 +8019,7 @@


- [View source] + [View source]
@@ -8035,7 +8035,7 @@


- [View source] + [View source]
@@ -8051,7 +8051,7 @@


- [View source] + [View source]
@@ -8067,7 +8067,7 @@


- [View source] + [View source]
@@ -8083,7 +8083,7 @@


- [View source] + [View source]
@@ -8099,7 +8099,7 @@


- [View source] + [View source]
@@ -8115,7 +8115,7 @@


- [View source] + [View source]
@@ -8131,7 +8131,7 @@


- [View source] + [View source]
@@ -8147,7 +8147,7 @@


- [View source] + [View source]
@@ -8163,7 +8163,7 @@


- [View source] + [View source]
@@ -8179,7 +8179,7 @@


- [View source] + [View source]
@@ -8195,7 +8195,7 @@


- [View source] + [View source]
@@ -8211,7 +8211,7 @@


- [View source] + [View source]
@@ -8227,7 +8227,7 @@


- [View source] + [View source]
@@ -8243,7 +8243,7 @@


- [View source] + [View source]
@@ -8259,7 +8259,7 @@


- [View source] + [View source]
@@ -8275,7 +8275,7 @@


- [View source] + [View source]
@@ -8291,7 +8291,7 @@


- [View source] + [View source]
@@ -8307,7 +8307,7 @@


- [View source] + [View source]
@@ -8323,7 +8323,7 @@


- [View source] + [View source]
@@ -8339,7 +8339,7 @@


- [View source] + [View source]
@@ -8355,7 +8355,7 @@


- [View source] + [View source]
@@ -8371,7 +8371,7 @@


- [View source] + [View source]
@@ -8387,7 +8387,7 @@


- [View source] + [View source]
@@ -8403,7 +8403,7 @@


- [View source] + [View source]
@@ -8419,7 +8419,7 @@


- [View source] + [View source]
@@ -8435,7 +8435,7 @@


- [View source] + [View source]
@@ -8451,7 +8451,7 @@


- [View source] + [View source]
@@ -8467,7 +8467,7 @@


- [View source] + [View source]
@@ -8483,7 +8483,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket.html b/Floorsense/DesksWebsocket.html index 3cf2e76467..e3a30634fa 100644 --- a/Floorsense/DesksWebsocket.html +++ b/Floorsense/DesksWebsocket.html @@ -7333,7 +7333,7 @@

- + floorsense/desks_websocket.cr @@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
@@ -7899,7 +7899,7 @@


- [View source] + [View source]
@@ -7915,7 +7915,7 @@


- [View source] + [View source]
@@ -7931,7 +7931,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
@@ -8149,7 +8149,7 @@


- [View source] + [View source]
@@ -8165,7 +8165,7 @@


- [View source] + [View source]
@@ -8181,7 +8181,7 @@


- [View source] + [View source]
@@ -8202,7 +8202,7 @@


- [View source] + [View source]
@@ -8218,7 +8218,7 @@


- [View source] + [View source]
@@ -8234,7 +8234,7 @@


- [View source] + [View source]
@@ -8250,7 +8250,7 @@


- [View source] + [View source]
@@ -8266,7 +8266,7 @@


- [View source] + [View source]
@@ -8282,7 +8282,7 @@


- [View source] + [View source]
@@ -8307,7 +8307,7 @@


- [View source] + [View source]
@@ -8323,7 +8323,7 @@


- [View source] + [View source]
@@ -8339,7 +8339,7 @@


- [View source] + [View source]
@@ -8355,7 +8355,7 @@


- [View source] + [View source]
@@ -8371,7 +8371,7 @@


- [View source] + [View source]
@@ -8387,7 +8387,7 @@


- [View source] + [View source]
@@ -8403,7 +8403,7 @@


- [View source] + [View source]
@@ -8419,7 +8419,7 @@


- [View source] + [View source]
@@ -8435,7 +8435,7 @@


- [View source] + [View source]
@@ -8451,7 +8451,7 @@


- [View source] + [View source]
@@ -8467,7 +8467,7 @@


- [View source] + [View source]
@@ -8488,7 +8488,7 @@


- [View source] + [View source]
@@ -8504,7 +8504,7 @@


- [View source] + [View source]
@@ -8520,7 +8520,7 @@


- [View source] + [View source]
@@ -8536,7 +8536,7 @@


- [View source] + [View source]
@@ -8552,7 +8552,7 @@


- [View source] + [View source]
@@ -8573,7 +8573,7 @@


- [View source] + [View source]
@@ -8594,7 +8594,7 @@


- [View source] + [View source]
@@ -8610,7 +8610,7 @@


- [View source] + [View source]
@@ -8631,7 +8631,7 @@


- [View source] + [View source]
@@ -8647,7 +8647,7 @@


- [View source] + [View source]
@@ -8663,7 +8663,7 @@


- [View source] + [View source]
@@ -8679,7 +8679,7 @@


- [View source] + [View source]
@@ -8695,7 +8695,7 @@


- [View source] + [View source]
@@ -8711,7 +8711,7 @@


- [View source] + [View source]
@@ -8736,7 +8736,7 @@


- [View source] + [View source]
@@ -8761,7 +8761,7 @@


- [View source] + [View source]
@@ -8782,7 +8782,7 @@


- [View source] + [View source]
@@ -8798,7 +8798,7 @@


- [View source] + [View source]
@@ -8814,7 +8814,7 @@


- [View source] + [View source]
@@ -8830,7 +8830,7 @@


- [View source] + [View source]
@@ -8846,7 +8846,7 @@


- [View source] + [View source]
@@ -8862,7 +8862,7 @@


- [View source] + [View source]
@@ -8878,7 +8878,7 @@


- [View source] + [View source]
@@ -8894,7 +8894,7 @@


- [View source] + [View source]
@@ -8910,7 +8910,7 @@


- [View source] + [View source]
@@ -8926,7 +8926,7 @@


- [View source] + [View source]
@@ -8942,7 +8942,7 @@


- [View source] + [View source]
@@ -8958,7 +8958,7 @@


- [View source] + [View source]
@@ -8974,7 +8974,7 @@


- [View source] + [View source]
@@ -8990,7 +8990,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket/DeskHeight.html b/Floorsense/DesksWebsocket/DeskHeight.html index 95044e83d0..58f6f0551b 100644 --- a/Floorsense/DesksWebsocket/DeskHeight.html +++ b/Floorsense/DesksWebsocket/DeskHeight.html @@ -7317,7 +7317,7 @@

- + floorsense/desks_websocket.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket/DeskPower.html b/Floorsense/DesksWebsocket/DeskPower.html index 7a42b151f8..14ead0b2b2 100644 --- a/Floorsense/DesksWebsocket/DeskPower.html +++ b/Floorsense/DesksWebsocket/DeskPower.html @@ -7317,7 +7317,7 @@

- + floorsense/desks_websocket.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket/LedColour.html b/Floorsense/DesksWebsocket/LedColour.html index 703c51d291..216f7b20f3 100644 --- a/Floorsense/DesksWebsocket/LedColour.html +++ b/Floorsense/DesksWebsocket/LedColour.html @@ -7317,7 +7317,7 @@

- + floorsense/desks_websocket.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket/LedState.html b/Floorsense/DesksWebsocket/LedState.html index b6dc6ec23f..0ab94c41a6 100644 --- a/Floorsense/DesksWebsocket/LedState.html +++ b/Floorsense/DesksWebsocket/LedState.html @@ -7317,7 +7317,7 @@

- + floorsense/desks_websocket.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Floorsense/DesksWebsocket/QiMode.html b/Floorsense/DesksWebsocket/QiMode.html index ff509bea30..4f3251ab2d 100644 --- a/Floorsense/DesksWebsocket/QiMode.html +++ b/Floorsense/DesksWebsocket/QiMode.html @@ -7317,7 +7317,7 @@

- + floorsense/desks_websocket.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Event.html b/Floorsense/Event.html index 66cc062681..85cfb932cd 100644 --- a/Floorsense/Event.html +++ b/Floorsense/Event.html @@ -7319,7 +7319,7 @@

- + floorsense/models.cr @@ -7473,7 +7473,7 @@


- [View source] + [View source]
@@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Floor.html b/Floorsense/Floor.html index 53128ce770..55a72b61d7 100644 --- a/Floorsense/Floor.html +++ b/Floorsense/Floor.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/Floorsense/LocationService.html b/Floorsense/LocationService.html index dd2efdaaea..149f1ce31b 100644 --- a/Floorsense/LocationService.html +++ b/Floorsense/LocationService.html @@ -7333,7 +7333,7 @@

- + floorsense/location_service.cr @@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@

View source] + [View source] @@ -7721,7 +7721,7 @@

View source] + [View source] @@ -7737,7 +7737,7 @@

View source] + [View source] @@ -7753,7 +7753,7 @@

View source] + [View source] @@ -7769,7 +7769,7 @@

View source] + [View source] diff --git a/Floorsense/LockerBooking.html b/Floorsense/LockerBooking.html index 1f9d5ecfdb..b2934918cc 100644 --- a/Floorsense/LockerBooking.html +++ b/Floorsense/LockerBooking.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7848,7 +7848,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7880,7 +7880,7 @@


- [View source] + [View source]
@@ -7896,7 +7896,7 @@


- [View source] + [View source]
@@ -7912,7 +7912,7 @@


- [View source] + [View source]
@@ -7928,7 +7928,7 @@


- [View source] + [View source]
@@ -7944,7 +7944,7 @@


- [View source] + [View source]
@@ -7960,7 +7960,7 @@


- [View source] + [View source]
@@ -7976,7 +7976,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
@@ -8008,7 +8008,7 @@


- [View source] + [View source]
@@ -8024,7 +8024,7 @@


- [View source] + [View source]
@@ -8045,7 +8045,7 @@


- [View source] + [View source]
@@ -8066,7 +8066,7 @@


- [View source] + [View source]
@@ -8082,7 +8082,7 @@


- [View source] + [View source]
@@ -8098,7 +8098,7 @@


- [View source] + [View source]
diff --git a/Floorsense/LockerInfo.html b/Floorsense/LockerInfo.html index c52846cb0c..00807b8d67 100644 --- a/Floorsense/LockerInfo.html +++ b/Floorsense/LockerInfo.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8065,7 +8065,7 @@


- [View source] + [View source]
@@ -8081,7 +8081,7 @@


- [View source] + [View source]
@@ -8097,7 +8097,7 @@


- [View source] + [View source]
@@ -8113,7 +8113,7 @@


- [View source] + [View source]
@@ -8129,7 +8129,7 @@


- [View source] + [View source]
@@ -8145,7 +8145,7 @@


- [View source] + [View source]
@@ -8161,7 +8161,7 @@


- [View source] + [View source]
@@ -8177,7 +8177,7 @@


- [View source] + [View source]
@@ -8193,7 +8193,7 @@


- [View source] + [View source]
@@ -8209,7 +8209,7 @@


- [View source] + [View source]
@@ -8225,7 +8225,7 @@


- [View source] + [View source]
@@ -8241,7 +8241,7 @@


- [View source] + [View source]
@@ -8257,7 +8257,7 @@


- [View source] + [View source]
@@ -8273,7 +8273,7 @@


- [View source] + [View source]
@@ -8289,7 +8289,7 @@


- [View source] + [View source]
@@ -8305,7 +8305,7 @@


- [View source] + [View source]
@@ -8321,7 +8321,7 @@


- [View source] + [View source]
@@ -8337,7 +8337,7 @@


- [View source] + [View source]
@@ -8353,7 +8353,7 @@


- [View source] + [View source]
diff --git a/Floorsense/LockerLocationService.html b/Floorsense/LockerLocationService.html index ee441dd128..84efec47cd 100644 --- a/Floorsense/LockerLocationService.html +++ b/Floorsense/LockerLocationService.html @@ -7333,7 +7333,7 @@

- + floorsense/locker_location_service.cr @@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@

View source] + [View source] @@ -7786,7 +7786,7 @@

View source] + [View source] @@ -7802,7 +7802,7 @@

View source] + [View source] @@ -7823,7 +7823,7 @@

View source] + [View source] @@ -7839,7 +7839,7 @@

View source] + [View source] @@ -7861,7 +7861,7 @@

View source] + [View source] @@ -7877,7 +7877,7 @@

View source] + [View source] @@ -7893,7 +7893,7 @@

View source] + [View source] @@ -7914,7 +7914,7 @@

View source] + [View source] @@ -7940,7 +7940,7 @@

View source] + [View source] @@ -7956,7 +7956,7 @@

View source] + [View source] @@ -7972,7 +7972,7 @@

View source] + [View source] @@ -7993,7 +7993,7 @@

View source] + [View source] diff --git a/Floorsense/LockerLocationService/PlaceLocker.html b/Floorsense/LockerLocationService/PlaceLocker.html index e6facf06e6..6928e1a948 100644 --- a/Floorsense/LockerLocationService/PlaceLocker.html +++ b/Floorsense/LockerLocationService/PlaceLocker.html @@ -7327,7 +7327,7 @@

- + floorsense/locker_location_service.cr diff --git a/Floorsense/LogEntry.html b/Floorsense/LogEntry.html index 95793c9857..fac0140ad1 100644 --- a/Floorsense/LogEntry.html +++ b/Floorsense/LogEntry.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/Floorsense/MobileCheckinLogic.html b/Floorsense/MobileCheckinLogic.html index ca858a35b4..397ba3d824 100644 --- a/Floorsense/MobileCheckinLogic.html +++ b/Floorsense/MobileCheckinLogic.html @@ -7319,7 +7319,7 @@

- + floorsense/mobile_checkin_logic.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Payload.html b/Floorsense/Payload.html index fa8d49ab79..d01bfc2cc3 100644 --- a/Floorsense/Payload.html +++ b/Floorsense/Payload.html @@ -7363,7 +7363,7 @@

- + floorsense/models.cr @@ -7463,7 +7463,7 @@


- [View source] + [View source]
diff --git a/Floorsense/RFID.html b/Floorsense/RFID.html index 3b27df7e89..0c8201ba6a 100644 --- a/Floorsense/RFID.html +++ b/Floorsense/RFID.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Resp.html b/Floorsense/Resp.html index eeaddc6516..251db0a328 100644 --- a/Floorsense/Resp.html +++ b/Floorsense/Resp.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Response.html b/Floorsense/Response.html index 2b1fa9212e..5f52822a7b 100644 --- a/Floorsense/Response.html +++ b/Floorsense/Response.html @@ -7319,7 +7319,7 @@

- + floorsense/models.cr @@ -7478,7 +7478,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Setting.html b/Floorsense/Setting.html index 229f238ede..aa39e587bd 100644 --- a/Floorsense/Setting.html +++ b/Floorsense/Setting.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Floorsense/User.html b/Floorsense/User.html index a7e11b666a..f96444bd5f 100644 --- a/Floorsense/User.html +++ b/Floorsense/User.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
@@ -8021,7 +8021,7 @@


- [View source] + [View source]
diff --git a/Floorsense/UserGroup.html b/Floorsense/UserGroup.html index 7e933a2e60..a3a4c3f119 100644 --- a/Floorsense/UserGroup.html +++ b/Floorsense/UserGroup.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Floorsense/UserLocation.html b/Floorsense/UserLocation.html index f244e99344..74964deb3e 100644 --- a/Floorsense/UserLocation.html +++ b/Floorsense/UserLocation.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8025,7 +8025,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
diff --git a/Floorsense/Voucher.html b/Floorsense/Voucher.html index 6f38537484..09162b5615 100644 --- a/Floorsense/Voucher.html +++ b/Floorsense/Voucher.html @@ -7347,7 +7347,7 @@

- + floorsense/models.cr @@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7987,7 +7987,7 @@


- [View source] + [View source]
@@ -8003,7 +8003,7 @@


- [View source] + [View source]
@@ -8019,7 +8019,7 @@


- [View source] + [View source]
@@ -8035,7 +8035,7 @@


- [View source] + [View source]
@@ -8051,7 +8051,7 @@


- [View source] + [View source]
@@ -8067,7 +8067,7 @@


- [View source] + [View source]
@@ -8083,7 +8083,7 @@


- [View source] + [View source]
@@ -8099,7 +8099,7 @@


- [View source] + [View source]
@@ -8115,7 +8115,7 @@


- [View source] + [View source]
@@ -8131,7 +8131,7 @@


- [View source] + [View source]
@@ -8147,7 +8147,7 @@


- [View source] + [View source]
@@ -8163,7 +8163,7 @@


- [View source] + [View source]
@@ -8179,7 +8179,7 @@


- [View source] + [View source]
@@ -8195,7 +8195,7 @@


- [View source] + [View source]
@@ -8211,7 +8211,7 @@


- [View source] + [View source]
@@ -8227,7 +8227,7 @@


- [View source] + [View source]
@@ -8243,7 +8243,7 @@


- [View source] + [View source]
@@ -8259,7 +8259,7 @@


- [View source] + [View source]
@@ -8275,7 +8275,7 @@


- [View source] + [View source]
@@ -8291,7 +8291,7 @@


- [View source] + [View source]
@@ -8307,7 +8307,7 @@


- [View source] + [View source]
@@ -8323,7 +8323,7 @@


- [View source] + [View source]
@@ -8339,7 +8339,7 @@


- [View source] + [View source]
@@ -8355,7 +8355,7 @@


- [View source] + [View source]
@@ -8371,7 +8371,7 @@


- [View source] + [View source]
@@ -8387,7 +8387,7 @@


- [View source] + [View source]
@@ -8403,7 +8403,7 @@


- [View source] + [View source]
@@ -8419,7 +8419,7 @@


- [View source] + [View source]
@@ -8435,7 +8435,7 @@


- [View source] + [View source]
@@ -8451,7 +8451,7 @@


- [View source] + [View source]
@@ -8467,7 +8467,7 @@


- [View source] + [View source]
@@ -8483,7 +8483,7 @@


- [View source] + [View source]
diff --git a/Freespace.html b/Freespace.html index 51a617c9d9..3b42599d9f 100644 --- a/Freespace.html +++ b/Freespace.html @@ -7317,7 +7317,7 @@

- + freespace/models.cr diff --git a/Freespace/Category.html b/Freespace/Category.html index e0e9a0f1f4..48e6d6404b 100644 --- a/Freespace/Category.html +++ b/Freespace/Category.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
diff --git a/Freespace/Device.html b/Freespace/Device.html index e52a0943b3..3d3ee231cd 100644 --- a/Freespace/Device.html +++ b/Freespace/Device.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Freespace/Location.html b/Freespace/Location.html index 6c1b5ef3ac..e919d6ef64 100644 --- a/Freespace/Location.html +++ b/Freespace/Location.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Freespace/SRF.html b/Freespace/SRF.html index 35fbff7a06..05a717dce0 100644 --- a/Freespace/SRF.html +++ b/Freespace/SRF.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/Freespace/SensorAPI.html b/Freespace/SensorAPI.html index 6766c73de4..f350f4e46f 100644 --- a/Freespace/SensorAPI.html +++ b/Freespace/SensorAPI.html @@ -7333,7 +7333,7 @@

- + freespace/sensor_api.cr @@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@

View source] + [View source] @@ -7782,7 +7782,7 @@

View source] + [View source] @@ -7798,7 +7798,7 @@

View source] + [View source] @@ -7814,7 +7814,7 @@

View source] + [View source] @@ -7830,7 +7830,7 @@

View source] + [View source] @@ -7846,7 +7846,7 @@

View source] + [View source] @@ -7867,7 +7867,7 @@

View source] + [View source] diff --git a/Freespace/Space.html b/Freespace/Space.html index 6af2cba389..649781b7b2 100644 --- a/Freespace/Space.html +++ b/Freespace/Space.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7879,7 +7879,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7927,7 +7927,7 @@


- [View source] + [View source]
@@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8065,7 +8065,7 @@


- [View source] + [View source]
@@ -8081,7 +8081,7 @@


- [View source] + [View source]
@@ -8097,7 +8097,7 @@


- [View source] + [View source]
@@ -8113,7 +8113,7 @@


- [View source] + [View source]
@@ -8129,7 +8129,7 @@


- [View source] + [View source]
@@ -8145,7 +8145,7 @@


- [View source] + [View source]
@@ -8161,7 +8161,7 @@


- [View source] + [View source]
diff --git a/Freespace/SpaceActivity.html b/Freespace/SpaceActivity.html index 573c6f1f34..24404c04c4 100644 --- a/Freespace/SpaceActivity.html +++ b/Freespace/SpaceActivity.html @@ -7347,7 +7347,7 @@

- + freespace/models.cr @@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
diff --git a/Gallagher.html b/Gallagher.html index b81eea0380..283e00452a 100644 --- a/Gallagher.html +++ b/Gallagher.html @@ -7317,7 +7317,7 @@

- + gallagher/rest_api_models.cr diff --git a/Gallagher/AccessGroup.html b/Gallagher/AccessGroup.html index a46c36d72a..0b6760dfbe 100644 --- a/Gallagher/AccessGroup.html +++ b/Gallagher/AccessGroup.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/Gallagher/AccessGroupMembership.html b/Gallagher/AccessGroupMembership.html index 41da87f1c7..3ff1083e3a 100644 --- a/Gallagher/AccessGroupMembership.html +++ b/Gallagher/AccessGroupMembership.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Card.html b/Gallagher/Card.html index 9acbd4075c..3cc09fe450 100644 --- a/Gallagher/Card.html +++ b/Gallagher/Card.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
@@ -7840,7 +7840,7 @@


- [View source] + [View source]
@@ -7856,7 +7856,7 @@


- [View source] + [View source]
@@ -7872,7 +7872,7 @@


- [View source] + [View source]
@@ -7888,7 +7888,7 @@


- [View source] + [View source]
@@ -7904,7 +7904,7 @@


- [View source] + [View source]
@@ -7920,7 +7920,7 @@


- [View source] + [View source]
@@ -7936,7 +7936,7 @@


- [View source] + [View source]
@@ -7952,7 +7952,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
diff --git a/Gallagher/CardType.html b/Gallagher/CardType.html index df13f718e2..0d87328f4b 100644 --- a/Gallagher/CardType.html +++ b/Gallagher/CardType.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Cardholder.html b/Gallagher/Cardholder.html index 0266639fb3..543f472cf2 100644 --- a/Gallagher/Cardholder.html +++ b/Gallagher/Cardholder.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7743,7 +7743,7 @@


- [View source] + [View source]
@@ -7759,7 +7759,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
@@ -7791,7 +7791,7 @@


- [View source] + [View source]
@@ -7807,7 +7807,7 @@


- [View source] + [View source]
@@ -7823,7 +7823,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
@@ -7887,7 +7887,7 @@


- [View source] + [View source]
@@ -7903,7 +7903,7 @@


- [View source] + [View source]
@@ -7919,7 +7919,7 @@


- [View source] + [View source]
@@ -7935,7 +7935,7 @@


- [View source] + [View source]
@@ -7951,7 +7951,7 @@


- [View source] + [View source]
@@ -7967,7 +7967,7 @@


- [View source] + [View source]
@@ -7983,7 +7983,7 @@


- [View source] + [View source]
@@ -7999,7 +7999,7 @@


- [View source] + [View source]
@@ -8015,7 +8015,7 @@


- [View source] + [View source]
diff --git a/Gallagher/CardholderAccessGroup.html b/Gallagher/CardholderAccessGroup.html index 16b7482222..0d1bca82d5 100644 --- a/Gallagher/CardholderAccessGroup.html +++ b/Gallagher/CardholderAccessGroup.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
diff --git a/Gallagher/DoorDetails.html b/Gallagher/DoorDetails.html index 9eaef11b24..c1bb3b61bc 100644 --- a/Gallagher/DoorDetails.html +++ b/Gallagher/DoorDetails.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Event.html b/Gallagher/Event.html index a5adbb808c..272634b532 100644 --- a/Gallagher/Event.html +++ b/Gallagher/Event.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Events.html b/Gallagher/Events.html index 3078a76c83..0699da59df 100644 --- a/Gallagher/Events.html +++ b/Gallagher/Events.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Gallagher/IdName.html b/Gallagher/IdName.html index 1a41d64908..eff75315d9 100644 --- a/Gallagher/IdName.html +++ b/Gallagher/IdName.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Invitation.html b/Gallagher/Invitation.html index 3ff5f70091..f483302a3d 100644 --- a/Gallagher/Invitation.html +++ b/Gallagher/Invitation.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7700,7 +7700,7 @@


- [View source] + [View source]
diff --git a/Gallagher/PDF.html b/Gallagher/PDF.html index 36b61dc34d..6949502f39 100644 --- a/Gallagher/PDF.html +++ b/Gallagher/PDF.html @@ -7360,7 +7360,7 @@

- + gallagher/rest_api_models.cr @@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
diff --git a/Gallagher/RestAPI.html b/Gallagher/RestAPI.html index 801ea224ab..0b809247a1 100644 --- a/Gallagher/RestAPI.html +++ b/Gallagher/RestAPI.html @@ -7335,7 +7335,7 @@

- + gallagher/rest_api.cr @@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7848,7 +7848,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7880,7 +7880,7 @@


- [View source] + [View source]
@@ -7896,7 +7896,7 @@


- [View source] + [View source]
@@ -7917,7 +7917,7 @@


- [View source] + [View source]
@@ -7938,7 +7938,7 @@


- [View source] + [View source]
@@ -7954,7 +7954,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8002,7 +8002,7 @@


- [View source] + [View source]
@@ -8035,7 +8035,7 @@

View source] + [View source] @@ -8051,7 +8051,7 @@

View source] + [View source] @@ -8067,7 +8067,7 @@

View source] + [View source] @@ -8083,7 +8083,7 @@

View source] + [View source] @@ -8099,7 +8099,7 @@

View source] + [View source] @@ -8115,7 +8115,7 @@

View source] + [View source] @@ -8131,7 +8131,7 @@

View source] + [View source] @@ -8147,7 +8147,7 @@

View source] + [View source] @@ -8163,7 +8163,7 @@

View source] + [View source] @@ -8184,7 +8184,7 @@

View source] + [View source] @@ -8200,7 +8200,7 @@

View source] + [View source] @@ -8216,7 +8216,7 @@

View source] + [View source] @@ -8232,7 +8232,7 @@

View source] + [View source] @@ -8248,7 +8248,7 @@

View source] + [View source] @@ -8264,7 +8264,7 @@

View source] + [View source] @@ -8280,7 +8280,7 @@

View source] + [View source] @@ -8296,7 +8296,7 @@

View source] + [View source] @@ -8312,7 +8312,7 @@

View source] + [View source] @@ -8328,7 +8328,7 @@

View source] + [View source] @@ -8344,7 +8344,7 @@

View source] + [View source] @@ -8360,7 +8360,7 @@

View source] + [View source] @@ -8376,7 +8376,7 @@

View source] + [View source] @@ -8424,7 +8424,7 @@

View source] + [View source] @@ -8440,7 +8440,7 @@

View source] + [View source] @@ -8456,7 +8456,7 @@

View source] + [View source] @@ -8472,7 +8472,7 @@

View source] + [View source] @@ -8488,7 +8488,7 @@

View source] + [View source] @@ -8504,7 +8504,7 @@

View source] + [View source] @@ -8520,7 +8520,7 @@

View source] + [View source] @@ -8536,7 +8536,7 @@

View source] + [View source] @@ -8552,7 +8552,7 @@

View source] + [View source] @@ -8568,7 +8568,7 @@

View source] + [View source] @@ -8584,7 +8584,7 @@

View source] + [View source] @@ -8605,7 +8605,7 @@

View source] + [View source] @@ -8626,7 +8626,7 @@

View source] + [View source] @@ -8651,7 +8651,7 @@

View source] + [View source] @@ -8667,7 +8667,7 @@

View source] + [View source] @@ -8683,7 +8683,7 @@

View source] + [View source] @@ -8699,7 +8699,7 @@

View source] + [View source] @@ -8720,7 +8720,7 @@

View source] + [View source] @@ -8741,7 +8741,7 @@

View source] + [View source] @@ -8762,7 +8762,7 @@

View source] + [View source] @@ -8783,7 +8783,7 @@

View source] + [View source] @@ -8804,7 +8804,7 @@

View source] + [View source] diff --git a/Gallagher/RestAPI/BadRequest.html b/Gallagher/RestAPI/BadRequest.html index 0d5d17d3d8..a95909f805 100644 --- a/Gallagher/RestAPI/BadRequest.html +++ b/Gallagher/RestAPI/BadRequest.html @@ -7319,7 +7319,7 @@

- + gallagher/rest_api.cr diff --git a/Gallagher/RestAPI/CardHolder.html b/Gallagher/RestAPI/CardHolder.html index 149efed1af..bf949cda97 100644 --- a/Gallagher/RestAPI/CardHolder.html +++ b/Gallagher/RestAPI/CardHolder.html @@ -7319,7 +7319,7 @@

- + gallagher/rest_api.cr @@ -7450,7 +7450,7 @@


- [View source] + [View source]
@@ -7466,7 +7466,7 @@


- [View source] + [View source]
diff --git a/Gallagher/RestAPI/CardHolderDetails.html b/Gallagher/RestAPI/CardHolderDetails.html index 1f9300aceb..601b7be324 100644 --- a/Gallagher/RestAPI/CardHolderDetails.html +++ b/Gallagher/RestAPI/CardHolderDetails.html @@ -7327,7 +7327,7 @@

- + gallagher/rest_api.cr diff --git a/Gallagher/RestAPI/Conflict.html b/Gallagher/RestAPI/Conflict.html index 6d40508f51..9fe523c291 100644 --- a/Gallagher/RestAPI/Conflict.html +++ b/Gallagher/RestAPI/Conflict.html @@ -7319,7 +7319,7 @@

- + gallagher/rest_api.cr diff --git a/Gallagher/RestAPI/EventMap.html b/Gallagher/RestAPI/EventMap.html index 848ac97c35..ecbee7a757 100644 --- a/Gallagher/RestAPI/EventMap.html +++ b/Gallagher/RestAPI/EventMap.html @@ -7347,7 +7347,7 @@

- + gallagher/rest_api.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Gallagher/RestAPI/NotFound.html b/Gallagher/RestAPI/NotFound.html index 83f92fdd72..2f8e1aedd9 100644 --- a/Gallagher/RestAPI/NotFound.html +++ b/Gallagher/RestAPI/NotFound.html @@ -7319,7 +7319,7 @@

- + gallagher/rest_api.cr diff --git a/Gallagher/RestAPI/ZoneDetails.html b/Gallagher/RestAPI/ZoneDetails.html index cf14a27ada..8c2c24ecf9 100644 --- a/Gallagher/RestAPI/ZoneDetails.html +++ b/Gallagher/RestAPI/ZoneDetails.html @@ -7327,7 +7327,7 @@

- + gallagher/rest_api.cr diff --git a/Gallagher/RestAPI/ZoneInfo.html b/Gallagher/RestAPI/ZoneInfo.html index fc56bc4916..4ded1ac3f7 100644 --- a/Gallagher/RestAPI/ZoneInfo.html +++ b/Gallagher/RestAPI/ZoneInfo.html @@ -7319,7 +7319,7 @@

- + gallagher/rest_api.cr @@ -7450,7 +7450,7 @@


- [View source] + [View source]
@@ -7466,7 +7466,7 @@


- [View source] + [View source]
diff --git a/Gallagher/Results.html b/Gallagher/Results.html index 0062088c71..edaa7e26e5 100644 --- a/Gallagher/Results.html +++ b/Gallagher/Results.html @@ -7349,7 +7349,7 @@

- + gallagher/rest_api_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
diff --git a/Gallagher/ZoneSchedule.html b/Gallagher/ZoneSchedule.html index 04586483f5..58d50274ae 100644 --- a/Gallagher/ZoneSchedule.html +++ b/Gallagher/ZoneSchedule.html @@ -7319,7 +7319,7 @@

- + gallagher/zone_schedule.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
diff --git a/GlobalCache.html b/GlobalCache.html index d21bd516f6..3434346f4c 100644 --- a/GlobalCache.html +++ b/GlobalCache.html @@ -7317,7 +7317,7 @@

- + global_cache/gc_100.cr diff --git a/GlobalCache/Gc100.html b/GlobalCache/Gc100.html index 56d5b452d9..19a8bf8976 100644 --- a/GlobalCache/Gc100.html +++ b/GlobalCache/Gc100.html @@ -7333,7 +7333,7 @@

- + global_cache/gc_100.cr @@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
diff --git a/GlobalCache/Gc100/IrMode.html b/GlobalCache/Gc100/IrMode.html index 1fc5898fc0..9f0e2cc043 100644 --- a/GlobalCache/Gc100/IrMode.html +++ b/GlobalCache/Gc100/IrMode.html @@ -7317,7 +7317,7 @@

- + global_cache/gc_100.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/GlobalCache/IRTV.html b/GlobalCache/IRTV.html index 7237287552..c219df61f5 100644 --- a/GlobalCache/IRTV.html +++ b/GlobalCache/IRTV.html @@ -7319,7 +7319,7 @@

- + global_cache/ir_tv.cr @@ -7478,7 +7478,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
diff --git a/GlobalCache/IRTV/Channel.html b/GlobalCache/IRTV/Channel.html index efbf3661d7..2a3b4bf6ca 100644 --- a/GlobalCache/IRTV/Channel.html +++ b/GlobalCache/IRTV/Channel.html @@ -7347,7 +7347,7 @@

- + global_cache/ir_tv.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/GlobalCache/ProjectorScreen.html b/GlobalCache/ProjectorScreen.html index 82642142b2..21a6586b8e 100644 --- a/GlobalCache/ProjectorScreen.html +++ b/GlobalCache/ProjectorScreen.html @@ -7319,7 +7319,7 @@

- + global_cache/projector_screen.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/GoBright.html b/GoBright.html index 88cf149c1e..622192d88f 100644 --- a/GoBright.html +++ b/GoBright.html @@ -7317,7 +7317,7 @@

- + gobright/models.cr diff --git a/GoBright/API.html b/GoBright/API.html index a0cac05c1e..03fae2098a 100644 --- a/GoBright/API.html +++ b/GoBright/API.html @@ -7319,7 +7319,7 @@

- + gobright/api.cr @@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
diff --git a/GoBright/AccessToken.html b/GoBright/AccessToken.html index 093f2741b5..b994ce9c2a 100644 --- a/GoBright/AccessToken.html +++ b/GoBright/AccessToken.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/GoBright/Amenity.html b/GoBright/Amenity.html index 914c7c7ecf..0399e250df 100644 --- a/GoBright/Amenity.html +++ b/GoBright/Amenity.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/GoBright/ApprovalState.html b/GoBright/ApprovalState.html index e55713db6e..d28e096414 100644 --- a/GoBright/ApprovalState.html +++ b/GoBright/ApprovalState.html @@ -7317,7 +7317,7 @@

- + gobright/models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/GoBright/Attendee.html b/GoBright/Attendee.html index facddd8fad..ecd46907d5 100644 --- a/GoBright/Attendee.html +++ b/GoBright/Attendee.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/GoBright/BookingType.html b/GoBright/BookingType.html index d86f42c748..d4d376ff04 100644 --- a/GoBright/BookingType.html +++ b/GoBright/BookingType.html @@ -7317,7 +7317,7 @@

- + gobright/models.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/GoBright/DeskPeriod.html b/GoBright/DeskPeriod.html index 68e802b927..7bf4c2b8f9 100644 --- a/GoBright/DeskPeriod.html +++ b/GoBright/DeskPeriod.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/GoBright/Location.html b/GoBright/Location.html index 6a122961a1..c517de7124 100644 --- a/GoBright/Location.html +++ b/GoBright/Location.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
diff --git a/GoBright/LocationService.html b/GoBright/LocationService.html index 2d3c7ceffc..052ce6dd0c 100644 --- a/GoBright/LocationService.html +++ b/GoBright/LocationService.html @@ -7333,7 +7333,7 @@

- + gobright/location_service.cr @@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
diff --git a/GoBright/LocationService/LevelCapacity.html b/GoBright/LocationService/LevelCapacity.html index 4bc90caf34..c23405486d 100644 --- a/GoBright/LocationService/LevelCapacity.html +++ b/GoBright/LocationService/LevelCapacity.html @@ -7347,7 +7347,7 @@

- + gobright/location_service.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/GoBright/LocationService/Mapping.html b/GoBright/LocationService/Mapping.html index 532199e52b..69f289a19a 100644 --- a/GoBright/LocationService/Mapping.html +++ b/GoBright/LocationService/Mapping.html @@ -7347,7 +7347,7 @@

- + gobright/location_service.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/GoBright/Metadata.html b/GoBright/Metadata.html index 7094f409eb..a6910146c6 100644 --- a/GoBright/Metadata.html +++ b/GoBright/Metadata.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/GoBright/Occupancy.html b/GoBright/Occupancy.html index bf37ff446d..b8ffd08d14 100644 --- a/GoBright/Occupancy.html +++ b/GoBright/Occupancy.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/GoBright/Occurrence.html b/GoBright/Occurrence.html index 7fc017682a..555e0d74ce 100644 --- a/GoBright/Occurrence.html +++ b/GoBright/Occurrence.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7906,7 +7906,7 @@


- [View source] + [View source]
@@ -7922,7 +7922,7 @@


- [View source] + [View source]
@@ -7938,7 +7938,7 @@


- [View source] + [View source]
@@ -7954,7 +7954,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8002,7 +8002,7 @@


- [View source] + [View source]
@@ -8018,7 +8018,7 @@


- [View source] + [View source]
@@ -8034,7 +8034,7 @@


- [View source] + [View source]
@@ -8050,7 +8050,7 @@


- [View source] + [View source]
@@ -8066,7 +8066,7 @@


- [View source] + [View source]
@@ -8082,7 +8082,7 @@


- [View source] + [View source]
@@ -8098,7 +8098,7 @@


- [View source] + [View source]
@@ -8114,7 +8114,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8174,7 +8174,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8206,7 +8206,7 @@


- [View source] + [View source]
@@ -8222,7 +8222,7 @@


- [View source] + [View source]
@@ -8238,7 +8238,7 @@


- [View source] + [View source]
@@ -8254,7 +8254,7 @@


- [View source] + [View source]
@@ -8270,7 +8270,7 @@


- [View source] + [View source]
@@ -8286,7 +8286,7 @@


- [View source] + [View source]
@@ -8302,7 +8302,7 @@


- [View source] + [View source]
@@ -8318,7 +8318,7 @@


- [View source] + [View source]
@@ -8348,7 +8348,7 @@


- [View source] + [View source]
diff --git a/GoBright/Paging.html b/GoBright/Paging.html index ebe2484f9c..4aae5c1a94 100644 --- a/GoBright/Paging.html +++ b/GoBright/Paging.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/GoBright/ParkingPeriod.html b/GoBright/ParkingPeriod.html index 3ee2b54660..b0c2209e4b 100644 --- a/GoBright/ParkingPeriod.html +++ b/GoBright/ParkingPeriod.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/GoBright/Response.html b/GoBright/Response.html index 78675de68c..7cc8e6fc22 100644 --- a/GoBright/Response.html +++ b/GoBright/Response.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/GoBright/Space.html b/GoBright/Space.html index 9985fdbf21..d05963c075 100644 --- a/GoBright/Space.html +++ b/GoBright/Space.html @@ -7347,7 +7347,7 @@

- + gobright/models.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
diff --git a/GoBright/SpaceType.html b/GoBright/SpaceType.html index 2cbb37fcbd..318f46e58b 100644 --- a/GoBright/SpaceType.html +++ b/GoBright/SpaceType.html @@ -7317,7 +7317,7 @@

- + gobright/models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Halite.html b/Halite.html index 2a31a8223c..8bec89efaf 100644 --- a/Halite.html +++ b/Halite.html @@ -7333,147 +7333,147 @@

- + lib/halite/src/halite.cr
- + lib/halite/src/halite/chainable.cr
- + lib/halite/src/halite/client.cr
- + lib/halite/src/halite/error.cr
- + lib/halite/src/halite/feature.cr
- + lib/halite/src/halite/features/cache.cr
- + lib/halite/src/halite/features/logging.cr
- + lib/halite/src/halite/form_data.cr
- + lib/halite/src/halite/header_link.cr
- + lib/halite/src/halite/mime_type.cr
- + lib/halite/src/halite/options.cr
- + lib/halite/src/halite/options/follow.cr
- + lib/halite/src/halite/options/timeout.cr
- + lib/halite/src/halite/rate_limit.cr
- + lib/halite/src/halite/redirector.cr
- + lib/halite/src/halite/request.cr
- + lib/halite/src/halite/response.cr
- + lib/quantum/src/quantum/extensions/client.cr
- + lib/sabo/src/sabo/ext/client.cr
- + lib/stripetease/src/stripetease/extensions/chainable.cr
- + cisco/webex/extensions/chainable.cr diff --git a/Halite/Chainable.html b/Halite/Chainable.html index d129bb1acb..f9f98ee685 100644 --- a/Halite/Chainable.html +++ b/Halite/Chainable.html @@ -7317,21 +7317,21 @@

- + lib/halite/src/halite/chainable.cr
- + lib/stripetease/src/stripetease/extensions/chainable.cr
- + cisco/webex/extensions/chainable.cr @@ -7417,7 +7417,7 @@


- [View source] + [View source]
@@ -7443,7 +7443,7 @@


- [View source] + [View source]
diff --git a/Helvar.html b/Helvar.html index dbe132e424..a4d588f9e2 100644 --- a/Helvar.html +++ b/Helvar.html @@ -7317,7 +7317,7 @@

- + helvar/net.cr diff --git a/Helvar/Net.html b/Helvar/Net.html index 12fa362d9b..a356e2db43 100644 --- a/Helvar/Net.html +++ b/Helvar/Net.html @@ -7335,7 +7335,7 @@

- + helvar/net.cr @@ -7928,7 +7928,7 @@


- [View source] + [View source]
@@ -7956,7 +7956,7 @@


- [View source] + [View source]
@@ -7972,7 +7972,7 @@


- [View source] + [View source]
@@ -7988,7 +7988,7 @@


- [View source] + [View source]
@@ -8004,7 +8004,7 @@


- [View source] + [View source]
@@ -8020,7 +8020,7 @@


- [View source] + [View source]
@@ -8036,7 +8036,7 @@


- [View source] + [View source]
@@ -8052,7 +8052,7 @@


- [View source] + [View source]
@@ -8068,7 +8068,7 @@


- [View source] + [View source]
@@ -8084,7 +8084,7 @@


- [View source] + [View source]
@@ -8100,7 +8100,7 @@


- [View source] + [View source]
@@ -8116,7 +8116,7 @@


- [View source] + [View source]
@@ -8132,7 +8132,7 @@


- [View source] + [View source]
@@ -8148,7 +8148,7 @@


- [View source] + [View source]
@@ -8164,7 +8164,7 @@


- [View source] + [View source]
@@ -8180,7 +8180,7 @@


- [View source] + [View source]
@@ -8196,7 +8196,7 @@


- [View source] + [View source]
@@ -8212,7 +8212,7 @@


- [View source] + [View source]
@@ -8228,7 +8228,7 @@


- [View source] + [View source]
@@ -8244,7 +8244,7 @@


- [View source] + [View source]
@@ -8269,7 +8269,7 @@


- [View source] + [View source]
@@ -8285,7 +8285,7 @@


- [View source] + [View source]
@@ -8301,7 +8301,7 @@


- [View source] + [View source]
@@ -8317,7 +8317,7 @@


- [View source] + [View source]
@@ -8333,7 +8333,7 @@


- [View source] + [View source]
@@ -8349,7 +8349,7 @@


- [View source] + [View source]
@@ -8365,7 +8365,7 @@


- [View source] + [View source]
@@ -8381,7 +8381,7 @@


- [View source] + [View source]
@@ -8397,7 +8397,7 @@


- [View source] + [View source]
@@ -8413,7 +8413,7 @@


- [View source] + [View source]
@@ -8429,7 +8429,7 @@


- [View source] + [View source]
@@ -8445,7 +8445,7 @@


- [View source] + [View source]
@@ -8461,7 +8461,7 @@


- [View source] + [View source]
@@ -8477,7 +8477,7 @@


- [View source] + [View source]
@@ -8493,7 +8493,7 @@


- [View source] + [View source]
@@ -8509,7 +8509,7 @@


- [View source] + [View source]
@@ -8525,7 +8525,7 @@


- [View source] + [View source]
@@ -8541,7 +8541,7 @@


- [View source] + [View source]
@@ -8557,7 +8557,7 @@


- [View source] + [View source]
@@ -8573,7 +8573,7 @@


- [View source] + [View source]
@@ -8589,7 +8589,7 @@


- [View source] + [View source]
@@ -8605,7 +8605,7 @@


- [View source] + [View source]
@@ -8621,7 +8621,7 @@


- [View source] + [View source]
@@ -8637,7 +8637,7 @@


- [View source] + [View source]
@@ -8653,7 +8653,7 @@


- [View source] + [View source]
@@ -8669,7 +8669,7 @@


- [View source] + [View source]
@@ -8685,7 +8685,7 @@


- [View source] + [View source]
@@ -8701,7 +8701,7 @@


- [View source] + [View source]
@@ -8717,7 +8717,7 @@


- [View source] + [View source]
@@ -8733,7 +8733,7 @@


- [View source] + [View source]
@@ -8749,7 +8749,7 @@


- [View source] + [View source]
@@ -8765,7 +8765,7 @@


- [View source] + [View source]
@@ -8781,7 +8781,7 @@


- [View source] + [View source]
@@ -8797,7 +8797,7 @@


- [View source] + [View source]
@@ -8813,7 +8813,7 @@


- [View source] + [View source]
@@ -8829,7 +8829,7 @@


- [View source] + [View source]
@@ -8845,7 +8845,7 @@


- [View source] + [View source]
@@ -8861,7 +8861,7 @@


- [View source] + [View source]
@@ -8877,7 +8877,7 @@


- [View source] + [View source]
@@ -8893,7 +8893,7 @@


- [View source] + [View source]
@@ -8909,7 +8909,7 @@


- [View source] + [View source]
@@ -8925,7 +8925,7 @@


- [View source] + [View source]
@@ -8941,7 +8941,7 @@


- [View source] + [View source]
@@ -8957,7 +8957,7 @@


- [View source] + [View source]
@@ -8973,7 +8973,7 @@


- [View source] + [View source]
@@ -8989,7 +8989,7 @@


- [View source] + [View source]
@@ -9005,7 +9005,7 @@


- [View source] + [View source]
@@ -9021,7 +9021,7 @@


- [View source] + [View source]
@@ -9037,7 +9037,7 @@


- [View source] + [View source]
@@ -9053,7 +9053,7 @@


- [View source] + [View source]
@@ -9069,7 +9069,7 @@


- [View source] + [View source]
@@ -9094,7 +9094,7 @@


- [View source] + [View source]
@@ -9110,7 +9110,7 @@


- [View source] + [View source]
@@ -9126,7 +9126,7 @@


- [View source] + [View source]
diff --git a/Helvar/Net/Area.html b/Helvar/Net/Area.html index 54391bd56b..c54ae10b5e 100644 --- a/Helvar/Net/Area.html +++ b/Helvar/Net/Area.html @@ -7327,7 +7327,7 @@

- + helvar/net.cr diff --git a/Hitachi.html b/Hitachi.html index 4b52b25b93..3dd7e4672a 100644 --- a/Hitachi.html +++ b/Hitachi.html @@ -7317,7 +7317,7 @@

- + hitachi/projector/cp_tw_series_basic.cr diff --git a/Hitachi/Projector.html b/Hitachi/Projector.html index 18314ab8d1..d10329bb85 100644 --- a/Hitachi/Projector.html +++ b/Hitachi/Projector.html @@ -7317,7 +7317,7 @@

- + hitachi/projector/cp_tw_series_basic.cr diff --git a/Hitachi/Projector/CpTwSeriesBasic.html b/Hitachi/Projector/CpTwSeriesBasic.html index 2373159bbc..a15d8c24c2 100644 --- a/Hitachi/Projector/CpTwSeriesBasic.html +++ b/Hitachi/Projector/CpTwSeriesBasic.html @@ -7335,7 +7335,7 @@

- + hitachi/projector/cp_tw_series_basic.cr @@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
diff --git a/Hitachi/Projector/CpTwSeriesBasic/Error.html b/Hitachi/Projector/CpTwSeriesBasic/Error.html index f9f443f9b7..b78b537f20 100644 --- a/Hitachi/Projector/CpTwSeriesBasic/Error.html +++ b/Hitachi/Projector/CpTwSeriesBasic/Error.html @@ -7317,7 +7317,7 @@

- + hitachi/projector/cp_tw_series_basic.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
diff --git a/Hitachi/Projector/CpTwSeriesBasic/Input.html b/Hitachi/Projector/CpTwSeriesBasic/Input.html index 0aa3dc71fe..e709d19900 100644 --- a/Hitachi/Projector/CpTwSeriesBasic/Input.html +++ b/Hitachi/Projector/CpTwSeriesBasic/Input.html @@ -7317,7 +7317,7 @@

- + hitachi/projector/cp_tw_series_basic.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Hitachi/Projector/CpTwSeriesBasic/Response.html b/Hitachi/Projector/CpTwSeriesBasic/Response.html index 723bd8ea3e..bacaca8d4e 100644 --- a/Hitachi/Projector/CpTwSeriesBasic/Response.html +++ b/Hitachi/Projector/CpTwSeriesBasic/Response.html @@ -7317,7 +7317,7 @@

- + hitachi/projector/cp_tw_series_basic.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Infosilem.html b/Infosilem.html index 09169cb90b..65af24d1d3 100644 --- a/Infosilem.html +++ b/Infosilem.html @@ -7317,14 +7317,14 @@

- + infosilem/campus.cr
- + infosilem/models.cr diff --git a/Infosilem/Campus.html b/Infosilem/Campus.html index 8c571a10ce..37e5652b65 100644 --- a/Infosilem/Campus.html +++ b/Infosilem/Campus.html @@ -7319,7 +7319,7 @@

- + infosilem/campus.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Infosilem/Campus/Client.html b/Infosilem/Campus/Client.html index cbf3155205..64bda449d8 100644 --- a/Infosilem/Campus/Client.html +++ b/Infosilem/Campus/Client.html @@ -7327,7 +7327,7 @@

- + infosilem/campus.cr diff --git a/Infosilem/DateTimeConvertor.html b/Infosilem/DateTimeConvertor.html index dbb7e1211b..3d98018e55 100644 --- a/Infosilem/DateTimeConvertor.html +++ b/Infosilem/DateTimeConvertor.html @@ -7331,7 +7331,7 @@

- + infosilem/models.cr @@ -7403,7 +7403,7 @@


- [View source] + [View source]
@@ -7419,7 +7419,7 @@


- [View source] + [View source]
diff --git a/Infosilem/Event.html b/Infosilem/Event.html index f287e67c4f..09fb462c66 100644 --- a/Infosilem/Event.html +++ b/Infosilem/Event.html @@ -7347,7 +7347,7 @@

- + infosilem/models.cr @@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
diff --git a/Infosilem/IntegerConverter.html b/Infosilem/IntegerConverter.html index 0ce5549011..1b37d46024 100644 --- a/Infosilem/IntegerConverter.html +++ b/Infosilem/IntegerConverter.html @@ -7331,7 +7331,7 @@

- + infosilem/models.cr @@ -7403,7 +7403,7 @@


- [View source] + [View source]
@@ -7419,7 +7419,7 @@


- [View source] + [View source]
diff --git a/Infosilem/MockCampus.html b/Infosilem/MockCampus.html index b4403e46e1..6f3fb95d8a 100644 --- a/Infosilem/MockCampus.html +++ b/Infosilem/MockCampus.html @@ -7319,7 +7319,7 @@

- + infosilem/mock_campus.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Infosilem/RoomSchedule.html b/Infosilem/RoomSchedule.html index 32555cfb51..a2e53eb163 100644 --- a/Infosilem/RoomSchedule.html +++ b/Infosilem/RoomSchedule.html @@ -7319,7 +7319,7 @@

- + infosilem/room_schedule.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/InnerRange.html b/InnerRange.html index 93c0298114..f60925ea73 100644 --- a/InnerRange.html +++ b/InnerRange.html @@ -7317,7 +7317,7 @@

- + inner_range/integriti.cr diff --git a/InnerRange/Integriti.html b/InnerRange/Integriti.html index 927f810442..495ea0b836 100644 --- a/InnerRange/Integriti.html +++ b/InnerRange/Integriti.html @@ -7335,14 +7335,14 @@

- + inner_range/integriti.cr
- + inner_range/integriti_hid_virtual_pass.cr @@ -7867,7 +7867,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7932,7 +7932,7 @@


- [View source] + [View source]
@@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8006,7 +8006,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8038,7 +8038,7 @@


- [View source] + [View source]
@@ -8054,7 +8054,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8102,7 +8102,7 @@


- [View source] + [View source]
@@ -8118,7 +8118,7 @@


- [View source] + [View source]
@@ -8134,7 +8134,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8182,7 +8182,7 @@


- [View source] + [View source]
@@ -8198,7 +8198,7 @@


- [View source] + [View source]
@@ -8214,7 +8214,7 @@


- [View source] + [View source]
@@ -8230,7 +8230,7 @@


- [View source] + [View source]
@@ -8246,7 +8246,7 @@


- [View source] + [View source]
@@ -8262,7 +8262,7 @@


- [View source] + [View source]
@@ -8278,7 +8278,7 @@


- [View source] + [View source]
@@ -8299,7 +8299,7 @@


- [View source] + [View source]
@@ -8315,7 +8315,7 @@


- [View source] + [View source]
@@ -8342,7 +8342,7 @@


- [View source] + [View source]
@@ -8367,7 +8367,7 @@


- [View source] + [View source]
@@ -8383,7 +8383,7 @@


- [View source] + [View source]
@@ -8399,7 +8399,7 @@


- [View source] + [View source]
@@ -8415,7 +8415,7 @@


- [View source] + [View source]
@@ -8431,7 +8431,7 @@


- [View source] + [View source]
@@ -8447,7 +8447,7 @@


- [View source] + [View source]
@@ -8463,7 +8463,7 @@


- [View source] + [View source]
@@ -8479,7 +8479,7 @@


- [View source] + [View source]
@@ -8495,7 +8495,7 @@


- [View source] + [View source]
@@ -8516,7 +8516,7 @@


- [View source] + [View source]
@@ -8532,7 +8532,7 @@


- [View source] + [View source]
@@ -8548,7 +8548,7 @@


- [View source] + [View source]
@@ -8564,7 +8564,7 @@


- [View source] + [View source]
@@ -8580,7 +8580,7 @@


- [View source] + [View source]
@@ -8596,7 +8596,7 @@


- [View source] + [View source]
@@ -8612,7 +8612,7 @@


- [View source] + [View source]
@@ -8628,7 +8628,7 @@


- [View source] + [View source]
@@ -8649,7 +8649,7 @@


- [View source] + [View source]
@@ -8670,7 +8670,7 @@


- [View source] + [View source]
@@ -8691,7 +8691,7 @@


- [View source] + [View source]
@@ -8707,7 +8707,7 @@


- [View source] + [View source]
@@ -8728,7 +8728,7 @@


- [View source] + [View source]
@@ -8744,7 +8744,7 @@


- [View source] + [View source]
@@ -8760,7 +8760,7 @@


- [View source] + [View source]
@@ -8785,7 +8785,7 @@


- [View source] + [View source]
@@ -8807,7 +8807,7 @@


- [View source] + [View source]
@@ -8823,7 +8823,7 @@


- [View source] + [View source]
@@ -8839,7 +8839,7 @@


- [View source] + [View source]
@@ -8855,7 +8855,7 @@


- [View source] + [View source]
@@ -8876,7 +8876,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/AddOrUpdateResult.html b/InnerRange/Integriti/AddOrUpdateResult.html index 4e7452e84f..3d279e4c39 100644 --- a/InnerRange/Integriti/AddOrUpdateResult.html +++ b/InnerRange/Integriti/AddOrUpdateResult.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/AddResult.html b/InnerRange/Integriti/AddResult.html index 0cb9288eab..879b3c0995 100644 --- a/InnerRange/Integriti/AddResult.html +++ b/InnerRange/Integriti/AddResult.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Area.html b/InnerRange/Integriti/Area.html index 484799d988..cd27efbe65 100644 --- a/InnerRange/Integriti/Area.html +++ b/InnerRange/Integriti/Area.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Card.html b/InnerRange/Integriti/Card.html index 871fcbd981..a1318f94bc 100644 --- a/InnerRange/Integriti/Card.html +++ b/InnerRange/Integriti/Card.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7695,7 +7695,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/CardFormat.html b/InnerRange/Integriti/CardFormat.html index 91a3d66927..a8419f095e 100644 --- a/InnerRange/Integriti/CardFormat.html +++ b/InnerRange/Integriti/CardFormat.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7555,7 +7555,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/CardTemplate.html b/InnerRange/Integriti/CardTemplate.html index 794e9a9cad..88ad8318a9 100644 --- a/InnerRange/Integriti/CardTemplate.html +++ b/InnerRange/Integriti/CardTemplate.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7575,7 +7575,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Filter.html b/InnerRange/Integriti/Filter.html index 36884c314d..397ff958a7 100644 --- a/InnerRange/Integriti/Filter.html +++ b/InnerRange/Integriti/Filter.html @@ -7327,7 +7327,7 @@

- + inner_range/integriti.cr diff --git a/InnerRange/Integriti/FullUser.html b/InnerRange/Integriti/FullUser.html index a6966b8fbe..85aea52ca6 100644 --- a/InnerRange/Integriti/FullUser.html +++ b/InnerRange/Integriti/FullUser.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7869,7 +7869,7 @@


- [View source] + [View source]
@@ -7885,7 +7885,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Guest.html b/InnerRange/Integriti/Guest.html index d4a8cf2b41..ab87da8d79 100644 --- a/InnerRange/Integriti/Guest.html +++ b/InnerRange/Integriti/Guest.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/IntegritiDoor.html b/InnerRange/Integriti/IntegritiDoor.html index c31fac570e..6f07e65b28 100644 --- a/InnerRange/Integriti/IntegritiDoor.html +++ b/InnerRange/Integriti/IntegritiDoor.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/IntegritiObject.html b/InnerRange/Integriti/IntegritiObject.html index 845d86b5fa..d3d4e9b30f 100644 --- a/InnerRange/Integriti/IntegritiObject.html +++ b/InnerRange/Integriti/IntegritiObject.html @@ -7391,7 +7391,7 @@

- + inner_range/integriti.cr @@ -7504,7 +7504,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Partition.html b/InnerRange/Integriti/Partition.html index f1095812ff..5f48e14195 100644 --- a/InnerRange/Integriti/Partition.html +++ b/InnerRange/Integriti/Partition.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7535,7 +7535,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/PermissionGroup.html b/InnerRange/Integriti/PermissionGroup.html index b7ff8d7e71..317ceea4c1 100644 --- a/InnerRange/Integriti/PermissionGroup.html +++ b/InnerRange/Integriti/PermissionGroup.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Ref.html b/InnerRange/Integriti/Ref.html index a861bc2a07..ea414f0559 100644 --- a/InnerRange/Integriti/Ref.html +++ b/InnerRange/Integriti/Ref.html @@ -7347,7 +7347,7 @@

- + inner_range/integriti.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/RemoveResult.html b/InnerRange/Integriti/RemoveResult.html index 43e9ccd2dd..6c598742e1 100644 --- a/InnerRange/Integriti/RemoveResult.html +++ b/InnerRange/Integriti/RemoveResult.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Review.html b/InnerRange/Integriti/Review.html index 9096d03784..a3f62a65b9 100644 --- a/InnerRange/Integriti/Review.html +++ b/InnerRange/Integriti/Review.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/Site.html b/InnerRange/Integriti/Site.html index 51aca505fd..937c118539 100644 --- a/InnerRange/Integriti/Site.html +++ b/InnerRange/Integriti/Site.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/SystemInfo.html b/InnerRange/Integriti/SystemInfo.html index e45df2203b..b0dd6553fc 100644 --- a/InnerRange/Integriti/SystemInfo.html +++ b/InnerRange/Integriti/SystemInfo.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/UpdateFields.html b/InnerRange/Integriti/UpdateFields.html index 4429f71727..8ca982ebe9 100644 --- a/InnerRange/Integriti/UpdateFields.html +++ b/InnerRange/Integriti/UpdateFields.html @@ -7327,7 +7327,7 @@

- + inner_range/integriti.cr diff --git a/InnerRange/Integriti/User.html b/InnerRange/Integriti/User.html index 96e45fef8d..79c16fd298 100644 --- a/InnerRange/Integriti/User.html +++ b/InnerRange/Integriti/User.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
diff --git a/InnerRange/Integriti/UserPermission.html b/InnerRange/Integriti/UserPermission.html index 3d7607e75a..e8c9bea2d3 100644 --- a/InnerRange/Integriti/UserPermission.html +++ b/InnerRange/Integriti/UserPermission.html @@ -7319,7 +7319,7 @@

- + inner_range/integriti.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
diff --git a/InnerRange/IntegritiUserSync.html b/InnerRange/IntegritiUserSync.html index 40413ce1b8..bc727c71c9 100644 --- a/InnerRange/IntegritiUserSync.html +++ b/InnerRange/IntegritiUserSync.html @@ -7333,7 +7333,7 @@

- + inner_range/integriti_user_sync.cr @@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
diff --git a/InnerRange/IntegritiUserSync/DirUser.html b/InnerRange/IntegritiUserSync/DirUser.html index 7d34baa5b9..363bee8116 100644 --- a/InnerRange/IntegritiUserSync/DirUser.html +++ b/InnerRange/IntegritiUserSync/DirUser.html @@ -7327,7 +7327,7 @@

- + inner_range/integriti_user_sync.cr diff --git a/JohnsonControls.html b/JohnsonControls.html index 795b651c38..5fc39f22c1 100644 --- a/JohnsonControls.html +++ b/JohnsonControls.html @@ -7317,7 +7317,7 @@

- + johnson_controls/metasys_models.cr diff --git a/JohnsonControls/Attribute.html b/JohnsonControls/Attribute.html index 33108096cd..5f82c300bd 100644 --- a/JohnsonControls/Attribute.html +++ b/JohnsonControls/Attribute.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/AuthResponse.html b/JohnsonControls/AuthResponse.html index 73f7546e8c..b6b09c5884 100644 --- a/JohnsonControls/AuthResponse.html +++ b/JohnsonControls/AuthResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Command.html b/JohnsonControls/Command.html index 827bae45f1..63aeb0331a 100644 --- a/JohnsonControls/Command.html +++ b/JohnsonControls/Command.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Equipment.html b/JohnsonControls/Equipment.html index 9fe10046b2..f8fb15f709 100644 --- a/JohnsonControls/Equipment.html +++ b/JohnsonControls/Equipment.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7879,7 +7879,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/EquipmentPoints.html b/JohnsonControls/EquipmentPoints.html index 97a715a8b8..e6525f3781 100644 --- a/JohnsonControls/EquipmentPoints.html +++ b/JohnsonControls/EquipmentPoints.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html b/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html index a4f16b9d39..d15f383762 100644 --- a/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html +++ b/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetNetworkDeviceChildrenResponse.html b/JohnsonControls/GetNetworkDeviceChildrenResponse.html index baa0f916ad..30827644d3 100644 --- a/JohnsonControls/GetNetworkDeviceChildrenResponse.html +++ b/JohnsonControls/GetNetworkDeviceChildrenResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetObjectAttributesWithSamplesResponse.html b/JohnsonControls/GetObjectAttributesWithSamplesResponse.html index 4df099ebda..31dca1cd89 100644 --- a/JohnsonControls/GetObjectAttributesWithSamplesResponse.html +++ b/JohnsonControls/GetObjectAttributesWithSamplesResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetSamplesForAnObjectAttributeResponse.html b/JohnsonControls/GetSamplesForAnObjectAttributeResponse.html index 03a1bfb157..387a8a7bc4 100644 --- a/JohnsonControls/GetSamplesForAnObjectAttributeResponse.html +++ b/JohnsonControls/GetSamplesForAnObjectAttributeResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetSingleObjectPresentValueResponse.html b/JohnsonControls/GetSingleObjectPresentValueResponse.html index 81480698fd..7060882471 100644 --- a/JohnsonControls/GetSingleObjectPresentValueResponse.html +++ b/JohnsonControls/GetSingleObjectPresentValueResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetSingleObjectPresentValueResponse/Item.html b/JohnsonControls/GetSingleObjectPresentValueResponse/Item.html index a97a676a4a..67a5ced97a 100644 --- a/JohnsonControls/GetSingleObjectPresentValueResponse/Item.html +++ b/JohnsonControls/GetSingleObjectPresentValueResponse/Item.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html b/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html index 3557703855..707a003b1e 100644 --- a/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html +++ b/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Item.html b/JohnsonControls/Item.html index b68c4c4379..2c84c40c7c 100644 --- a/JohnsonControls/Item.html +++ b/JohnsonControls/Item.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Metasys.html b/JohnsonControls/Metasys.html index b8fc3e45c9..04f18c43b4 100644 --- a/JohnsonControls/Metasys.html +++ b/JohnsonControls/Metasys.html @@ -7319,7 +7319,7 @@

- + johnson_controls/metasys.cr @@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/NetworkDevice.html b/JohnsonControls/NetworkDevice.html index 7c23d33b8c..78805e448a 100644 --- a/JohnsonControls/NetworkDevice.html +++ b/JohnsonControls/NetworkDevice.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7691,7 +7691,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7771,7 +7771,7 @@


- [View source] + [View source]
@@ -7787,7 +7787,7 @@


- [View source] + [View source]
@@ -7803,7 +7803,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7835,7 +7835,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7867,7 +7867,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
@@ -7899,7 +7899,7 @@


- [View source] + [View source]
@@ -7915,7 +7915,7 @@


- [View source] + [View source]
@@ -7931,7 +7931,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7963,7 +7963,7 @@


- [View source] + [View source]
@@ -7979,7 +7979,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Point.html b/JohnsonControls/Point.html index 25b74458ec..edee27dfae 100644 --- a/JohnsonControls/Point.html +++ b/JohnsonControls/Point.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Sample.html b/JohnsonControls/Sample.html index 875554ddc3..db59b0e6a6 100644 --- a/JohnsonControls/Sample.html +++ b/JohnsonControls/Sample.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/SamplesResponse.html b/JohnsonControls/SamplesResponse.html index 5018dd2971..5756b55fd1 100644 --- a/JohnsonControls/SamplesResponse.html +++ b/JohnsonControls/SamplesResponse.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/JohnsonControls/Value.html b/JohnsonControls/Value.html index 420488be92..c276569465 100644 --- a/JohnsonControls/Value.html +++ b/JohnsonControls/Value.html @@ -7347,7 +7347,7 @@

- + johnson_controls/metasys_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Juniper.html b/Juniper.html index a7eea11266..422a285d07 100644 --- a/Juniper.html +++ b/Juniper.html @@ -7317,7 +7317,7 @@

- + juniper/mist_models.cr diff --git a/Juniper/Client.html b/Juniper/Client.html index 3bf8f9bf12..b34f8297b4 100644 --- a/Juniper/Client.html +++ b/Juniper/Client.html @@ -7347,7 +7347,7 @@

- + juniper/mist_models.cr @@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
@@ -7862,7 +7862,7 @@


- [View source] + [View source]
@@ -7878,7 +7878,7 @@


- [View source] + [View source]
@@ -7894,7 +7894,7 @@


- [View source] + [View source]
@@ -7910,7 +7910,7 @@


- [View source] + [View source]
@@ -7926,7 +7926,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
@@ -8006,7 +8006,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8038,7 +8038,7 @@


- [View source] + [View source]
@@ -8054,7 +8054,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8102,7 +8102,7 @@


- [View source] + [View source]
@@ -8118,7 +8118,7 @@


- [View source] + [View source]
@@ -8134,7 +8134,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8182,7 +8182,7 @@


- [View source] + [View source]
@@ -8198,7 +8198,7 @@


- [View source] + [View source]
@@ -8214,7 +8214,7 @@


- [View source] + [View source]
@@ -8235,7 +8235,7 @@


- [View source] + [View source]
@@ -8256,7 +8256,7 @@


- [View source] + [View source]
@@ -8272,7 +8272,7 @@


- [View source] + [View source]
@@ -8288,7 +8288,7 @@


- [View source] + [View source]
@@ -8304,7 +8304,7 @@


- [View source] + [View source]
@@ -8320,7 +8320,7 @@


- [View source] + [View source]
@@ -8336,7 +8336,7 @@


- [View source] + [View source]
@@ -8352,7 +8352,7 @@


- [View source] + [View source]
@@ -8373,7 +8373,7 @@


- [View source] + [View source]
@@ -8394,7 +8394,7 @@


- [View source] + [View source]
@@ -8410,7 +8410,7 @@


- [View source] + [View source]
@@ -8426,7 +8426,7 @@


- [View source] + [View source]
@@ -8442,7 +8442,7 @@


- [View source] + [View source]
@@ -8458,7 +8458,7 @@


- [View source] + [View source]
@@ -8474,7 +8474,7 @@


- [View source] + [View source]
@@ -8490,7 +8490,7 @@


- [View source] + [View source]
diff --git a/Juniper/ClientLocation.html b/Juniper/ClientLocation.html index 200575f66f..38b7345daa 100644 --- a/Juniper/ClientLocation.html +++ b/Juniper/ClientLocation.html @@ -7347,7 +7347,7 @@

- + juniper/mist_models.cr @@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
diff --git a/Juniper/ClientStats.html b/Juniper/ClientStats.html index 425cfc3bd7..019348cef4 100644 --- a/Juniper/ClientStats.html +++ b/Juniper/ClientStats.html @@ -7347,7 +7347,7 @@

- + juniper/mist_models.cr @@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
@@ -7840,7 +7840,7 @@


- [View source] + [View source]
@@ -7856,7 +7856,7 @@


- [View source] + [View source]
@@ -7872,7 +7872,7 @@


- [View source] + [View source]
@@ -7888,7 +7888,7 @@


- [View source] + [View source]
@@ -7904,7 +7904,7 @@


- [View source] + [View source]
@@ -7920,7 +7920,7 @@


- [View source] + [View source]
@@ -7936,7 +7936,7 @@


- [View source] + [View source]
@@ -7952,7 +7952,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8160,7 +8160,7 @@


- [View source] + [View source]
diff --git a/Juniper/Guest.html b/Juniper/Guest.html index e011397297..16efe996b8 100644 --- a/Juniper/Guest.html +++ b/Juniper/Guest.html @@ -7349,7 +7349,7 @@

- + juniper/mist_models.cr @@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
diff --git a/Juniper/LatLng.html b/Juniper/LatLng.html index b6fd72e337..509f152e9c 100644 --- a/Juniper/LatLng.html +++ b/Juniper/LatLng.html @@ -7347,7 +7347,7 @@

- + juniper/mist_models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Juniper/LocationAsset.html b/Juniper/LocationAsset.html index 64042da924..28fdfa79ca 100644 --- a/Juniper/LocationAsset.html +++ b/Juniper/LocationAsset.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7926,7 +7926,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
diff --git a/Juniper/LocationEvent.html b/Juniper/LocationEvent.html index 24d804f1a1..e7da8e0eb2 100644 --- a/Juniper/LocationEvent.html +++ b/Juniper/LocationEvent.html @@ -7367,7 +7367,7 @@

- + juniper/mist_models.cr @@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
diff --git a/Juniper/LocationEvents.html b/Juniper/LocationEvents.html index 57a2a113d0..0abf8ddf1a 100644 --- a/Juniper/LocationEvents.html +++ b/Juniper/LocationEvents.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7463,7 +7463,7 @@


- [View source] + [View source]
@@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
diff --git a/Juniper/LocationSDK.html b/Juniper/LocationSDK.html index 7dc1b05a35..2cfbc3b205 100644 --- a/Juniper/LocationSDK.html +++ b/Juniper/LocationSDK.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
diff --git a/Juniper/LocationWifi.html b/Juniper/LocationWifi.html index d618b3235d..c66fde4bef 100644 --- a/Juniper/LocationWifi.html +++ b/Juniper/LocationWifi.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
diff --git a/Juniper/Map.html b/Juniper/Map.html index 0f69c15135..fa437f97ab 100644 --- a/Juniper/Map.html +++ b/Juniper/Map.html @@ -7365,7 +7365,7 @@

- + juniper/mist_models.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
diff --git a/Juniper/MapGoogle.html b/Juniper/MapGoogle.html index d6ea20a46e..bed38aa8e8 100644 --- a/Juniper/MapGoogle.html +++ b/Juniper/MapGoogle.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
diff --git a/Juniper/MapImage.html b/Juniper/MapImage.html index e1c9078c72..09249b9137 100644 --- a/Juniper/MapImage.html +++ b/Juniper/MapImage.html @@ -7319,7 +7319,7 @@

- + juniper/mist_models.cr @@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7872,7 +7872,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
@@ -8021,7 +8021,7 @@


- [View source] + [View source]
@@ -8037,7 +8037,7 @@


- [View source] + [View source]
@@ -8053,7 +8053,7 @@


- [View source] + [View source]
@@ -8069,7 +8069,7 @@


- [View source] + [View source]
@@ -8085,7 +8085,7 @@


- [View source] + [View source]
@@ -8101,7 +8101,7 @@


- [View source] + [View source]
diff --git a/Juniper/Mist.html b/Juniper/Mist.html index 5bac2c20df..e463df5ff2 100644 --- a/Juniper/Mist.html +++ b/Juniper/Mist.html @@ -7319,7 +7319,7 @@

- + juniper/mist.cr @@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
diff --git a/Juniper/MistLocationService.html b/Juniper/MistLocationService.html index 0e4627f0e8..ce1e538246 100644 --- a/Juniper/MistLocationService.html +++ b/Juniper/MistLocationService.html @@ -7333,7 +7333,7 @@

- + juniper/mist_location_service.cr @@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
diff --git a/Juniper/MistWebsocket.html b/Juniper/MistWebsocket.html index 006a5dfd30..3d5def1418 100644 --- a/Juniper/MistWebsocket.html +++ b/Juniper/MistWebsocket.html @@ -7319,7 +7319,7 @@

- + juniper/mist_websocket.cr @@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
diff --git a/Juniper/MistWebsocket/WebsocketEvent.html b/Juniper/MistWebsocket/WebsocketEvent.html index 6bfebb0db9..6c58146dea 100644 --- a/Juniper/MistWebsocket/WebsocketEvent.html +++ b/Juniper/MistWebsocket/WebsocketEvent.html @@ -7347,7 +7347,7 @@

- + juniper/mist_websocket.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
diff --git a/Juniper/OtherEvents.html b/Juniper/OtherEvents.html index fa86a09c35..326055c9e5 100644 --- a/Juniper/OtherEvents.html +++ b/Juniper/OtherEvents.html @@ -7330,7 +7330,7 @@

- + juniper/mist_models.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/Juniper/Site.html b/Juniper/Site.html index 3329712036..536d709ef5 100644 --- a/Juniper/Site.html +++ b/Juniper/Site.html @@ -7349,7 +7349,7 @@

- + juniper/mist_models.cr @@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
diff --git a/Juniper/WebhookEvent.html b/Juniper/WebhookEvent.html index 2e821f4b03..65ffdc9b1e 100644 --- a/Juniper/WebhookEvent.html +++ b/Juniper/WebhookEvent.html @@ -7363,7 +7363,7 @@

- + juniper/mist_models.cr @@ -7463,7 +7463,7 @@


- [View source] + [View source]
diff --git a/Kaiterra.html b/Kaiterra.html index b2dfc786cd..602b7f9727 100644 --- a/Kaiterra.html +++ b/Kaiterra.html @@ -7317,7 +7317,7 @@

- + kaiterra/api.cr diff --git a/Kaiterra/API.html b/Kaiterra/API.html index 26e6df60d3..c2e58413ad 100644 --- a/Kaiterra/API.html +++ b/Kaiterra/API.html @@ -7319,7 +7319,7 @@

- + kaiterra/api.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/BatchResponse.html b/Kaiterra/API/BatchResponse.html index a4f6f49a7b..a7148bfa75 100644 --- a/Kaiterra/API/BatchResponse.html +++ b/Kaiterra/API/BatchResponse.html @@ -7347,7 +7347,7 @@

- + kaiterra/api.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/Data.html b/Kaiterra/API/Data.html index 0586acb810..6aa4b81863 100644 --- a/Kaiterra/API/Data.html +++ b/Kaiterra/API/Data.html @@ -7347,7 +7347,7 @@

- + kaiterra/api.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/Param.html b/Kaiterra/API/Param.html index 17dcc2e1ae..025164f5c4 100644 --- a/Kaiterra/API/Param.html +++ b/Kaiterra/API/Param.html @@ -7317,7 +7317,7 @@

- + kaiterra/api.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/Request.html b/Kaiterra/API/Request.html index bb8d7ac39c..5b6e280beb 100644 --- a/Kaiterra/API/Request.html +++ b/Kaiterra/API/Request.html @@ -7347,7 +7347,7 @@

- + kaiterra/api.cr @@ -7503,7 +7503,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/Response.html b/Kaiterra/API/Response.html index 0b6339a61e..6e9cec6778 100644 --- a/Kaiterra/API/Response.html +++ b/Kaiterra/API/Response.html @@ -7347,7 +7347,7 @@

- + kaiterra/api.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/API/Unit.html b/Kaiterra/API/Unit.html index 48e0721a44..4f3956b932 100644 --- a/Kaiterra/API/Unit.html +++ b/Kaiterra/API/Unit.html @@ -7317,7 +7317,7 @@

- + kaiterra/api.cr @@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
diff --git a/Kaiterra/RoomLogic.html b/Kaiterra/RoomLogic.html index d7b6cacd75..0c1001180c 100644 --- a/Kaiterra/RoomLogic.html +++ b/Kaiterra/RoomLogic.html @@ -7319,7 +7319,7 @@

- + kaiterra/room_logic.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Keycloak.html b/Keycloak.html index 2243fe6b1e..7457d52d0b 100644 --- a/Keycloak.html +++ b/Keycloak.html @@ -7317,7 +7317,7 @@

- + keycloak/rest_api.cr diff --git a/Keycloak/RestAPI.html b/Keycloak/RestAPI.html index 0cee4386e0..b1222627f5 100644 --- a/Keycloak/RestAPI.html +++ b/Keycloak/RestAPI.html @@ -7319,7 +7319,7 @@

- + keycloak/rest_api.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/Keycloak/RestAPI/Role.html b/Keycloak/RestAPI/Role.html index 333968b243..afecb5820f 100644 --- a/Keycloak/RestAPI/Role.html +++ b/Keycloak/RestAPI/Role.html @@ -7349,7 +7349,7 @@

- + keycloak/rest_api.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
diff --git a/Keycloak/RestAPI/UserDetails.html b/Keycloak/RestAPI/UserDetails.html index b22747d1ce..413ce74e56 100644 --- a/Keycloak/RestAPI/UserDetails.html +++ b/Keycloak/RestAPI/UserDetails.html @@ -7349,7 +7349,7 @@

- + keycloak/rest_api.cr @@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
diff --git a/KontaktIO.html b/KontaktIO.html index 7675fa1db4..6ff773f747 100644 --- a/KontaktIO.html +++ b/KontaktIO.html @@ -7317,7 +7317,7 @@

- + kontakt_io/kio_cloud_models.cr diff --git a/KontaktIO/Building.html b/KontaktIO/Building.html index 7213e60ca8..fd64885b3a 100644 --- a/KontaktIO/Building.html +++ b/KontaktIO/Building.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/BuildingShort.html b/KontaktIO/BuildingShort.html index 9ba5105593..e5821a5c89 100644 --- a/KontaktIO/BuildingShort.html +++ b/KontaktIO/BuildingShort.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Campus.html b/KontaktIO/Campus.html index 921f07efad..0f68b00c62 100644 --- a/KontaktIO/Campus.html +++ b/KontaktIO/Campus.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Contact.html b/KontaktIO/Contact.html index 07520ee0e8..0d9a104dd0 100644 --- a/KontaktIO/Contact.html +++ b/KontaktIO/Contact.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/ContactTracing.html b/KontaktIO/ContactTracing.html index 56827e2ca4..850cf91891 100644 --- a/KontaktIO/ContactTracing.html +++ b/KontaktIO/ContactTracing.html @@ -7319,7 +7319,7 @@

- + kontakt_io/contact_tracing.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Floor.html b/KontaktIO/Floor.html index c68880e908..9be6ec6254 100644 --- a/KontaktIO/Floor.html +++ b/KontaktIO/Floor.html @@ -7349,7 +7349,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/KioCloud.html b/KontaktIO/KioCloud.html index 1f922b85ce..6f8c55fc2b 100644 --- a/KontaktIO/KioCloud.html +++ b/KontaktIO/KioCloud.html @@ -7319,7 +7319,7 @@

- + kontakt_io/kio_cloud.cr @@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@

- [View source] + [View source]
@@ -7660,7 +7660,7 @@

- [View source] + [View source]
@@ -7676,7 +7676,7 @@

- [View source] + [View source]
@@ -7692,7 +7692,7 @@

- [View source] + [View source]
@@ -7708,7 +7708,7 @@

- [View source] + [View source]
diff --git a/KontaktIO/MacAddressMappings.html b/KontaktIO/MacAddressMappings.html index 7291ab35c3..f3cb820092 100644 --- a/KontaktIO/MacAddressMappings.html +++ b/KontaktIO/MacAddressMappings.html @@ -7319,7 +7319,7 @@

- + kontakt_io/mac_address_mappings.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/MacAddressMappings/DeviceDetails.html b/KontaktIO/MacAddressMappings/DeviceDetails.html index e2bfc49e34..eae9f9fa3b 100644 --- a/KontaktIO/MacAddressMappings/DeviceDetails.html +++ b/KontaktIO/MacAddressMappings/DeviceDetails.html @@ -7347,7 +7347,7 @@

- + kontakt_io/mac_address_mappings.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/MacAddressMappings/SearchMeta.html b/KontaktIO/MacAddressMappings/SearchMeta.html index 43815e89ed..73432a8e59 100644 --- a/KontaktIO/MacAddressMappings/SearchMeta.html +++ b/KontaktIO/MacAddressMappings/SearchMeta.html @@ -7347,7 +7347,7 @@

- + kontakt_io/mac_address_mappings.cr @@ -7464,7 +7464,7 @@


- [View source] + [View source]
@@ -7496,7 +7496,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Page.html b/KontaktIO/Page.html index 1412422b4c..8314bdf988 100644 --- a/KontaktIO/Page.html +++ b/KontaktIO/Page.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Position.html b/KontaktIO/Position.html index 485fbbe5a7..5b2e62e053 100644 --- a/KontaktIO/Position.html +++ b/KontaktIO/Position.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Presence.html b/KontaktIO/Presence.html index 67be838da8..cb83544cbb 100644 --- a/KontaktIO/Presence.html +++ b/KontaktIO/Presence.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Response.html b/KontaktIO/Response.html index 1368e30601..48a59a38f3 100644 --- a/KontaktIO/Response.html +++ b/KontaktIO/Response.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Room.html b/KontaktIO/Room.html index a2860ebf09..573fd49025 100644 --- a/KontaktIO/Room.html +++ b/KontaktIO/Room.html @@ -7349,7 +7349,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/RoomOccupancy.html b/KontaktIO/RoomOccupancy.html index 8c0d165619..756b20abfd 100644 --- a/KontaktIO/RoomOccupancy.html +++ b/KontaktIO/RoomOccupancy.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/RoomSensor.html b/KontaktIO/RoomSensor.html index 5bbc1953e0..e3ca71ee9e 100644 --- a/KontaktIO/RoomSensor.html +++ b/KontaktIO/RoomSensor.html @@ -7349,7 +7349,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/RoomSensorDriver.html b/KontaktIO/RoomSensorDriver.html index db0f22fbbe..352002abf6 100644 --- a/KontaktIO/RoomSensorDriver.html +++ b/KontaktIO/RoomSensorDriver.html @@ -7333,7 +7333,7 @@

- + kontakt_io/room_sensor.cr @@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/SensorService.html b/KontaktIO/SensorService.html index 82e4b9a671..7ad8e8e794 100644 --- a/KontaktIO/SensorService.html +++ b/KontaktIO/SensorService.html @@ -7335,7 +7335,7 @@

- + kontakt_io/sensor_service.cr @@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@

View source] + [View source] @@ -7678,7 +7678,7 @@

View source] + [View source] @@ -7699,7 +7699,7 @@

View source] + [View source] @@ -7715,7 +7715,7 @@

View source] + [View source] @@ -7740,7 +7740,7 @@

View source] + [View source] @@ -7767,7 +7767,7 @@

View source] + [View source] @@ -7788,7 +7788,7 @@

View source] + [View source] diff --git a/KontaktIO/Telemetry.html b/KontaktIO/Telemetry.html index 7eae997747..91dd50c3ea 100644 --- a/KontaktIO/Telemetry.html +++ b/KontaktIO/Telemetry.html @@ -7349,7 +7349,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
diff --git a/KontaktIO/Tracking.html b/KontaktIO/Tracking.html index b8fa994c11..4fe05fcf53 100644 --- a/KontaktIO/Tracking.html +++ b/KontaktIO/Tracking.html @@ -7347,7 +7347,7 @@

- + kontakt_io/kio_cloud_models.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/Kramer.html b/Kramer.html index 872087a3f2..b4b2a87752 100644 --- a/Kramer.html +++ b/Kramer.html @@ -7317,7 +7317,7 @@

- + kramer/rc_308_panel.cr diff --git a/Kramer/RC308Panel.html b/Kramer/RC308Panel.html index 37b590c49d..b18695abda 100644 --- a/Kramer/RC308Panel.html +++ b/Kramer/RC308Panel.html @@ -7319,7 +7319,7 @@

- + kramer/rc_308_panel.cr @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
diff --git a/Kramer/RC308Panel/ButtonAction.html b/Kramer/RC308Panel/ButtonAction.html index 7a0a320f2f..6b458a1464 100644 --- a/Kramer/RC308Panel/ButtonAction.html +++ b/Kramer/RC308Panel/ButtonAction.html @@ -7317,7 +7317,7 @@

- + kramer/rc_308_panel.cr @@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
diff --git a/Kramer/RC308Panel/DefaultLight.html b/Kramer/RC308Panel/DefaultLight.html index 69ac1bc6cc..fba7bd5da8 100644 --- a/Kramer/RC308Panel/DefaultLight.html +++ b/Kramer/RC308Panel/DefaultLight.html @@ -7347,7 +7347,7 @@

- + kramer/rc_308_panel.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Lenel.html b/Lenel.html index ea8d210c6e..127573ee85 100644 --- a/Lenel.html +++ b/Lenel.html @@ -7317,7 +7317,7 @@

- + lenel/open_access.cr diff --git a/Lenel/OpenAccess.html b/Lenel/OpenAccess.html index 5f9a2f0bfd..2e25522bac 100644 --- a/Lenel/OpenAccess.html +++ b/Lenel/OpenAccess.html @@ -7333,14 +7333,14 @@

- + lenel/open_access.cr:4
- + lenel/open_access.cr:8 @@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7823,7 +7823,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7860,7 +7860,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7944,7 +7944,7 @@


- [View source] + [View source]
@@ -7966,7 +7966,7 @@


- [View source] + [View source]
@@ -7987,7 +7987,7 @@


- [View source] + [View source]
@@ -8008,7 +8008,7 @@


- [View source] + [View source]
@@ -8024,7 +8024,7 @@


- [View source] + [View source]
@@ -8040,7 +8040,7 @@


- [View source] + [View source]
@@ -8056,7 +8056,7 @@


- [View source] + [View source]
@@ -8072,7 +8072,7 @@


- [View source] + [View source]
@@ -8093,7 +8093,7 @@


- [View source] + [View source]
@@ -8109,7 +8109,7 @@


- [View source] + [View source]
@@ -8125,7 +8125,7 @@


- [View source] + [View source]
@@ -8146,7 +8146,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Client.html b/Lenel/OpenAccess/Client.html index 4f61ff6f6e..40d4cc6faa 100644 --- a/Lenel/OpenAccess/Client.html +++ b/Lenel/OpenAccess/Client.html @@ -7333,7 +7333,7 @@

- + lenel/open_access/client.cr @@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7876,7 +7876,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Error.html b/Lenel/OpenAccess/Error.html index 812d690cf0..51a1b3485d 100644 --- a/Lenel/OpenAccess/Error.html +++ b/Lenel/OpenAccess/Error.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/error.cr @@ -7453,7 +7453,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Error/Info.html b/Lenel/OpenAccess/Error/Info.html index 071c735c94..2eeb4cb962 100644 --- a/Lenel/OpenAccess/Error/Info.html +++ b/Lenel/OpenAccess/Error/Info.html @@ -7327,7 +7327,7 @@

- + lenel/open_access/error.cr diff --git a/Lenel/OpenAccess/Models.html b/Lenel/OpenAccess/Models.html index ed2c2b9e3f..451f22765e 100644 --- a/Lenel/OpenAccess/Models.html +++ b/Lenel/OpenAccess/Models.html @@ -7345,7 +7345,7 @@

- + lenel/open_access/models.cr diff --git a/Lenel/OpenAccess/Models/Badge.html b/Lenel/OpenAccess/Models/Badge.html index e0572e5da1..5f2ba2c741 100644 --- a/Lenel/OpenAccess/Models/Badge.html +++ b/Lenel/OpenAccess/Models/Badge.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/models.cr @@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/BadgeType.html b/Lenel/OpenAccess/Models/BadgeType.html index 3e3a34071c..7d7626c44c 100644 --- a/Lenel/OpenAccess/Models/BadgeType.html +++ b/Lenel/OpenAccess/Models/BadgeType.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/models.cr @@ -7500,7 +7500,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html b/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html index f93fa9f0e8..7e49e2f608 100644 --- a/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html +++ b/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html @@ -7317,7 +7317,7 @@

- + lenel/open_access/models.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Cardholder.html b/Lenel/OpenAccess/Models/Cardholder.html index e7f59d0ddb..3001166a78 100644 --- a/Lenel/OpenAccess/Models/Cardholder.html +++ b/Lenel/OpenAccess/Models/Cardholder.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/models.cr @@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Element.html b/Lenel/OpenAccess/Models/Element.html index 96052af362..1e88c35fc7 100644 --- a/Lenel/OpenAccess/Models/Element.html +++ b/Lenel/OpenAccess/Models/Element.html @@ -7382,7 +7382,7 @@

- + lenel/open_access/models.cr @@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Event.html b/Lenel/OpenAccess/Models/Event.html index a92b34369b..d0697aa7ed 100644 --- a/Lenel/OpenAccess/Models/Event.html +++ b/Lenel/OpenAccess/Models/Event.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/models.cr @@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7906,7 +7906,7 @@


- [View source] + [View source]
@@ -7922,7 +7922,7 @@


- [View source] + [View source]
@@ -7938,7 +7938,7 @@


- [View source] + [View source]
@@ -7954,7 +7954,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8002,7 +8002,7 @@


- [View source] + [View source]
@@ -8018,7 +8018,7 @@


- [View source] + [View source]
@@ -8034,7 +8034,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Person.html b/Lenel/OpenAccess/Models/Person.html index da0b8dc911..bb6c1d8b70 100644 --- a/Lenel/OpenAccess/Models/Person.html +++ b/Lenel/OpenAccess/Models/Person.html @@ -7333,7 +7333,7 @@

- + lenel/open_access/models.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Reader.html b/Lenel/OpenAccess/Models/Reader.html index 517aa1138f..4ef404d1cd 100644 --- a/Lenel/OpenAccess/Models/Reader.html +++ b/Lenel/OpenAccess/Models/Reader.html @@ -7319,7 +7319,7 @@

- + lenel/open_access/models.cr @@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8025,7 +8025,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
diff --git a/Lenel/OpenAccess/Models/Untyped.html b/Lenel/OpenAccess/Models/Untyped.html index e7bcdab9fd..1cc116c078 100644 --- a/Lenel/OpenAccess/Models/Untyped.html +++ b/Lenel/OpenAccess/Models/Untyped.html @@ -7333,7 +7333,7 @@

- + lenel/open_access/models.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
diff --git a/Lenel/TimeConverter.html b/Lenel/TimeConverter.html index ac0645cc5a..7159731a75 100644 --- a/Lenel/TimeConverter.html +++ b/Lenel/TimeConverter.html @@ -7328,7 +7328,7 @@

- + lenel/open_access/models.cr @@ -7391,7 +7391,7 @@


- [View source] + [View source]
diff --git a/Leviton.html b/Leviton.html index 0e18f464bc..6b6e5ff4a2 100644 --- a/Leviton.html +++ b/Leviton.html @@ -7317,7 +7317,7 @@

- + leviton/acquisuite.cr diff --git a/Leviton/Acquisuite.html b/Leviton/Acquisuite.html index 94c397fa2d..35b55a2f95 100644 --- a/Leviton/Acquisuite.html +++ b/Leviton/Acquisuite.html @@ -7319,7 +7319,7 @@

- + leviton/acquisuite.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Lg.html b/Lg.html index 741cf0db0f..b8cd014b48 100644 --- a/Lg.html +++ b/Lg.html @@ -7317,7 +7317,7 @@

- + lg/displays/ls5.cr diff --git a/Lg/Displays.html b/Lg/Displays.html index 024b4f08f5..719a991442 100644 --- a/Lg/Displays.html +++ b/Lg/Displays.html @@ -7317,7 +7317,7 @@

- + lg/displays/ls5.cr diff --git a/Lg/Displays/Ls5.html b/Lg/Displays/Ls5.html index 974a2efe91..c06f0f4dd7 100644 --- a/Lg/Displays/Ls5.html +++ b/Lg/Displays/Ls5.html @@ -7337,7 +7337,7 @@

- + lg/displays/ls5.cr @@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7870,7 +7870,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7918,7 +7918,7 @@


- [View source] + [View source]
@@ -7934,7 +7934,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7996,7 +7996,7 @@


- [View source] + [View source]
@@ -8012,7 +8012,7 @@


- [View source] + [View source]
@@ -8028,7 +8028,7 @@


- [View source] + [View source]
@@ -8044,7 +8044,7 @@


- [View source] + [View source]
@@ -8060,7 +8060,7 @@


- [View source] + [View source]
@@ -8076,7 +8076,7 @@


- [View source] + [View source]
@@ -8092,7 +8092,7 @@


- [View source] + [View source]
@@ -8108,7 +8108,7 @@


- [View source] + [View source]
@@ -8124,7 +8124,7 @@


- [View source] + [View source]
@@ -8140,7 +8140,7 @@


- [View source] + [View source]
@@ -8156,7 +8156,7 @@


- [View source] + [View source]
@@ -8172,7 +8172,7 @@


- [View source] + [View source]
@@ -8188,7 +8188,7 @@


- [View source] + [View source]
@@ -8204,7 +8204,7 @@


- [View source] + [View source]
@@ -8220,7 +8220,7 @@


- [View source] + [View source]
@@ -8236,7 +8236,7 @@


- [View source] + [View source]
@@ -8252,7 +8252,7 @@


- [View source] + [View source]
@@ -8268,7 +8268,7 @@


- [View source] + [View source]
@@ -8284,7 +8284,7 @@


- [View source] + [View source]
@@ -8300,7 +8300,7 @@


- [View source] + [View source]
diff --git a/Lg/Displays/Ls5/Command.html b/Lg/Displays/Ls5/Command.html index 36b829c6b1..10bc67e3ed 100644 --- a/Lg/Displays/Ls5/Command.html +++ b/Lg/Displays/Ls5/Command.html @@ -7317,7 +7317,7 @@

- + lg/displays/ls5.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
diff --git a/Lg/Displays/Ls5/Input.html b/Lg/Displays/Ls5/Input.html index b7c2b37e85..de105a3c6a 100644 --- a/Lg/Displays/Ls5/Input.html +++ b/Lg/Displays/Ls5/Input.html @@ -7317,7 +7317,7 @@

- + lg/displays/ls5.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
diff --git a/Lg/Displays/Ls5/Ratio.html b/Lg/Displays/Ls5/Ratio.html index 94a0eb0dfb..5bda4b678b 100644 --- a/Lg/Displays/Ls5/Ratio.html +++ b/Lg/Displays/Ls5/Ratio.html @@ -7317,7 +7317,7 @@

- + lg/displays/ls5.cr @@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Lumens.html b/Lumens.html index 9eebfc95f7..7150e33612 100644 --- a/Lumens.html +++ b/Lumens.html @@ -7317,7 +7317,7 @@

- + lumens/dc193.cr diff --git a/Lumens/DC193.html b/Lumens/DC193.html index 6b544c65df..70b7604ce5 100644 --- a/Lumens/DC193.html +++ b/Lumens/DC193.html @@ -7335,7 +7335,7 @@

- + lumens/dc193.cr @@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
@@ -7887,7 +7887,7 @@


- [View source] + [View source]
@@ -7912,7 +7912,7 @@


- [View source] + [View source]
diff --git a/Lumens/DC193/Status.html b/Lumens/DC193/Status.html index 9832b215c8..b8d3f8d29f 100644 --- a/Lumens/DC193/Status.html +++ b/Lumens/DC193/Status.html @@ -7317,7 +7317,7 @@

- + lumens/dc193.cr @@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
diff --git a/Lutron.html b/Lutron.html index c6bd1296b0..16d443affa 100644 --- a/Lutron.html +++ b/Lutron.html @@ -7317,14 +7317,14 @@

- + lutron/lighting.cr
- + lutron/vive_leap_models.cr @@ -7389,7 +7389,7 @@


- [View source] + [View source]
diff --git a/Lutron/AreaStatus.html b/Lutron/AreaStatus.html index 560f7c1bc3..5a272008c3 100644 --- a/Lutron/AreaStatus.html +++ b/Lutron/AreaStatus.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
diff --git a/Lutron/Availability.html b/Lutron/Availability.html index a682c99e8e..e8f9e2c990 100644 --- a/Lutron/Availability.html +++ b/Lutron/Availability.html @@ -7317,7 +7317,7 @@

- + lutron/vive_leap_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Lutron/ClientSetting.html b/Lutron/ClientSetting.html index ca23261d43..8b98f4a732 100644 --- a/Lutron/ClientSetting.html +++ b/Lutron/ClientSetting.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Lutron/ClientVersion.html b/Lutron/ClientVersion.html index 8e52abc06e..b8f65a3b35 100644 --- a/Lutron/ClientVersion.html +++ b/Lutron/ClientVersion.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Lutron/CommuniqueType.html b/Lutron/CommuniqueType.html index 3ca3796bd1..9e862c1da0 100644 --- a/Lutron/CommuniqueType.html +++ b/Lutron/CommuniqueType.html @@ -7317,7 +7317,7 @@

- + lutron/vive_leap_models.cr @@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
diff --git a/Lutron/ContactClosureState.html b/Lutron/ContactClosureState.html index d9639d3bfd..70009dc5b2 100644 --- a/Lutron/ContactClosureState.html +++ b/Lutron/ContactClosureState.html @@ -7317,7 +7317,7 @@

- + lutron/vive_leap_models.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Lutron/ExceptionDetail.html b/Lutron/ExceptionDetail.html index 0164d26d12..64e51efe0e 100644 --- a/Lutron/ExceptionDetail.html +++ b/Lutron/ExceptionDetail.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Lutron/Lighting.html b/Lutron/Lighting.html index 775c2de3f5..c2ea3cab42 100644 --- a/Lutron/Lighting.html +++ b/Lutron/Lighting.html @@ -7319,7 +7319,7 @@

- + lutron/lighting.cr @@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@

- [View source] + [View source]
@@ -7631,7 +7631,7 @@

- [View source] + [View source]
@@ -7647,7 +7647,7 @@

- [View source] + [View source]
@@ -7663,7 +7663,7 @@

- [View source] + [View source]
@@ -7679,7 +7679,7 @@

- [View source] + [View source]
@@ -7695,7 +7695,7 @@

- [View source] + [View source]
@@ -7711,7 +7711,7 @@

- [View source] + [View source]
@@ -7732,7 +7732,7 @@

- [View source] + [View source]
@@ -7748,7 +7748,7 @@

- [View source] + [View source]
@@ -7769,7 +7769,7 @@

- [View source] + [View source]
@@ -7785,7 +7785,7 @@

- [View source] + [View source]
@@ -7801,7 +7801,7 @@

- [View source] + [View source]
@@ -7817,7 +7817,7 @@

- [View source] + [View source]
@@ -7833,7 +7833,7 @@

- [View source] + [View source]
@@ -7849,7 +7849,7 @@

- [View source] + [View source]
@@ -7874,7 +7874,7 @@

View source] + [View source] @@ -7890,7 +7890,7 @@

View source] + [View source] @@ -7915,7 +7915,7 @@

View source] + [View source] diff --git a/Lutron/MultipleAreaStatus.html b/Lutron/MultipleAreaStatus.html index 6f78be7938..c3a2b718e9 100644 --- a/Lutron/MultipleAreaStatus.html +++ b/Lutron/MultipleAreaStatus.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Lutron/MultipleZoneStatus.html b/Lutron/MultipleZoneStatus.html index 4633c61673..016a8076f7 100644 --- a/Lutron/MultipleZoneStatus.html +++ b/Lutron/MultipleZoneStatus.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Lutron/OccupancyStatus.html b/Lutron/OccupancyStatus.html index ae66cb5ada..8ab785805e 100644 --- a/Lutron/OccupancyStatus.html +++ b/Lutron/OccupancyStatus.html @@ -7317,7 +7317,7 @@

- + lutron/vive_leap_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Lutron/OneZoneStatus.html b/Lutron/OneZoneStatus.html index 802d161271..0d2a1e5a07 100644 --- a/Lutron/OneZoneStatus.html +++ b/Lutron/OneZoneStatus.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Lutron/Quantum.html b/Lutron/Quantum.html index 657e0f7f28..127fca8220 100644 --- a/Lutron/Quantum.html +++ b/Lutron/Quantum.html @@ -7319,7 +7319,7 @@

- + lutron/quantum.cr @@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
diff --git a/Lutron/Quantum/Client.html b/Lutron/Quantum/Client.html index 72778f6fc6..077ba5bbc6 100644 --- a/Lutron/Quantum/Client.html +++ b/Lutron/Quantum/Client.html @@ -7327,7 +7327,7 @@

- + lutron/quantum.cr diff --git a/Lutron/Request.html b/Lutron/Request.html index 71f073ff29..46bca43186 100644 --- a/Lutron/Request.html +++ b/Lutron/Request.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
diff --git a/Lutron/RoomLogic.html b/Lutron/RoomLogic.html index 87e93dae24..da1ad1cae9 100644 --- a/Lutron/RoomLogic.html +++ b/Lutron/RoomLogic.html @@ -7330,7 +7330,7 @@

- + lutron/room_logic.cr @@ -7489,7 +7489,7 @@


- [View source] + [View source]
@@ -7505,7 +7505,7 @@


- [View source] + [View source]
diff --git a/Lutron/SwitchedLevel.html b/Lutron/SwitchedLevel.html index a1a3148cb8..195f84a938 100644 --- a/Lutron/SwitchedLevel.html +++ b/Lutron/SwitchedLevel.html @@ -7317,7 +7317,7 @@

- + lutron/vive_leap_models.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Lutron/ViveBacnet.html b/Lutron/ViveBacnet.html index 6a32cc1b1c..2a5be5ade0 100644 --- a/Lutron/ViveBacnet.html +++ b/Lutron/ViveBacnet.html @@ -7333,7 +7333,7 @@

- + lutron/vive_bacnet.cr @@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
diff --git a/Lutron/ViveLeap.html b/Lutron/ViveLeap.html index b5f51cc926..0c47d794b8 100644 --- a/Lutron/ViveLeap.html +++ b/Lutron/ViveLeap.html @@ -7333,7 +7333,7 @@

- + lutron/vive_leap.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
diff --git a/Lutron/ZoneStatus.html b/Lutron/ZoneStatus.html index 81fdea672b..b0c7a3ecc3 100644 --- a/Lutron/ZoneStatus.html +++ b/Lutron/ZoneStatus.html @@ -7347,7 +7347,7 @@

- + lutron/vive_leap_models.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Mailer.html b/Mailer.html index 84ff42ed08..bffe742a3c 100644 --- a/Mailer.html +++ b/Mailer.html @@ -7333,21 +7333,21 @@

- + place/auto_release_spec.cr
- + place/survey_mailer_spec.cr
- + place/template_mailer_spec.cr @@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
diff --git a/MessageMedia.html b/MessageMedia.html index 4a5f55c73e..e864846b51 100644 --- a/MessageMedia.html +++ b/MessageMedia.html @@ -7317,7 +7317,7 @@

- + message_media/sms.cr diff --git a/MessageMedia/SMS.html b/MessageMedia/SMS.html index 0ae56b91e3..6a4771ebd0 100644 --- a/MessageMedia/SMS.html +++ b/MessageMedia/SMS.html @@ -7333,7 +7333,7 @@

- + message_media/sms.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
diff --git a/Microsoft.html b/Microsoft.html index 57c436f795..9d2d698cd5 100644 --- a/Microsoft.html +++ b/Microsoft.html @@ -7317,7 +7317,7 @@

- + microsoft/find_me_models.cr diff --git a/Microsoft/Coordinates.html b/Microsoft/Coordinates.html index a0af8ff4c8..2eb00f1ff4 100644 --- a/Microsoft/Coordinates.html +++ b/Microsoft/Coordinates.html @@ -7347,7 +7347,7 @@

- + microsoft/find_me_models.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Microsoft/FindMe.html b/Microsoft/FindMe.html index 867208773d..b4ae33f35d 100644 --- a/Microsoft/FindMe.html +++ b/Microsoft/FindMe.html @@ -7319,7 +7319,7 @@

- + microsoft/find_me.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/Microsoft/FindMeLocationService.html b/Microsoft/FindMeLocationService.html index 5b60cacdeb..9a1bb8c0d0 100644 --- a/Microsoft/FindMeLocationService.html +++ b/Microsoft/FindMeLocationService.html @@ -7333,7 +7333,7 @@

- + microsoft/find_me_location_service.cr @@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@

View source] + [View source] @@ -7606,7 +7606,7 @@

View source] + [View source] @@ -7622,7 +7622,7 @@

View source] + [View source] diff --git a/Microsoft/GPS.html b/Microsoft/GPS.html index 491e10702a..d812ccc902 100644 --- a/Microsoft/GPS.html +++ b/Microsoft/GPS.html @@ -7347,7 +7347,7 @@

- + microsoft/find_me_models.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Microsoft/GraphAPI.html b/Microsoft/GraphAPI.html index 69a4eb90eb..9e5bf3aa85 100644 --- a/Microsoft/GraphAPI.html +++ b/Microsoft/GraphAPI.html @@ -7333,7 +7333,7 @@

- + microsoft/graph_api.cr diff --git a/Microsoft/GraphAPIAdvanced.html b/Microsoft/GraphAPIAdvanced.html index 6ed6097935..fe2cf4f563 100644 --- a/Microsoft/GraphAPIAdvanced.html +++ b/Microsoft/GraphAPIAdvanced.html @@ -7319,7 +7319,7 @@

- + microsoft/graph_api_advanced.cr @@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
diff --git a/Microsoft/GraphAPIAdvanced/GraphParams.html b/Microsoft/GraphAPIAdvanced/GraphParams.html index 6cd457a6e6..bbf39d74e6 100644 --- a/Microsoft/GraphAPIAdvanced/GraphParams.html +++ b/Microsoft/GraphAPIAdvanced/GraphParams.html @@ -7327,7 +7327,7 @@

- + microsoft/graph_api_advanced.cr diff --git a/Microsoft/Level.html b/Microsoft/Level.html index 6d9915ddde..00e7717623 100644 --- a/Microsoft/Level.html +++ b/Microsoft/Level.html @@ -7347,7 +7347,7 @@

- + microsoft/find_me_models.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Microsoft/Location.html b/Microsoft/Location.html index aa50d107c0..4f897eb87e 100644 --- a/Microsoft/Location.html +++ b/Microsoft/Location.html @@ -7363,7 +7363,7 @@

- + microsoft/find_me_models.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
diff --git a/Microsoft/Location/RFC3339Converter.html b/Microsoft/Location/RFC3339Converter.html index 44c5f8a401..43763df1e3 100644 --- a/Microsoft/Location/RFC3339Converter.html +++ b/Microsoft/Location/RFC3339Converter.html @@ -7317,7 +7317,7 @@

- + microsoft/find_me_models.cr @@ -7385,7 +7385,7 @@


- [View source] + [View source]
@@ -7401,7 +7401,7 @@


- [View source] + [View source]
diff --git a/Microsoft/UserData.html b/Microsoft/UserData.html index ff5cdb2b81..3dfcd379be 100644 --- a/Microsoft/UserData.html +++ b/Microsoft/UserData.html @@ -7347,7 +7347,7 @@

- + microsoft/find_me_models.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/MuleSoft.html b/MuleSoft.html index 9e81fd1c64..6f3f6c5cd5 100644 --- a/MuleSoft.html +++ b/MuleSoft.html @@ -7317,7 +7317,7 @@

- + mulesoft/models.cr diff --git a/MuleSoft/Booking.html b/MuleSoft/Booking.html index e7c5ef6012..a427b09dd6 100644 --- a/MuleSoft/Booking.html +++ b/MuleSoft/Booking.html @@ -7347,7 +7347,7 @@

- + mulesoft/models.cr @@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
diff --git a/MuleSoft/BookingResults.html b/MuleSoft/BookingResults.html index a334be8805..b4785975d4 100644 --- a/MuleSoft/BookingResults.html +++ b/MuleSoft/BookingResults.html @@ -7347,7 +7347,7 @@

- + mulesoft/models.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/MuleSoft/BookingsAPI.html b/MuleSoft/BookingsAPI.html index 987b2214b8..c41c97b7b5 100644 --- a/MuleSoft/BookingsAPI.html +++ b/MuleSoft/BookingsAPI.html @@ -7319,7 +7319,7 @@

- + mulesoft/booking_api.cr @@ -7486,7 +7486,7 @@


- [View source] + [View source]
@@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
diff --git a/MuleSoft/CalendarExporter.html b/MuleSoft/CalendarExporter.html index 79cd86e80f..43a1fbcc23 100644 --- a/MuleSoft/CalendarExporter.html +++ b/MuleSoft/CalendarExporter.html @@ -7319,7 +7319,7 @@

- + mulesoft/calendar_exporter.cr @@ -7486,7 +7486,7 @@


- [View source] + [View source]
@@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
diff --git a/MuleSoft/DateTimeConvertor.html b/MuleSoft/DateTimeConvertor.html index b437c5d732..32e0c0ee35 100644 --- a/MuleSoft/DateTimeConvertor.html +++ b/MuleSoft/DateTimeConvertor.html @@ -7331,7 +7331,7 @@

- + mulesoft/models.cr @@ -7403,7 +7403,7 @@


- [View source] + [View source]
@@ -7419,7 +7419,7 @@


- [View source] + [View source]
diff --git a/Nec.html b/Nec.html index fbadc2a76c..c25b48bff4 100644 --- a/Nec.html +++ b/Nec.html @@ -7317,7 +7317,7 @@

- + nec/display.cr diff --git a/Nec/Display.html b/Nec/Display.html index d7ef5abbe1..44469e29c1 100644 --- a/Nec/Display.html +++ b/Nec/Display.html @@ -7337,7 +7337,7 @@

- + nec/display.cr @@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
@@ -7914,7 +7914,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7946,7 +7946,7 @@


- [View source] + [View source]
@@ -7962,7 +7962,7 @@


- [View source] + [View source]
@@ -7978,7 +7978,7 @@


- [View source] + [View source]
@@ -7994,7 +7994,7 @@


- [View source] + [View source]
@@ -8020,7 +8020,7 @@


- [View source] + [View source]
@@ -8036,7 +8036,7 @@


- [View source] + [View source]
@@ -8052,7 +8052,7 @@


- [View source] + [View source]
@@ -8068,7 +8068,7 @@


- [View source] + [View source]
@@ -8084,7 +8084,7 @@


- [View source] + [View source]
@@ -8100,7 +8100,7 @@


- [View source] + [View source]
diff --git a/Nec/Display/Audio.html b/Nec/Display/Audio.html index 8528540fd3..c88e4c6b70 100644 --- a/Nec/Display/Audio.html +++ b/Nec/Display/Audio.html @@ -7317,7 +7317,7 @@

- + nec/display.cr @@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
diff --git a/Nec/Display/Command.html b/Nec/Display/Command.html index 77368774ed..c45d80c976 100644 --- a/Nec/Display/Command.html +++ b/Nec/Display/Command.html @@ -7317,7 +7317,7 @@

- + nec/display.cr @@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
diff --git a/Nec/Display/Input.html b/Nec/Display/Input.html index 07a5881b51..be6446985b 100644 --- a/Nec/Display/Input.html +++ b/Nec/Display/Input.html @@ -7317,7 +7317,7 @@

- + nec/display.cr @@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7743,7 +7743,7 @@


- [View source] + [View source]
@@ -7759,7 +7759,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
@@ -7791,7 +7791,7 @@


- [View source] + [View source]
@@ -7807,7 +7807,7 @@


- [View source] + [View source]
@@ -7823,7 +7823,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
diff --git a/Nec/Display/MsgType.html b/Nec/Display/MsgType.html index c76de93224..7cb95d38e3 100644 --- a/Nec/Display/MsgType.html +++ b/Nec/Display/MsgType.html @@ -7328,7 +7328,7 @@

- + nec/display.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
diff --git a/Nec/Projector.html b/Nec/Projector.html index c81cab16b6..0c24561521 100644 --- a/Nec/Projector.html +++ b/Nec/Projector.html @@ -7337,7 +7337,7 @@

- + nec/np_series.cr @@ -7755,7 +7755,7 @@


- [View source] + [View source]
@@ -7771,7 +7771,7 @@


- [View source] + [View source]
@@ -7787,7 +7787,7 @@


- [View source] + [View source]
@@ -7803,7 +7803,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7835,7 +7835,7 @@


- [View source] + [View source]
@@ -7851,7 +7851,7 @@


- [View source] + [View source]
@@ -7867,7 +7867,7 @@


- [View source] + [View source]
@@ -7883,7 +7883,7 @@


- [View source] + [View source]
@@ -7899,7 +7899,7 @@


- [View source] + [View source]
@@ -7915,7 +7915,7 @@


- [View source] + [View source]
@@ -7931,7 +7931,7 @@


- [View source] + [View source]
@@ -7947,7 +7947,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8170,7 +8170,7 @@


- [View source] + [View source]
@@ -8186,7 +8186,7 @@


- [View source] + [View source]
@@ -8202,7 +8202,7 @@


- [View source] + [View source]
@@ -8218,7 +8218,7 @@


- [View source] + [View source]
@@ -8234,7 +8234,7 @@


- [View source] + [View source]
@@ -8250,7 +8250,7 @@


- [View source] + [View source]
@@ -8266,7 +8266,7 @@


- [View source] + [View source]
@@ -8282,7 +8282,7 @@


- [View source] + [View source]
diff --git a/Nec/Projector/Audio.html b/Nec/Projector/Audio.html index 8a2d7f17f9..6c55eaa9bc 100644 --- a/Nec/Projector/Audio.html +++ b/Nec/Projector/Audio.html @@ -7317,7 +7317,7 @@

- + nec/np_series.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Nec/Projector/Input.html b/Nec/Projector/Input.html index ffca12bb1d..b1b13567a5 100644 --- a/Nec/Projector/Input.html +++ b/Nec/Projector/Input.html @@ -7317,7 +7317,7 @@

- + nec/np_series.cr @@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
diff --git a/Nec/Projector/Response.html b/Nec/Projector/Response.html index 30a6238108..e8211f8370 100644 --- a/Nec/Projector/Response.html +++ b/Nec/Projector/Response.html @@ -7328,7 +7328,7 @@

- + nec/np_series.cr @@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd.html b/OfficeRnd.html index 76593d1d4e..0f60ab1c6c 100644 --- a/OfficeRnd.html +++ b/OfficeRnd.html @@ -7328,14 +7328,14 @@

- + office_rnd/models.cr
- + office_rnd/office_rnd_api.cr diff --git a/OfficeRnd/Booking.html b/OfficeRnd/Booking.html index f455576360..c9de6e1c75 100644 --- a/OfficeRnd/Booking.html +++ b/OfficeRnd/Booking.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/BookingFee.html b/OfficeRnd/BookingFee.html index 297de25202..2f24c7aa8e 100644 --- a/OfficeRnd/BookingFee.html +++ b/OfficeRnd/BookingFee.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7486,7 +7486,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/BookingTime.html b/OfficeRnd/BookingTime.html index 99b0f0b083..53c9d19150 100644 --- a/OfficeRnd/BookingTime.html +++ b/OfficeRnd/BookingTime.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Credit.html b/OfficeRnd/Credit.html index ef720fd2dc..b7c22c3f81 100644 --- a/OfficeRnd/Credit.html +++ b/OfficeRnd/Credit.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Data.html b/OfficeRnd/Data.html index d5579823db..c7d0d538ad 100644 --- a/OfficeRnd/Data.html +++ b/OfficeRnd/Data.html @@ -7383,7 +7383,7 @@

- + office_rnd/models.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Fee.html b/OfficeRnd/Fee.html index fe6e30d617..489d1ee3c6 100644 --- a/OfficeRnd/Fee.html +++ b/OfficeRnd/Fee.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Floor.html b/OfficeRnd/Floor.html index 5ab49e1547..bc72c00400 100644 --- a/OfficeRnd/Floor.html +++ b/OfficeRnd/Floor.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Office.html b/OfficeRnd/Office.html index 9df329e885..c2201f1e68 100644 --- a/OfficeRnd/Office.html +++ b/OfficeRnd/Office.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/OfficeRndAPI.html b/OfficeRnd/OfficeRndAPI.html index 09c93ee010..7589245264 100644 --- a/OfficeRnd/OfficeRndAPI.html +++ b/OfficeRnd/OfficeRndAPI.html @@ -7319,7 +7319,7 @@

- + office_rnd/office_rnd_api.cr @@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7906,7 +7906,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/OfficeRndAPI/BookingArgument.html b/OfficeRnd/OfficeRndAPI/BookingArgument.html index 9289424036..8c471246fe 100644 --- a/OfficeRnd/OfficeRndAPI/BookingArgument.html +++ b/OfficeRnd/OfficeRndAPI/BookingArgument.html @@ -7327,7 +7327,7 @@

- + office_rnd/office_rnd_api.cr diff --git a/OfficeRnd/Rate.html b/OfficeRnd/Rate.html index c4517924ad..d6b43a90bf 100644 --- a/OfficeRnd/Rate.html +++ b/OfficeRnd/Rate.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Rate/CancellationPolicy.html b/OfficeRnd/Rate/CancellationPolicy.html index 223ca5e2d3..5ae7c996ad 100644 --- a/OfficeRnd/Rate/CancellationPolicy.html +++ b/OfficeRnd/Rate/CancellationPolicy.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Rate/Extra.html b/OfficeRnd/Rate/Extra.html index 07319630dc..5e61a4391a 100644 --- a/OfficeRnd/Rate/Extra.html +++ b/OfficeRnd/Rate/Extra.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Resource.html b/OfficeRnd/Resource.html index 2451b6ecaa..1686fb10a3 100644 --- a/OfficeRnd/Resource.html +++ b/OfficeRnd/Resource.html @@ -7319,7 +7319,7 @@

- + office_rnd/models.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/Resource/Type.html b/OfficeRnd/Resource/Type.html index 04df37bd1a..38e65cc285 100644 --- a/OfficeRnd/Resource/Type.html +++ b/OfficeRnd/Resource/Type.html @@ -7317,7 +7317,7 @@

- + office_rnd/models.cr @@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
diff --git a/OfficeRnd/TokenResponse.html b/OfficeRnd/TokenResponse.html index a7b6fc58c5..e20a47e03c 100644 --- a/OfficeRnd/TokenResponse.html +++ b/OfficeRnd/TokenResponse.html @@ -7347,7 +7347,7 @@

- + office_rnd/models.cr @@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7691,7 +7691,7 @@


- [View source] + [View source]
diff --git a/OpenAI.html b/OpenAI.html index 15a29c85b4..e80f6a7b4e 100644 --- a/OpenAI.html +++ b/OpenAI.html @@ -7317,28 +7317,28 @@

- + open_ai/models/chat_completion.cr
- + open_ai/models/edit_completion.cr
- + open_ai/models/model.cr
- + open_ai/models/text_completion.cr diff --git a/OpenAI/ChatCompletion.html b/OpenAI/ChatCompletion.html index 144971d408..ba75ed0735 100644 --- a/OpenAI/ChatCompletion.html +++ b/OpenAI/ChatCompletion.html @@ -7347,7 +7347,7 @@

- + open_ai/models/chat_completion.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/OpenAI/CreateChatCompletion.html b/OpenAI/CreateChatCompletion.html index 31a18cb186..ce6457a6b9 100644 --- a/OpenAI/CreateChatCompletion.html +++ b/OpenAI/CreateChatCompletion.html @@ -7358,7 +7358,7 @@

- + open_ai/models/chat_completion.cr @@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7821,7 +7821,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7931,7 +7931,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7995,7 +7995,7 @@


- [View source] + [View source]
@@ -8018,7 +8018,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8065,7 +8065,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8110,7 +8110,7 @@


- [View source] + [View source]
@@ -8131,7 +8131,7 @@


- [View source] + [View source]
diff --git a/OpenAI/CreateEditCompletion.html b/OpenAI/CreateEditCompletion.html index ea986ebcfa..13d23f18de 100644 --- a/OpenAI/CreateEditCompletion.html +++ b/OpenAI/CreateEditCompletion.html @@ -7358,7 +7358,7 @@

- + open_ai/models/edit_completion.cr @@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
diff --git a/OpenAI/CreateTextCompletion.html b/OpenAI/CreateTextCompletion.html index 42d32d82d0..eefbf19a77 100644 --- a/OpenAI/CreateTextCompletion.html +++ b/OpenAI/CreateTextCompletion.html @@ -7358,7 +7358,7 @@

- + open_ai/models/text_completion.cr @@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7819,7 +7819,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7928,7 +7928,7 @@


- [View source] + [View source]
@@ -7951,7 +7951,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7995,7 +7995,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8037,7 +8037,7 @@


- [View source] + [View source]
@@ -8058,7 +8058,7 @@


- [View source] + [View source]
@@ -8081,7 +8081,7 @@


- [View source] + [View source]
@@ -8104,7 +8104,7 @@


- [View source] + [View source]
@@ -8125,7 +8125,7 @@


- [View source] + [View source]
@@ -8146,7 +8146,7 @@


- [View source] + [View source]
@@ -8168,7 +8168,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8211,7 +8211,7 @@


- [View source] + [View source]
@@ -8232,7 +8232,7 @@


- [View source] + [View source]
@@ -8253,7 +8253,7 @@


- [View source] + [View source]
@@ -8274,7 +8274,7 @@


- [View source] + [View source]
@@ -8297,7 +8297,7 @@


- [View source] + [View source]
@@ -8320,7 +8320,7 @@


- [View source] + [View source]
@@ -8344,7 +8344,7 @@


- [View source] + [View source]
@@ -8368,7 +8368,7 @@


- [View source] + [View source]
@@ -8389,7 +8389,7 @@


- [View source] + [View source]
@@ -8410,7 +8410,7 @@


- [View source] + [View source]
diff --git a/OpenAI/GPT.html b/OpenAI/GPT.html index e1a306f313..b3aa2bebab 100644 --- a/OpenAI/GPT.html +++ b/OpenAI/GPT.html @@ -7319,7 +7319,7 @@

- + open_ai/gpt.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
diff --git a/OpenAI/List.html b/OpenAI/List.html index 3414535464..f1792f38ec 100644 --- a/OpenAI/List.html +++ b/OpenAI/List.html @@ -7347,7 +7347,7 @@

- + open_ai/models/model.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/OpenAI/Message.html b/OpenAI/Message.html index 003c2ed24a..601a5c954e 100644 --- a/OpenAI/Message.html +++ b/OpenAI/Message.html @@ -7359,7 +7359,7 @@

- + open_ai/models/chat_completion.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
diff --git a/OpenAI/MessageChoice.html b/OpenAI/MessageChoice.html index 2e4e2f12b7..028f8e6919 100644 --- a/OpenAI/MessageChoice.html +++ b/OpenAI/MessageChoice.html @@ -7347,7 +7347,7 @@

- + open_ai/models/chat_completion.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/OpenAI/Model.html b/OpenAI/Model.html index d341a1898a..aeb9bf7470 100644 --- a/OpenAI/Model.html +++ b/OpenAI/Model.html @@ -7360,7 +7360,7 @@

- + open_ai/models/model.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
diff --git a/OpenAI/Role.html b/OpenAI/Role.html index 8cd515f43d..853b281e5e 100644 --- a/OpenAI/Role.html +++ b/OpenAI/Role.html @@ -7317,7 +7317,7 @@

- + open_ai/models/chat_completion.cr @@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
diff --git a/OpenAI/TextChoice.html b/OpenAI/TextChoice.html index 6aaaf3d23f..25ffe10f3e 100644 --- a/OpenAI/TextChoice.html +++ b/OpenAI/TextChoice.html @@ -7349,7 +7349,7 @@

- + open_ai/models/text_completion.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
diff --git a/OpenAI/TextCompletion.html b/OpenAI/TextCompletion.html index 516f504ffe..227474e5da 100644 --- a/OpenAI/TextCompletion.html +++ b/OpenAI/TextCompletion.html @@ -7347,7 +7347,7 @@

- + open_ai/models/text_completion.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/OpenAI/Usage.html b/OpenAI/Usage.html index 1165d46761..66625c79c8 100644 --- a/OpenAI/Usage.html +++ b/OpenAI/Usage.html @@ -7347,7 +7347,7 @@

- + open_ai/models/model.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/OpenAI/VoiceControlInterface.html b/OpenAI/VoiceControlInterface.html index be411e11c6..5eba433d00 100644 --- a/OpenAI/VoiceControlInterface.html +++ b/OpenAI/VoiceControlInterface.html @@ -7333,7 +7333,7 @@

- + open_ai/voice_control.cr @@ -7536,7 +7536,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
diff --git a/OpenAI/VoiceControlInterface/Metadata.html b/OpenAI/VoiceControlInterface/Metadata.html index dc5906746f..0c1861fdba 100644 --- a/OpenAI/VoiceControlInterface/Metadata.html +++ b/OpenAI/VoiceControlInterface/Metadata.html @@ -7327,7 +7327,7 @@

- + open_ai/voice_control.cr diff --git a/Optergy.html b/Optergy.html index 15b7c60f3e..f22de9f8b3 100644 --- a/Optergy.html +++ b/Optergy.html @@ -7317,7 +7317,7 @@

- + optergy/p864_models.cr diff --git a/Optergy/AnalogValue.html b/Optergy/AnalogValue.html index 7343748202..506f9b7fd5 100644 --- a/Optergy/AnalogValue.html +++ b/Optergy/AnalogValue.html @@ -7347,7 +7347,7 @@

- + optergy/p864_models.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/Optergy/BinaryValue.html b/Optergy/BinaryValue.html index 00a34612be..606cb813dc 100644 --- a/Optergy/BinaryValue.html +++ b/Optergy/BinaryValue.html @@ -7347,7 +7347,7 @@

- + optergy/p864_models.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/Optergy/Config.html b/Optergy/Config.html index f0a30a407b..05dce4aaa9 100644 --- a/Optergy/Config.html +++ b/Optergy/Config.html @@ -7347,7 +7347,7 @@

- + optergy/p864_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Optergy/ModeResponse.html b/Optergy/ModeResponse.html index ee63e1ea34..552f312537 100644 --- a/Optergy/ModeResponse.html +++ b/Optergy/ModeResponse.html @@ -7347,7 +7347,7 @@

- + optergy/p864_models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Optergy/P864.html b/Optergy/P864.html index a896f71a38..9dfdec51c0 100644 --- a/Optergy/P864.html +++ b/Optergy/P864.html @@ -7333,7 +7333,7 @@

- + optergy/p864.cr @@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7997,7 +7997,7 @@


- [View source] + [View source]
@@ -8013,7 +8013,7 @@


- [View source] + [View source]
@@ -8029,7 +8029,7 @@


- [View source] + [View source]
@@ -8045,7 +8045,7 @@


- [View source] + [View source]
@@ -8061,7 +8061,7 @@


- [View source] + [View source]
@@ -8077,7 +8077,7 @@


- [View source] + [View source]
@@ -8093,7 +8093,7 @@


- [View source] + [View source]
@@ -8109,7 +8109,7 @@


- [View source] + [View source]
diff --git a/Optergy/P864/Mapping.html b/Optergy/P864/Mapping.html index 062bcb62b0..5bd5bba536 100644 --- a/Optergy/P864/Mapping.html +++ b/Optergy/P864/Mapping.html @@ -7327,7 +7327,7 @@

- + optergy/p864.cr diff --git a/Optergy/P864/TokenResponse.html b/Optergy/P864/TokenResponse.html index f4ed417e6e..1eaf6ab91d 100644 --- a/Optergy/P864/TokenResponse.html +++ b/Optergy/P864/TokenResponse.html @@ -7347,7 +7347,7 @@

- + optergy/p864.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
diff --git a/Optergy/Units.html b/Optergy/Units.html index fa9f2b2c2c..27a9dd1476 100644 --- a/Optergy/Units.html +++ b/Optergy/Units.html @@ -7317,7 +7317,7 @@

- + optergy/p864_models.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Panasonic.html b/Panasonic.html index f7006d050b..bae9242aa8 100644 --- a/Panasonic.html +++ b/Panasonic.html @@ -7317,7 +7317,7 @@

- + panasonic/camera/he_series.cr diff --git a/Panasonic/Camera.html b/Panasonic/Camera.html index c14903e23e..bf46120e84 100644 --- a/Panasonic/Camera.html +++ b/Panasonic/Camera.html @@ -7317,7 +7317,7 @@

- + panasonic/camera/he_series.cr diff --git a/Panasonic/Camera/HESeries.html b/Panasonic/Camera/HESeries.html index 70b9755d52..cac47611f4 100644 --- a/Panasonic/Camera/HESeries.html +++ b/Panasonic/Camera/HESeries.html @@ -7335,7 +7335,7 @@

- + panasonic/camera/he_series.cr @@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7983,7 +7983,7 @@


- [View source] + [View source]
diff --git a/Panasonic/Camera/HESeries/Installation.html b/Panasonic/Camera/HESeries/Installation.html index 8bc09609c0..fa14d6c0ba 100644 --- a/Panasonic/Camera/HESeries/Installation.html +++ b/Panasonic/Camera/HESeries/Installation.html @@ -7317,7 +7317,7 @@

- + panasonic/camera/he_series.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Panasonic/Display.html b/Panasonic/Display.html index 2b4fec3753..b415ac71d4 100644 --- a/Panasonic/Display.html +++ b/Panasonic/Display.html @@ -7317,7 +7317,7 @@

- + panasonic/display/protocol2.cr diff --git a/Panasonic/Display/Protocol2.html b/Panasonic/Display/Protocol2.html index c52b5d710a..566119da9e 100644 --- a/Panasonic/Display/Protocol2.html +++ b/Panasonic/Display/Protocol2.html @@ -7337,7 +7337,7 @@

- + panasonic/display/protocol2.cr @@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7844,7 +7844,7 @@


- [View source] + [View source]
@@ -7860,7 +7860,7 @@


- [View source] + [View source]
@@ -7876,7 +7876,7 @@


- [View source] + [View source]
@@ -7892,7 +7892,7 @@


- [View source] + [View source]
@@ -7908,7 +7908,7 @@


- [View source] + [View source]
diff --git a/Panasonic/Display/Protocol2/Inputs.html b/Panasonic/Display/Protocol2/Inputs.html index 4e7db3d9c0..84d508be7c 100644 --- a/Panasonic/Display/Protocol2/Inputs.html +++ b/Panasonic/Display/Protocol2/Inputs.html @@ -7317,7 +7317,7 @@

- + panasonic/display/protocol2.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Panasonic/Projector.html b/Panasonic/Projector.html index 53a7d211a7..26582602e8 100644 --- a/Panasonic/Projector.html +++ b/Panasonic/Projector.html @@ -7317,7 +7317,7 @@

- + panasonic/projector/nt_control.cr diff --git a/Panasonic/Projector/NTControl.html b/Panasonic/Projector/NTControl.html index 7df52905e2..3e9628a6ea 100644 --- a/Panasonic/Projector/NTControl.html +++ b/Panasonic/Projector/NTControl.html @@ -7337,7 +7337,7 @@

- + panasonic/projector/nt_control.cr @@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
diff --git a/Panasonic/Projector/NTControl/Inputs.html b/Panasonic/Projector/NTControl/Inputs.html index 6dc7c804dd..eaf5ba343c 100644 --- a/Panasonic/Projector/NTControl/Inputs.html +++ b/Panasonic/Projector/NTControl/Inputs.html @@ -7317,7 +7317,7 @@

- + panasonic/projector/nt_control.cr @@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
diff --git a/Pattr.html b/Pattr.html index 76692c1d8e..0d1dd8acce 100644 --- a/Pattr.html +++ b/Pattr.html @@ -7317,7 +7317,7 @@

- + pattr/chat_bot_models.cr diff --git a/Pattr/ChatBot.html b/Pattr/ChatBot.html index dea4e8884c..d044c1a383 100644 --- a/Pattr/ChatBot.html +++ b/Pattr/ChatBot.html @@ -7319,7 +7319,7 @@

- + pattr/chat_bot.cr @@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
diff --git a/Pattr/Location.html b/Pattr/Location.html index 65fc40dfad..7a535f2b32 100644 --- a/Pattr/Location.html +++ b/Pattr/Location.html @@ -7319,7 +7319,7 @@

- + pattr/chat_bot_models.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
diff --git a/Pattr/PlaceLocationResult.html b/Pattr/PlaceLocationResult.html index 00b5057006..23bca7b119 100644 --- a/Pattr/PlaceLocationResult.html +++ b/Pattr/PlaceLocationResult.html @@ -7347,7 +7347,7 @@

- + pattr/chat_bot_models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Pattr/Request.html b/Pattr/Request.html index 47b179a72f..994a6f4dff 100644 --- a/Pattr/Request.html +++ b/Pattr/Request.html @@ -7361,7 +7361,7 @@

- + pattr/chat_bot_models.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Philips.html b/Philips.html index 27b2e19e48..cd4b64a134 100644 --- a/Philips.html +++ b/Philips.html @@ -7317,7 +7317,7 @@

- + philips/dynalite.cr diff --git a/Philips/DyNetText.html b/Philips/DyNetText.html index f474bc88af..f79a1b805a 100644 --- a/Philips/DyNetText.html +++ b/Philips/DyNetText.html @@ -7335,7 +7335,7 @@

- + philips/dynet_text.cr @@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
diff --git a/Philips/DyNetText/Area.html b/Philips/DyNetText/Area.html index 6878d833f5..a7fc2c12c2 100644 --- a/Philips/DyNetText/Area.html +++ b/Philips/DyNetText/Area.html @@ -7327,7 +7327,7 @@

- + philips/dynet_text.cr diff --git a/Philips/Dynalite.html b/Philips/Dynalite.html index 07dc0979db..14158442bf 100644 --- a/Philips/Dynalite.html +++ b/Philips/Dynalite.html @@ -7335,7 +7335,7 @@

- + philips/dynalite.cr @@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7870,7 +7870,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7918,7 +7918,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
diff --git a/Philips/Dynalite/Area.html b/Philips/Dynalite/Area.html index 65ff57135b..e2f65b404b 100644 --- a/Philips/Dynalite/Area.html +++ b/Philips/Dynalite/Area.html @@ -7327,7 +7327,7 @@

- + philips/dynalite.cr diff --git a/Philips/Hue.html b/Philips/Hue.html index ea2b13c527..1c55fbae60 100644 --- a/Philips/Hue.html +++ b/Philips/Hue.html @@ -7335,7 +7335,7 @@

- + philips/hue.cr @@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@

- [View source] + [View source]
@@ -7863,7 +7863,7 @@

- [View source] + [View source]
diff --git a/Philips/Hue/Area.html b/Philips/Hue/Area.html index 3a3ca13516..3680f87194 100644 --- a/Philips/Hue/Area.html +++ b/Philips/Hue/Area.html @@ -7339,7 +7339,7 @@

- + philips/hue.cr diff --git a/Philips/Hue/HueError.html b/Philips/Hue/HueError.html index b3faee3b16..c7b06e607c 100644 --- a/Philips/Hue/HueError.html +++ b/Philips/Hue/HueError.html @@ -7347,7 +7347,7 @@

- + philips/hue.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Philips/Hue/RegResponse.html b/Philips/Hue/RegResponse.html index 6b9f4143b0..abc90f300b 100644 --- a/Philips/Hue/RegResponse.html +++ b/Philips/Hue/RegResponse.html @@ -7347,7 +7347,7 @@

- + philips/hue.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
diff --git a/Philips/Hue/RegSuccess.html b/Philips/Hue/RegSuccess.html index 5ce8e6a3fc..c8cdb38228 100644 --- a/Philips/Hue/RegSuccess.html +++ b/Philips/Hue/RegSuccess.html @@ -7347,7 +7347,7 @@

- + philips/hue.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
diff --git a/Philips/Hue/Resource.html b/Philips/Hue/Resource.html index 92e3733486..bf704be5ea 100644 --- a/Philips/Hue/Resource.html +++ b/Philips/Hue/Resource.html @@ -7317,7 +7317,7 @@

- + philips/hue.cr @@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
diff --git a/Place.html b/Place.html index 4c30f9928e..cc46c2863c 100644 --- a/Place.html +++ b/Place.html @@ -7317,21 +7317,21 @@

- + place/area_config.cr
- + place/meet/help.cr
- + place/mqtt_transport_adaptor.cr diff --git a/Place/AreaConfig.html b/Place/AreaConfig.html index 37a2eec58a..d6e4453328 100644 --- a/Place/AreaConfig.html +++ b/Place/AreaConfig.html @@ -7347,7 +7347,7 @@

- + place/area_config.cr @@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
diff --git a/Place/AreaManagement.html b/Place/AreaManagement.html index 81d6a5ee2e..83851c5fbd 100644 --- a/Place/AreaManagement.html +++ b/Place/AreaManagement.html @@ -7319,7 +7319,7 @@

- + place/area_management.cr @@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7764,7 +7764,7 @@


- [View source] + [View source]
@@ -7780,7 +7780,7 @@


- [View source] + [View source]
@@ -7796,7 +7796,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
diff --git a/Place/AreaManagement/AreaSetting.html b/Place/AreaManagement/AreaSetting.html index 97fa531b8a..2ceda52a62 100644 --- a/Place/AreaManagement/AreaSetting.html +++ b/Place/AreaManagement/AreaSetting.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/ChildMetadata.html b/Place/AreaManagement/ChildMetadata.html index 2d01033118..ea17cfc5b8 100644 --- a/Place/AreaManagement/ChildMetadata.html +++ b/Place/AreaManagement/ChildMetadata.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/LevelCapacity.html b/Place/AreaManagement/LevelCapacity.html index 87edbc7aa0..b0bb596e0c 100644 --- a/Place/AreaManagement/LevelCapacity.html +++ b/Place/AreaManagement/LevelCapacity.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/Metadata.html b/Place/AreaManagement/Metadata.html index 78551dceaa..b96d8271c6 100644 --- a/Place/AreaManagement/Metadata.html +++ b/Place/AreaManagement/Metadata.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/RawLevelDetails.html b/Place/AreaManagement/RawLevelDetails.html index bda47a713e..5483d455b0 100644 --- a/Place/AreaManagement/RawLevelDetails.html +++ b/Place/AreaManagement/RawLevelDetails.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/SensorDetail.html b/Place/AreaManagement/SensorDetail.html index 8aa6b06db4..9ec0d9ff3f 100644 --- a/Place/AreaManagement/SensorDetail.html +++ b/Place/AreaManagement/SensorDetail.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/SensorMeta.html b/Place/AreaManagement/SensorMeta.html index 5dbb89dc7e..e863bf8fe7 100644 --- a/Place/AreaManagement/SensorMeta.html +++ b/Place/AreaManagement/SensorMeta.html @@ -7347,7 +7347,7 @@

- + place/area_management.cr @@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
diff --git a/Place/AreaManagement/SensorType.html b/Place/AreaManagement/SensorType.html index 2116e3f7da..1987ca8861 100644 --- a/Place/AreaManagement/SensorType.html +++ b/Place/AreaManagement/SensorType.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AreaManagement/Zone.html b/Place/AreaManagement/Zone.html index 24f68df6b0..e21e84decb 100644 --- a/Place/AreaManagement/Zone.html +++ b/Place/AreaManagement/Zone.html @@ -7327,7 +7327,7 @@

- + place/area_management.cr diff --git a/Place/AttendeeScanner.html b/Place/AttendeeScanner.html index 86b188a8e6..2920e57d8a 100644 --- a/Place/AttendeeScanner.html +++ b/Place/AttendeeScanner.html @@ -7319,7 +7319,7 @@

- + place/attendee_scanner.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
diff --git a/Place/AttendeeScanner/Attendee.html b/Place/AttendeeScanner/Attendee.html index cabb418cc3..0df623dd07 100644 --- a/Place/AttendeeScanner/Attendee.html +++ b/Place/AttendeeScanner/Attendee.html @@ -7327,7 +7327,7 @@

- + place/attendee_scanner.cr diff --git a/Place/AttendeeScanner/Booking.html b/Place/AttendeeScanner/Booking.html index 9f0bcd885a..f1fb415251 100644 --- a/Place/AttendeeScanner/Booking.html +++ b/Place/AttendeeScanner/Booking.html @@ -7347,7 +7347,7 @@

- + place/attendee_scanner.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
diff --git a/Place/AttendeeScanner/Event.html b/Place/AttendeeScanner/Event.html index be6546e620..8e722095c0 100644 --- a/Place/AttendeeScanner/Event.html +++ b/Place/AttendeeScanner/Event.html @@ -7327,7 +7327,7 @@

- + place/attendee_scanner.cr diff --git a/Place/AttendeeScanner/Guest.html b/Place/AttendeeScanner/Guest.html index e20e1216f6..4e9280f592 100644 --- a/Place/AttendeeScanner/Guest.html +++ b/Place/AttendeeScanner/Guest.html @@ -7347,7 +7347,7 @@

- + place/attendee_scanner.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
diff --git a/Place/AutoDeskCheckin.html b/Place/AutoDeskCheckin.html index 81c45ef3b2..b04cd50722 100644 --- a/Place/AutoDeskCheckin.html +++ b/Place/AutoDeskCheckin.html @@ -7319,7 +7319,7 @@

- + place/bookings/auto_desk_checkin.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease.html b/Place/AutoRelease.html index 54b941071f..002f1c394e 100644 --- a/Place/AutoRelease.html +++ b/Place/AutoRelease.html @@ -7333,7 +7333,7 @@

- + place/auto_release.cr @@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7743,7 +7743,7 @@


- [View source] + [View source]
@@ -7759,7 +7759,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease/AutoReleaseConfig.html b/Place/AutoRelease/AutoReleaseConfig.html index c99ba9c324..7dc5f0570d 100644 --- a/Place/AutoRelease/AutoReleaseConfig.html +++ b/Place/AutoRelease/AutoReleaseConfig.html @@ -7358,7 +7358,7 @@

- + place/auto_release.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease/Booking.html b/Place/AutoRelease/Booking.html index f3f6acef52..1c3fe95cf8 100644 --- a/Place/AutoRelease/Booking.html +++ b/Place/AutoRelease/Booking.html @@ -7347,7 +7347,7 @@

- + place/auto_release.cr @@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
@@ -7840,7 +7840,7 @@


- [View source] + [View source]
@@ -7856,7 +7856,7 @@


- [View source] + [View source]
@@ -7872,7 +7872,7 @@


- [View source] + [View source]
@@ -7888,7 +7888,7 @@


- [View source] + [View source]
@@ -7904,7 +7904,7 @@


- [View source] + [View source]
@@ -7920,7 +7920,7 @@


- [View source] + [View source]
@@ -7936,7 +7936,7 @@


- [View source] + [View source]
@@ -7952,7 +7952,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
@@ -8144,7 +8144,7 @@


- [View source] + [View source]
@@ -8160,7 +8160,7 @@


- [View source] + [View source]
@@ -8176,7 +8176,7 @@


- [View source] + [View source]
@@ -8192,7 +8192,7 @@


- [View source] + [View source]
@@ -8208,7 +8208,7 @@


- [View source] + [View source]
@@ -8224,7 +8224,7 @@


- [View source] + [View source]
@@ -8240,7 +8240,7 @@


- [View source] + [View source]
@@ -8256,7 +8256,7 @@


- [View source] + [View source]
@@ -8272,7 +8272,7 @@


- [View source] + [View source]
@@ -8288,7 +8288,7 @@


- [View source] + [View source]
@@ -8304,7 +8304,7 @@


- [View source] + [View source]
@@ -8320,7 +8320,7 @@


- [View source] + [View source]
@@ -8336,7 +8336,7 @@


- [View source] + [View source]
@@ -8352,7 +8352,7 @@


- [View source] + [View source]
@@ -8368,7 +8368,7 @@


- [View source] + [View source]
@@ -8384,7 +8384,7 @@


- [View source] + [View source]
@@ -8400,7 +8400,7 @@


- [View source] + [View source]
@@ -8416,7 +8416,7 @@


- [View source] + [View source]
@@ -8432,7 +8432,7 @@


- [View source] + [View source]
@@ -8448,7 +8448,7 @@


- [View source] + [View source]
@@ -8464,7 +8464,7 @@


- [View source] + [View source]
@@ -8480,7 +8480,7 @@


- [View source] + [View source]
@@ -8496,7 +8496,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease/WorktimeBlock.html b/Place/AutoRelease/WorktimeBlock.html index 1d7673adb3..25450ec469 100644 --- a/Place/AutoRelease/WorktimeBlock.html +++ b/Place/AutoRelease/WorktimeBlock.html @@ -7360,7 +7360,7 @@

- + place/auto_release.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease/WorktimePreference.html b/Place/AutoRelease/WorktimePreference.html index e41599f9ec..8aac31402f 100644 --- a/Place/AutoRelease/WorktimePreference.html +++ b/Place/AutoRelease/WorktimePreference.html @@ -7358,7 +7358,7 @@

- + place/auto_release.cr @@ -7503,7 +7503,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
diff --git a/Place/AutoRelease/Zone.html b/Place/AutoRelease/Zone.html index e94c9305dc..b0e1f74819 100644 --- a/Place/AutoRelease/Zone.html +++ b/Place/AutoRelease/Zone.html @@ -7347,7 +7347,7 @@

- + place/auto_release.cr @@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
diff --git a/Place/AutoReleaseLocker.html b/Place/AutoReleaseLocker.html index 97eae08036..a013e11446 100644 --- a/Place/AutoReleaseLocker.html +++ b/Place/AutoReleaseLocker.html @@ -7319,7 +7319,7 @@

- + place/auto_release_locker.cr @@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7536,7 +7536,7 @@


- [View source] + [View source]
diff --git a/Place/Booking.html b/Place/Booking.html index 22b6166e24..29d7d7a8f7 100644 --- a/Place/Booking.html +++ b/Place/Booking.html @@ -7347,7 +7347,7 @@

- + place/booking_model.cr @@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
@@ -8011,7 +8011,7 @@


- [View source] + [View source]
@@ -8027,7 +8027,7 @@


- [View source] + [View source]
@@ -8043,7 +8043,7 @@


- [View source] + [View source]
@@ -8059,7 +8059,7 @@


- [View source] + [View source]
@@ -8075,7 +8075,7 @@


- [View source] + [View source]
@@ -8091,7 +8091,7 @@


- [View source] + [View source]
@@ -8107,7 +8107,7 @@


- [View source] + [View source]
@@ -8123,7 +8123,7 @@


- [View source] + [View source]
@@ -8139,7 +8139,7 @@


- [View source] + [View source]
@@ -8155,7 +8155,7 @@


- [View source] + [View source]
@@ -8171,7 +8171,7 @@


- [View source] + [View source]
@@ -8187,7 +8187,7 @@


- [View source] + [View source]
@@ -8203,7 +8203,7 @@


- [View source] + [View source]
@@ -8219,7 +8219,7 @@


- [View source] + [View source]
@@ -8235,7 +8235,7 @@


- [View source] + [View source]
@@ -8251,7 +8251,7 @@


- [View source] + [View source]
@@ -8267,7 +8267,7 @@


- [View source] + [View source]
@@ -8283,7 +8283,7 @@


- [View source] + [View source]
@@ -8299,7 +8299,7 @@


- [View source] + [View source]
@@ -8315,7 +8315,7 @@


- [View source] + [View source]
@@ -8331,7 +8331,7 @@


- [View source] + [View source]
@@ -8347,7 +8347,7 @@


- [View source] + [View source]
@@ -8363,7 +8363,7 @@


- [View source] + [View source]
@@ -8379,7 +8379,7 @@


- [View source] + [View source]
@@ -8395,7 +8395,7 @@


- [View source] + [View source]
@@ -8411,7 +8411,7 @@


- [View source] + [View source]
@@ -8427,7 +8427,7 @@


- [View source] + [View source]
@@ -8443,7 +8443,7 @@


- [View source] + [View source]
@@ -8459,7 +8459,7 @@


- [View source] + [View source]
@@ -8475,7 +8475,7 @@


- [View source] + [View source]
@@ -8491,7 +8491,7 @@


- [View source] + [View source]
@@ -8507,7 +8507,7 @@


- [View source] + [View source]
@@ -8523,7 +8523,7 @@


- [View source] + [View source]
@@ -8539,7 +8539,7 @@


- [View source] + [View source]
@@ -8555,7 +8555,7 @@


- [View source] + [View source]
@@ -8571,7 +8571,7 @@


- [View source] + [View source]
@@ -8587,7 +8587,7 @@


- [View source] + [View source]
@@ -8603,7 +8603,7 @@


- [View source] + [View source]
@@ -8619,7 +8619,7 @@


- [View source] + [View source]
@@ -8635,7 +8635,7 @@


- [View source] + [View source]
@@ -8651,7 +8651,7 @@


- [View source] + [View source]
@@ -8667,7 +8667,7 @@


- [View source] + [View source]
@@ -8683,7 +8683,7 @@


- [View source] + [View source]
@@ -8699,7 +8699,7 @@


- [View source] + [View source]
@@ -8715,7 +8715,7 @@


- [View source] + [View source]
@@ -8731,7 +8731,7 @@


- [View source] + [View source]
@@ -8747,7 +8747,7 @@


- [View source] + [View source]
@@ -8763,7 +8763,7 @@


- [View source] + [View source]
diff --git a/Place/BookingApprovalWorkflows.html b/Place/BookingApprovalWorkflows.html index 8d7397261d..0814d64adb 100644 --- a/Place/BookingApprovalWorkflows.html +++ b/Place/BookingApprovalWorkflows.html @@ -7333,7 +7333,7 @@

- + place/booking_approval_workflows.cr @@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
diff --git a/Place/BookingApprovalWorkflows/Reminders.html b/Place/BookingApprovalWorkflows/Reminders.html index 108e1a7c38..17610b26cb 100644 --- a/Place/BookingApprovalWorkflows/Reminders.html +++ b/Place/BookingApprovalWorkflows/Reminders.html @@ -7327,7 +7327,7 @@

- + place/booking_approval_workflows.cr diff --git a/Place/BookingApprovalWorkflows/SiteDetails.html b/Place/BookingApprovalWorkflows/SiteDetails.html index 15bb31685d..285df01abb 100644 --- a/Place/BookingApprovalWorkflows/SiteDetails.html +++ b/Place/BookingApprovalWorkflows/SiteDetails.html @@ -7327,7 +7327,7 @@

- + place/booking_approval_workflows.cr diff --git a/Place/BookingApprover.html b/Place/BookingApprover.html index 92cf89b141..429b6e5826 100644 --- a/Place/BookingApprover.html +++ b/Place/BookingApprover.html @@ -7319,7 +7319,7 @@

- + place/booking_approver.cr @@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
diff --git a/Place/BookingCheckInHelper.html b/Place/BookingCheckInHelper.html index 1e74dd9c89..243901daef 100644 --- a/Place/BookingCheckInHelper.html +++ b/Place/BookingCheckInHelper.html @@ -7333,7 +7333,7 @@

- + place/booking_check_in_helper.cr @@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
diff --git a/Place/BookingNotifier.html b/Place/BookingNotifier.html index a7f8581bf8..13701748c1 100644 --- a/Place/BookingNotifier.html +++ b/Place/BookingNotifier.html @@ -7333,7 +7333,7 @@

- + place/booking_notifier.cr @@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
diff --git a/Place/BookingNotifier/SiteDetails.html b/Place/BookingNotifier/SiteDetails.html index cddd23556b..c05be410eb 100644 --- a/Place/BookingNotifier/SiteDetails.html +++ b/Place/BookingNotifier/SiteDetails.html @@ -7347,7 +7347,7 @@

- + place/booking_notifier.cr @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7700,7 +7700,7 @@


- [View source] + [View source]
@@ -7716,7 +7716,7 @@


- [View source] + [View source]
@@ -7732,7 +7732,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings.html b/Place/Bookings.html index c1f867820c..02db1f0800 100644 --- a/Place/Bookings.html +++ b/Place/Bookings.html @@ -7333,7 +7333,7 @@

- + place/bookings.cr @@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7903,7 +7903,7 @@


- [View source] + [View source]
@@ -7919,7 +7919,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings/GrantAreaAccess.html b/Place/Bookings/GrantAreaAccess.html index 5dc5d93489..6469732765 100644 --- a/Place/Bookings/GrantAreaAccess.html +++ b/Place/Bookings/GrantAreaAccess.html @@ -7319,7 +7319,7 @@

- + place/bookings/grant_area_access.cr @@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings/GrantAreaAccess/Desk.html b/Place/Bookings/GrantAreaAccess/Desk.html index 8e788cafe5..d0f7c4856e 100644 --- a/Place/Bookings/GrantAreaAccess/Desk.html +++ b/Place/Bookings/GrantAreaAccess/Desk.html @@ -7347,7 +7347,7 @@

- + place/bookings/grant_area_access.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings/NotifyEvent.html b/Place/Bookings/NotifyEvent.html index 9e43d56514..e2bbc837e4 100644 --- a/Place/Bookings/NotifyEvent.html +++ b/Place/Bookings/NotifyEvent.html @@ -7347,7 +7347,7 @@

- + place/bookings.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings/NotifyType.html b/Place/Bookings/NotifyType.html index 509bc0aa86..efa8d570d0 100644 --- a/Place/Bookings/NotifyType.html +++ b/Place/Bookings/NotifyType.html @@ -7317,7 +7317,7 @@

- + place/bookings.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Place/Bookings/ServiceName.html b/Place/Bookings/ServiceName.html index 27daf684f6..096f71ff2c 100644 --- a/Place/Bookings/ServiceName.html +++ b/Place/Bookings/ServiceName.html @@ -7317,7 +7317,7 @@

- + place/bookings.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Place/Calendar.html b/Place/Calendar.html index 300da4f9c4..c7c7eb862c 100644 --- a/Place/Calendar.html +++ b/Place/Calendar.html @@ -7333,7 +7333,7 @@

- + place/calendar.cr diff --git a/Place/CalendarCommon.html b/Place/CalendarCommon.html index a16a3bb151..4bfe226bdf 100644 --- a/Place/CalendarCommon.html +++ b/Place/CalendarCommon.html @@ -7349,7 +7349,7 @@

- + place/calendar_common.cr @@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7691,7 +7691,7 @@


- [View source] + [View source]
@@ -7707,7 +7707,7 @@


- [View source] + [View source]
@@ -7723,7 +7723,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
@@ -7914,7 +7914,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7946,7 +7946,7 @@


- [View source] + [View source]
@@ -7962,7 +7962,7 @@


- [View source] + [View source]
@@ -7983,7 +7983,7 @@


- [View source] + [View source]
@@ -7999,7 +7999,7 @@


- [View source] + [View source]
@@ -8015,7 +8015,7 @@


- [View source] + [View source]
@@ -8031,7 +8031,7 @@


- [View source] + [View source]
diff --git a/Place/CalendarCommon/GoogleParams.html b/Place/CalendarCommon/GoogleParams.html index 824c2c3a55..c66ce47c3b 100644 --- a/Place/CalendarCommon/GoogleParams.html +++ b/Place/CalendarCommon/GoogleParams.html @@ -7327,7 +7327,7 @@

- + place/calendar_common.cr diff --git a/Place/CalendarCommon/OfficeParams.html b/Place/CalendarCommon/OfficeParams.html index af9133ee69..d6b77955f6 100644 --- a/Place/CalendarCommon/OfficeParams.html +++ b/Place/CalendarCommon/OfficeParams.html @@ -7327,7 +7327,7 @@

- + place/calendar_common.cr diff --git a/Place/CalendarDelegated.html b/Place/CalendarDelegated.html index 152633aa12..badd2bfde2 100644 --- a/Place/CalendarDelegated.html +++ b/Place/CalendarDelegated.html @@ -7319,7 +7319,7 @@

- + place/calendar_delegated.cr @@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
diff --git a/Place/CalendarDelegated/User.html b/Place/CalendarDelegated/User.html index b504864121..6d42f421af 100644 --- a/Place/CalendarDelegated/User.html +++ b/Place/CalendarDelegated/User.html @@ -7347,7 +7347,7 @@

- + place/calendar_delegated.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Place/Chat.html b/Place/Chat.html index 0f5103f0cb..826d066783 100644 --- a/Place/Chat.html +++ b/Place/Chat.html @@ -7317,14 +7317,14 @@

- + place/chat/health_notification_models.cr
- + place/chat/health_rooms_models.cr diff --git a/Place/Chat/ConferenceDetails.html b/Place/Chat/ConferenceDetails.html index d6aa70c32c..583d7aba6d 100644 --- a/Place/Chat/ConferenceDetails.html +++ b/Place/Chat/ConferenceDetails.html @@ -7347,7 +7347,7 @@

- + place/chat/health_rooms_models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/HealthRooms.html b/Place/Chat/HealthRooms.html index 880175129a..594678ab4a 100644 --- a/Place/Chat/HealthRooms.html +++ b/Place/Chat/HealthRooms.html @@ -7319,7 +7319,7 @@

- + place/chat/health_rooms.cr @@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7895,7 +7895,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7927,7 +7927,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/HealthRooms/SessionId.html b/Place/Chat/HealthRooms/SessionId.html index 55e270defe..e1295028fc 100644 --- a/Place/Chat/HealthRooms/SessionId.html +++ b/Place/Chat/HealthRooms/SessionId.html @@ -7338,7 +7338,7 @@

- + place/chat/health_rooms.cr diff --git a/Place/Chat/HealthRooms/SystemId.html b/Place/Chat/HealthRooms/SystemId.html index 5902898697..6aea895da0 100644 --- a/Place/Chat/HealthRooms/SystemId.html +++ b/Place/Chat/HealthRooms/SystemId.html @@ -7338,7 +7338,7 @@

- + place/chat/health_rooms.cr diff --git a/Place/Chat/Meeting.html b/Place/Chat/Meeting.html index 0233295702..49f1a0b973 100644 --- a/Place/Chat/Meeting.html +++ b/Place/Chat/Meeting.html @@ -7347,7 +7347,7 @@

- + place/chat/health_rooms_models.cr @@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8031,7 +8031,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/MeetingSummary.html b/Place/Chat/MeetingSummary.html index 5830cbf444..b64109139a 100644 --- a/Place/Chat/MeetingSummary.html +++ b/Place/Chat/MeetingSummary.html @@ -7347,7 +7347,7 @@

- + place/chat/health_rooms_models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/NotificationSettings.html b/Place/Chat/NotificationSettings.html index f3348565ac..f452e3b9b8 100644 --- a/Place/Chat/NotificationSettings.html +++ b/Place/Chat/NotificationSettings.html @@ -7347,7 +7347,7 @@

- + place/chat/health_notification_models.cr @@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/NotifyEventSettings.html b/Place/Chat/NotifyEventSettings.html index 437492ea79..10ba9f3242 100644 --- a/Place/Chat/NotifyEventSettings.html +++ b/Place/Chat/NotifyEventSettings.html @@ -7347,7 +7347,7 @@

- + place/chat/health_notification_models.cr @@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/OpeningHours.html b/Place/Chat/OpeningHours.html index b017a23afa..bb47b5c6a2 100644 --- a/Place/Chat/OpeningHours.html +++ b/Place/Chat/OpeningHours.html @@ -7319,7 +7319,7 @@

- + place/chat/health_notification_models.cr @@ -7451,7 +7451,7 @@


- [View source] + [View source]
@@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/Participant.html b/Place/Chat/Participant.html index 40500dc6e7..14e08b5585 100644 --- a/Place/Chat/Participant.html +++ b/Place/Chat/Participant.html @@ -7349,7 +7349,7 @@

- + place/chat/health_rooms_models.cr @@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7836,7 +7836,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
@@ -8006,7 +8006,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8043,7 +8043,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8108,7 +8108,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/RoomMember.html b/Place/Chat/RoomMember.html index da8811b268..4c7318f717 100644 --- a/Place/Chat/RoomMember.html +++ b/Place/Chat/RoomMember.html @@ -7347,7 +7347,7 @@

- + place/chat/health_notification_models.cr @@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
diff --git a/Place/Chat/RoomSettings.html b/Place/Chat/RoomSettings.html index 0ebc3f8840..c921d47130 100644 --- a/Place/Chat/RoomSettings.html +++ b/Place/Chat/RoomSettings.html @@ -7358,7 +7358,7 @@

- + place/chat/health_notification_models.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
diff --git a/Place/Demo.html b/Place/Demo.html index c792b56f4d..12ea80ef65 100644 --- a/Place/Demo.html +++ b/Place/Demo.html @@ -7317,7 +7317,7 @@

- + place/demo/display.cr diff --git a/Place/Demo/Display.html b/Place/Demo/Display.html index f44303cef7..1870a318c0 100644 --- a/Place/Demo/Display.html +++ b/Place/Demo/Display.html @@ -7337,7 +7337,7 @@

- + place/demo/display.cr @@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/Display/Input.html b/Place/Demo/Display/Input.html index c2db6cf4b7..c95089029a 100644 --- a/Place/Demo/Display/Input.html +++ b/Place/Demo/Display/Input.html @@ -7317,7 +7317,7 @@

- + place/demo/display.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/LocationServices.html b/Place/Demo/LocationServices.html index 4b4c83b926..6cd3acbee8 100644 --- a/Place/Demo/LocationServices.html +++ b/Place/Demo/LocationServices.html @@ -7319,7 +7319,7 @@

- + place/demo/location_services.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/Lockers.html b/Place/Demo/Lockers.html index d9c3e15bb9..0b023e0bce 100644 --- a/Place/Demo/Lockers.html +++ b/Place/Demo/Lockers.html @@ -7333,7 +7333,7 @@

- + place/demo/lockers.cr @@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@

View source] + [View source] @@ -7699,7 +7699,7 @@

View source] + [View source] @@ -7715,7 +7715,7 @@

View source] + [View source] @@ -7736,7 +7736,7 @@

View source] + [View source] @@ -7752,7 +7752,7 @@

View source] + [View source] @@ -7774,7 +7774,7 @@

View source] + [View source] @@ -7790,7 +7790,7 @@

View source] + [View source] @@ -7806,7 +7806,7 @@

View source] + [View source] @@ -7827,7 +7827,7 @@

View source] + [View source] @@ -7853,7 +7853,7 @@

View source] + [View source] diff --git a/Place/Demo/Lockers/Locker.html b/Place/Demo/Lockers/Locker.html index 98b3c8256e..3471a1c020 100644 --- a/Place/Demo/Lockers/Locker.html +++ b/Place/Demo/Lockers/Locker.html @@ -7347,7 +7347,7 @@

- + place/demo/lockers.cr @@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/Lockers/LockerBank.html b/Place/Demo/Lockers/LockerBank.html index 783a0375ad..be77b7f033 100644 --- a/Place/Demo/Lockers/LockerBank.html +++ b/Place/Demo/Lockers/LockerBank.html @@ -7347,7 +7347,7 @@

- + place/demo/lockers.cr @@ -7494,7 +7494,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7558,7 +7558,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/Lockers/PlaceLocker.html b/Place/Demo/Lockers/PlaceLocker.html index 409c0d7508..2b77749934 100644 --- a/Place/Demo/Lockers/PlaceLocker.html +++ b/Place/Demo/Lockers/PlaceLocker.html @@ -7327,7 +7327,7 @@

- + place/demo/lockers.cr diff --git a/Place/Demo/RoomSensor.html b/Place/Demo/RoomSensor.html index 972b6b2a69..4e01d7da86 100644 --- a/Place/Demo/RoomSensor.html +++ b/Place/Demo/RoomSensor.html @@ -7335,7 +7335,7 @@

- + place/demo/room_sensor.cr @@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@

View source] + [View source] @@ -7762,7 +7762,7 @@

View source] + [View source] @@ -7778,7 +7778,7 @@

View source] + [View source] @@ -7803,7 +7803,7 @@

View source] + [View source] @@ -7830,7 +7830,7 @@

View source] + [View source] @@ -7846,7 +7846,7 @@

View source] + [View source] diff --git a/Place/Demo/Switcher.html b/Place/Demo/Switcher.html index 0417314ec7..fe7ab1dfd0 100644 --- a/Place/Demo/Switcher.html +++ b/Place/Demo/Switcher.html @@ -7333,7 +7333,7 @@

- + place/demo/switcher.cr @@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
diff --git a/Place/Demo/TestSSH.html b/Place/Demo/TestSSH.html index ce7ef4bd4c..9696fdb843 100644 --- a/Place/Demo/TestSSH.html +++ b/Place/Demo/TestSSH.html @@ -7319,7 +7319,7 @@

- + place/demo/test_ssh.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Place/Desk.html b/Place/Desk.html index a2812867b1..a320af2458 100644 --- a/Place/Desk.html +++ b/Place/Desk.html @@ -7317,7 +7317,7 @@

- + place/desk/control.cr diff --git a/Place/Desk/Control.html b/Place/Desk/Control.html index 80460265eb..1b9da45e5e 100644 --- a/Place/Desk/Control.html +++ b/Place/Desk/Control.html @@ -7319,7 +7319,7 @@

- + place/desk/control.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
diff --git a/Place/Desk/Control/ChildMetadata.html b/Place/Desk/Control/ChildMetadata.html index d71065d9e2..4515455d33 100644 --- a/Place/Desk/Control/ChildMetadata.html +++ b/Place/Desk/Control/ChildMetadata.html @@ -7327,7 +7327,7 @@

- + place/desk/control.cr diff --git a/Place/Desk/Control/DeskId.html b/Place/Desk/Control/DeskId.html index 243105bc22..7d0c5f8645 100644 --- a/Place/Desk/Control/DeskId.html +++ b/Place/Desk/Control/DeskId.html @@ -7349,7 +7349,7 @@

- + place/desk/control.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/Place/Desk/Control/Details.html b/Place/Desk/Control/Details.html index 93fd7f4b23..672c0f93a8 100644 --- a/Place/Desk/Control/Details.html +++ b/Place/Desk/Control/Details.html @@ -7347,7 +7347,7 @@

- + place/desk/control.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Place/Desk/Control/Metadata.html b/Place/Desk/Control/Metadata.html index e604ca09db..97ce935502 100644 --- a/Place/Desk/Control/Metadata.html +++ b/Place/Desk/Control/Metadata.html @@ -7327,7 +7327,7 @@

- + place/desk/control.cr diff --git a/Place/Desk/Control/Zone.html b/Place/Desk/Control/Zone.html index e75c7cf1ea..70ce34ffaa 100644 --- a/Place/Desk/Control/Zone.html +++ b/Place/Desk/Control/Zone.html @@ -7327,7 +7327,7 @@

- + place/desk/control.cr diff --git a/Place/DeskBookingWebhook.html b/Place/DeskBookingWebhook.html index 173f476173..ce38840d28 100644 --- a/Place/DeskBookingWebhook.html +++ b/Place/DeskBookingWebhook.html @@ -7319,7 +7319,7 @@

- + place/desk_booking_webhook.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Place/DeskBookingsLocations.html b/Place/DeskBookingsLocations.html index 99f6cb8141..b0ea318c44 100644 --- a/Place/DeskBookingsLocations.html +++ b/Place/DeskBookingsLocations.html @@ -7333,7 +7333,7 @@

- + place/desk_bookings_locations.cr @@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@

View source] + [View source] @@ -7621,7 +7621,7 @@

View source] + [View source] @@ -7637,7 +7637,7 @@

View source] + [View source] @@ -7653,7 +7653,7 @@

View source] + [View source] @@ -7669,7 +7669,7 @@

View source] + [View source] @@ -7685,7 +7685,7 @@

View source] + [View source] diff --git a/Place/EventAttendanceRecorder.html b/Place/EventAttendanceRecorder.html index e8164cd491..71642956b9 100644 --- a/Place/EventAttendanceRecorder.html +++ b/Place/EventAttendanceRecorder.html @@ -7319,7 +7319,7 @@

- + place/bookings/event_attendance_recorder.cr @@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
diff --git a/Place/EventAttendanceRecorder/StaffEventChange.html b/Place/EventAttendanceRecorder/StaffEventChange.html index 133c8a3c99..c811869510 100644 --- a/Place/EventAttendanceRecorder/StaffEventChange.html +++ b/Place/EventAttendanceRecorder/StaffEventChange.html @@ -7347,7 +7347,7 @@

- + place/bookings/event_attendance_recorder.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Place/EventMailer.html b/Place/EventMailer.html index c9cae22381..f4e730f352 100644 --- a/Place/EventMailer.html +++ b/Place/EventMailer.html @@ -7333,7 +7333,7 @@

- + place/event_mailer.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
diff --git a/Place/EventSetupBreakdownTime.html b/Place/EventSetupBreakdownTime.html index bdfe849fe5..16b2c99d14 100644 --- a/Place/EventSetupBreakdownTime.html +++ b/Place/EventSetupBreakdownTime.html @@ -7319,7 +7319,7 @@

- + place/event_setup_breakdown_time.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Place/EventSetupBreakdownTime/EventChangedSignal.html b/Place/EventSetupBreakdownTime/EventChangedSignal.html index e9d13902b1..de1986ad9e 100644 --- a/Place/EventSetupBreakdownTime/EventChangedSignal.html +++ b/Place/EventSetupBreakdownTime/EventChangedSignal.html @@ -7347,7 +7347,7 @@

- + place/event_setup_breakdown_time.cr @@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
diff --git a/Place/EventSetupBreakdownTime/EventMetadata.html b/Place/EventSetupBreakdownTime/EventMetadata.html index 6d7fdc94ff..fe914d6415 100644 --- a/Place/EventSetupBreakdownTime/EventMetadata.html +++ b/Place/EventSetupBreakdownTime/EventMetadata.html @@ -7347,7 +7347,7 @@

- + place/event_setup_breakdown_time.cr @@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7836,7 +7836,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7932,7 +7932,7 @@


- [View source] + [View source]
@@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7964,7 +7964,7 @@


- [View source] + [View source]
@@ -7980,7 +7980,7 @@


- [View source] + [View source]
@@ -7996,7 +7996,7 @@


- [View source] + [View source]
@@ -8012,7 +8012,7 @@


- [View source] + [View source]
@@ -8028,7 +8028,7 @@


- [View source] + [View source]
@@ -8044,7 +8044,7 @@


- [View source] + [View source]
@@ -8060,7 +8060,7 @@


- [View source] + [View source]
@@ -8076,7 +8076,7 @@


- [View source] + [View source]
diff --git a/Place/EventSetupBreakdownTime/LinkedEvents.html b/Place/EventSetupBreakdownTime/LinkedEvents.html index 251141c1b8..e6a1eefddc 100644 --- a/Place/EventSetupBreakdownTime/LinkedEvents.html +++ b/Place/EventSetupBreakdownTime/LinkedEvents.html @@ -7347,14 +7347,14 @@

- + place/event_setup_breakdown_time.cr:162
- + place/event_setup_breakdown_time.cr:174 @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
diff --git a/Place/EventSetupBreakdownTime/PlaceCalendar.html b/Place/EventSetupBreakdownTime/PlaceCalendar.html index 956c745e68..1470bb32ed 100644 --- a/Place/EventSetupBreakdownTime/PlaceCalendar.html +++ b/Place/EventSetupBreakdownTime/PlaceCalendar.html @@ -7317,7 +7317,7 @@

- + place/event_setup_breakdown_time.cr diff --git a/Place/EventSetupBreakdownTime/PlaceCalendar/Event.html b/Place/EventSetupBreakdownTime/PlaceCalendar/Event.html index a1ab6fc82f..9b1abdcdcf 100644 --- a/Place/EventSetupBreakdownTime/PlaceCalendar/Event.html +++ b/Place/EventSetupBreakdownTime/PlaceCalendar/Event.html @@ -7319,7 +7319,7 @@

- + place/event_setup_breakdown_time.cr @@ -7447,7 +7447,7 @@


- [View source] + [View source]
@@ -7463,7 +7463,7 @@


- [View source] + [View source]
@@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Place/Geometry.html b/Place/Geometry.html index 4924ea0c1e..c2e940d842 100644 --- a/Place/Geometry.html +++ b/Place/Geometry.html @@ -7347,7 +7347,7 @@

- + place/area_config.cr @@ -7484,7 +7484,7 @@


- [View source] + [View source]
@@ -7500,7 +7500,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Place/HTTPPinger.html b/Place/HTTPPinger.html index b97b701db2..bdf7ff7ec1 100644 --- a/Place/HTTPPinger.html +++ b/Place/HTTPPinger.html @@ -7319,7 +7319,7 @@

- + place/http_pinger.cr @@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
diff --git a/Place/HTTPPinger/HeaderJSON.html b/Place/HTTPPinger/HeaderJSON.html index c714dbe8be..0be8f4cda1 100644 --- a/Place/HTTPPinger/HeaderJSON.html +++ b/Place/HTTPPinger/HeaderJSON.html @@ -7327,7 +7327,7 @@

- + place/http_pinger.cr diff --git a/Place/Help.html b/Place/Help.html index 4ebec1d444..8186a061b4 100644 --- a/Place/Help.html +++ b/Place/Help.html @@ -7327,7 +7327,7 @@

- + place/meet/help.cr diff --git a/Place/HelpPage.html b/Place/HelpPage.html index 45f8fba8c0..7f50811ab6 100644 --- a/Place/HelpPage.html +++ b/Place/HelpPage.html @@ -7349,7 +7349,7 @@

- + place/meet/help.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
diff --git a/Place/LLM.html b/Place/LLM.html index 2e1464c385..94ba0e5f1c 100644 --- a/Place/LLM.html +++ b/Place/LLM.html @@ -7319,7 +7319,7 @@

- + place/llm/llm.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
diff --git a/Place/LocationServices.html b/Place/LocationServices.html index c4fb0729e5..ec53f15a54 100644 --- a/Place/LocationServices.html +++ b/Place/LocationServices.html @@ -7319,7 +7319,7 @@

- + place/location_services.cr @@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
diff --git a/Place/LogicExample.html b/Place/LogicExample.html index c8b0ec4e3b..c140c2a72c 100644 --- a/Place/LogicExample.html +++ b/Place/LogicExample.html @@ -7330,7 +7330,7 @@

- + place/logic_example.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
diff --git a/Place/MQTT.html b/Place/MQTT.html index 26b2b27fda..38baf9f8c5 100644 --- a/Place/MQTT.html +++ b/Place/MQTT.html @@ -7319,7 +7319,7 @@

- + place/mqtt.cr @@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
diff --git a/Place/Meet.html b/Place/Meet.html index 0f9065aa5a..67bc76c069 100644 --- a/Place/Meet.html +++ b/Place/Meet.html @@ -7341,7 +7341,7 @@

- + place/meet.cr @@ -7876,7 +7876,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8038,7 +8038,7 @@


- [View source] + [View source]
@@ -8054,7 +8054,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8102,7 +8102,7 @@


- [View source] + [View source]
@@ -8118,7 +8118,7 @@


- [View source] + [View source]
@@ -8134,7 +8134,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8182,7 +8182,7 @@


- [View source] + [View source]
@@ -8198,7 +8198,7 @@


- [View source] + [View source]
@@ -8214,7 +8214,7 @@


- [View source] + [View source]
@@ -8230,7 +8230,7 @@


- [View source] + [View source]
@@ -8251,7 +8251,7 @@


- [View source] + [View source]
@@ -8300,7 +8300,7 @@


- [View source] + [View source]
@@ -8316,7 +8316,7 @@


- [View source] + [View source]
@@ -8332,7 +8332,7 @@


- [View source] + [View source]
@@ -8348,7 +8348,7 @@


- [View source] + [View source]
@@ -8364,7 +8364,7 @@


- [View source] + [View source]
@@ -8380,7 +8380,7 @@


- [View source] + [View source]
@@ -8402,7 +8402,7 @@


- [View source] + [View source]
@@ -8424,7 +8424,7 @@


- [View source] + [View source]
@@ -8440,7 +8440,7 @@


- [View source] + [View source]
@@ -8461,7 +8461,7 @@


- [View source] + [View source]
@@ -8477,7 +8477,7 @@


- [View source] + [View source]
@@ -8493,7 +8493,7 @@


- [View source] + [View source]
@@ -8509,7 +8509,7 @@


- [View source] + [View source]
@@ -8525,7 +8525,7 @@


- [View source] + [View source]
@@ -8547,7 +8547,7 @@


- [View source] + [View source]
@@ -8568,7 +8568,7 @@


- [View source] + [View source]
@@ -8584,7 +8584,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/Accessory.html b/Place/Meet/Accessory.html index 61fcf0c195..fa940806c0 100644 --- a/Place/Meet/Accessory.html +++ b/Place/Meet/Accessory.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/Accessory/Control.html b/Place/Meet/Accessory/Control.html index 2a444887cb..774bba0b5b 100644 --- a/Place/Meet/Accessory/Control.html +++ b/Place/Meet/Accessory/Control.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/AudioFader.html b/Place/Meet/AudioFader.html index 0218fe8586..5f0d552af1 100644 --- a/Place/Meet/AudioFader.html +++ b/Place/Meet/AudioFader.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7836,7 +7836,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/CamDetails.html b/Place/Meet/CamDetails.html index 2c1910dd36..a3c6162ee0 100644 --- a/Place/Meet/CamDetails.html +++ b/Place/Meet/CamDetails.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7506,7 +7506,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/JoinAction.html b/Place/Meet/JoinAction.html index adc0e4fa82..78e7511b17 100644 --- a/Place/Meet/JoinAction.html +++ b/Place/Meet/JoinAction.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7484,7 +7484,7 @@


- [View source] + [View source]
@@ -7516,7 +7516,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/JoinDetail.html b/Place/Meet/JoinDetail.html index fd22669181..a7901052f3 100644 --- a/Place/Meet/JoinDetail.html +++ b/Place/Meet/JoinDetail.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/JoinSetting.html b/Place/Meet/JoinSetting.html index cd56fde6bd..249f502987 100644 --- a/Place/Meet/JoinSetting.html +++ b/Place/Meet/JoinSetting.html @@ -7347,7 +7347,7 @@

- + place/meet.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/JoinType.html b/Place/Meet/JoinType.html index 3a1773d3a9..c22a9e9686 100644 --- a/Place/Meet/JoinType.html +++ b/Place/Meet/JoinType.html @@ -7332,7 +7332,7 @@

- + place/meet.cr @@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7504,7 +7504,7 @@


- [View source] + [View source]
diff --git a/Place/Meet/LightingArea.html b/Place/Meet/LightingArea.html index 013e5304eb..0ee9d96d0a 100644 --- a/Place/Meet/LightingArea.html +++ b/Place/Meet/LightingArea.html @@ -7327,7 +7327,7 @@

- + place/meet.cr diff --git a/Place/Meet/LightingScene.html b/Place/Meet/LightingScene.html index e8bbd2dc85..40ff503502 100644 --- a/Place/Meet/LightingScene.html +++ b/Place/Meet/LightingScene.html @@ -7327,7 +7327,7 @@

- + place/meet.cr diff --git a/Place/Meet/Microphone.html b/Place/Meet/Microphone.html index 94bdd9ce42..805155beba 100644 --- a/Place/Meet/Microphone.html +++ b/Place/Meet/Microphone.html @@ -7327,7 +7327,7 @@

- + place/meet.cr diff --git a/Place/Meet/RemoteSystem.html b/Place/Meet/RemoteSystem.html index 6b0ed98d6c..3d3d832a94 100644 --- a/Place/Meet/RemoteSystem.html +++ b/Place/Meet/RemoteSystem.html @@ -7319,7 +7319,7 @@

- + place/meet.cr @@ -7441,7 +7441,7 @@


- [View source] + [View source]
@@ -7473,7 +7473,7 @@


- [View source] + [View source]
@@ -7489,7 +7489,7 @@


- [View source] + [View source]
diff --git a/Place/Parking.html b/Place/Parking.html index ccf125b013..459b918f81 100644 --- a/Place/Parking.html +++ b/Place/Parking.html @@ -7317,7 +7317,7 @@

- + place/parking/locations.cr diff --git a/Place/Parking/Locations.html b/Place/Parking/Locations.html index 394c1a4d03..17ee8d2af5 100644 --- a/Place/Parking/Locations.html +++ b/Place/Parking/Locations.html @@ -7333,7 +7333,7 @@

- + place/parking/locations.cr @@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@

View source] + [View source] @@ -7683,7 +7683,7 @@

View source] + [View source] @@ -7699,7 +7699,7 @@

View source] + [View source] @@ -7715,7 +7715,7 @@

View source] + [View source] @@ -7731,7 +7731,7 @@

View source] + [View source] @@ -7747,7 +7747,7 @@

View source] + [View source] @@ -7763,7 +7763,7 @@

View source] + [View source] diff --git a/Place/Parking/Locations/ChildMetadata.html b/Place/Parking/Locations/ChildMetadata.html index 55b38698ab..01fd02b473 100644 --- a/Place/Parking/Locations/ChildMetadata.html +++ b/Place/Parking/Locations/ChildMetadata.html @@ -7327,7 +7327,7 @@

- + place/parking/locations.cr diff --git a/Place/Parking/Locations/Details.html b/Place/Parking/Locations/Details.html index d64909fc9e..be2d8c9f97 100644 --- a/Place/Parking/Locations/Details.html +++ b/Place/Parking/Locations/Details.html @@ -7347,7 +7347,7 @@

- + place/parking/locations.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Place/Parking/Locations/Metadata.html b/Place/Parking/Locations/Metadata.html index 28c7ac04ed..0b8ae6fa4a 100644 --- a/Place/Parking/Locations/Metadata.html +++ b/Place/Parking/Locations/Metadata.html @@ -7327,7 +7327,7 @@

- + place/parking/locations.cr diff --git a/Place/Parking/Locations/ParkingSpace.html b/Place/Parking/Locations/ParkingSpace.html index ed53ab144c..c36706e0c6 100644 --- a/Place/Parking/Locations/ParkingSpace.html +++ b/Place/Parking/Locations/ParkingSpace.html @@ -7347,7 +7347,7 @@

- + place/parking/locations.cr @@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7639,7 +7639,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
diff --git a/Place/Parking/Locations/Zone.html b/Place/Parking/Locations/Zone.html index f8c2149fcf..dc9b949613 100644 --- a/Place/Parking/Locations/Zone.html +++ b/Place/Parking/Locations/Zone.html @@ -7327,7 +7327,7 @@

- + place/parking/locations.cr diff --git a/Place/Pinger.html b/Place/Pinger.html index b0e75970e3..0d83f4da84 100644 --- a/Place/Pinger.html +++ b/Place/Pinger.html @@ -7319,7 +7319,7 @@

- + place/pinger.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Place/QSCPhoneDialing.html b/Place/QSCPhoneDialing.html index 72d751d655..750dd421db 100644 --- a/Place/QSCPhoneDialing.html +++ b/Place/QSCPhoneDialing.html @@ -7342,7 +7342,7 @@

- + place/meet/qsc_phone_dialing.cr @@ -7424,7 +7424,7 @@


- [View source] + [View source]
@@ -7440,7 +7440,7 @@


- [View source] + [View source]
@@ -7456,7 +7456,7 @@


- [View source] + [View source]
@@ -7472,7 +7472,7 @@


- [View source] + [View source]
diff --git a/Place/QSCPhoneDialing/QscPhone.html b/Place/QSCPhoneDialing/QscPhone.html index 516c564fde..f0c3d5534d 100644 --- a/Place/QSCPhoneDialing/QscPhone.html +++ b/Place/QSCPhoneDialing/QscPhone.html @@ -7358,7 +7358,7 @@

- + place/meet/qsc_phone_dialing.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
diff --git a/Place/RbpRemoteLogger.html b/Place/RbpRemoteLogger.html index 251c6931df..9dd01224a1 100644 --- a/Place/RbpRemoteLogger.html +++ b/Place/RbpRemoteLogger.html @@ -7319,7 +7319,7 @@

- + place/rbp_remote_logger.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Place/RbpRemoteLogger/Entry.html b/Place/RbpRemoteLogger/Entry.html index f2c51d94d4..4f5979f2b7 100644 --- a/Place/RbpRemoteLogger/Entry.html +++ b/Place/RbpRemoteLogger/Entry.html @@ -7347,7 +7347,7 @@

- + place/rbp_remote_logger.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/Place/RoomBookingApproval.html b/Place/RoomBookingApproval.html index c7bc7f3193..0b8be96cbd 100644 --- a/Place/RoomBookingApproval.html +++ b/Place/RoomBookingApproval.html @@ -7319,7 +7319,7 @@

- + place/room_booking_approval.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
diff --git a/Place/RoomBookingApprovalAltnerative.html b/Place/RoomBookingApprovalAltnerative.html index 9e5885e506..713735a299 100644 --- a/Place/RoomBookingApprovalAltnerative.html +++ b/Place/RoomBookingApprovalAltnerative.html @@ -7319,7 +7319,7 @@

- + place/room_booking_approval_alternate.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
diff --git a/Place/Router.html b/Place/Router.html index 52c8a5a40f..c4bf9837ed 100644 --- a/Place/Router.html +++ b/Place/Router.html @@ -7317,7 +7317,7 @@

- + place/router/digraph.cr diff --git a/Place/Router/Core.html b/Place/Router/Core.html index 8fc1b26f63..4fdf6f3b53 100644 --- a/Place/Router/Core.html +++ b/Place/Router/Core.html @@ -7344,14 +7344,14 @@

- + place/router/core.cr
- + place/router/settings.cr @@ -7430,7 +7430,7 @@


- [View source] + [View source]
@@ -7446,7 +7446,7 @@


- [View source] + [View source]
@@ -7469,7 +7469,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/NodeRef.html b/Place/Router/Core/NodeRef.html index 56e8331601..e58e3d6dc3 100644 --- a/Place/Router/Core/NodeRef.html +++ b/Place/Router/Core/NodeRef.html @@ -7327,7 +7327,7 @@

- + place/router/core.cr diff --git a/Place/Router/Core/Settings.html b/Place/Router/Core/Settings.html index 8c8aa23440..7c8e52954d 100644 --- a/Place/Router/Core/Settings.html +++ b/Place/Router/Core/Settings.html @@ -7317,7 +7317,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/Settings/Connections.html b/Place/Router/Core/Settings/Connections.html index c334ff68a7..1386c24cb0 100644 --- a/Place/Router/Core/Settings/Connections.html +++ b/Place/Router/Core/Settings/Connections.html @@ -7328,7 +7328,7 @@

- + place/router/settings.cr @@ -7399,7 +7399,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/Settings/Connections/Alias.html b/Place/Router/Core/Settings/Connections/Alias.html index a02831cd48..647e5f19d0 100644 --- a/Place/Router/Core/Settings/Connections/Alias.html +++ b/Place/Router/Core/Settings/Connections/Alias.html @@ -7347,7 +7347,7 @@

- + place/router/settings.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/Settings/Connections/Deserializable.html b/Place/Router/Core/Settings/Connections/Deserializable.html index 15aabe7b60..8c2add8cc1 100644 --- a/Place/Router/Core/Settings/Connections/Deserializable.html +++ b/Place/Router/Core/Settings/Connections/Deserializable.html @@ -7317,7 +7317,7 @@

- + place/router/settings.cr @@ -7394,7 +7394,7 @@


- [View source] + [View source]
@@ -7410,7 +7410,7 @@


- [View source] + [View source]
@@ -7426,7 +7426,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/Settings/Connections/Device.html b/Place/Router/Core/Settings/Connections/Device.html index a9e2ad66b8..013ee60787 100644 --- a/Place/Router/Core/Settings/Connections/Device.html +++ b/Place/Router/Core/Settings/Connections/Device.html @@ -7344,7 +7344,7 @@

- + place/router/settings.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/Settings/Connections/DeviceOutput.html b/Place/Router/Core/Settings/Connections/DeviceOutput.html index f022ddd681..6df37b604a 100644 --- a/Place/Router/Core/Settings/Connections/DeviceOutput.html +++ b/Place/Router/Core/Settings/Connections/DeviceOutput.html @@ -7346,7 +7346,7 @@

- + place/router/settings.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Core/Settings/Connections/Input.html b/Place/Router/Core/Settings/Connections/Input.html index d1905b2201..a4a0f76832 100644 --- a/Place/Router/Core/Settings/Connections/Input.html +++ b/Place/Router/Core/Settings/Connections/Input.html @@ -7338,7 +7338,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/Settings/Connections/Map.html b/Place/Router/Core/Settings/Connections/Map.html index 9c38e3897d..7425dbeb63 100644 --- a/Place/Router/Core/Settings/Connections/Map.html +++ b/Place/Router/Core/Settings/Connections/Map.html @@ -7345,7 +7345,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/Settings/Connections/Sink.html b/Place/Router/Core/Settings/Connections/Sink.html index a74585f575..d353cd14c2 100644 --- a/Place/Router/Core/Settings/Connections/Sink.html +++ b/Place/Router/Core/Settings/Connections/Sink.html @@ -7338,7 +7338,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/Settings/Connections/Source.html b/Place/Router/Core/Settings/Connections/Source.html index ae24dee917..3812185709 100644 --- a/Place/Router/Core/Settings/Connections/Source.html +++ b/Place/Router/Core/Settings/Connections/Source.html @@ -7338,7 +7338,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/Settings/IOMeta.html b/Place/Router/Core/Settings/IOMeta.html index d2d012fa24..0590a14e32 100644 --- a/Place/Router/Core/Settings/IOMeta.html +++ b/Place/Router/Core/Settings/IOMeta.html @@ -7340,7 +7340,7 @@

- + place/router/settings.cr diff --git a/Place/Router/Core/SignalNode.html b/Place/Router/Core/SignalNode.html index 796eb70d19..8d000c5d19 100644 --- a/Place/Router/Core/SignalNode.html +++ b/Place/Router/Core/SignalNode.html @@ -7331,7 +7331,7 @@

- + place/router/core.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Digraph.html b/Place/Router/Digraph.html index 0cea8abfad..311d4049c1 100644 --- a/Place/Router/Digraph.html +++ b/Place/Router/Digraph.html @@ -7334,7 +7334,7 @@

- + place/router/digraph.cr @@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7748,7 +7748,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7918,7 +7918,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7960,7 +7960,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
diff --git a/Place/Router/Digraph/Error.html b/Place/Router/Digraph/Error.html index f070249599..d6d2f49460 100644 --- a/Place/Router/Digraph/Error.html +++ b/Place/Router/Digraph/Error.html @@ -7319,7 +7319,7 @@

- + place/router/digraph.cr diff --git a/Place/Router/Digraph/Node.html b/Place/Router/Digraph/Node.html index 37eef1989a..1d91091a4f 100644 --- a/Place/Router/Digraph/Node.html +++ b/Place/Router/Digraph/Node.html @@ -7319,7 +7319,7 @@

- + place/router/digraph.cr @@ -7451,7 +7451,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph.html b/Place/Router/SignalGraph.html index 56c7762d1c..cfb5d82a0c 100644 --- a/Place/Router/SignalGraph.html +++ b/Place/Router/SignalGraph.html @@ -7334,35 +7334,35 @@

- + place/router/signal_graph.cr
- + place/router/signal_graph/edge.cr
- + place/router/signal_graph/mod.cr
- + place/router/signal_graph/node.cr
- + place/router/signal_graph/watchable.cr @@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7739,7 +7739,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Device.html b/Place/Router/SignalGraph/Device.html index 2270b0e322..9c534c5320 100644 --- a/Place/Router/SignalGraph/Device.html +++ b/Place/Router/SignalGraph/Device.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph.cr diff --git a/Place/Router/SignalGraph/Edge.html b/Place/Router/SignalGraph/Edge.html index ce0c0173bb..8f9ad24106 100644 --- a/Place/Router/SignalGraph/Edge.html +++ b/Place/Router/SignalGraph/Edge.html @@ -7317,7 +7317,7 @@

- + place/router/signal_graph/edge.cr diff --git a/Place/Router/SignalGraph/Edge/Active.html b/Place/Router/SignalGraph/Edge/Active.html index 159d62ed02..5fc8f58758 100644 --- a/Place/Router/SignalGraph/Edge/Active.html +++ b/Place/Router/SignalGraph/Edge/Active.html @@ -7319,7 +7319,7 @@

- + place/router/signal_graph/edge.cr @@ -7451,7 +7451,7 @@


- [View source] + [View source]
@@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7499,7 +7499,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Edge/Func.html b/Place/Router/SignalGraph/Edge/Func.html index d688343235..af83a9cea7 100644 --- a/Place/Router/SignalGraph/Edge/Func.html +++ b/Place/Router/SignalGraph/Edge/Func.html @@ -7317,7 +7317,7 @@

- + place/router/signal_graph/edge.cr diff --git a/Place/Router/SignalGraph/Edge/Func/Mute.html b/Place/Router/SignalGraph/Edge/Func/Mute.html index e7ff5e3507..db27fb725f 100644 --- a/Place/Router/SignalGraph/Edge/Func/Mute.html +++ b/Place/Router/SignalGraph/Edge/Func/Mute.html @@ -7319,7 +7319,7 @@

- + place/router/signal_graph/edge.cr @@ -7451,7 +7451,7 @@


- [View source] + [View source]
@@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7499,7 +7499,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Edge/Func/Select.html b/Place/Router/SignalGraph/Edge/Func/Select.html index c5cc73f648..e09ea0d7a4 100644 --- a/Place/Router/SignalGraph/Edge/Func/Select.html +++ b/Place/Router/SignalGraph/Edge/Func/Select.html @@ -7319,7 +7319,7 @@

- + place/router/signal_graph/edge.cr @@ -7446,7 +7446,7 @@


- [View source] + [View source]
@@ -7478,7 +7478,7 @@


- [View source] + [View source]
@@ -7494,7 +7494,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Edge/Func/Switch.html b/Place/Router/SignalGraph/Edge/Func/Switch.html index ad66559cfa..5c2db9eef3 100644 --- a/Place/Router/SignalGraph/Edge/Func/Switch.html +++ b/Place/Router/SignalGraph/Edge/Func/Switch.html @@ -7319,7 +7319,7 @@

- + place/router/signal_graph/edge.cr @@ -7456,7 +7456,7 @@


- [View source] + [View source]
@@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7504,7 +7504,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Edge/Func/Type.html b/Place/Router/SignalGraph/Edge/Func/Type.html index b275964645..08152573a3 100644 --- a/Place/Router/SignalGraph/Edge/Func/Type.html +++ b/Place/Router/SignalGraph/Edge/Func/Type.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph/edge.cr diff --git a/Place/Router/SignalGraph/Edge/Label.html b/Place/Router/SignalGraph/Edge/Label.html index 26e07fa9fb..51fa220860 100644 --- a/Place/Router/SignalGraph/Edge/Label.html +++ b/Place/Router/SignalGraph/Edge/Label.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph/edge.cr diff --git a/Place/Router/SignalGraph/Edge/Static.html b/Place/Router/SignalGraph/Edge/Static.html index b85b6c9f32..21e5416c27 100644 --- a/Place/Router/SignalGraph/Edge/Static.html +++ b/Place/Router/SignalGraph/Edge/Static.html @@ -7319,7 +7319,7 @@

- + place/router/signal_graph/edge.cr @@ -7406,7 +7406,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Input.html b/Place/Router/SignalGraph/Input.html index 89e0155eee..a4aa93ea36 100644 --- a/Place/Router/SignalGraph/Input.html +++ b/Place/Router/SignalGraph/Input.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph.cr diff --git a/Place/Router/SignalGraph/Mod.html b/Place/Router/SignalGraph/Mod.html index 0519cf0cb0..ffd5796ee6 100644 --- a/Place/Router/SignalGraph/Mod.html +++ b/Place/Router/SignalGraph/Mod.html @@ -7330,7 +7330,7 @@

- + place/router/signal_graph/mod.cr @@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7730,7 +7730,7 @@


- [View source] + [View source]
@@ -7746,7 +7746,7 @@


- [View source] + [View source]
@@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7778,7 +7778,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
@@ -7945,7 +7945,7 @@


- [View source] + [View source]
@@ -7961,7 +7961,7 @@


- [View source] + [View source]
@@ -7977,7 +7977,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8025,7 +8025,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8062,7 +8062,7 @@


- [View source] + [View source]
@@ -8078,7 +8078,7 @@


- [View source] + [View source]
@@ -8094,7 +8094,7 @@


- [View source] + [View source]
@@ -8110,7 +8110,7 @@


- [View source] + [View source]
@@ -8126,7 +8126,7 @@


- [View source] + [View source]
@@ -8142,7 +8142,7 @@


- [View source] + [View source]
@@ -8158,7 +8158,7 @@


- [View source] + [View source]
@@ -8174,7 +8174,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8206,7 +8206,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node.html b/Place/Router/SignalGraph/Node.html index dde7056282..0d4bf0295c 100644 --- a/Place/Router/SignalGraph/Node.html +++ b/Place/Router/SignalGraph/Node.html @@ -7317,7 +7317,7 @@

- + place/router/signal_graph/node.cr diff --git a/Place/Router/SignalGraph/Node/Device.html b/Place/Router/SignalGraph/Node/Device.html index 34fdf07009..6f4e7ca90f 100644 --- a/Place/Router/SignalGraph/Node/Device.html +++ b/Place/Router/SignalGraph/Node/Device.html @@ -7350,7 +7350,7 @@

- + place/router/signal_graph/node.cr @@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node/DeviceInput.html b/Place/Router/SignalGraph/Node/DeviceInput.html index bf5c871685..1e9e26fdeb 100644 --- a/Place/Router/SignalGraph/Node/DeviceInput.html +++ b/Place/Router/SignalGraph/Node/DeviceInput.html @@ -7351,7 +7351,7 @@

- + place/router/signal_graph/node.cr @@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node/DeviceOutput.html b/Place/Router/SignalGraph/Node/DeviceOutput.html index 6412a96843..5683af6bbc 100644 --- a/Place/Router/SignalGraph/Node/DeviceOutput.html +++ b/Place/Router/SignalGraph/Node/DeviceOutput.html @@ -7351,7 +7351,7 @@

- + place/router/signal_graph/node.cr @@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node/Label.html b/Place/Router/SignalGraph/Node/Label.html index cc52e86b9c..86b2cf7e08 100644 --- a/Place/Router/SignalGraph/Node/Label.html +++ b/Place/Router/SignalGraph/Node/Label.html @@ -7360,7 +7360,7 @@

- + place/router/signal_graph/node.cr @@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7860,7 +7860,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node/Mute.html b/Place/Router/SignalGraph/Node/Mute.html index e751328d7b..17c3a56cc7 100644 --- a/Place/Router/SignalGraph/Node/Mute.html +++ b/Place/Router/SignalGraph/Node/Mute.html @@ -7345,7 +7345,7 @@

- + place/router/signal_graph/node.cr @@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Node/Ref.html b/Place/Router/SignalGraph/Node/Ref.html index 1156bd034d..a6ee12c306 100644 --- a/Place/Router/SignalGraph/Node/Ref.html +++ b/Place/Router/SignalGraph/Node/Ref.html @@ -7350,7 +7350,7 @@

- + place/router/signal_graph/node.cr @@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@

- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
diff --git a/Place/Router/SignalGraph/Output.html b/Place/Router/SignalGraph/Output.html index 0edb61107e..23b0f74937 100644 --- a/Place/Router/SignalGraph/Output.html +++ b/Place/Router/SignalGraph/Output.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph.cr diff --git a/Place/Router/SignalGraph/Watchable.html b/Place/Router/SignalGraph/Watchable.html index ca7a811cc5..8c1e638198 100644 --- a/Place/Router/SignalGraph/Watchable.html +++ b/Place/Router/SignalGraph/Watchable.html @@ -7331,7 +7331,7 @@

- + place/router/signal_graph/watchable.cr @@ -7412,7 +7412,7 @@


- [View source] + [View source]
@@ -7433,7 +7433,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule.html b/Place/Schedule.html index 78e5c2b9d0..e3fdcf52b4 100644 --- a/Place/Schedule.html +++ b/Place/Schedule.html @@ -7333,7 +7333,7 @@

- + place/llm/schedule.cr @@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/AccessToken.html b/Place/Schedule/AccessToken.html index 3cfb03a6b4..e189a77465 100644 --- a/Place/Schedule/AccessToken.html +++ b/Place/Schedule/AccessToken.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/Attendance.html b/Place/Schedule/Attendance.html index 5eb53d1758..b36dc2018c 100644 --- a/Place/Schedule/Attendance.html +++ b/Place/Schedule/Attendance.html @@ -7317,7 +7317,7 @@

- + place/llm/schedule.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/CreateEvent.html b/Place/Schedule/CreateEvent.html index 57dc3735e5..4c6dd1961b 100644 --- a/Place/Schedule/CreateEvent.html +++ b/Place/Schedule/CreateEvent.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/Event.html b/Place/Schedule/Event.html index bce3e091e6..2bff7d1494 100644 --- a/Place/Schedule/Event.html +++ b/Place/Schedule/Event.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/UpdateEvent.html b/Place/Schedule/UpdateEvent.html index 77b35af337..00f9471280 100644 --- a/Place/Schedule/UpdateEvent.html +++ b/Place/Schedule/UpdateEvent.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/User.html b/Place/Schedule/User.html index 0b3ff563a4..1717aa6087 100644 --- a/Place/Schedule/User.html +++ b/Place/Schedule/User.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Place/Schedule/Zone.html b/Place/Schedule/Zone.html index 7bc50152dc..c4eca3d8a3 100644 --- a/Place/Schedule/Zone.html +++ b/Place/Schedule/Zone.html @@ -7347,7 +7347,7 @@

- + place/llm/schedule.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Place/SensorShutdown.html b/Place/SensorShutdown.html index 3a0ba14fec..4492c9b1a5 100644 --- a/Place/SensorShutdown.html +++ b/Place/SensorShutdown.html @@ -7319,7 +7319,7 @@

- + place/meet/sensor_shutdown.cr @@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7523,7 +7523,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
diff --git a/Place/Smtp.html b/Place/Smtp.html index 83e29d28be..3990ad9422 100644 --- a/Place/Smtp.html +++ b/Place/Smtp.html @@ -7333,7 +7333,7 @@

- + place/smtp.cr @@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
diff --git a/Place/SpecHelper.html b/Place/SpecHelper.html index e8796e00da..63862f5299 100644 --- a/Place/SpecHelper.html +++ b/Place/SpecHelper.html @@ -7319,7 +7319,7 @@

- + place/spec_helper.cr @@ -7473,7 +7473,7 @@


- [View source] + [View source]
diff --git a/Place/StaffAPI.html b/Place/StaffAPI.html index 662fe25917..dc1539e2ee 100644 --- a/Place/StaffAPI.html +++ b/Place/StaffAPI.html @@ -7319,7 +7319,7 @@

- + place/staff_api.cr @@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@

- [View source] + [View source]
@@ -7830,7 +7830,7 @@

- [View source] + [View source]
@@ -7846,7 +7846,7 @@

- [View source] + [View source]
@@ -7862,7 +7862,7 @@

- [View source] + [View source]
@@ -7878,7 +7878,7 @@

- [View source] + [View source]
@@ -7894,7 +7894,7 @@

- [View source] + [View source]
@@ -7920,7 +7920,7 @@

- [View source] + [View source]
@@ -7936,7 +7936,7 @@

- [View source] + [View source]
@@ -7952,7 +7952,7 @@

- [View source] + [View source]
@@ -7977,7 +7977,7 @@

View source] + [View source] @@ -7993,7 +7993,7 @@

View source] + [View source] @@ -8009,7 +8009,7 @@

View source] + [View source] @@ -8025,7 +8025,7 @@

View source] + [View source] @@ -8050,7 +8050,7 @@

View source] + [View source] @@ -8066,7 +8066,7 @@

View source] + [View source] @@ -8082,7 +8082,7 @@

View source] + [View source] @@ -8098,7 +8098,7 @@

View source] + [View source] @@ -8114,7 +8114,7 @@

View source] + [View source] @@ -8139,7 +8139,7 @@

View source] + [View source] @@ -8164,7 +8164,7 @@

View source] + [View source] @@ -8180,7 +8180,7 @@

View source] + [View source] @@ -8203,7 +8203,7 @@

View source] + [View source] @@ -8219,7 +8219,7 @@

View source] + [View source] @@ -8235,7 +8235,7 @@

View source] + [View source] @@ -8251,7 +8251,7 @@

View source] + [View source] @@ -8267,7 +8267,7 @@

View source] + [View source] @@ -8283,7 +8283,7 @@

View source] + [View source] @@ -8299,7 +8299,7 @@

View source] + [View source] @@ -8320,7 +8320,7 @@

View source] + [View source] @@ -8336,7 +8336,7 @@

View source] + [View source] @@ -8352,7 +8352,7 @@

View source] + [View source] @@ -8368,7 +8368,7 @@

View source] + [View source] @@ -8384,7 +8384,7 @@

View source] + [View source] @@ -8400,7 +8400,7 @@

View source] + [View source] @@ -8423,7 +8423,7 @@

View source] + [View source] @@ -8439,7 +8439,7 @@

View source] + [View source] @@ -8455,7 +8455,7 @@

View source] + [View source] @@ -8471,7 +8471,7 @@

View source] + [View source] @@ -8496,7 +8496,7 @@

View source] + [View source] @@ -8517,7 +8517,7 @@

View source] + [View source] @@ -8533,7 +8533,7 @@

View source] + [View source] @@ -8558,7 +8558,7 @@

- [View source] + [View source]
@@ -8574,7 +8574,7 @@

- [View source] + [View source]
diff --git a/Place/StaffAPI/PushEvent.html b/Place/StaffAPI/PushEvent.html index ed09a7971f..25964d6188 100644 --- a/Place/StaffAPI/PushEvent.html +++ b/Place/StaffAPI/PushEvent.html @@ -7347,7 +7347,7 @@

- + place/staff_api.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Place/StaffAPI/Setting.html b/Place/StaffAPI/Setting.html index 510f9fd467..ebf517a834 100644 --- a/Place/StaffAPI/Setting.html +++ b/Place/StaffAPI/Setting.html @@ -7347,7 +7347,7 @@

- + place/staff_api.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
diff --git a/Place/SurveyMailer.html b/Place/SurveyMailer.html index aba4ba14a7..b1175b374a 100644 --- a/Place/SurveyMailer.html +++ b/Place/SurveyMailer.html @@ -7333,7 +7333,7 @@

- + place/survey_mailer.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
diff --git a/Place/SurveyMailer/SurveyInvite.html b/Place/SurveyMailer/SurveyInvite.html index edf5dfa133..cefeb0602f 100644 --- a/Place/SurveyMailer/SurveyInvite.html +++ b/Place/SurveyMailer/SurveyInvite.html @@ -7347,7 +7347,7 @@

- + place/survey_mailer.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/Place/TODOs.html b/Place/TODOs.html index d03342d725..777f73b50b 100644 --- a/Place/TODOs.html +++ b/Place/TODOs.html @@ -7333,7 +7333,7 @@

- + place/llm/todo_list.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
diff --git a/Place/Tab.html b/Place/Tab.html index 24b512027c..85e5cef3f0 100644 --- a/Place/Tab.html +++ b/Place/Tab.html @@ -7349,7 +7349,7 @@

- + place/meet/tab.cr @@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
diff --git a/Place/TemplateMailer.html b/Place/TemplateMailer.html index ccdca0f561..9c91783954 100644 --- a/Place/TemplateMailer.html +++ b/Place/TemplateMailer.html @@ -7346,7 +7346,7 @@

- + place/template_mailer.cr @@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
diff --git a/Place/TemplateMailer/Metadata.html b/Place/TemplateMailer/Metadata.html index 03e23ae0fe..abbd43f4d9 100644 --- a/Place/TemplateMailer/Metadata.html +++ b/Place/TemplateMailer/Metadata.html @@ -7347,7 +7347,7 @@

- + place/template_mailer.cr @@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
diff --git a/Place/TemplateMailer/MetadataTemplateFields.html b/Place/TemplateMailer/MetadataTemplateFields.html index 223fba7aca..a30134232e 100644 --- a/Place/TemplateMailer/MetadataTemplateFields.html +++ b/Place/TemplateMailer/MetadataTemplateFields.html @@ -7347,7 +7347,7 @@

- + place/template_mailer.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Place/TemplateMailer/Template.html b/Place/TemplateMailer/Template.html index 8cad5e053e..b5925b33a4 100644 --- a/Place/TemplateMailer/Template.html +++ b/Place/TemplateMailer/Template.html @@ -7327,7 +7327,7 @@

- + place/template_mailer.cr diff --git a/Place/TemplateMailer/TemplateCache.html b/Place/TemplateMailer/TemplateCache.html index 4a252085fd..77640b0ab2 100644 --- a/Place/TemplateMailer/TemplateCache.html +++ b/Place/TemplateMailer/TemplateCache.html @@ -7338,7 +7338,7 @@

- + place/template_mailer.cr diff --git a/Place/TemplateMailer/TemplateFields.html b/Place/TemplateMailer/TemplateFields.html index deaada4fb2..196666dcb9 100644 --- a/Place/TemplateMailer/TemplateFields.html +++ b/Place/TemplateMailer/TemplateFields.html @@ -7327,7 +7327,7 @@

- + place/template_mailer.cr diff --git a/Place/TransportAdaptor.html b/Place/TransportAdaptor.html index 507a862ba8..86a3e133e1 100644 --- a/Place/TransportAdaptor.html +++ b/Place/TransportAdaptor.html @@ -7319,7 +7319,7 @@

- + place/mqtt_transport_adaptor.cr @@ -7451,7 +7451,7 @@


- [View source] + [View source]
@@ -7483,7 +7483,7 @@


- [View source] + [View source]
@@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7515,7 +7515,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
diff --git a/Place/UserGroupMappings.html b/Place/UserGroupMappings.html index 28f1c0057f..e36d984c56 100644 --- a/Place/UserGroupMappings.html +++ b/Place/UserGroupMappings.html @@ -7319,7 +7319,7 @@

- + place/user_group_mappings.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/Place/UserGroupMappings/Mapping.html b/Place/UserGroupMappings/Mapping.html index bba020a11b..328c2b249d 100644 --- a/Place/UserGroupMappings/Mapping.html +++ b/Place/UserGroupMappings/Mapping.html @@ -7327,7 +7327,7 @@

- + place/user_group_mappings.cr diff --git a/Place/UserGroupMappings/Prefix.html b/Place/UserGroupMappings/Prefix.html index e04ed02b9a..799dad6bb4 100644 --- a/Place/UserGroupMappings/Prefix.html +++ b/Place/UserGroupMappings/Prefix.html @@ -7327,7 +7327,7 @@

- + place/user_group_mappings.cr diff --git a/Place/UserGroupMappings/UserLogin.html b/Place/UserGroupMappings/UserLogin.html index 7a83273ff4..bcab7755a3 100644 --- a/Place/UserGroupMappings/UserLogin.html +++ b/Place/UserGroupMappings/UserLogin.html @@ -7347,7 +7347,7 @@

- + place/user_group_mappings.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer.html b/Place/VisitorMailer.html index 57f1213226..1c499f4884 100644 --- a/Place/VisitorMailer.html +++ b/Place/VisitorMailer.html @@ -7333,7 +7333,7 @@

- + place/visitor_mailer.cr @@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/BookingGuest.html b/Place/VisitorMailer/BookingGuest.html index 7dbd5dee7f..e51a94951e 100644 --- a/Place/VisitorMailer/BookingGuest.html +++ b/Place/VisitorMailer/BookingGuest.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/BookingInduction.html b/Place/VisitorMailer/BookingInduction.html index e5b12ddd23..259abbf1fc 100644 --- a/Place/VisitorMailer/BookingInduction.html +++ b/Place/VisitorMailer/BookingInduction.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/EventGuest.html b/Place/VisitorMailer/EventGuest.html index e483bd3dad..a113df126a 100644 --- a/Place/VisitorMailer/EventGuest.html +++ b/Place/VisitorMailer/EventGuest.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7655,7 +7655,7 @@


- [View source] + [View source]
@@ -7671,7 +7671,7 @@


- [View source] + [View source]
@@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/GuestCheckin.html b/Place/VisitorMailer/GuestCheckin.html index 3508309ee6..1282fb5500 100644 --- a/Place/VisitorMailer/GuestCheckin.html +++ b/Place/VisitorMailer/GuestCheckin.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/GuestNotification.html b/Place/VisitorMailer/GuestNotification.html index a01f5b7a2e..c3ca1ad542 100644 --- a/Place/VisitorMailer/GuestNotification.html +++ b/Place/VisitorMailer/GuestNotification.html @@ -7367,7 +7367,7 @@

- + place/visitor_mailer.cr @@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7887,7 +7887,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/Induction.html b/Place/VisitorMailer/Induction.html index 600b0f95af..de0cd11333 100644 --- a/Place/VisitorMailer/Induction.html +++ b/Place/VisitorMailer/Induction.html @@ -7317,7 +7317,7 @@

- + place/visitor_mailer.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/SystemDetails.html b/Place/VisitorMailer/SystemDetails.html index de77f6cde6..28c850f2ae 100644 --- a/Place/VisitorMailer/SystemDetails.html +++ b/Place/VisitorMailer/SystemDetails.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Place/VisitorMailer/ZoneDetails.html b/Place/VisitorMailer/ZoneDetails.html index eec3903e99..bffd351e3b 100644 --- a/Place/VisitorMailer/ZoneDetails.html +++ b/Place/VisitorMailer/ZoneDetails.html @@ -7347,7 +7347,7 @@

- + place/visitor_mailer.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace.html b/Place/Workplace.html index 6c4dc3e195..2848627073 100644 --- a/Place/Workplace.html +++ b/Place/Workplace.html @@ -7333,7 +7333,7 @@

- + place/llm/workplace.cr @@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace/Booking.html b/Place/Workplace/Booking.html index 16aa466da5..fcec212b4d 100644 --- a/Place/Workplace/Booking.html +++ b/Place/Workplace/Booking.html @@ -7347,7 +7347,7 @@

- + place/llm/workplace.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace/ChildMetadata.html b/Place/Workplace/ChildMetadata.html index cf172eb08d..07b8494a09 100644 --- a/Place/Workplace/ChildMetadata.html +++ b/Place/Workplace/ChildMetadata.html @@ -7327,7 +7327,7 @@

- + place/llm/workplace.cr diff --git a/Place/Workplace/Desk.html b/Place/Workplace/Desk.html index ef8fe9fc26..36762ff94b 100644 --- a/Place/Workplace/Desk.html +++ b/Place/Workplace/Desk.html @@ -7347,7 +7347,7 @@

- + place/llm/workplace.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace/Metadata.html b/Place/Workplace/Metadata.html index ffdfd62ce9..a99d854e9d 100644 --- a/Place/Workplace/Metadata.html +++ b/Place/Workplace/Metadata.html @@ -7327,7 +7327,7 @@

- + place/llm/workplace.cr diff --git a/Place/Workplace/PlaceZone.html b/Place/Workplace/PlaceZone.html index 3622c5cdc8..f56436ee1c 100644 --- a/Place/Workplace/PlaceZone.html +++ b/Place/Workplace/PlaceZone.html @@ -7327,7 +7327,7 @@

- + place/llm/workplace.cr diff --git a/Place/Workplace/System.html b/Place/Workplace/System.html index 9fa2e67bc3..c884275d3f 100644 --- a/Place/Workplace/System.html +++ b/Place/Workplace/System.html @@ -7347,7 +7347,7 @@

- + place/llm/workplace.cr @@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace/User.html b/Place/Workplace/User.html index ceef47adf9..353e046bc7 100644 --- a/Place/Workplace/User.html +++ b/Place/Workplace/User.html @@ -7347,7 +7347,7 @@

- + place/llm/workplace.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Place/Workplace/Zone.html b/Place/Workplace/Zone.html index c7e311ddc6..d65bc75716 100644 --- a/Place/Workplace/Zone.html +++ b/Place/Workplace/Zone.html @@ -7347,7 +7347,7 @@

- + place/llm/workplace.cr @@ -7509,7 +7509,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
diff --git a/Place/WorkplaceSubscription.html b/Place/WorkplaceSubscription.html index fd9b1a3d26..cc11e2bad2 100644 --- a/Place/WorkplaceSubscription.html +++ b/Place/WorkplaceSubscription.html @@ -7331,7 +7331,7 @@

- + place/models/workplace_subscriptions.cr @@ -7439,7 +7439,7 @@


- [View source] + [View source]
@@ -7455,7 +7455,7 @@


- [View source] + [View source]
@@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
diff --git a/Place/WorkplaceSubscription/NotifyEvent.html b/Place/WorkplaceSubscription/NotifyEvent.html index fbb2a08e6f..8a3af19652 100644 --- a/Place/WorkplaceSubscription/NotifyEvent.html +++ b/Place/WorkplaceSubscription/NotifyEvent.html @@ -7347,7 +7347,7 @@

- + place/models/workplace_subscriptions.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Place/WorkplaceSubscription/NotifyType.html b/Place/WorkplaceSubscription/NotifyType.html index ac79b77aa1..73e0393914 100644 --- a/Place/WorkplaceSubscription/NotifyType.html +++ b/Place/WorkplaceSubscription/NotifyType.html @@ -7317,7 +7317,7 @@

- + place/models/workplace_subscriptions.cr @@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Place/WorkplaceSubscription/ServiceName.html b/Place/WorkplaceSubscription/ServiceName.html index 20fd0e8aa4..aeb17fbcb4 100644 --- a/Place/WorkplaceSubscription/ServiceName.html +++ b/Place/WorkplaceSubscription/ServiceName.html @@ -7317,7 +7317,7 @@

- + place/models/workplace_subscriptions.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Place/WorkspaceAPI.html b/Place/WorkspaceAPI.html index 1b633ca190..6288d08de9 100644 --- a/Place/WorkspaceAPI.html +++ b/Place/WorkspaceAPI.html @@ -7333,7 +7333,7 @@

- + google/workspace_api.cr diff --git a/Planar.html b/Planar.html index 81e4301aee..530d3da113 100644 --- a/Planar.html +++ b/Planar.html @@ -7317,7 +7317,7 @@

- + planar/clarity_matrix.cr diff --git a/Planar/ClarityMatrix.html b/Planar/ClarityMatrix.html index 04df24607f..66b4dcd610 100644 --- a/Planar/ClarityMatrix.html +++ b/Planar/ClarityMatrix.html @@ -7333,7 +7333,7 @@

- + planar/clarity_matrix.cr @@ -7538,7 +7538,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
diff --git a/Point.html b/Point.html index 5b8ce56fe9..c8a4b24791 100644 --- a/Point.html +++ b/Point.html @@ -7319,7 +7319,7 @@

- + place/area_polygon.cr @@ -7458,7 +7458,7 @@


- [View source] + [View source]
@@ -7495,7 +7495,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab.html b/PointGrab.html index b6f7c0c4fa..44349b238d 100644 --- a/PointGrab.html +++ b/PointGrab.html @@ -7317,7 +7317,7 @@

- + point_grab/cogni_point.cr diff --git a/PointGrab/CogniPoint.html b/PointGrab/CogniPoint.html index 8d91d66378..c6952718a1 100644 --- a/PointGrab/CogniPoint.html +++ b/PointGrab/CogniPoint.html @@ -7319,7 +7319,7 @@

- + point_grab/cogni_point.cr @@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
@@ -7887,7 +7887,7 @@


- [View source] + [View source]
@@ -7903,7 +7903,7 @@


- [View source] + [View source]
@@ -7919,7 +7919,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Area.html b/PointGrab/CogniPoint/Area.html index a12a03f65f..d86f2da8f1 100644 --- a/PointGrab/CogniPoint/Area.html +++ b/PointGrab/CogniPoint/Area.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
@@ -7821,7 +7821,7 @@


- [View source] + [View source]
@@ -7837,7 +7837,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
@@ -7869,7 +7869,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7911,7 +7911,7 @@


- [View source] + [View source]
@@ -7927,7 +7927,7 @@


- [View source] + [View source]
@@ -7943,7 +7943,7 @@


- [View source] + [View source]
@@ -7959,7 +7959,7 @@


- [View source] + [View source]
@@ -7975,7 +7975,7 @@


- [View source] + [View source]
@@ -7991,7 +7991,7 @@


- [View source] + [View source]
@@ -8007,7 +8007,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Area/Application.html b/PointGrab/CogniPoint/Area/Application.html index bfef516918..4452eb25cb 100644 --- a/PointGrab/CogniPoint/Area/Application.html +++ b/PointGrab/CogniPoint/Area/Application.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Building.html b/PointGrab/CogniPoint/Building.html index ba753e2808..17b3471726 100644 --- a/PointGrab/CogniPoint/Building.html +++ b/PointGrab/CogniPoint/Building.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/CountUpdate.html b/PointGrab/CogniPoint/CountUpdate.html index c7546efe03..dc1cd9fa6d 100644 --- a/PointGrab/CogniPoint/CountUpdate.html +++ b/PointGrab/CogniPoint/CountUpdate.html @@ -7359,7 +7359,7 @@

- + point_grab/cogni_point.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Customer.html b/PointGrab/CogniPoint/Customer.html index 8f53b050dc..55a808e857 100644 --- a/PointGrab/CogniPoint/Customer.html +++ b/PointGrab/CogniPoint/Customer.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Floor.html b/PointGrab/CogniPoint/Floor.html index 02026e50fc..8b795f2d08 100644 --- a/PointGrab/CogniPoint/Floor.html +++ b/PointGrab/CogniPoint/Floor.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/FloorAreas.html b/PointGrab/CogniPoint/FloorAreas.html index 3a6a617c84..2f12084ef4 100644 --- a/PointGrab/CogniPoint/FloorAreas.html +++ b/PointGrab/CogniPoint/FloorAreas.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/GeoPosition.html b/PointGrab/CogniPoint/GeoPosition.html index a54e9b0db0..4fab072bf9 100644 --- a/PointGrab/CogniPoint/GeoPosition.html +++ b/PointGrab/CogniPoint/GeoPosition.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Handler.html b/PointGrab/CogniPoint/Handler.html index f292ae635e..0372a89e09 100644 --- a/PointGrab/CogniPoint/Handler.html +++ b/PointGrab/CogniPoint/Handler.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/MetricPositions.html b/PointGrab/CogniPoint/MetricPositions.html index c5dc08d800..a0a7c7246a 100644 --- a/PointGrab/CogniPoint/MetricPositions.html +++ b/PointGrab/CogniPoint/MetricPositions.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/NotificationType.html b/PointGrab/CogniPoint/NotificationType.html index 679fdecc3f..f81be1c220 100644 --- a/PointGrab/CogniPoint/NotificationType.html +++ b/PointGrab/CogniPoint/NotificationType.html @@ -7317,7 +7317,7 @@

- + point_grab/cogni_point.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Site.html b/PointGrab/CogniPoint/Site.html index 7f6e705c28..9ea9cc0a92 100644 --- a/PointGrab/CogniPoint/Site.html +++ b/PointGrab/CogniPoint/Site.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Site/Location.html b/PointGrab/CogniPoint/Site/Location.html index 4bbe8d8742..6a530a2d8d 100644 --- a/PointGrab/CogniPoint/Site/Location.html +++ b/PointGrab/CogniPoint/Site/Location.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/Subscription.html b/PointGrab/CogniPoint/Subscription.html index 7a8a49eaa4..0c297a8cf9 100644 --- a/PointGrab/CogniPoint/Subscription.html +++ b/PointGrab/CogniPoint/Subscription.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
diff --git a/PointGrab/CogniPoint/TokenResponse.html b/PointGrab/CogniPoint/TokenResponse.html index d9f0f51957..c0b91253ef 100644 --- a/PointGrab/CogniPoint/TokenResponse.html +++ b/PointGrab/CogniPoint/TokenResponse.html @@ -7347,7 +7347,7 @@

- + point_grab/cogni_point.cr @@ -7479,7 +7479,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Polygon.html b/Polygon.html index d1ba0c9fa4..b52bae042e 100644 --- a/Polygon.html +++ b/Polygon.html @@ -7319,7 +7319,7 @@

- + place/area_polygon.cr @@ -7448,7 +7448,7 @@


- [View source] + [View source]
@@ -7480,7 +7480,7 @@


- [View source] + [View source]
@@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
diff --git a/Qbic.html b/Qbic.html index 29fd3dc34b..6403646b6d 100644 --- a/Qbic.html +++ b/Qbic.html @@ -7317,7 +7317,7 @@

- + qbic/touch_panel.cr diff --git a/Qbic/TouchPanel.html b/Qbic/TouchPanel.html index c395218004..e1f69fc464 100644 --- a/Qbic/TouchPanel.html +++ b/Qbic/TouchPanel.html @@ -7319,7 +7319,7 @@

- + qbic/touch_panel.cr @@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
diff --git a/Qbic/TouchPanel/AdvertiseMode.html b/Qbic/TouchPanel/AdvertiseMode.html index af9c3d9929..1460127b1a 100644 --- a/Qbic/TouchPanel/AdvertiseMode.html +++ b/Qbic/TouchPanel/AdvertiseMode.html @@ -7317,7 +7317,7 @@

- + qbic/touch_panel.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Qbic/TouchPanel/AuthResponse.html b/Qbic/TouchPanel/AuthResponse.html index 25867bfc42..67b646d401 100644 --- a/Qbic/TouchPanel/AuthResponse.html +++ b/Qbic/TouchPanel/AuthResponse.html @@ -7347,7 +7347,7 @@

- + qbic/touch_panel.cr @@ -7493,7 +7493,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
diff --git a/Qbic/TouchPanel/FailureResponse.html b/Qbic/TouchPanel/FailureResponse.html index 2ecb54f8f6..a0513053b4 100644 --- a/Qbic/TouchPanel/FailureResponse.html +++ b/Qbic/TouchPanel/FailureResponse.html @@ -7347,7 +7347,7 @@

- + qbic/touch_panel.cr @@ -7469,7 +7469,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
diff --git a/Qsc.html b/Qsc.html index 4507a7caaf..c4dae3d17f 100644 --- a/Qsc.html +++ b/Qsc.html @@ -7317,7 +7317,7 @@

- + qsc/q_sys_control.cr diff --git a/Qsc/QSysControl.html b/Qsc/QSysControl.html index a3635459c2..4385e5fd09 100644 --- a/Qsc/QSysControl.html +++ b/Qsc/QSysControl.html @@ -7319,7 +7319,7 @@

- + qsc/q_sys_control.cr @@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7907,7 +7907,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
@@ -8008,7 +8008,7 @@


- [View source] + [View source]
@@ -8024,7 +8024,7 @@


- [View source] + [View source]
@@ -8045,7 +8045,7 @@


- [View source] + [View source]
@@ -8061,7 +8061,7 @@


- [View source] + [View source]
diff --git a/Qsc/QSysControl/Group.html b/Qsc/QSysControl/Group.html index 1e38cf0080..58b69d065c 100644 --- a/Qsc/QSysControl/Group.html +++ b/Qsc/QSysControl/Group.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_control.cr diff --git a/Qsc/QSysControl/Ids.html b/Qsc/QSysControl/Ids.html index 7c84dfea07..439b027146 100644 --- a/Qsc/QSysControl/Ids.html +++ b/Qsc/QSysControl/Ids.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_control.cr diff --git a/Qsc/QSysControl/Val.html b/Qsc/QSysControl/Val.html index 74817daaba..c9d96c1327 100644 --- a/Qsc/QSysControl/Val.html +++ b/Qsc/QSysControl/Val.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_control.cr diff --git a/Qsc/QSysRemote.html b/Qsc/QSysRemote.html index 20fa361f15..927d1f88ba 100644 --- a/Qsc/QSysRemote.html +++ b/Qsc/QSysRemote.html @@ -7319,7 +7319,7 @@

- + qsc/q_sys_remote.cr @@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7848,7 +7848,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7885,7 +7885,7 @@


- [View source] + [View source]
@@ -7901,7 +7901,7 @@


- [View source] + [View source]
@@ -7923,7 +7923,7 @@


- [View source] + [View source]
@@ -7939,7 +7939,7 @@


- [View source] + [View source]
@@ -7955,7 +7955,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7987,7 +7987,7 @@


- [View source] + [View source]
@@ -8003,7 +8003,7 @@


- [View source] + [View source]
@@ -8019,7 +8019,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8110,7 +8110,7 @@


- [View source] + [View source]
@@ -8126,7 +8126,7 @@


- [View source] + [View source]
@@ -8142,7 +8142,7 @@


- [View source] + [View source]
@@ -8163,7 +8163,7 @@


- [View source] + [View source]
@@ -8179,7 +8179,7 @@


- [View source] + [View source]
@@ -8195,7 +8195,7 @@


- [View source] + [View source]
@@ -8211,7 +8211,7 @@


- [View source] + [View source]
@@ -8227,7 +8227,7 @@


- [View source] + [View source]
@@ -8243,7 +8243,7 @@


- [View source] + [View source]
@@ -8259,7 +8259,7 @@


- [View source] + [View source]
diff --git a/Qsc/QSysRemote/Ids.html b/Qsc/QSysRemote/Ids.html index e3366ac39a..8f80bc1ee1 100644 --- a/Qsc/QSysRemote/Ids.html +++ b/Qsc/QSysRemote/Ids.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_remote.cr diff --git a/Qsc/QSysRemote/Num.html b/Qsc/QSysRemote/Num.html index de67782154..fa6202c09e 100644 --- a/Qsc/QSysRemote/Num.html +++ b/Qsc/QSysRemote/Num.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_remote.cr diff --git a/Qsc/QSysRemote/PosTup.html b/Qsc/QSysRemote/PosTup.html index 8dca56321d..b6a87f3c0b 100644 --- a/Qsc/QSysRemote/PosTup.html +++ b/Qsc/QSysRemote/PosTup.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_remote.cr diff --git a/Qsc/QSysRemote/ValTup.html b/Qsc/QSysRemote/ValTup.html index 35843e33c6..9d7e4d6489 100644 --- a/Qsc/QSysRemote/ValTup.html +++ b/Qsc/QSysRemote/ValTup.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_remote.cr diff --git a/Qsc/QSysRemote/Values.html b/Qsc/QSysRemote/Values.html index 50900b3a8e..e72c271589 100644 --- a/Qsc/QSysRemote/Values.html +++ b/Qsc/QSysRemote/Values.html @@ -7327,7 +7327,7 @@

- + qsc/q_sys_remote.cr diff --git a/RHBAccess.html b/RHBAccess.html index 031312c65d..1002b7d100 100644 --- a/RHBAccess.html +++ b/RHBAccess.html @@ -7317,7 +7317,7 @@

- + rhb_access/axiom_room_logic.cr diff --git a/RHBAccess/AxiomRoomLogic.html b/RHBAccess/AxiomRoomLogic.html index ecd8ad8096..ba3888007a 100644 --- a/RHBAccess/AxiomRoomLogic.html +++ b/RHBAccess/AxiomRoomLogic.html @@ -7319,7 +7319,7 @@

- + rhb_access/axiom_room_logic.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/RHBAccess/Axiomxa.html b/RHBAccess/Axiomxa.html index c8881cc078..883dba9cd0 100644 --- a/RHBAccess/Axiomxa.html +++ b/RHBAccess/Axiomxa.html @@ -7319,7 +7319,7 @@

- + rhb_access/axiomxa.cr @@ -7481,7 +7481,7 @@


- [View source] + [View source]
@@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7513,7 +7513,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
diff --git a/RHBAccess/Axiomxa/Client.html b/RHBAccess/Axiomxa/Client.html index b38aad7e6b..d1a2367a7f 100644 --- a/RHBAccess/Axiomxa/Client.html +++ b/RHBAccess/Axiomxa/Client.html @@ -7327,7 +7327,7 @@

- + rhb_access/axiomxa.cr diff --git a/Rhombus.html b/Rhombus.html index 02faff6cef..34765cec8f 100644 --- a/Rhombus.html +++ b/Rhombus.html @@ -7317,7 +7317,7 @@

- + rhombus/security_interop_models.cr diff --git a/Rhombus/SecurityInterop.html b/Rhombus/SecurityInterop.html index d27700ea27..81f1477313 100644 --- a/Rhombus/SecurityInterop.html +++ b/Rhombus/SecurityInterop.html @@ -7319,7 +7319,7 @@

- + rhombus/security_interop.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/Rhombus/SecurityMock.html b/Rhombus/SecurityMock.html index 5a9270de76..a753c84872 100644 --- a/Rhombus/SecurityMock.html +++ b/Rhombus/SecurityMock.html @@ -7333,7 +7333,7 @@

- + rhombus/security_mock.cr @@ -7510,7 +7510,7 @@


- [View source] + [View source]
@@ -7526,7 +7526,7 @@


- [View source] + [View source]
@@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
diff --git a/Rhombus/SecurityMock/CardUser.html b/Rhombus/SecurityMock/CardUser.html index 52c1c74284..b7a7a00c82 100644 --- a/Rhombus/SecurityMock/CardUser.html +++ b/Rhombus/SecurityMock/CardUser.html @@ -7347,7 +7347,7 @@

- + rhombus/security_mock.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Rhombus/Subscription.html b/Rhombus/Subscription.html index 1e1fecaf49..1c976f3c97 100644 --- a/Rhombus/Subscription.html +++ b/Rhombus/Subscription.html @@ -7347,7 +7347,7 @@

- + rhombus/security_interop_models.cr @@ -7474,7 +7474,7 @@


- [View source] + [View source]
@@ -7490,7 +7490,7 @@


- [View source] + [View source]
@@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7538,7 +7538,7 @@


- [View source] + [View source]
diff --git a/Rhombus/Webhook.html b/Rhombus/Webhook.html index 7710d958bb..e7917c4e3a 100644 --- a/Rhombus/Webhook.html +++ b/Rhombus/Webhook.html @@ -7347,7 +7347,7 @@

- + rhombus/security_interop_models.cr @@ -7504,7 +7504,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7568,7 +7568,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
diff --git a/Samsung.html b/Samsung.html index 5739a36b26..965251a56b 100644 --- a/Samsung.html +++ b/Samsung.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr diff --git a/Samsung/Displays.html b/Samsung/Displays.html index db68b2eae6..4fcde85582 100644 --- a/Samsung/Displays.html +++ b/Samsung/Displays.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr diff --git a/Samsung/Displays/MDCProtocol.html b/Samsung/Displays/MDCProtocol.html index eea5ee794e..fa14db474f 100644 --- a/Samsung/Displays/MDCProtocol.html +++ b/Samsung/Displays/MDCProtocol.html @@ -7337,7 +7337,7 @@

- + samsung/displays/mdc_protocol.cr @@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7951,7 +7951,7 @@


- [View source] + [View source]
@@ -7972,7 +7972,7 @@


- [View source] + [View source]
@@ -7988,7 +7988,7 @@


- [View source] + [View source]
@@ -8004,7 +8004,7 @@


- [View source] + [View source]
@@ -8020,7 +8020,7 @@


- [View source] + [View source]
@@ -8041,7 +8041,7 @@


- [View source] + [View source]
@@ -8057,7 +8057,7 @@


- [View source] + [View source]
@@ -8073,7 +8073,7 @@


- [View source] + [View source]
@@ -8089,7 +8089,7 @@


- [View source] + [View source]
@@ -8105,7 +8105,7 @@


- [View source] + [View source]
@@ -8121,7 +8121,7 @@


- [View source] + [View source]
@@ -8142,7 +8142,7 @@


- [View source] + [View source]
@@ -8158,7 +8158,7 @@


- [View source] + [View source]
@@ -8174,7 +8174,7 @@


- [View source] + [View source]
@@ -8190,7 +8190,7 @@


- [View source] + [View source]
@@ -8206,7 +8206,7 @@


- [View source] + [View source]
@@ -8222,7 +8222,7 @@


- [View source] + [View source]
@@ -8238,7 +8238,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/MDCProtocol/Command.html b/Samsung/Displays/MDCProtocol/Command.html index cbe32015cc..7afcea673e 100644 --- a/Samsung/Displays/MDCProtocol/Command.html +++ b/Samsung/Displays/MDCProtocol/Command.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr @@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
@@ -7862,7 +7862,7 @@


- [View source] + [View source]
@@ -7878,7 +7878,7 @@


- [View source] + [View source]
@@ -7894,7 +7894,7 @@


- [View source] + [View source]
@@ -7910,7 +7910,7 @@


- [View source] + [View source]
@@ -7926,7 +7926,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
@@ -8006,7 +8006,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8038,7 +8038,7 @@


- [View source] + [View source]
@@ -8054,7 +8054,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8102,7 +8102,7 @@


- [View source] + [View source]
@@ -8118,7 +8118,7 @@


- [View source] + [View source]
@@ -8134,7 +8134,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8182,7 +8182,7 @@


- [View source] + [View source]
@@ -8198,7 +8198,7 @@


- [View source] + [View source]
@@ -8214,7 +8214,7 @@


- [View source] + [View source]
@@ -8230,7 +8230,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/MDCProtocol/Input.html b/Samsung/Displays/MDCProtocol/Input.html index 3f05be43ad..5f454e7260 100644 --- a/Samsung/Displays/MDCProtocol/Input.html +++ b/Samsung/Displays/MDCProtocol/Input.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr @@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7743,7 +7743,7 @@


- [View source] + [View source]
@@ -7759,7 +7759,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
@@ -7791,7 +7791,7 @@


- [View source] + [View source]
@@ -7807,7 +7807,7 @@


- [View source] + [View source]
@@ -7823,7 +7823,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/MDCProtocol/Num.html b/Samsung/Displays/MDCProtocol/Num.html index 80ce2a5a3c..b48159c7d8 100644 --- a/Samsung/Displays/MDCProtocol/Num.html +++ b/Samsung/Displays/MDCProtocol/Num.html @@ -7327,7 +7327,7 @@

- + samsung/displays/mdc_protocol.cr diff --git a/Samsung/Displays/MDCProtocol/ResponseStatus.html b/Samsung/Displays/MDCProtocol/ResponseStatus.html index 643eb4bacb..5e80baa405 100644 --- a/Samsung/Displays/MDCProtocol/ResponseStatus.html +++ b/Samsung/Displays/MDCProtocol/ResponseStatus.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/MDCProtocol/SpeakerMode.html b/Samsung/Displays/MDCProtocol/SpeakerMode.html index 41277814ea..decac25078 100644 --- a/Samsung/Displays/MDCProtocol/SpeakerMode.html +++ b/Samsung/Displays/MDCProtocol/SpeakerMode.html @@ -7317,7 +7317,7 @@

- + samsung/displays/mdc_protocol.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/ReducedMDCProtocol.html b/Samsung/Displays/ReducedMDCProtocol.html index 03d114434c..3b8ec6ef3b 100644 --- a/Samsung/Displays/ReducedMDCProtocol.html +++ b/Samsung/Displays/ReducedMDCProtocol.html @@ -7337,7 +7337,7 @@

- + samsung/displays/reduced_mdc_protocol.cr @@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7837,7 +7837,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
@@ -7869,7 +7869,7 @@


- [View source] + [View source]
@@ -7885,7 +7885,7 @@


- [View source] + [View source]
@@ -7901,7 +7901,7 @@


- [View source] + [View source]
@@ -7917,7 +7917,7 @@


- [View source] + [View source]
@@ -7933,7 +7933,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/ReducedMDCProtocol/Command.html b/Samsung/Displays/ReducedMDCProtocol/Command.html index b9b4f12cb1..95ef9fc0a8 100644 --- a/Samsung/Displays/ReducedMDCProtocol/Command.html +++ b/Samsung/Displays/ReducedMDCProtocol/Command.html @@ -7317,7 +7317,7 @@

- + samsung/displays/reduced_mdc_protocol.cr @@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
@@ -7798,7 +7798,7 @@


- [View source] + [View source]
@@ -7814,7 +7814,7 @@


- [View source] + [View source]
@@ -7830,7 +7830,7 @@


- [View source] + [View source]
@@ -7846,7 +7846,7 @@


- [View source] + [View source]
@@ -7862,7 +7862,7 @@


- [View source] + [View source]
@@ -7878,7 +7878,7 @@


- [View source] + [View source]
@@ -7894,7 +7894,7 @@


- [View source] + [View source]
@@ -7910,7 +7910,7 @@


- [View source] + [View source]
@@ -7926,7 +7926,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7974,7 +7974,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
@@ -8006,7 +8006,7 @@


- [View source] + [View source]
@@ -8022,7 +8022,7 @@


- [View source] + [View source]
@@ -8038,7 +8038,7 @@


- [View source] + [View source]
@@ -8054,7 +8054,7 @@


- [View source] + [View source]
@@ -8070,7 +8070,7 @@


- [View source] + [View source]
@@ -8086,7 +8086,7 @@


- [View source] + [View source]
@@ -8102,7 +8102,7 @@


- [View source] + [View source]
@@ -8118,7 +8118,7 @@


- [View source] + [View source]
@@ -8134,7 +8134,7 @@


- [View source] + [View source]
@@ -8150,7 +8150,7 @@


- [View source] + [View source]
@@ -8166,7 +8166,7 @@


- [View source] + [View source]
@@ -8182,7 +8182,7 @@


- [View source] + [View source]
@@ -8198,7 +8198,7 @@


- [View source] + [View source]
@@ -8214,7 +8214,7 @@


- [View source] + [View source]
@@ -8230,7 +8230,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/ReducedMDCProtocol/Input.html b/Samsung/Displays/ReducedMDCProtocol/Input.html index d20b99a296..703d21b71e 100644 --- a/Samsung/Displays/ReducedMDCProtocol/Input.html +++ b/Samsung/Displays/ReducedMDCProtocol/Input.html @@ -7317,7 +7317,7 @@

- + samsung/displays/reduced_mdc_protocol.cr @@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7695,7 +7695,7 @@


- [View source] + [View source]
@@ -7711,7 +7711,7 @@


- [View source] + [View source]
@@ -7727,7 +7727,7 @@


- [View source] + [View source]
@@ -7743,7 +7743,7 @@


- [View source] + [View source]
@@ -7759,7 +7759,7 @@


- [View source] + [View source]
@@ -7775,7 +7775,7 @@


- [View source] + [View source]
@@ -7791,7 +7791,7 @@


- [View source] + [View source]
@@ -7807,7 +7807,7 @@


- [View source] + [View source]
@@ -7823,7 +7823,7 @@


- [View source] + [View source]
@@ -7839,7 +7839,7 @@


- [View source] + [View source]
@@ -7855,7 +7855,7 @@


- [View source] + [View source]
@@ -7871,7 +7871,7 @@


- [View source] + [View source]
diff --git a/Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html b/Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html index 967ef2d67a..6b470c2e7f 100644 --- a/Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html +++ b/Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html @@ -7317,7 +7317,7 @@

- + samsung/displays/reduced_mdc_protocol.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Screen.html b/Screen.html index 2d725ee699..bb8db09d16 100644 --- a/Screen.html +++ b/Screen.html @@ -7319,7 +7319,7 @@

- + global_cache/projector_screen_spec.cr diff --git a/ScreenTechnics.html b/ScreenTechnics.html index 4a4757e8ec..e5d7d9ac74 100644 --- a/ScreenTechnics.html +++ b/ScreenTechnics.html @@ -7317,7 +7317,7 @@

- + screen_technics/connect.cr diff --git a/ScreenTechnics/Connect.html b/ScreenTechnics/Connect.html index 7f4db5b588..c59011a827 100644 --- a/ScreenTechnics/Connect.html +++ b/ScreenTechnics/Connect.html @@ -7335,7 +7335,7 @@

- + screen_technics/connect.cr @@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
diff --git a/SecureOS.html b/SecureOS.html index df438b803d..fb8de33c54 100644 --- a/SecureOS.html +++ b/SecureOS.html @@ -7317,7 +7317,7 @@

- + secure_os/ws_api_models.cr diff --git a/SecureOS/AuthResponse.html b/SecureOS/AuthResponse.html index 4db292d4ac..37a0c0d255 100644 --- a/SecureOS/AuthResponse.html +++ b/SecureOS/AuthResponse.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/SecureOS/AuthToken.html b/SecureOS/AuthToken.html index ddfd7949d9..729b38a090 100644 --- a/SecureOS/AuthToken.html +++ b/SecureOS/AuthToken.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/SecureOS/Camera.html b/SecureOS/Camera.html index 55a215f635..14e9be791c 100644 --- a/SecureOS/Camera.html +++ b/SecureOS/Camera.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/SecureOS/CameraResponse.html b/SecureOS/CameraResponse.html index 0ef5645e7d..b774aa8a13 100644 --- a/SecureOS/CameraResponse.html +++ b/SecureOS/CameraResponse.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/SecureOS/Error.html b/SecureOS/Error.html index b7dc675a06..ea3749fbfa 100644 --- a/SecureOS/Error.html +++ b/SecureOS/Error.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/SecureOS/ErrorWrapper.html b/SecureOS/ErrorWrapper.html index 1b5b0119ea..f139ee8c51 100644 --- a/SecureOS/ErrorWrapper.html +++ b/SecureOS/ErrorWrapper.html @@ -7319,7 +7319,7 @@

- + secure_os/ws_api_models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/SecureOS/Event.html b/SecureOS/Event.html index faa47300a2..a071f5ffd7 100644 --- a/SecureOS/Event.html +++ b/SecureOS/Event.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/SecureOS/EventWrapper.html b/SecureOS/EventWrapper.html index 34061086be..a5f213c40f 100644 --- a/SecureOS/EventWrapper.html +++ b/SecureOS/EventWrapper.html @@ -7319,7 +7319,7 @@

- + secure_os/ws_api_models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/SecureOS/Response.html b/SecureOS/Response.html index 565e9e00ac..f7fc61595e 100644 --- a/SecureOS/Response.html +++ b/SecureOS/Response.html @@ -7367,7 +7367,7 @@

- + secure_os/ws_api_models.cr @@ -7480,7 +7480,7 @@


- [View source] + [View source]
diff --git a/SecureOS/State.html b/SecureOS/State.html index 92e6f3315d..0ee5542ae3 100644 --- a/SecureOS/State.html +++ b/SecureOS/State.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/SecureOS/StateType.html b/SecureOS/StateType.html index 7cde30a026..ccfe72f261 100644 --- a/SecureOS/StateType.html +++ b/SecureOS/StateType.html @@ -7317,7 +7317,7 @@

- + secure_os/ws_api_models.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/SecureOS/StateWrapper.html b/SecureOS/StateWrapper.html index d0b9ed22c2..c5912f37d0 100644 --- a/SecureOS/StateWrapper.html +++ b/SecureOS/StateWrapper.html @@ -7319,7 +7319,7 @@

- + secure_os/ws_api_models.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
diff --git a/SecureOS/SubscribeRule.html b/SecureOS/SubscribeRule.html index e3b024d3bd..db6a97a587 100644 --- a/SecureOS/SubscribeRule.html +++ b/SecureOS/SubscribeRule.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/SecureOS/Watchlist.html b/SecureOS/Watchlist.html index cc70e12485..388c086e8b 100644 --- a/SecureOS/Watchlist.html +++ b/SecureOS/Watchlist.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/SecureOS/WatchlistResponse.html b/SecureOS/WatchlistResponse.html index f48d4f21b7..d148a4d424 100644 --- a/SecureOS/WatchlistResponse.html +++ b/SecureOS/WatchlistResponse.html @@ -7347,7 +7347,7 @@

- + secure_os/ws_api_models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/SecureOS/WsApi.html b/SecureOS/WsApi.html index aa28ea1d2d..d382f612b5 100644 --- a/SecureOS/WsApi.html +++ b/SecureOS/WsApi.html @@ -7319,7 +7319,7 @@

- + secure_os/ws_api.cr @@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7549,7 +7549,7 @@


- [View source] + [View source]
@@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
diff --git a/Settings.html b/Settings.html index d69518af48..f1ab48ac56 100644 --- a/Settings.html +++ b/Settings.html @@ -7327,7 +7327,7 @@

- + place/router/settings_spec.cr diff --git a/Sharp.html b/Sharp.html index 86792f7d19..5c68d9cc8b 100644 --- a/Sharp.html +++ b/Sharp.html @@ -7317,7 +7317,7 @@

- + sharp/pn_series.cr diff --git a/Sharp/PnSeries.html b/Sharp/PnSeries.html index b476b030cd..d9e4ca57b1 100644 --- a/Sharp/PnSeries.html +++ b/Sharp/PnSeries.html @@ -7337,7 +7337,7 @@

- + sharp/pn_series.cr @@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7853,7 +7853,7 @@


- [View source] + [View source]
@@ -7869,7 +7869,7 @@


- [View source] + [View source]
@@ -7885,7 +7885,7 @@


- [View source] + [View source]
@@ -7901,7 +7901,7 @@


- [View source] + [View source]
@@ -7917,7 +7917,7 @@


- [View source] + [View source]
@@ -7933,7 +7933,7 @@


- [View source] + [View source]
@@ -7949,7 +7949,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8012,7 +8012,7 @@


- [View source] + [View source]
@@ -8028,7 +8028,7 @@


- [View source] + [View source]
@@ -8044,7 +8044,7 @@


- [View source] + [View source]
@@ -8060,7 +8060,7 @@


- [View source] + [View source]
@@ -8076,7 +8076,7 @@


- [View source] + [View source]
@@ -8092,7 +8092,7 @@


- [View source] + [View source]
diff --git a/Sharp/PnSeries/Input.html b/Sharp/PnSeries/Input.html index deeb877bcd..c27b053907 100644 --- a/Sharp/PnSeries/Input.html +++ b/Sharp/PnSeries/Input.html @@ -7317,7 +7317,7 @@

- + sharp/pn_series.cr @@ -7530,7 +7530,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7578,7 +7578,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
diff --git a/Shure.html b/Shure.html index 914d2df96a..c6a85116de 100644 --- a/Shure.html +++ b/Shure.html @@ -7317,7 +7317,7 @@

- + shure/microphone/mxa.cr diff --git a/Shure/Microphone.html b/Shure/Microphone.html index dd2a6f603d..ab2cbe57be 100644 --- a/Shure/Microphone.html +++ b/Shure/Microphone.html @@ -7317,7 +7317,7 @@

- + shure/microphone/mxa.cr diff --git a/Shure/Microphone/MXA.html b/Shure/Microphone/MXA.html index 02cc24868f..15d17fc6bd 100644 --- a/Shure/Microphone/MXA.html +++ b/Shure/Microphone/MXA.html @@ -7333,7 +7333,7 @@

- + shure/microphone/mxa.cr @@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
@@ -7882,7 +7882,7 @@


- [View source] + [View source]
@@ -7898,7 +7898,7 @@


- [View source] + [View source]
@@ -7919,7 +7919,7 @@


- [View source] + [View source]
@@ -7935,7 +7935,7 @@


- [View source] + [View source]
@@ -7951,7 +7951,7 @@


- [View source] + [View source]
@@ -7972,7 +7972,7 @@


- [View source] + [View source]
@@ -7993,7 +7993,7 @@


- [View source] + [View source]
@@ -8009,7 +8009,7 @@


- [View source] + [View source]
@@ -8030,7 +8030,7 @@


- [View source] + [View source]
@@ -8046,7 +8046,7 @@


- [View source] + [View source]
diff --git a/Shure/Microphone/MXA/Colour.html b/Shure/Microphone/MXA/Colour.html index a700536d7a..84982e71a3 100644 --- a/Shure/Microphone/MXA/Colour.html +++ b/Shure/Microphone/MXA/Colour.html @@ -7317,7 +7317,7 @@

- + shure/microphone/mxa.cr @@ -7525,7 +7525,7 @@


- [View source] + [View source]
@@ -7541,7 +7541,7 @@


- [View source] + [View source]
@@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
diff --git a/Siemens.html b/Siemens.html index 5f51cb5df2..ca00980314 100644 --- a/Siemens.html +++ b/Siemens.html @@ -7317,7 +7317,7 @@

- + siemens/desigo.cr diff --git a/Siemens/Desigo.html b/Siemens/Desigo.html index 6ddb777070..1a16520c94 100644 --- a/Siemens/Desigo.html +++ b/Siemens/Desigo.html @@ -7319,7 +7319,7 @@

- + siemens/desigo.cr @@ -7488,7 +7488,7 @@


- [View source] + [View source]
@@ -7511,7 +7511,7 @@


- [View source] + [View source]
@@ -7527,7 +7527,7 @@


- [View source] + [View source]
@@ -7543,7 +7543,7 @@


- [View source] + [View source]
@@ -7559,7 +7559,7 @@


- [View source] + [View source]
diff --git a/Siemens/Desigo/Client.html b/Siemens/Desigo/Client.html index 980ab353c0..5437f04fcb 100644 --- a/Siemens/Desigo/Client.html +++ b/Siemens/Desigo/Client.html @@ -7327,7 +7327,7 @@

- + siemens/desigo.cr diff --git a/Siemens/Desigo/RoomLogic.html b/Siemens/Desigo/RoomLogic.html index e2343900ac..0f9a5c9454 100644 --- a/Siemens/Desigo/RoomLogic.html +++ b/Siemens/Desigo/RoomLogic.html @@ -7319,7 +7319,7 @@

- + siemens/desigo/room_logic.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Siemens/Desigo/RoomLogic/Query.html b/Siemens/Desigo/RoomLogic/Query.html index 993f77865a..cf69e73923 100644 --- a/Siemens/Desigo/RoomLogic/Query.html +++ b/Siemens/Desigo/RoomLogic/Query.html @@ -7347,7 +7347,7 @@

- + siemens/desigo/room_logic.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/SigGraph.html b/SigGraph.html index 7739a2da7b..514744602e 100644 --- a/SigGraph.html +++ b/SigGraph.html @@ -7327,7 +7327,7 @@

- + place/router/signal_graph_spec.cr diff --git a/SignalGraph.html b/SignalGraph.html index 17fec3af1b..4b14f8c268 100644 --- a/SignalGraph.html +++ b/SignalGraph.html @@ -7327,7 +7327,7 @@

- + place/router/settings_spec.cr diff --git a/Sony.html b/Sony.html index 7c6a21f921..2b291a1c89 100644 --- a/Sony.html +++ b/Sony.html @@ -7317,7 +7317,7 @@

- + sony/camera/cgi_protocol.cr diff --git a/Sony/Camera.html b/Sony/Camera.html index 7c6fdf00a0..2e045481dd 100644 --- a/Sony/Camera.html +++ b/Sony/Camera.html @@ -7317,7 +7317,7 @@

- + sony/camera/cgi_protocol.cr diff --git a/Sony/Camera/CGI.html b/Sony/Camera/CGI.html index ba8f9a600d..d9eb5fa4c2 100644 --- a/Sony/Camera/CGI.html +++ b/Sony/Camera/CGI.html @@ -7333,7 +7333,7 @@

- + sony/camera/cgi_protocol.cr @@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7878,7 +7878,7 @@


- [View source] + [View source]
@@ -7903,7 +7903,7 @@


- [View source] + [View source]
diff --git a/Sony/Camera/CGI/Movement.html b/Sony/Camera/CGI/Movement.html index ddb979a0ec..ba5ec815a2 100644 --- a/Sony/Camera/CGI/Movement.html +++ b/Sony/Camera/CGI/Movement.html @@ -7317,7 +7317,7 @@

- + sony/camera/cgi_protocol.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/Sony/Camera/VISCA.html b/Sony/Camera/VISCA.html index 28418f787a..3b3c6a5f2e 100644 --- a/Sony/Camera/VISCA.html +++ b/Sony/Camera/VISCA.html @@ -7335,7 +7335,7 @@

- + sony/camera/visca.cr @@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7843,7 +7843,7 @@


- [View source] + [View source]
@@ -7859,7 +7859,7 @@


- [View source] + [View source]
@@ -7875,7 +7875,7 @@


- [View source] + [View source]
@@ -7891,7 +7891,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
@@ -7985,7 +7985,7 @@


- [View source] + [View source]
@@ -8001,7 +8001,7 @@


- [View source] + [View source]
@@ -8017,7 +8017,7 @@


- [View source] + [View source]
@@ -8033,7 +8033,7 @@


- [View source] + [View source]
@@ -8049,7 +8049,7 @@


- [View source] + [View source]
@@ -8075,7 +8075,7 @@


- [View source] + [View source]
@@ -8091,7 +8091,7 @@


- [View source] + [View source]
@@ -8107,7 +8107,7 @@


- [View source] + [View source]
@@ -8128,7 +8128,7 @@


- [View source] + [View source]
diff --git a/Sony/Camera/VISCA/Packet.html b/Sony/Camera/VISCA/Packet.html index 6860c78ca6..72b834cfc8 100644 --- a/Sony/Camera/VISCA/Packet.html +++ b/Sony/Camera/VISCA/Packet.html @@ -7330,7 +7330,7 @@

- + sony/camera/visca.cr @@ -8301,7 +8301,7 @@


- [View source] + [View source]
@@ -8334,7 +8334,7 @@


- [View source] + [View source]
@@ -8355,7 +8355,7 @@


- [View source] + [View source]
@@ -8376,7 +8376,7 @@


- [View source] + [View source]
@@ -8397,7 +8397,7 @@


- [View source] + [View source]
@@ -8418,7 +8418,7 @@


- [View source] + [View source]
@@ -8439,7 +8439,7 @@


- [View source] + [View source]
@@ -8460,7 +8460,7 @@


- [View source] + [View source]
@@ -8481,7 +8481,7 @@


- [View source] + [View source]
@@ -8502,7 +8502,7 @@


- [View source] + [View source]
@@ -8523,7 +8523,7 @@


- [View source] + [View source]
@@ -8544,7 +8544,7 @@


- [View source] + [View source]
@@ -8565,7 +8565,7 @@


- [View source] + [View source]
@@ -8586,7 +8586,7 @@


- [View source] + [View source]
@@ -8607,7 +8607,7 @@


- [View source] + [View source]
@@ -8628,7 +8628,7 @@


- [View source] + [View source]
@@ -8649,7 +8649,7 @@


- [View source] + [View source]
@@ -8670,7 +8670,7 @@


- [View source] + [View source]
@@ -8691,7 +8691,7 @@


- [View source] + [View source]
@@ -8712,7 +8712,7 @@


- [View source] + [View source]
@@ -8733,7 +8733,7 @@


- [View source] + [View source]
@@ -8754,7 +8754,7 @@


- [View source] + [View source]
@@ -8775,7 +8775,7 @@


- [View source] + [View source]
@@ -8796,7 +8796,7 @@


- [View source] + [View source]
@@ -8817,7 +8817,7 @@


- [View source] + [View source]
@@ -8838,7 +8838,7 @@


- [View source] + [View source]
@@ -8859,7 +8859,7 @@


- [View source] + [View source]
@@ -8880,7 +8880,7 @@


- [View source] + [View source]
@@ -8901,7 +8901,7 @@


- [View source] + [View source]
@@ -8922,7 +8922,7 @@


- [View source] + [View source]
@@ -8943,7 +8943,7 @@


- [View source] + [View source]
@@ -8964,7 +8964,7 @@


- [View source] + [View source]
@@ -8985,7 +8985,7 @@


- [View source] + [View source]
@@ -9006,7 +9006,7 @@


- [View source] + [View source]
@@ -9027,7 +9027,7 @@


- [View source] + [View source]
@@ -9048,7 +9048,7 @@


- [View source] + [View source]
@@ -9069,7 +9069,7 @@


- [View source] + [View source]
@@ -9090,7 +9090,7 @@


- [View source] + [View source]
@@ -9111,7 +9111,7 @@


- [View source] + [View source]
@@ -9132,7 +9132,7 @@


- [View source] + [View source]
@@ -9153,7 +9153,7 @@


- [View source] + [View source]
@@ -9174,7 +9174,7 @@


- [View source] + [View source]
@@ -9195,7 +9195,7 @@


- [View source] + [View source]
@@ -9216,7 +9216,7 @@


- [View source] + [View source]
@@ -9237,7 +9237,7 @@


- [View source] + [View source]
@@ -9258,7 +9258,7 @@


- [View source] + [View source]
@@ -9279,7 +9279,7 @@


- [View source] + [View source]
@@ -9300,7 +9300,7 @@


- [View source] + [View source]
@@ -9321,7 +9321,7 @@


- [View source] + [View source]
@@ -9342,7 +9342,7 @@


- [View source] + [View source]
@@ -9363,7 +9363,7 @@


- [View source] + [View source]
@@ -9384,7 +9384,7 @@


- [View source] + [View source]
@@ -9405,7 +9405,7 @@


- [View source] + [View source]
@@ -9426,7 +9426,7 @@


- [View source] + [View source]
@@ -9447,7 +9447,7 @@


- [View source] + [View source]
@@ -9468,7 +9468,7 @@


- [View source] + [View source]
@@ -9489,7 +9489,7 @@


- [View source] + [View source]
@@ -9510,7 +9510,7 @@


- [View source] + [View source]
@@ -9531,7 +9531,7 @@


- [View source] + [View source]
@@ -9552,7 +9552,7 @@


- [View source] + [View source]
@@ -9573,7 +9573,7 @@


- [View source] + [View source]
@@ -9594,7 +9594,7 @@


- [View source] + [View source]
@@ -9615,7 +9615,7 @@


- [View source] + [View source]
@@ -9636,7 +9636,7 @@


- [View source] + [View source]
@@ -9657,7 +9657,7 @@


- [View source] + [View source]
@@ -9678,7 +9678,7 @@


- [View source] + [View source]
@@ -9699,7 +9699,7 @@


- [View source] + [View source]
@@ -9720,7 +9720,7 @@


- [View source] + [View source]
@@ -9741,7 +9741,7 @@


- [View source] + [View source]
@@ -9762,7 +9762,7 @@


- [View source] + [View source]
@@ -9783,7 +9783,7 @@


- [View source] + [View source]
@@ -9804,7 +9804,7 @@


- [View source] + [View source]
@@ -9825,7 +9825,7 @@


- [View source] + [View source]
@@ -9846,7 +9846,7 @@


- [View source] + [View source]
@@ -9867,7 +9867,7 @@


- [View source] + [View source]
@@ -9888,7 +9888,7 @@


- [View source] + [View source]
@@ -9909,7 +9909,7 @@


- [View source] + [View source]
@@ -9930,7 +9930,7 @@


- [View source] + [View source]
@@ -9951,7 +9951,7 @@


- [View source] + [View source]
@@ -9972,7 +9972,7 @@


- [View source] + [View source]
@@ -9993,7 +9993,7 @@


- [View source] + [View source]
@@ -10014,7 +10014,7 @@


- [View source] + [View source]
@@ -10035,7 +10035,7 @@


- [View source] + [View source]
@@ -10056,7 +10056,7 @@


- [View source] + [View source]
@@ -10077,7 +10077,7 @@


- [View source] + [View source]
@@ -10098,7 +10098,7 @@


- [View source] + [View source]
@@ -10119,7 +10119,7 @@


- [View source] + [View source]
@@ -10140,7 +10140,7 @@


- [View source] + [View source]
@@ -10161,7 +10161,7 @@


- [View source] + [View source]
@@ -10182,7 +10182,7 @@


- [View source] + [View source]
@@ -10203,7 +10203,7 @@


- [View source] + [View source]
@@ -10224,7 +10224,7 @@


- [View source] + [View source]
@@ -10245,7 +10245,7 @@


- [View source] + [View source]
@@ -10266,7 +10266,7 @@


- [View source] + [View source]
@@ -10287,7 +10287,7 @@


- [View source] + [View source]
@@ -10308,7 +10308,7 @@


- [View source] + [View source]
@@ -10329,7 +10329,7 @@


- [View source] + [View source]
@@ -10350,7 +10350,7 @@


- [View source] + [View source]
@@ -10371,7 +10371,7 @@


- [View source] + [View source]
@@ -10392,7 +10392,7 @@


- [View source] + [View source]
@@ -10413,7 +10413,7 @@


- [View source] + [View source]
@@ -10434,7 +10434,7 @@


- [View source] + [View source]
@@ -10455,7 +10455,7 @@


- [View source] + [View source]
@@ -10476,7 +10476,7 @@


- [View source] + [View source]
@@ -10504,7 +10504,7 @@


- [View source] + [View source]
diff --git a/Sony/Camera/VISCA/Packet/Type.html b/Sony/Camera/VISCA/Packet/Type.html index 35a1d72915..04e7df3382 100644 --- a/Sony/Camera/VISCA/Packet/Type.html +++ b/Sony/Camera/VISCA/Packet/Type.html @@ -7317,7 +7317,7 @@

- + sony/camera/visca.cr @@ -7518,7 +7518,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
diff --git a/Sony/Camera/VISCA/Presets.html b/Sony/Camera/VISCA/Presets.html index adf636602a..768a534732 100644 --- a/Sony/Camera/VISCA/Presets.html +++ b/Sony/Camera/VISCA/Presets.html @@ -7327,7 +7327,7 @@

- + sony/camera/visca.cr diff --git a/Sony/Displays.html b/Sony/Displays.html index f64c79a37a..ceb9b216d3 100644 --- a/Sony/Displays.html +++ b/Sony/Displays.html @@ -7317,7 +7317,7 @@

- + sony/displays/bravia.cr diff --git a/Sony/Displays/Bravia.html b/Sony/Displays/Bravia.html index e39285b194..d6dd48d9e1 100644 --- a/Sony/Displays/Bravia.html +++ b/Sony/Displays/Bravia.html @@ -7337,7 +7337,7 @@

- + sony/displays/bravia.cr @@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7905,7 +7905,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7937,7 +7937,7 @@


- [View source] + [View source]
@@ -7953,7 +7953,7 @@


- [View source] + [View source]
@@ -7969,7 +7969,7 @@


- [View source] + [View source]
diff --git a/Sony/Displays/Bravia/Command.html b/Sony/Displays/Bravia/Command.html index bd54b7d9e3..a67329166d 100644 --- a/Sony/Displays/Bravia/Command.html +++ b/Sony/Displays/Bravia/Command.html @@ -7317,7 +7317,7 @@

- + sony/displays/bravia.cr @@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
diff --git a/Sony/Displays/Bravia/Input.html b/Sony/Displays/Bravia/Input.html index f0734c31a4..81e1e7bad6 100644 --- a/Sony/Displays/Bravia/Input.html +++ b/Sony/Displays/Bravia/Input.html @@ -7317,7 +7317,7 @@

- + sony/displays/bravia.cr @@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
diff --git a/Sony/Displays/Bravia/MessageType.html b/Sony/Displays/Bravia/MessageType.html index 41a4007c73..619ddf6e7c 100644 --- a/Sony/Displays/Bravia/MessageType.html +++ b/Sony/Displays/Bravia/MessageType.html @@ -7317,7 +7317,7 @@

- + sony/displays/bravia.cr @@ -7500,7 +7500,7 @@


- [View source] + [View source]
@@ -7516,7 +7516,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector.html b/Sony/Projector.html index 2ef3931f5b..f4d5fa3993 100644 --- a/Sony/Projector.html +++ b/Sony/Projector.html @@ -7317,7 +7317,7 @@

- + sony/projector/fh.cr diff --git a/Sony/Projector/Fh.html b/Sony/Projector/Fh.html index 434e64e73e..5bb5d30861 100644 --- a/Sony/Projector/Fh.html +++ b/Sony/Projector/Fh.html @@ -7337,7 +7337,7 @@

- + sony/projector/fh.cr @@ -7667,7 +7667,7 @@


- [View source] + [View source]
@@ -7683,7 +7683,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7731,7 +7731,7 @@


- [View source] + [View source]
@@ -7747,7 +7747,7 @@


- [View source] + [View source]
@@ -7763,7 +7763,7 @@


- [View source] + [View source]
@@ -7779,7 +7779,7 @@


- [View source] + [View source]
@@ -7795,7 +7795,7 @@


- [View source] + [View source]
@@ -7811,7 +7811,7 @@


- [View source] + [View source]
@@ -7827,7 +7827,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7916,7 +7916,7 @@


- [View source] + [View source]
@@ -7932,7 +7932,7 @@


- [View source] + [View source]
@@ -7948,7 +7948,7 @@


- [View source] + [View source]
@@ -7964,7 +7964,7 @@


- [View source] + [View source]
@@ -7990,7 +7990,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/Fh/Inputs.html b/Sony/Projector/Fh/Inputs.html index 8edbd0bef8..f8b50341e1 100644 --- a/Sony/Projector/Fh/Inputs.html +++ b/Sony/Projector/Fh/Inputs.html @@ -7317,7 +7317,7 @@

- + sony/projector/fh.cr @@ -7565,7 +7565,7 @@


- [View source] + [View source]
@@ -7581,7 +7581,7 @@


- [View source] + [View source]
@@ -7597,7 +7597,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/PjTalk.html b/Sony/Projector/PjTalk.html index 17d0cf20a6..1106894a84 100644 --- a/Sony/Projector/PjTalk.html +++ b/Sony/Projector/PjTalk.html @@ -7337,7 +7337,7 @@

- + sony/projector/pj_talk.cr @@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
@@ -7777,7 +7777,7 @@


- [View source] + [View source]
@@ -7793,7 +7793,7 @@


- [View source] + [View source]
@@ -7809,7 +7809,7 @@


- [View source] + [View source]
@@ -7825,7 +7825,7 @@


- [View source] + [View source]
@@ -7841,7 +7841,7 @@


- [View source] + [View source]
@@ -7857,7 +7857,7 @@


- [View source] + [View source]
@@ -7873,7 +7873,7 @@


- [View source] + [View source]
@@ -7889,7 +7889,7 @@


- [View source] + [View source]
@@ -7914,7 +7914,7 @@


- [View source] + [View source]
@@ -7930,7 +7930,7 @@


- [View source] + [View source]
@@ -7946,7 +7946,7 @@


- [View source] + [View source]
@@ -7962,7 +7962,7 @@


- [View source] + [View source]
@@ -7978,7 +7978,7 @@


- [View source] + [View source]
@@ -7994,7 +7994,7 @@


- [View source] + [View source]
@@ -8010,7 +8010,7 @@


- [View source] + [View source]
@@ -8026,7 +8026,7 @@


- [View source] + [View source]
@@ -8042,7 +8042,7 @@


- [View source] + [View source]
@@ -8068,7 +8068,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/PjTalk/Command.html b/Sony/Projector/PjTalk/Command.html index e68d9bdfab..25e5c9e17a 100644 --- a/Sony/Projector/PjTalk/Command.html +++ b/Sony/Projector/PjTalk/Command.html @@ -7317,7 +7317,7 @@

- + sony/projector/pj_talk.cr @@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/PjTalk/CommandType.html b/Sony/Projector/PjTalk/CommandType.html index c58edda59e..0b26e138e9 100644 --- a/Sony/Projector/PjTalk/CommandType.html +++ b/Sony/Projector/PjTalk/CommandType.html @@ -7317,7 +7317,7 @@

- + sony/projector/pj_talk.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/PjTalk/Input.html b/Sony/Projector/PjTalk/Input.html index 6d0c3dbfce..e42d0fd104 100644 --- a/Sony/Projector/PjTalk/Input.html +++ b/Sony/Projector/PjTalk/Input.html @@ -7317,7 +7317,7 @@

- + sony/projector/pj_talk.cr @@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/PjTalk/ResponseStatus.html b/Sony/Projector/PjTalk/ResponseStatus.html index 47bc8de89a..f74a1a9d2f 100644 --- a/Sony/Projector/PjTalk/ResponseStatus.html +++ b/Sony/Projector/PjTalk/ResponseStatus.html @@ -7317,7 +7317,7 @@

- + sony/projector/pj_talk.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/SerialControl.html b/Sony/Projector/SerialControl.html index 04111a49aa..f9cea94d26 100644 --- a/Sony/Projector/SerialControl.html +++ b/Sony/Projector/SerialControl.html @@ -7337,7 +7337,7 @@

- + sony/projector/serial_control.cr @@ -7687,7 +7687,7 @@


- [View source] + [View source]
@@ -7703,7 +7703,7 @@


- [View source] + [View source]
@@ -7719,7 +7719,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7767,7 +7767,7 @@


- [View source] + [View source]
@@ -7783,7 +7783,7 @@


- [View source] + [View source]
@@ -7799,7 +7799,7 @@


- [View source] + [View source]
@@ -7815,7 +7815,7 @@


- [View source] + [View source]
@@ -7831,7 +7831,7 @@


- [View source] + [View source]
@@ -7847,7 +7847,7 @@


- [View source] + [View source]
@@ -7863,7 +7863,7 @@


- [View source] + [View source]
@@ -7888,7 +7888,7 @@


- [View source] + [View source]
@@ -7904,7 +7904,7 @@


- [View source] + [View source]
@@ -7920,7 +7920,7 @@


- [View source] + [View source]
@@ -7936,7 +7936,7 @@


- [View source] + [View source]
@@ -7952,7 +7952,7 @@


- [View source] + [View source]
@@ -7968,7 +7968,7 @@


- [View source] + [View source]
@@ -7984,7 +7984,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8026,7 +8026,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/SerialControl/Command.html b/Sony/Projector/SerialControl/Command.html index da1ad3fcd4..8749f8174d 100644 --- a/Sony/Projector/SerialControl/Command.html +++ b/Sony/Projector/SerialControl/Command.html @@ -7317,7 +7317,7 @@

- + sony/projector/serial_control.cr @@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7613,7 +7613,7 @@


- [View source] + [View source]
@@ -7629,7 +7629,7 @@


- [View source] + [View source]
@@ -7645,7 +7645,7 @@


- [View source] + [View source]
@@ -7661,7 +7661,7 @@


- [View source] + [View source]
@@ -7677,7 +7677,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7709,7 +7709,7 @@


- [View source] + [View source]
@@ -7725,7 +7725,7 @@


- [View source] + [View source]
@@ -7741,7 +7741,7 @@


- [View source] + [View source]
@@ -7757,7 +7757,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/SerialControl/Input.html b/Sony/Projector/SerialControl/Input.html index bbc6befbeb..870af581fc 100644 --- a/Sony/Projector/SerialControl/Input.html +++ b/Sony/Projector/SerialControl/Input.html @@ -7317,7 +7317,7 @@

- + sony/projector/serial_control.cr @@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
@@ -7659,7 +7659,7 @@


- [View source] + [View source]
@@ -7675,7 +7675,7 @@


- [View source] + [View source]
diff --git a/Sony/Projector/SerialControl/Type.html b/Sony/Projector/SerialControl/Type.html index b94cfb68b8..a2535db3f1 100644 --- a/Sony/Projector/SerialControl/Type.html +++ b/Sony/Projector/SerialControl/Type.html @@ -7317,7 +7317,7 @@

- + sony/projector/serial_control.cr @@ -7465,7 +7465,7 @@


- [View source] + [View source]
@@ -7481,7 +7481,7 @@


- [View source] + [View source]
diff --git a/Steinel.html b/Steinel.html index 902774cad9..cd122d19d6 100644 --- a/Steinel.html +++ b/Steinel.html @@ -7317,7 +7317,7 @@

- + steinel/hpd2.cr diff --git a/Steinel/HPD2.html b/Steinel/HPD2.html index d409216159..387d87c34d 100644 --- a/Steinel/HPD2.html +++ b/Steinel/HPD2.html @@ -7333,7 +7333,7 @@

- + steinel/hpd2.cr @@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
diff --git a/Steinel/HPD2/SensorStatus.html b/Steinel/HPD2/SensorStatus.html index 89826c15ee..206d64ab3d 100644 --- a/Steinel/HPD2/SensorStatus.html +++ b/Steinel/HPD2/SensorStatus.html @@ -7347,7 +7347,7 @@

- + steinel/hpd2.cr @@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
@@ -8021,7 +8021,7 @@


- [View source] + [View source]
@@ -8037,7 +8037,7 @@


- [View source] + [View source]
@@ -8053,7 +8053,7 @@


- [View source] + [View source]
@@ -8069,7 +8069,7 @@


- [View source] + [View source]
@@ -8085,7 +8085,7 @@


- [View source] + [View source]
@@ -8101,7 +8101,7 @@


- [View source] + [View source]
@@ -8117,7 +8117,7 @@


- [View source] + [View source]
@@ -8133,7 +8133,7 @@


- [View source] + [View source]
@@ -8149,7 +8149,7 @@


- [View source] + [View source]
@@ -8165,7 +8165,7 @@


- [View source] + [View source]
@@ -8181,7 +8181,7 @@


- [View source] + [View source]
@@ -8197,7 +8197,7 @@


- [View source] + [View source]
@@ -8213,7 +8213,7 @@


- [View source] + [View source]
@@ -8229,7 +8229,7 @@


- [View source] + [View source]
@@ -8245,7 +8245,7 @@


- [View source] + [View source]
@@ -8261,7 +8261,7 @@


- [View source] + [View source]
@@ -8277,7 +8277,7 @@


- [View source] + [View source]
@@ -8293,7 +8293,7 @@


- [View source] + [View source]
@@ -8309,7 +8309,7 @@


- [View source] + [View source]
@@ -8325,7 +8325,7 @@


- [View source] + [View source]
@@ -8341,7 +8341,7 @@


- [View source] + [View source]
@@ -8357,7 +8357,7 @@


- [View source] + [View source]
@@ -8373,7 +8373,7 @@


- [View source] + [View source]
@@ -8389,7 +8389,7 @@


- [View source] + [View source]
@@ -8405,7 +8405,7 @@


- [View source] + [View source]
@@ -8421,7 +8421,7 @@


- [View source] + [View source]
@@ -8437,7 +8437,7 @@


- [View source] + [View source]
@@ -8453,7 +8453,7 @@


- [View source] + [View source]
@@ -8469,7 +8469,7 @@


- [View source] + [View source]
@@ -8485,7 +8485,7 @@


- [View source] + [View source]
@@ -8501,7 +8501,7 @@


- [View source] + [View source]
@@ -8517,7 +8517,7 @@


- [View source] + [View source]
@@ -8533,7 +8533,7 @@


- [View source] + [View source]
@@ -8549,7 +8549,7 @@


- [View source] + [View source]
@@ -8565,7 +8565,7 @@


- [View source] + [View source]
@@ -8581,7 +8581,7 @@


- [View source] + [View source]
@@ -8597,7 +8597,7 @@


- [View source] + [View source]
@@ -8613,7 +8613,7 @@


- [View source] + [View source]
@@ -8629,7 +8629,7 @@


- [View source] + [View source]
@@ -8645,7 +8645,7 @@


- [View source] + [View source]
@@ -8661,7 +8661,7 @@


- [View source] + [View source]
@@ -8677,7 +8677,7 @@


- [View source] + [View source]
@@ -8693,7 +8693,7 @@


- [View source] + [View source]
diff --git a/Steinel/HPD2/SensorType.html b/Steinel/HPD2/SensorType.html index 69421c8b29..7a485d09fc 100644 --- a/Steinel/HPD2/SensorType.html +++ b/Steinel/HPD2/SensorType.html @@ -7327,7 +7327,7 @@

- + steinel/hpd2.cr diff --git a/Stripe.html b/Stripe.html index 2091cb34cf..261f26afab 100644 --- a/Stripe.html +++ b/Stripe.html @@ -7317,7 +7317,7 @@

- + stripe/api.cr diff --git a/Stripe/API.html b/Stripe/API.html index d17c20ec91..0a73caf5f8 100644 --- a/Stripe/API.html +++ b/Stripe/API.html @@ -7319,7 +7319,7 @@

- + stripe/api.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
diff --git a/Stripe/API/Client.html b/Stripe/API/Client.html index a2f1fec4b0..3d105c5df7 100644 --- a/Stripe/API/Client.html +++ b/Stripe/API/Client.html @@ -7327,7 +7327,7 @@

- + stripe/api.cr diff --git a/TvOne.html b/TvOne.html index 2a26a7d718..e6d7316944 100644 --- a/TvOne.html +++ b/TvOne.html @@ -7317,7 +7317,7 @@

- + tv_one/corio_master.cr diff --git a/TvOne/CorioMaster.html b/TvOne/CorioMaster.html index dff2ed747a..b9903c9e64 100644 --- a/TvOne/CorioMaster.html +++ b/TvOne/CorioMaster.html @@ -7319,7 +7319,7 @@

- + tv_one/corio_master.cr @@ -7516,7 +7516,7 @@


- [View source] + [View source]
@@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7548,7 +7548,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
diff --git a/TvOne/CorioMaster/PresetList.html b/TvOne/CorioMaster/PresetList.html index 3e212ca994..88c690968f 100644 --- a/TvOne/CorioMaster/PresetList.html +++ b/TvOne/CorioMaster/PresetList.html @@ -7327,7 +7327,7 @@

- + tv_one/corio_master.cr diff --git a/TwentyFiveLivePro.html b/TwentyFiveLivePro.html index 6d2de4a21f..325a10252f 100644 --- a/TwentyFiveLivePro.html +++ b/TwentyFiveLivePro.html @@ -7317,224 +7317,224 @@

- + twenty_five_live_pro/api.cr
- + twenty_five_live_pro/models/attribute.cr
- + twenty_five_live_pro/models/availability.cr
- + twenty_five_live_pro/models/category.cr
- + twenty_five_live_pro/models/date.cr
- + twenty_five_live_pro/models/event.cr
- + twenty_five_live_pro/models/event_detail.cr
- + twenty_five_live_pro/models/expanded/attribute.cr
- + twenty_five_live_pro/models/expanded/category.cr
- + twenty_five_live_pro/models/expanded/conflict.cr
- + twenty_five_live_pro/models/expanded/contact.cr
- + twenty_five_live_pro/models/expanded/event_type.cr
- + twenty_five_live_pro/models/expanded/feature.cr
- + twenty_five_live_pro/models/expanded/layout.cr
- + twenty_five_live_pro/models/expanded/organization.cr
- + twenty_five_live_pro/models/expanded/organization_type.cr
- + twenty_five_live_pro/models/expanded/parent_node.cr
- + twenty_five_live_pro/models/expanded/resource.cr
- + twenty_five_live_pro/models/expanded/role.cr
- + twenty_five_live_pro/models/expanded/space.cr
- + twenty_five_live_pro/models/expanded/state.cr
- + twenty_five_live_pro/models/feature.cr
- + twenty_five_live_pro/models/layout.cr
- + twenty_five_live_pro/models/organization.cr
- + twenty_five_live_pro/models/organization_detail.cr
- + twenty_five_live_pro/models/paginated_response.cr
- + twenty_five_live_pro/models/reservations.cr
- + twenty_five_live_pro/models/resource.cr
- + twenty_five_live_pro/models/resource_detail.cr
- + twenty_five_live_pro/models/role.cr
- + twenty_five_live_pro/models/space.cr
- + twenty_five_live_pro/models/space_detail.cr diff --git a/TwentyFiveLivePro/API.html b/TwentyFiveLivePro/API.html index 901b24cb94..3d2690ccc5 100644 --- a/TwentyFiveLivePro/API.html +++ b/TwentyFiveLivePro/API.html @@ -7319,7 +7319,7 @@

- + twenty_five_live_pro/api.cr @@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Date.html b/TwentyFiveLivePro/Date.html index e1350e515c..bc8700ded9 100644 --- a/TwentyFiveLivePro/Date.html +++ b/TwentyFiveLivePro/Date.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/date.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Date/Converter.html b/TwentyFiveLivePro/Date/Converter.html index 5dd7e53a6c..76fd8db491 100644 --- a/TwentyFiveLivePro/Date/Converter.html +++ b/TwentyFiveLivePro/Date/Converter.html @@ -7331,7 +7331,7 @@

- + twenty_five_live_pro/models/date.cr @@ -7403,7 +7403,7 @@


- [View source] + [View source]
@@ -7419,7 +7419,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models.html b/TwentyFiveLivePro/Models.html index 89c176470d..532999986e 100644 --- a/TwentyFiveLivePro/Models.html +++ b/TwentyFiveLivePro/Models.html @@ -7317,210 +7317,210 @@

- + twenty_five_live_pro/models/attribute.cr
- + twenty_five_live_pro/models/availability.cr
- + twenty_five_live_pro/models/category.cr
- + twenty_five_live_pro/models/event.cr
- + twenty_five_live_pro/models/event_detail.cr
- + twenty_five_live_pro/models/expanded/attribute.cr
- + twenty_five_live_pro/models/expanded/category.cr
- + twenty_five_live_pro/models/expanded/conflict.cr
- + twenty_five_live_pro/models/expanded/contact.cr
- + twenty_five_live_pro/models/expanded/event_type.cr
- + twenty_five_live_pro/models/expanded/feature.cr
- + twenty_five_live_pro/models/expanded/layout.cr
- + twenty_five_live_pro/models/expanded/organization.cr
- + twenty_five_live_pro/models/expanded/organization_type.cr
- + twenty_five_live_pro/models/expanded/parent_node.cr
- + twenty_five_live_pro/models/expanded/resource.cr
- + twenty_five_live_pro/models/expanded/role.cr
- + twenty_five_live_pro/models/expanded/space.cr
- + twenty_five_live_pro/models/expanded/state.cr
- + twenty_five_live_pro/models/feature.cr
- + twenty_five_live_pro/models/layout.cr
- + twenty_five_live_pro/models/organization.cr
- + twenty_five_live_pro/models/organization_detail.cr
- + twenty_five_live_pro/models/paginated_response.cr
- + twenty_five_live_pro/models/reservations.cr
- + twenty_five_live_pro/models/resource.cr
- + twenty_five_live_pro/models/resource_detail.cr
- + twenty_five_live_pro/models/role.cr
- + twenty_five_live_pro/models/space.cr
- + twenty_five_live_pro/models/space_detail.cr @@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Attribute.html b/TwentyFiveLivePro/Models/Attribute.html index 373680c52a..63f5ff6442 100644 --- a/TwentyFiveLivePro/Models/Attribute.html +++ b/TwentyFiveLivePro/Models/Attribute.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/attribute.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Availability.html b/TwentyFiveLivePro/Models/Availability.html index 46b7a18a79..37701457b8 100644 --- a/TwentyFiveLivePro/Models/Availability.html +++ b/TwentyFiveLivePro/Models/Availability.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/availability.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Availability/Content.html b/TwentyFiveLivePro/Models/Availability/Content.html index 9a31d26d85..6b049fa5ab 100644 --- a/TwentyFiveLivePro/Models/Availability/Content.html +++ b/TwentyFiveLivePro/Models/Availability/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/availability.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Availability/Content/Data.html b/TwentyFiveLivePro/Models/Availability/Content/Data.html index 53b2e66c59..661529defc 100644 --- a/TwentyFiveLivePro/Models/Availability/Content/Data.html +++ b/TwentyFiveLivePro/Models/Availability/Content/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/availability.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Availability/Content/Data/Space.html b/TwentyFiveLivePro/Models/Availability/Content/Data/Space.html index 116d801306..2a0ee85a20 100644 --- a/TwentyFiveLivePro/Models/Availability/Content/Data/Space.html +++ b/TwentyFiveLivePro/Models/Availability/Content/Data/Space.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/availability.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html b/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html index e92d50fe31..bb102be52b 100644 --- a/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html +++ b/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/availability.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Category.html b/TwentyFiveLivePro/Models/Category.html index 5504fd6a55..29d8c0ec8f 100644 --- a/TwentyFiveLivePro/Models/Category.html +++ b/TwentyFiveLivePro/Models/Category.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/category.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Event.html b/TwentyFiveLivePro/Models/Event.html index 25d2b53603..7ca9b1798f 100644 --- a/TwentyFiveLivePro/Models/Event.html +++ b/TwentyFiveLivePro/Models/Event.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event.cr @@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/EventDetail.html b/TwentyFiveLivePro/Models/EventDetail.html index e479d3fc59..13148e0620 100644 --- a/TwentyFiveLivePro/Models/EventDetail.html +++ b/TwentyFiveLivePro/Models/EventDetail.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/EventDetail/Content.html b/TwentyFiveLivePro/Models/EventDetail/Content.html index 966720f387..988be5f48b 100644 --- a/TwentyFiveLivePro/Models/EventDetail/Content.html +++ b/TwentyFiveLivePro/Models/EventDetail/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event_detail.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/EventDetail/Content/Data.html b/TwentyFiveLivePro/Models/EventDetail/Content/Data.html index b451281ae7..d5139f0246 100644 --- a/TwentyFiveLivePro/Models/EventDetail/Content/Data.html +++ b/TwentyFiveLivePro/Models/EventDetail/Content/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html b/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html index c40abf1f45..f14d93eb93 100644 --- a/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html +++ b/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event_detail.cr @@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html b/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html index 89cafd96a1..cde10797d6 100644 --- a/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html +++ b/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/event_detail.cr @@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7594,7 +7594,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7690,7 +7690,7 @@


- [View source] + [View source]
@@ -7706,7 +7706,7 @@


- [View source] + [View source]
@@ -7722,7 +7722,7 @@


- [View source] + [View source]
@@ -7738,7 +7738,7 @@


- [View source] + [View source]
@@ -7754,7 +7754,7 @@


- [View source] + [View source]
@@ -7770,7 +7770,7 @@


- [View source] + [View source]
@@ -7786,7 +7786,7 @@


- [View source] + [View source]
@@ -7802,7 +7802,7 @@


- [View source] + [View source]
@@ -7818,7 +7818,7 @@


- [View source] + [View source]
@@ -7834,7 +7834,7 @@


- [View source] + [View source]
@@ -7850,7 +7850,7 @@


- [View source] + [View source]
@@ -7866,7 +7866,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded.html b/TwentyFiveLivePro/Models/Expanded.html index 34cfae14b4..b28fb1d76c 100644 --- a/TwentyFiveLivePro/Models/Expanded.html +++ b/TwentyFiveLivePro/Models/Expanded.html @@ -7317,98 +7317,98 @@

- + twenty_five_live_pro/models/expanded/attribute.cr
- + twenty_five_live_pro/models/expanded/category.cr
- + twenty_five_live_pro/models/expanded/conflict.cr
- + twenty_five_live_pro/models/expanded/contact.cr
- + twenty_five_live_pro/models/expanded/event_type.cr
- + twenty_five_live_pro/models/expanded/feature.cr
- + twenty_five_live_pro/models/expanded/layout.cr
- + twenty_five_live_pro/models/expanded/organization.cr
- + twenty_five_live_pro/models/expanded/organization_type.cr
- + twenty_five_live_pro/models/expanded/parent_node.cr
- + twenty_five_live_pro/models/expanded/resource.cr
- + twenty_five_live_pro/models/expanded/role.cr
- + twenty_five_live_pro/models/expanded/space.cr
- + twenty_five_live_pro/models/expanded/state.cr diff --git a/TwentyFiveLivePro/Models/Expanded/Attribute.html b/TwentyFiveLivePro/Models/Expanded/Attribute.html index 4ec38b074e..572144b1be 100644 --- a/TwentyFiveLivePro/Models/Expanded/Attribute.html +++ b/TwentyFiveLivePro/Models/Expanded/Attribute.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/attribute.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Category.html b/TwentyFiveLivePro/Models/Expanded/Category.html index 3eb6f5c07d..b52ffb1f15 100644 --- a/TwentyFiveLivePro/Models/Expanded/Category.html +++ b/TwentyFiveLivePro/Models/Expanded/Category.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/category.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Conflict.html b/TwentyFiveLivePro/Models/Expanded/Conflict.html index 2ad390bd12..01e5501343 100644 --- a/TwentyFiveLivePro/Models/Expanded/Conflict.html +++ b/TwentyFiveLivePro/Models/Expanded/Conflict.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/conflict.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Contact.html b/TwentyFiveLivePro/Models/Expanded/Contact.html index 201d756f0f..3d90a98790 100644 --- a/TwentyFiveLivePro/Models/Expanded/Contact.html +++ b/TwentyFiveLivePro/Models/Expanded/Contact.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/contact.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/EventType.html b/TwentyFiveLivePro/Models/Expanded/EventType.html index 80366ff0b2..55a000eceb 100644 --- a/TwentyFiveLivePro/Models/Expanded/EventType.html +++ b/TwentyFiveLivePro/Models/Expanded/EventType.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/event_type.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Feature.html b/TwentyFiveLivePro/Models/Expanded/Feature.html index 9ada1ad558..f4305582de 100644 --- a/TwentyFiveLivePro/Models/Expanded/Feature.html +++ b/TwentyFiveLivePro/Models/Expanded/Feature.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/feature.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Layout.html b/TwentyFiveLivePro/Models/Expanded/Layout.html index ad0dcfd6e4..20600f05cf 100644 --- a/TwentyFiveLivePro/Models/Expanded/Layout.html +++ b/TwentyFiveLivePro/Models/Expanded/Layout.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/layout.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Organization.html b/TwentyFiveLivePro/Models/Expanded/Organization.html index 7cd1825e5e..322680e02a 100644 --- a/TwentyFiveLivePro/Models/Expanded/Organization.html +++ b/TwentyFiveLivePro/Models/Expanded/Organization.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/organization.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/OrganizationType.html b/TwentyFiveLivePro/Models/Expanded/OrganizationType.html index 82c7f5f5da..706f6cefd3 100644 --- a/TwentyFiveLivePro/Models/Expanded/OrganizationType.html +++ b/TwentyFiveLivePro/Models/Expanded/OrganizationType.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/organization_type.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/ParentNode.html b/TwentyFiveLivePro/Models/Expanded/ParentNode.html index 4fa1348a47..1f7a560090 100644 --- a/TwentyFiveLivePro/Models/Expanded/ParentNode.html +++ b/TwentyFiveLivePro/Models/Expanded/ParentNode.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/parent_node.cr @@ -7552,7 +7552,7 @@


- [View source] + [View source]
@@ -7584,7 +7584,7 @@


- [View source] + [View source]
@@ -7600,7 +7600,7 @@


- [View source] + [View source]
@@ -7616,7 +7616,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@


- [View source] + [View source]
@@ -7648,7 +7648,7 @@


- [View source] + [View source]
@@ -7664,7 +7664,7 @@


- [View source] + [View source]
@@ -7680,7 +7680,7 @@


- [View source] + [View source]
@@ -7696,7 +7696,7 @@


- [View source] + [View source]
@@ -7712,7 +7712,7 @@


- [View source] + [View source]
@@ -7728,7 +7728,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
@@ -7760,7 +7760,7 @@


- [View source] + [View source]
@@ -7776,7 +7776,7 @@


- [View source] + [View source]
@@ -7792,7 +7792,7 @@


- [View source] + [View source]
@@ -7808,7 +7808,7 @@


- [View source] + [View source]
@@ -7824,7 +7824,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Resource.html b/TwentyFiveLivePro/Models/Expanded/Resource.html index dbc896111f..1df56d525a 100644 --- a/TwentyFiveLivePro/Models/Expanded/Resource.html +++ b/TwentyFiveLivePro/Models/Expanded/Resource.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/resource.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Role.html b/TwentyFiveLivePro/Models/Expanded/Role.html index 1dc3f91dfb..2ac6b8e8d3 100644 --- a/TwentyFiveLivePro/Models/Expanded/Role.html +++ b/TwentyFiveLivePro/Models/Expanded/Role.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/role.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/Space.html b/TwentyFiveLivePro/Models/Expanded/Space.html index 0c23b32d04..126e6dbf0f 100644 --- a/TwentyFiveLivePro/Models/Expanded/Space.html +++ b/TwentyFiveLivePro/Models/Expanded/Space.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/space.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Expanded/State.html b/TwentyFiveLivePro/Models/Expanded/State.html index e57144cc29..82e463bc39 100644 --- a/TwentyFiveLivePro/Models/Expanded/State.html +++ b/TwentyFiveLivePro/Models/Expanded/State.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/expanded/state.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Feature.html b/TwentyFiveLivePro/Models/Feature.html index 44d0fb0e2b..bf733f6ab8 100644 --- a/TwentyFiveLivePro/Models/Feature.html +++ b/TwentyFiveLivePro/Models/Feature.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/feature.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Layout.html b/TwentyFiveLivePro/Models/Layout.html index ae9b142fd0..c117e673db 100644 --- a/TwentyFiveLivePro/Models/Layout.html +++ b/TwentyFiveLivePro/Models/Layout.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/layout.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Organization.html b/TwentyFiveLivePro/Models/Organization.html index 8e7f71cf3f..c3e903db7e 100644 --- a/TwentyFiveLivePro/Models/Organization.html +++ b/TwentyFiveLivePro/Models/Organization.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/OrganizationDetail.html b/TwentyFiveLivePro/Models/OrganizationDetail.html index 739c987bec..e4d1fffe51 100644 --- a/TwentyFiveLivePro/Models/OrganizationDetail.html +++ b/TwentyFiveLivePro/Models/OrganizationDetail.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/OrganizationDetail/Content.html b/TwentyFiveLivePro/Models/OrganizationDetail/Content.html index 9d3dffbf2a..31c9284477 100644 --- a/TwentyFiveLivePro/Models/OrganizationDetail/Content.html +++ b/TwentyFiveLivePro/Models/OrganizationDetail/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization_detail.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html b/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html index 1cabc4adab..056348f338 100644 --- a/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html +++ b/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html b/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html index 66e566c245..267e7cc6d9 100644 --- a/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html +++ b/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization_detail.cr @@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html b/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html index 77f8261543..f4832cb45b 100644 --- a/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html +++ b/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/organization_detail.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/PaginatedResponse.html b/TwentyFiveLivePro/Models/PaginatedResponse.html index 7aa2e82785..2963c68064 100644 --- a/TwentyFiveLivePro/Models/PaginatedResponse.html +++ b/TwentyFiveLivePro/Models/PaginatedResponse.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/paginated_response.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/PaginatedResponse/Content.html b/TwentyFiveLivePro/Models/PaginatedResponse/Content.html index 062b98c1cf..72ce91323a 100644 --- a/TwentyFiveLivePro/Models/PaginatedResponse/Content.html +++ b/TwentyFiveLivePro/Models/PaginatedResponse/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/paginated_response.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html b/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html index 6967f22538..b558bf9e3e 100644 --- a/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html +++ b/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html @@ -7349,7 +7349,7 @@

- + twenty_five_live_pro/models/paginated_response.cr @@ -7557,7 +7557,7 @@


- [View source] + [View source]
@@ -7589,7 +7589,7 @@


- [View source] + [View source]
@@ -7605,7 +7605,7 @@


- [View source] + [View source]
@@ -7621,7 +7621,7 @@


- [View source] + [View source]
@@ -7637,7 +7637,7 @@


- [View source] + [View source]
@@ -7653,7 +7653,7 @@


- [View source] + [View source]
@@ -7669,7 +7669,7 @@


- [View source] + [View source]
@@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Reservations.html b/TwentyFiveLivePro/Models/Reservations.html index 5c200d7539..9825ef3f82 100644 --- a/TwentyFiveLivePro/Models/Reservations.html +++ b/TwentyFiveLivePro/Models/Reservations.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/reservations.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Reservations/Data.html b/TwentyFiveLivePro/Models/Reservations/Data.html index 351aaa857d..26834f3b84 100644 --- a/TwentyFiveLivePro/Models/Reservations/Data.html +++ b/TwentyFiveLivePro/Models/Reservations/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/reservations.cr @@ -7762,7 +7762,7 @@


- [View source] + [View source]
@@ -7794,7 +7794,7 @@


- [View source] + [View source]
@@ -7810,7 +7810,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7858,7 +7858,7 @@


- [View source] + [View source]
@@ -7874,7 +7874,7 @@


- [View source] + [View source]
@@ -7890,7 +7890,7 @@


- [View source] + [View source]
@@ -7906,7 +7906,7 @@


- [View source] + [View source]
@@ -7922,7 +7922,7 @@


- [View source] + [View source]
@@ -7938,7 +7938,7 @@


- [View source] + [View source]
@@ -7954,7 +7954,7 @@


- [View source] + [View source]
@@ -7970,7 +7970,7 @@


- [View source] + [View source]
@@ -7986,7 +7986,7 @@


- [View source] + [View source]
@@ -8002,7 +8002,7 @@


- [View source] + [View source]
@@ -8018,7 +8018,7 @@


- [View source] + [View source]
@@ -8034,7 +8034,7 @@


- [View source] + [View source]
@@ -8050,7 +8050,7 @@


- [View source] + [View source]
@@ -8066,7 +8066,7 @@


- [View source] + [View source]
@@ -8082,7 +8082,7 @@


- [View source] + [View source]
@@ -8098,7 +8098,7 @@


- [View source] + [View source]
@@ -8114,7 +8114,7 @@


- [View source] + [View source]
@@ -8130,7 +8130,7 @@


- [View source] + [View source]
@@ -8146,7 +8146,7 @@


- [View source] + [View source]
@@ -8162,7 +8162,7 @@


- [View source] + [View source]
@@ -8178,7 +8178,7 @@


- [View source] + [View source]
@@ -8194,7 +8194,7 @@


- [View source] + [View source]
@@ -8210,7 +8210,7 @@


- [View source] + [View source]
@@ -8226,7 +8226,7 @@


- [View source] + [View source]
@@ -8242,7 +8242,7 @@


- [View source] + [View source]
@@ -8258,7 +8258,7 @@


- [View source] + [View source]
@@ -8274,7 +8274,7 @@


- [View source] + [View source]
@@ -8290,7 +8290,7 @@


- [View source] + [View source]
@@ -8306,7 +8306,7 @@


- [View source] + [View source]
@@ -8322,7 +8322,7 @@


- [View source] + [View source]
@@ -8338,7 +8338,7 @@


- [View source] + [View source]
@@ -8354,7 +8354,7 @@


- [View source] + [View source]
@@ -8370,7 +8370,7 @@


- [View source] + [View source]
@@ -8386,7 +8386,7 @@


- [View source] + [View source]
@@ -8402,7 +8402,7 @@


- [View source] + [View source]
@@ -8418,7 +8418,7 @@


- [View source] + [View source]
@@ -8434,7 +8434,7 @@


- [View source] + [View source]
@@ -8450,7 +8450,7 @@


- [View source] + [View source]
@@ -8466,7 +8466,7 @@


- [View source] + [View source]
@@ -8482,7 +8482,7 @@


- [View source] + [View source]
@@ -8498,7 +8498,7 @@


- [View source] + [View source]
@@ -8514,7 +8514,7 @@


- [View source] + [View source]
@@ -8530,7 +8530,7 @@


- [View source] + [View source]
@@ -8546,7 +8546,7 @@


- [View source] + [View source]
@@ -8562,7 +8562,7 @@


- [View source] + [View source]
@@ -8578,7 +8578,7 @@


- [View source] + [View source]
@@ -8594,7 +8594,7 @@


- [View source] + [View source]
@@ -8610,7 +8610,7 @@


- [View source] + [View source]
@@ -8626,7 +8626,7 @@


- [View source] + [View source]
@@ -8642,7 +8642,7 @@


- [View source] + [View source]
@@ -8658,7 +8658,7 @@


- [View source] + [View source]
@@ -8674,7 +8674,7 @@


- [View source] + [View source]
@@ -8690,7 +8690,7 @@


- [View source] + [View source]
@@ -8706,7 +8706,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Reservations/Data/Space.html b/TwentyFiveLivePro/Models/Reservations/Data/Space.html index 16c41fb72c..e43dd9543d 100644 --- a/TwentyFiveLivePro/Models/Reservations/Data/Space.html +++ b/TwentyFiveLivePro/Models/Reservations/Data/Space.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/reservations.cr @@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7646,7 +7646,7 @@


- [View source] + [View source]
@@ -7662,7 +7662,7 @@


- [View source] + [View source]
@@ -7678,7 +7678,7 @@


- [View source] + [View source]
@@ -7694,7 +7694,7 @@


- [View source] + [View source]
@@ -7710,7 +7710,7 @@


- [View source] + [View source]
@@ -7726,7 +7726,7 @@


- [View source] + [View source]
@@ -7742,7 +7742,7 @@


- [View source] + [View source]
@@ -7758,7 +7758,7 @@


- [View source] + [View source]
@@ -7774,7 +7774,7 @@


- [View source] + [View source]
@@ -7790,7 +7790,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7870,7 +7870,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7918,7 +7918,7 @@


- [View source] + [View source]
@@ -7934,7 +7934,7 @@


- [View source] + [View source]
@@ -7950,7 +7950,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Resource.html b/TwentyFiveLivePro/Models/Resource.html index 6167460faa..3ba92024bb 100644 --- a/TwentyFiveLivePro/Models/Resource.html +++ b/TwentyFiveLivePro/Models/Resource.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/ResourceDetail.html b/TwentyFiveLivePro/Models/ResourceDetail.html index 448befbb28..f76b6d1920 100644 --- a/TwentyFiveLivePro/Models/ResourceDetail.html +++ b/TwentyFiveLivePro/Models/ResourceDetail.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/ResourceDetail/Content.html b/TwentyFiveLivePro/Models/ResourceDetail/Content.html index d6eb56e83c..6d3f1c7d11 100644 --- a/TwentyFiveLivePro/Models/ResourceDetail/Content.html +++ b/TwentyFiveLivePro/Models/ResourceDetail/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource_detail.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html b/TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html index 00b665b291..f187da0dde 100644 --- a/TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html +++ b/TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html b/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html index c0dc149fe0..7e41f82312 100644 --- a/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html +++ b/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource_detail.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html b/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html index e3660659a8..7478fdc905 100644 --- a/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html +++ b/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/resource_detail.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Role.html b/TwentyFiveLivePro/Models/Role.html index 319ac5e5b0..6cb0386ed3 100644 --- a/TwentyFiveLivePro/Models/Role.html +++ b/TwentyFiveLivePro/Models/Role.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/role.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/Space.html b/TwentyFiveLivePro/Models/Space.html index 017ebd9ee6..8fa10f38fa 100644 --- a/TwentyFiveLivePro/Models/Space.html +++ b/TwentyFiveLivePro/Models/Space.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space.cr @@ -7542,7 +7542,7 @@


- [View source] + [View source]
@@ -7574,7 +7574,7 @@


- [View source] + [View source]
@@ -7590,7 +7590,7 @@


- [View source] + [View source]
@@ -7606,7 +7606,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
@@ -7718,7 +7718,7 @@


- [View source] + [View source]
@@ -7734,7 +7734,7 @@


- [View source] + [View source]
@@ -7750,7 +7750,7 @@


- [View source] + [View source]
@@ -7766,7 +7766,7 @@


- [View source] + [View source]
@@ -7782,7 +7782,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/SpaceDetail.html b/TwentyFiveLivePro/Models/SpaceDetail.html index f537abbcd5..938312d686 100644 --- a/TwentyFiveLivePro/Models/SpaceDetail.html +++ b/TwentyFiveLivePro/Models/SpaceDetail.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/SpaceDetail/Content.html b/TwentyFiveLivePro/Models/SpaceDetail/Content.html index b981a471bf..09646dcdb9 100644 --- a/TwentyFiveLivePro/Models/SpaceDetail/Content.html +++ b/TwentyFiveLivePro/Models/SpaceDetail/Content.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space_detail.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html b/TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html index 52a669b207..ba81a6913c 100644 --- a/TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html +++ b/TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space_detail.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html b/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html index 5183364c51..4ee016ee26 100644 --- a/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html +++ b/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space_detail.cr @@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7688,7 +7688,7 @@


- [View source] + [View source]
@@ -7704,7 +7704,7 @@


- [View source] + [View source]
@@ -7720,7 +7720,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
@@ -7752,7 +7752,7 @@


- [View source] + [View source]
@@ -7768,7 +7768,7 @@


- [View source] + [View source]
@@ -7784,7 +7784,7 @@


- [View source] + [View source]
@@ -7800,7 +7800,7 @@


- [View source] + [View source]
@@ -7816,7 +7816,7 @@


- [View source] + [View source]
@@ -7832,7 +7832,7 @@


- [View source] + [View source]
@@ -7848,7 +7848,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7880,7 +7880,7 @@


- [View source] + [View source]
@@ -7896,7 +7896,7 @@


- [View source] + [View source]
@@ -7912,7 +7912,7 @@


- [View source] + [View source]
@@ -7928,7 +7928,7 @@


- [View source] + [View source]
@@ -7944,7 +7944,7 @@


- [View source] + [View source]
@@ -7960,7 +7960,7 @@


- [View source] + [View source]
@@ -7976,7 +7976,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html b/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html index c4a3c5dea3..b8003d5b70 100644 --- a/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html +++ b/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html @@ -7347,7 +7347,7 @@

- + twenty_five_live_pro/models/space_detail.cr @@ -7532,7 +7532,7 @@


- [View source] + [View source]
@@ -7564,7 +7564,7 @@


- [View source] + [View source]
@@ -7580,7 +7580,7 @@


- [View source] + [View source]
@@ -7596,7 +7596,7 @@


- [View source] + [View source]
@@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7628,7 +7628,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
diff --git a/TwentyFiveLivePro/RoomSchedule.html b/TwentyFiveLivePro/RoomSchedule.html index 08592f84b6..e539b7c6cf 100644 --- a/TwentyFiveLivePro/RoomSchedule.html +++ b/TwentyFiveLivePro/RoomSchedule.html @@ -7319,7 +7319,7 @@

- + twenty_five_live_pro/room_schedule.cr @@ -7476,7 +7476,7 @@


- [View source] + [View source]
@@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7508,7 +7508,7 @@


- [View source] + [View source]
diff --git a/UbiPark.html b/UbiPark.html index 88703d1b0f..a5b42d91a2 100644 --- a/UbiPark.html +++ b/UbiPark.html @@ -7317,7 +7317,7 @@

- + ubipark/api.cr diff --git a/UbiPark/API.html b/UbiPark/API.html index bf21449bea..37157ae890 100644 --- a/UbiPark/API.html +++ b/UbiPark/API.html @@ -7319,7 +7319,7 @@

- + ubipark/api.cr @@ -7496,7 +7496,7 @@


- [View source] + [View source]
@@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7528,7 +7528,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
diff --git a/Union.html b/Union.html index cd9b6c7363..d2cfd9d106 100644 --- a/Union.html +++ b/Union.html @@ -7330,14 +7330,14 @@

- + lib/http-params-serializable/src/http-params-serializable/ext/union.cr
- + place/router/settings.cr @@ -7426,7 +7426,7 @@


- [View source] + [View source]
diff --git a/Vecos.html b/Vecos.html index 97558c5e11..3287627a25 100644 --- a/Vecos.html +++ b/Vecos.html @@ -7317,77 +7317,77 @@

- + vecos/releezme/allocation.cr
- + vecos/releezme/booking.cr
- + vecos/releezme/location.cr
- + vecos/releezme/locker.cr
- + vecos/releezme/locker_bank.cr
- + vecos/releezme/locker_bank_and_locker_group.cr
- + vecos/releezme/locker_group.cr
- + vecos/releezme/locker_group_status.cr
- + vecos/releezme/locker_users.cr
- + vecos/releezme/paging.cr
- + vecos/releezme/section.cr diff --git a/Vecos/Allocation.html b/Vecos/Allocation.html index 9637530d29..6ed0560ec7 100644 --- a/Vecos/Allocation.html +++ b/Vecos/Allocation.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/allocation.cr @@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
@@ -7615,7 +7615,7 @@


- [View source] + [View source]
@@ -7631,7 +7631,7 @@


- [View source] + [View source]
@@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
diff --git a/Vecos/Booking.html b/Vecos/Booking.html index 56622479ed..a5410c551b 100644 --- a/Vecos/Booking.html +++ b/Vecos/Booking.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/booking.cr @@ -7507,7 +7507,7 @@


- [View source] + [View source]
@@ -7539,7 +7539,7 @@


- [View source] + [View source]
@@ -7555,7 +7555,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
@@ -7587,7 +7587,7 @@


- [View source] + [View source]
@@ -7603,7 +7603,7 @@


- [View source] + [View source]
@@ -7619,7 +7619,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
diff --git a/Vecos/Location.html b/Vecos/Location.html index c57de81606..b85e42d6cd 100644 --- a/Vecos/Location.html +++ b/Vecos/Location.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/location.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Vecos/Locker.html b/Vecos/Locker.html index 7fe5424fb6..cea6e4d8a7 100644 --- a/Vecos/Locker.html +++ b/Vecos/Locker.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker.cr @@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7817,7 +7817,7 @@


- [View source] + [View source]
@@ -7833,7 +7833,7 @@


- [View source] + [View source]
@@ -7849,7 +7849,7 @@


- [View source] + [View source]
@@ -7865,7 +7865,7 @@


- [View source] + [View source]
@@ -7881,7 +7881,7 @@


- [View source] + [View source]
@@ -7897,7 +7897,7 @@


- [View source] + [View source]
@@ -7913,7 +7913,7 @@


- [View source] + [View source]
@@ -7929,7 +7929,7 @@


- [View source] + [View source]
diff --git a/Vecos/LockerBank.html b/Vecos/LockerBank.html index 366efc1972..088a2de98a 100644 --- a/Vecos/LockerBank.html +++ b/Vecos/LockerBank.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker_bank.cr @@ -7512,7 +7512,7 @@


- [View source] + [View source]
@@ -7544,7 +7544,7 @@


- [View source] + [View source]
@@ -7560,7 +7560,7 @@


- [View source] + [View source]
@@ -7576,7 +7576,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7624,7 +7624,7 @@


- [View source] + [View source]
@@ -7640,7 +7640,7 @@


- [View source] + [View source]
@@ -7656,7 +7656,7 @@


- [View source] + [View source]
diff --git a/Vecos/LockerBankAndLockerGroup.html b/Vecos/LockerBankAndLockerGroup.html index a28db7ff24..26393f2b39 100644 --- a/Vecos/LockerBankAndLockerGroup.html +++ b/Vecos/LockerBankAndLockerGroup.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker_bank_and_locker_group.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Vecos/LockerGroup.html b/Vecos/LockerGroup.html index 2e9c99d466..8d36538cc0 100644 --- a/Vecos/LockerGroup.html +++ b/Vecos/LockerGroup.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker_group.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Vecos/LockerGroupStatus.html b/Vecos/LockerGroupStatus.html index 0a9d1e192a..70a47d0067 100644 --- a/Vecos/LockerGroupStatus.html +++ b/Vecos/LockerGroupStatus.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker_group_status.cr @@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7601,7 +7601,7 @@


- [View source] + [View source]
@@ -7617,7 +7617,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@


- [View source] + [View source]
@@ -7649,7 +7649,7 @@


- [View source] + [View source]
@@ -7665,7 +7665,7 @@


- [View source] + [View source]
@@ -7681,7 +7681,7 @@


- [View source] + [View source]
@@ -7697,7 +7697,7 @@


- [View source] + [View source]
@@ -7713,7 +7713,7 @@


- [View source] + [View source]
@@ -7729,7 +7729,7 @@


- [View source] + [View source]
@@ -7745,7 +7745,7 @@


- [View source] + [View source]
@@ -7761,7 +7761,7 @@


- [View source] + [View source]
diff --git a/Vecos/LockerUsers.html b/Vecos/LockerUsers.html index fd8cfa571b..0b12ff5d63 100644 --- a/Vecos/LockerUsers.html +++ b/Vecos/LockerUsers.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/locker_users.cr @@ -7497,7 +7497,7 @@


- [View source] + [View source]
@@ -7529,7 +7529,7 @@


- [View source] + [View source]
@@ -7545,7 +7545,7 @@


- [View source] + [View source]
@@ -7561,7 +7561,7 @@


- [View source] + [View source]
@@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
diff --git a/Vecos/Paging.html b/Vecos/Paging.html index 8951282839..3bdd1eda9f 100644 --- a/Vecos/Paging.html +++ b/Vecos/Paging.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/paging.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/Vecos/Releezme.html b/Vecos/Releezme.html index 0b51959b6e..3a2a0dd43c 100644 --- a/Vecos/Releezme.html +++ b/Vecos/Releezme.html @@ -7319,7 +7319,7 @@

- + vecos/releezme.cr @@ -7647,7 +7647,7 @@


- [View source] + [View source]
@@ -7663,7 +7663,7 @@


- [View source] + [View source]
@@ -7679,7 +7679,7 @@


- [View source] + [View source]
@@ -7700,7 +7700,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7801,7 +7801,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7870,7 +7870,7 @@


- [View source] + [View source]
@@ -7886,7 +7886,7 @@


- [View source] + [View source]
@@ -7902,7 +7902,7 @@


- [View source] + [View source]
@@ -7918,7 +7918,7 @@


- [View source] + [View source]
@@ -7934,7 +7934,7 @@


- [View source] + [View source]
@@ -7950,7 +7950,7 @@


- [View source] + [View source]
@@ -7971,7 +7971,7 @@


- [View source] + [View source]
@@ -7992,7 +7992,7 @@


- [View source] + [View source]
@@ -8008,7 +8008,7 @@


- [View source] + [View source]
@@ -8024,7 +8024,7 @@


- [View source] + [View source]
@@ -8040,7 +8040,7 @@


- [View source] + [View source]
@@ -8056,7 +8056,7 @@


- [View source] + [View source]
@@ -8072,7 +8072,7 @@


- [View source] + [View source]
@@ -8094,7 +8094,7 @@


- [View source] + [View source]
@@ -8110,7 +8110,7 @@


- [View source] + [View source]
@@ -8126,7 +8126,7 @@


- [View source] + [View source]
@@ -8147,7 +8147,7 @@


- [View source] + [View source]
@@ -8163,7 +8163,7 @@


- [View source] + [View source]
@@ -8184,7 +8184,7 @@


- [View source] + [View source]
@@ -8200,7 +8200,7 @@


- [View source] + [View source]
@@ -8216,7 +8216,7 @@


- [View source] + [View source]
diff --git a/Vecos/ReleezmeLocations.html b/Vecos/ReleezmeLocations.html index 297f19cf40..5ca95c3400 100644 --- a/Vecos/ReleezmeLocations.html +++ b/Vecos/ReleezmeLocations.html @@ -7335,7 +7335,7 @@

- + vecos/releezme_locations.cr @@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7672,7 +7672,7 @@


- [View source] + [View source]
@@ -7693,7 +7693,7 @@


- [View source] + [View source]
@@ -7714,7 +7714,7 @@


- [View source] + [View source]
@@ -7735,7 +7735,7 @@


- [View source] + [View source]
@@ -7751,7 +7751,7 @@


- [View source] + [View source]
@@ -7773,7 +7773,7 @@


- [View source] + [View source]
@@ -7789,7 +7789,7 @@


- [View source] + [View source]
@@ -7805,7 +7805,7 @@


- [View source] + [View source]
@@ -7826,7 +7826,7 @@


- [View source] + [View source]
@@ -7842,7 +7842,7 @@


- [View source] + [View source]
@@ -7864,7 +7864,7 @@


- [View source] + [View source]
@@ -7880,7 +7880,7 @@


- [View source] + [View source]
diff --git a/Vecos/ReleezmeLocations/Mapping.html b/Vecos/ReleezmeLocations/Mapping.html index b5c5190a49..49007c8577 100644 --- a/Vecos/ReleezmeLocations/Mapping.html +++ b/Vecos/ReleezmeLocations/Mapping.html @@ -7347,7 +7347,7 @@

- + vecos/releezme_locations.cr @@ -7477,7 +7477,7 @@


- [View source] + [View source]
@@ -7509,7 +7509,7 @@


- [View source] + [View source]
diff --git a/Vecos/ReleezmeLocations/PlaceLocker.html b/Vecos/ReleezmeLocations/PlaceLocker.html index 76ef07eb7f..801dc02ae4 100644 --- a/Vecos/ReleezmeLocations/PlaceLocker.html +++ b/Vecos/ReleezmeLocations/PlaceLocker.html @@ -7327,7 +7327,7 @@

- + vecos/releezme_locations.cr diff --git a/Vecos/Section.html b/Vecos/Section.html index 9359e08f7c..65061b7978 100644 --- a/Vecos/Section.html +++ b/Vecos/Section.html @@ -7347,7 +7347,7 @@

- + vecos/releezme/section.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
diff --git a/Vergesense.html b/Vergesense.html index 262d700686..2b6dd906c6 100644 --- a/Vergesense.html +++ b/Vergesense.html @@ -7328,7 +7328,7 @@

- + vergesense/models.cr diff --git a/Vergesense/Building.html b/Vergesense/Building.html index c9160b73c0..bdc7479108 100644 --- a/Vergesense/Building.html +++ b/Vergesense/Building.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Vergesense/BuildingWithFloors.html b/Vergesense/BuildingWithFloors.html index 63d03cfda5..9daf4e14c3 100644 --- a/Vergesense/BuildingWithFloors.html +++ b/Vergesense/BuildingWithFloors.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Environment.html b/Vergesense/Environment.html index c10172a687..9f10cf0a85 100644 --- a/Vergesense/Environment.html +++ b/Vergesense/Environment.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Floor.html b/Vergesense/Floor.html index 69d8bd4cfe..344e2812c7 100644 --- a/Vergesense/Floor.html +++ b/Vergesense/Floor.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7522,7 +7522,7 @@


- [View source] + [View source]
@@ -7554,7 +7554,7 @@


- [View source] + [View source]
@@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7602,7 +7602,7 @@


- [View source] + [View source]
@@ -7618,7 +7618,7 @@


- [View source] + [View source]
@@ -7634,7 +7634,7 @@


- [View source] + [View source]
@@ -7650,7 +7650,7 @@


- [View source] + [View source]
@@ -7666,7 +7666,7 @@


- [View source] + [View source]
@@ -7682,7 +7682,7 @@


- [View source] + [View source]
@@ -7698,7 +7698,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Geometry.html b/Vergesense/Geometry.html index ed87bbf0c4..f61aedb007 100644 --- a/Vergesense/Geometry.html +++ b/Vergesense/Geometry.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Vergesense/LocationService.html b/Vergesense/LocationService.html index 3b29d64638..08bc32b305 100644 --- a/Vergesense/LocationService.html +++ b/Vergesense/LocationService.html @@ -7335,7 +7335,7 @@

- + vergesense/location_service.cr @@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7633,7 +7633,7 @@

View source] + [View source] @@ -7659,7 +7659,7 @@

View source] + [View source] @@ -7675,7 +7675,7 @@

View source] + [View source] @@ -7700,7 +7700,7 @@

View source] + [View source] @@ -7727,7 +7727,7 @@

View source] + [View source] diff --git a/Vergesense/MqttExport.html b/Vergesense/MqttExport.html index 405bccd24f..d1078fb9dd 100644 --- a/Vergesense/MqttExport.html +++ b/Vergesense/MqttExport.html @@ -7319,7 +7319,7 @@

- + vergesense/mqtt_export.cr @@ -7471,7 +7471,7 @@


- [View source] + [View source]
@@ -7487,7 +7487,7 @@


- [View source] + [View source]
diff --git a/Vergesense/People.html b/Vergesense/People.html index da7074a008..648fb11ca9 100644 --- a/Vergesense/People.html +++ b/Vergesense/People.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7482,7 +7482,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7530,7 +7530,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Report.html b/Vergesense/Report.html index 85568d5147..ef6812ef49 100644 --- a/Vergesense/Report.html +++ b/Vergesense/Report.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7502,7 +7502,7 @@


- [View source] + [View source]
@@ -7534,7 +7534,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
diff --git a/Vergesense/RoomSensor.html b/Vergesense/RoomSensor.html index 84073f9a55..7d674c0088 100644 --- a/Vergesense/RoomSensor.html +++ b/Vergesense/RoomSensor.html @@ -7333,7 +7333,7 @@

- + vergesense/room_sensor.cr @@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7608,7 +7608,7 @@


- [View source] + [View source]
@@ -7635,7 +7635,7 @@


- [View source] + [View source]
@@ -7651,7 +7651,7 @@


- [View source] + [View source]
@@ -7667,7 +7667,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Sensor.html b/Vergesense/Sensor.html index 67016c91d2..06dceb5239 100644 --- a/Vergesense/Sensor.html +++ b/Vergesense/Sensor.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
diff --git a/Vergesense/Space.html b/Vergesense/Space.html index 4f78fd63c5..6b097a353a 100644 --- a/Vergesense/Space.html +++ b/Vergesense/Space.html @@ -7347,7 +7347,7 @@

- + vergesense/models.cr @@ -7612,7 +7612,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7708,7 +7708,7 @@


- [View source] + [View source]
@@ -7724,7 +7724,7 @@


- [View source] + [View source]
@@ -7740,7 +7740,7 @@


- [View source] + [View source]
@@ -7756,7 +7756,7 @@


- [View source] + [View source]
@@ -7772,7 +7772,7 @@


- [View source] + [View source]
@@ -7788,7 +7788,7 @@


- [View source] + [View source]
@@ -7804,7 +7804,7 @@


- [View source] + [View source]
@@ -7820,7 +7820,7 @@


- [View source] + [View source]
@@ -7836,7 +7836,7 @@


- [View source] + [View source]
@@ -7852,7 +7852,7 @@


- [View source] + [View source]
@@ -7868,7 +7868,7 @@


- [View source] + [View source]
@@ -7884,7 +7884,7 @@


- [View source] + [View source]
@@ -7900,7 +7900,7 @@


- [View source] + [View source]
@@ -7921,7 +7921,7 @@


- [View source] + [View source]
@@ -7942,7 +7942,7 @@


- [View source] + [View source]
@@ -7958,7 +7958,7 @@


- [View source] + [View source]
@@ -7979,7 +7979,7 @@


- [View source] + [View source]
@@ -8000,7 +8000,7 @@


- [View source] + [View source]
@@ -8016,7 +8016,7 @@


- [View source] + [View source]
@@ -8032,7 +8032,7 @@


- [View source] + [View source]
@@ -8048,7 +8048,7 @@


- [View source] + [View source]
@@ -8064,7 +8064,7 @@


- [View source] + [View source]
@@ -8080,7 +8080,7 @@


- [View source] + [View source]
@@ -8096,7 +8096,7 @@


- [View source] + [View source]
@@ -8112,7 +8112,7 @@


- [View source] + [View source]
diff --git a/Vergesense/VergesenseAPI.html b/Vergesense/VergesenseAPI.html index dbc3cda8e3..b336f2c61c 100644 --- a/Vergesense/VergesenseAPI.html +++ b/Vergesense/VergesenseAPI.html @@ -7319,7 +7319,7 @@

- + vergesense/vergesense_api.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
diff --git a/Whispir.html b/Whispir.html index 4b8d05e94e..566898cc7c 100644 --- a/Whispir.html +++ b/Whispir.html @@ -7317,7 +7317,7 @@

- + whispir/messages.cr diff --git a/Whispir/Messages.html b/Whispir/Messages.html index c61bfb0c95..690a123a47 100644 --- a/Whispir/Messages.html +++ b/Whispir/Messages.html @@ -7333,7 +7333,7 @@

- + whispir/messages.cr @@ -7498,7 +7498,7 @@


- [View source] + [View source]
@@ -7514,7 +7514,7 @@


- [View source] + [View source]
diff --git a/Wiegand.html b/Wiegand.html index 72c4dad58b..704f433e48 100644 --- a/Wiegand.html +++ b/Wiegand.html @@ -7317,7 +7317,7 @@

- + wiegand/models.cr diff --git a/Wiegand/Base.html b/Wiegand/Base.html index 60e2eab540..77a9fa02e0 100644 --- a/Wiegand/Base.html +++ b/Wiegand/Base.html @@ -7346,7 +7346,7 @@

- + wiegand/models.cr @@ -7492,7 +7492,7 @@


- [View source] + [View source]
@@ -7520,7 +7520,7 @@


- [View source] + [View source]
@@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7566,7 +7566,7 @@


- [View source] + [View source]
@@ -7582,7 +7582,7 @@


- [View source] + [View source]
@@ -7598,7 +7598,7 @@


- [View source] + [View source]
@@ -7614,7 +7614,7 @@


- [View source] + [View source]
@@ -7630,7 +7630,7 @@


- [View source] + [View source]
diff --git a/Wiegand/Wiegand26.html b/Wiegand/Wiegand26.html index c3380de482..1a0a9eb3b5 100644 --- a/Wiegand/Wiegand26.html +++ b/Wiegand/Wiegand26.html @@ -7319,7 +7319,7 @@

- + wiegand/models.cr @@ -7533,7 +7533,7 @@


- [View source] + [View source]
@@ -7571,7 +7571,7 @@


- [View source] + [View source]
diff --git a/Wiegand/Wiegand35.html b/Wiegand/Wiegand35.html index 6aba96f235..0a690a5bfb 100644 --- a/Wiegand/Wiegand35.html +++ b/Wiegand/Wiegand35.html @@ -7319,7 +7319,7 @@

- + wiegand/models.cr @@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7573,7 +7573,7 @@


- [View source] + [View source]
diff --git a/WilliamsAV.html b/WilliamsAV.html index b12c71ff42..11325c84e2 100644 --- a/WilliamsAV.html +++ b/WilliamsAV.html @@ -7317,7 +7317,7 @@

- + williams_av/wave_cast_fm.cr diff --git a/WilliamsAV/WaveCastFM.html b/WilliamsAV/WaveCastFM.html index 36a677ee40..f28dbe5e78 100644 --- a/WilliamsAV/WaveCastFM.html +++ b/WilliamsAV/WaveCastFM.html @@ -7319,7 +7319,7 @@

- + williams_av/wave_cast_fm.cr @@ -7577,7 +7577,7 @@


- [View source] + [View source]
@@ -7593,7 +7593,7 @@


- [View source] + [View source]
@@ -7609,7 +7609,7 @@


- [View source] + [View source]
@@ -7625,7 +7625,7 @@


- [View source] + [View source]
@@ -7641,7 +7641,7 @@


- [View source] + [View source]
@@ -7657,7 +7657,7 @@


- [View source] + [View source]
@@ -7673,7 +7673,7 @@


- [View source] + [View source]
@@ -7689,7 +7689,7 @@


- [View source] + [View source]
@@ -7705,7 +7705,7 @@


- [View source] + [View source]
@@ -7721,7 +7721,7 @@


- [View source] + [View source]
@@ -7737,7 +7737,7 @@


- [View source] + [View source]
@@ -7753,7 +7753,7 @@


- [View source] + [View source]
@@ -7769,7 +7769,7 @@


- [View source] + [View source]
@@ -7785,7 +7785,7 @@


- [View source] + [View source]
@@ -7806,7 +7806,7 @@


- [View source] + [View source]
@@ -7822,7 +7822,7 @@


- [View source] + [View source]
@@ -7838,7 +7838,7 @@


- [View source] + [View source]
@@ -7854,7 +7854,7 @@


- [View source] + [View source]
@@ -7870,7 +7870,7 @@


- [View source] + [View source]
diff --git a/WilliamsAV/WaveCastFM/Command.html b/WilliamsAV/WaveCastFM/Command.html index a84bc5cf82..e7556e75f8 100644 --- a/WilliamsAV/WaveCastFM/Command.html +++ b/WilliamsAV/WaveCastFM/Command.html @@ -7317,7 +7317,7 @@

- + williams_av/wave_cast_fm.cr @@ -7685,7 +7685,7 @@


- [View source] + [View source]
@@ -7701,7 +7701,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7733,7 +7733,7 @@


- [View source] + [View source]
@@ -7749,7 +7749,7 @@


- [View source] + [View source]
@@ -7765,7 +7765,7 @@


- [View source] + [View source]
@@ -7781,7 +7781,7 @@


- [View source] + [View source]
@@ -7797,7 +7797,7 @@


- [View source] + [View source]
@@ -7813,7 +7813,7 @@


- [View source] + [View source]
@@ -7829,7 +7829,7 @@


- [View source] + [View source]
@@ -7845,7 +7845,7 @@


- [View source] + [View source]
@@ -7861,7 +7861,7 @@


- [View source] + [View source]
@@ -7877,7 +7877,7 @@


- [View source] + [View source]
@@ -7893,7 +7893,7 @@


- [View source] + [View source]
@@ -7909,7 +7909,7 @@


- [View source] + [View source]
@@ -7925,7 +7925,7 @@


- [View source] + [View source]
@@ -7941,7 +7941,7 @@


- [View source] + [View source]
@@ -7957,7 +7957,7 @@


- [View source] + [View source]
@@ -7973,7 +7973,7 @@


- [View source] + [View source]
@@ -7989,7 +7989,7 @@


- [View source] + [View source]
@@ -8005,7 +8005,7 @@


- [View source] + [View source]
@@ -8021,7 +8021,7 @@


- [View source] + [View source]
@@ -8037,7 +8037,7 @@


- [View source] + [View source]
@@ -8053,7 +8053,7 @@


- [View source] + [View source]
diff --git a/WilliamsAV/WaveCastFM/InputSource.html b/WilliamsAV/WaveCastFM/InputSource.html index dfab523064..a7058069cc 100644 --- a/WilliamsAV/WaveCastFM/InputSource.html +++ b/WilliamsAV/WaveCastFM/InputSource.html @@ -7317,7 +7317,7 @@

- + williams_av/wave_cast_fm.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
diff --git a/WilliamsAV/WaveCastFM/Preset.html b/WilliamsAV/WaveCastFM/Preset.html index 2b31efae05..5da68273cd 100644 --- a/WilliamsAV/WaveCastFM/Preset.html +++ b/WilliamsAV/WaveCastFM/Preset.html @@ -7317,7 +7317,7 @@

- + williams_av/wave_cast_fm.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/WilliamsAV/WaveCastFM/Type.html b/WilliamsAV/WaveCastFM/Type.html index b550663836..b3d4de436d 100644 --- a/WilliamsAV/WaveCastFM/Type.html +++ b/WilliamsAV/WaveCastFM/Type.html @@ -7317,7 +7317,7 @@

- + williams_av/wave_cast_fm.cr @@ -7505,7 +7505,7 @@


- [View source] + [View source]
@@ -7521,7 +7521,7 @@


- [View source] + [View source]
@@ -7537,7 +7537,7 @@


- [View source] + [View source]
@@ -7553,7 +7553,7 @@


- [View source] + [View source]
@@ -7569,7 +7569,7 @@


- [View source] + [View source]
@@ -7585,7 +7585,7 @@


- [View source] + [View source]
diff --git a/Winmate.html b/Winmate.html index 90702495a1..d5b795b374 100644 --- a/Winmate.html +++ b/Winmate.html @@ -7317,7 +7317,7 @@

- + winmate/led_light_bar.cr diff --git a/Winmate/LedLightBar.html b/Winmate/LedLightBar.html index 17f82284d5..df2a5b685b 100644 --- a/Winmate/LedLightBar.html +++ b/Winmate/LedLightBar.html @@ -7319,7 +7319,7 @@

- + winmate/led_light_bar.cr @@ -7540,7 +7540,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
diff --git a/Winmate/LedLightBar/Colours.html b/Winmate/LedLightBar/Colours.html index f2d120f1f3..09dc8fbd15 100644 --- a/Winmate/LedLightBar/Colours.html +++ b/Winmate/LedLightBar/Colours.html @@ -7327,7 +7327,7 @@

- + winmate/led_light_bar.cr diff --git a/Winmate/LedLightBar/Led.html b/Winmate/LedLightBar/Led.html index 3931d1d197..cce1ac612a 100644 --- a/Winmate/LedLightBar/Led.html +++ b/Winmate/LedLightBar/Led.html @@ -7317,7 +7317,7 @@

- + winmate/led_light_bar.cr @@ -7475,7 +7475,7 @@


- [View source] + [View source]
@@ -7491,7 +7491,7 @@


- [View source] + [View source]
@@ -7507,7 +7507,7 @@


- [View source] + [View source]
diff --git a/XYSense.html b/XYSense.html index 1113f86c8e..c1a6cd572e 100644 --- a/XYSense.html +++ b/XYSense.html @@ -7317,7 +7317,7 @@

- + xy_sense/location_service.cr diff --git a/XYSense/LocationService.html b/XYSense/LocationService.html index 1353ccc56f..cc7d38ee16 100644 --- a/XYSense/LocationService.html +++ b/XYSense/LocationService.html @@ -7333,7 +7333,7 @@

- + xy_sense/location_service.cr @@ -7550,7 +7550,7 @@


- [View source] + [View source]
@@ -7575,7 +7575,7 @@


- [View source] + [View source]
@@ -7591,7 +7591,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7632,7 +7632,7 @@

View source] + [View source] @@ -7658,7 +7658,7 @@

View source] + [View source] @@ -7674,7 +7674,7 @@

View source] + [View source] @@ -7690,7 +7690,7 @@

View source] + [View source] @@ -7706,7 +7706,7 @@

View source] + [View source] diff --git a/XYSense/LocationService/FloorDetails.html b/XYSense/LocationService/FloorDetails.html index 419ab306e5..c558ba76f8 100644 --- a/XYSense/LocationService/FloorDetails.html +++ b/XYSense/LocationService/FloorDetails.html @@ -7362,7 +7362,7 @@

- + xy_sense/location_service.cr @@ -7524,7 +7524,7 @@


- [View source] + [View source]
@@ -7556,7 +7556,7 @@


- [View source] + [View source]
@@ -7572,7 +7572,7 @@


- [View source] + [View source]
@@ -7588,7 +7588,7 @@


- [View source] + [View source]
@@ -7604,7 +7604,7 @@


- [View source] + [View source]
@@ -7620,7 +7620,7 @@


- [View source] + [View source]
@@ -7636,7 +7636,7 @@


- [View source] + [View source]
@@ -7652,7 +7652,7 @@


- [View source] + [View source]
@@ -7668,7 +7668,7 @@


- [View source] + [View source]
@@ -7684,7 +7684,7 @@


- [View source] + [View source]
@@ -7700,7 +7700,7 @@


- [View source] + [View source]
diff --git a/XYSense/LocationService/Occupancy.html b/XYSense/LocationService/Occupancy.html index adc6a1e586..de32e666b0 100644 --- a/XYSense/LocationService/Occupancy.html +++ b/XYSense/LocationService/Occupancy.html @@ -7347,7 +7347,7 @@

- + xy_sense/location_service.cr @@ -7514,7 +7514,7 @@


- [View source] + [View source]
@@ -7546,7 +7546,7 @@


- [View source] + [View source]
@@ -7562,7 +7562,7 @@


- [View source] + [View source]
@@ -7592,7 +7592,7 @@


- [View source] + [View source]
@@ -7622,7 +7622,7 @@


- [View source] + [View source]
@@ -7638,7 +7638,7 @@


- [View source] + [View source]
@@ -7654,7 +7654,7 @@


- [View source] + [View source]
@@ -7670,7 +7670,7 @@


- [View source] + [View source]
@@ -7686,7 +7686,7 @@


- [View source] + [View source]
@@ -7702,7 +7702,7 @@


- [View source] + [View source]
diff --git a/XYSense/LocationService/SpaceDetails.html b/XYSense/LocationService/SpaceDetails.html index d46d194514..81c10ae296 100644 --- a/XYSense/LocationService/SpaceDetails.html +++ b/XYSense/LocationService/SpaceDetails.html @@ -7347,7 +7347,7 @@

- + xy_sense/location_service.cr @@ -7499,7 +7499,7 @@


- [View source] + [View source]
@@ -7531,7 +7531,7 @@


- [View source] + [View source]
@@ -7547,7 +7547,7 @@


- [View source] + [View source]
@@ -7563,7 +7563,7 @@


- [View source] + [View source]
@@ -7579,7 +7579,7 @@


- [View source] + [View source]
@@ -7595,7 +7595,7 @@


- [View source] + [View source]
@@ -7611,7 +7611,7 @@


- [View source] + [View source]
@@ -7627,7 +7627,7 @@


- [View source] + [View source]
@@ -7643,7 +7643,7 @@


- [View source] + [View source]
diff --git a/Xovis.html b/Xovis.html index 3c2cae1ca1..f3a98f8a98 100644 --- a/Xovis.html +++ b/Xovis.html @@ -7317,7 +7317,7 @@

- + xovis/sensor_api.cr diff --git a/Xovis/SensorAPI.html b/Xovis/SensorAPI.html index b897fee903..d7905808fe 100644 --- a/Xovis/SensorAPI.html +++ b/Xovis/SensorAPI.html @@ -7333,7 +7333,7 @@

- + xovis/sensor_api.cr @@ -7570,7 +7570,7 @@


- [View source] + [View source]
@@ -7586,7 +7586,7 @@


- [View source] + [View source]
@@ -7607,7 +7607,7 @@


- [View source] + [View source]
@@ -7623,7 +7623,7 @@


- [View source] + [View source]
@@ -7644,7 +7644,7 @@


- [View source] + [View source]
@@ -7660,7 +7660,7 @@


- [View source] + [View source]
@@ -7676,7 +7676,7 @@


- [View source] + [View source]
@@ -7692,7 +7692,7 @@


- [View source] + [View source]
@@ -7717,7 +7717,7 @@


- [View source] + [View source]
@@ -7744,7 +7744,7 @@


- [View source] + [View source]
diff --git a/Xovis/SensorAPI/SensorDetail.html b/Xovis/SensorAPI/SensorDetail.html index e842db1309..01d31d7626 100644 --- a/Xovis/SensorAPI/SensorDetail.html +++ b/Xovis/SensorAPI/SensorDetail.html @@ -7319,7 +7319,7 @@

- + xovis/sensor_api.cr @@ -7487,7 +7487,7 @@


- [View source] + [View source]
@@ -7519,7 +7519,7 @@


- [View source] + [View source]
@@ -7535,7 +7535,7 @@


- [View source] + [View source]
@@ -7551,7 +7551,7 @@


- [View source] + [View source]
@@ -7567,7 +7567,7 @@


- [View source] + [View source]
@@ -7583,7 +7583,7 @@


- [View source] + [View source]
@@ -7599,7 +7599,7 @@


- [View source] + [View source]
diff --git a/Zencontrol.html b/Zencontrol.html index 719bf063d9..a69bcd61aa 100644 --- a/Zencontrol.html +++ b/Zencontrol.html @@ -7317,7 +7317,7 @@

- + zencontrol/advanced_tpi.cr diff --git a/Zencontrol/AdvancedTPI.html b/Zencontrol/AdvancedTPI.html index 6614cc6cf0..f8d4c81ee1 100644 --- a/Zencontrol/AdvancedTPI.html +++ b/Zencontrol/AdvancedTPI.html @@ -7335,7 +7335,7 @@

- + zencontrol/advanced_tpi.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
diff --git a/Zencontrol/AdvancedTPI/Area.html b/Zencontrol/AdvancedTPI/Area.html index d6f5e63747..cbcd236724 100644 --- a/Zencontrol/AdvancedTPI/Area.html +++ b/Zencontrol/AdvancedTPI/Area.html @@ -7327,7 +7327,7 @@

- + zencontrol/advanced_tpi.cr diff --git a/Zencontrol/AdvancedTPI/BasicRequest.html b/Zencontrol/AdvancedTPI/BasicRequest.html index a8dd754bbf..dc4a347dbd 100644 --- a/Zencontrol/AdvancedTPI/BasicRequest.html +++ b/Zencontrol/AdvancedTPI/BasicRequest.html @@ -7319,7 +7319,7 @@

- + zencontrol/advanced_tpi.cr @@ -8076,7 +8076,7 @@


- [View source] + [View source]
@@ -8104,7 +8104,7 @@


- [View source] + [View source]
@@ -8120,7 +8120,7 @@


- [View source] + [View source]
@@ -8136,7 +8136,7 @@


- [View source] + [View source]
@@ -8152,7 +8152,7 @@


- [View source] + [View source]
@@ -8168,7 +8168,7 @@


- [View source] + [View source]
@@ -8184,7 +8184,7 @@


- [View source] + [View source]
@@ -8200,7 +8200,7 @@


- [View source] + [View source]
@@ -8216,7 +8216,7 @@


- [View source] + [View source]
@@ -8232,7 +8232,7 @@


- [View source] + [View source]
@@ -8248,7 +8248,7 @@


- [View source] + [View source]
@@ -8264,7 +8264,7 @@


- [View source] + [View source]
@@ -8280,7 +8280,7 @@


- [View source] + [View source]
@@ -8296,7 +8296,7 @@


- [View source] + [View source]
@@ -8312,7 +8312,7 @@


- [View source] + [View source]
@@ -8328,7 +8328,7 @@


- [View source] + [View source]
@@ -8344,7 +8344,7 @@


- [View source] + [View source]
@@ -8360,7 +8360,7 @@


- [View source] + [View source]
@@ -8376,7 +8376,7 @@


- [View source] + [View source]
@@ -8392,7 +8392,7 @@


- [View source] + [View source]
@@ -8408,7 +8408,7 @@


- [View source] + [View source]
@@ -8424,7 +8424,7 @@


- [View source] + [View source]
@@ -8440,7 +8440,7 @@


- [View source] + [View source]
@@ -8456,7 +8456,7 @@


- [View source] + [View source]
@@ -8472,7 +8472,7 @@


- [View source] + [View source]
@@ -8488,7 +8488,7 @@


- [View source] + [View source]
@@ -8504,7 +8504,7 @@


- [View source] + [View source]
@@ -8520,7 +8520,7 @@


- [View source] + [View source]
@@ -8536,7 +8536,7 @@


- [View source] + [View source]
@@ -8552,7 +8552,7 @@


- [View source] + [View source]
@@ -8568,7 +8568,7 @@


- [View source] + [View source]
@@ -8584,7 +8584,7 @@


- [View source] + [View source]
@@ -8600,7 +8600,7 @@


- [View source] + [View source]
@@ -8616,7 +8616,7 @@


- [View source] + [View source]
@@ -8632,7 +8632,7 @@


- [View source] + [View source]
@@ -8648,7 +8648,7 @@


- [View source] + [View source]
@@ -8664,7 +8664,7 @@


- [View source] + [View source]
@@ -8680,7 +8680,7 @@


- [View source] + [View source]
@@ -8696,7 +8696,7 @@


- [View source] + [View source]
@@ -8712,7 +8712,7 @@


- [View source] + [View source]
@@ -8728,7 +8728,7 @@


- [View source] + [View source]
@@ -8744,7 +8744,7 @@


- [View source] + [View source]
@@ -8760,7 +8760,7 @@


- [View source] + [View source]
@@ -8776,7 +8776,7 @@


- [View source] + [View source]
@@ -8792,7 +8792,7 @@


- [View source] + [View source]
@@ -8808,7 +8808,7 @@


- [View source] + [View source]
@@ -8824,7 +8824,7 @@


- [View source] + [View source]
@@ -8840,7 +8840,7 @@


- [View source] + [View source]
@@ -8856,7 +8856,7 @@


- [View source] + [View source]
@@ -8872,7 +8872,7 @@


- [View source] + [View source]
@@ -8888,7 +8888,7 @@


- [View source] + [View source]
@@ -8904,7 +8904,7 @@


- [View source] + [View source]
@@ -8920,7 +8920,7 @@


- [View source] + [View source]
@@ -8936,7 +8936,7 @@


- [View source] + [View source]
@@ -8952,7 +8952,7 @@


- [View source] + [View source]
@@ -8968,7 +8968,7 @@


- [View source] + [View source]
@@ -8984,7 +8984,7 @@


- [View source] + [View source]
@@ -9000,7 +9000,7 @@


- [View source] + [View source]
@@ -9016,7 +9016,7 @@


- [View source] + [View source]
@@ -9032,7 +9032,7 @@


- [View source] + [View source]
@@ -9048,7 +9048,7 @@


- [View source] + [View source]
@@ -9064,7 +9064,7 @@


- [View source] + [View source]
@@ -9080,7 +9080,7 @@


- [View source] + [View source]
@@ -9096,7 +9096,7 @@


- [View source] + [View source]
@@ -9112,7 +9112,7 @@


- [View source] + [View source]
@@ -9128,7 +9128,7 @@


- [View source] + [View source]
@@ -9144,7 +9144,7 @@


- [View source] + [View source]
@@ -9160,7 +9160,7 @@


- [View source] + [View source]
@@ -9176,7 +9176,7 @@


- [View source] + [View source]
@@ -9192,7 +9192,7 @@


- [View source] + [View source]
@@ -9208,7 +9208,7 @@


- [View source] + [View source]
@@ -9224,7 +9224,7 @@


- [View source] + [View source]
@@ -9240,7 +9240,7 @@


- [View source] + [View source]
@@ -9256,7 +9256,7 @@


- [View source] + [View source]
@@ -9272,7 +9272,7 @@


- [View source] + [View source]
@@ -9288,7 +9288,7 @@


- [View source] + [View source]
@@ -9304,7 +9304,7 @@


- [View source] + [View source]
@@ -9320,7 +9320,7 @@


- [View source] + [View source]
@@ -9336,7 +9336,7 @@


- [View source] + [View source]
@@ -9352,7 +9352,7 @@


- [View source] + [View source]
@@ -9368,7 +9368,7 @@


- [View source] + [View source]
@@ -9384,7 +9384,7 @@


- [View source] + [View source]
@@ -9400,7 +9400,7 @@


- [View source] + [View source]
@@ -9416,7 +9416,7 @@


- [View source] + [View source]
@@ -9432,7 +9432,7 @@


- [View source] + [View source]
@@ -9448,7 +9448,7 @@


- [View source] + [View source]
@@ -9464,7 +9464,7 @@


- [View source] + [View source]
@@ -9480,7 +9480,7 @@


- [View source] + [View source]
@@ -9496,7 +9496,7 @@


- [View source] + [View source]
@@ -9512,7 +9512,7 @@


- [View source] + [View source]
@@ -9528,7 +9528,7 @@


- [View source] + [View source]
@@ -9544,7 +9544,7 @@


- [View source] + [View source]
@@ -9560,7 +9560,7 @@


- [View source] + [View source]
@@ -9576,7 +9576,7 @@


- [View source] + [View source]
@@ -9592,7 +9592,7 @@


- [View source] + [View source]
@@ -9608,7 +9608,7 @@


- [View source] + [View source]
@@ -9624,7 +9624,7 @@


- [View source] + [View source]
@@ -9640,7 +9640,7 @@


- [View source] + [View source]
@@ -9656,7 +9656,7 @@


- [View source] + [View source]
@@ -9672,7 +9672,7 @@


- [View source] + [View source]
@@ -9688,7 +9688,7 @@


- [View source] + [View source]
@@ -9704,7 +9704,7 @@


- [View source] + [View source]
@@ -9720,7 +9720,7 @@


- [View source] + [View source]
@@ -9736,7 +9736,7 @@


- [View source] + [View source]
@@ -9752,7 +9752,7 @@


- [View source] + [View source]
@@ -9780,7 +9780,7 @@


- [View source] + [View source]
diff --git a/Zencontrol/AdvancedTPI/ResponseFrame.html b/Zencontrol/AdvancedTPI/ResponseFrame.html index 7db7b41701..d89450cec0 100644 --- a/Zencontrol/AdvancedTPI/ResponseFrame.html +++ b/Zencontrol/AdvancedTPI/ResponseFrame.html @@ -7319,7 +7319,7 @@

- + zencontrol/advanced_tpi.cr @@ -8076,7 +8076,7 @@


- [View source] + [View source]
@@ -8104,7 +8104,7 @@


- [View source] + [View source]
@@ -8120,7 +8120,7 @@


- [View source] + [View source]
@@ -8136,7 +8136,7 @@


- [View source] + [View source]
@@ -8152,7 +8152,7 @@


- [View source] + [View source]
@@ -8168,7 +8168,7 @@


- [View source] + [View source]
@@ -8184,7 +8184,7 @@


- [View source] + [View source]
@@ -8200,7 +8200,7 @@


- [View source] + [View source]
@@ -8216,7 +8216,7 @@


- [View source] + [View source]
@@ -8232,7 +8232,7 @@


- [View source] + [View source]
@@ -8248,7 +8248,7 @@


- [View source] + [View source]
@@ -8264,7 +8264,7 @@


- [View source] + [View source]
@@ -8280,7 +8280,7 @@


- [View source] + [View source]
@@ -8296,7 +8296,7 @@


- [View source] + [View source]
@@ -8312,7 +8312,7 @@


- [View source] + [View source]
@@ -8328,7 +8328,7 @@


- [View source] + [View source]
@@ -8344,7 +8344,7 @@


- [View source] + [View source]
@@ -8360,7 +8360,7 @@


- [View source] + [View source]
@@ -8376,7 +8376,7 @@


- [View source] + [View source]
@@ -8392,7 +8392,7 @@


- [View source] + [View source]
@@ -8408,7 +8408,7 @@


- [View source] + [View source]
@@ -8424,7 +8424,7 @@


- [View source] + [View source]
@@ -8440,7 +8440,7 @@


- [View source] + [View source]
@@ -8456,7 +8456,7 @@


- [View source] + [View source]
@@ -8472,7 +8472,7 @@


- [View source] + [View source]
@@ -8488,7 +8488,7 @@


- [View source] + [View source]
@@ -8504,7 +8504,7 @@


- [View source] + [View source]
@@ -8520,7 +8520,7 @@


- [View source] + [View source]
@@ -8536,7 +8536,7 @@


- [View source] + [View source]
@@ -8552,7 +8552,7 @@


- [View source] + [View source]
@@ -8568,7 +8568,7 @@


- [View source] + [View source]
@@ -8584,7 +8584,7 @@


- [View source] + [View source]
@@ -8600,7 +8600,7 @@


- [View source] + [View source]
@@ -8616,7 +8616,7 @@


- [View source] + [View source]
@@ -8632,7 +8632,7 @@


- [View source] + [View source]
@@ -8648,7 +8648,7 @@


- [View source] + [View source]
@@ -8664,7 +8664,7 @@


- [View source] + [View source]
@@ -8680,7 +8680,7 @@


- [View source] + [View source]
@@ -8696,7 +8696,7 @@


- [View source] + [View source]
@@ -8712,7 +8712,7 @@


- [View source] + [View source]
@@ -8728,7 +8728,7 @@


- [View source] + [View source]
@@ -8744,7 +8744,7 @@


- [View source] + [View source]
@@ -8760,7 +8760,7 @@


- [View source] + [View source]
@@ -8776,7 +8776,7 @@


- [View source] + [View source]
@@ -8792,7 +8792,7 @@


- [View source] + [View source]
@@ -8808,7 +8808,7 @@


- [View source] + [View source]
@@ -8824,7 +8824,7 @@


- [View source] + [View source]
@@ -8840,7 +8840,7 @@


- [View source] + [View source]
@@ -8856,7 +8856,7 @@


- [View source] + [View source]
@@ -8872,7 +8872,7 @@


- [View source] + [View source]
@@ -8888,7 +8888,7 @@


- [View source] + [View source]
@@ -8904,7 +8904,7 @@


- [View source] + [View source]
@@ -8920,7 +8920,7 @@


- [View source] + [View source]
@@ -8936,7 +8936,7 @@


- [View source] + [View source]
@@ -8952,7 +8952,7 @@


- [View source] + [View source]
@@ -8968,7 +8968,7 @@


- [View source] + [View source]
@@ -8984,7 +8984,7 @@


- [View source] + [View source]
@@ -9000,7 +9000,7 @@


- [View source] + [View source]
@@ -9016,7 +9016,7 @@


- [View source] + [View source]
@@ -9032,7 +9032,7 @@


- [View source] + [View source]
@@ -9048,7 +9048,7 @@


- [View source] + [View source]
@@ -9064,7 +9064,7 @@


- [View source] + [View source]
@@ -9080,7 +9080,7 @@


- [View source] + [View source]
@@ -9096,7 +9096,7 @@


- [View source] + [View source]
@@ -9112,7 +9112,7 @@


- [View source] + [View source]
@@ -9128,7 +9128,7 @@


- [View source] + [View source]
@@ -9144,7 +9144,7 @@


- [View source] + [View source]
@@ -9160,7 +9160,7 @@


- [View source] + [View source]
@@ -9176,7 +9176,7 @@


- [View source] + [View source]
@@ -9192,7 +9192,7 @@


- [View source] + [View source]
@@ -9208,7 +9208,7 @@


- [View source] + [View source]
@@ -9224,7 +9224,7 @@


- [View source] + [View source]
@@ -9240,7 +9240,7 @@


- [View source] + [View source]
@@ -9256,7 +9256,7 @@


- [View source] + [View source]
@@ -9272,7 +9272,7 @@


- [View source] + [View source]
@@ -9288,7 +9288,7 @@


- [View source] + [View source]
@@ -9304,7 +9304,7 @@


- [View source] + [View source]
@@ -9320,7 +9320,7 @@


- [View source] + [View source]
@@ -9336,7 +9336,7 @@


- [View source] + [View source]
@@ -9352,7 +9352,7 @@


- [View source] + [View source]
@@ -9368,7 +9368,7 @@


- [View source] + [View source]
@@ -9384,7 +9384,7 @@


- [View source] + [View source]
@@ -9400,7 +9400,7 @@


- [View source] + [View source]
@@ -9416,7 +9416,7 @@


- [View source] + [View source]
@@ -9432,7 +9432,7 @@


- [View source] + [View source]
@@ -9448,7 +9448,7 @@


- [View source] + [View source]
@@ -9464,7 +9464,7 @@


- [View source] + [View source]
@@ -9480,7 +9480,7 @@


- [View source] + [View source]
@@ -9496,7 +9496,7 @@


- [View source] + [View source]
@@ -9512,7 +9512,7 @@


- [View source] + [View source]
@@ -9528,7 +9528,7 @@


- [View source] + [View source]
@@ -9544,7 +9544,7 @@


- [View source] + [View source]
@@ -9560,7 +9560,7 @@


- [View source] + [View source]
@@ -9576,7 +9576,7 @@


- [View source] + [View source]
@@ -9592,7 +9592,7 @@


- [View source] + [View source]
@@ -9608,7 +9608,7 @@


- [View source] + [View source]
@@ -9624,7 +9624,7 @@


- [View source] + [View source]
@@ -9640,7 +9640,7 @@


- [View source] + [View source]
@@ -9656,7 +9656,7 @@


- [View source] + [View source]
@@ -9672,7 +9672,7 @@


- [View source] + [View source]
@@ -9688,7 +9688,7 @@


- [View source] + [View source]
@@ -9704,7 +9704,7 @@


- [View source] + [View source]
@@ -9720,7 +9720,7 @@


- [View source] + [View source]
@@ -9736,7 +9736,7 @@


- [View source] + [View source]
@@ -9752,7 +9752,7 @@


- [View source] + [View source]
@@ -9768,7 +9768,7 @@


- [View source] + [View source]
@@ -9796,7 +9796,7 @@


- [View source] + [View source]
diff --git a/Zencontrol/AdvancedTPI/ResponseType.html b/Zencontrol/AdvancedTPI/ResponseType.html index 5e9df7256d..e3df0cfa33 100644 --- a/Zencontrol/AdvancedTPI/ResponseType.html +++ b/Zencontrol/AdvancedTPI/ResponseType.html @@ -7317,7 +7317,7 @@

- + zencontrol/advanced_tpi.cr @@ -7485,7 +7485,7 @@


- [View source] + [View source]
@@ -7501,7 +7501,7 @@


- [View source] + [View source]
@@ -7517,7 +7517,7 @@


- [View source] + [View source]
@@ -7533,7 +7533,7 @@


- [View source] + [View source]
diff --git a/Zencontrol/ClassicTPI.html b/Zencontrol/ClassicTPI.html index f8d1517e2c..0c50f19060 100644 --- a/Zencontrol/ClassicTPI.html +++ b/Zencontrol/ClassicTPI.html @@ -7335,7 +7335,7 @@

- + zencontrol/classic_tpi.cr @@ -7585,7 +7585,7 @@


- [View source] + [View source]
@@ -7610,7 +7610,7 @@


- [View source] + [View source]
@@ -7626,7 +7626,7 @@


- [View source] + [View source]
@@ -7642,7 +7642,7 @@


- [View source] + [View source]
@@ -7658,7 +7658,7 @@


- [View source] + [View source]
@@ -7674,7 +7674,7 @@


- [View source] + [View source]
@@ -7699,7 +7699,7 @@


- [View source] + [View source]
@@ -7715,7 +7715,7 @@


- [View source] + [View source]
@@ -7736,7 +7736,7 @@


- [View source] + [View source]
diff --git a/Zencontrol/ClassicTPI/Area.html b/Zencontrol/ClassicTPI/Area.html index fbbf0ee91a..2e61668a89 100644 --- a/Zencontrol/ClassicTPI/Area.html +++ b/Zencontrol/ClassicTPI/Area.html @@ -7327,7 +7327,7 @@

- + zencontrol/classic_tpi.cr diff --git a/index.json b/index.json index 4df7eca856..d0c4c5a864 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -{"repository_name":"drivers","body":"# PlaceOS Drivers\n\n[![CI](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml/badge.svg)](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml)\n\nManage and test [PlaceOS](https://place.technology) drivers.\n\n## Development\n\n### `harness`\n\n`harness` is a helper for easing development of PlaceOS Drivers.\n\n```\nUsage: ./harness [-h|--help] [command]\n\nHelper script for interfacing with the PlaceOS Driver spec runner\n\nCommand:\n report check all drivers' compilation status\n up starts the harness\n down stops the harness\n build builds drivers and uploads them to S3\n format formats driver code\n help display this message\n```\n\nTo spin up the test harness, clone the repository and run...\n\n```shell-session\n$ ./harness up\n```\n\nPoint a browser to [localhost:8085](http://localhost:8085), and you're good to go.\n\nWhen the environment is not in use, remember to run...\n\n```shell-session\n$ ./harness down\n```\n\nBefore committing, please run...\n\n```shell-session\n$ ./harness format\n```\n\n## Documentation\n\n- [Existing Driver Docs](https://placeos.github.io/drivers/)\n- [Writing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver)\n- [Testing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver/testing-drivers)\n- [Sending Emails](docs/guide-event-emails.md)\n- [Environment Setup](docs/setup.md)\n- [Runtime Debugging](docs/runtime-debugging.md)\n- [Directory Structure](docs/directory_structure.md)\n- [PlaceOS Spec Runner HTTP API](docs/http-api.md)\n\n## Contributing\n\n1. [Fork it](https://github.com/PlaceOS/drivers/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","program":{"html_id":"drivers/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"}],"locations":[],"repository_name":"drivers","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"CAPTURE_STATUS","name":"CAPTURE_STATUS","value":"\" \\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n 2014-02-12T15:30:00.000Z\\n 3000\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n \\n John Doe\\n \\n \\n
\\n \\n Some other capture\\n 2014-02-13T15:30:00.000Z\\n 1500\\n
Some other capture
\\n \\n \\n Steve\\n \\n \\n
\\n
\""},{"id":"DEFAULT_PASSWORD_EXCLUDE","name":"DEFAULT_PASSWORD_EXCLUDE","value":"\"0Oo1Il`'\\\\/\""},{"id":"DEFAULT_PASSWORD_LENGTH","name":"DEFAULT_PASSWORD_LENGTH","value":"6","doc":"Password defaults","summary":"

Password defaults

"},{"id":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","name":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","name":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","name":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","value":"0"},{"id":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","name":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","value":"0"},{"id":"DESK_LOC","name":"DESK_LOC","value":"{\"location\" => \"desk\", \"at_location\" => true, \"map_id\" => \"desk-4-1006\", \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"},{"id":"EXAMPLE_COLOCATION","name":"EXAMPLE_COLOCATION","value":"\"[\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1b\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 7662\\n }\\n ]\\n },\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1e\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 2386\\n }\\n ]\\n }\\n ]\""},{"id":"EXAMPLE_RESPONSE","name":"EXAMPLE_RESPONSE","value":"\"{\\\"content\\\": #{EXAMPLE_COLOCATION}}\""},{"id":"PASSWORD_LOWERCASE_CHARACTERS","name":"PASSWORD_LOWERCASE_CHARACTERS","value":"('a'..'z').to_a"},{"id":"PASSWORD_NUMBER_CHARACTERS","name":"PASSWORD_NUMBER_CHARACTERS","value":"('0'..'9').to_a"},{"id":"PASSWORD_SYMBOL_CHARACTERS","name":"PASSWORD_SYMBOL_CHARACTERS","value":"['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '-', '=', '{', '}', '[', ']', '|', '\\\\', ':', ';', '\"', '\\'', '<', '>', ',', '.', '?', '/', '`', '~']"},{"id":"PASSWORD_UPPERCASE_CHARACTERS","name":"PASSWORD_UPPERCASE_CHARACTERS","value":"('A'..'Z').to_a"},{"id":"RAW_GUEST_RESPONSE","name":"RAW_GUEST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Guest\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": false,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RAW_HASH_RESPONSE","name":"RAW_HASH_RESPONSE","value":"\"{\\n \\\"host\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJCWXpoYmV4W\\\",\\n \\\"short\\\": \\\"abc1234\\\"\\n }],\\n \\\"guest\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJaVVJsejNsb1\\\",\\n \\\"short\\\": \\\"def1234\\\"\\n }],\\n \\\"baseUrl\\\": \\\"https://somedomain.com/chat/\\\"\\n}\""},{"id":"RAW_HOST_RESPONSE","name":"RAW_HOST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Host\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": true,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RETVAL","name":"RETVAL","value":"\"{\\n \\\"space_id\\\":\\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"host_token\\\":\\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"guest_token\\\":\\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"host_url\\\": \\\"https://somedomain.com/chat/abc1234\\\",\\n \\\"guest_url\\\": \\\"https://somedomain.com/chat/def1234\\\"\\n}\""},{"id":"SPACES_RESPONSE","name":"SPACES_RESPONSE","value":"[{\"id\" => 96978, \"location\" => {\"id\" => 775, \"scalingFactor\" => nil, \"raw\" => true, \"policy\" => true}, \"name\" => \"WS7-01\", \"srf\" => {\"x\" => 91, \"y\" => 2169, \"z\" => 0}, \"marker\" => {\"type\" => \"CIRCLE\", \"data\" => \"20\"}, \"category\" => {\"id\" => 297, \"name\" => \"Assigned Desks\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => true, \"iconUrl\" => nil, \"colorScheme\" => \"#ffb3b3\", \"orderingIndex\" => 113}, \"sensingPolicyId\" => 247, \"department\" => {\"id\" => 498, \"name\" => \"Sales\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => nil}, \"subCategory\" => {\"id\" => 194, \"name\" => \"None\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => 194}, \"device\" => {\"id\" => 2016090160, \"displayName\" => \"1609010160\", \"updatedAt\" => nil, \"floorId\" => nil, \"shape\" => nil, \"coord\" => nil, \"blessId\" => 1609010160, \"blessQr\" => nil, \"accessedAt\" => \"2021-03-11T08:06:01.000+0000\", \"installedOn\" => nil, \"licenseeId\" => nil, \"hardware\" => nil, \"network\" => nil, \"itemId\" => nil}, \"markerUniqueId\" => \"K_2493713878097_18542\", \"live\" => false, \"capacity\" => 1, \"counter\" => \"NO_COUNTER\", \"serial\" => 1, \"locationId\" => 775, \"counted\" => true}].to_json"},{"id":"SYSTEM_STATUS","name":"SYSTEM_STATUS","value":"\" \\n 2014-02-12T15:02:19.037Z\\n \\n 3.0\\n \\n \\n Audio Only (Podcast). Balanced between file size & quality\\n Display Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n DualDisplay (Podcast/Vodcast/EchoPlayer). Optimized for file size & bandwidth\\n Dual Video (Podcast/Vodcast/EchoPlayer) -Balance between file size & quality\\n Dual Video (Podcast/Vodcast/EchoPlayer) -High Quality\\n Video Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n media\\n 2014-02-12T23:00:00.000Z\\n 3000\\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n John Doe\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n archive\\n \\n \\n \\n balanced\\n stereo\\n -6\\n 44100\\n 0\\n false\\n \\n \\n 1\\n dvi\\n 50\\n 50\\n 50\\n 10.0\\n 960\\n 720\\n true\\n true\\n \\n \\n 2\\n composite\\n 50\\n 50\\n 50\\n 29.97\\n 704\\n 480\\n true\\n false\\n ntsc\\n \\n \\n audio\\n aac\\n true\\n \\n 128000\\n lc\\n \\n \\n \\n graphics1\\n h264\\n \\n vbr\\n 736000\\n 1104000\\n base\\n 50\\n \\n \\n \\n graphics2\\n h264\\n \\n vbr\\n 1056000\\n 1584000\\n base\\n 150\\n \\n \\n \\n audio-archive\\n \\n file\\n audio.aac\\n \\n \\n \\n graphics1-archive\\n \\n file\\n display.h264\\n \\n \\n \\n graphics2-archive\\n \\n file\\n video.h264\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\""},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"WIRELESS_LOC","name":"WIRELESS_LOC","value":"{\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => 16.764784482481577, \"y\" => 25.435735950388988, \"lng\" => 55.274935030154325, \"lat\" => 25.201036346211698, \"variance\" => 7.944837533996209, \"last_seen\" => 1601526474, \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"}],"included_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"extended_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"class_methods":[{"html_id":"create_request(mode:String,device_name:String,modbus_device:String,md5:String,file_time:String,file_descriptor:String,file_name:String,file:String|Nil)-class-method","name":"create_request","doc":"Some of these fields may not be present in every request but\nhaving them there doesn't hurt anything so why bother removing them","summary":"

Some of these fields may not be present in every request but having them there doesn't hurt anything so why bother removing them

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"args_string":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","args_html":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","location":{"filename":"src/leviton/acquisuite_spec.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite_spec.cr#L87"},"def":{"name":"create_request","args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"visibility":"Public","body":"if file.nil?\n file = \"fileplaceholder\"\nend\n\"--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODE\\\"\\n\\n#{mode}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICENAME\\\"\\n\\n#{device_name}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICE\\\"\\n\\n#{modbus_device}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MD5CHECKSUM\\\"\\n\\n#{md5}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"FILETIME\\\"\\n\\n#{file_time}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"#{file_descriptor}\\\"; filename=\\\"#{file_name}\\\"\\nContent-Type: application/octet-stream;\\n\\n#{file}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY--\\n\"\n"}},{"html_id":"generate_password(length:Int32|Nil=DEFAULT_PASSWORD_LENGTH,exclude:String|Nil=DEFAULT_PASSWORD_EXCLUDE,minimum_lowercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_LOWERCASE,minimum_uppercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_UPPERCASE,minimum_numbers:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_NUMBERS,minimum_symbols:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_SYMBOLS):String-class-method","name":"generate_password","abstract":false,"args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"args_string":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","args_html":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","location":{"filename":"src/place/password_generator_helper.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/password_generator_helper.cr#L14"},"def":{"name":"generate_password","args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"return_type":"String","visibility":"Public","body":"length || (length = DEFAULT_PASSWORD_LENGTH)\nexclude || (exclude = DEFAULT_PASSWORD_EXCLUDE)\nminimum_lowercase || (minimum_lowercase = DEFAULT_PASSWORD_MINIMUM_LOWERCASE)\nminimum_uppercase || (minimum_uppercase = DEFAULT_PASSWORD_MINIMUM_UPPERCASE)\nminimum_numbers || (minimum_numbers = DEFAULT_PASSWORD_MINIMUM_NUMBERS)\nminimum_symbols || (minimum_symbols = DEFAULT_PASSWORD_MINIMUM_SYMBOLS)\nminimums = ((minimum_lowercase + minimum_uppercase) + minimum_numbers) + minimum_symbols\nif length < minimums\n length = minimums\nend\ncharacters = [] of Char\nif minimum_lowercase > 0\n characters = PASSWORD_LOWERCASE_CHARACTERS\nend\nif minimum_uppercase > 0\n characters = characters + PASSWORD_UPPERCASE_CHARACTERS\nend\nif minimum_numbers > 0\n characters = characters + PASSWORD_NUMBER_CHARACTERS\nend\nif minimum_symbols > 0\n characters = characters + PASSWORD_SYMBOL_CHARACTERS\nend\ncharacters = characters - exclude.chars\nif characters.empty?\n characters = (PASSWORD_LOWERCASE_CHARACTERS + PASSWORD_NUMBER_CHARACTERS) - DEFAULT_PASSWORD_EXCLUDE.chars\nend\npassword = [] of Char\nminimum_lowercase.times do\n password << (PASSWORD_LOWERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_uppercase.times do\n password << (PASSWORD_UPPERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_numbers.times do\n password << (PASSWORD_NUMBER_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_symbols.times do\n password << (PASSWORD_SYMBOL_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\n(length - minimums).times do\n password << characters.sample(random: Random::Secure)\nend\npassword.shuffle(random: Random::Secure).join\n"}}],"types":[{"html_id":"drivers/AmberTech","path":"AmberTech.html","kind":"module","full_name":"AmberTech","name":"AmberTech","abstract":false,"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AmberTech/Devices","path":"AmberTech/Devices.html","kind":"class","full_name":"AmberTech::Devices","name":"Devices","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_ip:String-instance-method","name":"current_ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L37"},"def":{"name":"current_ip","return_type":"String","visibility":"Public","body":"@current_ip"}},{"html_id":"device_info:Array(DevInfo)-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L34"},"def":{"name":"device_info","return_type":"Array(DevInfo)","visibility":"Public","body":"@device_info"}}]},{"html_id":"drivers/AmberTech/DevInfo","path":"AmberTech/DevInfo.html","kind":"class","full_name":"AmberTech::DevInfo","name":"DevInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L16"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L17"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"ip_gateway:String-instance-method","name":"ip_gateway","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L23"},"def":{"name":"ip_gateway","return_type":"String","visibility":"Public","body":"@ip_gateway"}},{"html_id":"ip_subnet:String-instance-method","name":"ip_subnet","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L20"},"def":{"name":"ip_subnet","return_type":"String","visibility":"Public","body":"@ip_subnet"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"pass:String|Nil-instance-method","name":"pass","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L25"},"def":{"name":"pass","return_type":"String | ::Nil","visibility":"Public","body":"@pass"}},{"html_id":"pass2:String|Nil-instance-method","name":"pass2","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L26"},"def":{"name":"pass2","return_type":"String | ::Nil","visibility":"Public","body":"@pass2"}},{"html_id":"status:Status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L27"},"def":{"name":"status","return_type":"Status","visibility":"Public","body":"@status"}},{"html_id":"ver:String-instance-method","name":"ver","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L15"},"def":{"name":"ver","return_type":"String","visibility":"Public","body":"@ver"}}]},{"html_id":"drivers/AmberTech/Grandview","path":"AmberTech/Grandview.html","kind":"class","full_name":"AmberTech::Grandview","name":"Grandview","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L109"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:down)"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L113"},"def":{"name":"down?","visibility":"Public","body":"{\"closed\", \"closing\"}.includes?(self[\"status\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moveable interface","summary":"

moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L30"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"command = case position\nwhen .up?, .close?, .in?\n \"/Close.js?a=100\"\nwhen .down?, .open?, .out?\n \"/Open.js?a=100\"\nelse\n raise(\"unsupported move option: #{position}\")\nend\nqueue(name: \"move\") do |task|\n response = get(command, headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 2.seconds\nschedule.every(1.minute) do\n status\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L59"},"def":{"name":"status","visibility":"Public","body":"if queue.online\n queue(name: \"status\", priority: 0) do |task|\n response = perform_status_request\n if response.success?\n task.success(parse_status(response))\n else\n task.abort(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n end\nelse\n response = perform_status_request\n if response.success?\n parse_status(response)\n end\nend"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"stoppable interface","summary":"

stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/amber_tech/grandview.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L49"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"queue(name: \"stop\", priority: 999, clear_queue: emergency) do |task|\n response = get(\"/Stop.js?a=100\", headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","doc":"compatibility with Screen Technics","summary":"

compatibility with Screen Technics

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L101"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:up)"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L105"},"def":{"name":"up?","visibility":"Public","body":"{\"opened\", \"opening\"}.includes?(self[\"status\"]?)"}}]},{"html_id":"drivers/AmberTech/Status","path":"AmberTech/Status.html","kind":"enum","full_name":"AmberTech::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stop","name":"Stop","value":"0"},{"id":"Opening","name":"Opening","value":"1"},{"id":"Opened","name":"Opened","value":"2"},{"id":"Closing","name":"Closing","value":"3"},{"id":"Closed","name":"Closed","value":"4"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L9"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"closing?-instance-method","name":"closing?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L8"},"def":{"name":"closing?","visibility":"Public","body":"self == Closing"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == Opened"}},{"html_id":"opening?-instance-method","name":"opening?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L6"},"def":{"name":"opening?","visibility":"Public","body":"self == Opening"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L5"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/AmberTech/StatusResp","path":"AmberTech/StatusResp.html","kind":"class","full_name":"AmberTech::StatusResp","name":"StatusResp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:Status|String-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L43"},"def":{"name":"status","return_type":"Status | String","visibility":"Public","body":"@status"}}]}]},{"html_id":"drivers/Amx","path":"Amx.html","kind":"module","full_name":"Amx","name":"Amx","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Amx/Svsi","path":"Amx/Svsi.html","kind":"module","full_name":"Amx::Svsi","name":"Svsi","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Amx","kind":"module","full_name":"Amx","name":"Amx"},"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","path":"Amx/Svsi/NSeriesDecoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"OutputModes","name":"OutputModes","value":"[\"auto\", \"1080p59.94\", \"1080p60\", \"720p60\", \"4K30\", \"4K25\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L41"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L49"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L208"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"live(state:Bool=true)-instance-method","name":"live","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L86"},"def":{"name":"live","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? do_send(Command::Live) : local(self[:playlist].as_i)"}},{"html_id":"local(playlist:Int32=0)-instance-method","name":"local","abstract":false,"args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"args_string":"(playlist : Int32 = 0)","args_html":"(playlist : Int32 = 0)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L90"},"def":{"name":"local","args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Local, playlist)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L72"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\n do_send(Command::Mute, name: :mute)\n do_send(Command::SetAudio, 0)\nelse\n do_send(Command::SetAudio, @previous_stream || 0)\n do_send(Command::Unmute, name: :mute)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L37"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"output_resolution(mode:String)-instance-method","name":"output_resolution","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L108"},"def":{"name":"output_resolution","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if OutputModes.includes?(mode)\nelse\n logger.error do\n \"\\\"#{mode}\\\" is not a valid resolution\"\n end\n return\nend\ndo_send(Command::ModeSet, mode)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L174"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nprop, value = data.split(':')\ncase Response.from_mapped_value?(prop.downcase)\nin Response::Stream\n self[:video] = @stream = value.to_i\nin Response::StreamAudio\n stream_id = value.to_i\n self[:audio_actual] = stream_id\n self[:audio] = stream_id == 0 ? (@mute ? 0 : @stream) : stream_id\nin Response::Name\n self[:device_name] = value\nin Response::Playmode\n self[:local_playback] = value == \"local\"\nin Response::Playlist\n self[:playlist] = value.to_i\nin Response::Mute\n self[:mute] = @mute = value == \"1\"\nin Response::ScalerBypass\n self[:scaler_active] = value != \"no\"\nin Response::Mode\n self[:output_res] = value\nin Response::InputRes\n self[:input_res] = value\nin Nil\n raise(\"Unexpected response: #{prop}\")\nend\ntask.try(&.success)\n"}},{"html_id":"scaler(state:Bool)-instance-method","name":"scaler","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L94"},"def":{"name":"scaler","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"action = state ? Command::ScalerEnable : Command::ScalerDisable\ndo_send(action, name: :scaler)\n"}},{"html_id":"switch_audio(stream_id:Int32)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L62"},"def":{"name":"switch_audio","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"@previous_stream = stream_id\nunmute\n"}},{"html_id":"switch_kvm(ip_address:String,video_follow:Bool=true)-instance-method","name":"switch_kvm","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"args_string":"(ip_address : String, video_follow : Bool = true)","args_html":"(ip_address : String, video_follow : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L67"},"def":{"name":"switch_kvm","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"visibility":"Public","body":"host = \"#{ip_address},#{video_follow ? 1 : 0}\"\ndo_send(Command::SwitchKVM, host)\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L53"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"switch_video(input)\nswitch_audio(0)\n"}},{"html_id":"switch_video(stream_id:Int32)-instance-method","name":"switch_video","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L58"},"def":{"name":"switch_video","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Set, stream_id)"}},{"html_id":"videowall(width:Int32,height:Int32,x_pos:Int32,y_pos:Int32,scale:VideowallScalingMode=VideowallScalingMode::Auto)-instance-method","name":"videowall","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"args_string":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","args_html":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L116"},"def":{"name":"videowall","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"if width > 1 && height > 1\n videowall_size(width, height)\n videowall_position(x_pos, y_pos)\n videowall_scaling(scale)\n videowall_enable\nelse\n videowall_disable\nend"}},{"html_id":"videowall_disable-instance-method","name":"videowall_disable","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L138"},"def":{"name":"videowall_disable","visibility":"Public","body":"videowall_enable(false)"}},{"html_id":"videowall_enable(state:Bool=true)-instance-method","name":"videowall_enable","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L133"},"def":{"name":"videowall_enable","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? \"on\" : \"off\"\ndo_send(Command::SetSettings, \"wallEnable\", state)\n"}},{"html_id":"videowall_position(x:Int32,y:Int32)-instance-method","name":"videowall_position","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L147"},"def":{"name":"videowall_position","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallMonPosV\", x)\ndo_send(Command::SetSettings, \"wallMonPosH\", y)\n"}},{"html_id":"videowall_scaling(scaling_mode:VideowallScalingMode)-instance-method","name":"videowall_scaling","abstract":false,"args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"args_string":"(scaling_mode : VideowallScalingMode)","args_html":"(scaling_mode : VideowallScalingMode)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L158"},"def":{"name":"videowall_scaling","args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallStretch\", scaling_mode)"}},{"html_id":"videowall_size(width:Int32,height:Int32)-instance-method","name":"videowall_size","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32)","args_html":"(width : Int32, height : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L142"},"def":{"name":"videowall_size","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallHorMons\", width)\ndo_send(Command::SetSettings, \"wallVerMons\", height)\n"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Command","path":"Amx/Svsi/NSeriesDecoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"Set","name":"Set","value":"1"},{"id":"SetSettings","name":"SetSettings","value":"2"},{"id":"SwitchKVM","name":"SwitchKVM","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Unmute","name":"Unmute","value":"5"},{"id":"SetAudio","name":"SetAudio","value":"6"},{"id":"Live","name":"Live","value":"7"},{"id":"Local","name":"Local","value":"8"},{"id":"ScalerEnable","name":"ScalerEnable","value":"9"},{"id":"ScalerDisable","name":"ScalerDisable","value":"10"},{"id":"ModeSet","name":"ModeSet","value":"11"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mode_set?-instance-method","name":"mode_set?","abstract":false,"def":{"name":"mode_set?","visibility":"Public","body":"self == ModeSet"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"scaler_disable?-instance-method","name":"scaler_disable?","abstract":false,"def":{"name":"scaler_disable?","visibility":"Public","body":"self == ScalerDisable"}},{"html_id":"scaler_enable?-instance-method","name":"scaler_enable?","abstract":false,"def":{"name":"scaler_enable?","visibility":"Public","body":"self == ScalerEnable"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"def":{"name":"set?","visibility":"Public","body":"self == Set"}},{"html_id":"set_audio?-instance-method","name":"set_audio?","abstract":false,"def":{"name":"set_audio?","visibility":"Public","body":"self == SetAudio"}},{"html_id":"set_settings?-instance-method","name":"set_settings?","abstract":false,"def":{"name":"set_settings?","visibility":"Public","body":"self == SetSettings"}},{"html_id":"switch_kvm?-instance-method","name":"switch_kvm?","abstract":false,"def":{"name":"switch_kvm?","visibility":"Public","body":"self == SwitchKVM"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Response","path":"Amx/Svsi/NSeriesDecoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stream","name":"Stream","value":"0"},{"id":"StreamAudio","name":"StreamAudio","value":"1"},{"id":"Name","name":"Name","value":"2"},{"id":"Playmode","name":"Playmode","value":"3"},{"id":"Playlist","name":"Playlist","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"ScalerBypass","name":"ScalerBypass","value":"6"},{"id":"Mode","name":"Mode","value":"7"},{"id":"InputRes","name":"InputRes","value":"8"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"input_res?-instance-method","name":"input_res?","abstract":false,"def":{"name":"input_res?","visibility":"Public","body":"self == InputRes"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playlist?-instance-method","name":"playlist?","abstract":false,"def":{"name":"playlist?","visibility":"Public","body":"self == Playlist"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"scaler_bypass?-instance-method","name":"scaler_bypass?","abstract":false,"def":{"name":"scaler_bypass?","visibility":"Public","body":"self == ScalerBypass"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}},{"html_id":"stream_audio?-instance-method","name":"stream_audio?","abstract":false,"def":{"name":"stream_audio?","visibility":"Public","body":"self == StreamAudio"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/VideowallScalingMode","path":"Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::VideowallScalingMode","name":"VideowallScalingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L152"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Fit","name":"Fit","value":"1"},{"id":"Stretch","name":"Stretch","value":"2"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L153"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"fit?-instance-method","name":"fit?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L154"},"def":{"name":"fit?","visibility":"Public","body":"self == Fit"}},{"html_id":"stretch?-instance-method","name":"stretch?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L155"},"def":{"name":"stretch?","visibility":"Public","body":"self == Stretch"}}]}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","path":"Amx/Svsi/NSeriesEncoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L8"},{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CommonCommands","name":"CommonCommands","value":"[:monitor, :monitornotify, :live, :local, :serial, :readresponse, :sendir, :sendirraw, :audioon, :audiooff, :enablehdmiaudio, :disablehdmiaudio, :autohdmiaudio, :record, :dsrecord, :dvrswitch1, :dvrswitch2, :mpeg, :mpegall, :deletempegfile, :play, :stop, :pause, :unpause, :fastforward, :rewind, :deletefile, :stepforward, :stepreverse, :stoprecord, :recordhold, :recordrelease, :playhold, :playrelease, :deleteallplaylist, :deleteallmpegs, :remotecopy, :wpswitch, :wpaudioin, :wpactive, :wpinactive, :wpaudioon, :wpaudiooff, :wpmodeon, :wpmodeoff, :wparrange, :wpbackground, :wpcrop, :wppriority, :wpbordon, :wpbordoff, :wppreset, :atrswitch, :atrmute, :atrunmute, :atrtxmute, :atrtxunmute, :atrhpvol, :atrlovol, :atrlovolup, :atrlovoldown, :atrhpvolup, :atrhpvoldown, :openrelay, :closerelay, :videowall, :script, :goto, :tcpclient, :udpclient, :reboot, :gc_serial, :gc_openrelay, :gc_closerelay, :gc_ir]"},{"id":"Modes","name":"Modes","value":"(1..8).map(&.to_s)"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"atrhpvol(ip_address:String,*args,**options)-instance-method","name":"atrhpvol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvol\", ip_address, *args, **options)"}},{"html_id":"atrhpvoldown(ip_address:String,*args,**options)-instance-method","name":"atrhpvoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvoldown\", ip_address, *args, **options)"}},{"html_id":"atrhpvolup(ip_address:String,*args,**options)-instance-method","name":"atrhpvolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvolup\", ip_address, *args, **options)"}},{"html_id":"atrlovol(ip_address:String,*args,**options)-instance-method","name":"atrlovol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovol\", ip_address, *args, **options)"}},{"html_id":"atrlovoldown(ip_address:String,*args,**options)-instance-method","name":"atrlovoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovoldown\", ip_address, *args, **options)"}},{"html_id":"atrlovolup(ip_address:String,*args,**options)-instance-method","name":"atrlovolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovolup\", ip_address, *args, **options)"}},{"html_id":"atrmute(ip_address:String,*args,**options)-instance-method","name":"atrmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrmute\", ip_address, *args, **options)"}},{"html_id":"atrswitch(ip_address:String,*args,**options)-instance-method","name":"atrswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrswitch\", ip_address, *args, **options)"}},{"html_id":"atrtxmute(ip_address:String,*args,**options)-instance-method","name":"atrtxmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxmute\", ip_address, *args, **options)"}},{"html_id":"atrtxunmute(ip_address:String,*args,**options)-instance-method","name":"atrtxunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxunmute\", ip_address, *args, **options)"}},{"html_id":"atrunmute(ip_address:String,*args,**options)-instance-method","name":"atrunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrunmute\", ip_address, *args, **options)"}},{"html_id":"audiofollow(output:InOut,*args,**options)-instance-method","name":"audiofollow","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"audiofollow","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiofollow\", get_output(output), *args, **options)"}},{"html_id":"audiooff(ip_address:String,*args,**options)-instance-method","name":"audiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiooff\", ip_address, *args, **options)"}},{"html_id":"audioon(ip_address:String,*args,**options)-instance-method","name":"audioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audioon\", ip_address, *args, **options)"}},{"html_id":"autocc(input:InOut,*args,**options)-instance-method","name":"autocc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"autocc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autocc\", get_input(input), *args, **options)"}},{"html_id":"autohdmiaudio(ip_address:String,*args,**options)-instance-method","name":"autohdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"autohdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autohdmiaudio\", ip_address, *args, **options)"}},{"html_id":"closerelay(ip_address:String,*args,**options)-instance-method","name":"closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"closerelay\", ip_address, *args, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"@lookup.each_key do |ip_address|\n monitor(ip_address, priority: 0)\n monitornotify(ip_address, priority: 0)\nend\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Maintaining Connection --\"\n end\n monitornotify(@list.first, priority: 0)\nend\n"}},{"html_id":"cropref(output:InOut,*args,**options)-instance-method","name":"cropref","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"cropref","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"cropref\", get_output(output), *args, **options)"}},{"html_id":"deleteallmpegs(ip_address:String,*args,**options)-instance-method","name":"deleteallmpegs","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallmpegs","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallmpegs\", ip_address, *args, **options)"}},{"html_id":"deleteallplaylist(ip_address:String,*args,**options)-instance-method","name":"deleteallplaylist","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallplaylist","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallplaylist\", ip_address, *args, **options)"}},{"html_id":"deletefile(ip_address:String,*args,**options)-instance-method","name":"deletefile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletefile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletefile\", ip_address, *args, **options)"}},{"html_id":"deletempegfile(ip_address:String,*args,**options)-instance-method","name":"deletempegfile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletempegfile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletempegfile\", ip_address, *args, **options)"}},{"html_id":"disablecc(input:InOut,*args,**options)-instance-method","name":"disablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"disablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablecc\", get_input(input), *args, **options)"}},{"html_id":"disablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"disablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"disablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L48"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L111"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"do_send(*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L201"},"def":{"name":"do_send","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"cmd = args.join(' ')\nlogger.debug do\n \"sending #{cmd}\"\nend\nsend(\"#{cmd}\\r\\n\", **options)\n"}},{"html_id":"dsrecord(ip_address:String,*args,**options)-instance-method","name":"dsrecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dsrecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dsrecord\", ip_address, *args, **options)"}},{"html_id":"dvioff(output:InOut,*args,**options)-instance-method","name":"dvioff","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvioff","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvioff\", get_output(output), *args, **options)"}},{"html_id":"dvion(output:InOut,*args,**options)-instance-method","name":"dvion","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvion","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvion\", get_output(output), *args, **options)"}},{"html_id":"dvrswitch1(ip_address:String,*args,**options)-instance-method","name":"dvrswitch1","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch1","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch1\", ip_address, *args, **options)"}},{"html_id":"dvrswitch2(ip_address:String,*args,**options)-instance-method","name":"dvrswitch2","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch2","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch2\", ip_address, *args, **options)"}},{"html_id":"enablecc(input:InOut,*args,**options)-instance-method","name":"enablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"enablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablecc\", get_input(input), *args, **options)"}},{"html_id":"enablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"enablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"enablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"fastforward(ip_address:String,*args,**options)-instance-method","name":"fastforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"fastforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"fastforward\", ip_address, *args, **options)"}},{"html_id":"gc_closerelay(ip_address:String,*args,**options)-instance-method","name":"gc_closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_closerelay\", ip_address, *args, **options)"}},{"html_id":"gc_ir(ip_address:String,*args,**options)-instance-method","name":"gc_ir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_ir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_ir\", ip_address, *args, **options)"}},{"html_id":"gc_openrelay(ip_address:String,*args,**options)-instance-method","name":"gc_openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_openrelay\", ip_address, *args, **options)"}},{"html_id":"gc_serial(ip_address:String,*args,**options)-instance-method","name":"gc_serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_serial\", ip_address, *args, **options)"}},{"html_id":"getStatus(output:InOut,*args,**options)-instance-method","name":"getStatus","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"getStatus","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"getStatus\", get_output(output), *args, **options)"}},{"html_id":"goto(ip_address:String,*args,**options)-instance-method","name":"goto","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"goto","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"goto\", ip_address, *args, **options)"}},{"html_id":"live(ip_address:String,*args,**options)-instance-method","name":"live","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"live","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"live\", ip_address, *args, **options)"}},{"html_id":"local(ip_address:String,*args,**options)-instance-method","name":"local","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"local","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"local\", ip_address, *args, **options)"}},{"html_id":"media_source(mode:String)-instance-method","name":"media_source","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L58"},"def":{"name":"media_source","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if mode == \"live\"\n do_send(Command::Live)\nelse\n if Modes.includes?(mode)\n do_send(Command::Local, mode)\n else\n raise(\"invalid mode #{mode}\")\n end\nend"}},{"html_id":"modeoff(input:InOut,*args,**options)-instance-method","name":"modeoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"modeoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"modeoff\", get_input(input), *args, **options)"}},{"html_id":"monitor(ip_address:String,*args,**options)-instance-method","name":"monitor","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitor","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitor\", ip_address, *args, **options)"}},{"html_id":"monitornotify(ip_address:String,*args,**options)-instance-method","name":"monitornotify","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitornotify","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitornotify\", ip_address, *args, **options)"}},{"html_id":"mpeg(ip_address:String,*args,**options)-instance-method","name":"mpeg","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpeg","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpeg\", ip_address, *args, **options)"}},{"html_id":"mpegall(ip_address:String,*args,**options)-instance-method","name":"mpegall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpegall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpegall\", ip_address, *args, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L155"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"address = index.is_a?(Int32) && (val = @encoders[index]? || @decoders[index]?) ? val : index.as(String)\nif state\n if layer.audio_video? || layer.video?\n dvioff(address)\n end\n if layer.audio_video? || layer.audio?\n audiooff(address)\n end\nelse\n if layer.audio_video? || layer.video?\n dvion(address)\n end\n if layer.audio_video? || layer.audio?\n audioon(address)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = (setting?(Hash(String, String), :inputs)) || ({} of String => String)\n@outputs = (setting?(Hash(String, String), :outputs)) || ({} of String => String)\n@encoders = @inputs.keys\n@decoders = @outputs.keys\n@lookup = @inputs.merge(@outputs)\n@list = @encoders + @decoders\n"}},{"html_id":"openrelay(ip_address:String,*args,**options)-instance-method","name":"openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"openrelay\", ip_address, *args, **options)"}},{"html_id":"pause(ip_address:String,*args,**options)-instance-method","name":"pause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"pause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"pause\", ip_address, *args, **options)"}},{"html_id":"play(ip_address:String,*args,**options)-instance-method","name":"play","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"play","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"play\", ip_address, *args, **options)"}},{"html_id":"playhold(ip_address:String,*args,**options)-instance-method","name":"playhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playhold\", ip_address, *args, **options)"}},{"html_id":"playrelease(ip_address:String,*args,**options)-instance-method","name":"playrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playrelease\", ip_address, *args, **options)"}},{"html_id":"readresponse(ip_address:String,*args,**options)-instance-method","name":"readresponse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"readresponse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"readresponse\", ip_address, *args, **options)"}},{"html_id":"reboot(ip_address:String,*args,**options)-instance-method","name":"reboot","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"reboot","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"reboot\", ip_address, *args, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L170"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nresp = data.split(':')\ncase resp.size\nwhen 13\n self[resp[0]] = {communications: resp[1] == \"1\", dvioff: resp[2] == \"1\", scaler: resp[3] == \"1\", source_detected: resp[4] == \"1\", mode: resp[5], audio_enabled: resp[6] == \"1\", video_stream: resp[7].to_i, audio_stream: resp[8] == \"follow video\" ? resp[8] : resp[8].to_i, playlist: resp[9], colorspace: resp[10], hdmiaudio: resp[11], resolution: resp[12]}\nwhen 10\n self[resp[0]] = resp\nelse\n logger.warn do\n \"unknown response type: #{resp}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"record(ip_address:String,*args,**options)-instance-method","name":"record","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"record","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"record\", ip_address, *args, **options)"}},{"html_id":"recordhold(ip_address:String,*args,**options)-instance-method","name":"recordhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordhold\", ip_address, *args, **options)"}},{"html_id":"recordrelease(ip_address:String,*args,**options)-instance-method","name":"recordrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordrelease\", ip_address, *args, **options)"}},{"html_id":"remotecopy(ip_address:String,*args,**options)-instance-method","name":"remotecopy","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"remotecopy","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"remotecopy\", ip_address, *args, **options)"}},{"html_id":"rewind(ip_address:String,*args,**options)-instance-method","name":"rewind","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"rewind","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"rewind\", ip_address, *args, **options)"}},{"html_id":"script(ip_address:String,*args,**options)-instance-method","name":"script","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"script","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"script\", ip_address, *args, **options)"}},{"html_id":"sendir(ip_address:String,*args,**options)-instance-method","name":"sendir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendir\", ip_address, *args, **options)"}},{"html_id":"sendirraw(ip_address:String,*args,**options)-instance-method","name":"sendirraw","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendirraw","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendirraw\", ip_address, *args, **options)"}},{"html_id":"serial(ip_address:String,*args,**options)-instance-method","name":"serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"serial\", ip_address, *args, **options)"}},{"html_id":"serialhex(ip_address:String,wait_time:Int32=1,*data,**options)-instance-method","name":"serialhex","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"args_string":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","args_html":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L85"},"def":{"name":"serialhex","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":2,"visibility":"Public","body":"do_send(\"serialhex\", wait_time, ip_address, *data, **options)"}},{"html_id":"stepforward(ip_address:String,*args,**options)-instance-method","name":"stepforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepforward\", ip_address, *args, **options)"}},{"html_id":"stepreverse(ip_address:String,*args,**options)-instance-method","name":"stepreverse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepreverse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepreverse\", ip_address, *args, **options)"}},{"html_id":"stop(ip_address:String,*args,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stop\", ip_address, *args, **options)"}},{"html_id":"stoprecord(ip_address:String,*args,**options)-instance-method","name":"stoprecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stoprecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stoprecord\", ip_address, *args, **options)"}},{"html_id":"switch(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L103"},"def":{"name":"switch","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n dvion(output_actual, **options)\n audioon(output_actual, **options)\n audiofollow(output_actual, **options)\n self[\"video#{output_actual}\"] = input_actual\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switch, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n output_actual = get_output(o)\n dvioff(output_actual, **options)\n audiooff(output_actual, **options)\n end\n end\nend"}},{"html_id":"switch_audio(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L131"},"def":{"name":"switch_audio","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n audioon(input_actual, **options)\n audioon(output_actual, **options)\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switchaudio, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n audiooff(get_output(o), **options)\n end\n end\nend"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L52"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::VideoSource, input, **options)"}},{"html_id":"tcpclient(ip_address:String,*args,**options)-instance-method","name":"tcpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"tcpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"tcpclient\", ip_address, *args, **options)"}},{"html_id":"udpclient(ip_address:String,*args,**options)-instance-method","name":"udpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"udpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"udpclient\", ip_address, *args, **options)"}},{"html_id":"uncompressedoff(input:InOut,*args,**options)-instance-method","name":"uncompressedoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"uncompressedoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"uncompressedoff\", get_input(input), *args, **options)"}},{"html_id":"unpause(ip_address:String,*args,**options)-instance-method","name":"unpause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"unpause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"unpause\", ip_address, *args, **options)"}},{"html_id":"videowall(ip_address:String,*args,**options)-instance-method","name":"videowall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"videowall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"videowall\", ip_address, *args, **options)"}},{"html_id":"volume(output:InOut,*args,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"volume","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"volume\", get_output(output), *args, **options)"}},{"html_id":"wpactive(ip_address:String,*args,**options)-instance-method","name":"wpactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpactive\", ip_address, *args, **options)"}},{"html_id":"wparrange(ip_address:String,*args,**options)-instance-method","name":"wparrange","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wparrange","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wparrange\", ip_address, *args, **options)"}},{"html_id":"wpaudioin(ip_address:String,*args,**options)-instance-method","name":"wpaudioin","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioin","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioin\", ip_address, *args, **options)"}},{"html_id":"wpaudiooff(ip_address:String,*args,**options)-instance-method","name":"wpaudiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudiooff\", ip_address, *args, **options)"}},{"html_id":"wpaudioon(ip_address:String,*args,**options)-instance-method","name":"wpaudioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioon\", ip_address, *args, **options)"}},{"html_id":"wpbackground(ip_address:String,*args,**options)-instance-method","name":"wpbackground","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbackground","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbackground\", ip_address, *args, **options)"}},{"html_id":"wpbordoff(ip_address:String,*args,**options)-instance-method","name":"wpbordoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordoff\", ip_address, *args, **options)"}},{"html_id":"wpbordon(ip_address:String,*args,**options)-instance-method","name":"wpbordon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordon\", ip_address, *args, **options)"}},{"html_id":"wpcrop(ip_address:String,*args,**options)-instance-method","name":"wpcrop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpcrop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpcrop\", ip_address, *args, **options)"}},{"html_id":"wpinactive(ip_address:String,*args,**options)-instance-method","name":"wpinactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpinactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpinactive\", ip_address, *args, **options)"}},{"html_id":"wpmodeoff(ip_address:String,*args,**options)-instance-method","name":"wpmodeoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeoff\", ip_address, *args, **options)"}},{"html_id":"wpmodeon(ip_address:String,*args,**options)-instance-method","name":"wpmodeon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeon\", ip_address, *args, **options)"}},{"html_id":"wppreset(ip_address:String,*args,**options)-instance-method","name":"wppreset","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppreset","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppreset\", ip_address, *args, **options)"}},{"html_id":"wppriority(ip_address:String,*args,**options)-instance-method","name":"wppriority","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppriority","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppriority\", ip_address, *args, **options)"}},{"html_id":"wpswitch(ip_address:String,*args,**options)-instance-method","name":"wpswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpswitch\", ip_address, *args, **options)"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Command","path":"Amx/Svsi/NSeriesEncoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"VideoSource","name":"VideoSource","value":"1"},{"id":"Live","name":"Live","value":"2"},{"id":"Local","name":"Local","value":"3"},{"id":"Disable","name":"Disable","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"Unmute","name":"Unmute","value":"6"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"disable?-instance-method","name":"disable?","abstract":false,"def":{"name":"disable?","visibility":"Public","body":"self == Disable"}},{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}},{"html_id":"video_source?-instance-method","name":"video_source?","abstract":false,"def":{"name":"video_source?","visibility":"Public","body":"self == VideoSource"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/InOut","path":"Amx/Svsi/NSeriesEncoder/InOut.html","kind":"alias","full_name":"Amx::Svsi::NSeriesEncoder::InOut","name":"InOut","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Int32 | String)","aliased_html":"Int32 | String","const":false,"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"}},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Input","path":"Amx/Svsi/NSeriesEncoder/Input.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmionly","name":"Hdmionly","value":"0"},{"id":"Vgaonly","name":"Vgaonly","value":"1"},{"id":"Hdmivga","name":"Hdmivga","value":"2"},{"id":"Vgahdmi","name":"Vgahdmi","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"hdmionly?-instance-method","name":"hdmionly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L12"},"def":{"name":"hdmionly?","visibility":"Public","body":"self == Hdmionly"}},{"html_id":"hdmivga?-instance-method","name":"hdmivga?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L14"},"def":{"name":"hdmivga?","visibility":"Public","body":"self == Hdmivga"}},{"html_id":"vgahdmi?-instance-method","name":"vgahdmi?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L15"},"def":{"name":"vgahdmi?","visibility":"Public","body":"self == Vgahdmi"}},{"html_id":"vgaonly?-instance-method","name":"vgaonly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L13"},"def":{"name":"vgaonly?","visibility":"Public","body":"self == Vgaonly"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Response","path":"Amx/Svsi/NSeriesEncoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L82"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Name","name":"Name","value":"0"},{"id":"Stream","name":"Stream","value":"1"},{"id":"Playmode","name":"Playmode","value":"2"},{"id":"Mute","name":"Mute","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L86"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L83"},"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L85"},"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L84"},"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}}]}]},{"html_id":"drivers/Amx/Svsi/VirtualSwitcher","path":"Amx/Svsi/VirtualSwitcher.html","kind":"class","full_name":"Amx::Svsi::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L22"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nconnect(map) do |mod, stream|\n if layer.all? || layer.audio?\n mod.switch_audio(stream)\n end\n if layer.all? || layer.video?\n mod.switch_video(stream)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L18"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"decoders.each(&.switch_to(input))"}}]}]}]},{"html_id":"drivers/Ashrae","path":"Ashrae.html","kind":"module","full_name":"Ashrae","name":"Ashrae","abstract":false,"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Ashrae/BACnet","path":"Ashrae/BACnet.html","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L157"},"def":{"name":"connected","visibility":"Public","body":"bbmd_ip = setting?(String, :bbmd_ip)\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"device(device_id:UInt32)-instance-method","name":"device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L205"},"def":{"name":"device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device_details((get_device(device_id)).not_nil!)"}},{"html_id":"devices-instance-method","name":"devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L209"},"def":{"name":"devices","visibility":"Public","body":"device_registry.devices.map do |device|\n device_details(device)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L55"},"def":{"name":"on_load","visibility":"Public","body":"server = UDPSocket.new\nserver.bind(\"0.0.0.0\", 47808)\nserver.write_timeout = 200.milliseconds\n@udp_server = server\nqueue.timeout = 2.seconds\nclient = ::BACnet::Client::IPv4.new(0, 2.seconds)\nclient.on_transmit do |message, address|\n if address.address == Socket::IPAddress::BROADCAST\n if @bbmd_forwarding.size == 4\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::ForwardedNPDU\n message.data_link.address.ip1 = @bbmd_forwarding[0]\n message.data_link.address.ip2 = @bbmd_forwarding[1]\n message.data_link.address.ip3 = @bbmd_forwarding[2]\n message.data_link.address.ip4 = @bbmd_forwarding[3]\n message.data_link.address.port = 47808_u16\n end\n logger.debug do\n \"sending broadcase message #{message.inspect}\"\n end\n devices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\n devices.each do |dev|\n begin\n server.send(message, to: dev.address)\n rescue error\n logger.warn(exception: error) do\n \"error sending message to #{dev.address}\"\n end\n end\n end\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::DistributeBroadcastToNetwork\n payload = DispatchProtocol.new\n payload.message = DispatchProtocol::MessageType::WRITE\n payload.ip_address = @bbmd_ip.address\n payload.id_or_port = @bbmd_ip.port.to_u64\n payload.data = message.to_slice\n transport.send(payload.to_slice)\n else\n server.send(message, to: address)\n end\nend\n@bacnet_client = client\nregistry = ::BACnet::Client::DeviceRegistry.new(client, logger)\nregistry.on_new_device do |device|\n new_device_found(device)\nend\n@device_registry = registry\nspawn do\n process_data(server, client)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L128"},"def":{"name":"on_unload","visibility":"Public","body":"udp_server.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L132"},"def":{"name":"on_update","visibility":"Public","body":"bbmd_ip = (setting?(String, :bbmd_ip)) || \"\"\nbbmd_forwarding = (setting?(String, :bbmd_forwarding)) || \"\"\n@bbmd_forwarding = (bbmd_forwarding.strip.split(\".\")).select(&.presence).map(&.to_u8)\nif bbmd_ip.presence\n @bbmd_ip = Socket::IPAddress.new(bbmd_ip, 47808)\nend\n@verbose_debug = (setting?(Bool, :verbose_debug)) || false\nschedule.clear\nschedule.in(5.seconds) do\n query_known_devices\nend\npoll_period = (setting?(UInt32, :poll_period)) || 3\nschedule.every(poll_period.minutes) do\n logger.debug do\n \"--- Polling all known bacnet devices\"\n end\n keys = @mutex.synchronize do\n @devices.keys\n end\n keys.each do |device_id|\n poll_device(device_id)\n end\nend\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"packets_processed:UInt64-instance-method","name":"packets_processed","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L153"},"def":{"name":"packets_processed","visibility":"Public","body":"@packets_processed"}},{"html_id":"perform_discovery:Nil-instance-method","name":"perform_discovery","doc":"Performs a WhoIs discovery against the BACnet network","summary":"

Performs a WhoIs discovery against the BACnet network

","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L258"},"def":{"name":"perform_discovery","return_type":"Nil","visibility":"Public","body":"bacnet_client.who_is"}},{"html_id":"poll_device(device_id:UInt32)-instance-method","name":"poll_device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L232"},"def":{"name":"poll_device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device = get_device(device_id)\nif device\nelse\n return false\nend\nclient = bacnet_client\nobjects = @mutex.synchronize do\n device.objects.dup\nend\nobjects.each do |obj|\n if obj.object_type.in?(::BACnet::Client::DeviceRegistry::OBJECTS_WITH_VALUES)\n else\n next\n end\n name = object_binding(device_id, obj)\n queue(name: name, priority: 0, timeout: 500.milliseconds) do |task|\n spawn_action(task) do\n obj.sync_value(client)\n self[name] = object_value(obj)\n end\n end\n Fiber.yield\nend\ntrue\n"}},{"html_id":"query_known_devices-instance-method","name":"query_known_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L213"},"def":{"name":"query_known_devices","visibility":"Public","body":"sent = [] of UInt32\n@seen_devices.each_value do |info|\n sent << info.id.not_nil!\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\nend\ndevices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\ndevices.each do |info|\n if id = info.id\n if id.in?(sent)\n next\n end\n sent << id\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\n end\nend\n\"inspected #{sent.size} devices\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/ashrae/bacnet.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L406"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"protocol = (IO::Memory.new(data)).read_bytes(DispatchProtocol)\nlogger.debug do\n \"received message: #{protocol.message} #{protocol.ip_address}:#{protocol.id_or_port} (size #{protocol.data_size})\"\nend\nif protocol.message.received?\n message = (IO::Memory.new(protocol.data)).read_bytes(::BACnet::Message::IPv4)\n if @verbose_debug\n logger.debug do\n \"dispatch sent:\\n#{message.inspect}\"\n end\n end\n bacnet_client.received(message, @bbmd_ip)\n app = message.application\n is_iam = false\n is_cov = case app\n when ::BACnet::ConfirmedRequest\n app.service.cov_notification?\n when ::BACnet::UnconfirmedRequest\n is_iam = app.service.i_am?\n app.service.cov_notification?\n else\n false\n end\n network = message.network\n if network && is_cov\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n if network.source_specifier\n addr = network.source_address\n net = network.source.network\n end\n device = message.objects.find do |obj|\n obj.tag == 1\n end.not_nil!.to_object_id.instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, net, addr)\n end\n if network && is_iam\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n details = ::BACnet::Client::Message::IAm.parse(message)\n device = details[:object_id].instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, details[:network], details[:address])\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_seen_devices-instance-method","name":"save_seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L631"},"def":{"name":"save_seen_devices","visibility":"Public","body":"define_setting(:known_devices, @seen_devices.values)"}},{"html_id":"seen_devices:Hash(UInt32,Ashrae::DeviceAddress)-instance-method","name":"seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L463"},"def":{"name":"seen_devices","visibility":"Public","body":"@seen_devices"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/ashrae/bacnet.cr","line_number":601,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L601"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ndevice_id = mac.to_u32?\nif device_id\nelse\n return nil\nend\ndevice = get_device(device_id)\nif device\nelse\n return nil\nend\nobj_type_string, instance_id_string = id.split('[', 2)\ninstance_id = instance_id_string.rchop.to_u32?\nif instance_id\nelse\n return nil\nend\nobject_type = ObjectType.parse?(obj_type_string)\nif object_type\nelse\n return nil\nend\nobject = get_object_details(device_id, instance_id, object_type)\nif object.changed < 1.minutes.ago\n begin\n object.sync_value(bacnet_client)\n rescue error\n logger.warn(exception: error) do\n \"failed to obtain latest value for sensor at #{mac}.#{id}\"\n end\n end\nend\nto_sensor(device_id, device, object)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/ashrae/bacnet.cr","line_number":577,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L577"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n if mac\n device_id = mac.to_u32?\n if device_id\n else\n return NO_MATCH\n end\n device = get_device(device_id)\n if device\n else\n return NO_MATCH\n end\n return device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n matches = @mutex.synchronize do\n @devices.map do |__temp_100|\n device_id, device = __temp_100\n device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"update_value(device_id:UInt32,instance_id:UInt32,object_type:ObjectType)-instance-method","name":"update_value","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","args_html":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","location":{"filename":"src/ashrae/bacnet.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L264"},"def":{"name":"update_value","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"obj = get_object_details(device_id, instance_id, object_type)\nname = object_binding(device_id, obj)\nqueue(name: name, priority: 50) do |task|\n spawn_action(task) do\n obj.sync_value(bacnet_client)\n self[name] = object_value(obj)\n end\nend\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L29"},"def":{"name":"websocket_headers","visibility":"Public","body":"dispatcher_key = setting?(String, :dispatcher_key)\nHTTP::Headers {\"Authorization\" => \"Bearer #{dispatcher_key}\", \"X-Module-ID\" => module_id}\n"}},{"html_id":"write_binary(device_id:UInt32,instance_id:UInt32,value:Bool,object_type:ObjectType=ObjectType::BinaryValue)-instance-method","name":"write_binary","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L371"},"def":{"name":"write_binary","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"val = value ? 1 : 0\nobject = get_object_details(device_id, instance_id, object_type)\nval = ::BACnet::Object.new.set_value(val)\nval.short_tag = 9_u8\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, val, network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_double(device_id:UInt32,instance_id:UInt32,value:Float64,object_type:ObjectType=ObjectType::LargeAnalogValue)-instance-method","name":"write_double","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L299"},"def":{"name":"write_double","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_real(device_id:UInt32,instance_id:UInt32,value:Float32,object_type:ObjectType=ObjectType::AnalogValue)-instance-method","name":"write_real","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L281"},"def":{"name":"write_real","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_signed_int(device_id:UInt32,instance_id:UInt32,value:Int64,object_type:ObjectType=ObjectType::IntegerValue)-instance-method","name":"write_signed_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L335"},"def":{"name":"write_signed_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_string(device_id:UInt32,instance_id:UInt32,value:String,object_type:ObjectType=ObjectType::CharacterStringValue)-instance-method","name":"write_string","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L353"},"def":{"name":"write_string","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_unsigned_int(device_id:UInt32,instance_id:UInt32,value:UInt64,object_type:ObjectType=ObjectType::PositiveIntegerValue)-instance-method","name":"write_unsigned_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L317"},"def":{"name":"write_unsigned_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}}],"types":[{"html_id":"drivers/Ashrae/BACnet/DeviceInfo","path":"Ashrae/BACnet/DeviceInfo.html","kind":"alias","full_name":"Ashrae::BACnet::DeviceInfo","name":"DeviceInfo","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::Client::DeviceRegistry::DeviceInfo","aliased_html":"BACnet::Client::DeviceRegistry::DeviceInfo","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}},{"html_id":"drivers/Ashrae/BACnet/ObjectType","path":"Ashrae/BACnet/ObjectType.html","kind":"alias","full_name":"Ashrae::BACnet::ObjectType","name":"ObjectType","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L262"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::ObjectIdentifier::ObjectType","aliased_html":"BACnet::ObjectIdentifier::ObjectType","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}}]},{"html_id":"drivers/Ashrae/BACnetDataPoints","path":"Ashrae/BACnetDataPoints.html","kind":"class","full_name":"Ashrae::BACnetDataPoints","name":"BACnetDataPoints","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_datapoints.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_datapoints.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\npoints = setting(Hash(String, String), :points)\npoints.each do |__temp_167|\n key, status = __temp_167\n bacnet.subscribe(status) do |_sub, payload|\n self[key] = JSON.parse(payload)\n end\nend\n"}}]},{"html_id":"drivers/Ashrae/DeviceAddress","path":"Ashrae/DeviceAddress.html","kind":"class","full_name":"Ashrae::DeviceAddress","name":"DeviceAddress","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"constructors":[{"html_id":"new(ip:String,id:UInt32|Nil,net:UInt16|Nil,addr:Nil|String)-class-method","name":"new","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"args_string":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","args_html":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L8"},"def":{"name":"new","args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ip, id, net, addr)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"addr:String|Nil-instance-method","name":"addr","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L14"},"def":{"name":"addr","return_type":"String | ::Nil","visibility":"Public","body":"@addr"}},{"html_id":"address-instance-method","name":"address","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L16"},"def":{"name":"address","visibility":"Public","body":"Socket::IPAddress.new(@ip, 47808)"}},{"html_id":"id:UInt32|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L12"},"def":{"name":"id","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"identifier-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L20"},"def":{"name":"identifier","visibility":"Public","body":"::BACnet::ObjectIdentifier.new(:device, @id.not_nil!)"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L11"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"net:UInt16|Nil-instance-method","name":"net","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L13"},"def":{"name":"net","return_type":"UInt16 | ::Nil","visibility":"Public","body":"@net"}}]},{"html_id":"drivers/Ashrae/DispatchProtocol","path":"Ashrae/DispatchProtocol.html","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Ashrae::DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend}, {type: \"bytes\", name: data, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L26"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}}],"types":[{"html_id":"drivers/Ashrae/DispatchProtocol/MessageType","path":"Ashrae/DispatchProtocol/MessageType.html","kind":"enum","full_name":"Ashrae::DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L28"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0"},{"id":"CLOSED","name":"CLOSED","value":"1"},{"id":"RECEIVED","name":"RECEIVED","value":"2"},{"id":"WRITE","name":"WRITE","value":"3"},{"id":"CLOSE","name":"CLOSE","value":"4"}],"namespace":{"html_id":"drivers/Ashrae/DispatchProtocol","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L33"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L30"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L29"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L31"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L32"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]}]},{"html_id":"drivers/Aver","path":"Aver.html","kind":"module","full_name":"Aver","name":"Aver","abstract":false,"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Aver/Auth","path":"Aver/Auth.html","kind":"struct","full_name":"Aver::Auth","name":"Auth","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L14"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Aver/AxisSelect","path":"Aver/AxisSelect.html","kind":"enum","full_name":"Aver::AxisSelect","name":"AxisSelect","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pan","name":"Pan","value":"0"},{"id":"Tilt","name":"Tilt","value":"1"},{"id":"Zoom","name":"Zoom","value":"2"},{"id":"Focus","name":"Focus","value":"3"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L8"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L5"},"def":{"name":"pan?","visibility":"Public","body":"self == Pan"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L6"},"def":{"name":"tilt?","visibility":"Public","body":"self == Tilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L7"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Aver/Cam520Pro","path":"Aver/Cam520Pro.html","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"send(\"token:#{authenticate}\")\nschedule.clear\nschedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.minutes) do\n keep_alive\nend\npan?\ntilt?\nzoom?\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L67"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L129"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\nif pan_speed.abs >= tilt_speed.abs\n axis = AxisSelect::Pan\n stop = AxisSelect::Tilt\n dir = pan_speed >= 0.0 ? 0 : 1\n cmd = pan_speed.zero? ? 2 : 1\nelse\n stop = AxisSelect::Pan\n axis = AxisSelect::Tilt\n dir = tilt_speed >= 0.0 ? 0 : 1\n cmd = tilt_speed.zero? ? 2 : 1\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: stop.to_i, dir: dir, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: axis.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"keep_alive-instance-method","name":"keep_alive","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L95"},"def":{"name":"keep_alive","visibility":"Public","body":"send(\"alive\")"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L292"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L30"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.before_request do |request|\n logger.debug do\n \"performing request: #{request.method} #{request.path}\\n#{String.new((request.body.as(IO::Memory)).to_slice)}\"\n end\n if request.path != \"/login_name\"\n bearer = bearer_token.presence || authenticate\n request.headers[\"Authorization\"] = \"Bearer #{bearer}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\nif @username != \"spec\"\n device_host = URI.parse(config.uri.not_nil!)\n device_host.port = nil\n transport.http_uri_override = device_host\nend\n@zoom_max = setting(Int32, :zoom_max)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L219"},"def":{"name":"pan?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_p_s\"}.to_json)\n@pan_pos = parse(response, Int32)\n"}},{"html_id":"pan_direct(position:Int32)-instance-method","name":"pan_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L199"},"def":{"name":"pan_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_p\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"pan_pos:Int32-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L99"},"def":{"name":"pan_pos","return_type":"Int32","visibility":"Public","body":"@pan_pos"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy interface as no power command, camera is always on","summary":"

dummy interface as no power command, camera is always on

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/aver/cam520_pro.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L350"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L170"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n zoom_native(zoom_pos)\n pan_direct(pan_pos)\n tilt_direct(tilt_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task):Nil-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task) : Nil","args_html":"(data, task) : Nil","location":{"filename":"src/aver/cam520_pro.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"return_type":"Nil","visibility":"Public","body":"begin\n data = String.new(data)\n logger.debug do\n \"Camera sent: #{data}\"\n end\n payload = (Event.from_json(data)).data\n case payload\n in Option\n value = payload.value.to_i\n case payload.option\n in .ptz_ps?\n @pan_pos = value\n in .ptz_ts?\n @tilt_pos = value\n in .ptz_zs?\n @zoom_pos = value\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n end\n in Event\n raise(\"not possible\")\n end\nensure\n task.try(&.success)\nend"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L189"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L181"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan?\ntilt?\nzoom?\n@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/aver/cam520_pro.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L313"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"spawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Tilt.to_i, dir: 0, cmd: 2}.to_json)\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Pan.to_i, dir: 0, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: 0, cmd: 2}.to_json)\nparse(response, Nil)\n"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L228"},"def":{"name":"tilt?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_t_s\"}.to_json)\n@tilt_pos = parse(response, Int32)\n"}},{"html_id":"tilt_direct(position:Int32)-instance-method","name":"tilt_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L209"},"def":{"name":"tilt_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_t\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"tilt_pos:Int32-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L100"},"def":{"name":"tilt_pos","return_type":"Int32","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L246"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .stop?\n dir = 0\n cmd = 2\nin .out?\n dir = 1\n cmd = 1\nin .in?\n dir = 0\n cmd = 1\nend\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L279"},"def":{"name":"zoom?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_z_s\"}.to_json)\n@zoom_pos = value = parse(response, Int32)\nself[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n"}},{"html_id":"zoom_native(position:Int32)-instance-method","name":"zoom_native","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L269"},"def":{"name":"zoom_native","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_z\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"zoom_pos:Int32-instance-method","name":"zoom_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L101"},"def":{"name":"zoom_pos","return_type":"Int32","visibility":"Public","body":"@zoom_pos"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L240"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_native((percentage * @zoom_max.to_f).to_i)\n"}}],"macros":[{"html_id":"parse(response,klass=::Union(Nil,::Nil))-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"args_string":"(response, klass = ::Union(Nil, ::Nil))","args_html":"(response, klass = ::Union(Nil, ::Nil))","location":{"filename":"src/aver/cam520_pro.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L79"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"visibility":"Public","body":" check_success(\n{{ response }}\n)\n HttpResponse(\n{{ klass }}\n).from_json(\n{{ response }}\n.body.not_nil!).data\n \n"}}],"types":[{"html_id":"drivers/Aver/Cam520Pro/Presets","path":"Aver/Cam520Pro/Presets.html","kind":"alias","full_name":"Aver::Cam520Pro::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L167"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int32, Int32, Int32))","aliased_html":"Hash(String, {Int32, Int32, Int32})","const":false,"namespace":{"html_id":"drivers/Aver/Cam520Pro","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro"}}]},{"html_id":"drivers/Aver/Event","path":"Aver/Event.html","kind":"struct","full_name":"Aver::Event","name":"Event","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Aver/EventOption","kind":"struct","full_name":"Aver::EventOption","name":"EventOption"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"event\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'event' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'event'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"option\"\n EventOption.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'event' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L28"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]},{"html_id":"drivers/Aver/EventOption","path":"Aver/EventOption.html","kind":"struct","full_name":"Aver::EventOption","name":"EventOption","abstract":false,"superclass":{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Option-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L51"},"def":{"name":"data","return_type":"Option","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Aver/HttpResponse","path":"Aver/HttpResponse.html","kind":"struct","full_name":"Aver::HttpResponse(Data)","name":"HttpResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L20"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L22"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"msg:String-instance-method","name":"msg","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L21"},"def":{"name":"msg","return_type":"String","visibility":"Public","body":"@msg"}}]},{"html_id":"drivers/Aver/Option","path":"Aver/Option.html","kind":"struct","full_name":"Aver::Option","name":"Option","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"option:OptionType-instance-method","name":"option","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L44"},"def":{"name":"option","return_type":"OptionType","visibility":"Public","body":"@option"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L45"},"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Aver/OptionType","path":"Aver/OptionType.html","kind":"enum","full_name":"Aver::OptionType","name":"OptionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PtzPS","name":"PtzPS","value":"0"},{"id":"PtzTS","name":"PtzTS","value":"1"},{"id":"PtzZS","name":"PtzZS","value":"2"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"ptz_ps?-instance-method","name":"ptz_ps?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L36"},"def":{"name":"ptz_ps?","visibility":"Public","body":"self == PtzPS"}},{"html_id":"ptz_ts?-instance-method","name":"ptz_ts?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L37"},"def":{"name":"ptz_ts?","visibility":"Public","body":"self == PtzTS"}},{"html_id":"ptz_zs?-instance-method","name":"ptz_zs?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L38"},"def":{"name":"ptz_zs?","visibility":"Public","body":"self == PtzZS"}}]}]},{"html_id":"drivers/AWS","path":"AWS.html","kind":"module","full_name":"AWS","name":"AWS","abstract":false,"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AWS/SnsSms","path":"AWS/SnsSms.html","kind":"class","full_name":"AWS::SnsSms","name":"SnsSms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/AWS","kind":"module","full_name":"AWS","name":"AWS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"access_key = setting(String, :aws_access_key)\nsecret = setting(String, :aws_secret)\nuri_parts = (URI.parse(config.uri.not_nil!)).host.not_nil!.split('.')\nservice = uri_parts[0]\nregion = uri_parts[1]\n@signer = Awscr::Signer::Signers::V4.new(service, region, access_key, secret)\ntransport.before_request do |request|\n signer.sign(request)\nend\n"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/aws/sns_sms.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L36"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponses = phone_numbers.map do |number|\n params = URI::Params.build do |form|\n form.add(\"Action\", \"Publish\")\n form.add(\"PhoneNumber\", number)\n form.add(\"Message\", message)\n if source\n if source =~ (/^\\+?\\d{5,14}$/)\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.MM.SMS.OriginationNumber\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source)\n else\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.SNS.SMS.SenderID\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source.gsub(' ', '-'))\n end\n end\n end\n post(\"/?#{params}\", headers: HTTP::Headers {\"Accept\" => \"application/json\"})\nend\nresponses.each do |response|\n if response.success?\n else\n raise(\"request failed with #{response.status_code}: #{response.body}\")\n end\nend\nnil\n"}},{"html_id":"signer:Awscr::Signer::Signers::V4-instance-method","name":"signer","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L21"},"def":{"name":"signer","return_type":"Awscr::Signer::Signers::V4","visibility":"Public","body":"if (__temp_1 = @signer).nil?\n ::raise(::NilAssertionError.new(\"AWS::SnsSms#signer cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"signer?:Awscr::Signer::Signers::V4|Nil-instance-method","name":"signer?","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L21"},"def":{"name":"signer?","return_type":"Awscr::Signer::Signers::V4 | ::Nil","visibility":"Public","body":"@signer"}}]}]},{"html_id":"drivers/Biamp","path":"Biamp.html","kind":"module","full_name":"Biamp","name":"Biamp","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L3"},{"filename":"src/biamp/tesira.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Biamp/Nexia","path":"Biamp/Nexia.html","kind":"class","full_name":"Biamp::Nexia","name":"Nexia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/nexia.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L19"},"def":{"name":"connected","visibility":"Public","body":"send(Bytes[255, 254, 1], wait: false)\nschedule.every(60.seconds, true) do\n query_device_id\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(id:Int32,level:Float64|Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L78"},"def":{"name":"fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = get_range(type)\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = level_actual + range.begin.to_f\nsend(Command[:SETD, device_id, type.mapped_value, id, index, level_actual], name: \"fader_#{id}\")\n"}},{"html_id":"mixer(id:Int32,inouts:Hash(Int32,Array(Int32))|Array(Int32),mute:Bool=false,type:Mixer=Mixer::Matrix)-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"args_string":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","args_html":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","location":{"filename":"src/biamp/nexia.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L44"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"visibility":"Public","body":"value = mute ? 0 : 1\nif inouts.is_a?(Hash)\n inouts.each do |input, outputs|\n outputs.each do |output|\n send(Command[:SET, device_id, type.mapped_value, id, input, output, value])\n end\n end\nelse\n inouts.each do |input|\n send(Command[:SET, device_id, Mixer::Auto.mapped_value, id, input, value])\n end\nend\n"}},{"html_id":"mute(id:Int32,state:Bool=true,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L106"},"def":{"name":"mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"value = state ? 1 : 0\nsend(Command[:SETD, device_id, type.mapped_value, id, index, value], name: \"mute_#{id}\")\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 30.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\", \"\\xFF\\xFE\\u0001\")\n"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/biamp/nexia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L34"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"send(Command[:RECALL, 0, \"PRESET\", number], name: \"preset_#{number}\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L30"},"def":{"name":"query_device_id","visibility":"Public","body":"send(Command[:GETD, 0, \"DEVID\"])"}},{"html_id":"query_fader(id:Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"query_fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L90"},"def":{"name":"query_fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"query_mute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L115"},"def":{"name":"query_mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/nexia.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L119"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"case response = Response.parse(data)\nin Response::FullPath\n logger.debug do\n \"Device responded #{response.message}\"\n end\n result = process_full_path_response(response)\n task.try(&.success(result))\nin Response::OK\n logger.info do\n \"OK\"\n end\n task.try(&.success)\nin Response::Error\n logger.warn do\n \"Device error: #{data}\"\n end\n task.try(&.abort(response.message))\nin Response::Invalid\n logger.error do\n \"Invalid response structure\"\n end\n task.try(&.abort(response.data))\nend"}},{"html_id":"unmute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"unmute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L111"},"def":{"name":"unmute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"mute(id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Nexia/Faders","path":"Biamp/Nexia/Faders.html","kind":"enum","full_name":"Biamp::Nexia::Faders","name":"Faders","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"MatrixCrosspoint","name":"MatrixCrosspoint","value":"3"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"4"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"5"},{"id":"AutoIn","name":"AutoIn","value":"6"},{"id":"AutoOut","name":"AutoOut","value":"7"},{"id":"IoIn","name":"IoIn","value":"8"},{"id":"IoOut","name":"IoOut","value":"9"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_crosspoint?-instance-method","name":"matrix_crosspoint?","abstract":false,"def":{"name":"matrix_crosspoint?","visibility":"Public","body":"self == MatrixCrosspoint"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mixer","path":"Biamp/Nexia/Mixer.html","kind":"enum","full_name":"Biamp::Nexia::Mixer","name":"Mixer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Matrix","name":"Matrix","value":"0"},{"id":"Standard","name":"Standard","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mutes","path":"Biamp/Nexia/Mutes.html","kind":"enum","full_name":"Biamp::Nexia::Mutes","name":"Mutes","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"AutoIn","name":"AutoIn","value":"3"},{"id":"AutoOut","name":"AutoOut","value":"4"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"5"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"6"},{"id":"IoIn","name":"IoIn","value":"7"},{"id":"IoOut","name":"IoOut","value":"8"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]}]},{"html_id":"drivers/Biamp/NTP","path":"Biamp/NTP.html","kind":"module","full_name":"Biamp::NTP","name":"NTP","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"doc":"Biamp ATP/NTP protocol utilities.\nhttps://support.biamp.com/Audia-Nexia/Control/Audia-Nexia_Text_Protocol","summary":"

Biamp ATP/NTP protocol utilities.

","types":[{"html_id":"drivers/Biamp/NTP/Command","path":"Biamp/NTP/Command.html","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"constructors":[{"html_id":"new(type:Type,device:Int32,attribute:String,instance:Int32|Nil=nil,index_1:Int32|Nil=nil,index_2:Int32|Nil=nil,value:String|Int32|Float64|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"args_string":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","args_html":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, device, attribute, instance, index_1, index_2, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @device.clone, @attribute.clone, @instance.clone, @index_1.clone, @index_2.clone, @value.clone)"}},{"html_id":"copy_with(type_type=@type,device_device=@device,attribute_attribute=@attribute,instance_instance=@instance,index_1_index_1=@index_1,index_2_index_2=@index_2,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","args_html":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _device, _attribute, _instance, _index_1, _index_2, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"index_1:Int32|Nil-instance-method","name":"index_1","abstract":false,"def":{"name":"index_1","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_1"}},{"html_id":"index_2:Int32|Nil-instance-method","name":"index_2","abstract":false,"def":{"name":"index_2","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_2"}},{"html_id":"instance:Int32|Nil-instance-method","name":"instance","abstract":false,"def":{"name":"instance","return_type":"Int32 | ::Nil","visibility":"Public","body":"@instance"}},{"html_id":"to_io(io:IO,format=nil)-instance-method","name":"to_io","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"args_string":"(io : IO, format = nil)","args_html":"(io : IO, format = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L33"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"visibility":"Public","body":"io << type\n{device, attribute, instance, index_1, index_2, value}.each do |field|\n if field.nil?\n next\n end\n (io << ' ') << field\nend\nio << '\\n'\n"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"value:String|Int32|Float64|Nil-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String | Int32 | Float64 | Nil","visibility":"Public","body":"@value"}}],"macros":[{"html_id":"[](type,*params)-macro","name":"[]","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"args_string":"(type, *params)","args_html":"(type, *params)","location":{"filename":"src/biamp/ntp.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L12"},"def":{"name":"[]","args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"splat_index":1,"visibility":"Public","body":" \n{% if (type == (:GET)) || (type == (:GETD)) %}\n {{ @type.name }}.new({{ type }}, {{ params.splat }})\n {% else %}\n {{ @type.name }}.new({{ type }}, {{ params[0...-1].splat }}, value: {{ params[-1] }})\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Biamp/NTP/Command/Type","path":"Biamp/NTP/Command/Type.html","kind":"enum","full_name":"Biamp::NTP::Command::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L18"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SET","name":"SET","value":"0"},{"id":"SETD","name":"SETD","value":"1"},{"id":"GET","name":"GET","value":"2"},{"id":"GETD","name":"GETD","value":"3"},{"id":"INC","name":"INC","value":"4"},{"id":"INCD","name":"INCD","value":"5"},{"id":"DEC","name":"DEC","value":"6"},{"id":"DECD","name":"DECD","value":"7"},{"id":"RECALL","name":"RECALL","value":"8"},{"id":"DIAL","name":"DIAL","value":"9"}],"namespace":{"html_id":"drivers/Biamp/NTP/Command","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command"},"instance_methods":[{"html_id":"dec?-instance-method","name":"dec?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L27"},"def":{"name":"dec?","visibility":"Public","body":"self == DEC"}},{"html_id":"decd?-instance-method","name":"decd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L28"},"def":{"name":"decd?","visibility":"Public","body":"self == DECD"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L30"},"def":{"name":"dial?","visibility":"Public","body":"self == DIAL"}},{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L23"},"def":{"name":"get?","visibility":"Public","body":"self == GET"}},{"html_id":"getd?-instance-method","name":"getd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L24"},"def":{"name":"getd?","visibility":"Public","body":"self == GETD"}},{"html_id":"inc?-instance-method","name":"inc?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L25"},"def":{"name":"inc?","visibility":"Public","body":"self == INC"}},{"html_id":"incd?-instance-method","name":"incd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L26"},"def":{"name":"incd?","visibility":"Public","body":"self == INCD"}},{"html_id":"recall?-instance-method","name":"recall?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L29"},"def":{"name":"recall?","visibility":"Public","body":"self == RECALL"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L21"},"def":{"name":"set?","visibility":"Public","body":"self == SET"}},{"html_id":"setd?-instance-method","name":"setd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L22"},"def":{"name":"setd?","visibility":"Public","body":"self == SETD"}}]}]},{"html_id":"drivers/Biamp/NTP/Response","path":"Biamp/NTP/Response.html","kind":"module","full_name":"Biamp::NTP::Response","name":"Response","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"class_methods":[{"html_id":"parse(data:Bytes)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L55"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"case data[0]\nwhen '#'\n response = String.new(data)\n if response.includes?(\" -ERR\")\n Error.new(response)\n else\n fields = response[1..].split\n type = Command::Type.parse(fields[0])\n device = fields[1].to_i\n attribute = fields[2]\n params = fields[3..]\n value = type.getd? ? fields[-1] : fields[-2]\n FullPath.new(response, type, device, attribute, params, value)\n end\nwhen '+'\n OK.new\nwhen '-'\n Error.new(String.new(data))\nelse\n Invalid.new(data)\nend"}}],"types":[{"html_id":"drivers/Biamp/NTP/Response/Error","path":"Biamp/NTP/Response/Error.html","kind":"struct","full_name":"Biamp::NTP::Response::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"}],"args_string":"(message : String)","args_html":"(message : String)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone)"}},{"html_id":"copy_with(message_message=@message)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"args_string":"(message _message = @message)","args_html":"(message _message = @message)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"visibility":"Public","body":"self.class.new(_message)"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Biamp/NTP/Response/FullPath","path":"Biamp/NTP/Response/FullPath.html","kind":"struct","full_name":"Biamp::NTP::Response::FullPath","name":"FullPath","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String,type:Command::Type,device:Int32,attribute:String,params:Array(String),value:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","args_html":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message, type, device, attribute, params, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone, @type.clone, @device.clone, @attribute.clone, @params.clone, @value.clone)"}},{"html_id":"copy_with(message_message=@message,type_type=@type,device_device=@device,attribute_attribute=@attribute,params_params=@params,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","args_html":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_message, _type, _device, _attribute, _params, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"params:Array(String)-instance-method","name":"params","abstract":false,"def":{"name":"params","return_type":"Array(String)","visibility":"Public","body":"@params"}},{"html_id":"type:Command::Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Command::Type","visibility":"Public","body":"@type"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Biamp/NTP/Response/Invalid","path":"Biamp/NTP/Response/Invalid.html","kind":"struct","full_name":"Biamp::NTP::Response::Invalid","name":"Invalid","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(data:Bytes)-class-method","name":"new","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"new","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"_ = allocate\n_.initialize(data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@data.clone)"}},{"html_id":"copy_with(data_data=@data)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"args_string":"(data _data = @data)","args_html":"(data _data = @data)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"copy_with","args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"visibility":"Public","body":"self.class.new(_data)"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Biamp/NTP/Response/OK","path":"Biamp/NTP/Response/OK.html","kind":"struct","full_name":"Biamp::NTP::Response::OK","name":"OK","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"clone","visibility":"Public","body":"self.class.new()"}},{"html_id":"copy_with-instance-method","name":"copy_with","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"copy_with","visibility":"Public","body":"self.class.new()"}}]}]}]},{"html_id":"drivers/Biamp/Tesira","path":"Biamp/Tesira.html","kind":"class","full_name":"Biamp::Tesira","name":"Tesira","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/tesira.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"FADERS","name":"FADERS","value":"{\"fader\" => \"level\", \"matrix_in\" => \"inputLevel\", \"matrix_out\" => \"outputLevel\", \"matrix_crosspoint\" => \"crosspointLevel\", \"level\" => \"fader\", \"inputLevel\" => \"matrix_in\", \"outputLevel\" => \"matrix_out\", \"crosspointLevel\" => \"matrix_crosspoint\"}"},{"id":"MIXERS","name":"MIXERS","value":"{\"matrix\" => \"crosspointLevelState\", \"mixer\" => \"crosspoint\"}"},{"id":"MUTES","name":"MUTES","value":"{\"fader\" => \"mute\", \"matrix_in\" => \"inputMute\", \"matrix_out\" => \"outputMute\", \"mute\" => \"fader\", \"inputMute\" => \"matrix_in\", \"outputMute\" => \"matrix_out\"}"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"@telnet = telnet = Telnet.new do |telnet_response|\n transport.send(telnet_response)\nend\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\nif setting(Bool, :no_password)\n do_send((setting(String, :username)) || \"admin\", wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\nend\ndo_send(\"SESSION set verbose false\", priority: 96)\nschedule.clear\nschedule.every(60.seconds) do\n do_send(\"DEVICE get serialNumber\", priority: 95)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"transport.tokenizer = nil\nschedule.clear\n"}},{"html_id":"fader(fader_id:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L103"},"def":{"name":"fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader_type = FADERS[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, fader_type, i, level), priority: 30, name: \"fade_#{fad}_#{i}\")\n self[\"#{fader_type}_#{fad}_#{i}\"] = level\n end\nend\n"}},{"html_id":"faders(ids:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L118"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader(ids, level, index, type)"}},{"html_id":"get_aliases-instance-method","name":"get_aliases","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L66"},"def":{"name":"get_aliases","visibility":"Public","body":"do_send(\"SESSION get aliases\")"}},{"html_id":"mixer(id:String,inouts:Hash(Int32,Int32|Array(Int32))|Array(Int32),mute:Bool=false,type:String=\"matrix\")-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"args_string":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = \"matrix\")","args_html":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = "matrix")","location":{"filename":"src/biamp/tesira.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L75"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mixer_type = MIXERS[type] || type\nif inouts.is_a?(Hash)\n inouts.each do |input, outs|\n outputs = ensure_array(outs)\n outputs.each do |output|\n do_send(build(id, :set, mixer_type, input, output, mute), priority: 30, name: \"mixmute_#{input}_#{output}\")\n end\n end\nelse\n inouts.each do |input|\n do_send(build(id, :set, mixer_type, input, mute), priority: 30, name: \"mixmute_#{input}\")\n end\nend\n"}},{"html_id":"mute(fader_id:Ids,value:Bool=true,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L131"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, mute_type, i, value), priority: 30, name: \"mute_#{fad}_#{i}\")\n self[\"#{mute_type}_#{fad}_#{i}_mute\"] = value\n end\nend\n"}},{"html_id":"mutes(ids:Ids,muted:Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L145"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(ids, muted, index, type)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L21"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 30.milliseconds\n"}},{"html_id":"preset(number_or_name:String|Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"args_string":"(number_or_name : String | Int32)","args_html":"(number_or_name : String | Int32)","location":{"filename":"src/biamp/tesira.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L50"},"def":{"name":"preset","args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"visibility":"Public","body":"if number_or_name.is_a?(Int32)\n do_send(\"DEVICE recallPreset #{number_or_name}\", priority: 30, name: \"preset_#{number_or_name}\")\nelse\n do_send(build(:DEVICE, :recallPresetByName, number_or_name), priority: 30, name: \"preset_#{number_or_name}\")\nend"}},{"html_id":"query_fader(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L153"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fad_type = FADERS[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, fad_type, index))\n"}},{"html_id":"query_faders(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L162"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(ids, index, type)"}},{"html_id":"query_mute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L166"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, mute_type, index))\n"}},{"html_id":"query_mutes(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L175"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_mute(ids, index, type)"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L62"},"def":{"name":"reboot","visibility":"Public","body":"do_send(\"DEVICE reboot\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/tesira.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L179"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Tesira responded -> data: #{data}\"\nend\nresult = data.split(\" \")\nif result[0] == \"-\"\n task.try(&.abort)\nend\nif data =~ (/login:|server/i)\n transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nend\ntask.try(&.success)\n"}},{"html_id":"start_audio-instance-method","name":"start_audio","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L58"},"def":{"name":"start_audio","visibility":"Public","body":"do_send(\"DEVICE startAudio\")"}},{"html_id":"unmute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L149"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(fader_id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Tesira/Ids","path":"Biamp/Tesira/Ids.html","kind":"alias","full_name":"Biamp::Tesira::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}},{"html_id":"drivers/Biamp/Tesira/Num","path":"Biamp/Tesira/Num.html","kind":"alias","full_name":"Biamp::Tesira::Num","name":"Num","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}}]}]},{"html_id":"drivers/Bose","path":"Bose.html","kind":"module","full_name":"Bose","name":"Bose","abstract":false,"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Bose/ControlSpaceSerial","path":"Bose/ControlSpaceSerial.html","kind":"class","full_name":"Bose::ControlSpaceSerial","name":"ControlSpaceSerial","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Bose","kind":"module","full_name":"Bose","name":"Bose"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.debug do\n \"-- maintaining connection\"\n end\n do_send(\"GS\", priority: 99)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_parameter_group-instance-method","name":"get_parameter_group","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L41"},"def":{"name":"get_parameter_group","visibility":"Public","body":"do_send(\"GS\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[13])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/bose/control_space_serial.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L45"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).rchop\nlogger.debug do\n \"ControlSpace sent: #{data}\"\nend\nparts = data.split(\" \")\ncase parts[0]\nwhen \"S\"\n self[:parameter_group] = parts[1].to_i(16)\nend\ntask.try(&.success)\n"}},{"html_id":"set_parameter_group(id:UInt8)-instance-method","name":"set_parameter_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"args_string":"(id : UInt8)","args_html":"(id : UInt8)","location":{"filename":"src/bose/control_space_serial.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L36"},"def":{"name":"set_parameter_group","args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"visibility":"Public","body":"(do_send(\"SS #{(id.to_s(16)).upcase}\", wait: false, name: \"set_pgroup\")).get\nself[:parameter_group] = id\n"}}]}]},{"html_id":"drivers/Cisco","path":"Cisco.html","kind":"module","full_name":"Cisco","name":"Cisco","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L4"},{"filename":"src/cisco/webex/api/messages.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L1"},{"filename":"src/cisco/webex/api/people.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L1"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L1"},{"filename":"src/cisco/webex/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L1"},{"filename":"src/cisco/webex/command.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L1"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L1"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L1"},{"filename":"src/cisco/webex/constants.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L1"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L1"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L1"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L1"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L1"},{"filename":"src/cisco/webex/models/device.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L1"},{"filename":"src/cisco/webex/models/event.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L1"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L1"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L1"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L1"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L1"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L1"},{"filename":"src/cisco/webex/models/message.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L1"},{"filename":"src/cisco/webex/models/peek.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L1"},{"filename":"src/cisco/webex/models/person.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L1"},{"filename":"src/cisco/webex/models/room.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L1"},{"filename":"src/cisco/webex/session.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L1"},{"filename":"src/cisco/webex/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L1"},{"filename":"src/cisco/webex/utils.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint","path":"Cisco/CollaborationEndpoint.html","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"instance_methods":[{"html_id":"bind_feedback(path:String,status_key:String)-instance-method","name":"bind_feedback","doc":"Bind arbitary device feedback to a status variable.","summary":"

Bind arbitary device feedback to a status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L425"},"def":{"name":"bind_feedback","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"register_feedback(path) do |value_path, value|\n if value_path == path\n self[status_key] = value\n else\n key_path = value_path.sub(path, \"\")\n hash = @status_keys[status_key]\n hash[key_path] = value\n self[status_key] = hash\n end\nend"}},{"html_id":"bind_status(path:String,status_key:String)-instance-method","name":"bind_status","doc":"Bind device status to a module status variable.","summary":"

Bind device status to a module status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L439"},"def":{"name":"bind_status","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"bind_path = \"Status/#{path.tr(\" \", \"/\")}\"\nbind_feedback(\"/#{bind_path}\", status_key)\npayload = xstatus(path)\nif (payload.size == 1) && (payload.has_key?(bind_path))\n self[status_key] = payload[bind_path]\nelse\n self[status_key] = @status_keys[status_key] = payload.transform_keys do |key|\n key.sub(path, \"\")\n end\nend\npayload\n"}},{"html_id":"clear_event(path:String)-instance-method","name":"clear_event","doc":"Clear external event subscribtions for a specific device path.","summary":"

Clear external event subscribtions for a specific device path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L481"},"def":{"name":"clear_event","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Clearing event subscription for #{path}\"\nend\nunregister_feedback(path)\n"}},{"html_id":"clear_feedback_subscriptions(connected:Bool=true)-instance-method","name":"clear_feedback_subscriptions","abstract":false,"args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool = true)","args_html":"(connected : Bool = true)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L409"},"def":{"name":"clear_feedback_subscriptions","args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"Unsubscribing all feedback\"\nend\n@status_keys.clear\nfeedback.clear\n@feedback_paths.clear\nif connected\n do_send(XAPI.xfeedback(:deregister_all))\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"reset_connection_flags\nschedule.every(2.minutes) do\n ensure_feedback_registered\nend\nschedule.every(30.seconds) do\n if @last_received > 40.seconds.ago.to_unix\n heartbeat(timeout: 35)\n else\n disconnect\n end\nend\nschedule.in(10.seconds) do\n if @ready || @init_called\n else\n init_connection\n end\n schedule.in(15.seconds) do\n if !@ready || self[\"configuration\"]?.nil?\n disconnect\n end\n end\nend\nbegin\n transport.send(\"xPreferences OutputMode JSON\\n\")\nrescue\nend\nqueue.clear(abort_current: true)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L95"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nreset_connection_flags\nclear_feedback_subscriptions(false)\nqueue.clear(abort_current: true)\nself[:ready] = false\n"}},{"html_id":"ensure_feedback_registered-instance-method","name":"ensure_feedback_registered","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L107"},"def":{"name":"ensure_feedback_registered","visibility":"Public","body":"send(\"xPreferences OutputMode JSON\\n\", priority: 0, wait: false, name: \"output_json\")\nresults = @feedback_paths.map do |path|\n request = XAPI.xfeedback(:register, path)\n do_send(request, priority: 0, name: path)\nend\nspawn do\n success = 0\n results.each do |task|\n begin\n if task.get.state.success?\n success = success + 1\n end\n rescue\n end\n end\n logger.debug do\n \"FEEDBACK REGISTERED #{success}\"\n end\n if success > 0\n else\n disconnect\n end\nend\n@feedback_paths.size\n"}},{"html_id":"feedback_paths:Array(String)-instance-method","name":"feedback_paths","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L34"},"def":{"name":"feedback_paths","return_type":"Array(String)","visibility":"Public","body":"@feedback_paths"}},{"html_id":"generate_request_uuid-instance-method","name":"generate_request_uuid","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L103"},"def":{"name":"generate_request_uuid","visibility":"Public","body":"UUID.random.to_s"}},{"html_id":"on_event(path:String,mod_id:String,channel:String)-instance-method","name":"on_event","doc":"Subscribe another module to async device events.\nCallback methods must be of arity 1 and public.","summary":"

Subscribe another module to async device events.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"args_string":"(path : String, mod_id : String, channel : String)","args_html":"(path : String, mod_id : String, channel : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L471"},"def":{"name":"on_event","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Registering callback for #{path} to #{mod_id}/#{channel}\"\nend\nregister_feedback(path) do |event_path, value|\n event_json = {event_path => value}.to_json\n logger.debug do\n \"Publishing #{path} event to #{mod_id}/#{channel} with payload #{event_json}\"\n end\n publish(\"#{mod_id}/#{channel}\", event_json)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 80.milliseconds\nqueue.timeout = 3.seconds\n@peripheral_id = setting?(String, :peripheral_id)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L51"},"def":{"name":"on_update","visibility":"Public","body":"if @ignore_update\n @ignore_update = false\n return\nend\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\ndisconnect\n"}},{"html_id":"peripheral_id:String-instance-method","name":"peripheral_id","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L20"},"def":{"name":"peripheral_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @peripheral_id).nil?\n @peripheral_id = (begin\n uuid = generate_request_uuid\n @ignore_update = true\n define_setting(:peripheral_id, uuid)\n uuid\n end)\nelse\n __temp_1\nend"}},{"html_id":"push_config-instance-method","name":"push_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L455"},"def":{"name":"push_config","visibility":"Public","body":"if config = setting?(Config, :configuration)\n xconfigurations(config)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L332"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n @last_received = Time.utc.to_unix\n payload = String.new(data)\n logger.debug do\n \"<- #{payload}\"\n end\n if transport.tokenizer.nil? && (payload =~ XAPI::LOGIN_COMPLETE)\n queue.clear(abort_current: true)\n sleep(500.milliseconds)\n transport.send(\"xPreferences OutputMode JSON\\n\")\n logger.info do\n \"initializing connection\"\n end\n spawn do\n init_connection\n end\n return\n end\n response = XAPI.parse(payload)\n if task.nil?\n return feedback.notify(response)\n end\n if task.xapi_request_id == response[\"ResultId\"]?\n command_result = task.xapi_callback.try(&.call(response))\n if command_result.nil?\n feedback.notify(response)\n end\n command_result == (:abort) ? task.abort : task.success(command_result)\n else\n feedback.notify(response)\n end\nrescue error : JSON::ParseException\n payload = (String.new(data)).strip\n case payload\n when \"OK\"\n task.try(&.success(payload))\n when \"Command not recognized.\"\n logger.error do\n \"Command not recognized: `#{task.try(&.request_payload)}`\"\n end\n task.try(&.abort(payload))\n else\n logger.debug do\n \"Malformed device response: #{error}\\n#{payload}\"\n end\n task.try(&.abort(\"Malformed device response: #{error}\"))\n end\nend"}},{"html_id":"register_feedback(path:String,&update_handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"register_feedback","doc":"Subscribe to feedback from the device.","summary":"

Subscribe to feedback from the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L376"},"def":{"name":"register_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"update_handler","external_name":"update_handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"if !@ready\n if feedback.contains?(path)\n else\n @feedback_paths << path\n @feedback_paths.uniq!\n feedback.insert(path, &update_handler)\n end\n return true\nend\nlogger.debug do\n \"Subscribing to device feedback for #{path}\"\nend\nif feedback.contains?(path)\nelse\n @feedback_paths << path\n @feedback_paths.uniq!\n request = XAPI.xfeedback(:register, path)\n result = do_send(request, name: path)\nend\nfeedback.insert(path, &update_handler)\nresult.try(&.get) || true\n"}},{"html_id":"sync_config-instance-method","name":"sync_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L461"},"def":{"name":"sync_config","visibility":"Public","body":"bind_feedback(\"/Configuration\", \"configuration\")\nsend(\"xConfiguration *\\n\", wait: false)\n"}},{"html_id":"unregister_feedback(path:String)-instance-method","name":"unregister_feedback","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L401"},"def":{"name":"unregister_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"if path == \"/\"\n return clear_feedback_subscriptions\nend\nlogger.debug do\n \"Unsubscribing feedback for #{path}\"\nend\nfeedback.remove(path)\n@feedback_paths.delete(path)\ndo_send(XAPI.xfeedback(:deregister, path))\n"}},{"html_id":"xcommand(command:String,multiline_body:String|Nil=nil,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-instance-method","name":"xcommand","doc":"Execute an xCommand on the device.","summary":"

Execute an xCommand on the device.

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L140"},"def":{"name":"xcommand","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"request = XAPI.xcommand(command, **kwargs.merge({hash_args: hash_args}))\nname = if kwargs.empty?\n command\nelse\n if kwargs.size == 1\n \"#{command} #{kwargs.keys.to_a.first}\"\n end\nend\npriority = kwargs[:priority]? || queue.priority\ndo_send(request, multiline_body, name: name, priority: priority) do |response|\n result_key = (((command.split(' ')).last(2)).join(\"\")) + \"Result\"\n command_result = response[\"CommandResponse/#{result_key}/status\"]?\n failure_result = response[\"CommandResponse/Result/Reason\"]?\n result = command_result || failure_result\n if result\n if result == \"OK\"\n result\n else\n failure_result || (failure_result = response[\"CommandResponse/#{result_key}/Reason\"]?)\n logger.error do\n failure_result.inspect\n end\n :abort\n end\n else\n logger.warn do\n \"Unexpected response format\"\n end\n :abort\n end\nend\n"}},{"html_id":"xconfiguration(path:String,hash_args:Hash(String,JSONBasic)={}ofString=>JSONBasic,**kwargs)-instance-method","name":"xconfiguration","doc":"Apply a single configuration on the device.","summary":"

Apply a single configuration on the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"args_string":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L186"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"promises = hash_args.map do |setting, value|\n apply_configuration(path, setting, value)\nend\nkwargs.each do |setting, value|\n promise = apply_configuration(path, setting, value)\n promises << promise\nend\n(Promise.all(promises)).get.first\n"}},{"html_id":"xconfigurations(config:Config)-instance-method","name":"xconfigurations","doc":"Push a configuration settings to the device.","summary":"

Push a configuration settings to the device.

","abstract":false,"args":[{"name":"config","external_name":"config","restriction":"Config"}],"args_string":"(config : Config)","args_html":"(config : Config)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L135"},"def":{"name":"xconfigurations","args":[{"name":"config","external_name":"config","restriction":"Config"}],"visibility":"Public","body":"config.each do |path, settings|\n xconfiguration(path, settings)\nend"}},{"html_id":"xstatus(path:String)-instance-method","name":"xstatus","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L229"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"request = XAPI.xstatus(path)\npromise = Promise.new(Hash(String, Enumerable::JSONComplex))\ntask = do_send(request) do |response|\n prefix = \"Status/#{(XAPI.tokenize(path)).join('/')}\"\n results = {} of String => Enumerable::JSONComplex\n response.each do |key, value|\n if key.starts_with?(prefix)\n results[key] = value\n end\n end\n if !results.empty?\n promise.resolve(results)\n results\n else\n if error = response[\"Status/status\"]? || response[\"CommandResponse/Status/status\"]?\n reason = response[\"Status/Reason\"]? || response[\"CommandResponse/Status/Reason\"]?\n xpath = response[\"Status/XPath\"]? || response[\"CommandResponse/Status/XPath\"]?\n error_msg = \"#{reason} (#{xpath})\"\n promise.reject(RuntimeError.new(error_msg))\n logger.error do\n error_msg\n end\n :abort\n else\n results[prefix] = nil\n promise.resolve(results)\n results\n end\n end\nend\nspawn do\n task.get\n if task.state == (:abort)\n promise.reject(RuntimeError.new(\"failed to obtain status: #{path}\"))\n end\nend\npromise.get\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","path":"Cisco/CollaborationEndpoint/Cameras.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"camera_move(camera_id:Int32,pan:Interface::Camera::PanDirection|Nil=nil,pan_speed:Int32|Nil=nil,tilt:Interface::Camera::TiltDirection|Nil=nil,tilt_speed:Int32|Nil=nil,zoom:Interface::Zoomable::ZoomDirection|Nil=nil,zoom_speed:Int32|Nil=nil,focus:FocusDirection|Nil=nil)-instance-method","name":"camera_move","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"args_string":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","args_html":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L43"},"def":{"name":"camera_move","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif pan_speed\n if (1..15).includes?(pan_speed)\n else\n raise(ArgumentError.new(\"\\\"pan_speed\\\" must be within #{1..15}, was #{pan_speed}\"))\n end\nend\nif tilt_speed\n if (1..15).includes?(tilt_speed)\n else\n raise(ArgumentError.new(\"\\\"tilt_speed\\\" must be within #{1..15}, was #{tilt_speed}\"))\n end\nend\nif zoom_speed\n if (1..15).includes?(zoom_speed)\n else\n raise(ArgumentError.new(\"\\\"zoom_speed\\\" must be within #{1..15}, was #{zoom_speed}\"))\n end\nend\nxcommand(\"Camera Ramp\", camera_id: camera_id, pan: pan, pan_speed: pan_speed, tilt: tilt, tilt_speed: tilt_speed, zoom: zoom, zoom_speed: zoom_speed, focus: focus)\n"}},{"html_id":"camera_position_reset(camera_id:Int32,axis:CameraAxis|Nil=nil)-instance-method","name":"camera_position_reset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"args_string":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","args_html":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L40"},"def":{"name":"camera_position_reset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nxcommand(\"Camera PositionReset\", camera_id: camera_id, axis: axis)\n"}},{"html_id":"camera_preset(preset_id:Int32)-instance-method","name":"camera_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L16"},"def":{"name":"camera_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Activate\", preset_id: preset_id)\n"}},{"html_id":"camera_remove_preset(preset_id:Int32)-instance-method","name":"camera_remove_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L24"},"def":{"name":"camera_remove_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Remove\", preset_id: preset_id)\n"}},{"html_id":"camera_store_preset(camera_id:Int32,preset_id:Int32,name:String|Nil=nil,take_snapshot:Bool|Nil=nil,default_position:Bool|Nil=nil)-instance-method","name":"camera_store_preset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"args_string":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","args_html":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L18"},"def":{"name":"camera_store_preset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Store\", camera_id: camera_id, preset_id: preset_id, name: name, take_snapshot: take_snapshot, default_position: default_position)\n"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L107"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan_speed = pan_speed.clamp(-100.0, 100.0)\ntilt_speed = tilt_speed.clamp(-100.0, 100.0)\npan = if pan_speed.zero?\n pan_speed = nil\n PanDirection::Stop\nelse\n pan_speed.negative? ? PanDirection::Left : PanDirection::Right\nend\ntilt = if tilt_speed.zero?\n tilt_speed = nil\n TiltDirection::Stop\nelse\n tilt_speed.negative? ? TiltDirection::Down : TiltDirection::Up\nend\ncam = index.to_i\nif cam.zero?\n cam = 1\nend\nif pan_speed\n percentage = pan_speed.abs / 100.0\n pan_speed_actual = (percentage * 15.0).round.to_i\nend\nif tilt_speed\n percentage = tilt_speed.abs / 100.0\n tilt_speed_actual = (percentage * 15.0).round.to_i\nend\ncamera_move(camera_id: cam, pan: pan, pan_speed: pan_speed_actual, tilt: tilt, tilt_speed: tilt_speed_actual, zoom: ZoomDirection::Stop)\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L68"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncase position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0.0, tilt_speed: position.down? ? -50.0 : 50.0, index: cam)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -50.0 : 50.0, tilt_speed: 0.0, index: cam)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out, cam)\nend\n"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L148"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npreset = presets[position]?\nif preset\nelse\n raise(\"preset '#{position}' not found on camera #{index}\")\nend\ncamera_preset(preset_id: preset)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L179"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npresets.delete(name)\nif presets.empty?\n @presets.delete(cam)\nelse\n @presets[cam] = presets\nend\nsave_presets\ntrue\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L159"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\nin_use = @presets.values.flat_map(&.values)\nnext_available = ((1..35).to_a - in_use).first\npresets[name] = next_available\ncamera_store_preset(camera_id: cam, preset_id: next_available, name: name).get\n@presets[cam] = presets\nsave_presets\ntrue\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L56"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, pan: PanDirection::Stop, tilt: TiltDirection::Stop, zoom: ZoomDirection::Stop)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L96"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, zoom: direction, zoom_speed: 6)\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L92"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"raise(\"direct zoom unsupported on this camera\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/CameraAxis","path":"Cisco/CollaborationEndpoint/Cameras/CameraAxis.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::CameraAxis","name":"CameraAxis","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L27"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"0"},{"id":"Focus","name":"Focus","value":"1"},{"id":"PanTilt","name":"PanTilt","value":"2"},{"id":"Zoom","name":"Zoom","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L28"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L29"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan_tilt?-instance-method","name":"pan_tilt?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L30"},"def":{"name":"pan_tilt?","visibility":"Public","body":"self == PanTilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L31"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/FocusDirection","path":"Cisco/CollaborationEndpoint/Cameras/FocusDirection.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::FocusDirection","name":"FocusDirection","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L34"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Far","name":"Far","value":"0"},{"id":"Near","name":"Near","value":"1"},{"id":"Stop","name":"Stop","value":"2"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"far?-instance-method","name":"far?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L35"},"def":{"name":"far?","visibility":"Public","body":"self == Far"}},{"html_id":"near?-instance-method","name":"near?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L36"},"def":{"name":"near?","visibility":"Public","body":"self == Near"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L37"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/Interface","path":"Cisco/CollaborationEndpoint/Cameras/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Cameras::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Config","path":"Cisco/CollaborationEndpoint/Config.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Config","name":"Config","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L132"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","aliased_html":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Feedback","path":"Cisco/CollaborationEndpoint/Feedback.html","kind":"class","full_name":"Cisco::CollaborationEndpoint::Feedback","name":"Feedback","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L2"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clear-instance-method","name":"clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L44"},"def":{"name":"clear","visibility":"Public","body":"@callbacks = Hash(String, Array(Proc(String, Enumerable::JSONComplex, Nil))).new do |h, k|\n h[k] = [] of Proc(String, Enumerable::JSONComplex, Nil)\nend"}},{"html_id":"contains?(path:String)-instance-method","name":"contains?","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L23"},"def":{"name":"contains?","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"found = false\n@callbacks.each_key do |key|\n if path.starts_with?(key)\n found = true\n break\n end\nend\nfound\n"}},{"html_id":"insert(path:String,&handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"insert","doc":"Insert a response handler block to be notified of updates effecting the\nspecified feedback path.","summary":"

Insert a response handler block to be notified of updates effecting the specified feedback path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L18"},"def":{"name":"insert","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"handler","external_name":"handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"@callbacks[path] << handler\nself\n"}},{"html_id":"notify(path:String,value:Enumerable::JSONComplex)-instance-method","name":"notify","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"args_string":"(path : String, value : Enumerable::JSONComplex)","args_html":"(path : String, value : Enumerable::JSONComplex)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L34"},"def":{"name":"notify","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"visibility":"Public","body":"@callbacks.each do |key, callbacks|\n if path.starts_with?(key)\n callbacks.each(&.call(path, value))\n end\nend"}},{"html_id":"notify(payload:Hash(String,Enumerable::JSONComplex))-instance-method","name":"notify","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"args_string":"(payload : Hash(String, Enumerable::JSONComplex))","args_html":"(payload : Hash(String, Enumerable::JSONComplex))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L40"},"def":{"name":"notify","args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"visibility":"Public","body":"payload.each do |key, value|\n notify(\"/#{key}\", value)\nend"}},{"html_id":"remove(path:String)-instance-method","name":"remove","doc":"Nuke a subtree below the path","summary":"

Nuke a subtree below the path

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L9"},"def":{"name":"remove","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"remove = [] of String\n@callbacks.each_key do |key|\n if key.starts_with?(path)\n remove << key\n end\nend\nremove.each do |key|\n @callbacks.delete(key)\nend\nself\n"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/JSONBasic","path":"Cisco/CollaborationEndpoint/JSONBasic.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","path":"Cisco/CollaborationEndpoint/Powerable.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"half_wake-instance-method","name":"half_wake","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L14"},"def":{"name":"half_wake","visibility":"Public","body":"xcommand(\"Standby HalfWake\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? powerup : half_wake\nself[:power] = state\n"}},{"html_id":"power_state(state:Interface::Powerable::PowerState)-instance-method","name":"power_state","doc":"override this to implement `PowerState::FullOff` if it is available for the device","summary":"

override this to implement PowerState::FullOff if it is available for the device

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"args_string":"(state : Interface::Powerable::PowerState)","args_html":"(state : Interface::Powerable::PowerState)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L23"},"def":{"name":"power_state","args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"visibility":"Public","body":"case state\nin .on?\n power(true)\nin .off?\n power(false)\nin .full_off?\n standby\n self[:power] = false\nend\nself[:power_state] = state\n"}},{"html_id":"powerup-instance-method","name":"powerup","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L13"},"def":{"name":"powerup","visibility":"Public","body":"xcommand(\"Standby Deactivate\")"}},{"html_id":"reset_standby_timer(delay:Int32)-instance-method","name":"reset_standby_timer","abstract":false,"args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"args_string":"(delay : Int32)","args_html":"(delay : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L16"},"def":{"name":"reset_standby_timer","args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"visibility":"Public","body":"if (1..480).includes?(delay)\nelse\n raise(ArgumentError.new(\"delay must be within #{1..480}, was #{delay}\"))\nend\nxcommand(\"Standby ResetTimer\", delay: delay)\n"}},{"html_id":"standby-instance-method","name":"standby","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L15"},"def":{"name":"standby","visibility":"Public","body":"xcommand(\"Standby Activate\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/Interface","path":"Cisco/CollaborationEndpoint/Powerable/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Powerable::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/PowerOff","path":"Cisco/CollaborationEndpoint/Powerable/PowerOff.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Powerable::PowerOff","name":"PowerOff","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Restart","name":"Restart","value":"0"},{"id":"Shutdown","name":"Shutdown","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},"instance_methods":[{"html_id":"restart?-instance-method","name":"restart?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L37"},"def":{"name":"restart?","visibility":"Public","body":"self == Restart"}},{"html_id":"shutdown?-instance-method","name":"shutdown?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L38"},"def":{"name":"shutdown?","visibility":"Public","body":"self == Shutdown"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","path":"Cisco/CollaborationEndpoint/Presentation.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"presentation_start(presentation_source:Int32|Nil=nil,sending_mode:SendingMode|Nil=nil,connector_id:Int32|Nil=nil,instance:Int32|Nil=nil)-instance-method","name":"presentation_start","abstract":false,"args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"args_string":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","args_html":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L24"},"def":{"name":"presentation_start","args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if presentation_source\n if (1..2).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..2}, was #{presentation_source}\"))\n end\nend\nif connector_id\n if (1..2).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..2}, was #{connector_id}\"))\n end\nend\nif instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nxcommand(\"Presentation Start\", presentation_source: presentation_source, sending_mode: sending_mode, connector_id: connector_id, instance: instance)\n"}},{"html_id":"presentation_stop(instance:Int32|Nil=nil,presentation_source:Int32|Nil=nil)-instance-method","name":"presentation_stop","abstract":false,"args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"args_string":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","args_html":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L29"},"def":{"name":"presentation_stop","args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nif presentation_source\n if (1..4).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..4}, was #{presentation_source}\"))\n end\nend\nxcommand(\"Presentation Stop\", instance: instance, presentation_source: presentation_source)\n"}},{"html_id":"send_presentation_to(remote:Bool)-instance-method","name":"send_presentation_to","abstract":false,"args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"args_string":"(remote : Bool)","args_html":"(remote : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L51"},"def":{"name":"send_presentation_to","args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"visibility":"Public","body":"@sending_mode = remote ? SendingMode::LocalRemote : SendingMode::LocalOnly\nself[:present_to_remote] = remote\nif input = @presenting_input\n presentation_start(presentation_source: input, sending_mode: @sending_mode)\nend\n"}},{"html_id":"switch_to(input:PresentationInputs)-instance-method","name":"switch_to","doc":"Provide compatabilty with the router module for activating presentation.","summary":"

Provide compatabilty with the router module for activating presentation.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"args_string":"(input : PresentationInputs)","args_html":"(input : PresentationInputs)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L34"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"visibility":"Public","body":"if input.none?\n @presenting_input = nil\n presentation_stop\nelse\n source = input.to_s[5..-1].to_i\n @presenting_input = source\n presentation_start(presentation_source: source, sending_mode: @sending_mode)\nend\nself[:presenting_input] = @presenting_input\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/PresentationInputs","path":"Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::PresentationInputs","name":"PresentationInputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"},{"id":"Input3","name":"Input3","value":"3"},{"id":"Input4","name":"Input4","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"input3?-instance-method","name":"input3?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L9"},"def":{"name":"input3?","visibility":"Public","body":"self == Input3"}},{"html_id":"input4?-instance-method","name":"input4?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L10"},"def":{"name":"input4?","visibility":"Public","body":"self == Input4"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/SendingMode","path":"Cisco/CollaborationEndpoint/Presentation/SendingMode.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::SendingMode","name":"SendingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LocalRemote","name":"LocalRemote","value":"0"},{"id":"LocalOnly","name":"LocalOnly","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"local_only?-instance-method","name":"local_only?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L18"},"def":{"name":"local_only?","visibility":"Public","body":"self == LocalOnly"}},{"html_id":"local_remote?-instance-method","name":"local_remote?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L17"},"def":{"name":"local_remote?","visibility":"Public","body":"self == LocalRemote"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presets","path":"Cisco/CollaborationEndpoint/Presets.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Hash(String, Int32))","aliased_html":"Hash(Int32, Hash(String, Int32))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"Camera idx => Preset name => Preset id","summary":"

Camera idx => Preset name => Preset id

"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Toogle","path":"Cisco/CollaborationEndpoint/Toogle.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L15"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"used by many of the commands","summary":"

used by many of the commands

","instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L17"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L16"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","path":"Cisco/CollaborationEndpoint/UIExtensions.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"msg_alert(text:String,title:String|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"msg_alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L7"},"def":{"name":"msg_alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message Alert Display\", text: text, title: title, duration: duration)\n"}},{"html_id":"msg_alert_clear-instance-method","name":"msg_alert_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L6"},"def":{"name":"msg_alert_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"msg_prompt(text:String,options:Array(JSON::Any::Type),title:String|Nil=nil,feedback_id:String|Nil=nil,duration:Int64|Nil=nil)-instance-method","name":"msg_prompt","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"args_string":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","args_html":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L14"},"def":{"name":"msg_prompt","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"option_map = {} of String => JSON::Any::Type\n(\"Option.1\"..\"Option.5\").each_with_index do |key, i|\n if i >= options.size\n break\n end\n option_map[key] = options[i]\nend\nxcommand(\"UserInterface Message Prompt Display\", hash_args: Hash(String, JSON::Any::Type) {\"text\" => text, \"title\" => title, \"feedback_id\" => feedback_id, \"duration\" => duration}.merge(option_map))\n"}},{"html_id":"msg_prompt_clear-instance-method","name":"msg_prompt_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L12"},"def":{"name":"msg_prompt_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Prompt Clear\")"}},{"html_id":"msg_text(text:String,feedback_id:String,title:String|Nil=nil,duration:Int32|Nil=nil,input_type:TextInputType|Nil=nil,keyboard_state:TextKeyboardState|Nil=nil,place_holder:String|Nil=nil,submit_text:String|Nil=nil)-instance-method","name":"msg_text","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"args_string":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","args_html":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L45"},"def":{"name":"msg_text","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message TextInput Display\", text: text, feedback_id: feedback_id, title: title, duration: duration, input_type: input_type, keyboard_state: keyboard_state, place_holder: place_holder, submit_text: submit_text)\n"}},{"html_id":"msg_text_clear-instance-method","name":"msg_text_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L44"},"def":{"name":"msg_text_clear","visibility":"Public","body":"xcommand(\"UserInterface Message TextInput Clear\")"}},{"html_id":"ui_extensions_clear-instance-method","name":"ui_extensions_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L73"},"def":{"name":"ui_extensions_clear","visibility":"Public","body":"xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"ui_extensions_deploy(id:String,xml_def:String)-instance-method","name":"ui_extensions_deploy","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L65"},"def":{"name":"ui_extensions_deploy","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface Extensions Set\", xml_def, config_id: id)"}},{"html_id":"ui_extensions_list-instance-method","name":"ui_extensions_list","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L69"},"def":{"name":"ui_extensions_list","visibility":"Public","body":"xcommand(\"UserInterface Extensions List\")"}},{"html_id":"ui_set_value(widget:String,value:JSON::Any::Type|Nil=nil)-instance-method","name":"ui_set_value","abstract":false,"args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"args_string":"(widget : String, value : JSON::Any::Type | Nil = nil)","args_html":"(widget : String, value : JSON::Any::Type | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L55"},"def":{"name":"ui_set_value","args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"visibility":"Public","body":"if value.nil?\n xcommand(\"UserInterface Extensions Widget UnsetValue\", widget_id: widget)\nelse\n xcommand(\"UserInterface Extensions Widget SetValue\", value: value, widget_id: widget)\nend"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextInputType","path":"Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextInputType","name":"TextInputType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L32"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SingleLine","name":"SingleLine","value":"0"},{"id":"Numeric","name":"Numeric","value":"1"},{"id":"Password","name":"Password","value":"2"},{"id":"PIN","name":"PIN","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"numeric?-instance-method","name":"numeric?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L34"},"def":{"name":"numeric?","visibility":"Public","body":"self == Numeric"}},{"html_id":"password?-instance-method","name":"password?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L35"},"def":{"name":"password?","visibility":"Public","body":"self == Password"}},{"html_id":"pin?-instance-method","name":"pin?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L36"},"def":{"name":"pin?","visibility":"Public","body":"self == PIN"}},{"html_id":"single_line?-instance-method","name":"single_line?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L33"},"def":{"name":"single_line?","visibility":"Public","body":"self == SingleLine"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState","path":"Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextKeyboardState","name":"TextKeyboardState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L39"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L41"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L40"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","path":"Cisco/CollaborationEndpoint/XAPI.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L3"},{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOL_OR","name":"BOOL_OR","value":"->(term : String) do\n ->(val : String) do\n val == term ? term : BOOLEAN.call(val)\n end\nend"},{"id":"BOOLEAN","name":"BOOLEAN","value":"->(val : String) do\n TRUTHY.includes?(val.downcase)\nend"},{"id":"COMMAND_RESPONSE","name":"COMMAND_RESPONSE","value":"Regex.union(INVALID_COMMAND, SUCCESS)"},{"id":"FALSEY","name":"FALSEY","value":"{\"false\", \"unavailable\", \"off\", \"inactive\"}"},{"id":"INVALID_COMMAND","name":"INVALID_COMMAND","value":"/(?<=Command not recognized\\.)[\\r\\n]+/","doc":"Regexp's for tokenizing the xAPI command and response structure.","summary":"

Regexp's for tokenizing the xAPI command and response structure.

"},{"id":"LOGIN_COMPLETE","name":"LOGIN_COMPLETE","value":"/Login successful/"},{"id":"PARSERS","name":"PARSERS","value":"{\"TTPAR_OnOff\" => BOOLEAN, \"TTPAR_OnOffAuto\" => BOOL_OR.call(\"Auto\"), \"TTPAR_OnOffCurrent\" => BOOL_OR.call(\"Current\"), \"TTPAR_MuteEnabled\" => BOOLEAN}"},{"id":"SUCCESS","name":"SUCCESS","value":"/(?<=OK)[\\r\\n]+/"},{"id":"TRUTHY","name":"TRUTHY","value":"{\"true\", \"available\", \"standby\", \"on\", \"active\"}"}],"including_types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"class_methods":[{"html_id":"create_action(__action__:ActionType,*args,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,priority:Int32|Nil=nil,**kwargs)-class-method","name":"create_action","doc":"Serialize an xAPI action into transmittable command.","summary":"

Serialize an xAPI action into transmittable command.

","abstract":false,"args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"args_string":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","args_html":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L45"},"def":{"name":"create_action","args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":1,"visibility":"Public","body":"[__action__.to_s.camelcase(lower: true), args.compact_map(&.to_s), hash_args.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend, kwargs.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend.to_a.compact!].flatten.join(\" \")"}},{"html_id":"parse(data:String)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L31"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"(JSON.parse(data)).as_h.flatten_xapi_json"}},{"html_id":"tokenize(path:String)-class-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L101"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split(/[\\s\\/\\\\]/)).reject(&.empty?)"}},{"html_id":"value_convert(value:String,valuespace:String|Nil=nil)-class-method","name":"value_convert","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"args_string":"(value : String, valuespace : String | Nil = nil)","args_html":"(value : String, valuespace : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L15"},"def":{"name":"value_convert","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"begin\n parser = PARSERS[valuespace]?\n if parser\n else\n return value.to_i64\n end\n parser.call(value)\nrescue\n check = value.downcase\n if check.in?(TRUTHY)\n true\n else\n if check.in?(FALSEY)\n false\n else\n value\n end\n end\nend"}},{"html_id":"xcommand(path:String,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-class-method","name":"xcommand","doc":"Serialize an xCommand into transmittable command.","summary":"

Serialize an xCommand into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L71"},"def":{"name":"xcommand","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"create_action(ActionType::XCommand, path, **kwargs.merge({hash_args: hash_args}))"}},{"html_id":"xconfiguration(path:String,setting:String,value:JSON::Any::Type)-class-method","name":"xconfiguration","doc":"Serialize an xConfiguration action into a transmittable command.","summary":"

Serialize an xConfiguration action into a transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"args_string":"(path : String, setting : String, value : JSON::Any::Type)","args_html":"(path : String, setting : String, value : JSON::Any::Type)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L80"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"visibility":"Public","body":"create_action(ActionType::XConfiguration, path, hash_args: {setting => value})"}},{"html_id":"xfeedback(action:FeedbackAction,path:String|Nil=nil)-class-method","name":"xfeedback","doc":"Serialize a xFeedback subscription request.","summary":"

Serialize a xFeedback subscription request.

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"args_string":"(action : FeedbackAction, path : String | Nil = nil)","args_html":"(action : FeedbackAction, path : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L92"},"def":{"name":"xfeedback","args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"visibility":"Public","body":"if path\n xpath = tokenize(path)\n create_action(ActionType::XFeedback, action, \"/#{xpath.join('/')}\")\nelse\n create_action(ActionType::XFeedback, action)\nend"}},{"html_id":"xstatus(path:String)-class-method","name":"xstatus","doc":"Serialize an xStatus request into transmittable command.","summary":"

Serialize an xStatus request into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L87"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"create_action(ActionType::XStatus, path)"}}],"macros":[{"html_id":"command(cmd_name,**params)-macro","name":"command","abstract":false,"args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"args_string":"(cmd_name, **params)","args_html":"(cmd_name, **params)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L106"},"def":{"name":"command","args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":" \n{% for cmd, name in cmd_name %}\n def {{ name.id }}(\n {% for param, klass in params %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {% if klass.is_a?(RangeLiteral) %}\n {{ param.id }} : Int32{% if optional %}? = nil{% end %},\n {% else %}\n {{ param.id }} : {{ klass }}{% if optional %}? = nil{% end %},\n {% end %}\n {% end %}\n )\n {% for param, klass in params %}\n {% if klass.is_a?(RangeLiteral) %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n {% if optional %} if {{ param.id }}{% end %}\n raise ArgumentError.new(\"#{ {{ param.stringify }} } must be within #{ {{ klass }} }, was #{ {{ param.id }} }\") unless ({{ klass }}).includes?({{ param.id }})\n {% if optional %}end{% end %}\n {% end %}\n {% end %}\n\n # send the command\n xcommand(\n {{ cmd }},\n {% for param, klass in params %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {{ param.id }}: {{ param.id }},\n {% end %}\n )\n end\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/ActionType","path":"Cisco/CollaborationEndpoint/XAPI/ActionType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::ActionType","name":"ActionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L29"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"XConfiguration","name":"XConfiguration","value":"0"},{"id":"XCommand","name":"XCommand","value":"1"},{"id":"XStatus","name":"XStatus","value":"2"},{"id":"XFeedback","name":"XFeedback","value":"3"},{"id":"XPreferences","name":"XPreferences","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"x_command?-instance-method","name":"x_command?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L31"},"def":{"name":"x_command?","visibility":"Public","body":"self == XCommand"}},{"html_id":"x_configuration?-instance-method","name":"x_configuration?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L30"},"def":{"name":"x_configuration?","visibility":"Public","body":"self == XConfiguration"}},{"html_id":"x_feedback?-instance-method","name":"x_feedback?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L33"},"def":{"name":"x_feedback?","visibility":"Public","body":"self == XFeedback"}},{"html_id":"x_preferences?-instance-method","name":"x_preferences?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L34"},"def":{"name":"x_preferences?","visibility":"Public","body":"self == XPreferences"}},{"html_id":"x_status?-instance-method","name":"x_status?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L32"},"def":{"name":"x_status?","visibility":"Public","body":"self == XStatus"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/FeedbackAction","path":"Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::FeedbackAction","name":"FeedbackAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L37"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Register","name":"Register","value":"0"},{"id":"Deregister","name":"Deregister","value":"1"},{"id":"DeregisterAll","name":"DeregisterAll","value":"2"},{"id":"List","name":"List","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"deregister?-instance-method","name":"deregister?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L39"},"def":{"name":"deregister?","visibility":"Public","body":"self == Deregister"}},{"html_id":"deregister_all?-instance-method","name":"deregister_all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L40"},"def":{"name":"deregister_all?","visibility":"Public","body":"self == DeregisterAll"}},{"html_id":"list?-instance-method","name":"list?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L41"},"def":{"name":"list?","visibility":"Public","body":"self == List"}},{"html_id":"register?-instance-method","name":"register?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L38"},"def":{"name":"register?","visibility":"Public","body":"self == Register"}}]}]}]},{"html_id":"drivers/Cisco/DNASpaces","path":"Cisco/DNASpaces.html","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L9"},{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IOT_SENSORS","name":"IOT_SENSORS","value":"{SensorType::Presence, SensorType::PeopleCount, SensorType::Humidity, SensorType::AirQuality, SensorType::SoundPressure, SensorType::Temperature}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate-instance-method","name":"activate","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L98"},"def":{"name":"activate","visibility":"Public","body":"if @activation_token.empty?\n return\nend\nresponse = get(\"/client/v1/partner/partnerPublicKey/\")\nif response.success?\nelse\n raise(\"failed to obtain partner public key, code #{response.status_code}\")\nend\nlogger.debug do\n \"public key requested: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: Array(ActivactionPublicKey)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining partner public key: #{payload[:message]}\")\nend\npublic_key = payload[:data][0].public_key\npayload, header = JWT.decode(@activation_token, public_key, JWT::Algorithm::RS256, @verify_activation_key)\napp_id = payload[\"appId\"].as_s\nref_id = payload[\"activationRefId\"].as_s\ntenant_id = payload[\"tenantId\"].as_i64.to_s\nresponse = post(\"/client/v1/partner/activateOnPremiseApp\", headers: {\"Content-Type\" => \"application/json\", \"Authorization\" => \"Bearer #{@activation_token}\"}, body: {appId: app_id, activationRefId: ref_id}.to_json)\nif response.success?\nelse\n raise(\"failed to obtain API key, code #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"application activated: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: NamedTuple(apiKey: String)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining API key: #{payload[:message]}\")\nend\napi_key = payload[:data][:apiKey]\nlogger.debug do\n \"saving API key: #{tenant_id}, #{api_key}\"\nend\ndefine_setting(:tenant_id, tenant_id)\ndefine_setting(:dna_spaces_api_key, api_key)\ndefine_setting(:dna_spaces_activation_key, \"\")\nlogger.debug do\n \"settings saved! Starting stream\"\nend\n@api_key = api_key\n@tenant_id = tenant_id\n@description_lock.synchronize do\n if !@streaming\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":530,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L530"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"if location = locate_mac(mac_address)\n {location: \"wireless\", assigned_to: format_username(location.raw_user_id), mac_address: format_mac(mac_address)}\nend"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L241"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago.to_unix\nremove_keys = [] of String\nlocations do |locs|\n locs.each do |mac, location|\n if location.last_seen < old\n remove_keys << mac\n end\n end\n remove_keys.each do |mac|\n locs.delete(mac)\n end\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L541"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of Nil\nend\nfloors = [] of String\nadjustments = {} of String => Tuple(Float64, Float64, Float64, Float64)\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n offset_x = (data[\"offset_x\"]? || 0.0).as(Float64)\n offset_y = (data[\"offset_y\"]? || 0.0).as(Float64)\n map_width = (data[\"map_width\"]? || -1.0).as(Float64)\n map_height = (data[\"map_height\"]? || -1.0).as(Float64)\n adjustments[floor_id] = {offset_x, offset_y, map_width, map_height}\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of Nil\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago.to_unix\nmatching = locations(&.compact_map do |mac, loc|\n if loc.last_seen < oldest_location\n too_old = too_old + 1\n next\n end\n if (floors & loc.location_mappings.values).empty?\n wrong_floor = wrong_floor + 1\n next\n end\n loc.device.mac_address = mac\n loc\nend)\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.map_id).flat_map do |map_id, locations|\n map_width = -1.0\n map_height = -1.0\n offset_x = 0.0\n offset_y = 0.0\n locations.first.location_mappings.each_value do |location_id|\n if level_data = adjustments[location_id]?\n offset_x, offset_y, map_width, map_height = level_data\n break\n end\n end\n if (map_width == -1.0) || (map_height == -1.0)\n if map_size = get_map_details(map_id)\n map_width = map_width > -1.0 ? map_width : (map_size.length - offset_x)\n map_height = map_height > -1.0 ? map_height : (map_size.width - offset_y)\n end\n end\n locations.compact_map do |loc|\n if loc.is_a?(WebexTelemetryUpdate)\n next\n end\n lat = loc.latitude\n lon = loc.longitude\n {location: :wireless, coordinates_from: \"top-left\", x: loc.x_pos - offset_x, y: loc.y_pos - offset_y, lon: lon, lat: lat, s2_cell_id: ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, mac: loc.device.mac_address, variance: loc.unc, last_seen: loc.last_seen, map_width: map_width, map_height: map_height, ssid: loc.ssid, manufacturer: loc.device.manufacturer, os: loc.device.os}\n end\nend\n"}},{"html_id":"devices(&)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L191"},"def":{"name":"devices","yields":1,"block_arity":1,"visibility":"Public","body":"@dev_lock.synchronize do\n yield @devices\nend"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":632,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L632"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L636"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_location_info(location_id:String)-instance-method","name":"get_location_info","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L165"},"def":{"name":"get_location_info","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/partners/v1/locations/#{location_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain location id #{location_id}, code #{response.status_code}\")\nend\nLocationInfo.from_json(response.body.not_nil!)\n"}},{"html_id":"get_map_details(map_id:String)-instance-method","name":"get_map_details","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L223"},"def":{"name":"get_map_details","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"map = @map_lock.synchronize do\n @map_details[map_id]?\nend\nif !map\n response = get(\"/api/partners/v1/maps/#{map_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\n if !response.success?\n message = \"failed to obtain map id #{map_id}, code #{response.status_code}\"\n logger.warn do\n message\n end\n return nil\n end\n map = (MapInfo.from_json(response.body.not_nil!)).dimension\n @map_lock.synchronize do\n @map_details[map_id] = map\n end\nend\nmap\n"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L213"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"MAC Locations: #{locations(&.keys)}\"\nend\n{tracking: locations(&.size), events_received: @events_received}\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L207"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"formatted_address = format_mac(address)\nlocations do |locs|\n locs[formatted_address]?\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"=============================\nLocatable interface\n=============================","summary":"

============================= Locatable interface =============================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L443"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"if macs = user_lookup(username.presence || email.presence.not_nil!)\n location_max_age = @max_location_age.ago.to_unix\n macs.compact_map do |mac|\n if location = locate_mac(mac)\n if location.is_a?(WebexTelemetryUpdate)\n next\n end\n if location.last_seen > location_max_age\n location.device.mac_address = mac\n location\n end\n end\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end.map do |location|\n lat = location.latitude\n lon = location.longitude\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"top-left\", \"x\" => location.x_pos, \"y\" => location.y_pos, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, \"mac\" => location.device.mac_address, \"variance\" => location.unc, \"last_seen\" => location.last_seen, \"dna_floor_id\" => location.map_id, \"ssid\" => location.ssid, \"manufacturer\" => location.device.manufacturer, \"os\" => location.device.os}\n map_width = 0.0\n map_height = 0.0\n offset_x = 0.0\n offset_y = 0.0\n location.location_mappings.each_value do |location_id|\n if level_data = @floorplan_mappings[location_id]?\n level_data.each do |key, value|\n case key\n when \"offset_x\"\n offset_x = value.as(Float64)\n loc[\"x\"] = location.x_pos - offset_x\n when \"offset_y\"\n offset_y = value.as(Float64)\n loc[\"y\"] = location.y_pos - offset_y\n when \"map_width\"\n map_width = value.as(Float64)\n when \"map_height\"\n map_height = value.as(Float64)\n else\n loc[key] = value\n end\n end\n break\n end\n end\n if map_width > 0.0 && map_height > 0.0\n loc[\"map_width\"] = map_width\n loc[\"map_height\"] = map_height\n else\n if map_size = get_map_details(location.map_id)\n loc[\"map_width\"] = map_width > 0.0 ? map_width : (map_size.length - offset_x)\n loc[\"map_height\"] = map_height > 0.0 ? map_height : (map_size.width - offset_y)\n end\n end\n loc\n end\nelse\n [] of Nil\nend"}},{"html_id":"locations(&)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L187"},"def":{"name":"locations","yields":1,"block_arity":1,"visibility":"Public","body":"@loc_lock.synchronize do\n yield @locations\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":525,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L525"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(user_lookup(username.presence || email.presence.not_nil!)).try(&.to_a) || ([] of String)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L48"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close\n@stream_active = false\nupdate_monitoring_status(running: false)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L65"},"def":{"name":"on_update","visibility":"Public","body":"@max_location_age = ((setting?(UInt32, :max_location_age)) || 10).minutes\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@debug_stream = (setting?(Bool, :debug_stream)) || false\n@verify_activation_key = (setting?(Bool, :verify_activation_key)) || false\nschedule.clear\nschedule.every(30.minutes) do\n cleanup_caches\nend\nschedule.every(5.minutes) do\n update_monitoring_status\nend\nschedule.in(5.seconds) do\n update_monitoring_status\nend\n@activation_token = (setting?(String, :dna_spaces_activation_key)) || \"\"\nif @activation_token.empty?\n @api_key = setting(String, :dna_spaces_api_key)\n @tenant_id = (setting(String | Int64, :tenant_id)).to_s\nelse\n @api_key = (setting?(String, :dna_spaces_api_key)) || \"\"\n @tenant_id = (setting?(String | Int64, :tenant_id)).try(&.to_s) || \"\"\n if @api_key.empty?\n schedule.in(5.seconds) do\n activate\n end\n end\nend\n@description_lock.synchronize do\n if !@streaming && !@api_key.empty?\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"seen_locations-instance-method","name":"seen_locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L177"},"def":{"name":"seen_locations","visibility":"Public","body":"@description_lock.synchronize do\n @location_descriptions.dup\nend"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L114"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nmac = format_mac(mac)\ndevice = devices do |dev|\n dev[mac]?\nend\nif device\nelse\n return nil\nend\nfilter = SensorType.parse(id)\ncase device\nin IotTelemetry, WebexTelemetryUpdate\n (to_sensors(nil, filter, device)).first?\nin DeviceLocationUpdate\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L85"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nfilter = type ? SensorType.parse(type) : nil\nif filter && !(filter.in?(IOT_SENSORS))\n return NO_MATCH\nend\nif mac\n mac = format_mac(mac)\n device = devices do |dev|\n dev[mac]?\n end\n if device\n else\n return NO_MATCH\n end\n return case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\ndevice_values = devices(&.values)\ndevice_values.flat_map do |device|\n case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\n"}},{"html_id":"update_monitoring_status(running:Bool=true):Nil-instance-method","name":"update_monitoring_status","doc":"This provides the DNA Spaces dashboard with stream consumption status","summary":"

This provides the DNA Spaces dashboard with stream consumption status

","abstract":false,"args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"args_string":"(running : Bool = true) : Nil","args_html":"(running : Bool = true) : Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L647"},"def":{"name":"update_monitoring_status","args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = put(\"/api/partners/v1/monitoring/status\", headers: {\"Content-Type\" => \"application/json\", \"X-API-KEY\" => @api_key}, body: {data: {overallStatus: {status: running ? \"up\" : \"down\", notices: [] of Nil}, instanceDetails: {ipAddress: \"\", instanceId: module_id}, cloudFirehose: {status: @stream_active ? \"connected\" : \"disconnected\", lastReceived: @last_received}, localFirehose: {status: \"disconnected\", lastReceived: 0}, subsystems: [] of Nil}}.to_json)\nif response.success?\nelse\n raise(\"failed to update status, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"user_lookup(&)-instance-method","name":"user_lookup","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L198"},"def":{"name":"user_lookup","yields":1,"block_arity":1,"visibility":"Public","body":"@user_loc.synchronize do\n yield @user_lookup\nend"}},{"html_id":"user_lookup(user_id:String)-instance-method","name":"user_lookup","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L202"},"def":{"name":"user_lookup","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"formatted_user = format_username(user_id)\nuser_lookup do |lookup|\n lookup[formatted_user]?\nend\n"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/ActivactionPublicKey","path":"Cisco/DNASpaces/ActivactionPublicKey.html","kind":"class","full_name":"Cisco::DNASpaces::ActivactionPublicKey","name":"ActivactionPublicKey","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"public_key-instance-method","name":"public_key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L11"},"def":{"name":"public_key","visibility":"Public","body":"\"-----BEGIN PUBLIC KEY-----\\n#{@public_key}\\n-----END PUBLIC KEY-----\\n\""}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L6"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivaction","path":"Cisco/DNASpaces/AppActivaction.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivaction","name":"AppActivaction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance_name:String-instance-method","name":"instance_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L20"},"def":{"name":"instance_name","return_type":"String","visibility":"Public","body":"@instance_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L13"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"reference_id:String-instance-method","name":"reference_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L17"},"def":{"name":"reference_id","return_type":"String","visibility":"Public","body":"@reference_id"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L10"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L7"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","path":"Cisco/DNASpaces/AppActivactionWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L109"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L110"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:AppActivaction-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L113"},"def":{"name":"payload","return_type":"AppActivaction","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/BlePayload","path":"Cisco/DNASpaces/BlePayload.html","kind":"class","full_name":"Cisco::DNASpaces::BlePayload","name":"BlePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data","return_type":"String","visibility":"Public","body":"@data"}},{"html_id":"data=(data:String)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"@data = data"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdate","path":"Cisco/DNASpaces/BleRssiUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdate","name":"BleRssiUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L48"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"notification:RssiNotification-instance-method","name":"notification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L47"},"def":{"name":"notification","return_type":"RssiNotification","visibility":"Public","body":"@notification"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","path":"Cisco/DNASpaces/BleRssiUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L123"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L123"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L124"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:BleRssiUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L127"},"def":{"name":"payload","return_type":"BleRssiUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Device","path":"Cisco/DNASpaces/Device.html","kind":"class","full_name":"Cisco::DNASpaces::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L7"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"email-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L16"},"def":{"name":"email","visibility":"Public","body":"@email.try(&.downcase)"}},{"html_id":"email_raw:String?-instance-method","name":"email_raw","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L20"},"def":{"name":"email_raw","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L27"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L24"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L30"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L42"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L13"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L43"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os_version:String|Nil-instance-method","name":"os_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L46"},"def":{"name":"os_version","return_type":"String | ::Nil","visibility":"Public","body":"@os_version"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L33"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L12"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L47"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCount","path":"Cisco/DNASpaces/DeviceCount.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCount","name":"DeviceCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"associated_count:Int32-instance-method","name":"associated_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L9"},"def":{"name":"associated_count","return_type":"Int32","visibility":"Public","body":"@associated_count"}},{"html_id":"estimated_capacity_percentage:Float64-instance-method","name":"estimated_capacity_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L21"},"def":{"name":"estimated_capacity_percentage","return_type":"Float64","visibility":"Public","body":"@estimated_capacity_percentage"}},{"html_id":"estimated_density:Float64-instance-method","name":"estimated_density","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L18"},"def":{"name":"estimated_density","return_type":"Float64","visibility":"Public","body":"@estimated_density"}},{"html_id":"estimated_probing_count:Int32-instance-method","name":"estimated_probing_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L12"},"def":{"name":"estimated_probing_count","return_type":"Int32","visibility":"Public","body":"@estimated_probing_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L6"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"probing_randomized_percentage:Float64-instance-method","name":"probing_randomized_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L15"},"def":{"name":"probing_randomized_percentage","return_type":"Float64","visibility":"Public","body":"@probing_randomized_percentage"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","path":"Cisco/DNASpaces/DeviceCountWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L116"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L117"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceCount-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L120"},"def":{"name":"payload","return_type":"DeviceCount","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntry","path":"Cisco/DNASpaces/DeviceEntry.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntry","name":"DeviceEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"days_sinc_last_visit:Int32-instance-method","name":"days_sinc_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L25"},"def":{"name":"days_sinc_last_visit","return_type":"Int32","visibility":"Public","body":"@days_sinc_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L22"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L16"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L13"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L19"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","path":"Cisco/DNASpaces/DeviceEntryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L53"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L54"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceEntry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L57"},"def":{"name":"payload","return_type":"DeviceEntry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExit","path":"Cisco/DNASpaces/DeviceExit.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExit","name":"DeviceExit","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L34"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L22"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L19"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L28"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L25"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L31"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L37"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L16"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","path":"Cisco/DNASpaces/DeviceExitWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L60"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L61"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceExit-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L64"},"def":{"name":"payload","return_type":"DeviceExit","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdate","path":"Cisco/DNASpaces/DeviceLocationUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdate","name":"DeviceLocationUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L33"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L21"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L38"},"def":{"name":"has_position?","visibility":"Public","body":"true"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L34"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L46"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L35"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L12"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L9"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L36"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"@unc"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L15"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L27"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L30"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","path":"Cisco/DNASpaces/DeviceLocationUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L82"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceLocationUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L85"},"def":{"name":"payload","return_type":"DeviceLocationUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresence","path":"Cisco/DNASpaces/DevicePresence.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresence","name":"DevicePresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_devices_count:Int32-instance-method","name":"active_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L50"},"def":{"name":"active_devices_count","return_type":"Int32","visibility":"Public","body":"@active_devices_count"}},{"html_id":"days_since_last_visit:Int32-instance-method","name":"days_since_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L23"},"def":{"name":"days_since_last_visit","return_type":"Int32","visibility":"Public","body":"@days_since_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L11"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L44"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L29"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L26"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_date_time:String-instance-method","name":"exit_date_time","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L35"},"def":{"name":"exit_date_time","return_type":"String","visibility":"Public","body":"@exit_date_time"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L32"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_devices_count:Int32-instance-method","name":"inactive_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L53"},"def":{"name":"inactive_devices_count","return_type":"Int32","visibility":"Public","body":"@inactive_devices_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L12"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L7"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L17"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L14"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L41"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L47"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L38"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L20"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L10"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","path":"Cisco/DNASpaces/DevicePresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L96"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DevicePresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L99"},"def":{"name":"payload","return_type":"DevicePresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Dimension","path":"Cisco/DNASpaces/Dimension.html","kind":"class","full_name":"Cisco::DNASpaces::Dimension","name":"Dimension","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L8"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L6"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"offset_x:Float64-instance-method","name":"offset_x","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L11"},"def":{"name":"offset_x","return_type":"Float64","visibility":"Public","body":"@offset_x"}},{"html_id":"offset_y:Float64-instance-method","name":"offset_y","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L14"},"def":{"name":"offset_y","return_type":"Float64","visibility":"Public","body":"@offset_y"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L7"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/Cisco/DNASpaces/Events","path":"Cisco/DNASpaces/Events.html","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper"},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive"},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper"},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is used to map the various events into a simpler data structure","summary":"

This is used to map the various events into a simpler data structure

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"event type hint","summary":"

event type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"eventType\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'eventType' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'eventType'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"KEEP_ALIVE\"\n KeepAlive.from_json(json)\nwhen \"DEVICE_ENTRY\"\n DeviceEntryWrapper.from_json(json)\nwhen \"DEVICE_EXIT\"\n DeviceExitWrapper.from_json(json)\nwhen \"PROFILE_UPDATE\"\n ProfileUpdateWrapper.from_json(json)\nwhen \"LOCATION_CHANGE\"\n LocationChangeWrapper.from_json(json)\nwhen \"DEVICE_LOCATION_UPDATE\"\n DeviceLocationUpdateWrapper.from_json(json)\nwhen \"TP_PEOPLE_COUNT_UPDATE\"\n PeopleCountUpdateWrapper.from_json(json)\nwhen \"DEVICE_PRESENCE\"\n DevicePresenceWrapper.from_json(json)\nwhen \"USER_PRESENCE\"\n UserPresenceWrapper.from_json(json)\nwhen \"APP_ACTIVATION\"\n AppActivactionWrapper.from_json(json)\nwhen \"DEVICE_COUNT\"\n DeviceCountWrapper.from_json(json)\nwhen \"BLE_RSSI_UPDATE\"\n BleRssiUpdateWrapper.from_json(json)\nwhen \"IOT_TELEMETRY\"\n IotTelemetryWrapper.from_json(json)\nwhen \"WEBEX_TELEMETRY\"\n WebexTelemetryUpdateWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'eventType' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L42"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"record_timestamp:Int64-instance-method","name":"record_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L33"},"def":{"name":"record_timestamp","return_type":"Int64","visibility":"Public","body":"@record_timestamp"}},{"html_id":"record_uid:String-instance-method","name":"record_uid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L30"},"def":{"name":"record_uid","return_type":"String","visibility":"Public","body":"@record_uid"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L36"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L39"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotDeviceInfo","path":"Cisco/DNASpaces/IotDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::IotDeviceInfo","name":"IotDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"device_name=(device_name:String)-instance-method","name":"device_name=","abstract":false,"args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"args_string":"(device_name : String)","args_html":"(device_name : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name=","args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"visibility":"Public","body":"@device_name = device_name"}},{"html_id":"firmware_version:String-instance-method","name":"firmware_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version","return_type":"String","visibility":"Public","body":"@firmware_version"}},{"html_id":"firmware_version=(firmware_version:String)-instance-method","name":"firmware_version=","abstract":false,"args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"args_string":"(firmware_version : String)","args_html":"(firmware_version : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version=","args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"visibility":"Public","body":"@firmware_version = firmware_version"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer","return_type":"String","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"args_string":"(manufacturer : String)","args_html":"(manufacturer : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L26"},"def":{"name":"os","visibility":"Public","body":"type"}},{"html_id":"raw_id:String-instance-method","name":"raw_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id","return_type":"String","visibility":"Public","body":"@raw_id"}},{"html_id":"raw_id=(raw_id:String)-instance-method","name":"raw_id=","abstract":false,"args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"args_string":"(raw_id : String)","args_html":"(raw_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id=","args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"visibility":"Public","body":"@raw_id = raw_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotPosition","path":"Cisco/DNASpaces/IotPosition.html","kind":"class","full_name":"Cisco::DNASpaces::IotPosition","name":"IotPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L32"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L44"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L45"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L46"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"time_located:Int64-instance-method","name":"time_located","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located","return_type":"Int64","visibility":"Public","body":"@time_located"}},{"html_id":"time_located=(time_located:Int64)-instance-method","name":"time_located=","abstract":false,"args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"args_string":"(time_located : Int64)","args_html":"(time_located : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located=","args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"visibility":"Public","body":"@time_located = time_located"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L38"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L41"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetry","path":"Cisco/DNASpaces/IotTelemetry.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetry","name":"IotTelemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_pressure-instance-method","name":"air_pressure","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L165"},"def":{"name":"air_pressure","visibility":"Public","body":"if pressure = @air_pressure_actual\n pressure[:pressure]\nend"}},{"html_id":"air_pressure_actual:NamedTuple(pressure:Float64)|Nil-instance-method","name":"air_pressure_actual","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L127"},"def":{"name":"air_pressure_actual","return_type":"NamedTuple(pressure: Float64) | ::Nil","visibility":"Public","body":"@air_pressure_actual"}},{"html_id":"air_quality-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L147"},"def":{"name":"air_quality","visibility":"Public","body":"if index = @air_quality_index\n index[:airQualityIndex]\nend"}},{"html_id":"air_quality_index:NamedTuple(airQualityIndex:Float64)|Nil-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L118"},"def":{"name":"air_quality_index","return_type":"NamedTuple(airQualityIndex: Float64) | ::Nil","visibility":"Public","body":"@air_quality_index"}},{"html_id":"ambient_noise-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L143"},"def":{"name":"ambient_noise","visibility":"Public","body":"tele_presence_data.try(&.ambient_noise)"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L177"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .humidity?\n \"#{mac}->humidity->humidityInPercentage\"\nwhen .air_quality?\n \"#{mac}->airQuality->airQualityIndex\"\nwhen .people_count?\n \"#{mac}->tpData->peopleCount\"\nwhen .temperature?\n \"#{mac}->temperature->temperatureInCelsius\"\nend"}},{"html_id":"confidence_factor(*args,**options)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.confidence_factor(*args, **options)"}},{"html_id":"confidence_factor(*args,**options,&)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.confidence_factor(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"detected_position:IotPosition|Nil-instance-method","name":"detected_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L98"},"def":{"name":"detected_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@detected_position"}},{"html_id":"device:IotDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L95"},"def":{"name":"device","return_type":"IotDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device_rtc:Int64-instance-method","name":"device_rtc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L106"},"def":{"name":"device_rtc","return_type":"Int64","visibility":"Public","body":"@device_rtc"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L204"},"def":{"name":"has_position?","visibility":"Public","body":"!!(@detected_position || @placed_position)"}},{"html_id":"humidity-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L159"},"def":{"name":"humidity","visibility":"Public","body":"if humidity = @humidity_percent\n humidity[:humidityInPercentage]\nend"}},{"html_id":"humidity_percent:NamedTuple(humidityInPercentage:Float64)|Nil-instance-method","name":"humidity_percent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L124"},"def":{"name":"humidity_percent","return_type":"NamedTuple(humidityInPercentage: Float64) | ::Nil","visibility":"Public","body":"@humidity_percent"}},{"html_id":"last_seen-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L228"},"def":{"name":"last_seen","visibility":"Public","body":"tele_presence_data.try(&.time_stamp) || (has_position? ? position.time_located : device_rtc)"}},{"html_id":"last_seen=(time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":""}],"args_string":"(time)","args_html":"(time)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L232"},"def":{"name":"last_seen=","args":[{"name":"time","external_name":"time","restriction":""}],"visibility":"Public","body":"if tele_data = tele_presence_data\n tele_data.time_stamp = time\nelse\n if has_position?\n position.time_located = time\n else\n @device_rtc = time\n end\nend\ntime\n"}},{"html_id":"latitude(*args,**options)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.latitude(*args, **options)"}},{"html_id":"latitude(*args,**options,&)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.latitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L103"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L194"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude(*args,**options)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.longitude(*args, **options)"}},{"html_id":"longitude(*args,**options,&)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.longitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id(*args,**options)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.map_id(*args, **options)"}},{"html_id":"map_id(*args,**options,&)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.map_id(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id=(id)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L220"},"def":{"name":"map_id=","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"position.map_id = id"}},{"html_id":"people_count-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L135"},"def":{"name":"people_count","visibility":"Public","body":"tele_presence_data.try(&.people_count)"}},{"html_id":"pir_trigger:NamedTuple(timestamp:Int64)|Nil-instance-method","name":"pir_trigger","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L130"},"def":{"name":"pir_trigger","return_type":"NamedTuple(timestamp: Int64) | ::Nil","visibility":"Public","body":"@pir_trigger"}},{"html_id":"pir_triggered-instance-method","name":"pir_triggered","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L171"},"def":{"name":"pir_triggered","visibility":"Public","body":"if pir_trigger = @pir_trigger\n pir_trigger[:timestamp]\nend"}},{"html_id":"placed_position:IotPosition|Nil-instance-method","name":"placed_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L101"},"def":{"name":"placed_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@placed_position"}},{"html_id":"position:IotPosition-instance-method","name":"position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L208"},"def":{"name":"position","return_type":"IotPosition","visibility":"Public","body":"(@detected_position || @placed_position).not_nil!"}},{"html_id":"presence-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L139"},"def":{"name":"presence","visibility":"Public","body":"tele_presence_data.try(&.presence)"}},{"html_id":"raw_header:Int64-instance-method","name":"raw_header","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L109"},"def":{"name":"raw_header","return_type":"Int64","visibility":"Public","body":"@raw_header"}},{"html_id":"raw_payload:String-instance-method","name":"raw_payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L112"},"def":{"name":"raw_payload","return_type":"String","visibility":"Public","body":"@raw_payload"}},{"html_id":"raw_user_id-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L243"},"def":{"name":"raw_user_id","visibility":"Public","body":"\"\""}},{"html_id":"sequence_num:Int64-instance-method","name":"sequence_num","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L115"},"def":{"name":"sequence_num","return_type":"Int64","visibility":"Public","body":"@sequence_num"}},{"html_id":"ssid-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L251"},"def":{"name":"ssid","visibility":"Public","body":"\"IoT\""}},{"html_id":"tele_presence_data:TpData|Nil-instance-method","name":"tele_presence_data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L133"},"def":{"name":"tele_presence_data","return_type":"TpData | ::Nil","visibility":"Public","body":"@tele_presence_data"}},{"html_id":"temperature-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L153"},"def":{"name":"temperature","visibility":"Public","body":"if temp = @temperature_celsius\n temp[:temperatureInCelsius]\nend"}},{"html_id":"temperature_celsius:NamedTuple(temperatureInCelsius:Float64)|Nil-instance-method","name":"temperature_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L121"},"def":{"name":"temperature_celsius","return_type":"NamedTuple(temperatureInCelsius: Float64) | ::Nil","visibility":"Public","body":"@temperature_celsius"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L247"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"3.0"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L224"},"def":{"name":"visit_id","visibility":"Public","body":"\"unknown for IoT\""}},{"html_id":"x_pos(*args,**options)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.x_pos(*args, **options)"}},{"html_id":"x_pos(*args,**options,&)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.x_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"y_pos(*args,**options)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.y_pos(*args, **options)"}},{"html_id":"y_pos(*args,**options,&)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.y_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","path":"Cisco/DNASpaces/IotTelemetryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L131"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:IotTelemetry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L134"},"def":{"name":"payload","return_type":"IotTelemetry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","path":"Cisco/DNASpaces/KeepAlive.html","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L46"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L48"},"def":{"name":"payload","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/Location","path":"Cisco/DNASpaces/Location.html","kind":"class","full_name":"Cisco::DNASpaces::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"descriptions(mappings={}ofString=>String)-instance-method","name":"descriptions","doc":"Maps location_ids to location names","summary":"

Maps location_ids to location names

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L25"},"def":{"name":"descriptions","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.descriptions(mappings))\nmappings[location_id] = name\nmappings\n"}},{"html_id":"details(mappings={}ofString=>String)-instance-method","name":"details","doc":"Maps tag names to location_ids","summary":"

Maps tag names to location_ids

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L18"},"def":{"name":"details","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.details(mappings))\ntags.each do |tag|\n mappings[tag] = location_id\nend\nmappings\n"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L7"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"parent:Location|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L15"},"def":{"name":"parent","return_type":"Location | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","doc":"TODO:: this might be better as an enum\nif there are only limited types","summary":"

TODO : this might be better as an enum if there are only limited types

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L13"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange","path":"Cisco/DNASpaces/LocationChange.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_type:String-instance-method","name":"change_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L7"},"def":{"name":"change_type","return_type":"String","visibility":"Public","body":"@change_type"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L8"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/LocationChange/LocationDetails","path":"Cisco/DNASpaces/LocationChange/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L25"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L22"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L24"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L27"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L28"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"metadata:Array(Metadata)-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L30"},"def":{"name":"metadata","return_type":"Array(Metadata)","visibility":"Public","body":"@metadata"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L23"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L21"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange/Metadata","path":"Cisco/DNASpaces/LocationChange/Metadata.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L13"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"values:Array(String)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L14"},"def":{"name":"values","return_type":"Array(String)","visibility":"Public","body":"@values"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","path":"Cisco/DNASpaces/LocationChangeWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L74"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L75"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:LocationChange-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L78"},"def":{"name":"payload","return_type":"LocationChange","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationDetails","path":"Cisco/DNASpaces/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L12"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L9"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L11"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L14"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L15"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L10"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L7"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationInfo","path":"Cisco/DNASpaces/LocationInfo.html","kind":"class","full_name":"Cisco::DNASpaces::LocationInfo","name":"LocationInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L156"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L157"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:LocationDetails-instance-method","name":"details","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L162"},"def":{"name":"details","return_type":"LocationDetails","visibility":"Public","body":"@details"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L159"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}]},{"html_id":"drivers/Cisco/DNASpaces/MapInfo","path":"Cisco/DNASpaces/MapInfo.html","kind":"class","full_name":"Cisco::DNASpaces::MapInfo","name":"MapInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dimension:Cisco::DNASpaces::Dimension-instance-method","name":"dimension","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L29"},"def":{"name":"dimension","return_type":"Cisco::DNASpaces::Dimension","visibility":"Public","body":"@dimension"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L21"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_height:Float64-instance-method","name":"image_height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L27"},"def":{"name":"image_height","return_type":"Float64","visibility":"Public","body":"@image_height"}},{"html_id":"image_width:Float64-instance-method","name":"image_width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L24"},"def":{"name":"image_width","return_type":"Float64","visibility":"Public","body":"@image_width"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdate","path":"Cisco/DNASpaces/PeopleCountUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdate","name":"PeopleCountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is triggered from telepresence devices","summary":"

This is triggered from telepresence devices

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L25"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L19"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L22"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L9"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L13"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L10"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L28"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L16"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L31"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"tp_device_id:String-instance-method","name":"tp_device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L8"},"def":{"name":"tp_device_id","return_type":"String","visibility":"Public","body":"@tp_device_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","path":"Cisco/DNASpaces/PeopleCountUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L88"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L89"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:PeopleCountUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L92"},"def":{"name":"payload","return_type":"PeopleCountUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","path":"Cisco/DNASpaces/ProfileUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L68"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:Device-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L71"},"def":{"name":"payload","return_type":"Device","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiMeasurement","path":"Cisco/DNASpaces/RssiMeasurement.html","kind":"class","full_name":"Cisco::DNASpaces::RssiMeasurement","name":"RssiMeasurement","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"antenna_id:Int32-instance-method","name":"antenna_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id","return_type":"Int32","visibility":"Public","body":"@antenna_id"}},{"html_id":"antenna_id=(antenna_id:Int32)-instance-method","name":"antenna_id=","abstract":false,"args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"args_string":"(antenna_id : Int32)","args_html":"(antenna_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id=","args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"visibility":"Public","body":"@antenna_id = antenna_id"}},{"html_id":"band_id:Int32-instance-method","name":"band_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id","return_type":"Int32","visibility":"Public","body":"@band_id"}},{"html_id":"band_id=(band_id:Int32)-instance-method","name":"band_id=","abstract":false,"args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"args_string":"(band_id : Int32)","args_html":"(band_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id=","args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"visibility":"Public","body":"@band_id = band_id"}},{"html_id":"if_slot_id:Int32-instance-method","name":"if_slot_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id","return_type":"Int32","visibility":"Public","body":"@if_slot_id"}},{"html_id":"if_slot_id=(if_slot_id:Int32)-instance-method","name":"if_slot_id=","abstract":false,"args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"args_string":"(if_slot_id : Int32)","args_html":"(if_slot_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id=","args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"visibility":"Public","body":"@if_slot_id = if_slot_id"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiNotification","path":"Cisco/DNASpaces/RssiNotification.html","kind":"class","full_name":"Cisco::DNASpaces::RssiNotification","name":"RssiNotification","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"measurements:Array(RssiMeasurement)-instance-method","name":"measurements","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements","return_type":"Array(RssiMeasurement)","visibility":"Public","body":"@measurements"}},{"html_id":"measurements=(measurements:Array(RssiMeasurement))-instance-method","name":"measurements=","abstract":false,"args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"args_string":"(measurements : Array(RssiMeasurement))","args_html":"(measurements : Array(RssiMeasurement))","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements=","args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"visibility":"Public","body":"@measurements = measurements"}},{"html_id":"payload:BlePayload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload","return_type":"BlePayload","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:BlePayload)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"args_string":"(payload : BlePayload)","args_html":"(payload : BlePayload)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"visibility":"Public","body":"@payload = payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/TpData","path":"Cisco/DNASpaces/TpData.html","kind":"class","full_name":"Cisco::DNASpaces::TpData","name":"TpData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"active_calls=(active_calls:Int32)-instance-method","name":"active_calls=","abstract":false,"args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"args_string":"(active_calls : Int32)","args_html":"(active_calls : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls=","args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"visibility":"Public","body":"@active_calls = active_calls"}},{"html_id":"air_quality_index:Float64-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index","return_type":"Float64","visibility":"Public","body":"@air_quality_index"}},{"html_id":"air_quality_index=(air_quality_index:Float64)-instance-method","name":"air_quality_index=","abstract":false,"args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"args_string":"(air_quality_index : Float64)","args_html":"(air_quality_index : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index=","args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"visibility":"Public","body":"@air_quality_index = air_quality_index"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_noise=(ambient_noise:Int32)-instance-method","name":"ambient_noise=","abstract":false,"args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"args_string":"(ambient_noise : Int32)","args_html":"(ambient_noise : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise=","args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"visibility":"Public","body":"@ambient_noise = ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"dryness_score=(dryness_score:Int32)-instance-method","name":"dryness_score=","abstract":false,"args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"args_string":"(dryness_score : Int32)","args_html":"(dryness_score : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score=","args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"visibility":"Public","body":"@dryness_score = dryness_score"}},{"html_id":"humidity_in_percentage:Float64-instance-method","name":"humidity_in_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage","return_type":"Float64","visibility":"Public","body":"@humidity_in_percentage"}},{"html_id":"humidity_in_percentage=(humidity_in_percentage:Float64)-instance-method","name":"humidity_in_percentage=","abstract":false,"args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"args_string":"(humidity_in_percentage : Float64)","args_html":"(humidity_in_percentage : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage=","args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"visibility":"Public","body":"@humidity_in_percentage = humidity_in_percentage"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"people_count=(people_count:Int32)-instance-method","name":"people_count=","abstract":false,"args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"args_string":"(people_count : Int32)","args_html":"(people_count : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count=","args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"visibility":"Public","body":"@people_count = people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L88"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"presentation_state=(presentation_state:Int32)-instance-method","name":"presentation_state=","abstract":false,"args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"args_string":"(presentation_state : Int32)","args_html":"(presentation_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state=","args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"visibility":"Public","body":"@presentation_state = presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"standby_state=(standby_state:Int32)-instance-method","name":"standby_state=","abstract":false,"args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"args_string":"(standby_state : Int32)","args_html":"(standby_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state=","args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"visibility":"Public","body":"@standby_state = standby_state"}},{"html_id":"temperature_in_celsius:Float64-instance-method","name":"temperature_in_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius","return_type":"Float64","visibility":"Public","body":"@temperature_in_celsius"}},{"html_id":"temperature_in_celsius=(temperature_in_celsius:Float64)-instance-method","name":"temperature_in_celsius=","abstract":false,"args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"args_string":"(temperature_in_celsius : Float64)","args_html":"(temperature_in_celsius : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius=","args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"visibility":"Public","body":"@temperature_in_celsius = temperature_in_celsius"}},{"html_id":"time_stamp:Int64-instance-method","name":"time_stamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp","return_type":"Int64","visibility":"Public","body":"@time_stamp"}},{"html_id":"time_stamp=(time_stamp:Int64)-instance-method","name":"time_stamp=","abstract":false,"args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"args_string":"(time_stamp : Int64)","args_html":"(time_stamp : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp=","args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"visibility":"Public","body":"@time_stamp = time_stamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence","path":"Cisco/DNASpaces/UserPresence.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_users_count:UserCount-instance-method","name":"active_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L79"},"def":{"name":"active_users_count","return_type":"UserCount","visibility":"Public","body":"@active_users_count"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L64"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L61"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L70"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L67"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_users_count:UserCount-instance-method","name":"inactive_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L82"},"def":{"name":"inactive_users_count","return_type":"UserCount","visibility":"Public","body":"@inactive_users_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L52"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L46"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L55"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L76"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L51"},"def":{"name":"user","return_type":"User","visibility":"Public","body":"@user"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L73"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L58"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L49"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/UserPresence/User","path":"Cisco/DNASpaces/UserPresence/User.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L13"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L16"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L20"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L17"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L23"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L15"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L26"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L14"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence/UserCount","path":"Cisco/DNASpaces/UserPresence/UserCount.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::UserCount","name":"UserCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"total_users:Int64-instance-method","name":"total_users","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L42"},"def":{"name":"total_users","return_type":"Int64","visibility":"Public","body":"@total_users"}},{"html_id":"users_with_user_id:Int64-instance-method","name":"users_with_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L36"},"def":{"name":"users_with_user_id","return_type":"Int64","visibility":"Public","body":"@users_with_user_id"}},{"html_id":"users_without_user_id:Int64-instance-method","name":"users_without_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L39"},"def":{"name":"users_without_user_id","return_type":"Int64","visibility":"Public","body":"@users_without_user_id"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","path":"Cisco/DNASpaces/UserPresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L102"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L103"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:UserPresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L106"},"def":{"name":"payload","return_type":"UserPresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexDeviceInfo","path":"Cisco/DNASpaces/WebexDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::WebexDeviceInfo","name":"WebexDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html","summary":"

https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L22"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L15"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L34"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"serial_number:String-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L25"},"def":{"name":"serial_number","return_type":"String","visibility":"Public","body":"@serial_number"}},{"html_id":"software_version:String-instance-method","name":"software_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L28"},"def":{"name":"software_version","return_type":"String","visibility":"Public","body":"@software_version"}},{"html_id":"type:String-instance-method","name":"type","doc":"these fields are named to be compatible with the IoT field names","summary":"

these fields are named to be compatible with the IoT field names

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L19"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"workspace_id:String-instance-method","name":"workspace_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L31"},"def":{"name":"workspace_id","return_type":"String","visibility":"Public","body":"@workspace_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetry","path":"Cisco/DNASpaces/WebexTelemetry.html","kind":"struct","full_name":"Cisco::DNASpaces::WebexTelemetry","name":"WebexTelemetry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L49"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"@air_quality"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L55"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_temp:Float64|Nil-instance-method","name":"ambient_temp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L52"},"def":{"name":"ambient_temp","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_temp"}},{"html_id":"count:Int32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L43"},"def":{"name":"count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"presence:Bool|Nil-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L40"},"def":{"name":"presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@presence"}},{"html_id":"relative_humidity:Float64|Nil-instance-method","name":"relative_humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L58"},"def":{"name":"relative_humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"@relative_humidity"}},{"html_id":"sound_level:Float64|Nil-instance-method","name":"sound_level","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L46"},"def":{"name":"sound_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@sound_level"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdate","path":"Cisco/DNASpaces/WebexTelemetryUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdate","name":"WebexTelemetryUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L61"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L62"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L83"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @air_quality).nil?\n @air_quality = (telemetries.compact_map(&.air_quality).first?)\nelse\n __temp_1\nend"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L91"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @ambient_noise).nil?\n @ambient_noise = (telemetries.compact_map(&.ambient_noise).first?)\nelse\n __temp_1\nend"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L128"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .presence?\n \"#{mac}->presence\"\nwhen .humidity?\n \"#{mac}->humidity\"\nwhen .air_quality?\n \"#{mac}->air_quality\"\nwhen .people_count?\n \"#{mac}->people_count\"\nwhen .temperature?\n \"#{mac}->temperature\"\nwhen .sound_pressure?\n \"#{mac}->ambient_noise\"\nend"}},{"html_id":"device:WebexDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device","return_type":"WebexDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device=(device:WebexDeviceInfo)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"args_string":"(device : WebexDeviceInfo)","args_html":"(device : WebexDeviceInfo)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"visibility":"Public","body":"@device = device"}},{"html_id":"humidity:Float64|Nil-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L79"},"def":{"name":"humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @humidity).nil?\n @humidity = (telemetries.compact_map(&.relative_humidity).first?)\nelse\n __temp_1\nend"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @last_seen).nil?\n @last_seen = (Time.utc.to_unix_ms)\nelse\n __temp_1\nend"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L165"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L71"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @people_count).nil?\n @people_count = (telemetries.compact_map(&.count).first? || 0)\nelse\n __temp_1\nend"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L75"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @presence).nil?\n @presence = (telemetries.compact_map(&.presence).first? || (people_count > 0))\nelse\n __temp_1\nend"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L157"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"telemetries:Array(WebexTelemetry)-instance-method","name":"telemetries","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries","return_type":"Array(WebexTelemetry)","visibility":"Public","body":"if (__temp_1 = @telemetries).nil?\n @telemetries = ([] of WebexTelemetry)\nelse\n __temp_1\nend"}},{"html_id":"telemetries=(telemetries:Array(WebexTelemetry))-instance-method","name":"telemetries=","abstract":false,"args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"args_string":"(telemetries : Array(WebexTelemetry))","args_html":"(telemetries : Array(WebexTelemetry))","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries=","args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"visibility":"Public","body":"@telemetries = telemetries"}},{"html_id":"temperature:Float64|Nil-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L87"},"def":{"name":"temperature","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @temperature).nil?\n @temperature = (telemetries.compact_map(&.ambient_temp).first?)\nelse\n __temp_1\nend"}},{"html_id":"update_telemetry-instance-method","name":"update_telemetry","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L95"},"def":{"name":"update_telemetry","visibility":"Public","body":"telemetries.each do |telemetry|\n if !telemetry.presence.nil?\n @presence = telemetry.presence\n next\n end\n if count = telemetry.count\n @people_count = count\n next\n end\n if float = telemetry.relative_humidity\n @humidity = float\n next\n end\n if float = telemetry.air_quality\n @air_quality = float\n next\n end\n if float = telemetry.ambient_temp\n @temperature = float\n next\n end\n if float = telemetry.ambient_noise\n @ambient_noise = float\n end\nend"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L153"},"def":{"name":"visit_id","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","path":"Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L137"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L138"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:WebexTelemetryUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L141"},"def":{"name":"payload","return_type":"WebexTelemetryUpdate","visibility":"Public","body":"@payload"}}]}]},{"html_id":"drivers/Cisco/Ise","path":"Cisco/Ise.html","kind":"module","full_name":"Cisco::Ise","name":"Ise","abstract":false,"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Ise/Guests","path":"Cisco/Ise/Guests.html","kind":"class","full_name":"Cisco::Ise::Guests","name":"Guests","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/vnd.com.cisco.ise.identity.guestuser.2.0+xml\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest(event_start:Int64,attendee_email:String,attendee_name:String,company_name:String|Nil=nil,phone_number:String=\"0123456789\",sms_service_provider:String|Nil=nil,guest_type:String|Nil=nil,portal_id:String|Nil=nil)-instance-method","name":"create_guest","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"args_string":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = \"0123456789\", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","args_html":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = "0123456789", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L49"},"def":{"name":"create_guest","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"guest_names = attendee_name.split\nfirst_name_index_end = guest_names.size > 1 ? -2 : -1\nfirst_name = guest_names[0..first_name_index_end].join(' ')\nlast_name = guest_names[-1]\nusername = genererate_username(first_name, last_name)\nif setting?(Bool, :test)\n return {\"username\" => username, \"password\" => UUID.random.to_s[0..3]}.merge(@custom_data)\nend\nsms_service_provider || (sms_service_provider = @sms_service_provider)\nguest_type || (guest_type = @guest_type)\nportal_id || (portal_id = @portal_id)\ntime_object = (Time.unix(event_start)).in(@timezone)\nfrom_date = time_object.at_beginning_of_day.to_s(TIME_FORMAT)\nto_date = time_object.at_end_of_day.to_s(TIME_FORMAT)\ncompany_name || (company_name = ((attendee_email.split('@'))[1].split('.'))[0].capitalize)\nxml_string = \"\\n \"\nif @location\n xml_string = xml_string + \"\\n \"\nend\nxml_string = xml_string + \"\\n \\n #{from_date}\"\nif @location\n xml_string = xml_string + \"\\n #{@location}\"\nend\nxml_string = xml_string + \"\\n #{to_date}\\n 1\\n \\n \\n #{company_name}\\n #{attendee_email}\\n #{first_name}\\n #{last_name}\\n English\\n #{phone_number}\"\nif sms_service_provider\n xml_string = xml_string + \"\\n #{sms_service_provider}\"\nend\nxml_string = xml_string + \"\\n #{username}\\n \\n #{guest_type}\\n #{portal_id}\\n \"\nresponse = post(\"/guestuser/\", body: xml_string, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\nguest_id = (response.headers[\"Location\"].split('/')).last\n(guest_crendentials(guest_id)).merge(@custom_data)\n"}},{"html_id":"guest_crendentials(id:String)-instance-method","name":"guest_crendentials","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L136"},"def":{"name":"guest_crendentials","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/guestuser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nparsed_body = XML.parse(response.body)\nguest_user = parsed_body.first_element_child.not_nil!\nguest_info = guest_user.children.find do |c|\n c.name == \"guestInfo\"\nend.not_nil!\n{\"username\" => guest_info.children.find do |c|\n c.name == \"userName\"\nend.not_nil!.content, \"password\" => guest_info.children.find do |c|\n c.name == \"password\"\nend.not_nil!.content}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@basic_auth = \"Basic #{Base64.strict_encode(\"#{setting?(String, :username)}:#{setting?(String, :password)}\")}\"\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@location = setting?(String, :location)\n@sms_service_provider = setting?(String, :sms_service_provider)\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, JSON::Any::Type), :custom_data)) || ({} of String => JSON::Any::Type)\n"}},{"html_id":"test2-instance-method","name":"test2","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L160"},"def":{"name":"test2","visibility":"Public","body":"xml_string = \"\\n\\n\\n08/06/2014 23:22\\n08/07/2014 23:22\\n1\\n\\n\\nNew Company\\njohn@example.com\\nJohn\\nDoe\\nEnglish\\n9999998877\\nGlobal Default\\nautoguestuser1\\n\\nDaily\\nsponsor\\nportal101\\ninterview\\n\"\ntest_xml(xml_string)\n"}},{"html_id":"test_json(json:String)-instance-method","name":"test_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L186"},"def":{"name":"test_json","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: json, headers: {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"test_xml(xml_string:String)-instance-method","name":"test_xml","abstract":false,"args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"args_string":"(xml_string : String)","args_html":"(xml_string : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L151"},"def":{"name":"test_xml","args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: (XML.parse(xml_string)).to_s, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}}]},{"html_id":"drivers/Cisco/Ise/Models","path":"Cisco/Ise/Models.html","kind":"module","full_name":"Cisco::Ise::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"types":[{"html_id":"drivers/Cisco/Ise/Models/InternalUser","path":"Cisco/Ise/Models/InternalUser.html","kind":"class","full_name":"Cisco::Ise::Models::InternalUser","name":"InternalUser","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Ise/Models","kind":"module","full_name":"Cisco::Ise::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_password:Bool-instance-method","name":"change_password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password","return_type":"Bool","visibility":"Public","body":"@change_password"}},{"html_id":"change_password=(change_password:Bool)-instance-method","name":"change_password=","abstract":false,"args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"args_string":"(change_password : Bool)","args_html":"(change_password : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password=","args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"visibility":"Public","body":"@change_password = change_password"}},{"html_id":"custom_attributes:Hash(String,String)-instance-method","name":"custom_attributes","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes","return_type":"Hash(String, String)","visibility":"Public","body":"@custom_attributes"}},{"html_id":"custom_attributes=(custom_attributes:Hash(String,String))-instance-method","name":"custom_attributes=","abstract":false,"args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"args_string":"(custom_attributes : Hash(String, String))","args_html":"(custom_attributes : Hash(String, String))","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes=","args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@custom_attributes = custom_attributes"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"enabled=(enabled:Bool)-instance-method","name":"enabled=","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"args_string":"(enabled : Bool)","args_html":"(enabled : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled=","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"visibility":"Public","body":"@enabled = enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"identity_groups:String|Nil-instance-method","name":"identity_groups","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups","return_type":"String | ::Nil","visibility":"Public","body":"@identity_groups"}},{"html_id":"identity_groups=(identity_groups:String|Nil)-instance-method","name":"identity_groups=","abstract":false,"args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"args_string":"(identity_groups : String | Nil)","args_html":"(identity_groups : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups=","args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"visibility":"Public","body":"@identity_groups = identity_groups"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"password:String|Nil-instance-method","name":"password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password","return_type":"String | ::Nil","visibility":"Public","body":"@password"}},{"html_id":"password=(password:String|Nil)-instance-method","name":"password=","abstract":false,"args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(password : String | Nil)","args_html":"(password : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password=","args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"@password = password"}},{"html_id":"password_store:String-instance-method","name":"password_store","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store","return_type":"String","visibility":"Public","body":"@password_store"}},{"html_id":"password_store=(password_store:String)-instance-method","name":"password_store=","abstract":false,"args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"args_string":"(password_store : String)","args_html":"(password_store : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store=","args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"visibility":"Public","body":"@password_store = password_store"}}]}]},{"html_id":"drivers/Cisco/Ise/NetworkAccess","path":"Cisco/Ise/NetworkAccess.html","kind":"class","full_name":"Cisco::Ise::NetworkAccess","name":"NetworkAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/network_access.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/json\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_internal_user(email:String,name:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,password:String|Nil=nil,identity_groups:Array(String)=[]ofString)-instance-method","name":"create_internal_user","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","args_html":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L75"},"def":{"name":"create_internal_user","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"name || (name = email)\npassword || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = Models::InternalUser.from_json({name: name, email: email, password: password, firstName: first_name, lastName: last_name, description: description, identityGroups: identity_groups.join(\",\")}.to_json)\nif @debug\n logger.debug do\n \"Creating Internal User: #{internal_user.to_json}\"\n end\nend\nresponse = post(\"/internaluser/\", body: {\"InternalUser\" => internal_user}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"Failed to create internal user, code #{response.status_code}\\n#{response.body}\")\nend\nuser = get_internal_user_by_name(name)\nuser.password = password\nuser\n"}},{"html_id":"get_internal_user_by_email(email:String)-instance-method","name":"get_internal_user_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L156"},"def":{"name":"get_internal_user_by_email","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/?filter=email.CONTAINS.#{email}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\nresources = parsed_body[\"SearchResult\"].as_h[\"resources\"].as_a\nif resources.empty?\n raise(\"returned body has no resources\")\nend\nget_internal_user_by_id(resources.first.as_h[\"id\"].to_s)\n"}},{"html_id":"get_internal_user_by_id(id:String)-instance-method","name":"get_internal_user_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L122"},"def":{"name":"get_internal_user_by_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by id, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"get_internal_user_by_name(name:String)-instance-method","name":"get_internal_user_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L139"},"def":{"name":"get_internal_user_by_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/name/#{name}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by name, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/network_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L49"},"def":{"name":"on_update","visibility":"Public","body":"username = setting?(String, :username)\npassword = setting?(String, :password)\n@basic_auth = [\"Basic\", Base64.strict_encode([username, password].join(\":\"))].join(\" \")\n@debug = (setting?(Bool, :debug)) || false\n@test_mode = (setting?(Bool, :test)) || false\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@sms_service_provider = setting?(String, :sms_service_provider)\n@password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, String), :custom_data)) || ({} of String => String)\nif @debug\n logger.debug do\n \"Basic auth details: #{@basic_auth}\"\n end\nend\n"}},{"html_id":"update_internal_user_identity_groups_by_email(email:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, identity_groups : Array(String))","args_html":"(email : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L258"},"def":{"name":"update_internal_user_identity_groups_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_email(email)\nupdate_internal_user_identity_groups_by_id(internal_user.id.to_s, identity_groups)\n"}},{"html_id":"update_internal_user_identity_groups_by_id(id:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(id : String, identity_groups : Array(String))","args_html":"(id : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L232"},"def":{"name":"update_internal_user_identity_groups_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_id(id)\nresponse = put(\"/internaluser/#{internal_user.id}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_identity_groups_by_name(name:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(name : String, identity_groups : Array(String))","args_html":"(name : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L246"},"def":{"name":"update_internal_user_identity_groups_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"response = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_email(email:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(email : String, password : String | Nil = nil)","args_html":"(email : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L218"},"def":{"name":"update_internal_user_password_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = get_internal_user_by_email(email)\nupdate_internal_user_password_by_id(internal_user.id.to_s, password)\n"}},{"html_id":"update_internal_user_password_by_id(id:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(id : String, password : String | Nil = nil)","args_html":"(id : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L176"},"def":{"name":"update_internal_user_password_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/#{id}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_name(name:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(name : String, password : String | Nil = nil)","args_html":"(name : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L197"},"def":{"name":"update_internal_user_password_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}}]}]},{"html_id":"drivers/Cisco/Meraki","path":"Cisco/Meraki.html","kind":"module","full_name":"Cisco::Meraki","name":"Meraki","abstract":false,"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L6"},{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L4"},{"filename":"src/cisco/meraki/scanning_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"\"%FT%T%z\""}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"doc":"Meraki MQTT Data Models","summary":"

Meraki MQTT Data Models

","types":[{"html_id":"drivers/Cisco/Meraki/AlertType","path":"Cisco/Meraki/AlertType.html","kind":"enum","full_name":"Cisco::Meraki::AlertType","name":"AlertType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L365"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PortConnected","name":"PortConnected","value":"0"},{"id":"PortDisconnected","name":"PortDisconnected","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"port_connected?-instance-method","name":"port_connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L366"},"def":{"name":"port_connected?","visibility":"Public","body":"self == PortConnected"}},{"html_id":"port_disconnected?-instance-method","name":"port_disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L367"},"def":{"name":"port_disconnected?","visibility":"Public","body":"self == PortDisconnected"}}]},{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","path":"Cisco/Meraki/CameraAnalytics.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601_MS","name":"ISO8601_MS","value":"\"%FT%T.%3N%z\""}],"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ts:Time-instance-method","name":"ts","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts","return_type":"Time","visibility":"Public","body":"@ts"}},{"html_id":"ts=(ts:Time)-instance-method","name":"ts=","abstract":false,"args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"args_string":"(ts : Time)","args_html":"(ts : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts=","args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"visibility":"Public","body":"@ts = ts"}},{"html_id":"zones:Hash(Int64,PeopleCount)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones","return_type":"Hash(Int64, PeopleCount)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Hash(Int64,PeopleCount))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"args_string":"(zones : Hash(Int64, PeopleCount))","args_html":"(zones : Hash(Int64, PeopleCount))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"visibility":"Public","body":"@zones = zones"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraAnalytics/PeopleCount","path":"Cisco/Meraki/CameraAnalytics/PeopleCount.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics::PeopleCount","name":"PeopleCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person:Int32-instance-method","name":"person","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person","return_type":"Int32","visibility":"Public","body":"@person"}},{"html_id":"person=(person:Int32)-instance-method","name":"person=","abstract":false,"args":[{"name":"person","external_name":"person","restriction":"Int32"}],"args_string":"(person : Int32)","args_html":"(person : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person=","args":[{"name":"person","external_name":"person","restriction":"Int32"}],"visibility":"Public","body":"@person = person"}}]}]},{"html_id":"drivers/Cisco/Meraki/CameraZone","path":"Cisco/Meraki/CameraZone.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L302"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L303"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"distance:Float64-instance-method","name":"distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance","return_type":"Float64","visibility":"Public","body":"@distance"}},{"html_id":"distance=(distance:Float64)-instance-method","name":"distance=","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"args_string":"(distance : Float64)","args_html":"(distance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance=","args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"visibility":"Public","body":"@distance = distance"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L315"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"label:String-instance-method","name":"label","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L317"},"def":{"name":"label","return_type":"String","visibility":"Public","body":"@label"}},{"html_id":"mid_point-instance-method","name":"mid_point","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L325"},"def":{"name":"mid_point","visibility":"Public","body":"mid_x = (region.x0.to_f64 + region.x1.to_f64) / 2.0\nmid_y = (region.y0.to_f64 + region.y1.to_f64) / 2.0\n{mid_x, mid_y}\n"}},{"html_id":"region:Region-instance-method","name":"region","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L320"},"def":{"name":"region","return_type":"Region","visibility":"Public","body":"@region"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L316"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L331"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @x).nil?\n @x = (begin\n xpos, @y = mid_point\n xpos\n end)\nelse\n __temp_1\nend"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L336"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @y).nil?\n @y = (begin\n @x, ypos = mid_point\n ypos\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraZone/Region","path":"Cisco/Meraki/CameraZone/Region.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone::Region","name":"Region","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L305"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraZone","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L306"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x0:String-instance-method","name":"x0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L308"},"def":{"name":"x0","return_type":"String","visibility":"Public","body":"@x0"}},{"html_id":"x1:String-instance-method","name":"x1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L310"},"def":{"name":"x1","return_type":"String","visibility":"Public","body":"@x1"}},{"html_id":"y0:String-instance-method","name":"y0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L309"},"def":{"name":"y0","return_type":"String","visibility":"Public","body":"@y0"}},{"html_id":"y1:String-instance-method","name":"y1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L311"},"def":{"name":"y1","return_type":"String","visibility":"Public","body":"@y1"}}]}]},{"html_id":"drivers/Cisco/Meraki/CaptivePortal","path":"Cisco/Meraki/CaptivePortal.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"JSON_HEADERS","name":"JSON_HEADERS","value":"{\"Content-Type\" => \"application/json\"}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"challenge(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"challenge","doc":"Webhook for providing guest access","summary":"

Webhook for providing guest access

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L94"},"def":{"name":"challenge","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"guest access attempt: #{method},\\nheaders #{headers},\\nbody #{body}\"\n end\n challenge = ChallengePayload.from_json(body)\n check_code = challenge.code\n guest_codes = generate_guest_data(challenge.email, Time.utc.to_unix, challenge.timezone)\n matched = (guest_codes.scan(/.{#{@code_length}}/)).count do |code|\n code[0] == check_code\n end > 0\n if matched\n challenge.expires = @access_duration.from_now\n @guests[format_mac(challenge.client_mac)] = challenge\n @granted = @granted + 1_u64\n self[:granted_access] = @granted\n redirect_url = \"#{challenge.base_grant_url}?duration=#{@access_duration.to_i}&continue_url=#{challenge.user_continue || @success_url}\"\n response = {redirect_to: redirect_url}.to_json\n logger.debug do\n \"successful joined network #{challenge.inspect}\"\n end\n {HTTP::Status::OK, JSON_HEADERS, response}\n else\n @denied = @denied + 1_u64\n self[:denied_access] = @denied\n logger.debug do\n \"failed wifi access attempt by #{challenge.inspect}\"\n end\n {HTTP::Status::NOT_ACCEPTABLE, JSON_HEADERS, \"{}\"}\n end\nrescue error\n @errors = @errors + 1_u64\n self[:errors] = @errors\n last_error = error.inspect_with_backtrace\n self[:last_error] = last_error\n logger.error do\n \"failed to parse wifi challenge payload\\n#{error}\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR, EMPTY_HEADERS, nil}\nend"}},{"html_id":"generate_guest_data(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_data","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L58"},"def":{"name":"generate_guest_data","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_zone = time_zone.presence ? Time::Location.load(time_zone.not_nil!) : @default_timezone\ndate = ((Time.unix(time)).in(time_zone)).to_s(@date_format)\nguest_string = \"#{email.downcase}-#{date}-#{@wifi_secret}\"\n((OpenSSL::Digest.new(\"SHA256\")).update(guest_string)).final.hexstring\n"}},{"html_id":"generate_guest_token(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_token","doc":"Splits the SHA256 into code length and then randomly selects one","summary":"

Splits the SHA256 into code length and then randomly selects one

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L67"},"def":{"name":"generate_guest_token","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"(((generate_guest_data(email, time, time_zone)).scan(/.{#{@code_length}}/)).sample(1))[0][0]"}},{"html_id":"guests:Hash(String,Cisco::Meraki::CaptivePortal::ChallengePayload)-instance-method","name":"guests","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L49"},"def":{"name":"guests","visibility":"Public","body":"@guests"}},{"html_id":"lookup(mac:String)-instance-method","name":"lookup","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L54"},"def":{"name":"lookup","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@guests[format_mac(mac)]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@wifi_secret = (setting?(String, :wifi_secret)) || \"anything really\"\n@date_format = (setting?(String, :date_format)) || \"%Y%m%d\"\n@success_url = (setting?(String, :success_url)) || \"https://place.technology/\"\n@access_duration = ((setting?(Int32, :access_duration)) || 12).hours\n@code_length = (setting?(Int32, :code_length)) || 4\ntime_zone = (setting?(String, :default_timezone)).presence\nif time_zone\n @default_timezone = Time::Location.load(time_zone)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CaptivePortal/ChallengePayload","path":"Cisco/Meraki/CaptivePortal/ChallengePayload.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal::ChallengePayload","name":"ChallengePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CaptivePortal","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"base_grant_url:String-instance-method","name":"base_grant_url","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url","return_type":"String","visibility":"Public","body":"@base_grant_url"}},{"html_id":"base_grant_url=(base_grant_url:String)-instance-method","name":"base_grant_url=","abstract":false,"args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"args_string":"(base_grant_url : String)","args_html":"(base_grant_url : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url=","args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"visibility":"Public","body":"@base_grant_url = base_grant_url"}},{"html_id":"client_ip:String-instance-method","name":"client_ip","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip","return_type":"String","visibility":"Public","body":"@client_ip"}},{"html_id":"client_ip=(client_ip:String)-instance-method","name":"client_ip=","abstract":false,"args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"args_string":"(client_ip : String)","args_html":"(client_ip : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip=","args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"visibility":"Public","body":"@client_ip = client_ip"}},{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"code:String-instance-method","name":"code","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code","return_type":"String","visibility":"Public","body":"@code"}},{"html_id":"code=(code:String)-instance-method","name":"code=","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"}],"args_string":"(code : String)","args_html":"(code : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"String"}],"visibility":"Public","body":"@code = code"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expires:Time|Nil-instance-method","name":"expires","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires","return_type":"Time | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time|Nil)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"args_string":"(expires : Time | Nil)","args_html":"(expires : Time | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@expires = expires"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_continue:String|Nil-instance-method","name":"user_continue","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue","return_type":"String | ::Nil","visibility":"Public","body":"@user_continue"}},{"html_id":"user_continue=(user_continue:String|Nil)-instance-method","name":"user_continue=","abstract":false,"args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"args_string":"(user_continue : String | Nil)","args_html":"(user_continue : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue=","args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user_continue = user_continue"}}]}]},{"html_id":"drivers/Cisco/Meraki/Client","path":"Cisco/Meraki/Client.html","kind":"class","full_name":"Cisco::Meraki::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"first_seen:String-instance-method","name":"first_seen","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen","return_type":"String","visibility":"Public","body":"@first_seen"}},{"html_id":"first_seen=(first_seen:String)-instance-method","name":"first_seen=","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"args_string":"(first_seen : String)","args_html":"(first_seen : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen=","args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"visibility":"Public","body":"@first_seen = first_seen"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"ip:String|Nil-instance-method","name":"ip","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip","return_type":"String | ::Nil","visibility":"Public","body":"@ip"}},{"html_id":"ip6:String|Nil-instance-method","name":"ip6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6","return_type":"String | ::Nil","visibility":"Public","body":"@ip6"}},{"html_id":"ip6=(ip6:String|Nil)-instance-method","name":"ip6=","abstract":false,"args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"args_string":"(ip6 : String | Nil)","args_html":"(ip6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6=","args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6 = ip6"}},{"html_id":"ip6_local:String|Nil-instance-method","name":"ip6_local","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local","return_type":"String | ::Nil","visibility":"Public","body":"@ip6_local"}},{"html_id":"ip6_local=(ip6_local:String|Nil)-instance-method","name":"ip6_local=","abstract":false,"args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"args_string":"(ip6_local : String | Nil)","args_html":"(ip6_local : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local=","args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6_local = ip6_local"}},{"html_id":"ip=(ip:String|Nil)-instance-method","name":"ip=","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"args_string":"(ip : String | Nil)","args_html":"(ip : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip=","args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip = ip"}},{"html_id":"last_seen:Time-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen","return_type":"Time","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"args_string":"(last_seen : Time)","args_html":"(last_seen : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"recent_device_mac:String|Nil-instance-method","name":"recent_device_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_mac"}},{"html_id":"recent_device_mac=(recent_device_mac:String|Nil)-instance-method","name":"recent_device_mac=","abstract":false,"args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"args_string":"(recent_device_mac : String | Nil)","args_html":"(recent_device_mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac=","args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_mac = recent_device_mac"}},{"html_id":"recent_device_serial:String|Nil-instance-method","name":"recent_device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_serial"}},{"html_id":"recent_device_serial=(recent_device_serial:String|Nil)-instance-method","name":"recent_device_serial=","abstract":false,"args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"args_string":"(recent_device_serial : String | Nil)","args_html":"(recent_device_serial : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial=","args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_serial = recent_device_serial"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}},{"html_id":"switch_port:Int32-instance-method","name":"switch_port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L151"},"def":{"name":"switch_port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @switch_port).nil?\n @switch_port = ((@switchport.as(String)).to_i)\nelse\n __temp_1\nend"}},{"html_id":"switchport:String|Nil-instance-method","name":"switchport","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport","return_type":"String | ::Nil","visibility":"Public","body":"@switchport"}},{"html_id":"switchport=(switchport:String|Nil)-instance-method","name":"switchport=","abstract":false,"args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"args_string":"(switchport : String | Nil)","args_html":"(switchport : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport=","args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"visibility":"Public","body":"@switchport = switchport"}},{"html_id":"time_added:Time-instance-method","name":"time_added","abstract":false,"def":{"name":"time_added","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_added).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::Client#time_added cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_added=(time_added:Time)-instance-method","name":"time_added=","abstract":false,"args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"args_string":"(time_added : Time)","args_html":"(time_added : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L148"},"def":{"name":"time_added=","args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"visibility":"Public","body":"@time_added = time_added"}},{"html_id":"time_added?:Time|Nil-instance-method","name":"time_added?","abstract":false,"def":{"name":"time_added?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_added"}},{"html_id":"user:String|Nil-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"vlan:String|Nil-instance-method","name":"vlan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan","return_type":"String | ::Nil","visibility":"Public","body":"@vlan"}},{"html_id":"vlan=(vlan:String|Nil)-instance-method","name":"vlan=","abstract":false,"args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"args_string":"(vlan : String | Nil)","args_html":"(vlan : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan=","args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"visibility":"Public","body":"@vlan = vlan"}}]},{"html_id":"drivers/Cisco/Meraki/ConnectionType","path":"Cisco/Meraki/ConnectionType.html","kind":"enum","full_name":"Cisco::Meraki::ConnectionType","name":"ConnectionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":360,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L360"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Wired","name":"Wired","value":"0"},{"id":"Wireless","name":"Wireless","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"wired?-instance-method","name":"wired?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L361"},"def":{"name":"wired?","visibility":"Public","body":"self == Wired"}},{"html_id":"wireless?-instance-method","name":"wireless?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L362"},"def":{"name":"wireless?","visibility":"Public","body":"self == Wireless"}}]},{"html_id":"drivers/Cisco/Meraki/CountType","path":"Cisco/Meraki/CountType.html","kind":"enum","full_name":"Cisco::Meraki::CountType","name":"CountType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"People","name":"People","value":"0"},{"id":"Vehicles","name":"Vehicles","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"people?-instance-method","name":"people?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L44"},"def":{"name":"people?","visibility":"Public","body":"self == People"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L46"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicles?-instance-method","name":"vehicles?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L45"},"def":{"name":"vehicles?","visibility":"Public","body":"self == Vehicles"}}]},{"html_id":"drivers/Cisco/Meraki/Crossing","path":"Cisco/Meraki/Crossing.html","kind":"struct","full_name":"Cisco::Meraki::Crossing","name":"Crossing","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event:CrossingEvent-instance-method","name":"event","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L95"},"def":{"name":"event","return_type":"CrossingEvent","visibility":"Public","body":"@event"}},{"html_id":"label:String|Nil-instance-method","name":"label","doc":"getter object_id : Int64","summary":"

getter object_id : Int64

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L94"},"def":{"name":"label","return_type":"String | ::Nil","visibility":"Public","body":"@label"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L92"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"type:CrossingObject-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L96"},"def":{"name":"type","return_type":"CrossingObject","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingEvent","path":"Cisco/Meraki/CrossingEvent.html","kind":"enum","full_name":"Cisco::Meraki::CrossingEvent","name":"CrossingEvent","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossingIn","name":"CrossingIn","value":"0"},{"id":"CrossingOut","name":"CrossingOut","value":"1"},{"id":"Expired","name":"Expired","value":"2"},{"id":"Appeared","name":"Appeared","value":"3"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"appeared?-instance-method","name":"appeared?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L85"},"def":{"name":"appeared?","visibility":"Public","body":"self == Appeared"}},{"html_id":"crossing_in?-instance-method","name":"crossing_in?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L82"},"def":{"name":"crossing_in?","visibility":"Public","body":"self == CrossingIn"}},{"html_id":"crossing_out?-instance-method","name":"crossing_out?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L83"},"def":{"name":"crossing_out?","visibility":"Public","body":"self == CrossingOut"}},{"html_id":"expired?-instance-method","name":"expired?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L84"},"def":{"name":"expired?","visibility":"Public","body":"self == Expired"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingObject","path":"Cisco/Meraki/CrossingObject.html","kind":"enum","full_name":"Cisco::Meraki::CrossingObject","name":"CrossingObject","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Person","name":"Person","value":"0"},{"id":"Vehicle","name":"Vehicle","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"person?-instance-method","name":"person?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L76"},"def":{"name":"person?","visibility":"Public","body":"self == Person"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L78"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicle?-instance-method","name":"vehicle?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L77"},"def":{"name":"vehicle?","visibility":"Public","body":"self == Vehicle"}}]},{"html_id":"drivers/Cisco/Meraki/Dashboard","path":"Cisco/Meraki/Dashboard.html","kind":"class","full_name":"Cisco::Meraki::Dashboard","name":"Dashboard","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/dashboard.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK.to_i, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch(location:String)-instance-method","name":"fetch","doc":"Perform fetch with the required API request limits in place","summary":"

Perform fetch with the required API request limits in place

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L69"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"req(location, &.body)"}},{"html_id":"fetch_all(location:String)-instance-method","name":"fetch_all","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L74"},"def":{"name":"fetch_all","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"responses = [] of String\nreq_all_pages(location) do |response|\n responses << response.body\nend\nresponses\n"}},{"html_id":"get_zones(camera_serial:String)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"args_string":"(camera_serial : String)","args_html":"(camera_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L183"},"def":{"name":"get_zones","args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{camera_serial}/camera/analytics/zones\") do |response|\n Array(CameraZone).from_json(response.body)\nend"}},{"html_id":"networks(organization_id:String)-instance-method","name":"networks","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L142"},"def":{"name":"networks","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"nets = [] of Network\nreq_all_pages(\"/api/v1/organizations/#{organization_id}/networks?perPage=1000\") do |response|\n nets.concat(Array(Network).from_json(response.body))\nend\nnets\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L38"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@scanning_validator = (setting?(String, :meraki_validator)) || \"\"\n@scanning_secret = (setting?(String, :meraki_secret)) || \"\"\n@api_key = (setting?(String, :meraki_api_key)) || \"\"\n@scanning_api_filter = (setting?(MessageType, :scanning_api_filter)) || MessageType::WiFi\n@rate_limit = (setting?(Int32, :rate_limit)) || 4\n@wait_time = 1.second / @rate_limit\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n"}},{"html_id":"organizations-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L135"},"def":{"name":"organizations","visibility":"Public","body":"req(\"/api/v1/organizations?perPage=1000\") do |response|\n Array(Organization).from_json(response.body)\nend"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil,statuses:String=\"Online\")-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = \"Online\")","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = "Online")","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L151"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"perPage\", \"1000\")\n form.add(\"timespan\", timespan.to_s)\n form.add(\"statuses[]\", statuses)\n if connection\n form.add(\"recentDeviceConnections[]\", connection.to_s)\n end\nend\nclients = [] of Client\nreq_all_pages(\"/api/v1/networks/#{network_id}/clients?#{params}\") do |response|\n clients.concat(Array(Client).from_json(response.body))\nend\nif device_serial\n clients.select! do |client|\n client.recent_device_serial == device_serial\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nelse\n clients.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nend\n"}},{"html_id":"port_status(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"port_status","doc":"a webhook for obtaining changes in port status","summary":"

a webhook for obtaining changes in port status

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L228"},"def":{"name":"port_status","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Webhook Alert received: #{method},\\nheaders #{headers},\\nbody #{body}\"\nend\nself[:port_update] = WebhookAlert.from_json(body)\nSUCCESS_RESPONSE\n"}},{"html_id":"ports_statuses(device_serial:String)-instance-method","name":"ports_statuses","abstract":false,"args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"args_string":"(device_serial : String)","args_html":"(device_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L177"},"def":{"name":"ports_statuses","args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{device_serial}/switch/ports/statuses\") do |response|\n Array(PortStatusResponse).from_json(response.body)\nend"}},{"html_id":"scanning_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"scanning_api","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L190"},"def":{"name":"scanning_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nif method == \"GET\"\n return {HTTP::Status::OK.to_i, EMPTY_HEADERS, @scanning_validator}\nend\nif !(body.starts_with?(\"{\\\"version\\\":\\\"3.0\\\"\"))\n logger.warn do\n \"unknown scanning API message received:\\n#{body[0..96]}\"\n end\n return SUCCESS_RESPONSE\nend\nbegin\n seen = DevicesSeen.from_json(body)\n logger.debug do\n \"parsed meraki payload\"\n end\n if !@scanning_api_filter.none? && (seen.message_type != @scanning_api_filter)\n logger.debug do\n \"ignoring message type: #{seen.message_type}\"\n end\n return SUCCESS_RESPONSE\n end\n if seen.secret == @scanning_secret\n else\n raise(\"secret mismatch, sent: #{seen.secret}\")\n end\n self[seen.data.network_id] = seen.data.observations\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]},{"html_id":"drivers/Cisco/Meraki/Data","path":"Cisco/Meraki/Data.html","kind":"class","full_name":"Cisco::Meraki::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L276"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L277"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"network_id=(network_id:String)-instance-method","name":"network_id=","abstract":false,"args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"args_string":"(network_id : String)","args_html":"(network_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id=","args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"visibility":"Public","body":"@network_id = network_id"}},{"html_id":"observations:Array(Observation)-instance-method","name":"observations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations","return_type":"Array(Observation)","visibility":"Public","body":"@observations"}},{"html_id":"observations=(observations:Array(Observation))-instance-method","name":"observations=","abstract":false,"args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"args_string":"(observations : Array(Observation))","args_html":"(observations : Array(Observation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations=","args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"visibility":"Public","body":"@observations = observations"}}]},{"html_id":"drivers/Cisco/Meraki/DeskMappings","path":"Cisco/Meraki/DeskMappings.html","kind":"struct","full_name":"Cisco::Meraki::DeskMappings","name":"DeskMappings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L343"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L346"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"ports:Hash(Int32,String)-instance-method","name":"ports","doc":"port_id => desk_id","summary":"

port_id => desk_id

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L349"},"def":{"name":"ports","return_type":"Hash(Int32, String)","visibility":"Public","body":"@ports"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L345"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}}]},{"html_id":"drivers/Cisco/Meraki/DetectedDesks","path":"Cisco/Meraki/DetectedDesks.html","kind":"class","full_name":"Cisco::Meraki::DetectedDesks","name":"DetectedDesks","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api_version:Int32-instance-method","name":"api_version","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L17"},"def":{"name":"api_version","return_type":"Int32","visibility":"Public","body":"@api_version"}},{"html_id":"desks:Array(Tuple(Float64,Float64,Float64,Float64,Float64,Float64,Float64))-instance-method","name":"desks","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L26"},"def":{"name":"desks","return_type":"Array(Tuple(Float64, Float64, Float64, Float64, Float64, Float64, Float64))","visibility":"Public","body":"@desks"}},{"html_id":"time_string:String|Nil-instance-method","name":"time_string","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L24"},"def":{"name":"time_string","return_type":"String | ::Nil","visibility":"Public","body":"@time_string"}},{"html_id":"time_unix:Int64|Nil-instance-method","name":"time_unix","doc":"Time in milliseconds v3,","summary":"

Time in milliseconds v3,

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L21"},"def":{"name":"time_unix","return_type":"Int64 | ::Nil","visibility":"Public","body":"@time_unix"}}]},{"html_id":"drivers/Cisco/Meraki/DeviceLocation","path":"Cisco/Meraki/DeviceLocation.html","kind":"class","full_name":"Cisco::Meraki::DeviceLocation","name":"DeviceLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L162"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"calculate_location(floor:FloorPlan,device:NetworkDevice,time:Time):DeviceLocation-class-method","name":"calculate_location","abstract":false,"args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","args_html":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L173"},"def":{"name":"calculate_location","args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"return_type":"DeviceLocation","visibility":"Public","body":"distance = Geo.calculate_xy(floor.top_left, floor.bottom_left, floor.bottom_right, device, floor.to_distance)\nDeviceLocation.new(distance.x, distance.y, device.lng, device.lat, 25_f64, floor.id, floor.name, time)\n"}},{"html_id":"new(x:Float64|String|Nil,y:Float64|String|Nil,lng:Float64|Nil,lat:Float64|Nil,variance:Float64,floor_plan_id:Nil|String,floor_plan_name:Nil|String,time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"args_string":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","args_html":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L165"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y, lng, lat, variance, floor_plan_id, floor_plan_name, time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L163"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client:Client|Nil-instance-method","name":"client","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client","return_type":"Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"client=(client:Client|Nil)-instance-method","name":"client=","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"args_string":"(client : Client | Nil)","args_html":"(client : Client | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client=","args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"visibility":"Public","body":"@client = client"}},{"html_id":"floor_plan:FloorPlanLocation|Nil-instance-method","name":"floor_plan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan","return_type":"FloorPlanLocation | ::Nil","visibility":"Public","body":"@floor_plan"}},{"html_id":"floor_plan=(floor_plan:FloorPlanLocation|Nil)-instance-method","name":"floor_plan=","abstract":false,"args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"args_string":"(floor_plan : FloorPlanLocation | Nil)","args_html":"(floor_plan : FloorPlanLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan=","args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"visibility":"Public","body":"@floor_plan = floor_plan"}},{"html_id":"floor_plan_id-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L237"},"def":{"name":"floor_plan_id","visibility":"Public","body":"wifi_floor_plan_id || floor_plan.try(&.id)"}},{"html_id":"floor_plan_name-instance-method","name":"floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L241"},"def":{"name":"floor_plan_name","visibility":"Public","body":"wifi_floor_plan_name || floor_plan.try(&.name)"}},{"html_id":"get_x:Float64|Nil-instance-method","name":"get_x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L221"},"def":{"name":"get_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = x || floor_plan.try(&.x)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"get_y:Float64|Nil-instance-method","name":"get_y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L229"},"def":{"name":"get_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = y || floor_plan.try(&.y)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64|Nil)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"args_string":"(lat : Float64 | Nil)","args_html":"(lat : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64|Nil)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"args_string":"(lng : Float64 | Nil)","args_html":"(lng : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"nearest_ap_tags:Array(String)-instance-method","name":"nearest_ap_tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @nearest_ap_tags).nil?\n @nearest_ap_tags = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"nearest_ap_tags=(nearest_ap_tags:Array(String))-instance-method","name":"nearest_ap_tags=","abstract":false,"args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"args_string":"(nearest_ap_tags : Array(String))","args_html":"(nearest_ap_tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags=","args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"visibility":"Public","body":"@nearest_ap_tags = nearest_ap_tags"}},{"html_id":"rssi_records:Array(RSSI)-instance-method","name":"rssi_records","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records","return_type":"Array(RSSI)","visibility":"Public","body":"@rssi_records"}},{"html_id":"rssi_records=(rssi_records:Array(RSSI))-instance-method","name":"rssi_records=","abstract":false,"args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"args_string":"(rssi_records : Array(RSSI))","args_html":"(rssi_records : Array(RSSI))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records=","args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"visibility":"Public","body":"@rssi_records = rssi_records"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}},{"html_id":"variance:Float64-instance-method","name":"variance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance","return_type":"Float64","visibility":"Public","body":"@variance"}},{"html_id":"variance=(variance:Float64)-instance-method","name":"variance=","abstract":false,"args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"args_string":"(variance : Float64)","args_html":"(variance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance=","args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"visibility":"Public","body":"@variance = variance"}},{"html_id":"wifi_floor_plan_id:String|Nil-instance-method","name":"wifi_floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_id=(wifi_floor_plan_id:String|Nil)-instance-method","name":"wifi_floor_plan_id=","abstract":false,"args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_id : String | Nil)","args_html":"(wifi_floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id=","args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_id = wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_name:String|Nil-instance-method","name":"wifi_floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_name"}},{"html_id":"wifi_floor_plan_name=(wifi_floor_plan_name:String|Nil)-instance-method","name":"wifi_floor_plan_name=","abstract":false,"args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_name : String | Nil)","args_html":"(wifi_floor_plan_name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name=","args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_name = wifi_floor_plan_name"}},{"html_id":"x:Float64|String|Nil-instance-method","name":"x","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x","return_type":"Float64 | String | Nil","visibility":"Public","body":"@x"}},{"html_id":"x!-instance-method","name":"x!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L213"},"def":{"name":"x!","visibility":"Public","body":"get_x.not_nil!"}},{"html_id":"x=(x:Float64|String|Nil)-instance-method","name":"x=","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"args_string":"(x : Float64 | String | Nil)","args_html":"(x : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|String|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y","return_type":"Float64 | String | Nil","visibility":"Public","body":"@y"}},{"html_id":"y!-instance-method","name":"y!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L217"},"def":{"name":"y!","visibility":"Public","body":"get_y.not_nil!"}},{"html_id":"y=(y:Float64|String|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"args_string":"(y : Float64 | String | Nil)","args_html":"(y : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/DevicesSeen","path":"Cisco/Meraki/DevicesSeen.html","kind":"class","full_name":"Cisco::Meraki::DevicesSeen","name":"DevicesSeen","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L290"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L291"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"secret:String-instance-method","name":"secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret","return_type":"String","visibility":"Public","body":"@secret"}},{"html_id":"secret=(secret:String)-instance-method","name":"secret=","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String"}],"args_string":"(secret : String)","args_html":"(secret : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret=","args":[{"name":"secret","external_name":"secret","restriction":"String"}],"visibility":"Public","body":"@secret = secret"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}},{"html_id":"version=(version:String)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"String"}],"args_string":"(version : String)","args_html":"(version : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"String"}],"visibility":"Public","body":"@version = version"}}]},{"html_id":"drivers/Cisco/Meraki/Entrances","path":"Cisco/Meraki/Entrances.html","kind":"class","full_name":"Cisco::Meraki::Entrances","name":"Entrances","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L72"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n @count = ((counts[:person] || counts[:vehicle]) || 0)\nelse\n __temp_1\nend"}},{"html_id":"count_type:CountType-instance-method","name":"count_type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L61"},"def":{"name":"count_type","return_type":"CountType","visibility":"Public","body":"if (__temp_1 = @count_type).nil?\n @count_type = (if counts[:person]\n CountType::People\n else\n if counts[:vehicle]\n CountType::Vehicles\n else\n CountType::Unknown\n end\n end)\nelse\n __temp_1\nend"}},{"html_id":"counts:NamedTuple(person:Int32|Nil,vehicle:Int32|Nil)-instance-method","name":"counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L55"},"def":{"name":"counts","return_type":"NamedTuple(person: Int32 | ::Nil, vehicle: Int32 | ::Nil)","visibility":"Public","body":"@counts"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L53"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Cisco/Meraki/FloorMapping","path":"Cisco/Meraki/FloorMapping.html","kind":"class","full_name":"Cisco::Meraki::FloorMapping","name":"FloorMapping","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:String|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L10"},"def":{"name":"building_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"camera_serials:Array(String)-instance-method","name":"camera_serials","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L8"},"def":{"name":"camera_serials","return_type":"Array(String)","visibility":"Public","body":"@camera_serials"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L9"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlan","path":"Cisco/Meraki/FloorPlan.html","kind":"class","full_name":"Cisco::Meraki::FloorPlan","name":"FloorPlan","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_left:Geo::Point-instance-method","name":"bottom_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left","return_type":"Geo::Point","visibility":"Public","body":"@bottom_left"}},{"html_id":"bottom_left=(bottom_left:Geo::Point)-instance-method","name":"bottom_left=","abstract":false,"args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"args_string":"(bottom_left : Geo::Point)","args_html":"(bottom_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left=","args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_left = bottom_left"}},{"html_id":"bottom_right:Geo::Point-instance-method","name":"bottom_right","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right","return_type":"Geo::Point","visibility":"Public","body":"@bottom_right"}},{"html_id":"bottom_right=(bottom_right:Geo::Point)-instance-method","name":"bottom_right=","abstract":false,"args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"args_string":"(bottom_right : Geo::Point)","args_html":"(bottom_right : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right=","args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_right = bottom_right"}},{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Float64)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Float64"}],"args_string":"(height : Float64)","args_html":"(height : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Float64"}],"visibility":"Public","body":"@height = height"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"to_distance-instance-method","name":"to_distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L74"},"def":{"name":"to_distance","visibility":"Public","body":"Geo::Distance.new(width, height)"}},{"html_id":"top_left:Geo::Point-instance-method","name":"top_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left","return_type":"Geo::Point","visibility":"Public","body":"@top_left"}},{"html_id":"top_left=(top_left:Geo::Point)-instance-method","name":"top_left=","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"args_string":"(top_left : Geo::Point)","args_html":"(top_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left=","args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@top_left = top_left"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlanLocation","path":"Cisco/Meraki/FloorPlanLocation.html","kind":"class","full_name":"Cisco::Meraki::FloorPlanLocation","name":"FloorPlanLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo","path":"Cisco/Meraki/Geo.html","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo","abstract":false,"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EarthRadiusApprox","name":"EarthRadiusApprox","value":"6371000.7900","doc":"radius in meters, approx as we're using a perfect sphere the same volume as the earth","summary":"

radius in meters, approx as we're using a perfect sphere the same volume as the earth

"},{"id":"Radians","name":"Radians","value":"Math::PI / 180_f64"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"calculate_xy(top_left:Point,bottom_left:Point,bottom_right:Point,position,distance:Distance)-class-method","name":"calculate_xy","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"args_string":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","args_html":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L29"},"def":{"name":"calculate_xy","args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"visibility":"Public","body":"y_base = geo_distance(top_left, bottom_left)\na = geo_distance(top_left, position)\nc = geo_distance(bottom_left, position)\nx_raw = triangle_height(a, y_base, c)\nx_base = geo_distance(bottom_left, bottom_right)\na = geo_distance(bottom_left, position)\nc = geo_distance(bottom_right, position)\ny_raw = triangle_height(a, x_base, c)\npercentage_height = y_raw / y_base\npercentage_width = x_raw / x_base\nDistance.new(distance.x * percentage_width, distance.y * percentage_height)\n"}},{"html_id":"geo_distance(start:Point,ending)-class-method","name":"geo_distance","doc":"https://www.movable-type.co.uk/scripts/latlong.html\nreturns the distance in meters","summary":"

https://www.movable-type.co.uk/scripts/latlong.html returns the distance in meters

","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"args_string":"(start : Point, ending)","args_html":"(start : Point, ending)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L54"},"def":{"name":"geo_distance","args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"visibility":"Public","body":"lat_diff = (ending.lat - start.lat) * Radians\nlng_diff = (ending.lng - start.lng) * Radians\nstart_lat_radian = start.lat * Radians\nend_lng_radian = ending.lng * Radians\na = ((Math.sin(lat_diff / 2_f64)) * (Math.sin(lat_diff / 2_f64))) + ((((Math.cos(start_lat_radian)) * (Math.cos(end_lng_radian))) * (Math.sin(lng_diff / 2_f64))) * (Math.sin(lng_diff / 2_f64)))\nc = 2_f64 * (Math.atan2(Math.sqrt(a), Math.sqrt(1_f64 - a)))\nEarthRadiusApprox * c\n"}},{"html_id":"triangle_height(a:Float64,base:Float64,c:Float64)-class-method","name":"triangle_height","doc":"https://www.omnicalculator.com/math/triangle-height","summary":"

https://www.omnicalculator.com/math/triangle-height

","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"args_string":"(a : Float64, base : Float64, c : Float64)","args_html":"(a : Float64, base : Float64, c : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L70"},"def":{"name":"triangle_height","args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"visibility":"Public","body":"(0.5 * (Math.sqrt(((((a + base) + c) * ((base + c) - a)) * ((a - base) + c)) * ((a + base) - c)))) / base"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Geo/Distance","path":"Cisco/Meraki/Geo/Distance.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Distance","name":"Distance","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L22"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo/Point","path":"Cisco/Meraki/Geo/Point.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(lat:Float64,lng:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"args_string":"(lat : Float64, lng : Float64)","args_html":"(lat : Float64, lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L12"},"def":{"name":"new","args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lat, lng)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]}]},{"html_id":"drivers/Cisco/Meraki/LatestRecord","path":"Cisco/Meraki/LatestRecord.html","kind":"class","full_name":"Cisco::Meraki::LatestRecord","name":"LatestRecord","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"nearest_ap_mac:String-instance-method","name":"nearest_ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac","return_type":"String","visibility":"Public","body":"@nearest_ap_mac"}},{"html_id":"nearest_ap_mac=(nearest_ap_mac:String)-instance-method","name":"nearest_ap_mac=","abstract":false,"args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"args_string":"(nearest_ap_mac : String)","args_html":"(nearest_ap_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac=","args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"visibility":"Public","body":"@nearest_ap_mac = nearest_ap_mac"}},{"html_id":"nearest_ap_rssi:Int32-instance-method","name":"nearest_ap_rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi","return_type":"Int32","visibility":"Public","body":"@nearest_ap_rssi"}},{"html_id":"nearest_ap_rssi=(nearest_ap_rssi:Int32)-instance-method","name":"nearest_ap_rssi=","abstract":false,"args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"args_string":"(nearest_ap_rssi : Int32)","args_html":"(nearest_ap_rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi=","args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"visibility":"Public","body":"@nearest_ap_rssi = nearest_ap_rssi"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations","path":"Cisco/Meraki/Locations.html","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L94"},"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"camera_analytics(serial:String)-instance-method","name":"camera_analytics","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":711,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L711"},"def":{"name":"camera_analytics","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{serial}/camera/analytics/live\") do |response|\n CameraAnalytics.from_json(response)\nend"}},{"html_id":"cameras:Array(Cisco::Meraki::NetworkDevice)-instance-method","name":"cameras","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":726,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L726"},"def":{"name":"cameras","visibility":"Public","body":"@cameras"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L418"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = user_mac_mappings(&.[]?(lookup))\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L638"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing IP and location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago\nremove_keys = [] of String\n@ip_lookup.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_lookup.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => MAC mappings\"\nend\nremove_keys.clear\n@ip_usernames.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_usernames.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => Username mappings\"\nend\nremove_keys.clear\n@client_details.each do |mac, client|\n if client.time_added < old\n remove_keys << mac\n end\nend\nremove_keys.each do |mac|\n @client_details.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} client details\"\nend\nremove_keys.clear\n@locations.each do |mac, location|\n if location.time < old\n if client = @client_details[mac]?\n if client.time_added < old\n remove_keys << mac\n end\n else\n remove_keys << mac\n end\n end\nend\nremove_keys.each do |mac|\n @locations.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\n"}},{"html_id":"desk_details:Hash(String,DetectedDesks)-instance-method","name":"desk_details","doc":"serial => desks detected","summary":"

serial => desks detected

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L221"},"def":{"name":"desk_details","return_type":"Hash(String, DetectedDesks)","visibility":"Public","body":"@desk_details"}},{"html_id":"desk_locations(zone_id:String)-instance-method","name":"desk_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1260"},"def":{"name":"desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"serials = @zone_lookup[zone_id]? || ([] of String)\nreturn_empty_spaces = @return_empty_spaces\nexpiry_time = desk_data_expiry_time\nserials.compact_map do |serial|\n desks = @desk_mappings[serial]?\n if desks\n else\n next\n end\n if desk_details[serial]?\n else\n next\n end\n floor = @floor_lookup[serial]\n illumination = lux[serial]?\n desks.compact_map do |desk|\n desk_id = desk.label\n occupied = is_occupied?(desk_id, expiry_time)\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: desk_id, level: floor.level_id, building: floor.building_id, capacity: 1, area_lux: illumination, merakimv: serial}\n end\nend.flatten\n"}},{"html_id":"desk_mappings:Hash(String,Array(CameraZone))-instance-method","name":"desk_mappings","doc":"Camera serial => [desk location]","summary":"

Camera serial => [desk location]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1258"},"def":{"name":"desk_mappings","return_type":"Hash(String, Array(CameraZone))","visibility":"Public","body":"@desk_mappings"}},{"html_id":"desk_occupancy:Hash(String,Array(Tuple(Int64,Bool)))-instance-method","name":"desk_occupancy","doc":"=================\nCamera Desk data:\n=================\ndesk_id => [{time, occupied}]","summary":"

================= Camera Desk data: ================= desk_id => [{time, occupied}]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1195"},"def":{"name":"desk_occupancy","return_type":"Hash(String, Array(Tuple(Int64, Bool)))","visibility":"Public","body":"@desk_occupancy"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L510"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\ncase location.presence\nwhen \"wireless\"\n wireless_locations(zone_id)\nwhen \"desk\"\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(cam_locs[0]) | typeof(desk_locs[0])).new(cam_locs.size + desk_locs.size)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nwhen nil\n wireless_locs = wireless_locations(zone_id)\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(wireless_locs[0]) | typeof(cam_locs[0]) | typeof(desk_locs[0])).new((wireless_locs.size + cam_locs.size) + desk_locs.size)\n combind.concat(wireless_locs)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nelse\n [] of String\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":935,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L935"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L400"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"hostname_ownership(hostname:String,username:String|Nil):Nil-instance-method","name":"hostname_ownership","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(hostname : String, username : String | Nil) : Nil","args_html":"(hostname : String, username : String | Nil) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1006,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1006"},"def":{"name":"hostname_ownership","args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"macs = @mac_hostnames.compact_map do |__temp_192|\n mac, host = __temp_192\n host == hostname ? mac : nil\nend\nif username && username.presence\n user_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(mac, username, storage)\n end\n end\nelse\n macs.each do |mac|\n @mac_hostnames.delete(mac)\n end\nend\n"}},{"html_id":"inspect_foorplans:Hash(String,Cisco::Meraki::FloorPlan)-instance-method","name":"inspect_foorplans","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L269"},"def":{"name":"inspect_foorplans","visibility":"Public","body":"@floorplan_sizes"}},{"html_id":"inspect_network_devices:Hash(String,Cisco::Meraki::NetworkDevice)-instance-method","name":"inspect_network_devices","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L274"},"def":{"name":"inspect_network_devices","visibility":"Public","body":"@network_devices"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L279"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"IP Mappings: #{@ip_lookup.keys}\\n\\nMAC Locations: #{@locations.keys}\\n\\nClient Details: #{@client_details.keys}\"\nend\n{ip_mappings: @ip_lookup.size, tracking: @locations.size, client_details: @client_details.size}\n"}},{"html_id":"ip_username_mappings(ip_map:Array(Tuple(String,String,String,String|Nil))):Nil-instance-method","name":"ip_username_mappings","abstract":false,"args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"args_string":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","args_html":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":943,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L943"},"def":{"name":"ip_username_mappings","args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"return_type":"Nil","visibility":"Public","body":"now = Time.utc\nuser_mac_mappings do |storage|\n ip_map.each do |__temp_191|\n ip, username, domain, hostname = __temp_191\n username = format_username(username)\n @ip_usernames[ip] = Lookup.new(now, username)\n if lookup = @ip_lookup[ip]?\n map_user_mac(lookup.mac, username, storage)\n end\n end\nend\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L264"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@locations[format_mac(address)]?"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"returns locations based on most recently seen\nversus most accurate location","summary":"

returns locations based on most recently seen versus most accurate location

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L431"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n location_max_age = @max_location_age.ago\n (Array(String).from_json(macs)).compact_map do |mac|\n if location = locate_mac(mac)\n client = @client_details[mac]?\n if @regex_filter_device_os\n if client && client.os\n if (/#{@regex_filter_device_os}/).match(client.os.not_nil!)\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS does not match regex filter\"\n end\n next\n end\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS is UNKNOWN\"\n end\n next\n end\n end\n location.client = client\n location.mac = mac\n if client && client.time_added > location_max_age\n location\n else\n if location.time > location_max_age\n location\n end\n end\n end\n end.sort! do |a, b|\n b.time <=> a.time\n end.map do |location|\n lat = location.lat\n lon = location.lng\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => location.x, \"y\" => location.y, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, \"mac\" => location.mac, \"variance\" => location.variance, \"last_seen\" => location.time.to_unix, \"meraki_floor_id\" => location.floor_plan_id, \"meraki_floor_name\" => location.floor_plan_name}\n if level_data = @floorplan_mappings[location.floor_plan_id]?\n level_data.each do |k, v|\n loc[k] = v\n end\n end\n if map_size = @floorplan_sizes[location.floor_plan_id]?\n loc[\"map_width\"] = map_size.width\n loc[\"map_height\"] = map_size.height\n end\n if client = location.client\n if client.manufacturer\n loc[\"manufacturer\"] = client.manufacturer\n end\n if client.os\n loc[\"os\"] = client.os\n end\n if client.ssid\n loc[\"ssid\"] = client.ssid\n end\n end\n loc\n end\nelse\n [] of Nil\nend\n"}},{"html_id":"locateable-instance-method","name":"locateable","doc":"Returns the list of users who can be located","summary":"

Returns the list of users who can be located

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L288"},"def":{"name":"locateable","visibility":"Public","body":"too_old = @max_location_age.ago\n@client_details.compact_map do |mac, client|\n location = @locations[mac]?\n if location && ((location.time > too_old) || (client.time_added > too_old))\n client.user\n end\nend\n"}},{"html_id":"lookup_ip(address:String)-instance-method","name":"lookup_ip","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L260"},"def":{"name":"lookup_ip","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@ip_lookup[address.downcase]?"}},{"html_id":"lux:Hash(String,Float64)-instance-method","name":"lux","doc":"serial => lux","summary":"

serial => lux

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L224"},"def":{"name":"lux","return_type":"Hash(String, Float64)","visibility":"Public","body":"@lux"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":958,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L958"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"mac_hostnames:Hash(String,String)-instance-method","name":"mac_hostnames","doc":"User lookup helpers using device hostnames","summary":"

User lookup helpers using device hostnames

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":981,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L981"},"def":{"name":"mac_hostnames","return_type":"Hash(String, String)","visibility":"Public","body":"@mac_hostnames"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L409"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"map_users_to_macs(network_id:String|Nil=nil)-instance-method","name":"map_users_to_macs","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L310"},"def":{"name":"map_users_to_macs","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"mapping users to device MACs\"\nend\nclients = poll_clients(network_id)\nnew_devices = 0\nupdated_dev = 0\nnow = Time.utc\nlogger.debug do\n \"mapping found #{clients.size} devices\"\nend\nuser_mac_mappings do |storage|\n clients.each do |client|\n user_mac = format_mac(client.mac)\n client.time_added = now\n if hostname = client.description\n @mac_hostnames[user_mac] = hostname\n end\n user_id = client.user\n if user_id\n @ignore_usernames.each do |name|\n if user_id.starts_with?(name)\n client.user = user_id = nil\n break\n end\n end\n end\n if user_id.nil?\n if known_id = storage[user_mac]?\n client.user = known_id\n end\n end\n @client_details[user_mac] = client\n if user_id\n else\n next\n end\n was_update, was_new = map_user_mac(user_mac, user_id, storage)\n if was_update\n updated_dev = updated_dev + 1\n end\n if was_new\n new_devices = new_devices + 1\n end\n end\nend\nlogger.debug do\n \"mapping assigned #{new_devices} new devices, #{updated_dev} user updated\"\nend\nnil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L84"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@default_network = (setting?(String, :default_network_id)) || \"\"\n@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@acceptable_confidence = (setting?(Float64, :acceptable_confidence)) || 5.0\n@maximum_uncertainty = (setting?(Float64, :maximum_uncertainty)) || 25.0\n@override_min_variance = (setting?(Float64, :override_min_variance)) || 0.0\n@regex_filter_device_os = setting?(String, :regex_filter_device_os)\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\n@confidence_time = @max_location_age / 3\n@drift_location_age = @max_location_age - @confidence_time\n@time_multiplier = 1.0 / (@drift_location_age.to_i - @confidence_time.to_i).to_f64\n@confidence_multiplier = 1.0 / (@maximum_uncertainty.to_i - @acceptable_confidence.to_i).to_f64\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\ndisable_username_lookup = (setting?(Bool, :disable_username_lookup)) || false\nschedule.clear\ninit_wired_port_mappings\nif @default_network.presence\n schedule.every(59.seconds) do\n update_sensor_cache\n end\n if disable_username_lookup\n else\n schedule.every(2.minutes) do\n map_users_to_macs\n end\n end\n schedule.every(29.minutes) do\n sync_floorplan_sizes\n end\n schedule.in(30.milliseconds) do\n sync_floorplan_sizes\n update_sensor_cache\n end\nend\nschedule.every(30.minutes) do\n cleanup_caches\nend\nsubscriptions.clear\nif @default_network.presence\n dashboard.subscribe(@default_network) do |_subscription, new_value|\n parse_new_locations(new_value)\n end\nend\nzones = config.control_system.not_nil!.zones\nspawn do\n find_building(zones)\nend\nif system.exists?(:MerakiMQTT)\n mqtt_module = system[:MerakiMQTT]\n mqtt_module.subscribe(:floor_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @floor_lookup = Hash(String, FloorMapping).from_json(new_value)\n if @zone_lookup.empty?\n else\n update_desk_mappings\n end\n end\n mqtt_module.subscribe(:zone_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @zone_lookup = Hash(String, Array(String)).from_json(new_value)\n if @floor_lookup.empty?\n else\n update_desk_mappings\n end\n end\n schedule.every(10.minutes) do\n update_desk_mappings\n end\n mqtt_module.subscribe(:camera_updated) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n _time, camera_serial = Tuple(Int64, String).from_json(new_value)\n if @desk_mappings.has_key?(camera_serial)\n check_camera_status(mqtt_module, camera_serial)\n end\n end\nend\n"}},{"html_id":"parse_new_locations(payload:String):Nil-instance-method","name":"parse_new_locations","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(payload : String) : Nil","args_html":"(payload : String) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":763,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L763"},"def":{"name":"parse_new_locations","args":[{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"if @debug_payload\n logger.debug do\n payload\n end\nend\nlocations_updated = 0\nbegin\n observations = Array(Observation).from_json(payload)\n logger.debug do\n \"parsed meraki payload\"\n end\n ignore_older = @max_location_age.ago.in(Time::Location::UTC)\n drift_older = @drift_location_age.ago.in(Time::Location::UTC)\n current_time = Time.utc\n observations.each do |observation|\n client_mac = format_mac(observation.client_mac)\n existing = @locations[client_mac]?\n if @debug_webhook\n logger.debug do\n \"parsing new observation for #{client_mac}\"\n end\n end\n if @regex_filter_device_os\n client = @client_details[format_mac(observation.client_mac)]?\n if client.nil? || (/#{@regex_filter_device_os}/).match(client.os || \"\").nil?\n if @debug_webhook\n logger.debug do\n \"FILTERED OUT #{client_mac}: OS \\\"#{observation.os}\\\" did not match \\\"#{@regex_filter_device_os}\\\"\"\n end\n end\n next\n end\n end\n location = parse(existing, ignore_older, drift_older, observation)\n if location\n @locations[client_mac] = location\n locations_updated = locations_updated + 1\n end\n update_ipv4(observation.ipv4, client_mac, current_time)\n update_ipv6(observation.ipv6.try(&.downcase), client_mac, current_time)\n end\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{payload}\"\n end\nend\nlogger.debug do\n \"updated #{locations_updated} locations\"\nend\n"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil)-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L297"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nArray(Client).from_json((dashboard.poll_clients(network_id, timespan, connection, device_serial)).get.to_json)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1163"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ncam_state = @camera_analytics[format_mac(mac)]?\nif cam_state\nelse\n return nil\nend\narea_str, _, sensor_type = id.rpartition('-')\nfilter = case sensor_type\nwhen \"people\"\n SensorType::PeopleCount\nwhen \"presence\"\n SensorType::Presence\nelse\n return nil\nend\narea_id = area_str.to_i64?\nif area_id\nelse\n return nil\nend\nzone_count = cam_state[:details].zones[area_id]?.try(&.person)\nif zone_count\nelse\n return nil\nend\n(to_sensors(nil, filter, **cam_state)).find do |sensor|\n sensor.id == id\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1148"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && !(type.in?({\"Presence\", \"PeopleCount\"}))\n return NO_MATCH\nend\nfilter = type ? SensorType.parse(type) : nil\nif mac\n cam_state = @camera_analytics[format_mac(mac)]?\n if cam_state\n else\n return NO_MATCH\n end\n return to_sensors(zone_id, filter, **cam_state)\nend\n@camera_analytics.values.flat_map do |cam_data|\n to_sensors(zone_id, filter, **cam_data)\nend\n"}},{"html_id":"sync_floorplan_sizes(network_id:String|Nil=nil)-instance-method","name":"sync_floorplan_sizes","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L676"},"def":{"name":"sync_floorplan_sizes","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"syncing floor plan sizes for network #{network_id}\"\nend\nfloor_plans = {} of String => FloorPlan\nreq_all(\"/api/v1/networks/#{network_id}/floorPlans?perPage=1000\") do |response|\n (Array(FloorPlan).from_json(response)).each do |plan|\n floor_plans[plan.id] = plan\n end\n nil\nend\n@floorplan_sizes = floor_plans\nnetwork_devices = {} of String => NetworkDevice\ncameras = [] of NetworkDevice\nreq_all(\"/api/v1/networks/#{network_id}/devices?perPage=1000\") do |response|\n (Array(NetworkDevice).from_json(response)).each do |device|\n if device.firmware.starts_with?(\"cam\")\n cameras << device\n end\n if device.floor_plan_id\n else\n next\n end\n network_devices[format_mac(device.mac)] = device\n end\n nil\nend\n@network_devices = network_devices\n@cameras = cameras\n{floor_plans, network_devices}\n"}},{"html_id":"update_desk_mappings-instance-method","name":"update_desk_mappings","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1297"},"def":{"name":"update_desk_mappings","visibility":"Public","body":"desk_mappings = Hash(String, Array(CameraZone)).new\n@floor_lookup.keys.each do |serial|\n begin\n desk_mappings[serial] = (Array(CameraZone).from_json((dashboard.get_zones(serial)).get.to_json)).reject!() do |__arg7|\n __arg7.id == \"0\"\n end\n rescue error\n logger.warn(exception: error) do\n \"fetching zones for camera: #{serial}\"\n end\n end\nend\n@desk_mappings = desk_mappings\nmqtt_module = system[:MerakiMQTT]\ndesk_mappings.keys.each do |camera_serial|\n check_camera_status(mqtt_module, camera_serial)\nend\n"}},{"html_id":"update_sensor_cache-instance-method","name":"update_sensor_cache","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":728,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L728"},"def":{"name":"update_sensor_cache","visibility":"Public","body":"analytics = {} of String => CamAnalytics\ncameras.each do |cam|\n begin\n mappings = @floorplan_mappings[cam.floor_plan_id]?\n counts = camera_analytics(cam.serial)\n mac = format_mac(cam.mac)\n if mappings\n analytics[mac] = {camera: cam, details: counts, building: mappings[\"building\"]?.as(String | ::Nil), level: mappings[\"level\"]?.as(String | ::Nil)}\n else\n analytics[mac] = {camera: cam, details: counts, building: nil.as(String | ::Nil), level: nil.as(String | ::Nil)}\n end\n counts.zones.each do |area_id, count|\n self[\"people-#{mac}-#{area_id}\"] = count.person\n self[\"presence-#{mac}-#{area_id}\"] = count.person > 0\n end\n rescue error\n logger.debug(exception: error) do\n \"failed to obtain analytics for #{cam.name} (serial: #{cam.serial})\"\n end\n end\nend\n@camera_analytics = analytics\n"}},{"html_id":"wired_desk_locations(zone_id:String)-instance-method","name":"wired_desk_locations","doc":"grabs the wired desk data for a level","summary":"

grabs the wired desk data for a level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1064"},"def":{"name":"wired_desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"return_empty_spaces = @return_empty_spaces\nserials = if zone_id == @building_zone\n @level_serials.values.flatten\nelse\n @level_serials[zone_id]? || ([] of String)\nend\nserials.compact_map do |serial|\n ports = @port_status[serial]?\n if ports\n else\n next\n end\n ports.map do |__temp_193|\n port_num, port = __temp_193\n occupied = port.status.connected? ? 1 : 0\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: port.desk_id, level: port.level_id, building: @building_zone, capacity: 1, mac: port.mac, port: port_num, switch: port.switch_serial}\n end\nend.flatten\n"}},{"html_id":"wireless_locations(zone_id:String)-instance-method","name":"wireless_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":534,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L534"},"def":{"name":"wireless_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"floors = [] of String\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of String\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago\nmatching = @locations.compact_map do |mac, loc|\n client = @client_details[mac]?\n loc.client = client\n if loc.time < oldest_location\n if client\n if client.time_added < oldest_location\n too_old = too_old + 1\n next\n end\n else\n too_old = too_old + 1\n next\n end\n end\n if !(floors.includes?(loc.floor_plan_id))\n wrong_floor = wrong_floor + 1\n next\n end\n loc.mac = mac\n loc\nend\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.floor_plan_id).flat_map do |floor_id, locations|\n map_width = -1.0\n map_height = -1.0\n if map_size = @floorplan_sizes[floor_id]?\n map_width = map_size.width\n map_height = map_size.height\n else\n if mappings = @floorplan_mappings[floor_id]?\n map_width = (mappings[\"width\"]? || map_width).as(Float64)\n map_height = (mappings[\"height\"]? || map_width).as(Float64)\n end\n end\n locations.compact_map do |loc|\n lat = loc.lat\n lon = loc.lng\n if client = @client_details[loc.mac]?\n manufacturer = client.manufacturer\n os = client.os\n ssid = client.ssid\n end\n if (x = loc.x) && (y = loc.y)\n if x.is_a?(Float64) && y.is_a?(Float64)\n if (loc.x.as(Float64)).nan? || (loc.y.as(Float64)).nan?\n logger.warn do\n \"ignoring bad location for #{loc.mac}, NaN\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, unexpected value #{loc.x.inspect}\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, no coordinates provided\"\n end\n next\n end\n {location: :wireless, coordinates_from: \"bottom-left\", x: loc.x, y: loc.y, lon: lon, lat: lat, s2_cell_id: lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, mac: loc.mac, variance: loc.variance, last_seen: loc.time.to_unix, map_width: map_width, map_height: map_height, manufacturer: manufacturer, os: os, ssid: ssid}\n end\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Locations/CamAnalytics","path":"Cisco/Meraki/Locations/CamAnalytics.html","kind":"alias","full_name":"Cisco::Meraki::Locations::CamAnalytics","name":"CamAnalytics","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":717,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L717"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String | Nil, level: String | Nil)","aliased_html":"{camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String?, level: String?}","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}},{"html_id":"drivers/Cisco/Meraki/Locations/Lookup","path":"Cisco/Meraki/Locations/Lookup.html","kind":"struct","full_name":"Cisco::Meraki::Locations::Lookup","name":"Lookup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"},"constructors":[{"html_id":"new(time:Time,mac:String)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"args_string":"(time : Time, mac : String)","args_html":"(time : Time, mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L252"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time, mac)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations/WiredDesks","path":"Cisco/Meraki/Locations/WiredDesks.html","kind":"alias","full_name":"Cisco::Meraki::Locations::WiredDesks","name":"WiredDesks","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(Int32, String))","aliased_html":"Hash(String, Hash(Int32, String))","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}}]},{"html_id":"drivers/Cisco/Meraki/LuxLevel","path":"Cisco/Meraki/LuxLevel.html","kind":"class","full_name":"Cisco::Meraki::LuxLevel","name":"LuxLevel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lux:Float64-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L40"},"def":{"name":"lux","return_type":"Float64","visibility":"Public","body":"@lux"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","doc":"Not actually provided for this message, but here for testing","summary":"

Not actually provided for this message, but here for testing

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L38"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @timestamp).nil?\n @timestamp = (Time.utc.to_unix)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/MessageType","path":"Cisco/Meraki/MessageType.html","kind":"enum","full_name":"Cisco::Meraki::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L284"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"WiFi","name":"WiFi","value":"1"},{"id":"Bluetooth","name":"Bluetooth","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"bluetooth?-instance-method","name":"bluetooth?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L287"},"def":{"name":"bluetooth?","visibility":"Public","body":"self == Bluetooth"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L285"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"wi_fi?-instance-method","name":"wi_fi?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L286"},"def":{"name":"wi_fi?","visibility":"Public","body":"self == WiFi"}}]},{"html_id":"drivers/Cisco/Meraki/MQTT","path":"Cisco/Meraki/MQTT.html","kind":"class","full_name":"Cisco::Meraki::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LUX_ID","name":"LUX_ID","value":"\"lux\""},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SUBS","name":"SUBS","value":"{\"/merakimv/+/net.meraki.detector\", \"/merakimv/+/light\", \"/merakimv/+/0\", \"/merakimv/+/crossing/+\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L149"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\nend\n"}},{"html_id":"crossing_people:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_people","doc":"Serial => count","summary":"

Serial => count

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L192"},"def":{"name":"crossing_people","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_people).nil?\n @crossing_people = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"crossing_vehicle:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_vehicle","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L196"},"def":{"name":"crossing_vehicle","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_vehicle).nil?\n @crossing_vehicle = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L163"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"lux:Hash(String,Tuple(Float64,Int64))-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L200"},"def":{"name":"lux","return_type":"Hash(String, Tuple(Float64, Int64))","visibility":"Public","body":"@lux"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L80"},"def":{"name":"on_load","visibility":"Public","body":"@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L85"},"def":{"name":"on_unload","visibility":"Public","body":""}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\nzone_lookup = Hash(String, Array(String)).new do |h, k|\n h[k] = [] of String\nend\nfloor_lookup = {} of String => FloorMapping\nfloor_mappings = (setting?(Array(FloorMapping), :floor_mappings)) || ([] of FloorMapping)\nfloor_mappings.each do |mapping|\n mapping.camera_serials.each do |serial|\n zone_lookup[mapping.level_id] << serial\n if mapping.building_id\n zone_lookup[mapping.building_id.not_nil!] << serial\n end\n floor_lookup[serial] = mapping\n end\nend\nself[:floor_lookup] = @floor_lookup = floor_lookup\nself[:zone_lookup] = zone_lookup\nexisting = @subs\n@subs = SUBS.to_a\n@line_crossing = line_crossing_combined = (setting?(Hash(String, Array(String)), :line_crossing_combined)) || ({} of String => Array(String))\nline_crossing_mapping = {} of String => String\nline_crossing_combined.each do |name, serials|\n serials.each do |serial|\n line_crossing_mapping[serial] = name\n end\nend\n@crossing_lookup = line_crossing_mapping\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif !(setting?(Bool, :disable_line_crossing_reset))\n time_zone = (setting?(String, :timezone)).presence || \"America/New_York\"\n tz = Time::Location.load(time_zone)\n schedule.cron(\"30 3 * * *\", tz) do\n crossing_people.each_key do |key|\n self[\"camera_mvx-#{key}_person\"] = 0\n end\n crossing_people.clear\n crossing_vehicle.each_key do |key|\n self[\"camera_mvx-#{key}_vehicle\"] = 0\n end\n crossing_vehicle.clear\n end\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n client.unsubscribe(sub)\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"people_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L179"},"def":{"name":"people_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @people_counts).nil?\n @people_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L168"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\n@mqtt.not_nil!.ping\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L173"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L254"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif id == \"lux\"\n (add_lux_values([] of Detail, mac)).first?\nelse\n if id.starts_with?(\"zone\")\n zone, count_type = id.split('_', 2)\n zone = zone[4..-1]\n sensor_type = SensorType::PeopleCount\n lookup = case count_type\n when \"people\"\n people_counts\n when \"vehicles\"\n sensor_type = SensorType::Counter\n vehicle_counts\n end\n if lookup\n if counts = lookup[mac]?\n if count = counts[zone]?\n to_sensor(sensor_type, mac, \"zone#{zone}_#{count_type}\", count[0], count[1])\n end\n end\n end\n else\n nil\n end\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L291"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n serial_filter = nil\n if zone_id && !@floor_lookup.empty?\n serial_filter = [] of String\n @floor_lookup.each do |serial, floor|\n if {floor.level_id, floor.building_id}.includes?(zone_id)\n serial_filter << serial\n end\n end\n end\n sensors = [] of Detail\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n case filter\n when nil\n add_lux_values(sensors, mac, serial_filter)\n add_people_counts(sensors, mac, serial_filter)\n add_vehicle_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .people_count?\n add_people_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n when .counter?\n add_vehicle_counts(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .illuminance?\n add_lux_values(sensors, mac, serial_filter)\n else\n sensors\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"vehicle_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"vehicle_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L185"},"def":{"name":"vehicle_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @vehicle_counts).nil?\n @vehicle_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/Network","path":"Cisco/Meraki/Network.html","kind":"class","full_name":"Cisco::Meraki::Network","name":"Network","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"enrollment_string:String|Nil-instance-method","name":"enrollment_string","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string","return_type":"String | ::Nil","visibility":"Public","body":"@enrollment_string"}},{"html_id":"enrollment_string=(enrollment_string:String|Nil)-instance-method","name":"enrollment_string=","abstract":false,"args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"args_string":"(enrollment_string : String | Nil)","args_html":"(enrollment_string : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string=","args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"@enrollment_string = enrollment_string"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"organization_id:String-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id","return_type":"String","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:String)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"product_types:Array(String)-instance-method","name":"product_types","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types","return_type":"Array(String)","visibility":"Public","body":"@product_types"}},{"html_id":"product_types=(product_types:Array(String))-instance-method","name":"product_types=","abstract":false,"args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"args_string":"(product_types : Array(String))","args_html":"(product_types : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types=","args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"visibility":"Public","body":"@product_types = product_types"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"time_zone=(time_zone:String)-instance-method","name":"time_zone=","abstract":false,"args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"args_string":"(time_zone : String)","args_html":"(time_zone : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone=","args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"visibility":"Public","body":"@time_zone = time_zone"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/NetworkDevice","path":"Cisco/Meraki/NetworkDevice.html","kind":"class","full_name":"Cisco::Meraki::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"floor_plan_id:String|Nil-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_plan_id"}},{"html_id":"floor_plan_id=(floor_plan_id:String|Nil)-instance-method","name":"floor_plan_id=","abstract":false,"args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(floor_plan_id : String | Nil)","args_html":"(floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id=","args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_plan_id = floor_plan_id"}},{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"location:DeviceLocation|Nil-instance-method","name":"location","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location","return_type":"DeviceLocation | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:DeviceLocation|Nil)-instance-method","name":"location=","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"args_string":"(location : DeviceLocation | Nil)","args_html":"(location : DeviceLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"model:String-instance-method","name":"model","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:String)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"@serial = serial"}}]},{"html_id":"drivers/Cisco/Meraki/Observation","path":"Cisco/Meraki/Observation.html","kind":"class","full_name":"Cisco::Meraki::Observation","name":"Observation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L259"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L260"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"ipv4:String|Nil-instance-method","name":"ipv4","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4","return_type":"String | ::Nil","visibility":"Public","body":"@ipv4"}},{"html_id":"ipv4=(ipv4:String|Nil)-instance-method","name":"ipv4=","abstract":false,"args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"args_string":"(ipv4 : String | Nil)","args_html":"(ipv4 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4=","args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv4 = ipv4"}},{"html_id":"ipv6:String|Nil-instance-method","name":"ipv6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6","return_type":"String | ::Nil","visibility":"Public","body":"@ipv6"}},{"html_id":"ipv6=(ipv6:String|Nil)-instance-method","name":"ipv6=","abstract":false,"args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"args_string":"(ipv6 : String | Nil)","args_html":"(ipv6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6=","args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv6 = ipv6"}},{"html_id":"latest_record:LatestRecord-instance-method","name":"latest_record","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record","return_type":"LatestRecord","visibility":"Public","body":"@latest_record"}},{"html_id":"latest_record=(latest_record:LatestRecord)-instance-method","name":"latest_record=","abstract":false,"args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"args_string":"(latest_record : LatestRecord)","args_html":"(latest_record : LatestRecord)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record=","args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"visibility":"Public","body":"@latest_record = latest_record"}},{"html_id":"locations:Array(DeviceLocation)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations","return_type":"Array(DeviceLocation)","visibility":"Public","body":"@locations"}},{"html_id":"locations=(locations:Array(DeviceLocation))-instance-method","name":"locations=","abstract":false,"args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"args_string":"(locations : Array(DeviceLocation))","args_html":"(locations : Array(DeviceLocation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations=","args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"visibility":"Public","body":"@locations = locations"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}}]},{"html_id":"drivers/Cisco/Meraki/Organization","path":"Cisco/Meraki/Organization.html","kind":"class","full_name":"Cisco::Meraki::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api:NamedTuple(enabled:Bool)-instance-method","name":"api","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api","return_type":"NamedTuple(enabled: Bool)","visibility":"Public","body":"@api"}},{"html_id":"api=(api:NamedTuple(enabled:Bool))-instance-method","name":"api=","abstract":false,"args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"args_string":"(api : NamedTuple(enabled: Bool))","args_html":"(api : NamedTuple(enabled: Bool))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api=","args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"visibility":"Public","body":"@api = api"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/PortState","path":"Cisco/Meraki/PortState.html","kind":"enum","full_name":"Cisco::Meraki::PortState","name":"PortState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L400"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Connected","name":"Connected","value":"0"},{"id":"Disconnected","name":"Disconnected","value":"1"},{"id":"Disabled","name":"Disabled","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"connected?-instance-method","name":"connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L401"},"def":{"name":"connected?","visibility":"Public","body":"self == Connected"}},{"html_id":"disabled?-instance-method","name":"disabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L403"},"def":{"name":"disabled?","visibility":"Public","body":"self == Disabled"}},{"html_id":"disconnected?-instance-method","name":"disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L402"},"def":{"name":"disconnected?","visibility":"Public","body":"self == Disconnected"}}]},{"html_id":"drivers/Cisco/Meraki/PortStatusResponse","path":"Cisco/Meraki/PortStatusResponse.html","kind":"class","full_name":"Cisco::Meraki::PortStatusResponse","name":"PortStatusResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_id:String-instance-method","name":"desk_id","abstract":false,"def":{"name":"desk_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @desk_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#desk_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"desk_id=(desk_id:String)-instance-method","name":"desk_id=","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String)","args_html":"(desk_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":428,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L428"},"def":{"name":"desk_id=","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"visibility":"Public","body":"@desk_id = desk_id"}},{"html_id":"desk_id?:String|Nil-instance-method","name":"desk_id?","abstract":false,"def":{"name":"desk_id?","return_type":"String | ::Nil","visibility":"Public","body":"@desk_id"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L415"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_uplink?:Bool-instance-method","name":"is_uplink?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L419"},"def":{"name":"is_uplink?","return_type":"Bool","visibility":"Public","body":"@is_uplink"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#level_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"level_id=(level_id:String)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String)","args_html":"(level_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L431"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_id?:String|Nil-instance-method","name":"level_id?","abstract":false,"def":{"name":"level_id?","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"port:Int32-instance-method","name":"port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L413"},"def":{"name":"port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @port).nil?\n @port = (port_id.to_i)\nelse\n __temp_1\nend"}},{"html_id":"port_id:String-instance-method","name":"port_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L410"},"def":{"name":"port_id","return_type":"String","visibility":"Public","body":"@port_id"}},{"html_id":"status:PortState-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L416"},"def":{"name":"status","return_type":"PortState","visibility":"Public","body":"@status"}},{"html_id":"switch_serial:String-instance-method","name":"switch_serial","abstract":false,"def":{"name":"switch_serial","return_type":"String","visibility":"Public","body":"if (__temp_1 = @switch_serial).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#switch_serial cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"switch_serial=(switch_serial:String)-instance-method","name":"switch_serial=","abstract":false,"args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"args_string":"(switch_serial : String)","args_html":"(switch_serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L422"},"def":{"name":"switch_serial=","args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"visibility":"Public","body":"@switch_serial = switch_serial"}},{"html_id":"switch_serial?:String|Nil-instance-method","name":"switch_serial?","abstract":false,"def":{"name":"switch_serial?","return_type":"String | ::Nil","visibility":"Public","body":"@switch_serial"}}]},{"html_id":"drivers/Cisco/Meraki/RSSI","path":"Cisco/Meraki/RSSI.html","kind":"class","full_name":"Cisco::Meraki::RSSI","name":"RSSI","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L154"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L155"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}}]},{"html_id":"drivers/Cisco/Meraki/WebhookAlert","path":"Cisco/Meraki/WebhookAlert.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alert_data:PortData-instance-method","name":"alert_data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L387"},"def":{"name":"alert_data","return_type":"PortData","visibility":"Public","body":"@alert_data"}},{"html_id":"alert_type:AlertType-instance-method","name":"alert_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":384,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L384"},"def":{"name":"alert_type","return_type":"AlertType","visibility":"Public","body":"@alert_type"}},{"html_id":"device_serial:String-instance-method","name":"device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L390"},"def":{"name":"device_serial","return_type":"String","visibility":"Public","body":"@device_serial"}},{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":381,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L381"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L395"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"alert_data.port_num"}},{"html_id":"shared_secret:String-instance-method","name":"shared_secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L393"},"def":{"name":"shared_secret","return_type":"String","visibility":"Public","body":"@shared_secret"}}],"types":[{"html_id":"drivers/Cisco/Meraki/WebhookAlert/PortData","path":"Cisco/Meraki/WebhookAlert/PortData.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert::PortData","name":"PortData","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L373"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/WebhookAlert","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L374"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L377"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"@port_num"}}]}]},{"html_id":"drivers/Cisco/Meraki/ZoneDetails","path":"Cisco/Meraki/ZoneDetails.html","kind":"struct","full_name":"Cisco::Meraki::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":352,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L352"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L353"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Cisco/RoomKit","path":"Cisco/RoomKit.html","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L45"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}],"instance_methods":[{"html_id":"autofocus_diagnostics_start(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_start","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L248"},"def":{"name":"autofocus_diagnostics_start","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Start\", camera_id: camera_id)\n"}},{"html_id":"autofocus_diagnostics_stop(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_stop","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L252"},"def":{"name":"autofocus_diagnostics_stop","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Stop\", camera_id: camera_id)\n"}},{"html_id":"bookings(days:Int32|Nil=nil,day_offset:Int32|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L163"},"def":{"name":"bookings","args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if days\n if (1..365).includes?(days)\n else\n raise(ArgumentError.new(\"\\\"days\\\" must be within #{1..365}, was #{days}\"))\n end\nend\nif day_offset\n if (0..365).includes?(day_offset)\n else\n raise(ArgumentError.new(\"\\\"day_offset\\\" must be within #{0..365}, was #{day_offset}\"))\n end\nend\nxcommand(\"Bookings List\", days: days, day_offset: day_offset, limit: limit, offset: offset)\n"}},{"html_id":"call_accept(call_id:Int32|Nil=nil)-instance-method","name":"call_accept","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L169"},"def":{"name":"call_accept","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Accept\", call_id: call_id)"}},{"html_id":"call_place_on_hold(call_id:Int32|Nil=nil)-instance-method","name":"call_place_on_hold","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L172"},"def":{"name":"call_place_on_hold","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Hold\", call_id: call_id)"}},{"html_id":"call_reject(call_id:Int32|Nil=nil)-instance-method","name":"call_reject","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L170"},"def":{"name":"call_reject","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Reject\", call_id: call_id)"}},{"html_id":"call_resume(call_id:Int32|Nil=nil)-instance-method","name":"call_resume","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L173"},"def":{"name":"call_resume","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Resume\", call_id: call_id)"}},{"html_id":"camera_select(connector_id:Int32|Nil=nil,layout:VideoLayout|Nil=nil,source_id:Int32|Nil=nil)-instance-method","name":"camera_select","abstract":false,"args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"args_string":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","args_html":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L202"},"def":{"name":"camera_select","args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if connector_id\n if (1..3).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..3}, was #{connector_id}\"))\n end\nend\nif source_id\n if (1..3).includes?(source_id)\n else\n raise(ArgumentError.new(\"\\\"source_id\\\" must be within #{1..3}, was #{source_id}\"))\n end\nend\nxcommand(\"Video Input SetMainVideoSource\", connector_id: connector_id, layout: layout, source_id: source_id)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L60"},"def":{"name":"connected","visibility":"Public","body":"super()\nschedule.in(40.seconds) do\n if self[\"calls\"]?.nil?\n disconnect\n end\nend\n"}},{"html_id":"dial(number:String,protocol:DialProtocol|Nil=nil,call_rate:Int32|Nil=nil,call_type:CallType|Nil=nil)-instance-method","name":"dial","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"args_string":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","args_html":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L191"},"def":{"name":"dial","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"visibility":"Public","body":"if call_rate\n if (64..6000).includes?(call_rate)\n else\n raise(ArgumentError.new(\"\\\"call_rate\\\" must be within #{64..6000}, was #{call_rate}\"))\n end\nend\nxcommand(\"Dial\", number: number, protocol: protocol, call_rate: call_rate, call_type: call_type)\n"}},{"html_id":"dtmf_send(d_t_m_f_string:String,call_id:Int32|Nil=nil)-instance-method","name":"dtmf_send","abstract":false,"args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","args_html":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L175"},"def":{"name":"dtmf_send","args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if call_id\n if (0..65534).includes?(call_id)\n else\n raise(ArgumentError.new(\"\\\"call_id\\\" must be within #{0..65534}, was #{call_id}\"))\n end\nend\nxcommand(\"Call DTMFSend\", d_t_m_f_string: d_t_m_f_string, call_id: call_id)\n"}},{"html_id":"hangup(call_id:Int32|Nil=nil)-instance-method","name":"hangup","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L171"},"def":{"name":"hangup","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Disconnect\", call_id: call_id)"}},{"html_id":"mic_mute(state:Bool=true)-instance-method","name":"mic_mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L298"},"def":{"name":"mic_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? mic_mute_on : mic_mute_off"}},{"html_id":"mic_mute_off-instance-method","name":"mic_mute_off","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L121"},"def":{"name":"mic_mute_off","visibility":"Public","body":"xcommand(\"Audio Microphones Unmute\")"}},{"html_id":"mic_mute_on-instance-method","name":"mic_mute_on","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L120"},"def":{"name":"mic_mute_on","visibility":"Public","body":"xcommand(\"Audio Microphones Mute\")"}},{"html_id":"mic_mute_toggle-instance-method","name":"mic_mute_toggle","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L122"},"def":{"name":"mic_mute_toggle","visibility":"Public","body":"xcommand(\"Audio Microphones ToggleMute\")"}},{"html_id":"phonebook_search(search_string:String,phonebook_type:PhonebookType|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"phonebook_search","abstract":false,"args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L276"},"def":{"name":"phonebook_search","args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Phonebook Search\", search_string: search_string, phonebook_type: phonebook_type, limit: limit, offset: offset)"}},{"html_id":"play_sound(sound:Sound,loop:Toogle|Nil=nil)-instance-method","name":"play_sound","abstract":false,"args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"args_string":"(sound : Sound, loop : Toogle | Nil = nil)","args_html":"(sound : Sound, loop : Toogle | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L158"},"def":{"name":"play_sound","args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"visibility":"Public","body":"xcommand(\"Audio Sound Play\", sound: sound, loop: loop)"}},{"html_id":"presentation_mode(value:PresentationMode)-instance-method","name":"presentation_mode","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"args_string":"(value : PresentationMode)","args_html":"(value : PresentationMode)","location":{"filename":"src/cisco/room_kit.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L302"},"def":{"name":"presentation_mode","args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"visibility":"Public","body":"case value\nin .remote?\n presentation_start(sending_mode: :LocalRemote)\nin .local?\n @presentation_mode = PresentationMode::Local\n presentation_start(sending_mode: :LocalOnly)\nin .none?\n @presentation_mode = PresentationMode::None\n presentation_stop\nend"}},{"html_id":"reboot(action:PowerOff|Nil=nil)-instance-method","name":"reboot","abstract":false,"args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"args_string":"(action : PowerOff | Nil = nil)","args_html":"(action : PowerOff | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L288"},"def":{"name":"reboot","args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"visibility":"Public","body":"xcommand(\"SystemUnit Boot\", action: action)"}},{"html_id":"selfview(mode:Toogle|Nil=nil,full_screen_mode:Toogle|Nil=nil,p_i_p_position:PiPPosition|Nil=nil,on_monitor_role:MonitorRole|Nil=nil)-instance-method","name":"selfview","abstract":false,"args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"args_string":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","args_html":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L241"},"def":{"name":"selfview","args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Selfview Set\", mode: mode, full_screen_mode: full_screen_mode, p_i_p_position: p_i_p_position, on_monitor_role: on_monitor_role)"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/room_kit.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L340"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == config.ip\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/room_kit.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L322"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"show_camera_pip(visible:Bool)-instance-method","name":"show_camera_pip","abstract":false,"args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"args_string":"(visible : Bool)","args_html":"(visible : Bool)","location":{"filename":"src/cisco/room_kit.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L293"},"def":{"name":"show_camera_pip","args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"visibility":"Public","body":"mode = visible ? Toogle::On : Toogle::Off\nselfview(mode: mode)\n"}},{"html_id":"speaker_track(state:Bool=true)-instance-method","name":"speaker_track","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L267"},"def":{"name":"speaker_track","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? speaker_track_activate : speaker_track_deactivate"}},{"html_id":"speaker_track_activate-instance-method","name":"speaker_track_activate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L262"},"def":{"name":"speaker_track_activate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Activate\")"}},{"html_id":"speaker_track_deactivate-instance-method","name":"speaker_track_deactivate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L265"},"def":{"name":"speaker_track_deactivate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Deactivate\")"}},{"html_id":"speaker_track_diagnostics_start-instance-method","name":"speaker_track_diagnostics_start","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L256"},"def":{"name":"speaker_track_diagnostics_start","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Start\")"}},{"html_id":"speaker_track_diagnostics_stop-instance-method","name":"speaker_track_diagnostics_stop","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L259"},"def":{"name":"speaker_track_diagnostics_stop","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Stop\")"}},{"html_id":"stop_sound-instance-method","name":"stop_sound","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L161"},"def":{"name":"stop_sound","visibility":"Public","body":"xcommand(\"Audio Sound Stop\")"}},{"html_id":"video_layout(layout_family:LayoutFamily,target:LayoutTarget|Nil=nil)-instance-method","name":"video_layout","abstract":false,"args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"args_string":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","args_html":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L220"},"def":{"name":"video_layout","args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Layout LayoutFamily Set\", layout_family: layout_family, target: target)"}},{"html_id":"webview_clear-instance-method","name":"webview_clear","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L285"},"def":{"name":"webview_clear","visibility":"Public","body":"xcommand(\"UserInterface WebView Clear\")"}},{"html_id":"webview_display(url:String)-instance-method","name":"webview_display","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/room_kit.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L282"},"def":{"name":"webview_display","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface WebView Display\", url: url)"}}],"types":[{"html_id":"drivers/Cisco/RoomKit/CallType","path":"Cisco/RoomKit/CallType.html","kind":"enum","full_name":"Cisco::RoomKit::CallType","name":"CallType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L187"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L188"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Cisco/RoomKit/DialProtocol","path":"Cisco/RoomKit/DialProtocol.html","kind":"enum","full_name":"Cisco::RoomKit::DialProtocol","name":"DialProtocol","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L179"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"H320","name":"H320","value":"0"},{"id":"H323","name":"H323","value":"1"},{"id":"Sip","name":"Sip","value":"2"},{"id":"Spark","name":"Spark","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"h320?-instance-method","name":"h320?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L180"},"def":{"name":"h320?","visibility":"Public","body":"self == H320"}},{"html_id":"h323?-instance-method","name":"h323?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L181"},"def":{"name":"h323?","visibility":"Public","body":"self == H323"}},{"html_id":"sip?-instance-method","name":"sip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L182"},"def":{"name":"sip?","visibility":"Public","body":"self == Sip"}},{"html_id":"spark?-instance-method","name":"spark?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L183"},"def":{"name":"spark?","visibility":"Public","body":"self == Spark"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutFamily","path":"Cisco/RoomKit/LayoutFamily.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutFamily","name":"LayoutFamily","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L207"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Equal","name":"Equal","value":"1"},{"id":"Overlay","name":"Overlay","value":"2"},{"id":"Prominent","name":"Prominent","value":"3"},{"id":"Single","name":"Single","value":"4"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L208"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L209"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L210"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"prominent?-instance-method","name":"prominent?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L211"},"def":{"name":"prominent?","visibility":"Public","body":"self == Prominent"}},{"html_id":"single?-instance-method","name":"single?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L212"},"def":{"name":"single?","visibility":"Public","body":"self == Single"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutTarget","path":"Cisco/RoomKit/LayoutTarget.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutTarget","name":"LayoutTarget","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L215"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Local","name":"Local","value":"0"},{"id":"Remote","name":"Remote","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L216"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L217"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/MonitorRole","path":"Cisco/RoomKit/MonitorRole.html","kind":"enum","full_name":"Cisco::RoomKit::MonitorRole","name":"MonitorRole","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L234"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"First","name":"First","value":"0"},{"id":"Second","name":"Second","value":"1"},{"id":"Third","name":"Third","value":"2"},{"id":"Fourth","name":"Fourth","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"first?-instance-method","name":"first?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L235"},"def":{"name":"first?","visibility":"Public","body":"self == First"}},{"html_id":"fourth?-instance-method","name":"fourth?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L238"},"def":{"name":"fourth?","visibility":"Public","body":"self == Fourth"}},{"html_id":"second?-instance-method","name":"second?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L236"},"def":{"name":"second?","visibility":"Public","body":"self == Second"}},{"html_id":"third?-instance-method","name":"third?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L237"},"def":{"name":"third?","visibility":"Public","body":"self == Third"}}]},{"html_id":"drivers/Cisco/RoomKit/PhonebookType","path":"Cisco/RoomKit/PhonebookType.html","kind":"enum","full_name":"Cisco::RoomKit::PhonebookType","name":"PhonebookType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L271"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Corporate","name":"Corporate","value":"0"},{"id":"Local","name":"Local","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"corporate?-instance-method","name":"corporate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L272"},"def":{"name":"corporate?","visibility":"Public","body":"self == Corporate"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L273"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}}]},{"html_id":"drivers/Cisco/RoomKit/PiPPosition","path":"Cisco/RoomKit/PiPPosition.html","kind":"enum","full_name":"Cisco::RoomKit::PiPPosition","name":"PiPPosition","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L224"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CenterLeft","name":"CenterLeft","value":"0"},{"id":"CenterRight","name":"CenterRight","value":"1"},{"id":"LowerLeft","name":"LowerLeft","value":"2"},{"id":"LowerRight","name":"LowerRight","value":"3"},{"id":"UpperCenter","name":"UpperCenter","value":"4"},{"id":"UpperLeft","name":"UpperLeft","value":"5"},{"id":"UpperRight","name":"UpperRight","value":"6"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"center_left?-instance-method","name":"center_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L225"},"def":{"name":"center_left?","visibility":"Public","body":"self == CenterLeft"}},{"html_id":"center_right?-instance-method","name":"center_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L226"},"def":{"name":"center_right?","visibility":"Public","body":"self == CenterRight"}},{"html_id":"lower_left?-instance-method","name":"lower_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L227"},"def":{"name":"lower_left?","visibility":"Public","body":"self == LowerLeft"}},{"html_id":"lower_right?-instance-method","name":"lower_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L228"},"def":{"name":"lower_right?","visibility":"Public","body":"self == LowerRight"}},{"html_id":"upper_center?-instance-method","name":"upper_center?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L229"},"def":{"name":"upper_center?","visibility":"Public","body":"self == UpperCenter"}},{"html_id":"upper_left?-instance-method","name":"upper_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L230"},"def":{"name":"upper_left?","visibility":"Public","body":"self == UpperLeft"}},{"html_id":"upper_right?-instance-method","name":"upper_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L231"},"def":{"name":"upper_right?","visibility":"Public","body":"self == UpperRight"}}]},{"html_id":"drivers/Cisco/RoomKit/PresentationMode","path":"Cisco/RoomKit/PresentationMode.html","kind":"enum","full_name":"Cisco::RoomKit::PresentationMode","name":"PresentationMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L51"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Local","name":"Local","value":"1"},{"id":"Remote","name":"Remote","value":"2"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L53"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L52"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L54"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/Sound","path":"Cisco/RoomKit/Sound.html","kind":"enum","full_name":"Cisco::RoomKit::Sound","name":"Sound","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L133"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Alert","name":"Alert","value":"0"},{"id":"Bump","name":"Bump","value":"1"},{"id":"Busy","name":"Busy","value":"2"},{"id":"CallDisconnect","name":"CallDisconnect","value":"3"},{"id":"CallInitiate","name":"CallInitiate","value":"4"},{"id":"CallWaiting","name":"CallWaiting","value":"5"},{"id":"Dial","name":"Dial","value":"6"},{"id":"KeyInput","name":"KeyInput","value":"7"},{"id":"KeyInputDelete","name":"KeyInputDelete","value":"8"},{"id":"KeyTone","name":"KeyTone","value":"9"},{"id":"Nav","name":"Nav","value":"10"},{"id":"NavBack","name":"NavBack","value":"11"},{"id":"Notification","name":"Notification","value":"12"},{"id":"OK","name":"OK","value":"13"},{"id":"PresentationConnect","name":"PresentationConnect","value":"14"},{"id":"Ringing","name":"Ringing","value":"15"},{"id":"SignIn","name":"SignIn","value":"16"},{"id":"SpecialInfo","name":"SpecialInfo","value":"17"},{"id":"TelephoneCall","name":"TelephoneCall","value":"18"},{"id":"VideoCall","name":"VideoCall","value":"19"},{"id":"VolumeAdjust","name":"VolumeAdjust","value":"20"},{"id":"WakeUp","name":"WakeUp","value":"21"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"alert?-instance-method","name":"alert?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L134"},"def":{"name":"alert?","visibility":"Public","body":"self == Alert"}},{"html_id":"bump?-instance-method","name":"bump?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L135"},"def":{"name":"bump?","visibility":"Public","body":"self == Bump"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L136"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"call_disconnect?-instance-method","name":"call_disconnect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L137"},"def":{"name":"call_disconnect?","visibility":"Public","body":"self == CallDisconnect"}},{"html_id":"call_initiate?-instance-method","name":"call_initiate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L138"},"def":{"name":"call_initiate?","visibility":"Public","body":"self == CallInitiate"}},{"html_id":"call_waiting?-instance-method","name":"call_waiting?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L139"},"def":{"name":"call_waiting?","visibility":"Public","body":"self == CallWaiting"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L140"},"def":{"name":"dial?","visibility":"Public","body":"self == Dial"}},{"html_id":"key_input?-instance-method","name":"key_input?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L141"},"def":{"name":"key_input?","visibility":"Public","body":"self == KeyInput"}},{"html_id":"key_input_delete?-instance-method","name":"key_input_delete?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L142"},"def":{"name":"key_input_delete?","visibility":"Public","body":"self == KeyInputDelete"}},{"html_id":"key_tone?-instance-method","name":"key_tone?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L143"},"def":{"name":"key_tone?","visibility":"Public","body":"self == KeyTone"}},{"html_id":"nav?-instance-method","name":"nav?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L144"},"def":{"name":"nav?","visibility":"Public","body":"self == Nav"}},{"html_id":"nav_back?-instance-method","name":"nav_back?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L145"},"def":{"name":"nav_back?","visibility":"Public","body":"self == NavBack"}},{"html_id":"notification?-instance-method","name":"notification?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L146"},"def":{"name":"notification?","visibility":"Public","body":"self == Notification"}},{"html_id":"ok?-instance-method","name":"ok?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L147"},"def":{"name":"ok?","visibility":"Public","body":"self == OK"}},{"html_id":"presentation_connect?-instance-method","name":"presentation_connect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L148"},"def":{"name":"presentation_connect?","visibility":"Public","body":"self == PresentationConnect"}},{"html_id":"ringing?-instance-method","name":"ringing?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L149"},"def":{"name":"ringing?","visibility":"Public","body":"self == Ringing"}},{"html_id":"sign_in?-instance-method","name":"sign_in?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L150"},"def":{"name":"sign_in?","visibility":"Public","body":"self == SignIn"}},{"html_id":"special_info?-instance-method","name":"special_info?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L151"},"def":{"name":"special_info?","visibility":"Public","body":"self == SpecialInfo"}},{"html_id":"telephone_call?-instance-method","name":"telephone_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L152"},"def":{"name":"telephone_call?","visibility":"Public","body":"self == TelephoneCall"}},{"html_id":"video_call?-instance-method","name":"video_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L153"},"def":{"name":"video_call?","visibility":"Public","body":"self == VideoCall"}},{"html_id":"volume_adjust?-instance-method","name":"volume_adjust?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L154"},"def":{"name":"volume_adjust?","visibility":"Public","body":"self == VolumeAdjust"}},{"html_id":"wake_up?-instance-method","name":"wake_up?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L155"},"def":{"name":"wake_up?","visibility":"Public","body":"self == WakeUp"}}]},{"html_id":"drivers/Cisco/RoomKit/Toogle","path":"Cisco/RoomKit/Toogle.html","kind":"enum","full_name":"Cisco::RoomKit::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L130"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L129"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/RoomKit/VideoLayout","path":"Cisco/RoomKit/VideoLayout.html","kind":"enum","full_name":"Cisco::RoomKit::VideoLayout","name":"VideoLayout","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L197"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"PIP","name":"PIP","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L198"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L199"},"def":{"name":"pip?","visibility":"Public","body":"self == PIP"}}]}]},{"html_id":"drivers/Cisco/RoomOS","path":"Cisco/RoomOS.html","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_os.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_os.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_os.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_os.cr#L38"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}]},{"html_id":"drivers/Cisco/SpacesRoom","path":"Cisco/SpacesRoom.html","kind":"class","full_name":"Cisco::SpacesRoom","name":"SpacesRoom","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/spaces_room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality, SensorType::SoundPressure}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L19"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :cisco_spaces_system)).presence || config.control_system.not_nil!.id\n@module_name = (setting?(String, :cisco_spaces_module)).presence || \"Cisco_Spaces\"\n@room_id = setting(String, :space_room_id)\n"}},{"html_id":"room_id:String-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L20"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/spaces_room.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L52"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == @room_id\nelse\n return nil\nend\n::Union(Interface::Sensor::Detail, ::Nil).from_json((cisco_spaces.sensors(@room_id, id)).get.to_json)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/spaces_room.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L39"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @room_id)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nArray(Interface::Sensor::Detail).from_json((cisco_spaces.sensors(type, @room_id, zone_id)).get.to_json)\n"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L18"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Cisco/Switch","path":"Cisco/Switch.html","kind":"module","full_name":"Cisco::Switch","name":"Switch","abstract":false,"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Switch/SnoopingCatalyst","path":"Cisco/Switch/SnoopingCatalyst.html","kind":"class","full_name":"Cisco::Switch::SnoopingCatalyst","name":"SnoopingCatalyst","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Switch","kind":"module","full_name":"Cisco::Switch","name":"Switch"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(1.second) do\n query_connected_devices\nend\nschedule.every(1.minute) do\n query_connected_devices\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nqueue.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\n\", \"--More--\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@ignore_macs = ::Set.new(((setting?(Hash(String, String), :ignore_macs)) || ({} of String => String)).values)\nself[:name] = @switch_name = setting?(String, :switch_name)\nself[:ip_address] = config.ip.not_nil!.downcase\nself[:building] = setting?(String, :building)\nself[:level] = setting?(String, :level)\nself[:last_successful_query]? || (self[:last_successful_query] = 0)\n"}},{"html_id":"query_connected_devices-instance-method","name":"query_connected_devices","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L87"},"def":{"name":"query_connected_devices","visibility":"Public","body":"begin\n if @querying_devices\n return\n end\n @querying_devices = true\n logger.debug do\n \"Querying for connected devices\"\n end\n query_interface_status.get\n sleep(3.seconds)\n query_mac_addresses.get\n sleep(3.seconds)\n query_snooping_bindings.get\n sleep(2.seconds)\n nil\nensure\n @querying_devices = false\nend"}},{"html_id":"query_interface_status-instance-method","name":"query_interface_status","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L71"},"def":{"name":"query_interface_status","visibility":"Public","body":"do_send(\"show interfaces status\")"}},{"html_id":"query_mac_addresses-instance-method","name":"query_mac_addresses","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L75"},"def":{"name":"query_mac_addresses","visibility":"Public","body":"@interface_macs.clear\ndo_send(\"show mac address-table\")\n"}},{"html_id":"query_snooping_bindings-instance-method","name":"query_snooping_bindings","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L80"},"def":{"name":"query_snooping_bindings","visibility":"Public","body":"@snooping.clear\ndo_send(\"show ip dhcp snooping binding\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Switch sent: #{data}\"\nend\nif @hostname.nil?\n parts = data.split(\">\")\n if parts.size == 2\n self[:hostname] = @hostname = parts[0]\n return task.try(&.success)\n end\nend\ncase data\nwhen /More/\n send(\" \", priority: 99, retries: 0)\n return task.try(&.success)\nwhen /STATIC|DYNAMIC/\n parts = (data.split(/\\s+/)).reject(&.empty?)\n mac = format(parts[1])\n interface = normalise(parts[-1])\n if mac && interface\n @interface_macs[interface] = mac\n end\n return :success\nwhen /%LINK/\n interface = normalise(((data.split(\",\"))[0].split(/\\s/))[-1])\n if data =~ (/Up:/)\n logger.debug do\n \"Notify Up: #{interface}\"\n end\n @check_interface << interface\n else\n if data =~ (/Down:/)\n logger.debug do\n \"Notify Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\n end\n self[:interfaces] = @check_interface\n return task.try(&.success)\nwhen .starts_with?(\"Total number\")\n logger.debug do\n \"Processing #{@snooping.size} bindings\"\n end\n checked = Set(String).new\n devices = {} of String => NamedTuple(mac: String, ip: String)\n state_changed = false\n @snooping.each do |mac, ip, interface|\n if @check_interface.includes?(interface)\n else\n next\n end\n if @interface_macs[interface]? == mac\n else\n next\n end\n if checked.includes?(interface)\n next\n end\n checked << interface\n iface = @devices[interface]? || {mac: \"\", ip: \"\"}\n if (iface[:ip] != ip) || (iface[:mac] != mac)\n logger.debug do\n \"New connection on #{interface} with #{ip}: #{mac}\"\n end\n devices[interface] = {mac: mac, ip: ip}\n state_changed = true\n else\n devices[interface] = iface\n end\n end\n if state_changed\n @devices = devices\n self[:devices] = devices\n end\n if @check_interface != checked\n @check_interface = checked\n self[:interfaces] = checked\n end\n self[:last_successful_query] = Time.utc.to_unix\n return task.try(&.success)\nend\nentries = (data.split(/\\s+/)).reject(&.empty?)\ncase entries\nwhen .includes?(\"connected\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n else\n logger.debug do\n \"Interface Up: #{interface}\"\n end\n @check_interface << interface\n end\nwhen .includes?(\"notconnect\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n logger.debug do\n \"Interface Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\nelse\n if entries.size > 2\n interface = normalise(entries[-1])\n if @check_interface.includes?(interface)\n mac = entries[0]\n if mac =~ (/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/)\n mac = format(mac)\n ip = entries[1]\n if @ignore_macs.includes?(mac[0..5])\n else\n @snooping << {mac, ip, interface}\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"run(command:String)-instance-method","name":"run","doc":"Don't want the every day user using this method","summary":"

Don't want the every day user using this method

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L67"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"do_send(command)"}}]}]},{"html_id":"drivers/Cisco/UIExtender","path":"Cisco/UIExtender.html","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IGNORE_METHODS","name":"IGNORE_METHODS","value":"[\"on_load\", \"on_unload\", \"on_update\"] of ::String","doc":"Build a list of all callback methods that have been defined.\n\nCallback methods are denoted being single arity and beginning with `on_`.","summary":"

Build a list of all callback methods that have been defined.

"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"alert(text:String,title:String=\"\",duration:Int32=0)-instance-method","name":"alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"args_string":"(text : String, title : String = \"\", duration : Int32 = 0)","args_html":"(text : String, title : String = "", duration : Int32 = 0)","location":{"filename":"src/cisco/ui_extender.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L200"},"def":{"name":"alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Display\", hash_args: {Text: text, Title: title, Duration: duration})"}},{"html_id":"clear_alert-instance-method","name":"clear_alert","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L211"},"def":{"name":"clear_alert","visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"clear_extensions-instance-method","name":"clear_extensions","doc":"Clear any deployed UI extensions.","summary":"

Clear any deployed UI extensions.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L75"},"def":{"name":"clear_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"close_panel-instance-method","name":"close_panel","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L82"},"def":{"name":"close_panel","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Panel Close\")"}},{"html_id":"deploy_extensions(id:String,xml_def:String)-instance-method","name":"deploy_extensions","doc":"Push a UI definition build with the in-room control editor to the device.","summary":"

Push a UI definition build with the in-room control editor to the device.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L65"},"def":{"name":"deploy_extensions","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Set\", xml_def, {\"config_id\" => id})"}},{"html_id":"highlight(id:String,state:Bool=true,momentary:Bool=false,time:Int32=500)-instance-method","name":"highlight","doc":"Set the highlight state for a button widget.","summary":"

Set the highlight state for a button widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"args_string":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","args_html":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","location":{"filename":"src/cisco/ui_extender.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L145"},"def":{"name":"highlight","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"visibility":"Public","body":"value = state ? \"active\" : \"inactive\"\nif momentary\n schedule.in(time.milliseconds) do\n highlight(id, !state)\n nil\n end\nend\nset(id, value)\n"}},{"html_id":"label(id:String,value:String|Bool|Nil)-instance-method","name":"label","doc":"Set the text label used on text or spinner widget.","summary":"

Set the text label used on text or spinner widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L152"},"def":{"name":"label","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"link_widget(id:String,bindings:Binding)-instance-method","name":"link_widget","doc":"Wire up a widget based on a binding target.","summary":"

Wire up a widget based on a binding target.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"args_string":"(id : String, bindings : Binding)","args_html":"(id : String, bindings : Binding)","location":{"filename":"src/cisco/ui_extender.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L328"},"def":{"name":"link_widget","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"visibility":"Public","body":"logger.debug do\n \"setting up bindings for #{id}\"\nend\nbinding = case bindings\nin String\n (([\"clicked\", \"changed\", \"status\"] of ::String).product([bindings])).to_h\nin Hash(String, Hash(String, Hash(String, Array(String)) | String) | String)\n bindings\nend\nbinding.each do |type, target|\n if type == \"status\"\n case target\n in String\n mod, state = target.split(\".\")\n link_feedback(id, mod, state)\n in Hash(String, String | Hash(String, Array(String)))\n mod, state = target.first\n link_feedback(id, mod, state.as(String))\n end\n else\n handler = build_handler(target)\n if handler\n @event_handlers[{id, type}] = handler\n else\n logger.warn do\n \"invalid #{type} binding for #{id}\"\n end\n end\n end\nend\n"}},{"html_id":"list_extensions-instance-method","name":"list_extensions","doc":"Retrieve the extensions currently loaded.","summary":"

Retrieve the extensions currently loaded.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L70"},"def":{"name":"list_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions List\")"}},{"html_id":"on_extensions_widget_action(event:Hash(String,JSON::Any))-instance-method","name":"on_extensions_widget_action","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"args_string":"(event : Hash(String, JSON::Any))","args_html":"(event : Hash(String, JSON::Any))","location":{"filename":"src/cisco/ui_extender.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L159"},"def":{"name":"on_extensions_widget_action","args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"logger.debug do\n \"received widget action update #{event}\"\nend\ncurrent_key = event.keys.first\ncase current_key\nwhen \"/Event/UserInterface/Extensions/Widget/Action/WidgetId\"\n @action_merged[\"WidgetId\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action\", \"/Event/UserInterface/Extensions/Widget/Action/Value\"\n @action_merged[\"Value\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action/Type\"\n @action_merged[\"Type\"] = event[current_key]\nelse\n logger.debug do\n \"ignoring key #{current_key} processing widget_action event\"\n end\nend\nlogger.debug do\n \"current action state: #{@action_merged}\"\nend\nif @action_merged.size == 3\nelse\n return\nend\nid, value, type = @action_merged.values_at(\"WidgetId\", \"Value\", \"Type\")\n@action_merged = {} of String => JSON::Any\nlogger.debug do\n \"#{id} #{type} = #{value}\"\nend\nid = id.as_s\ntype = type.as_s\nif [\"\", \"increment\", \"decrement\"].includes?(value.raw)\nelse\n self[id] = value\nend\nbegin\n handler = @event_handlers.fetch([id, type], nil)\n handler.try(&.call(value))\nrescue e\n logger.error(exception: e) do\n \"error in binding for #{id}.#{type}\"\n end\nend\nself[:__event_stream] = {id: id, type: type, value: value}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"on_update(true)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L27"},"def":{"name":"on_unload","visibility":"Public","body":"clear_extensions\nunbind\n"}},{"html_id":"on_update(loading=false)-instance-method","name":"on_update","abstract":false,"args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"args_string":"(loading = false)","args_html":"(loading = false)","location":{"filename":"src/cisco/ui_extender.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L37"},"def":{"name":"on_update","args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"visibility":"Public","body":"if loading\nelse\n begin\n clear_events\n rescue\n end\nend\ncodec_mod = (setting?(String, :codec)) || \"VidConf_1\"\nif system.exists?(codec_mod)\nelse\n logger.warn do\n \"could not find codec #{codec_mod}\"\n end\n return\nend\nui_layout = setting?(String, :cisco_ui_layout)\nbindings = (setting?(Bindings, :cisco_ui_bindings)) || ({} of String => Binding)\nbind(codec_mod) do\n if ui_layout\n deploy_extensions(\"PlaceOS\", ui_layout)\n end\n bindings.each do |id, config|\n link_widget(id, config)\n end\nend\n"}},{"html_id":"set(id:String,value:String|Bool|Nil)-instance-method","name":"set","doc":"Set the value of a widget.","summary":"

Set the value of a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L119"},"def":{"name":"set","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"switch(id:String,state:Bool|Nil=nil)-instance-method","name":"switch","doc":"Set the state of a switch widget.","summary":"

Set the state of a switch widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"args_string":"(id : String, state : Bool | Nil = nil)","args_html":"(id : String, state : Bool | Nil = nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L138"},"def":{"name":"switch","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if state.nil?\n state = !(status?(Bool, id))\nend\nvalue = state ? \"on\" : \"off\"\nset(id, value)\n"}},{"html_id":"sync_widget_state-instance-method","name":"sync_widget_state","doc":"Push the current module state to the device.","summary":"

Push the current module state to the device.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L262"},"def":{"name":"sync_widget_state","visibility":"Public","body":"@__status__.each do |key, value|\n if key == \"connected\"\n next\n end\n if key =~ (/^__.*/)\n next\n end\n case value\n when .starts_with?(\"\\\"\")\n set(key, String.from_json(value))\n when \"true\", \"false\"\n set(key, value == \"true\")\n end\nend"}},{"html_id":"unset(id:String)-instance-method","name":"unset","doc":"Clear the value associated with a widget.","summary":"

Clear the value associated with a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L124"},"def":{"name":"unset","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"clearing #{id}\"\nend\nupdate = codec.xcommand(\"UserInterface Extensions Widget UnsetValue\", hash_args: {WidgetId: id})\nPromise.defer do\n update.get\n self[id] = nil\n nil.as(String | Nil)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/UIExtender/Binding","path":"Cisco/UIExtender/Binding.html","kind":"alias","full_name":"Cisco::UIExtender::Binding","name":"Binding","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"}},{"html_id":"drivers/Cisco/UIExtender/Bindings","path":"Cisco/UIExtender/Bindings.html","kind":"alias","full_name":"Cisco::UIExtender::Bindings","name":"Bindings","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"},"doc":"id => binding","summary":"

id => binding

"}]},{"html_id":"drivers/Cisco/Webex","path":"Cisco/Webex.html","kind":"module","full_name":"Cisco::Webex","name":"Webex","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L2"},{"filename":"src/cisco/webex/api/people.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L2"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L2"},{"filename":"src/cisco/webex/client.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L2"},{"filename":"src/cisco/webex/command.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L2"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L2"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L2"},{"filename":"src/cisco/webex/constants.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L2"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L2"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L2"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L2"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L2"},{"filename":"src/cisco/webex/models/device.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L2"},{"filename":"src/cisco/webex/models/event.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L2"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L2"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L2"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L2"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L2"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L2"},{"filename":"src/cisco/webex/models/message.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L2"},{"filename":"src/cisco/webex/models/peek.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L2"},{"filename":"src/cisco/webex/models/person.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L2"},{"filename":"src/cisco/webex/models/room.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L2"},{"filename":"src/cisco/webex/session.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L2"},{"filename":"src/cisco/webex/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L2"},{"filename":"src/cisco/webex/utils.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Webex/Api","path":"Cisco/Webex/Api.html","kind":"module","full_name":"Cisco::Webex::Api","name":"Api","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L3"},{"filename":"src/cisco/webex/api/people.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L3"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Api/Messages","path":"Cisco/Webex/Api/Messages.html","kind":"class","full_name":"Cisco::Webex::Api::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/People","path":"Cisco/Webex/Api/People.html","kind":"class","full_name":"Cisco::Webex::Api::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/people.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/people.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"me:Models::Person-instance-method","name":"me","abstract":false,"location":{"filename":"src/cisco/webex/api/people.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L8"},"def":{"name":"me","return_type":"Models::Person","visibility":"Public","body":"response = @session.get([Constants::PEOPLE_ENDPOINT, \"/\", \"me\"].join(\"\"))\nModels::Person.from_json(response.body)\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/Rooms","path":"Cisco/Webex/Api/Rooms.html","kind":"class","full_name":"Cisco::Webex::Api::Rooms","name":"Rooms","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/rooms.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]}]},{"html_id":"drivers/Cisco/Webex/Client","path":"Cisco/Webex/Client.html","kind":"class","full_name":"Cisco::Webex::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/client.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(name:String,access_token:String,emails:String,session:Session,commands:Array(Command))-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"args_string":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","args_html":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L10"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, access_token, emails, session, commands)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"keywords:Hash(String,Command)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords","return_type":"Hash(String, Command)","visibility":"Public","body":"@keywords"}},{"html_id":"keywords=(keywords:Hash(String,Command))-instance-method","name":"keywords=","abstract":false,"args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"args_string":"(keywords : Hash(String, Command))","args_html":"(keywords : Hash(String, Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords=","args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"visibility":"Public","body":"@keywords = keywords"}},{"html_id":"messages:Cisco::Webex::Api::Messages-instance-method","name":"messages","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L31"},"def":{"name":"messages","visibility":"Public","body":"@messages"}},{"html_id":"people:Cisco::Webex::Api::People-instance-method","name":"people","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L27"},"def":{"name":"people","visibility":"Public","body":"@people"}},{"html_id":"rooms:Cisco::Webex::Api::Rooms-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L23"},"def":{"name":"rooms","visibility":"Public","body":"@rooms"}},{"html_id":"run:Void-instance-method","name":"run","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L124"},"def":{"name":"run","return_type":"Void","visibility":"Public","body":"device = device()\n@socket = socket = HTTP::WebSocket.new(URI.parse(device.websocket_url))\nsocket.on_message do |message|\n process_incoming_websocket_message(socket, message)\nend\nsocket.on_binary do |binary|\n process_incoming_websocket_message(socket, String.new(binary))\nend\nmessage = {\"id\" => UUID.random.to_s, \"type\" => \"authorization\", \"trackingId\" => [\"webex\", \"-\", UUID.random.to_s].join(\"\"), \"data\" => {\"token\" => [\"Bearer\", @access_token].join(\" \")}}\nsocket.send(message.to_json)\nsocket.run\n"}},{"html_id":"socket:HTTP::WebSocket|Nil-instance-method","name":"socket","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L8"},"def":{"name":"socket","return_type":"HTTP::WebSocket | ::Nil","visibility":"Public","body":"@socket"}},{"html_id":"socket=(socket:HTTP::WebSocket|Nil)-instance-method","name":"socket=","abstract":false,"args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"args_string":"(socket : HTTP::WebSocket | Nil)","args_html":"(socket : HTTP::WebSocket | Nil)","location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L8"},"def":{"name":"socket=","args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"visibility":"Public","body":"@socket = socket"}},{"html_id":"stop:Void-instance-method","name":"stop","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L148"},"def":{"name":"stop","return_type":"Void","visibility":"Public","body":"@socket.close"}}]},{"html_id":"drivers/Cisco/Webex/Command","path":"Cisco/Webex/Command.html","kind":"class","full_name":"Cisco::Webex::Command","name":"Command","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/command.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo"},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L5"},"def":{"name":"description","return_type":"String","visibility":"Public","body":""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":true,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L6"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":""}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L4"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":""}}]},{"html_id":"drivers/Cisco/Webex/Commands","path":"Cisco/Webex/Commands.html","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands","abstract":false,"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L3"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","path":"Cisco/Webex/Commands/Echo.html","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply replies your message!\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => message.text}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"echo\"]"}}]},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","path":"Cisco/Webex/Commands/Greeting.html","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/greeting.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply responds to hello, hi, how are you, etc.\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => \"👋\"}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"hello\", \"hi\"]"}}]}]},{"html_id":"drivers/Cisco/Webex/Constants","path":"Cisco/Webex/Constants.html","kind":"module","full_name":"Cisco::Webex::Constants","name":"Constants","abstract":false,"locations":[{"filename":"src/cisco/webex/constants.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_BASE_URL","name":"DEFAULT_BASE_URL","value":"\"https://webexapis.com/v1/\""},{"id":"DEFAULT_DEVICE_URL","name":"DEFAULT_DEVICE_URL","value":"\"https://wdm-a.wbx2.com/wdm/api/v1/\""},{"id":"DEFAULT_SINGLE_REQUEST_TIMEOUT","name":"DEFAULT_SINGLE_REQUEST_TIMEOUT","value":"60"},{"id":"DEFAULT_WAIT_ON_RATE_LIMIT","name":"DEFAULT_WAIT_ON_RATE_LIMIT","value":"true"},{"id":"DEVICE","name":"DEVICE","value":"{\"deviceType\" => \"DESKTOP\", \"localizedModel\" => \"crystal\", \"model\" => \"crystal\", \"name\" => UUID.random.to_s, \"systemName\" => \"webex-bot-client\", \"systemVersion\" => VERSION}"},{"id":"MESSAGES_ENDPOINT","name":"MESSAGES_ENDPOINT","value":"\"messages\""},{"id":"PEOPLE_ENDPOINT","name":"PEOPLE_ENDPOINT","value":"\"people\""},{"id":"ROOMS_ENDPOINT","name":"ROOMS_ENDPOINT","value":"\"rooms\""},{"id":"STATUS_CODES","name":"STATUS_CODES","value":"{200 => \"Successful request with body content.\", 204 => \"Successful request without body content.\", 400 => \"The request was invalid or cannot be otherwise served.\", 401 => \"Authentication credentials were missing or incorrect.\", 403 => \"The request is understood, but it has been refused or access is not allowed.\", 404 => \"The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.\", 405 => \"The request was made to a resource using an HTTP request method that is not supported.\", 409 => \"The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.\", 410 => \"The requested resource is no longer available.\", 415 => \"The request was made to a resource without specifying a media type or used a media type that is not supported.\", 423 => \"The requested resource is temporarily unavailable. A `Retry-After` header may be present that specifies how many seconds you need to wait before attempting the request again.\", 429 => \"Too many requests have been sent in a given amount of time and the request has been rate limited. A `Retry-After` header should be present that specifies how many seconds you need to wait before a successful request can be made.\", 500 => \"Something went wrong on the server. If the issue persists, feel free to contact the Webex Developer Support team (https://developer.webex.com/support).\", 502 => \"The server received an invalid response from an upstream server while processing the request. Try again later.\", 503 => \"Server is overloaded with requests. Try again later.\"}"},{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/drivers/drivers/src/cisco/webex\\\"`).chomp.stringify.downcase }}"},{"id":"WEBEX_TEAMS_DATETIME_FORMAT","name":"WEBEX_TEAMS_DATETIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%fZ\""}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"}},{"html_id":"drivers/Cisco/Webex/Exceptions","path":"Cisco/Webex/Exceptions.html","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions","abstract":false,"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L3"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L3"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L3"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Exceptions/Argument","path":"Cisco/Webex/Exceptions/Argument.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/Method","path":"Cisco/Webex/Exceptions/Method.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Method","name":"Method","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/method.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/RateLimit","path":"Cisco/Webex/Exceptions/RateLimit.html","kind":"class","full_name":"Cisco::Webex::Exceptions::RateLimit","name":"RateLimit","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/StatusCode","path":"Cisco/Webex/Exceptions/StatusCode.html","kind":"class","full_name":"Cisco::Webex::Exceptions::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect","path":"Cisco/Webex/InstantConnect.html","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest_bearer(user_id:String,display_name:String,expiry:Int64|Nil=nil)-instance-method","name":"create_guest_bearer","doc":"Cisco docs on the subject:\n* Guest JWT: https://developer.webex.com/docs/guest-issuer\n* Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/","summary":"

Cisco docs on the subject: * Guest JWT: https://developer.webex.com/docs/guest-issuer * Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","args_html":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L34"},"def":{"name":"create_guest_bearer","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"expires_at = expiry || 12.hours.from_now.to_unix\nJWT.encode({sub: user_id, name: display_name, iss: @webex_guest_issuer, iat: 3.minutes.ago.to_unix, exp: expires_at}, Base64.decode_string(@webex_guest_secret), :hs256)\n"}},{"html_id":"create_meeting(room_id:String)-instance-method","name":"create_meeting","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L45"},"def":{"name":"create_meeting","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"expiry = 24.hours.from_now.to_unix\nrequest = {aud: @jwt_audience, provideShortUrls: true, jwt: {sub: room_id, exp: expiry}}.to_json\nget_meeting_details(get_hash(request))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@webex_guest_issuer = (setting?(String, :webex_guest_issuer)) || \"\"\n@webex_guest_secret = (setting?(String, :webex_guest_secret)) || \"\"\n@audience_setting = (setting?(String, :jwt_audience)) || \"a4d886b0-979f-4e2c-a958-3e8c14605e51\"\n@bot_access_token = setting(String, :bot_access_token)\n"}}],"types":[{"html_id":"drivers/Cisco/Webex/InstantConnect/JoseEncryptResponse","path":"Cisco/Webex/InstantConnect/JoseEncryptResponse.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::JoseEncryptResponse","name":"JoseEncryptResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L84"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L85"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L91"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"guest:Array(MeetingDetails)-instance-method","name":"guest","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L88"},"def":{"name":"guest","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@guest"}},{"html_id":"host:Array(MeetingDetails)-instance-method","name":"host","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L87"},"def":{"name":"host","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@host"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect/MeetingDetails","path":"Cisco/Webex/InstantConnect/MeetingDetails.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::MeetingDetails","name":"MeetingDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cipher:String-instance-method","name":"cipher","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L97"},"def":{"name":"cipher","return_type":"String","visibility":"Public","body":"@cipher"}},{"html_id":"short:String-instance-method","name":"short","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L98"},"def":{"name":"short","return_type":"String","visibility":"Public","body":"@short"}}]}]},{"html_id":"drivers/Cisco/Webex/Models","path":"Cisco/Webex/Models.html","kind":"module","full_name":"Cisco::Webex::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L3"},{"filename":"src/cisco/webex/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L3"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L3"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L3"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L3"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L3"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L3"},{"filename":"src/cisco/webex/models/message.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L3"},{"filename":"src/cisco/webex/models/peek.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L3"},{"filename":"src/cisco/webex/models/person.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L3"},{"filename":"src/cisco/webex/models/room.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Device","path":"Cisco/Webex/Models/Device.html","kind":"class","full_name":"Cisco::Webex::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"websocket_url:String-instance-method","name":"websocket_url","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url","return_type":"String","visibility":"Public","body":"@websocket_url"}},{"html_id":"websocket_url=(websocket_url:String)-instance-method","name":"websocket_url=","abstract":false,"args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"args_string":"(websocket_url : String)","args_html":"(websocket_url : String)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url=","args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"visibility":"Public","body":"@websocket_url = websocket_url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Event","path":"Cisco/Webex/Models/Event.html","kind":"class","full_name":"Cisco::Webex::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data","return_type":"Events::Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"args_string":"(data : Events::Data)","args_html":"(data : Events::Data)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"filter_message:Bool-instance-method","name":"filter_message","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message","return_type":"Bool","visibility":"Public","body":"@filter_message"}},{"html_id":"filter_message=(filter_message:Bool)-instance-method","name":"filter_message=","abstract":false,"args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"args_string":"(filter_message : Bool)","args_html":"(filter_message : Bool)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message=","args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"visibility":"Public","body":"@filter_message = filter_message"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sequence_number:Int64-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number","return_type":"Int64","visibility":"Public","body":"@sequence_number"}},{"html_id":"sequence_number=(sequence_number:Int64)-instance-method","name":"sequence_number=","abstract":false,"args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"args_string":"(sequence_number : Int64)","args_html":"(sequence_number : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number=","args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"visibility":"Public","body":"@sequence_number = sequence_number"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}},{"html_id":"tracking_id=(tracking_id:String)-instance-method","name":"tracking_id=","abstract":false,"args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"args_string":"(tracking_id : String)","args_html":"(tracking_id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id=","args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"visibility":"Public","body":"@tracking_id = tracking_id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events","path":"Cisco/Webex/Models/Events.html","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events","abstract":false,"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L4"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L4"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L4"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L4"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Events/Activity","path":"Cisco/Webex/Models/Events/Activity.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Activity","name":"Activity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actor:Actor-instance-method","name":"actor","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor","return_type":"Actor","visibility":"Public","body":"@actor"}},{"html_id":"actor=(actor:Actor)-instance-method","name":"actor=","abstract":false,"args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"args_string":"(actor : Actor)","args_html":"(actor : Actor)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor=","args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"visibility":"Public","body":"@actor = actor"}},{"html_id":"client_temp_id:String|Nil-instance-method","name":"client_temp_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id","return_type":"String | ::Nil","visibility":"Public","body":"@client_temp_id"}},{"html_id":"client_temp_id=(client_temp_id:String|Nil)-instance-method","name":"client_temp_id=","abstract":false,"args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"args_string":"(client_temp_id : String | Nil)","args_html":"(client_temp_id : String | Nil)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id=","args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client_temp_id = client_temp_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"target:Target-instance-method","name":"target","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target","return_type":"Target","visibility":"Public","body":"@target"}},{"html_id":"target=(target:Target)-instance-method","name":"target=","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target)","args_html":"(target : Target)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target=","args":[{"name":"target","external_name":"target","restriction":"Target"}],"visibility":"Public","body":"@target = target"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"verb:String-instance-method","name":"verb","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb","return_type":"String","visibility":"Public","body":"@verb"}},{"html_id":"verb=(verb:String)-instance-method","name":"verb=","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"}],"args_string":"(verb : String)","args_html":"(verb : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb=","args":[{"name":"verb","external_name":"verb","restriction":"String"}],"visibility":"Public","body":"@verb = verb"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Actor","path":"Cisco/Webex/Models/Events/Actor.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Actor","name":"Actor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/actor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"entry_uuid:String-instance-method","name":"entry_uuid","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid","return_type":"String","visibility":"Public","body":"@entry_uuid"}},{"html_id":"entry_uuid=(entry_uuid:String)-instance-method","name":"entry_uuid=","abstract":false,"args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"args_string":"(entry_uuid : String)","args_html":"(entry_uuid : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid=","args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"visibility":"Public","body":"@entry_uuid = entry_uuid"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"organisation_id:String-instance-method","name":"organisation_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id","return_type":"String","visibility":"Public","body":"@organisation_id"}},{"html_id":"organisation_id=(organisation_id:String)-instance-method","name":"organisation_id=","abstract":false,"args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"args_string":"(organisation_id : String)","args_html":"(organisation_id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id=","args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"visibility":"Public","body":"@organisation_id = organisation_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Data","path":"Cisco/Webex/Models/Events/Data.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/data.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activity:Activity-instance-method","name":"activity","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity","return_type":"Activity","visibility":"Public","body":"@activity"}},{"html_id":"activity=(activity:Activity)-instance-method","name":"activity=","abstract":false,"args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"args_string":"(activity : Activity)","args_html":"(activity : Activity)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity=","args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"visibility":"Public","body":"@activity = activity"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Target","path":"Cisco/Webex/Models/Events/Target.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Target","name":"Target","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/target.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Type","path":"Cisco/Webex/Models/Events/Type.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Type","name":"Type","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]}]},{"html_id":"drivers/Cisco/Webex/Models/Message","path":"Cisco/Webex/Models/Message.html","kind":"class","full_name":"Cisco::Webex::Models::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/message.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Array(String)|Nil-instance-method","name":"attachments","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@attachments"}},{"html_id":"attachments=(attachments:Array(String)|Nil)-instance-method","name":"attachments=","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"args_string":"(attachments : Array(String) | Nil)","args_html":"(attachments : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments=","args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@attachments = attachments"}},{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"files:Array(String)|Nil-instance-method","name":"files","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@files"}},{"html_id":"files=(files:Array(String)|Nil)-instance-method","name":"files=","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"args_string":"(files : Array(String) | Nil)","args_html":"(files : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files=","args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@files = files"}},{"html_id":"html:String|Nil-instance-method","name":"html","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html","return_type":"String | ::Nil","visibility":"Public","body":"@html"}},{"html_id":"html=(html:String|Nil)-instance-method","name":"html=","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"args_string":"(html : String | Nil)","args_html":"(html : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html=","args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"visibility":"Public","body":"@html = html"}},{"html_id":"id:String-instance-method","name":"id","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"markdown:String|Nil-instance-method","name":"markdown","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown","return_type":"String | ::Nil","visibility":"Public","body":"@markdown"}},{"html_id":"markdown=(markdown:String|Nil)-instance-method","name":"markdown=","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"args_string":"(markdown : String | Nil)","args_html":"(markdown : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown=","args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"visibility":"Public","body":"@markdown = markdown"}},{"html_id":"mentioned_groups:Array(String)|Nil-instance-method","name":"mentioned_groups","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_groups"}},{"html_id":"mentioned_groups=(mentioned_groups:Array(String)|Nil)-instance-method","name":"mentioned_groups=","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_groups : Array(String) | Nil)","args_html":"(mentioned_groups : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups=","args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_groups = mentioned_groups"}},{"html_id":"mentioned_people:Array(String)|Nil-instance-method","name":"mentioned_people","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_people"}},{"html_id":"mentioned_people=(mentioned_people:Array(String)|Nil)-instance-method","name":"mentioned_people=","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_people : Array(String) | Nil)","args_html":"(mentioned_people : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people=","args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_people = mentioned_people"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"person_email:String-instance-method","name":"person_email","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email","return_type":"String","visibility":"Public","body":"@person_email"}},{"html_id":"person_email=(person_email:String)-instance-method","name":"person_email=","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"args_string":"(person_email : String)","args_html":"(person_email : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email=","args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"visibility":"Public","body":"@person_email = person_email"}},{"html_id":"person_id:String-instance-method","name":"person_id","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id","return_type":"String","visibility":"Public","body":"@person_id"}},{"html_id":"person_id=(person_id:String)-instance-method","name":"person_id=","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"args_string":"(person_id : String)","args_html":"(person_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id=","args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"visibility":"Public","body":"@person_id = person_id"}},{"html_id":"room_id:String-instance-method","name":"room_id","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"room_id=(room_id:String)-instance-method","name":"room_id=","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id=","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"@room_id = room_id"}},{"html_id":"room_type:String-instance-method","name":"room_type","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"room_type=(room_type:String)-instance-method","name":"room_type=","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"args_string":"(room_type : String)","args_html":"(room_type : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type=","args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"visibility":"Public","body":"@room_type = room_type"}},{"html_id":"text:String-instance-method","name":"text","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}},{"html_id":"text=(text:String)-instance-method","name":"text=","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text=","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"@text = text"}},{"html_id":"to_person_email:String|Nil-instance-method","name":"to_person_email","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_email"}},{"html_id":"to_person_email=(to_person_email:String|Nil)-instance-method","name":"to_person_email=","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"args_string":"(to_person_email : String | Nil)","args_html":"(to_person_email : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email=","args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_email = to_person_email"}},{"html_id":"to_person_id:String|Nil-instance-method","name":"to_person_id","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_id"}},{"html_id":"to_person_id=(to_person_id:String|Nil)-instance-method","name":"to_person_id=","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"args_string":"(to_person_id : String | Nil)","args_html":"(to_person_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id=","args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_id = to_person_id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/Cisco/Webex/Models/Peek","path":"Cisco/Webex/Models/Peek.html","kind":"class","full_name":"Cisco::Webex::Models::Peek","name":"Peek","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/peek.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Type-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data","return_type":"Events::Type","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Type)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"args_string":"(data : Events::Type)","args_html":"(data : Events::Type)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"visibility":"Public","body":"@data = data"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Person","path":"Cisco/Webex/Models/Person.html","kind":"class","full_name":"Cisco::Webex::Models::Person","name":"Person","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/person.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Room","path":"Cisco/Webex/Models/Room.html","kind":"class","full_name":"Cisco::Webex::Models::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"creator_id:String-instance-method","name":"creator_id","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id","return_type":"String","visibility":"Public","body":"@creator_id"}},{"html_id":"creator_id=(creator_id:String)-instance-method","name":"creator_id=","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"args_string":"(creator_id : String)","args_html":"(creator_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id=","args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"visibility":"Public","body":"@creator_id = creator_id"}},{"html_id":"id:String-instance-method","name":"id","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"is_locked:Bool-instance-method","name":"is_locked","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked","return_type":"Bool","visibility":"Public","body":"@is_locked"}},{"html_id":"is_locked=(is_locked:Bool)-instance-method","name":"is_locked=","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"args_string":"(is_locked : Bool)","args_html":"(is_locked : Bool)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked=","args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"visibility":"Public","body":"@is_locked = is_locked"}},{"html_id":"last_activity:String-instance-method","name":"last_activity","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity","return_type":"String","visibility":"Public","body":"@last_activity"}},{"html_id":"last_activity=(last_activity:String)-instance-method","name":"last_activity=","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"args_string":"(last_activity : String)","args_html":"(last_activity : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity=","args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"visibility":"Public","body":"@last_activity = last_activity"}},{"html_id":"owner_id:String-instance-method","name":"owner_id","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id","return_type":"String","visibility":"Public","body":"@owner_id"}},{"html_id":"owner_id=(owner_id:String)-instance-method","name":"owner_id=","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(owner_id : String)","args_html":"(owner_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id=","args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"@owner_id = owner_id"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"team_id=(team_id:String|Nil)-instance-method","name":"team_id=","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(team_id : String | Nil)","args_html":"(team_id : String | Nil)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id=","args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@team_id = team_id"}},{"html_id":"title:String-instance-method","name":"title","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","doc":"The room type.","summary":"

The room type.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","doc":"The room type.","summary":"

The room type.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Cisco/Webex/Session","path":"Cisco/Webex/Session.html","kind":"class","full_name":"Cisco::Webex::Session","name":"Session","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/session.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(access_token:String)-class-method","name":"new","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L13"},"def":{"name":"new","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"base_url=(base_url:String)-instance-method","name":"base_url=","abstract":false,"args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"args_string":"(base_url : String)","args_html":"(base_url : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url=","args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"visibility":"Public","body":"@base_url = base_url"}},{"html_id":"delete(url:String,**kwargs):Halite::Response-instance-method","name":"delete","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L76"},"def":{"name":"delete","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"DELETE\", url, **kwargs)"}},{"html_id":"get(url:String,**kwargs):Halite::Response-instance-method","name":"get","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L61"},"def":{"name":"get","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"GET\", url, **kwargs)"}},{"html_id":"post(url:String,**kwargs):Halite::Response-instance-method","name":"post","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L66"},"def":{"name":"post","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"POST\", url, **kwargs)"}},{"html_id":"put(url:String,**kwargs):Halite::Response-instance-method","name":"put","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L71"},"def":{"name":"put","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"PUT\", url, **kwargs)"}},{"html_id":"request(method:String,url:String,**kwargs):Halite::Response-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(method : String, url : String, **kwargs) : Halite::Response","args_html":"(method : String, url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L16"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"absolute_url = ((URI.parse(base_url)).resolve(url)).to_s\n@client.headers({\"Authorization\" => [\"Bearer\", @access_token].join(\" \")})\n@client.headers({\"Content-Type\" => \"application/json;charset=utf-8\"})\n@client.timeout(single_request_timeout)\nloop do\n case method\n when \"GET\"\n response = @client.get(absolute_url, **kwargs)\n when \"POST\"\n response = @client.post(absolute_url, **kwargs)\n when \"PUT\"\n response = @client.put(absolute_url, **kwargs)\n when \"DELETE\"\n response = @client.delete(absolute_url, **kwargs)\n else\n raise(Exceptions::Method.new(\"The request-method type is invalid.\"))\n end\n begin\n status_code = StatusCode.new(response.status_code)\n if response.status_code == 429\n raise(Exceptions::RateLimit.new(status_code.message))\n end\n if !status_code.valid?\n raise(Exceptions::StatusCode.new(status_code.message))\n end\n return response\n rescue e : Exceptions::StatusCode\n Log.error(exception: e) do\n end\n rescue e : Exceptions::RateLimit\n Log.error(exception: e) do\n end\n retry_after = (response.headers[\"Retry-After\"]? || \"15\").to_i * 1000\n sleep(retry_after)\n end\nend\n"}},{"html_id":"single_request_timeout:Int32-instance-method","name":"single_request_timeout","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout","return_type":"Int32","visibility":"Public","body":"@single_request_timeout"}},{"html_id":"single_request_timeout=(single_request_timeout:Int32)-instance-method","name":"single_request_timeout=","abstract":false,"args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"args_string":"(single_request_timeout : Int32)","args_html":"(single_request_timeout : Int32)","location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout=","args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"visibility":"Public","body":"@single_request_timeout = single_request_timeout"}},{"html_id":"user_agent:String-instance-method","name":"user_agent","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent","return_type":"String","visibility":"Public","body":"@user_agent"}},{"html_id":"user_agent=(user_agent:String)-instance-method","name":"user_agent=","abstract":false,"args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"args_string":"(user_agent : String)","args_html":"(user_agent : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent=","args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"visibility":"Public","body":"@user_agent = user_agent"}},{"html_id":"wait_on_rate_limit:Bool-instance-method","name":"wait_on_rate_limit","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit","return_type":"Bool","visibility":"Public","body":"@wait_on_rate_limit"}},{"html_id":"wait_on_rate_limit=(wait_on_rate_limit:Bool)-instance-method","name":"wait_on_rate_limit=","abstract":false,"args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"args_string":"(wait_on_rate_limit : Bool)","args_html":"(wait_on_rate_limit : Bool)","location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit=","args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"visibility":"Public","body":"@wait_on_rate_limit = wait_on_rate_limit"}}]},{"html_id":"drivers/Cisco/Webex/StatusCode","path":"Cisco/Webex/StatusCode.html","kind":"class","full_name":"Cisco::Webex::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(code:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/cisco/webex/status_code.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L6"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L18"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"Constants::STATUS_CODES[@code]"}},{"html_id":"valid?:Bool-instance-method","name":"valid?","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L9"},"def":{"name":"valid?","return_type":"Bool","visibility":"Public","body":"case @code\nwhen 200, 204\n true\nelse\n false\nend"}}]},{"html_id":"drivers/Cisco/Webex/Utils","path":"Cisco/Webex/Utils.html","kind":"module","full_name":"Cisco::Webex::Utils","name":"Utils","abstract":false,"locations":[{"filename":"src/cisco/webex/utils.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"hash_from_items_with_values(**kwargs)-class-method","name":"hash_from_items_with_values","abstract":false,"location":{"filename":"src/cisco/webex/utils.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L4"},"def":{"name":"hash_from_items_with_values","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"kwargs = kwargs.map do |k, v|\n if (v != nil) && (v != \"\")\n {\"#{k}\" => v}\n end\nend\nkwargs.reject!(nil)\nkwargs = kwargs.reduce do |acc, i|\n acc.try(&.merge(i.not_nil!))\nend\nkwargs\n"}},{"html_id":"named_tuple_from_hash(hash)-class-method","name":"named_tuple_from_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":""}],"args_string":"(hash)","args_html":"(hash)","location":{"filename":"src/cisco/webex/utils.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L17"},"def":{"name":"named_tuple_from_hash","args":[{"name":"hash","external_name":"hash","restriction":""}],"visibility":"Public","body":"named_tuple = NamedTuple.new(roomId: String, text: String)\nnamed_tuple.from(hash)\n"}}]}]}]},{"html_id":"drivers/Clipsal","path":"Clipsal.html","kind":"module","full_name":"Clipsal","name":"Clipsal","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Clipsal/CBus","path":"Clipsal/CBus.html","kind":"class","full_name":"Clipsal::CBus","name":"CBus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"},{"id":"RAMP_RATES","name":"RAMP_RATES","value":"{(...2000_u32) => 0_u8, (2000_u32...6000_u32) => 1_u8, (6000_u32...10000_u32) => 2_u8, (10000_u32...15000_u32) => 3_u8, (15000_u32...25000_u32) => 4_u8, (25000_u32...35000_u32) => 5_u8, (35000_u32...50000_u32) => 6_u8, (50000_u32...75000_u32) => 7_u8, (75000_u32...105000_u32) => 8_u8, (105000_u32...150000_u32) => 9_u8, (150000_u32...240000_u32) => 10_u8, (240000_u32...360000_u32) => 11_u8, (360000_u32...510000_u32) => 12_u8, (510000_u32...720000_u32) => 13_u8, (720000_u32...960000_u32) => 14_u8, (960000_u32...) => 15_u8}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Clipsal","kind":"module","full_name":"Clipsal","name":"Clipsal"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"send(\"|||\\r\", priority: 99)\nschedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n send(\"|||\\r\", priority: 0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L35"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L116"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 56)\nself[Area.new(group.to_u32, append: \"level\")]?\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L60"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 202)\nself[Area.new(group.to_u32)]?\n"}},{"html_id":"lookup_ramp_rate(fade_time:UInt32):UInt8-instance-method","name":"lookup_ramp_rate","abstract":false,"args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(fade_time : UInt32) : UInt8","args_html":"(fade_time : UInt32) : UInt8","location":{"filename":"src/clipsal/c_bus.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L84"},"def":{"name":"lookup_ramp_rate","args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"return_type":"UInt8","visibility":"Public","body":"range = RAMP_RATES.keys.find(&.includes?(fade_time))\nrate = RAMP_RATES[range]\n((rate & 15_u8) << 3) | 2_u8\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@trigger_groups = (setting?(Array(UInt8), :trigger_groups)) || [202_u8]"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/clipsal/c_bus.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L121"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"payload = String.new(data)\nlogger.debug do\n \"CBus sent: #{payload}\"\nend\ndata = payload[1..-2].hexbytes\nif !(check_checksum(data))\n return task.try(&.abort(\"CBus checksum failed\"))\nend\nif data[0] != 5\n logger.debug do\n \"was not a Point -> MultiPoint response: type 0x#{data[0].to_s(16)}\"\n end\n return\nend\napplication = data[1]\ncommands = data[3..-2].to_a\nwhile commands.size > 0\n current = commands.shift\n case application\n when .in?(@trigger_groups)\n area = if application == 202_u8\n Area.new(commands.shift.to_u32)\n else\n Area.new(commands.shift.to_u32, channel: application.to_u32)\n end\n case current\n when 2\n self[area] = commands.shift\n when 1\n self[area] = 0\n when 121\n self[area] = 255\n when 9\n logger.debug do\n \"trigger kill request: grp 0x#{commands[0].to_s(16)}\"\n end\n else\n logger.debug do\n \"unknown trigger group request 0x#{current.to_s(16)}\"\n end\n break\n end\n when 48..95\n case current\n when 1\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 0.0\n when 121\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 100.0\n when 2\n group = commands.shift\n value = commands.shift\n area = Area.new(group.to_u32, append: \"blind\")\n if value == 255\n self[area] = :up\n else\n if value == 5\n self[area] = :stopped\n end\n end\n when 26\n group = commands.shift\n value = commands.shift\n if value == 0\n self[Area.new(group.to_u32, append: \"blind\")] = :down\n end\n when 9\n logger.debug do\n \"terminate ramp request: grp 0x#{commands[0].to_s(16)}\"\n end\n commands.shift\n else\n if ((current & 133) == 0) && commands.size > 1\n logger.debug do\n \"ramp request: grp 0x#{commands[0].to_s(16)} - level 0x#{commands[1].to_s(16)}\"\n end\n commands.shift(2)\n else\n logger.debug do\n \"unknown lighting request 0x#{current.to_s(16)}\"\n end\n break\n end\n end\n else\n logger.debug do\n \"unknown application request app 0x#{application.to_s(16)}\"\n end\n break\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L94"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 56)\nlevel = level.clamp(0.0, 100.0)\nlevel_byte = (level * LEVEL_PERCENTAGE).to_u8\ngroup = (group & 255).to_u8\nrate = lookup_ramp_rate(fade_time)\nstop_f = cmd_string(Bytes[5, 56, 0, 9, group])\ncommand = stop_f + (cmd_string(Bytes[5, application, 0, rate, group, level_byte]))\nself[\"#{area}_level\"] = level\nsend(command, name: \"level_#{application}_#{group}\")\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L50"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 202)\naction = scene & 255\ncommand = Bytes[5, application, 0, 2, group, action.to_u8]\nself[area] = action\ndo_send(command)\n"}},{"html_id":"stop_fading(group:UInt8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"args_string":"(group : UInt8)","args_html":"(group : UInt8)","location":{"filename":"src/clipsal/c_bus.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L111"},"def":{"name":"stop_fading","args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[5, 56, 0, 9, group])"}}],"types":[{"html_id":"drivers/Clipsal/CBus/Area","path":"Clipsal/CBus/Area.html","kind":"alias","full_name":"Clipsal::CBus::Area","name":"Area","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Clipsal/CBus","kind":"class","full_name":"Clipsal::CBus","name":"CBus"}}]}]},{"html_id":"drivers/Company3M","path":"Company3M.html","kind":"module","full_name":"Company3M","name":"Company3M","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Company3M/Displays","path":"Company3M/Displays.html","kind":"module","full_name":"Company3M::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Company3M","kind":"module","full_name":"Company3M","name":"Company3M"},"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay","path":"Company3M/Displays/WallDisplay.html","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Company3M/Displays","kind":"module","full_name":"Company3M::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L111"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:brightness, value)\n"}},{"html_id":"colour_temp(value:ColourTemp)-instance-method","name":"colour_temp","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"args_string":"(value : ColourTemp)","args_html":"(value : ColourTemp)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L132"},"def":{"name":"colour_temp","args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"visibility":"Public","body":"set(:colour_temp, value)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L50"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L116"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:contrast, value)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L54"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L58"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"Polling device for connectivity heartbeat\"\nend\ntarget = @power_target\nif target.nil?\nelse\n power(target, priority: 0)\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L84"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"set(:audio_mute, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@monitor_id = (setting?(MonitorID, :monitor_id)) || MonitorID::All"}},{"html_id":"power(state:Bool,**options)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool, **options)","args_html":"(state : Bool, **options)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L72"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if state != @power_target\n self[:power_target] = @power_target = state\nend\nset(:power, state, **options)\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L144"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"response = begin\n parse_response(bytes)\nrescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse 3M packet\"\n end\n return task.try(&.abort)\nend\nif response.success?\nelse\n logger.warn do\n \"Device error: #{response.inspect}\"\n end\n return task.try(&.abort)\nend\nlogger.debug do\n \"Device response received: #{response.inspect}\"\nend\nself[response.command.to_s.underscore] = response.value\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:Int32|Float64)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L121"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:sharpness, value)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L92"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"set(:input, input)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L105"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"percentage = (in_range(level)) / 100.0\nadjusted = (percentage * 30.0).round_away.to_i\nset(:volume, adjusted)\n"}}],"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay/ColourTemp","path":"Company3M/Displays/WallDisplay/ColourTemp.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ColourTemp","name":"ColourTemp","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L126"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"K9300","name":"K9300","value":"0"},{"id":"K6500","name":"K6500","value":"1"},{"id":"User","name":"User","value":"2"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"k6500?-instance-method","name":"k6500?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L128"},"def":{"name":"k6500?","visibility":"Public","body":"self == K6500"}},{"html_id":"k9300?-instance-method","name":"k9300?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L127"},"def":{"name":"k9300?","visibility":"Public","body":"self == K9300"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L129"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Command","path":"Company3M/Displays/WallDisplay/Command.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Brightness","name":"Brightness","value":"272_u16"},{"id":"Contrast","name":"Contrast","value":"274_u16"},{"id":"Sharpness","name":"Sharpness","value":"396_u16"},{"id":"ColourTemp","name":"ColourTemp","value":"596_u16"},{"id":"Volume","name":"Volume","value":"98_u16"},{"id":"AudioMute","name":"AudioMute","value":"141_u16"},{"id":"Input","name":"Input","value":"715_u16"},{"id":"Power","name":"Power","value":"3_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L191"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L186"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"colour_temp?-instance-method","name":"colour_temp?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L189"},"def":{"name":"colour_temp?","visibility":"Public","body":"self == ColourTemp"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L187"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L192"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L193"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L188"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L190"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Input","path":"Company3M/Displays/WallDisplay/Input.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"2"},{"id":"DisplayPort","name":"DisplayPort","value":"3"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L15"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L14"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageSender","path":"Company3M/Displays/WallDisplay/MessageSender.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageSender","name":"MessageSender","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L176"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PC","name":"PC","value":"48"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"pc?-instance-method","name":"pc?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L177"},"def":{"name":"pc?","visibility":"Public","body":"self == PC"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageType","path":"Company3M/Displays/WallDisplay/MessageType.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L180"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"69_u8"},{"id":"Reply","name":"Reply","value":"70_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L181"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L182"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MonitorID","path":"Company3M/Displays/WallDisplay/MonitorID.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MonitorID","name":"MonitorID","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L163"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"42_u8"},{"id":"A","name":"A","value":"65_u8"},{"id":"B","name":"B","value":"66_u8"},{"id":"C","name":"C","value":"67_u8"},{"id":"D","name":"D","value":"68_u8"},{"id":"E","name":"E","value":"69_u8"},{"id":"F","name":"F","value":"70_u8"},{"id":"G","name":"G","value":"71_u8"},{"id":"H","name":"H","value":"72_u8"},{"id":"I","name":"I","value":"73_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"a?-instance-method","name":"a?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L165"},"def":{"name":"a?","visibility":"Public","body":"self == A"}},{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L164"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"b?-instance-method","name":"b?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L166"},"def":{"name":"b?","visibility":"Public","body":"self == B"}},{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L167"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"d?-instance-method","name":"d?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L168"},"def":{"name":"d?","visibility":"Public","body":"self == D"}},{"html_id":"e?-instance-method","name":"e?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L169"},"def":{"name":"e?","visibility":"Public","body":"self == E"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L170"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"g?-instance-method","name":"g?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L171"},"def":{"name":"g?","visibility":"Public","body":"self == G"}},{"html_id":"h?-instance-method","name":"h?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L172"},"def":{"name":"h?","visibility":"Public","body":"self == H"}},{"html_id":"i?-instance-method","name":"i?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L173"},"def":{"name":"i?","visibility":"Public","body":"self == I"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/RequestPacket","path":"Company3M/Displays/WallDisplay/RequestPacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::RequestPacket","name":"RequestPacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::RequestPacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 1_u8\nend}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 48_u8\nend}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: sender, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: -> do\n (10.to_s(16)).upcase.rjust(2, '0')\nend, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: set_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 3_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L202"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"command=(command:Command)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"}],"args_string":"(command : Command)","args_html":"(command : Command)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L217"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"Command"}],"visibility":"Public","body":"code = (command.value.to_s(16)).upcase.rjust(4, '0')\nself.op_code_page = code[0..1]\nself.op_code = code[2..3]\ncommand\n"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"sender:MessageSender-instance-method","name":"sender","abstract":false,"def":{"name":"sender","return_type":"MessageSender","visibility":"Public","body":"@sender"}},{"html_id":"sender=(sender:MessageSender)-instance-method","name":"sender=","abstract":false,"args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"args_string":"(sender : MessageSender)","args_html":"(sender : MessageSender)","def":{"name":"sender=","args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"visibility":"Public","body":"@sender = sender"}},{"html_id":"set_value:String-instance-method","name":"set_value","abstract":false,"def":{"name":"set_value","return_type":"String","visibility":"Public","body":"@set_value"}},{"html_id":"set_value=(set_value:String)-instance-method","name":"set_value=","abstract":false,"args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"args_string":"(set_value : String)","args_html":"(set_value : String)","def":{"name":"set_value=","args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"visibility":"Public","body":"@set_value = set_value"}},{"html_id":"value=(val:Int32)-instance-method","name":"value=","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L224"},"def":{"name":"value=","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"self.set_value = (val.to_s(16)).upcase.rjust(4, '0')"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResponsePacket","path":"Company3M/Displays/WallDisplay/ResponsePacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::ResponsePacket","name":"ResponsePacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::ResponsePacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"enum\", name: receiver, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"enum\", name: result_code, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: ResultCode}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: reply_type, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: max_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"string\", name: current_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: bcc, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: delimiter, cls: UInt8, onlyif: nil, verify: nil, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L230"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bcc:UInt8-instance-method","name":"bcc","abstract":false,"def":{"name":"bcc","return_type":"UInt8","visibility":"Public","body":"@bcc"}},{"html_id":"bcc=(bcc:UInt8)-instance-method","name":"bcc=","abstract":false,"args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"args_string":"(bcc : UInt8)","args_html":"(bcc : UInt8)","def":{"name":"bcc=","args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"visibility":"Public","body":"@bcc = bcc"}},{"html_id":"command:Command-instance-method","name":"command","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L250"},"def":{"name":"command","return_type":"Command","visibility":"Public","body":"if (__temp_1 = @command).nil?\n @command = (Command.from_value(\"#{op_code_page}#{op_code}\".to_i(16)))\nelse\n __temp_1\nend"}},{"html_id":"current_value:String-instance-method","name":"current_value","abstract":false,"def":{"name":"current_value","return_type":"String","visibility":"Public","body":"@current_value"}},{"html_id":"current_value=(current_value:String)-instance-method","name":"current_value=","abstract":false,"args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"args_string":"(current_value : String)","args_html":"(current_value : String)","def":{"name":"current_value=","args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"visibility":"Public","body":"@current_value = current_value"}},{"html_id":"delimiter:UInt8-instance-method","name":"delimiter","abstract":false,"def":{"name":"delimiter","return_type":"UInt8","visibility":"Public","body":"@delimiter"}},{"html_id":"delimiter=(delimiter:UInt8)-instance-method","name":"delimiter=","abstract":false,"args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"args_string":"(delimiter : UInt8)","args_html":"(delimiter : UInt8)","def":{"name":"delimiter=","args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"visibility":"Public","body":"@delimiter = delimiter"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"max_value:String-instance-method","name":"max_value","abstract":false,"def":{"name":"max_value","return_type":"String","visibility":"Public","body":"@max_value"}},{"html_id":"max_value=(max_value:String)-instance-method","name":"max_value=","abstract":false,"args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"args_string":"(max_value : String)","args_html":"(max_value : String)","def":{"name":"max_value=","args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"visibility":"Public","body":"@max_value = max_value"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"receiver:MessageSender-instance-method","name":"receiver","abstract":false,"def":{"name":"receiver","return_type":"MessageSender","visibility":"Public","body":"@receiver"}},{"html_id":"receiver=(receiver:MessageSender)-instance-method","name":"receiver=","abstract":false,"args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"args_string":"(receiver : MessageSender)","args_html":"(receiver : MessageSender)","def":{"name":"receiver=","args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"visibility":"Public","body":"@receiver = receiver"}},{"html_id":"reply_type:String-instance-method","name":"reply_type","abstract":false,"def":{"name":"reply_type","return_type":"String","visibility":"Public","body":"@reply_type"}},{"html_id":"reply_type=(reply_type:String)-instance-method","name":"reply_type=","abstract":false,"args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"args_string":"(reply_type : String)","args_html":"(reply_type : String)","def":{"name":"reply_type=","args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"visibility":"Public","body":"@reply_type = reply_type"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"result_code:ResultCode-instance-method","name":"result_code","abstract":false,"def":{"name":"result_code","return_type":"ResultCode","visibility":"Public","body":"@result_code"}},{"html_id":"result_code=(result_code:ResultCode)-instance-method","name":"result_code=","abstract":false,"args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"args_string":"(result_code : ResultCode)","args_html":"(result_code : ResultCode)","def":{"name":"result_code=","args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"visibility":"Public","body":"@result_code = result_code"}},{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L254"},"def":{"name":"success?","visibility":"Public","body":"self.result_code.success?"}},{"html_id":"value-instance-method","name":"value","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L258"},"def":{"name":"value","visibility":"Public","body":"raw_val = self.current_value.to_i(16)\ncase self.command\nin .brightness?, .contrast?, .sharpness?\n raw_val\nin .volume?\n (raw_val / 30.0) * 100.0\nin .audio_mute?, .power?\n raw_val == 1\nin .colour_temp?\n ColourTemp.from_value(raw_val)\nin .input?\n Input.from_value(raw_val)\nend\n"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResultCode","path":"Company3M/Displays/WallDisplay/ResultCode.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ResultCode","name":"ResultCode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L196"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Success","name":"Success","value":"12336_u16"},{"id":"Unsupported","name":"Unsupported","value":"12337_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L197"},"def":{"name":"success?","visibility":"Public","body":"self == Success"}},{"html_id":"unsupported?-instance-method","name":"unsupported?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L198"},"def":{"name":"unsupported?","visibility":"Public","body":"self == Unsupported"}}]}]}]}]},{"html_id":"drivers/Crestron","path":"Crestron.html","kind":"module","full_name":"Crestron","name":"Crestron","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Crestron/AspectRatio","path":"Crestron/AspectRatio.html","kind":"enum","full_name":"Crestron::AspectRatio","name":"AspectRatio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MaintainAspectRatio","name":"MaintainAspectRatio","value":"0"},{"id":"StretchToFit","name":"StretchToFit","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"maintain_aspect_ratio?-instance-method","name":"maintain_aspect_ratio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L12"},"def":{"name":"maintain_aspect_ratio?","visibility":"Public","body":"self == MaintainAspectRatio"}},{"html_id":"stretch_to_fit?-instance-method","name":"stretch_to_fit?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L13"},"def":{"name":"stretch_to_fit?","visibility":"Public","body":"self == StretchToFit"}}]},{"html_id":"drivers/Crestron/CresNext","path":"Crestron/CresNext.html","kind":"class","full_name":"Crestron::CresNext","name":"CresNext","abstract":true,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/cres_next.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"}],"subclasses":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Parent module for Crestron DM NVX devices.","summary":"

Parent module for Crestron DM NVX devices.

","instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(10.minutes) do\n maintain_session\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"maintain_session-instance-method","name":"maintain_session","doc":"========================================\nHTTP for updates and session maintenance\n========================================","summary":"

======================================== HTTP for updates and session maintenance ========================================

","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L96"},"def":{"name":"maintain_session","visibility":"Public","body":"response = get(\"/Device/DeviceInfo\")\nif response.success?\nelse\n return logout\nend\nlogger.debug do\n \"Maintaining Session:\\n#{response.body}\"\nend\n"}},{"html_id":"manual_send(payload:JSON::Any)-instance-method","name":"manual_send","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(payload : JSON::Any)","args_html":"(payload : JSON::Any)","location":{"filename":"src/crestron/cres_next.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L82"},"def":{"name":"manual_send","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"data = payload.to_json\nlogger.debug do\n \"Sending: #{data}\"\nend\nsend(data, wait: false)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/cres_next.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L88"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\n"}},{"html_id":"tokenize(path:String)-instance-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/crestron/cres_next.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L33"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split('/')).reject(&.empty?)"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L15"},"def":{"name":"websocket_headers","visibility":"Public","body":"authenticate\nheaders = HTTP::Headers.new\ntransport.cookies.add_request_headers(headers)\nif @xsrf_token.empty?\nelse\n headers[\"CREST-XSRF-TOKEN\"] = @xsrf_token\nend\nheaders[\"User-Agent\"] = \"advanced-rest-client\"\nheaders\n"}}]},{"html_id":"drivers/Crestron/CresNextAuth","path":"Crestron/CresNextAuth.html","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth","abstract":false,"locations":[{"filename":"src/crestron/cres_next_auth.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/OccupancySensor","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"authenticate-instance-method","name":"authenticate","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L6"},"def":{"name":"authenticate","visibility":"Public","body":"logger.debug do\n \"Authenticating\"\nend\nuri = URI.parse(config.uri.not_nil!)\nhost = uri.host\nresponse = post(\"/userlogin.html\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Referer\" => \"https://#{host}/userlogin.html\", \"Origin\" => \"https://#{host}\"}, body: URI::Params.build do |form|\n form.add(\"login\", setting(String, :username))\n form.add(\"passwd\", setting(String, :password))\nend)\ncase response.status_code\nwhen 200, 302\n auth_cookies = [\"AuthByPasswd\", \"iv\", \"tag\", \"userid\", \"userstr\"] of ::String\n if (auth_cookies - response.cookies.to_h.keys).empty?\n @xsrf_token = response.headers[\"CREST-XSRF-TOKEN\"]? || \"\"\n logger.debug do\n \"Authenticated\"\n end\n else\n error = \"Device did not return all auth information\"\n end\nwhen 403\n error = \"Invalid credentials\"\nelse\n error = \"Unexpected response (HTTP #{response.status})\"\nend\nif error\n logger.error do\n error\n end\n raise(error)\nend\n"}},{"html_id":"logout-instance-method","name":"logout","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L43"},"def":{"name":"logout","visibility":"Public","body":"begin\n response = post(\"/logout\")\n case response.status\n when 302\n logger.debug do\n \"Logout successful\"\n end\n true\n else\n logger.warn do\n \"Unexpected response (HTTP #{response.status})\"\n end\n false\n end\nensure\n @xsrf_token = \"\"\n transport.cookies.clear\n schedule.clear\n disconnect\nend"}}]},{"html_id":"drivers/Crestron/Fusion","path":"Crestron/Fusion.html","kind":"class","full_name":"Crestron::Fusion","name":"Fusion","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/fusion.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_room(room_id:String)-instance-method","name":"delete_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L128"},"def":{"name":"delete_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"DELETE\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_action(action_id:String)-instance-method","name":"get_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"args_string":"(action_id : String)","args_html":"(action_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L61"},"def":{"name":"get_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/actions/#{action_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_actions(name:String|Nil,room_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_actions","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L51"},"def":{"name":"get_actions","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif room_id\n params[\"room\"] = room_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/actions\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_alerts(node_ids:Array(String)|Nil=nil,room_ids:Array(String)|Nil=nil,start_time:String|Nil=nil,end_time:String|Nil=nil,severity:Int32|Nil=nil,active_alerts:Bool=true)-instance-method","name":"get_alerts","doc":"Severity should be in the range 1-4","summary":"

Severity should be in the range 1-4

","abstract":false,"args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"args_string":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","args_html":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","location":{"filename":"src/crestron/fusion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L86"},"def":{"name":"get_alerts","args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"visibility":"Public","body":"params = URI::Params.new\nif node_ids\n params[\"nodes\"] = node_ids.join(',')\nend\nif room_ids\n params[\"rooms\"] = room_ids.join(',')\nend\nif start_time\n params[\"start\"] = start_time\nend\nif end_time\n params[\"end\"] = end_time\nend\nif severity\n params[\"severity\"] = severity.to_s\nend\nif active_alerts\n params[\"activeAlerts\"] = active_alerts.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_room(room_id:String)-instance-method","name":"get_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L118"},"def":{"name":"get_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_rooms(name:String|Nil,node_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_rooms","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L108"},"def":{"name":"get_rooms","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif node_id\n params[\"node\"] = node_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_value(symbol_id:String,attribute_id:String)-instance-method","name":"get_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String)","args_html":"(symbol_id : String, attribute_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L142"},"def":{"name":"get_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}/#{attribute_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_values(symbol_id:String)-instance-method","name":"get_signal_values","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"args_string":"(symbol_id : String)","args_html":"(symbol_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L137"},"def":{"name":"get_signal_values","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/fusion.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@security_level = setting(Int32, :security_level)\n@user_id = setting(String, :user_id)\n@api_pass_code = setting(String, :api_pass_code)\n@content_type = \"application/\" + (setting(String, :content_type))\n"}},{"html_id":"post_room(room_xml_or_json:String)-instance-method","name":"post_room","abstract":false,"args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_xml_or_json : String)","args_html":"(room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L103"},"def":{"name":"post_room","args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"POST\", \"/rooms\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_room(room_id:String,room_xml_or_json:String)-instance-method","name":"put_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_id : String, room_xml_or_json : String)","args_html":"(room_id : String, room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L123"},"def":{"name":"put_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"PUT\", \"/rooms/#{room_id}\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_signal_value(symbol_id:String,attribute_id:String,value:String)-instance-method","name":"put_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String, value : String)","args_html":"(symbol_id : String, attribute_id : String, value : String)","location":{"filename":"src/crestron/fusion.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L147"},"def":{"name":"put_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.new\nparams[\"value\"] = value\nresponse = perform_request(\"PUT\", \"/signalvalues/#{symbol_id}/#{attribute_id}\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"send_action(action_id:String|Nil,room_id:String|Nil=nil,node_id:String|Nil=nil)-instance-method","name":"send_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"args_string":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","args_html":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L66"},"def":{"name":"send_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif room_id\n params[\"room\"] = room_id\nend\nif node_id\n params[\"node\"] = node_id\nend\npath = if (id = action_id) && !id.empty?\n \"/actions/#{id}\"\nelse\n \"/actions\"\nend\nresponse = perform_request(\"POST\", path, params)\nJSON.parse(response.body)\n"}}]},{"html_id":"drivers/Crestron/NvxAddressManager","path":"Crestron/NvxAddressManager.html","kind":"class","full_name":"Crestron::NvxAddressManager","name":"NvxAddressManager","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_address_manager.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MULTICAST_ADDRESSES","name":"MULTICAST_ADDRESSES","value":"::IPAddress::IPv4.new(\"224.0.0.0/4\")","doc":"https://github.com/Sija/ipaddress.cr","summary":"

https://github.com/Sija/ipaddress.cr

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"addr = setting(String, :base_address)\nbase_addr = ::IPAddress::IPv4.new(addr)\n@base_address = base_addr.to_u32\nif MULTICAST_ADDRESSES.includes?(base_addr)\nelse\n logger.warn do\n \"#{addr} is not a valid multicast address\"\n end\nend\n@block_size = setting(Int32, :block_size)\n"}},{"html_id":"readdress_streams-instance-method","name":"readdress_streams","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L38"},"def":{"name":"readdress_streams","visibility":"Public","body":"logger.debug do\n \"readdressing devices\"\nend\naddress_pairs = encoders.zip(addresses)\ninteractions = address_pairs.map_with_index(1) do |__temp_230, idx|\n mod, ip_u32 = __temp_230\n ip = ::IPAddress::IPv4.parse_u32(ip_u32)\n logger.debug do\n \"setting encoder #{idx} to #{ip}\"\n end\n mod.multicast_address(ip.to_s)\nend\nfailed = 0\ninteractions.each do |request|\n begin\n request.get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"addressing NVX devices\"\n end\n end\nend\nif failed == 0\nelse\n raise(\"#{failed} failed to set stream address\")\nend\ninteractions.size\n"}}]},{"html_id":"drivers/Crestron/NvxRx","path":"Crestron/NvxRx.html","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(mode:AspectRatio)-instance-method","name":"aspect_ratio","doc":"aspect ratio defined in nvx_rx_models","summary":"

aspect ratio defined in nvx_rx_models

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"args_string":"(mode : AspectRatio)","args_html":"(mode : AspectRatio)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L100"},"def":{"name":"aspect_ratio","args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"visibility":"Public","body":"logger.debug do\n \"setting output aspect ratio mode: #{mode}\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{AspectRatioMode: mode}]}], name: :aspect_ratio)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"super()\naudio_follows_video = setting?(Bool, :audio_follows_video)\n@audio_follows_video = audio_follows_video.nil? ? true : audio_follows_video\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Receiver\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Receiver\"\nend\nquery(\"/XioSubscription/Subscriptions\") do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\nend\nschedule.every(1.hour) do\n query(\"/XioSubscription/Subscriptions\", priority: 5) do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\n end\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L85"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L81"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"switch_layer(map.keys.first, layer)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L59"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}}],"types":[{"html_id":"drivers/Crestron/NvxRx/Input","path":"Crestron/NvxRx/Input.html","kind":"alias","full_name":"Crestron::NvxRx::Input","name":"Input","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/Output","path":"Crestron/NvxRx/Output.html","kind":"alias","full_name":"Crestron::NvxRx::Output","name":"Output","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Int32","aliased_html":"Int32","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/SourceType","path":"Crestron/NvxRx/SourceType.html","kind":"enum","full_name":"Crestron::NvxRx::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L229"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L230"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Crestron/NvxScalerControl","path":"Crestron/NvxScalerControl.html","kind":"class","full_name":"Crestron::NvxScalerControl","name":"NvxScalerControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_scaler_control.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_scaler_control.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SCALE_TO_FIT_BOUNDS","name":"SCALE_TO_FIT_BOUNDS","value":"((16 / 9) * 0.95)..((16 / 9) * 1.05)","doc":"Window of aspect ratio's to detect as 16:9 - allows for +/-5% for\nslightly off-shape windows","summary":"

Window of aspect ratio's to detect as 16:9 - allows for +/-5% for slightly off-shape windows

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_scaler_control.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_scaler_control.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@links = (setting?(Hash(String, String), :link_scalers)) || ({} of String => String)"}}]},{"html_id":"drivers/Crestron/NvxTx","path":"Crestron/NvxTx.html","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L21"},"def":{"name":"connected","visibility":"Public","body":"super()\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Transmitter\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Transmitter\"\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"emulate_input_sync(state:Bool=true,idx:Int32=1)-instance-method","name":"emulate_input_sync","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"args_string":"(state : Bool = true, idx : Int32 = 1)","args_html":"(state : Bool = true, idx : Int32 = 1)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L66"},"def":{"name":"emulate_input_sync","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"self[\"input_#{idx}_sync\"] = state"}},{"html_id":"multicast_address(address:String)-instance-method","name":"multicast_address","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L61"},"def":{"name":"multicast_address","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"setting multicast address to #{address}\"\nend\nupdate(\"/StreamTransmit/Streams\", [{MulticastAddress: address}], name: :multicast_address)\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L47"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nupdate(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\nif raw_json.includes?(\"AudioVideoInputOutput\")\nelse\n return\nend\npayload = JSON.parse(raw_json)\nif av_inputs = (payload.dig?(\"Device\", \"AudioVideoInputOutput\", \"Inputs\")).try(&.as_a?)\n av_inputs.each do |input|\n name = input[\"Name\"]?.try(&.as_s) || \"\"\n idx = case name\n when /input(\\d+)/\n $~[1].to_i.succ\n when /input-(\\d+)/\n $~[1].to_i\n else\n 1\n end\n sync = (input.dig?(\"Ports\", 0, \"IsSyncDetected\")).try(&.as_bool?)\n if sync.nil?\n else\n self[\"input_#{idx}_sync\"] = sync\n end\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L37"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching to #{input}\"\nend\n(update(\"/DeviceSpecific\", {VideoSource: input, AudioSource: \"AudioFollowsVideo\"}, name: :switch)).get\nupdate_source_info\n"}}],"types":[{"html_id":"drivers/Crestron/NvxTx/Input","path":"Crestron/NvxTx/Input.html","kind":"enum","full_name":"Crestron::NvxTx::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"}],"namespace":{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]}]},{"html_id":"drivers/Crestron/OccupancySensor","path":"Crestron/OccupancySensor.html","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/occupancy_sensor.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L36"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nauthenticate\npoll_device_state\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false"}},{"html_id":"get_sensor_details-instance-method","name":"get_sensor_details","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L126"},"def":{"name":"get_sensor_details","visibility":"Public","body":"Detail.new(type: :presence, value: @occupied ? 1.0 : 0.0, last_seen: @connected ? Time.utc.to_unix : @last_update, mac: @mac, id: nil, name: @name, module_id: module_id, binding: \"presence\", status: @connected ? Status::Normal : Status::Fault)"}},{"html_id":"last_update:Int64-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L26"},"def":{"name":"last_update","return_type":"Int64","visibility":"Public","body":"@last_update"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.hour) do\n poll_device_state\nend\n"}},{"html_id":"poll_counter:UInt64-instance-method","name":"poll_counter","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L27"},"def":{"name":"poll_counter","return_type":"UInt64","visibility":"Public","body":"@poll_counter"}},{"html_id":"poll_device_state:Nil-instance-method","name":"poll_device_state","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L47"},"def":{"name":"poll_device_state","return_type":"Nil","visibility":"Public","body":"response = get(\"/Device\")\nif response.success?\nelse\n raise(\"unexpected response code: #{response.status_code}\")\nend\npayload = JSON.parse(response.body)\n@last_update = Time.utc.to_unix\nself[:occupied] = @occupied = (payload.dig(\"Device\", \"OccupancySensor\", \"IsRoomOccupied\")).as_bool\nself[:presence] = @occupied ? 1.0 : 0.0\nself[:mac] = @mac = format_mac((payload.dig(\"Device\", \"DeviceInfo\", \"MacAddress\")).as_s)\nself[:name] = @name = (payload.dig(\"Device\", \"DeviceInfo\", \"Name\")).as_s?\n@poll_counter = @poll_counter + 1\nif @long_polling\nelse\n long_poll\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L120"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif @mac == mac\nelse\n return nil\nend\nget_sensor_details\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L108"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @mac)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\n[get_sensor_details]\n"}}]},{"html_id":"drivers/Crestron/Receiver","path":"Crestron/Receiver.html","kind":"module","full_name":"Crestron::Receiver","name":"Receiver","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"}},{"html_id":"drivers/Crestron/SourceType","path":"Crestron/SourceType.html","kind":"enum","full_name":"Crestron::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L17"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L18"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Crestron/Transmitter","path":"Crestron/Transmitter.html","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Interface for enumerating devices","summary":"

Interface for enumerating devices

"},{"html_id":"drivers/Crestron/VirtualSwitcher","path":"Crestron/VirtualSwitcher.html","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_OUTPUT","name":"DUMMY_OUTPUT","value":"[] of Int32"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"available_inputs-instance-method","name":"available_inputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L112"},"def":{"name":"available_inputs","visibility":"Public","body":"encoder_name_map.keys"}},{"html_id":"available_outputs-instance-method","name":"available_outputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L116"},"def":{"name":"available_outputs","visibility":"Public","body":"decoder_name_map.keys"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"only support muting the outputs, no unmuting","summary":"

only support muting the outputs, no unmuting

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L89"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n SwitchLayer::Audio\nin MuteLayer::Video\n SwitchLayer::Video\nin MuteLayer::AudioVideo\n SwitchLayer::All\nend\nswitch({\"none\" => [index]}, switch_layer)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@audio = setting?(AudioSink, :audio_sink)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy to supress errors in routing","summary":"

dummy to supress errors in routing

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L42"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"receivers-instance-method","name":"receivers","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L58"},"def":{"name":"receivers","visibility":"Public","body":"system.implementing(Crestron::Receiver)"}},{"html_id":"switch(map:Hash(Input,Array(Output|Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L140"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.video?) || layer.audio?\nelse\n return\nend\nlogger.debug do\n \"switching #{layer}: #{map}\"\nend\nconnect(map, layer) do |mod, __temp_231|\n video, audio = __temp_231\n case layer\n in .all?\n switch_audio_to(audio)\n mod.switch_to(video)\n in .audio?\n switch_audio_to(audio)\n in .video?\n inp = case video\n in JSON::Any\n video.as_s? || video.as_i\n in String\n video\n end\n mod.switch({inp => DUMMY_OUTPUT}, layer)\n in .data?, .data2?\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L103"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"stream = get_streams(input)\nif stream\nelse\n return\nend\nswitch_audio_to(stream[1])\nreceivers.switch_to(stream[0])\n"}},{"html_id":"transmitters-instance-method","name":"transmitters","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L54"},"def":{"name":"transmitters","visibility":"Public","body":"system.implementing(Crestron::Transmitter)"}}],"types":[{"html_id":"drivers/Crestron/VirtualSwitcher/AudioSink","path":"Crestron/VirtualSwitcher/AudioSink.html","kind":"class","full_name":"Crestron::VirtualSwitcher::AudioSink","name":"AudioSink","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Crestron/VirtualSwitcher","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L31"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L30"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L29"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L32"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]}]}]},{"html_id":"drivers/Delta","path":"Delta.html","kind":"module","full_name":"Delta","name":"Delta","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L3"},{"filename":"src/delta/models/generic_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L3"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L3"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L3"},{"filename":"src/delta/models/list_sites_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L3"},{"filename":"src/delta/models/local_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L3"},{"filename":"src/delta/models/object.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L3"},{"filename":"src/delta/models/property_identifier.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L3"},{"filename":"src/delta/models/reference.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L3"},{"filename":"src/delta/models/value_property.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Delta/API","path":"Delta/API.html","kind":"class","full_name":"Delta::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_object_value(site_name:String,device_number:String|UInt32,object_type:String,instance:String|UInt32)-instance-method","name":"get_object_value","doc":"get value of property from object through instance","summary":"

get value of property from object through instance

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L103"},"def":{"name":"get_object_value","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"visibility":"Public","body":"path = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}/#{object_type},#{instance}\")\nresponse = fetch(path)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ValueProperty.from_json(response.body)\n"}},{"html_id":"list_device_objects(site_name:String,device_number:String|UInt32)-instance-method","name":"list_device_objects","doc":"list objects from device resource","summary":"

list objects from device resource

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L77"},"def":{"name":"list_device_objects","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"visibility":"Public","body":"skip = 0\nobjects = [] of Models::Object\npath = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListObjectsByDeviceNumber.from_json(response.body)\n body.json_unmapped.each do |key, obj|\n value = obj.as_h\n object_type, instance = key.split(',', 2)\n objects.push(Models::Object.new(object_type, instance, base: value[\"$base\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\nobjects\n"}},{"html_id":"list_devices(site_name:String)-instance-method","name":"list_devices","doc":"list devices for site","summary":"

list devices for site

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"args_string":"(site_name : String)","args_html":"(site_name : String)","location":{"filename":"src/delta/api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L49"},"def":{"name":"list_devices","args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"visibility":"Public","body":"skip = 0\ndevices = [] of Models::Device\npath = URI.encode_path(\"/api/.bacnet/#{site_name}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListDevicesBySiteNameResponse.from_json(response.body)\n body.json_unmapped.keys.each do |key|\n value = body.json_unmapped[key].as_h\n devices.push(Models::Device.new(id: key.to_u32, base: value[\"$base\"].to_s, node_type: value[\"nodeType\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\ndevices\n"}},{"html_id":"list_sites-instance-method","name":"list_sites","doc":"list all sites","summary":"

list all sites

","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L43"},"def":{"name":"list_sites","visibility":"Public","body":"response = Models::ListSitesResponse.from_json((fetch(\"/api/.bacnet\")).body)\nresponse.json_unmapped.keys\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":"@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n@debug = (setting?(Bool, :debug)) || false\n"}}]},{"html_id":"drivers/Delta/Models","path":"Delta/Models.html","kind":"module","full_name":"Delta::Models","name":"Models","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L4"},{"filename":"src/delta/models/generic_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L4"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L4"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L4"},{"filename":"src/delta/models/list_sites_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L4"},{"filename":"src/delta/models/local_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L4"},{"filename":"src/delta/models/object.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L4"},{"filename":"src/delta/models/property_identifier.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L4"},{"filename":"src/delta/models/reference.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L4"},{"filename":"src/delta/models/value_property.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"types":[{"html_id":"drivers/Delta/Models/Device","path":"Delta/Models/Device.html","kind":"struct","full_name":"Delta::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(id:UInt32,base:String,node_type:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(id : UInt32, base : String, node_type : String, display_name : String)","args_html":"(id : UInt32, base : String, node_type : String, display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L20"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, base, node_type, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/device.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L18"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L18"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:UInt32-instance-method","name":"id","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L9"},"def":{"name":"id","return_type":"UInt32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:UInt32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L15"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L15"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/GenericValue","path":"Delta/Models/GenericValue.html","kind":"struct","full_name":"Delta::Models::GenericValue","name":"GenericValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/generic_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/generic_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/ListDevicesBySiteNameResponse","path":"Delta/Models/ListDevicesBySiteNameResponse.html","kind":"struct","full_name":"Delta::Models::ListDevicesBySiteNameResponse","name":"ListDevicesBySiteNameResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"collection:String|Nil-instance-method","name":"collection","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection","return_type":"String | ::Nil","visibility":"Public","body":"@collection"}},{"html_id":"collection=(collection:String|Nil)-instance-method","name":"collection=","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"args_string":"(collection : String | Nil)","args_html":"(collection : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection=","args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"visibility":"Public","body":"@collection = collection"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}}]},{"html_id":"drivers/Delta/Models/ListObjectsByDeviceNumber","path":"Delta/Models/ListObjectsByDeviceNumber.html","kind":"struct","full_name":"Delta::Models::ListObjectsByDeviceNumber","name":"ListObjectsByDeviceNumber","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/ListSitesResponse","path":"Delta/Models/ListSitesResponse.html","kind":"struct","full_name":"Delta::Models::ListSitesResponse","name":"ListSitesResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_sites_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/LocalValue","path":"Delta/Models/LocalValue.html","kind":"struct","full_name":"Delta::Models::LocalValue","name":"LocalValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/local_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/local_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"real:GenericValue-instance-method","name":"real","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L12"},"def":{"name":"real","return_type":"GenericValue","visibility":"Public","body":"@real"}},{"html_id":"real=(real:GenericValue)-instance-method","name":"real=","abstract":false,"args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"args_string":"(real : GenericValue)","args_html":"(real : GenericValue)","location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L12"},"def":{"name":"real=","args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"visibility":"Public","body":"@real = real"}}]},{"html_id":"drivers/Delta/Models/Object","path":"Delta/Models/Object.html","kind":"struct","full_name":"Delta::Models::Object","name":"Object","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/object.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(object_type:String,instance:String,base:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(object_type : String, instance : String, base : String, display_name : String)","args_html":"(object_type : String, instance : String, base : String, display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L17"},"def":{"name":"new","args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object_type, instance, base, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/object.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"instance:UInt32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L9"},"def":{"name":"instance","return_type":"UInt32","visibility":"Public","body":"@instance"}},{"html_id":"instance=(instance:UInt32)-instance-method","name":"instance=","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"args_string":"(instance : UInt32)","args_html":"(instance : UInt32)","location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L9"},"def":{"name":"instance=","args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"visibility":"Public","body":"@instance = instance"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L8"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L8"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}}]},{"html_id":"drivers/Delta/Models/PropertyIdentifier","path":"Delta/Models/PropertyIdentifier.html","kind":"struct","full_name":"Delta::Models::PropertyIdentifier","name":"PropertyIdentifier","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/property_identifier.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/Reference","path":"Delta/Models/Reference.html","kind":"struct","full_name":"Delta::Models::Reference","name":"Reference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/reference.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/reference.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"device_identifier:GenericValue-instance-method","name":"device_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier","return_type":"GenericValue","visibility":"Public","body":"@device_identifier"}},{"html_id":"device_identifier=(device_identifier:GenericValue)-instance-method","name":"device_identifier=","abstract":false,"args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"args_string":"(device_identifier : GenericValue)","args_html":"(device_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier=","args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@device_identifier = device_identifier"}},{"html_id":"object_identifier:GenericValue-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier","return_type":"GenericValue","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"args_string":"(object_identifier : GenericValue)","args_html":"(object_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"property_identifier:PropertyIdentifier-instance-method","name":"property_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier","return_type":"PropertyIdentifier","visibility":"Public","body":"@property_identifier"}},{"html_id":"property_identifier=(property_identifier:PropertyIdentifier)-instance-method","name":"property_identifier=","abstract":false,"args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"args_string":"(property_identifier : PropertyIdentifier)","args_html":"(property_identifier : PropertyIdentifier)","location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier=","args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"visibility":"Public","body":"@property_identifier = property_identifier"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L12"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L12"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Delta/Models/ValueProperty","path":"Delta/Models/ValueProperty.html","kind":"struct","full_name":"Delta::Models::ValueProperty","name":"ValueProperty","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/value_property.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/value_property.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"cov_increment:GenericValue|Nil-instance-method","name":"cov_increment","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@cov_increment"}},{"html_id":"cov_increment=(cov_increment:GenericValue|Nil)-instance-method","name":"cov_increment=","abstract":false,"args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"args_string":"(cov_increment : GenericValue | Nil)","args_html":"(cov_increment : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment=","args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@cov_increment = cov_increment"}},{"html_id":"description:GenericValue|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L73"},"def":{"name":"description","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:GenericValue|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"args_string":"(description : GenericValue | Nil)","args_html":"(description : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L73"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"event_state:GenericValue|Nil-instance-method","name":"event_state","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@event_state"}},{"html_id":"event_state=(event_state:GenericValue|Nil)-instance-method","name":"event_state=","abstract":false,"args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"args_string":"(event_state : GenericValue | Nil)","args_html":"(event_state : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state=","args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@event_state = event_state"}},{"html_id":"exchange_flags:GenericValue|Nil-instance-method","name":"exchange_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_flags"}},{"html_id":"exchange_flags=(exchange_flags:GenericValue|Nil)-instance-method","name":"exchange_flags=","abstract":false,"args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_flags : GenericValue | Nil)","args_html":"(exchange_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags=","args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_flags = exchange_flags"}},{"html_id":"exchange_type:GenericValue|Nil-instance-method","name":"exchange_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_type"}},{"html_id":"exchange_type=(exchange_type:GenericValue|Nil)-instance-method","name":"exchange_type=","abstract":false,"args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_type : GenericValue | Nil)","args_html":"(exchange_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type=","args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_type = exchange_type"}},{"html_id":"last_error:GenericValue|Nil-instance-method","name":"last_error","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_error"}},{"html_id":"last_error=(last_error:GenericValue|Nil)-instance-method","name":"last_error=","abstract":false,"args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"args_string":"(last_error : GenericValue | Nil)","args_html":"(last_error : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error=","args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_error = last_error"}},{"html_id":"last_sent:GenericValue|Nil-instance-method","name":"last_sent","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_sent"}},{"html_id":"last_sent=(last_sent:GenericValue|Nil)-instance-method","name":"last_sent=","abstract":false,"args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"args_string":"(last_sent : GenericValue | Nil)","args_html":"(last_sent : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent=","args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_sent = last_sent"}},{"html_id":"local_flags:LocalValue|Nil-instance-method","name":"local_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags","return_type":"LocalValue | ::Nil","visibility":"Public","body":"@local_flags"}},{"html_id":"local_flags=(local_flags:GenericValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(local_flags : GenericValue | Nil)","args_html":"(local_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L37"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_flags=(local_flags:LocalValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"args_string":"(local_flags : LocalValue | Nil)","args_html":"(local_flags : LocalValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_ref:Reference|Nil-instance-method","name":"local_ref","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref","return_type":"Reference | ::Nil","visibility":"Public","body":"@local_ref"}},{"html_id":"local_ref=(local_ref:Reference|Nil)-instance-method","name":"local_ref=","abstract":false,"args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"args_string":"(local_ref : Reference | Nil)","args_html":"(local_ref : Reference | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref=","args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"visibility":"Public","body":"@local_ref = local_ref"}},{"html_id":"object_identifier:GenericValue|Nil-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue|Nil)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"args_string":"(object_identifier : GenericValue | Nil)","args_html":"(object_identifier : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"object_name:GenericValue|Nil-instance-method","name":"object_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_name"}},{"html_id":"object_name=(object_name:GenericValue|Nil)-instance-method","name":"object_name=","abstract":false,"args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"args_string":"(object_name : GenericValue | Nil)","args_html":"(object_name : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name=","args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_name = object_name"}},{"html_id":"object_type:GenericValue|Nil-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:GenericValue|Nil)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"args_string":"(object_type : GenericValue | Nil)","args_html":"(object_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"out_of_service:GenericValue|Nil-instance-method","name":"out_of_service","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@out_of_service"}},{"html_id":"out_of_service=(out_of_service:GenericValue|Nil)-instance-method","name":"out_of_service=","abstract":false,"args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"args_string":"(out_of_service : GenericValue | Nil)","args_html":"(out_of_service : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service=","args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@out_of_service = out_of_service"}},{"html_id":"present_value:GenericValue|Nil-instance-method","name":"present_value","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@present_value"}},{"html_id":"present_value=(present_value:GenericValue|Nil)-instance-method","name":"present_value=","abstract":false,"args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"args_string":"(present_value : GenericValue | Nil)","args_html":"(present_value : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value=","args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@present_value = present_value"}},{"html_id":"reliability:GenericValue|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:GenericValue|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"args_string":"(reliability : GenericValue | Nil)","args_html":"(reliability : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"send_frequency:GenericValue|Nil-instance-method","name":"send_frequency","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@send_frequency"}},{"html_id":"send_frequency=(send_frequency:GenericValue|Nil)-instance-method","name":"send_frequency=","abstract":false,"args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"args_string":"(send_frequency : GenericValue | Nil)","args_html":"(send_frequency : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency=","args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@send_frequency = send_frequency"}},{"html_id":"status_flags:GenericValue|Nil-instance-method","name":"status_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@status_flags"}},{"html_id":"status_flags=(status_flags:GenericValue|Nil)-instance-method","name":"status_flags=","abstract":false,"args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(status_flags : GenericValue | Nil)","args_html":"(status_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags=","args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@status_flags = status_flags"}},{"html_id":"subscribers:Hash(String,JSON::Any)|Nil-instance-method","name":"subscribers","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@subscribers"}},{"html_id":"subscribers=(subscribers:Hash(String,JSON::Any)|Nil)-instance-method","name":"subscribers=","abstract":false,"args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(subscribers : Hash(String, JSON::Any) | Nil)","args_html":"(subscribers : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers=","args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@subscribers = subscribers"}},{"html_id":"units:GenericValue|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L70"},"def":{"name":"units","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"units=(units:GenericValue|Nil)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"args_string":"(units : GenericValue | Nil)","args_html":"(units : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L70"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@units = units"}}]}]},{"html_id":"drivers/Delta/UNOnext","path":"Delta/UNOnext.html","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"NO_OBJECTS","name":"NO_OBJECTS","value":"[] of Models::Object"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{0 => SensorType::Temperature, 1 => SensorType::Humidity, 2 => SensorType::AirQuality, 4 => SensorType::PPM, 5 => SensorType::Illuminance}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Detail))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L44"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Detail))","visibility":"Public","body":"@cached_data"}},{"html_id":"manager_mappings:Array(ManMap)-instance-method","name":"manager_mappings","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L43"},"def":{"name":"manager_mappings","return_type":"Array(ManMap)","visibility":"Public","body":"@manager_mappings"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@manager_mappings = setting(Array(ManMap), :manager_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Detail)).new do |hash, key|\n hash[key] = [] of Detail\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/delta/uno_next.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L49"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"unonext-\"))\n else\n return nil\n end\n device_id = (mac.lchop(\"unonext-\")).to_u32?\n index = id.to_u32?\n if device_id && index\n else\n return nil\n end\n build_sensor_details(device_id, index)\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/delta/uno_next.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L73"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.values.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"unonext-\")\n else\n return NO_MATCH\n end\nend\nresult = if zone_id\n cached_data[zone_id]? || ([] of Detail)\nelse\n manager_mappings.flat_map do |man_map|\n cached_data[man_map.level_zone]? || ([] of Detail)\n end\nend\nif sensor_type && mac\n result.reject! do |details|\n (details.type != sensor_type) || (details.mac != mac)\n end\nelse\n if sensor_type\n result.reject! do |details|\n details.type != sensor_type\n end\n else\n if mac\n result.reject! do |details|\n details.mac != mac\n end\n end\n end\nend\nresult\n"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L42"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}}],"types":[{"html_id":"drivers/Delta/UNOnext/ManMap","path":"Delta/UNOnext/ManMap.html","kind":"struct","full_name":"Delta::UNOnext::ManMap","name":"ManMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/UNOnext","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,managers:Array(UInt32))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"args_string":"(building_zone : String, level_zone : String, managers : Array(UInt32))","args_html":"(building_zone : String, level_zone : String, managers : Array(UInt32))","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, managers)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/uno_next.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @managers.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,managers_managers=@managers)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _managers)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"managers:Array(UInt32)-instance-method","name":"managers","abstract":false,"def":{"name":"managers","return_type":"Array(UInt32)","visibility":"Public","body":"@managers"}}]}]},{"html_id":"drivers/Delta/ZenPIRLocation","path":"Delta/ZenPIRLocation.html","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Location))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L53"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Location))","visibility":"Public","body":"@cached_data"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/delta/zen_pir_location.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L68"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L73"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location.presence && (location != \"area\")\n return [] of Location\nend\n@cached_data[zone_id]? || ([] of Location)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L58"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L63"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@zen_id = setting(UInt32, :zen_id)\n@pir_mappings = setting(Array(PIRMap), :pir_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Location)).new do |hash, key|\n hash[key] = [] of Location\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"pir_mappings:Array(PIRMap)-instance-method","name":"pir_mappings","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L52"},"def":{"name":"pir_mappings","return_type":"Array(PIRMap)","visibility":"Public","body":"@pir_mappings"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L50"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}},{"html_id":"zen_id:UInt32-instance-method","name":"zen_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L51"},"def":{"name":"zen_id","return_type":"UInt32","visibility":"Public","body":"@zen_id"}}],"types":[{"html_id":"drivers/Delta/ZenPIRLocation/Location","path":"Delta/ZenPIRLocation/Location.html","kind":"struct","full_name":"Delta::ZenPIRLocation::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L83"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(level:String,map_id:String,area_id:String,capacity:Int32,at_location:Int32,zen_device_id:UInt32,zen_object_id:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"args_string":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","args_html":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L96"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, map_id, area_id, capacity, at_location, zen_device_id, zen_object_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L84"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"at_location:Int32-instance-method","name":"at_location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location","return_type":"Int32","visibility":"Public","body":"@at_location"}},{"html_id":"at_location=(at_location:Int32)-instance-method","name":"at_location=","abstract":false,"args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"args_string":"(at_location : Int32)","args_html":"(at_location : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location=","args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"visibility":"Public","body":"@at_location = at_location"}},{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(level : String)","args_html":"(level : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"@level = level"}},{"html_id":"location:Symbol-instance-method","name":"location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L86"},"def":{"name":"location","return_type":"Symbol","visibility":"Public","body":"@location"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"zen_device_id:UInt32-instance-method","name":"zen_device_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id","return_type":"UInt32","visibility":"Public","body":"@zen_device_id"}},{"html_id":"zen_device_id=(zen_device_id:UInt32)-instance-method","name":"zen_device_id=","abstract":false,"args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"args_string":"(zen_device_id : UInt32)","args_html":"(zen_device_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id=","args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_device_id = zen_device_id"}},{"html_id":"zen_object_id:UInt32-instance-method","name":"zen_object_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id","return_type":"UInt32","visibility":"Public","body":"@zen_object_id"}},{"html_id":"zen_object_id=(zen_object_id:UInt32)-instance-method","name":"zen_object_id=","abstract":false,"args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"args_string":"(zen_object_id : UInt32)","args_html":"(zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id=","args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_object_id = zen_object_id"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIR","path":"Delta/ZenPIRLocation/PIR.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIR","name":"PIR","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(pir:UInt32,map:String)-class-method","name":"new","abstract":false,"args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"args_string":"(pir : UInt32, map : String)","args_html":"(pir : UInt32, map : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"new","args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pir, map)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@pir.clone, @map.clone)"}},{"html_id":"copy_with(pir_pir=@pir,map_map=@map)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"args_string":"(pir _pir = @pir, map _map = @map)","args_html":"(pir _pir = @pir, map _map = @map)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"copy_with","args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"visibility":"Public","body":"self.class.new(_pir, _map)"}},{"html_id":"map:String-instance-method","name":"map","abstract":false,"def":{"name":"map","return_type":"String","visibility":"Public","body":"@map"}},{"html_id":"pir:UInt32-instance-method","name":"pir","abstract":false,"def":{"name":"pir","return_type":"UInt32","visibility":"Public","body":"@pir"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIRMap","path":"Delta/ZenPIRLocation/PIRMap.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIRMap","name":"PIRMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,pirs:Array(PIR))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"args_string":"(building_zone : String, level_zone : String, pirs : Array(PIR))","args_html":"(building_zone : String, level_zone : String, pirs : Array(PIR))","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, pirs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @pirs.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,pirs_pirs=@pirs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _pirs)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"pirs:Array(PIR)-instance-method","name":"pirs","abstract":false,"def":{"name":"pirs","return_type":"Array(PIR)","visibility":"Public","body":"@pirs"}}]}]}]},{"html_id":"drivers/Denon","path":"Denon.html","kind":"module","full_name":"Denon","name":"Denon","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"","summary":"","types":[{"html_id":"drivers/Denon/Amplifier","path":"Denon/Amplifier.html","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Denon","kind":"module","full_name":"Denon","name":"Denon"},"types":[{"html_id":"drivers/Denon/Amplifier/AvReceiver","path":"Denon/Amplifier/AvReceiver.html","kind":"class","full_name":"Denon::Amplifier::AvReceiver","name":"AvReceiver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power: :PW, power_query: :\"PW?\", mute: :MU, mute_query: :\"MU?\", volume: :MV, volume_query: :\"MV?\", input: :SI, input_query: :\"SI?\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"}],"namespace":{"html_id":"drivers/Denon/Amplifier","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L65"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.info do\n \"-- Polling Denon AVR\"\n end\n power?\n do_send(:input, priority: 0, name: :input)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L80"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"input(input:String=\"\")-instance-method","name":"input","doc":"Just here for documentation (there are many more)\n\nINPUTS = [:cd, :tuner, :dvd, :bd, :tv, :\"sat/cbl\", :dvr, :game, :game2, :\"v.aux\", :dock]","summary":"

Just here for documentation (there are many more)

","abstract":false,"args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"args_string":"(input : String = \"\")","args_html":"(input : String = "")","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L148"},"def":{"name":"input","args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"visibility":"Public","body":"status = input.upcase\nif status != self[:input]\n input = input.to_s.upcase\n do_send(:input, input, name: :input)\nend\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L156"},"def":{"name":"input?","visibility":"Public","body":"do_send(:input_query, priority: 0, name: :input_query)"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L104"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"req = state ? \"ON\" : \"OFF\"\nif self[:mute] == req\n return\nend\ndo_send(:mute, req, name: :mute)\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L99"},"def":{"name":"mute?","visibility":"Public","body":"self[:mute] = \"OFF\"\ndo_send(:mute_query, priority: 0, name: :mute_query)\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L110"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:volume_min] = 0\nself[:volume_max] = @volume_range.max\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L60"},"def":{"name":"on_update","visibility":"Public","body":"self[:max_waits] = 10\nself[:timeout] = 3000\n"}},{"html_id":"power(state:Bool=false)-instance-method","name":"power","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L84"},"def":{"name":"power","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state && ((self[:power] == \"OFF\") || (self[:power] == \"STANDBY\"))\n do_send(:power, \"ON\", delay: 3.milliseconds, name: :power)\nelse\n if !state && (self[:power] == \"ON\")\n do_send(:power, \"STANDBY\", delay: 3.milliseconds, name: :power)\n end\nend"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L93"},"def":{"name":"power?","visibility":"Public","body":"do_send(:power_query, priority: 0, name: :power_query)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.info do\n \"Denon sent #{data.inspect}\"\nend\nif task\nelse\n return\nend\ncmd = data[0..1]\nval = data[2..-2]\ncase cmd\nwhen \"PW\"\n self[:power] = val\nwhen \"SI\"\n self[:input] = val\nwhen \"MV\"\n vol_percent = ((val.to_f * 2) / @volume_range.end.to_f) * 100.0\n self[:volume] = vol_percent\nwhen \"MU\"\n self[:mute] = val\nelse\n return :ignore\nend\ntask.try(&.success)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L114"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L118"},"def":{"name":"unmute_audio","visibility":"Public","body":"unmute"}},{"html_id":"volume(level:Float64|Int32=0)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"args_string":"(level : Float64 | Int32 = 0)","args_html":"(level : Float64 | Int32 = 0)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L122"},"def":{"name":"volume","args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\nif self[:volume] == level\n return\nend\npercentage = level / 100.0\nvalue = (percentage * @volume_range.end.to_f).round_away.to_i\nstep = value % 2\nactual = value / 2\nreq = actual.to_s.rjust(2, '0')\nif step != 0\n req = req + \"5\"\nend\ndo_send(:volume, req, name: :volume)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L141"},"def":{"name":"volume?","visibility":"Public","body":"do_send(:volume_query, priority: 0, name: :volume_query)"}}]}]}]},{"html_id":"drivers/DigitalIO","path":"DigitalIO.html","kind":"class","full_name":"DigitalIO","name":"DigitalIO","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv_spec.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv_spec.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"ir(index:Int32,command:String)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String)","args_html":"(index : Int32, command : String)","location":{"filename":"src/global_cache/ir_tv_spec.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv_spec.cr#L6"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@called = @called + 1\nself[:call_count] = @called\nnil\n"}}]},{"html_id":"drivers/Digraph","path":"Digraph.html","kind":"alias","full_name":"Digraph","name":"Digraph","abstract":false,"locations":[{"filename":"src/place/router/digraph_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Digraph(N, E)","aliased_html":"Place::Router::Digraph(N, E)","const":false},{"html_id":"drivers/DispatchProtocol","path":"DispatchProtocol.html","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: typeof(MessageType::RECEIVED.value), onlyif: nil, verify: nil, value: nil, encoding: nil, enum_type: DispatchProtocol::MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil, endian: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend, endian: nil}, {type: \"bytes\", name: data, cls: Slice(UInt8), onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L4"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}],"types":[{"html_id":"drivers/DispatchProtocol/MessageType","path":"DispatchProtocol/MessageType.html","kind":"enum","full_name":"DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L6"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0_u8"},{"id":"CLOSED","name":"CLOSED","value":"1_u8"},{"id":"RECEIVED","name":"RECEIVED","value":"2_u8"},{"id":"WRITE","name":"WRITE","value":"3_u8"},{"id":"CLOSE","name":"CLOSE","value":"4_u8"}],"namespace":{"html_id":"drivers/DispatchProtocol","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L11"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L8"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L9"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L10"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]},{"html_id":"drivers/Echo360","path":"Echo360.html","kind":"module","full_name":"Echo360","name":"Echo360","abstract":false,"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Echo360/DeviceCapture","path":"Echo360/DeviceCapture.html","kind":"class","full_name":"Echo360::DeviceCapture","name":"DeviceCapture","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CHECK","name":"CHECK","value":"{\"next\", \"current\"}"},{"id":"STATUS_CMDS","name":"STATUS_CMDS","value":"{system_status: :system, capture_status: :captures, next: :next_capture, current: :current_capture, state: :monitoring}"}],"namespace":{"html_id":"drivers/Echo360","kind":"module","full_name":"Echo360","name":"Echo360"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"capture","doc":"This will auto-start a recording","summary":"

This will auto-start a recording

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L70"},"def":{"name":"capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/new_capture\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"capture_status-instance-method","name":"capture_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"capture_status","visibility":"Public","body":"response = get(\"/status/captures\")\nprocess_status(check(response))\n"}},{"html_id":"captures-instance-method","name":"captures","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L57"},"def":{"name":"captures","visibility":"Public","body":"response = get(\"/diagnostics/recovery/saved-content\")\nself[:captures] = (check(response))[\"captures\"][\"capture\"]\n"}},{"html_id":"current-instance-method","name":"current","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"current","visibility":"Public","body":"response = get(\"/status/current_capture\")\nprocess_status(check(response))\n"}},{"html_id":"extend(duration:Int32)-instance-method","name":"extend","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"args_string":"(duration : Int32)","args_html":"(duration : Int32)","location":{"filename":"src/echo360/device_capture.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L90"},"def":{"name":"extend","args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"duration\", duration.to_s)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"next-instance-method","name":"next","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"next","visibility":"Public","body":"response = get(\"/status/next_capture\")\nprocess_status(check(response))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(15.seconds) do\n logger.debug do\n \"-- Polling Capture\"\n end\n system_status\n capture_status\nend\n"}},{"html_id":"pause-instance-method","name":"pause","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L97"},"def":{"name":"pause","visibility":"Public","body":"response = post(\"/capture/pause\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L52"},"def":{"name":"reboot","visibility":"Public","body":"(post(\"/diagnostics/reboot\")).success?"}},{"html_id":"record-instance-method","name":"record","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L111"},"def":{"name":"record","visibility":"Public","body":"start"}},{"html_id":"restart_application-instance-method","name":"restart_application","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L47"},"def":{"name":"restart_application","visibility":"Public","body":"(post(\"/diagnostics/restart_all\")).success?"}},{"html_id":"resume-instance-method","name":"resume","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L107"},"def":{"name":"resume","visibility":"Public","body":"start"}},{"html_id":"start-instance-method","name":"start","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L102"},"def":{"name":"start","visibility":"Public","body":"response = post(\"/capture/record\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"state-instance-method","name":"state","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"state","visibility":"Public","body":"response = get(\"/status/monitoring\")\nprocess_status(check(response))\n"}},{"html_id":"stop-instance-method","name":"stop","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L115"},"def":{"name":"stop","visibility":"Public","body":"response = post(\"/capture/stop\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"system_status-instance-method","name":"system_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"system_status","visibility":"Public","body":"response = get(\"/status/system\")\nprocess_status(check(response))\n"}},{"html_id":"test_capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"test_capture","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L80"},"def":{"name":"test_capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"upload(id:String)-instance-method","name":"upload","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/echo360/device_capture.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L63"},"def":{"name":"upload","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/diagnostics/recovery/#{id}/upload\")\nif response.success?\nelse\n raise(\"upload request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}}]}]},{"html_id":"drivers/Embedia","path":"Embedia.html","kind":"module","full_name":"Embedia","name":"Embedia","abstract":false,"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Embedia/ControlPoint","path":"Embedia/ControlPoint.html","kind":"class","full_name":"Embedia::ControlPoint","name":"ControlPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{stop: 40, down: 78, up: 75, next_extent_preset: 79, previous_extent_preset: 80, close: 22, open: 26, next_tilt_preset: 7, previous_tilt_preset: 4, clear_override: 76}"}],"namespace":{"html_id":"drivers/Embedia","kind":"module","full_name":"Embedia","name":"Embedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_override(address:UInt8,**options)-instance-method","name":"clear_override","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"clear_override","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 76], **options)"}},{"html_id":"close(address:UInt8,**options)-instance-method","name":"close","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"close","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 22], **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"Maintaining connection\"\n end\n query_sensor(0)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"down(address:UInt8,**options)-instance-method","name":"down","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"down","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 78], **options)"}},{"html_id":"extent_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L54"},"def":{"name":"extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 29 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"extent_preset#{address}\")\n"}},{"html_id":"next_extent_preset(address:UInt8,**options)-instance-method","name":"next_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"next_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 79], **options)"}},{"html_id":"next_tilt_preset(address:UInt8,**options)-instance-method","name":"next_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"next_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 7], **options)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 200.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"open(address:UInt8,**options)-instance-method","name":"open","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"open","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 26], **options)"}},{"html_id":"previous_extent_preset(address:UInt8,**options)-instance-method","name":"previous_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"previous_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 80], **options)"}},{"html_id":"previous_tilt_preset(address:UInt8,**options)-instance-method","name":"previous_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"previous_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 4], **options)"}},{"html_id":"query_sensor(address:UInt8,**options)-instance-method","name":"query_sensor","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L64"},"def":{"name":"query_sensor","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 3, 0, 1, 0, 1], **options)"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/embedia/control_point.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L74"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n raw_data = (String.new(bytes)).strip\n data = raw_data[1..-3].hexbytes\n address = data[0]\n func = data[1]\n case func\n when 3\n \"sensor response #{raw_data} on address 0x#{address.to_s(16)}\"\n else\n \"sent #{raw_data} on address 0x#{address.to_s(16)}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stop(address:UInt8,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"stop","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 40], **options)"}},{"html_id":"tilt_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L59"},"def":{"name":"tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 57 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"tilt_preset#{address}\")\n"}},{"html_id":"up(address:UInt8,**options)-instance-method","name":"up","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"up","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 75], **options)"}}]}]},{"html_id":"drivers/Enumerable","path":"Enumerable.html","kind":"module","full_name":"Enumerable(T)","name":"Enumerable","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"The `Enumerable` mixin provides collection classes with several traversal, searching,\nfiltering and querying methods.\n\nIncluding types must provide an `each` method, which yields successive members\nof the collection.\n\nFor example:\n\n```\nclass Three\n include Enumerable(Int32)\n\n def each(&)\n yield 1\n yield 2\n yield 3\n end\nend\n\nthree = Three.new\nthree.to_a # => [1, 2, 3]\nthree.select &.odd? # => [1, 3]\nthree.all? { |x| x < 10 } # => true\n```\n\nNote that most search and filter methods traverse an Enumerable eagerly,\nproducing an `Array` as the result. For a lazy alternative refer to\nthe `Iterator` and `Iterable` modules.","summary":"

The Enumerable mixin provides collection classes with several traversal, searching, filtering and querying methods.

","instance_methods":[{"html_id":"flatten_xapi_json(parent_prefix:String|Nil=nil,delimiter:String=\"/\")-instance-method","name":"flatten_xapi_json","abstract":false,"args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"args_string":"(parent_prefix : String | Nil = nil, delimiter : String = \"/\")","args_html":"(parent_prefix : String | Nil = nil, delimiter : String = "/")","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L40"},"def":{"name":"flatten_xapi_json","args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"visibility":"Public","body":"res = {} of String => JSONComplex\nself.each_with_index do |elem, i|\n if elem.is_a?(Tuple)\n k, v = elem\n else\n k, v = i, elem\n if id = v.as_h?.try(&.delete(\"id\"))\n k = id\n end\n end\n key = parent_prefix ? \"#{parent_prefix}#{delimiter}#{k}\" : k.to_s\n raw = v.raw\n case raw\n in Array(JSON::Any)\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n in Hash(String, JSON::Any)\n value = raw[\"Value\"]?\n if value && value.as_h?.nil?\n valuespaceref = raw[\"valueSpaceRef\"]?.try do |__arg1|\n (__arg1.as_s.split('/')).last\n end\n res[key] = Cisco::CollaborationEndpoint::XAPI.value_convert(value.as_s, valuespaceref)\n else\n if id\n res[key] = raw.flatten_xapi_json(delimiter: delimiter)\n else\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n end\n end\n in JSONBasic\n res[key] = raw\n end\nend\nres\n"}}],"types":[{"html_id":"drivers/Enumerable/JSONBasic","path":"Enumerable/JSONBasic.html","kind":"alias","full_name":"Enumerable::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}},{"html_id":"drivers/Enumerable/JSONComplex","path":"Enumerable/JSONComplex.html","kind":"alias","full_name":"Enumerable::JSONComplex","name":"JSONComplex","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}}]},{"html_id":"drivers/Epson","path":"Epson.html","kind":"module","full_name":"Epson","name":"Epson","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Epson/Projector","path":"Epson/Projector.html","kind":"module","full_name":"Epson::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Epson","kind":"module","full_name":"Epson","name":"Epson"},"types":[{"html_id":"drivers/Epson/Projector/EscVp21","path":"Epson/Projector/EscVp21.html","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{power: \"PWR\", input: \"SOURCE\", volume: \"VOL\", av_mute: \"MUTE\", video_mute: \"MSEL\", error: \"ERR\", lamp: \"LAMP\"}"},{"id":"ERRORS","name":"ERRORS","value":"[\"00: no error\", \"01: fan error\", \"03: lamp failure at power on\", \"04: high internal temperature\", \"06: lamp error\", \"07: lamp cover door open\", \"08: cinema filter error\", \"09: capacitor is disconnected\", \"0A: auto iris error\", \"0B: subsystem error\", \"0C: low air flow error\", \"0D: air flow sensor error\", \"0E: ballast power supply error\", \"0F: shutter error\", \"10: peltiert cooling error\", \"11: pump cooling error\", \"12: static iris error\", \"13: power supply unit error\", \"14: exhaust shutter error\", \"15: obstacle detection error\", \"16: IF board discernment error\"]"},{"id":"RESPONSE","name":"RESPONSE","value":"COMMAND.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Epson/Projector","kind":"module","full_name":"Epson::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L33"},"def":{"name":"connected","visibility":"Public","body":"send(\"ESC/VP.net\\u0010\\u0003\\u0000\\u0000\\u0000\\u0000\")\nschedule.every(52.seconds, true) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L39"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L221"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 20) && @power_stable\n input?\n video_mute?\n volume?\nend\ndo_send(:lamp, priority: 20)\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L73"},"def":{"name":"input?","visibility":"Public","body":"(do_send(:input, priority: 0)).get\nself[:input]\n"}},{"html_id":"inspect_error-instance-method","name":"inspect_error","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L145"},"def":{"name":"inspect_error","visibility":"Public","body":"do_send(:error, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L98"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"case layer\nwhen .audio_video?\n do_send(:av_mute, state ? \"ON\" : \"OFF\", name: :mute)\n do_send(:av_mute, name: :\"mute?\", priority: 0)\nwhen .video?\n do_send(:video_mute, state ? \"ON\" : \"OFF\", name: :video_mute)\n video_mute?\nwhen .audio?\n val = state ? 0.0 : @unmute_volume\n volume(val)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:type] = :projector\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L43"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n @power_target = true\n logger.debug do\n \"-- epson Proj, requested to power on\"\n end\n do_send(:power, \"ON\", delay: 40.seconds, name: \"power\", priority: 99)\nelse\n @power_target = false\n logger.debug do\n \"-- epson Proj, requested to power off\"\n end\n do_send(:power, \"OFF\", delay: 10.seconds, name: \"power\", priority: 99)\nend\n@power_stable = false\nself[:power] = state\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L58"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power, **options)).get\n@power_actual || false\n"}},{"html_id":"power_actual:Bool|Nil-instance-method","name":"power_actual","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L22"},"def":{"name":"power_actual","return_type":"Bool | ::Nil","visibility":"Public","body":"@power_actual"}},{"html_id":"power_stable?:Bool-instance-method","name":"power_stable?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L23"},"def":{"name":"power_stable?","return_type":"Bool","visibility":"Public","body":"@power_stable"}},{"html_id":"power_target?:Bool-instance-method","name":"power_target?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L24"},"def":{"name":"power_target?","return_type":"Bool","visibility":"Public","body":"@power_target"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if data.size <= 2\n return task.try(&.success)\nend\ndata = String.new(data[1..-2])\nlogger.debug do\n \"epson Proj sent: #{data}\"\nend\ndata = data.split('=')\ncase RESPONSE[data[0]]\nwhen :error\n if data[1]?\n code = data[1].to_i(16)\n self[:last_error] = ERRORS[code]? || \"#{data[1]}: unknown error code #{code}\"\n return task.try(&.success(\"Epson PJ error was #{self[:last_error]}\"))\n else\n return task.try(&.abort(\"Epson PJ sent error response for #{task.not_nil!.name || \"unknown\"}\"))\n end\nwhen :power\n state = data[1].to_i\n @power_actual = powered = state < 3\n warming = state == 2\n cooling = state == 3\n if warming || cooling\n schedule.in(5.seconds) do\n power?(priority: 10)\n end\n else\n if !@power_stable\n if @power_actual == @power_target\n @power_stable = true\n else\n power(@power_target)\n end\n end\n end\n if @power_stable\n self[:power] = powered\n end\n self[:warming] = warming\n self[:cooling] = cooling\n if powered == @power_target\n if powered\n else\n self[:video_mute] = false\n end\n end\nwhen :av_mute\n self[:video_mute] = self[:audio_mute] = data[1] == \"ON\"\n self[:volume] = 0.0\nwhen :video_mute\n self[:video_mute] = data[1] == \"ON\"\nwhen :volume\n vol = data[1].to_i\n vol_percent = (vol.to_f / 255.0) * 100.0\n self[:volume] = vol_percent\n mute = vol == 0\n if mute\n self[:audio_mute] = mute\n end\n if mute\n else\n @unmute_volume || (@unmute_volume = vol_percent)\n end\nwhen :lamp\n self[:lamp_usage] = data[1].to_i\nwhen :input\n self[:input] = (Input.from_value(data[1].to_i(16))) || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L63"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- epson Proj, requested to switch to: #{input}\"\nend\ndo_send(:input, input.value.to_s(16), name: :input)\nself[:input] = input\nself[:video_mute] = false\ninput?\n"}},{"html_id":"video_mute?-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L116"},"def":{"name":"video_mute?","visibility":"Public","body":"(do_send(:video_mute, priority: 0)).get\n!!self[:video_mute]?.try(&.as_bool)\n"}},{"html_id":"volume(vol:Float64|Int32,**options)-instance-method","name":"volume","doc":"Volume commands are sent using the inpt command","summary":"

Volume commands are sent using the inpt command

","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"args_string":"(vol : Float64 | Int32, **options)","args_html":"(vol : Float64 | Int32, **options)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L79"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * 255.0).round_away.to_i\nif (mute = vol == 0.0) && self[:volume]?\n @unmute_volume = self[:volume].as_f\nend\ndo_send(:volume, vol_actual, **options, name: :volume)\nself[:volume] = vol\nself[:audio_mute] = mute\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L93"},"def":{"name":"volume?","visibility":"Public","body":"(do_send(:volume, priority: 0)).get\nself[:volume]?.try(&.as_f)\n"}}],"types":[{"html_id":"drivers/Epson/Projector/EscVp21/Input","path":"Epson/Projector/EscVp21/Input.html","kind":"enum","full_name":"Epson::Projector::EscVp21::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"48"},{"id":"HDBaseT","name":"HDBaseT","value":"128"}],"namespace":{"html_id":"drivers/Epson/Projector/EscVp21","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21"},"instance_methods":[{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L12"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L11"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}}]}]}]}]},{"html_id":"drivers/Exterity","path":"Exterity.html","kind":"module","full_name":"Exterity","name":"Exterity","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Exterity/AvediaPlayer","path":"Exterity/AvediaPlayer.html","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity","kind":"module","full_name":"Exterity","name":"Exterity"},"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R92xx","path":"Exterity/AvediaPlayer/R92xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R92xx","name":"R92xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L40"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.info do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L52"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L56"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L72"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L60"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L76"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.info do\n \"Exterity sent #{data}\"\nend\nif @ready\n if data =~ (/sh: .* not found/i)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 2.seconds, priority: 95)\n return :failure\n end\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Exterity Control Interface| Exit/i)\n logger.info do\n \"-- got the control interface message, we're READY now\"\n end\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n logger.info do\n \"-- got the login: prompt\"\n end\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\n do_send(\"6\", wait: false, delay: 2.seconds, priority: 96)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 200.milliseconds, priority: 95)\n schedule.in(20.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n else\n if logger.info do\n \"Somehow we got here #{data}\"\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L48"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L64"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L68"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}]},{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","path":"Exterity/AvediaPlayer/R93xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"},{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L39"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"channel_name(name:String)-instance-method","name":"channel_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L75"},"def":{"name":"channel_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(set(:currentChannel_name, name, name: :name)).get\ncurrent_channel_name\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"current_channel-instance-method","name":"current_channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L94"},"def":{"name":"current_channel","visibility":"Public","body":"get(:currentChannel)"}},{"html_id":"current_channel_name-instance-method","name":"current_channel_name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L98"},"def":{"name":"current_channel_name","visibility":"Public","body":"get(:currentChannel_name)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L51"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L55"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L71"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"channel_lookup = {} of String => ChannelDetail\nif channel_details = setting?(Array(ChannelDetail), :channel_details)\n self[:channel_details] = channel_details\n channel_details.each do |lookup|\n channel_lookup[lookup.channel] = lookup\n end\nelse\n self[:channel_details] = nil\nend\n@channel_lookup = channel_lookup\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L59"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L75"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Exterity sent #{data}\"\nend\nif @ready\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Terminal Control Interface/i)\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 2.seconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 2.seconds, priority: 97)\n schedule.in(5.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L47"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L63"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L67"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}],"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R93xx/ChannelDetail","path":"Exterity/AvediaPlayer/R93xx/ChannelDetail.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx::ChannelDetail","name":"ChannelDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L29"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L28"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L27"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]}]}]},{"html_id":"drivers/Extron","path":"Extron.html","kind":"module","full_name":"Extron","name":"Extron","abstract":false,"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Extron/Matrix","path":"Extron/Matrix.html","kind":"class","full_name":"Extron::Matrix","name":"Matrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/matrix.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MUTE_INPUT","name":"MUTE_INPUT","value":"0_u16"}],"included_modules":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute(state:Bool=true,group:Int32=2)-instance-method","name":"audio_mute","doc":"Sets the audio mute *state* on the specified *group*.\n\nNOTE: mute groups may differ from volume groups depending on device\nconfiguration. Default group (2) is program audio.","summary":"

Sets the audio mute state on the specified group.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"args_string":"(state : Bool = true, group : Int32 = 2)","args_html":"(state : Bool = true, group : Int32 = 2)","location":{"filename":"src/extron/matrix.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L212"},"def":{"name":"audio_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"device_state = state ? '1' : '0'\nsend(Command[\"\\eD\", group, '*', device_state, \"GRPM\\r\"], Response::GroupMute) do\n state\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n query_device_info\nend"}},{"html_id":"device_size-instance-method","name":"device_size","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L60"},"def":{"name":"device_size","visibility":"Public","body":"if (__temp_1 = @device_size).nil?\n @device_size = (begin\n empty = MatrixSize.new(0_u16, 0_u16)\n SwitcherInformation.new(empty, empty)\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nif config.role.ssh?\nelse\n @ready = false\n transport.tokenizer = nil\nend\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/extron/matrix.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L82"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"output = index.to_u16\nif output > 0\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n MatrixLayer::Aud\nin MuteLayer::Video\n MatrixLayer::Vid\nin MuteLayer::AudioVideo\n MatrixLayer::All\nend\nif state\n record_mute(output, switch_layer)\n switch_one(MUTE_INPUT, output, switch_layer)\nelse\n video_input = audio_input = MUTE_INPUT\n if switch_layer.all? || switch_layer.vid?\n video_input = (@muted_video.delete(output)) || MUTE_INPUT\n end\n if switch_layer.all? || switch_layer.aud?\n audio_input = (@muted_audio.delete(output)) || MUTE_INPUT\n end\n if audio_input > 0\n switch_one(audio_input, output, MatrixLayer::Aud)\n end\n if video_input > 0\n switch_one(video_input, output, MatrixLayer::Vid)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L29"},"def":{"name":"on_load","visibility":"Public","body":"if config.role.ssh?\n @ready = true\n transport.tokenizer = Tokenizer.new(DELIMITER)\nend\nqueue.delay = 200.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"inputs = (setting?(UInt16, :input_count)) || 8_u16\noutputs = (setting?(UInt16, :output_count)) || 1_u16\nio = MatrixSize.new(inputs, outputs)\n@device_size = SwitcherInformation.new(video: io, audio: io)\n"}},{"html_id":"query_device_info-instance-method","name":"query_device_info","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L65"},"def":{"name":"query_device_info","visibility":"Public","body":"send(Command['I'], Response::SwitcherInformation) do |info|\n video_io = MatrixSize.new(info.video.inputs, info.video.outputs)\n audio_io = MatrixSize.new(info.audio.inputs, info.audio.outputs)\n @device_size = SwitcherInformation.new(video: video_io, audio: audio_io)\n self[:video_matrix] = \"#{info.video.inputs}x#{info.video.outputs}\"\n self[:audio_matrix] = \"#{info.audio.inputs}x#{info.audio.outputs}\"\n info\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","doc":"Response callback for async responses.","summary":"

Response callback for async responses.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/matrix.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L240"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Ready #{@ready}, Received #{String.new(data)}\"\nend\nif !@ready\n payload = String.new(data)\n if payload =~ (/Copyright/i)\n if password = setting?(String, :password)\n send(\"#{password}\\r\", wait: false, priority: 99)\n end\n transport.tokenizer = Tokenizer.new(DELIMITER)\n @ready = true\n schedule.in(1.second) do\n query_device_info\n end\n end\n return\nend\ncase response = Response.parse(data, as: Response::Unsolicited)\nin Tie\n update_io(response)\nin Error, Response::ParseError\n logger.error do\n response\n end\n task.try(&.abort)\n return\nin Time\n query_device_info\nin String\n logger.info do\n response\n end\nin Nil\nend\ntask.try(&.success)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","doc":"Implementing switchable interface","summary":"

Implementing switchable interface

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/matrix.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L118"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"extron_layer = case layer\nin Nil, .all?\n MatrixLayer::All\nin .audio?\n MatrixLayer::Aud\nin .video?\n MatrixLayer::Vid\nin .data?, .data2?\n logger.debug do\n \"layer #{layer} not available on extron matrix\"\n end\n return\nend\nif (map.size == 1) && (map.first_value.size == 1)\n switch_one(map.first_key, map.first_value.first, extron_layer)\nelse\n switch_map(map, extron_layer)\nend\n"}},{"html_id":"switch_layer(input:Input,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_layer","doc":"Connect *input* to all outputs at the specified *layer*.","summary":"

Connect input to all outputs at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L154"},"def":{"name":"switch_layer","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio = {} of UInt16 => UInt16\nend\nif layer.all? || layer.aud?\n @muted_video = {} of UInt16 => UInt16\nend\nsend(Command[input, layer], Response::Switch, name: \"present-#{input}-#{layer}\", &->update_io(Switch))\n"}},{"html_id":"switch_map(map:SignalMap,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_map","doc":"Applies a `SignalMap` as a single operation. All included ties will take\nsimultaneously on the device.","summary":"

Applies a SignalMap as a single operation.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","args_html":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L162"},"def":{"name":"switch_map","args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if map.size == 1\n outp = map.first_value\n if outp.is_a?(Array)\n if outp.size == 1\n return switch_one(map.first_key, outp.first, layer)\n end\n else\n return switch_one(map.first_key, outp, layer)\n end\nend\nties = map.flat_map do |__temp_236|\n input, outputs = __temp_236\n if outputs.is_a?(Enumerable)\n outputs.each.map do |output|\n if layer.all? || layer.aud?\n @muted_audio.delete(output)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(output)\n end\n Tie.new(input, output, layer)\n end\n else\n if layer.all? || layer.aud?\n @muted_audio.delete(outputs)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(outputs)\n end\n Tie.new(input, outputs, layer)\n end\nend\nconflicts = ties - ties.uniq(&.output)\nif conflicts.empty?\nelse\n raise(ArgumentError.new(\"map contains conflicts for output(s) #{conflicts.join(\", \", &.output)}\"))\nend\nsend(Command[\"\\e+Q\", ties.map do |tie|\n [tie.input, '*', tie.output, tie.layer]\nend, '\\r'], Response::Qik) do\n ties.each(&->update_io(Tie))\nend\n"}},{"html_id":"switch_one(input:Input,output:Output,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_one","doc":"Connect a signal *input* to an *output* at the specified *layer*.\n\n`0` may be used as either an input or output to specify a disconnection at\nthe corresponding signal point. For example, to disconnect input 1 from all\noutputs is is currently feeding `switch(1, 0)`.","summary":"

Connect a signal input to an output at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L147"},"def":{"name":"switch_one","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio.delete(output)\nend\nif layer.all? || layer.vid?\n @muted_video.delete(output)\nend\nsend(Command[input, '*', output, layer], Response::Tie, name: \"switch-#{output}-#{layer}\", &->update_io(Tie))\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/extron/matrix.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L134"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}},{"html_id":"volume(level:Float64|Int32,group:Int32=1)-instance-method","name":"volume","doc":"Sets the audio volume *level* (0..100) on the specified mix *group*.","summary":"

Sets the audio volume level (0..100) on the specified mix group.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"args_string":"(level : Float64 | Int32, group : Int32 = 1)","args_html":"(level : Float64 | Int32, group : Int32 = 1)","location":{"filename":"src/extron/matrix.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L199"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\ndevice_level = (level * 10.0).round_away.to_i - 1000\nsend(Command[\"\\eD\", group, '*', device_level, \"GRPM\\r\"], Response::GroupVolume) do\n level\nend\n"}}],"types":[{"html_id":"drivers/Extron/Matrix/Outputs","path":"Extron/Matrix/Outputs.html","kind":"alias","full_name":"Extron::Matrix::Outputs","name":"Outputs","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(UInt16)","aliased_html":"Array(UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}},{"html_id":"drivers/Extron/Matrix/SignalMap","path":"Extron/Matrix/SignalMap.html","kind":"alias","full_name":"Extron::Matrix::SignalMap","name":"SignalMap","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L140"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(UInt16, Array(UInt16) | UInt16)","aliased_html":"Hash(UInt16, Array(UInt16) | UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}}]},{"html_id":"drivers/Extron/SIS","path":"Extron/SIS.html","kind":"module","full_name":"Extron::SIS","name":"SIS","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L9"},{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"SPECIAL_CHARS","name":"SPECIAL_CHARS","value":"\"+-,@=‘[]{}<>`“;:|?\".chars","doc":"Illegal characters for use in property names.","summary":"

Illegal characters for use in property names.

"},{"id":"SSH_PORT","name":"SSH_PORT","value":"22023"},{"id":"TELNET_PORT","name":"TELNET_PORT","value":"23"}],"including_types":[{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"doc":"Implementation, types and utilities for working with the Extron Simple\nInstruction Set (SIS) device control protocol.\n\nThis protocol is used for control of all Extron signal distribution,\nprocessing and general audio-visual products via SSH, telnet and serial\ncontrol.","summary":"

Implementation, types and utilities for working with the Extron Simple Instruction Set (SIS) device control protocol.

","types":[{"html_id":"drivers/Extron/SIS/Command","path":"Extron/SIS/Command.html","kind":"struct","full_name":"Extron::SIS::Command(*T)","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Structure for representing a SIS device command.\n\nCommands are composed from a set of *fields*. The contents and types of these\nare arbitrary, however they must be capable of serialising to an IO.","summary":"

Structure for representing a SIS device command.

","constructors":[{"html_id":"new(*fields:*T)-class-method","name":"new","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"args_string":"(*fields : *T)","args_html":"(*fields : *T)","location":{"filename":"src/extron/sis/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L6"},"def":{"name":"new","args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"splat_index":0,"visibility":"Public","body":"_ = Command(*T).allocate\n_.initialize(*fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_io(io:IO,format=IO::ByteFormat::SystemEndian)-instance-method","name":"to_io","doc":"Writes `self` to the passed *io*.","summary":"

Writes self to the passed io.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"args_string":"(io : IO, format = IO::ByteFormat::SystemEndian)","args_html":"(io : IO, format = IO::ByteFormat::SystemEndian)","location":{"filename":"src/extron/sis/command.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L18"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"visibility":"Public","body":"@fields.each.flatten.each do |field|\n if field.is_a?(Enum)\n io.write_byte(field.value)\n else\n io << field\n end\nend"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Serialises `self` in a format suitable for log messages.","summary":"

Serialises self in a format suitable for log messages.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/extron/sis/command.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L11"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << '‹'\nto_io(io)\nio << '›'\n"}}],"macros":[{"html_id":"[](*fields)-macro","name":"[]","doc":"Syntactical suger for `Command` definition. Provides the ability to express\ncommand fields in the same way as `Byte` objects and other similar\ncollections from the Crystal std lib.","summary":"

Syntactical suger for Command definition.

","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":""}],"args_string":"(*fields)","args_html":"(*fields)","location":{"filename":"src/extron/sis/command.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L31"},"def":{"name":"[]","args":[{"name":"fields","external_name":"fields","restriction":""}],"splat_index":0,"visibility":"Public","body":" Extron::SIS::Command.new(\n{{ *fields }}\n)\n \n"}}]},{"html_id":"drivers/Extron/SIS/Error","path":"Extron/SIS/Error.html","kind":"enum","full_name":"Extron::SIS::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"InvalidInput","name":"InvalidInput","value":"1"},{"id":"InvalidCommand","name":"InvalidCommand","value":"10"},{"id":"InvalidPresent","name":"InvalidPresent","value":"11"},{"id":"InvalidOutput","name":"InvalidOutput","value":"12"},{"id":"InvalidParameter","name":"InvalidParameter","value":"13"},{"id":"InvalidForConfig","name":"InvalidForConfig","value":"14"},{"id":"Timeout","name":"Timeout","value":"17"},{"id":"Busy","name":"Busy","value":"22"},{"id":"PrivilegesViolation","name":"PrivilegesViolation","value":"24"},{"id":"DeviceNotPresent","name":"DeviceNotPresent","value":"25"},{"id":"MaxConnectionsExceeded","name":"MaxConnectionsExceeded","value":"26"},{"id":"InvalidEventNumber","name":"InvalidEventNumber","value":"27"},{"id":"FileNotFound","name":"FileNotFound","value":"28"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Device error numbers","summary":"

Device error numbers

","instance_methods":[{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L30"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"device_not_present?-instance-method","name":"device_not_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L32"},"def":{"name":"device_not_present?","visibility":"Public","body":"self == DeviceNotPresent"}},{"html_id":"file_not_found?-instance-method","name":"file_not_found?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L35"},"def":{"name":"file_not_found?","visibility":"Public","body":"self == FileNotFound"}},{"html_id":"invalid_command?-instance-method","name":"invalid_command?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L24"},"def":{"name":"invalid_command?","visibility":"Public","body":"self == InvalidCommand"}},{"html_id":"invalid_event_number?-instance-method","name":"invalid_event_number?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L34"},"def":{"name":"invalid_event_number?","visibility":"Public","body":"self == InvalidEventNumber"}},{"html_id":"invalid_for_config?-instance-method","name":"invalid_for_config?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L28"},"def":{"name":"invalid_for_config?","visibility":"Public","body":"self == InvalidForConfig"}},{"html_id":"invalid_input?-instance-method","name":"invalid_input?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L23"},"def":{"name":"invalid_input?","visibility":"Public","body":"self == InvalidInput"}},{"html_id":"invalid_output?-instance-method","name":"invalid_output?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L26"},"def":{"name":"invalid_output?","visibility":"Public","body":"self == InvalidOutput"}},{"html_id":"invalid_parameter?-instance-method","name":"invalid_parameter?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L27"},"def":{"name":"invalid_parameter?","visibility":"Public","body":"self == InvalidParameter"}},{"html_id":"invalid_present?-instance-method","name":"invalid_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L25"},"def":{"name":"invalid_present?","visibility":"Public","body":"self == InvalidPresent"}},{"html_id":"max_connections_exceeded?-instance-method","name":"max_connections_exceeded?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L33"},"def":{"name":"max_connections_exceeded?","visibility":"Public","body":"self == MaxConnectionsExceeded"}},{"html_id":"privileges_violation?-instance-method","name":"privileges_violation?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L31"},"def":{"name":"privileges_violation?","visibility":"Public","body":"self == PrivilegesViolation"}},{"html_id":"retryable?-instance-method","name":"retryable?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L37"},"def":{"name":"retryable?","visibility":"Public","body":"timeout? || busy?"}},{"html_id":"timeout?-instance-method","name":"timeout?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L29"},"def":{"name":"timeout?","visibility":"Public","body":"self == Timeout"}}]},{"html_id":"drivers/Extron/SIS/Input","path":"Extron/SIS/Input.html","kind":"alias","full_name":"Extron::SIS::Input","name":"Input","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/MatrixLayer","path":"Extron/SIS/MatrixLayer.html","kind":"enum","full_name":"Extron::SIS::MatrixLayer","name":"MatrixLayer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L47"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"33_u8"},{"id":"Aud","name":"Aud","value":"36_u8"},{"id":"Vid","name":"Vid","value":"37_u8"},{"id":"RGB","name":"RGB","value":"38_u8"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Layers for targetting signal distribution operations.","summary":"

Layers for targetting signal distribution operations.

","instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L48"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"aud?-instance-method","name":"aud?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L49"},"def":{"name":"aud?","visibility":"Public","body":"self == Aud"}},{"html_id":"includes_audio?-instance-method","name":"includes_audio?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L57"},"def":{"name":"includes_audio?","visibility":"Public","body":"All || Aud"}},{"html_id":"includes_video?-instance-method","name":"includes_video?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L53"},"def":{"name":"includes_video?","visibility":"Public","body":"(All || Vid) || RGB"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L51"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"vid?-instance-method","name":"vid?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L50"},"def":{"name":"vid?","visibility":"Public","body":"self == Vid"}}]},{"html_id":"drivers/Extron/SIS/MatrixSize","path":"Extron/SIS/MatrixSize.html","kind":"struct","full_name":"Extron::SIS::MatrixSize","name":"MatrixSize","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a switching layer.","summary":"

IO capacity for a switching layer.

","constructors":[{"html_id":"new(inputs:Input,outputs:Output)-class-method","name":"new","abstract":false,"args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"args_string":"(inputs : Input, outputs : Output)","args_html":"(inputs : Input, outputs : Output)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"new","args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"visibility":"Public","body":"_ = allocate\n_.initialize(inputs, outputs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@inputs.clone, @outputs.clone)"}},{"html_id":"copy_with(inputs_inputs=@inputs,outputs_outputs=@outputs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"args_string":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","args_html":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"copy_with","args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"visibility":"Public","body":"self.class.new(_inputs, _outputs)"}},{"html_id":"inputs:Input-instance-method","name":"inputs","abstract":false,"def":{"name":"inputs","return_type":"Input","visibility":"Public","body":"@inputs"}},{"html_id":"outputs:Output-instance-method","name":"outputs","abstract":false,"def":{"name":"outputs","return_type":"Output","visibility":"Public","body":"@outputs"}}]},{"html_id":"drivers/Extron/SIS/Ok","path":"Extron/SIS/Ok.html","kind":"struct","full_name":"Extron::SIS::Ok","name":"Ok","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Symbolic type for representating a successfull interactions no useful data.","summary":"

Symbolic type for representating a successfull interactions no useful data.

","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"},"def":{"name":"initialize","visibility":"Public","body":""}}]},{"html_id":"drivers/Extron/SIS/Output","path":"Extron/SIS/Output.html","kind":"alias","full_name":"Extron::SIS::Output","name":"Output","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/Response","path":"Extron/SIS/Response.html","kind":"module","full_name":"Extron::SIS::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"locations":[{"filename":"src/extron/sis/response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Clock","name":"Clock","value":"Raw.map do |date|\n Time.parse_utc(date, \"%a, %d %b %Y %T\")\nend","doc":"Part of the copyright banner, but appears on a new line so will tokenize as\nas standalone message.","summary":"

Part of the copyright banner, but appears on a new line so will tokenize as as standalone message.

"},{"id":"Copyright","name":"Copyright","value":"((Parse.string(\"(c) Copyright\")) + Raw).map(&.join)","doc":"Copyright message shown on connect.","summary":"

Copyright message shown on connect.

"},{"id":"DeviceError","name":"DeviceError","value":"(Parse.char('E')) >> Parse.integer.map do |e|\n SIS::Error.new(e.to_i)\nend","doc":"Error codes returned from the device.","summary":"

Error codes returned from the device.

"},{"id":"Empty","name":"Empty","value":"(Parse.string(\"\\r\\n\")) >> (Parse.const(nil))"},{"id":"GroupMute","name":"GroupMute","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), state <= BoolField, Parse.const({state, group})})","doc":"Group audio mute update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group audio mute update / response.

"},{"id":"GroupVolume","name":"GroupVolume","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), (_) <= (Parse.char('-')), level <= (num(Int32)).map do |val|\n val * -1\nend, Parse.const({level, group})})","doc":"Group volume update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group volume update / response.

"},{"id":"MatrixSize","name":"MatrixSize","value":"Parse.do({inputs <= (num(Input)), (_) <= (Parse.char('X')), outputs <= (num(Output)), Parse.const(SIS::MatrixSize.new(inputs, outputs))})"},{"id":"Qik","name":"Qik","value":"(Parse.string(\"Qik\")) >> (Parse.const(Ok.new))","doc":"Quick response, occurs following quick tie, or switching interaction from\nthe device's front panel.","summary":"

Quick response, occurs following quick tie, or switching interaction from the device's front panel.

"},{"id":"Raw","name":"Raw","value":"(((Parse.char ^ Delimiter) * (0..)) << (Delimiter * (0..1))).map(&.join)","doc":"Parse a full command response as a String. Delimiter is optional as it may\nhave already been dropped by an upstream tokenizer.","summary":"

Parse a full command response as a String.

"},{"id":"Switch","name":"Switch","value":"Parse.do({input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Switch.new(input, layer))})","doc":"Broadcast or single output route update.","summary":"

Broadcast or single output route update.

"},{"id":"SwitcherInformation","name":"SwitcherInformation","value":"Parse.do({(_) <= (Parse.char('V')), video <= MatrixSize, (_) <= (Parse.char(' ')), (_) <= (Parse.char('A')), audio <= MatrixSize, Parse.const(SIS::SwitcherInformation.new(video, audio))})"},{"id":"Tie","name":"Tie","value":"Parse.do({output <= ((Parse.string(\"Out\")) >> (num(Output))), (_) <= (Parse.char(' ')), input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Tie.new(input, output, layer))})","doc":"Matrix signal route update.","summary":"

Matrix signal route update.

"},{"id":"Unsolicited","name":"Unsolicited","value":"(((DeviceError | Tie) | Copyright) | Clock) | Empty","doc":"Async messages that can be expected outside of a command -> response flow.","summary":"

Async messages that can be expected outside of a command -> response flow.

"}],"included_modules":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Parsers for responses and asynchronous messages originating from Extron SIS\ndevices.","summary":"

Parsers for responses and asynchronous messages originating from Extron SIS devices.

","class_methods":[{"html_id":"parse(data:String,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : String, as parser : Parser(T)) forall T","args_html":"(data : String, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L11"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"((parser | DeviceError) | \"unhandled device response\").parse(data)"}},{"html_id":"parse(data:Bytes,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : Bytes, as parser : Parser(T)) forall T","args_html":"(data : Bytes, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L16"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"parse(String.new(data), parser)"}}]},{"html_id":"drivers/Extron/SIS/Switch","path":"Extron/SIS/Switch.html","kind":"struct","full_name":"Extron::SIS::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a broadcast signal path, or single output switch.","summary":"

Struct for representing a broadcast signal path, or single output switch.

","constructors":[{"html_id":"new(input:Input,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer)","args_html":"(input : Input, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, layer _layer = @layer)","args_html":"(input _input = @input, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}}]},{"html_id":"drivers/Extron/SIS/SwitcherInformation","path":"Extron/SIS/SwitcherInformation.html","kind":"struct","full_name":"Extron::SIS::SwitcherInformation","name":"SwitcherInformation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a full device.","summary":"

IO capacity for a full device.

","constructors":[{"html_id":"new(video:MatrixSize,audio:MatrixSize)-class-method","name":"new","abstract":false,"args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"args_string":"(video : MatrixSize, audio : MatrixSize)","args_html":"(video : MatrixSize, audio : MatrixSize)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"new","args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"visibility":"Public","body":"_ = allocate\n_.initialize(video, audio)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"audio:MatrixSize-instance-method","name":"audio","abstract":false,"def":{"name":"audio","return_type":"MatrixSize","visibility":"Public","body":"@audio"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@video.clone, @audio.clone)"}},{"html_id":"copy_with(video_video=@video,audio_audio=@audio)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"args_string":"(video _video = @video, audio _audio = @audio)","args_html":"(video _video = @video, audio _audio = @audio)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"copy_with","args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"visibility":"Public","body":"self.class.new(_video, _audio)"}},{"html_id":"video:MatrixSize-instance-method","name":"video","abstract":false,"def":{"name":"video","return_type":"MatrixSize","visibility":"Public","body":"@video"}}]},{"html_id":"drivers/Extron/SIS/Tie","path":"Extron/SIS/Tie.html","kind":"struct","full_name":"Extron::SIS::Tie","name":"Tie","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a matrix signal path.","summary":"

Struct for representing a matrix signal path.

","constructors":[{"html_id":"new(input:Input,output:Output,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer)","args_html":"(input : Input, output : Output, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}},{"html_id":"output:Output-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Output","visibility":"Public","body":"@output"}}]}]},{"html_id":"drivers/Extron/UsbExtenderPlus","path":"Extron/UsbExtenderPlus.html","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus","abstract":false,"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"types":[{"html_id":"drivers/Extron/UsbExtenderPlus/Endpoint","path":"Extron/UsbExtenderPlus/Endpoint.html","kind":"class","full_name":"Extron::UsbExtenderPlus::Endpoint","name":"Endpoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"query_joins"}},{"html_id":"join(mac:String)-instance-method","name":"join","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L91"},"def":{"name":"join","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"mac = (mac.gsub(/\\-|\\:/, \"\")).downcase\nlogger.debug do\n \"joining with #{mac}\"\nend\n(send(\"2f03f4a2020000000302#{mac}\".hexbytes, delay: 600.milliseconds)).get\nquery_joins\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 300.milliseconds\nself[:joined_to] = @joined_to\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"self[:mac_address] = ((setting(String, :mac_address)).gsub(/\\-|\\:/, \"\")).downcase\nself[:ip] = config.ip\nself[:port] = config.port\nself[:location] = setting(String, :location)\nschedule.clear\nschedule.every(2.minutes) do\n logger.debug do\n \"-- polling extron USB device\"\n end\n if query_joins.success?\n if self[:connected]\n else\n set_connected_state(true)\n end\n end\nend\n"}},{"html_id":"query_joins-instance-method","name":"query_joins","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L50"},"def":{"name":"query_joins","visibility":"Public","body":"task = (send(\"2f03f4a2000000000300\".hexbytes)).get\nif !task.state.success?\n if self[:connected]\n set_connected_state(false)\n end\n logger.warn do\n \"Extron USB Device Probably Offline: #{config.ip}\\nJoin query failed.\"\n end\nend\ntask.state\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"resp = data.hexstring\nlogger.debug do\n \"Extron USB sent: #{resp}\"\nend\ncheck = resp[0..21]\nif (check == \"2f03f4a200000000030100\") || (check == \"2f03f4a200000000030101\")\n self[:is_host] = check[-1] == '0'\n macs = (resp[22..-1].scan(/.{12}/)).map(&.to_s)\n logger.debug do\n \"Extron USB joined with: #{macs}\"\n end\n self[:joined_to] = @joined_to = macs\nelse\n case resp\n when \"2f03f4a2010000000003\"\n logger.debug do\n \"Extron USB responded to UDP ping\"\n end\n when \"2f03f4a2020000000003\"\n logger.debug do\n \"join/unjoin success\"\n end\n when \"2f03f4a2020000000308\"\n logger.debug do\n \"join/unjoin might have failed..\"\n end\n else\n logger.info do\n \"Unknown response from extron: #{resp}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"unjoin(from:String|Int32)-instance-method","name":"unjoin","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"args_string":"(from : String | Int32)","args_html":"(from : String | Int32)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L74"},"def":{"name":"unjoin","args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"visibility":"Public","body":"mac = case from\nin Int32\n @joined_to[from]\nin String\n formatted = (from.gsub(/\\-|\\:/, \"\")).downcase\n if @joined_to.includes?(formatted)\n formatted\n end\nend\nif mac\n (send_unjoin(mac)).get\n query_joins\nelse\n logger.debug do\n \"not currently joined to #{from}\"\n end\nend\n"}},{"html_id":"unjoin_all-instance-method","name":"unjoin_all","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L59"},"def":{"name":"unjoin_all","visibility":"Public","body":"unjoins = [] of PlaceOS::Driver::Task\nif @joined_to.empty?\n logger.debug do\n \"nothing to unjoin from\"\n end\nend\n@joined_to.each do |mac|\n unjoins << (send_unjoin(mac))\nend\nunjoins.each(&.get)\nquery_joins\n"}}]},{"html_id":"drivers/Extron/UsbExtenderPlus/VirtualSwitcher","path":"Extron/UsbExtenderPlus/VirtualSwitcher.html","kind":"class","full_name":"Extron::UsbExtenderPlus::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_macs:Hash(String,Int32)-instance-method","name":"device_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L26"},"def":{"name":"device_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @device_macs).nil?\n @device_macs = (begin\n hash = {} of String => Int32\n devices.each_with_index do |device, index|\n hash[device.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"host_macs:Hash(String,Int32)-instance-method","name":"host_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L18"},"def":{"name":"host_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @host_macs).nil?\n @host_macs = (begin\n hash = {} of String => Int32\n hosts.each_with_index do |host, index|\n hash[host.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","doc":"lazily obtain host and device mac addresses","summary":"

lazily obtain host and device mac addresses

","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@host_macs = nil\n@device_macs = nil\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L54"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.data?) || layer.data2?\nelse\n return\nend\nmap.each do |host_idx, device_idxs|\n if host_idx == 0\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to 0\"\n end\n next\n end\n perform_unjoin(device)\n end\n next\n end\n host = hosts[host_idx - 1]?\n if host\n else\n logger.warn do\n \"host not found in switch USB_Host_#{host_idx} => #{device_idxs}\"\n end\n next\n end\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to USB_Host_#{host_idx}\"\n end\n next\n end\n perform_join(host, device)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"0 == unjoin, input is the host index","summary":"

0 == unjoin, input is the host index

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input == 0\n unjoin_all\nelse\n host = hosts[input - 1]\n host_mac = host.status(String, :mac_address)\n unjoin_all_devices\n unjoin_all_hosts\n devices.each do |device|\n perform_join(host, device)\n end\nend"}}]}]}]},{"html_id":"drivers/Floorsense","path":"Floorsense.html","kind":"module","full_name":"Floorsense","name":"Floorsense","abstract":false,"locations":[{"filename":"src/floorsense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Floorsense Data Models","summary":"

Floorsense Data Models

","types":[{"html_id":"drivers/Floorsense/AuthInfo","path":"Floorsense/AuthInfo.html","kind":"class","full_name":"Floorsense::AuthInfo","name":"AuthInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"sessionid:String-instance-method","name":"sessionid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L73"},"def":{"name":"sessionid","return_type":"String","visibility":"Public","body":"@sessionid"}},{"html_id":"sessionid=(sessionid:String)-instance-method","name":"sessionid=","abstract":false,"args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"args_string":"(sessionid : String)","args_html":"(sessionid : String)","location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L73"},"def":{"name":"sessionid=","args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"visibility":"Public","body":"@sessionid = sessionid"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L72"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L72"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/Floorsense/Booking","path":"Floorsense/Booking.html","kind":"class","full_name":"Floorsense::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L286"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L286"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L312"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L312"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L298"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L295"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String|Nil-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String|Nil)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"args_string":"(booked_by_email : String | Nil)","args_html":"(booked_by_email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_name:String|Nil-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String|Nil)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"args_string":"(booked_by_name : String | Nil)","args_html":"(booked_by_name : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L291"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L291"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L290"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L290"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L289"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L289"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L310"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L310"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"checked_in?-instance-method","name":"checked_in?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L345"},"def":{"name":"checked_in?","visibility":"Public","body":"!checked_in.nil? && checked_in.not_nil!"}},{"html_id":"checked_in_at:Int64|Nil-instance-method","name":"checked_in_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_in_at"}},{"html_id":"checked_in_at=(checked_in_at:Int64|Nil)-instance-method","name":"checked_in_at=","abstract":false,"args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_in_at : Int64 | Nil)","args_html":"(checked_in_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at=","args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_in_at = checked_in_at"}},{"html_id":"checked_out?-instance-method","name":"checked_out?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L341"},"def":{"name":"checked_out?","visibility":"Public","body":"!checked_out_at.nil?"}},{"html_id":"checked_out_at:Int64|Nil-instance-method","name":"checked_out_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_out_at"}},{"html_id":"checked_out_at=(checked_out_at:Int64|Nil)-instance-method","name":"checked_out_at=","abstract":false,"args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_out_at : Int64 | Nil)","args_html":"(checked_out_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at=","args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_out_at = checked_out_at"}},{"html_id":"deleted:Bool|Nil-instance-method","name":"deleted","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L305"},"def":{"name":"deleted","return_type":"Bool | ::Nil","visibility":"Public","body":"@deleted"}},{"html_id":"deleted=(deleted:Bool|Nil)-instance-method","name":"deleted=","abstract":false,"args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"args_string":"(deleted : Bool | Nil)","args_html":"(deleted : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L305"},"def":{"name":"deleted=","args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@deleted = deleted"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L349"},"def":{"name":"deleted?","visibility":"Public","body":"action == \"cancelled\""}},{"html_id":"deleted_at:Int64|Nil-instance-method","name":"deleted_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@deleted_at"}},{"html_id":"deleted_at=(deleted_at:Int64|Nil)-instance-method","name":"deleted_at=","abstract":false,"args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"args_string":"(deleted_at : Int64 | Nil)","args_html":"(deleted_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at=","args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@deleted_at = deleted_at"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L321"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L321"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"floor_id:String|Nil-instance-method","name":"floor_id","abstract":false,"def":{"name":"floor_id","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @floor_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::Booking#floor_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_id=(floor_id:String|Nil)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"args_string":"(floor_id : String | Nil)","args_html":"(floor_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L324"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_id?:String|Nil|Nil-instance-method","name":"floor_id?","abstract":false,"def":{"name":"floor_id?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floorsense_booking_id:String|Nil-instance-method","name":"floorsense_booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L331"},"def":{"name":"floorsense_booking_id","return_type":"String | ::Nil","visibility":"Public","body":"ext_data = extension_data\nif ext_data\nelse\n return\nend\next_data[\"floorsense_booking_id\"]?.try(&.as_s)\n"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L288"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L288"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L326"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"is_deleted?-instance-method","name":"is_deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L353"},"def":{"name":"is_deleted?","visibility":"Public","body":"!!deleted && !deleted_at.nil?"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L314"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L314"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L313"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L313"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L311"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L311"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L337"},"def":{"name":"released?","visibility":"Public","body":"checked_out? || booking_end <= Time.local.to_unix"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L296"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L296"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L292"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L292"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L303"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L303"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L302"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L302"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L304"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L304"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L308"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L308"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Floorsense/BookingsSync","path":"Floorsense/BookingsSync.html","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_floorsense_log:Nil-instance-method","name":"check_floorsense_log","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L198"},"def":{"name":"check_floorsense_log","return_type":"Nil","visibility":"Public","body":"last_event_id = @last_event_id\nif last_event_id.nil?\n recent = (floorsense.event_log({49, 50, 53})).get.as_a\n if !recent.empty?\n last = recent.last\n @last_event_id = last[\"eventid\"].as_i64\n @last_event_at = last[\"eventtime\"].as_i64\n end\n return\nend\nevents = Array(LogEntry).from_json(floorsense.event_log(codes: {49, 50, 53}, after: @last_event_at, limit: 500).get.to_json)\nevents.reject! do |event|\n event.eventid <= last_event_id\nend\nif events.empty?\n return\nend\nlogger.debug do\n \"parsing floorsense event log, #{events.size} new events\"\nend\n@last_event_id = events.last.eventid\nevents.each do |event|\n begin\n booking = BookingStatus.from_json((floorsense.get_booking(event.bkid)).get.to_json)\n floor_details = @floor_mappings[booking.planid.to_s]?\n if floor_details\n else\n next\n end\n booking_key = booking.key\n if booking_key\n else\n next\n end\n case event.code\n when 49\n if booking.booking_type != \"adhoc\"\n next\n end\n user_email = booking.user.not_nil!.email.try(&.downcase)\n if user_email.nil?\n logger.warn do\n \"no user email defined for floorsense user #{booking.user.not_nil!.name}\"\n end\n next\n end\n user = (staff_api.user(user_email)).get\n user_id = user[\"id\"]\n user_name = user[\"name\"]\n logger.debug do\n \"new floorsense booking found #{booking}\"\n end\n staff_api.create_booking(booking_start: booking.start, booking_end: booking.finish, time_zone: @time_zone.to_s, booking_type: @booking_type, asset_id: to_place_asset_id(booking_key), user_id: user_id, user_email: user_email, user_name: user_name, zones: [floor_details[:building_id]?, floor_details[:level_id]].compact, checked_in: true, extension_data: {floorsense_id: event.bkid}).get\n when 50\n if booking.released >= booking.finish || booking.released <= booking.start\n next\n end\n if place_booking = get_place_booking(booking, floor_details)\n staff_api.update_booking(booking_id: place_booking.id, booking_end: booking.released).get\n else\n logger.warn do\n \"no booking found for released booking #{booking.booking_id}\"\n end\n end\n when 51\n when 52\n when 53\n begin\n if desc = booking.desc\n place_booking = Booking.from_json((staff_api.get_booking(desc.to_i64)).get.to_json)\n staff_api.booking_check_in(place_booking.id, booking.confirmed)\n end\n rescue ArgumentError\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"while processing #{event.eventid}\\n#{event.inspect}\"\n end\n end\nend\n"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":599,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L599"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(placeos_user_id:String):String-instance-method","name":"get_floorsense_user","doc":"===================================\nSync Users\n===================================","summary":"

=================================== Sync Users ===================================

","abstract":false,"args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"args_string":"(placeos_user_id : String) : String","args_html":"(placeos_user_id : String) : String","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":550,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L550"},"def":{"name":"get_floorsense_user","args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"users = floorsense.user_list(description: placeos_user_id).get.as_a\nuser_id = users.first?.try() do |__arg5|\n __arg5[\"uid\"].as_s\nend\ncard_number = nil\nbegin\n place_user = (staff_api.user(placeos_user_id)).get\n name = place_user[\"name\"].as_s\n email = place_user[\"email\"].as_s\n card_number = place_user[\"card_number\"]?.try(&.as_s)\n user_id || (user_id = (floorsense.create_user(name, email, placeos_user_id)).get[\"uid\"].as_s)\nrescue error\n if user_id\n return user_id\n else\n raise(error)\n end\nend\nif (user_id && card_number) && !card_number.empty?\n ensure_card_synced(card_number, user_id)\nend\nuser_id.not_nil!\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L51"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking_changed(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L59"},"def":{"name":"on_update","visibility":"Public","body":"@key_prefix = (setting?(String, :key_prefix)) || \"\"\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@strip_leading_zero = (setting?(Bool, :strip_leading_zero)) || false\n@zero_padding_size = (setting?(Int32, :zero_padding_size)) || 7\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.in(@poll_rate / 2) do\n schedule.every(@poll_rate * 10) do\n sync_bookings\n end\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L616"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L345"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L349"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"@sync_lock.synchronize do\n do_sync_floor(zone)\nend"}},{"html_id":"to_floor_key(asset_id:String)-instance-method","name":"to_floor_key","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L98"},"def":{"name":"to_floor_key","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"if @key_prefix.presence\n asset_id = asset_id.lstrip(@key_prefix)\nend\nif @strip_leading_zero\n asset_id = asset_id.rjust(@zero_padding_size, '0')\nend\nasset_id\n"}},{"html_id":"to_place_asset_id(key:String)-instance-method","name":"to_place_asset_id","doc":"===================================\nDesk ID manipulation\n===================================","summary":"

=================================== Desk ID manipulation ===================================

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L93"},"def":{"name":"to_place_asset_id","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"if @strip_leading_zero\n key = key.lstrip('0')\nend\n\"#{@key_prefix}#{key}\"\n"}}],"types":[{"html_id":"drivers/Floorsense/BookingsSync/Booking","path":"Floorsense/BookingsSync/Booking.html","kind":"class","full_name":"Floorsense::BookingsSync::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense/BookingsSync","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L631"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L646"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":643,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L643"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":661,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L661"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]}]},{"html_id":"drivers/Floorsense/BookingStatus","path":"Floorsense/BookingStatus.html","kind":"class","full_name":"Floorsense::BookingStatus","name":"BookingStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L243"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L244"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L271"},"def":{"name":"active","return_type":"Bool","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool"}],"args_string":"(active : Bool)","args_html":"(active : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L271"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool"}],"visibility":"Public","body":"@active = active"}},{"html_id":"booking_id:String-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L253"},"def":{"name":"booking_id","return_type":"String","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:String)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L253"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L250"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L250"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L264"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L264"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confexpiry:Int64|Nil-instance-method","name":"confexpiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@confexpiry"}},{"html_id":"confexpiry=(confexpiry:Int64|Nil)-instance-method","name":"confexpiry=","abstract":false,"args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"args_string":"(confexpiry : Int64 | Nil)","args_html":"(confexpiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry=","args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@confexpiry = confexpiry"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L272"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L272"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"confmethod:Int32|Nil-instance-method","name":"confmethod","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L261"},"def":{"name":"confmethod","return_type":"Int32 | ::Nil","visibility":"Public","body":"@confmethod"}},{"html_id":"confmethod=(confmethod:Int32|Nil)-instance-method","name":"confmethod=","abstract":false,"args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"args_string":"(confmethod : Int32 | Nil)","args_html":"(confmethod : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L261"},"def":{"name":"confmethod=","args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@confmethod = confmethod"}},{"html_id":"conftime:Int64|Nil-instance-method","name":"conftime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L260"},"def":{"name":"conftime","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conftime"}},{"html_id":"conftime=(conftime:Int64|Nil)-instance-method","name":"conftime=","abstract":false,"args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"args_string":"(conftime : Int64 | Nil)","args_html":"(conftime : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L260"},"def":{"name":"conftime=","args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conftime = conftime"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L256"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L256"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L255"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L255"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L258"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L258"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L266"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L266"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L246"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L246"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @place_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::BookingStatus#place_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L279"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"place_id?:String|Nil-instance-method","name":"place_id?","abstract":false,"def":{"name":"place_id?","return_type":"String | ::Nil","visibility":"Public","body":"@place_id"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L265"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L265"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L273"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L273"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L270"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L270"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L269"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L269"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L257"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L257"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L247"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L247"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L276"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L276"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/Floorsense/ControllerInfo","path":"Floorsense/ControllerInfo.html","kind":"class","full_name":"Floorsense::ControllerInfo","name":"ControllerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L409"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L409"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"desks:Bool-instance-method","name":"desks","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L413"},"def":{"name":"desks","return_type":"Bool","visibility":"Public","body":"@desks"}},{"html_id":"desks=(desks:Bool)-instance-method","name":"desks=","abstract":false,"args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"args_string":"(desks : Bool)","args_html":"(desks : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L413"},"def":{"name":"desks=","args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"visibility":"Public","body":"@desks = desks"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L415"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L415"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location1:String-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L417"},"def":{"name":"location1","return_type":"String","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String"}],"args_string":"(location1 : String)","args_html":"(location1 : String)","location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L417"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L418"},"def":{"name":"location2","return_type":"String","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String"}],"args_string":"(location2 : String)","args_html":"(location2 : String)","location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L418"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L419"},"def":{"name":"location3","return_type":"String","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String"}],"args_string":"(location3 : String)","args_html":"(location3 : String)","location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L419"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"location4:String-instance-method","name":"location4","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L420"},"def":{"name":"location4","return_type":"String","visibility":"Public","body":"@location4"}},{"html_id":"location4=(location4:String)-instance-method","name":"location4=","abstract":false,"args":[{"name":"location4","external_name":"location4","restriction":"String"}],"args_string":"(location4 : String)","args_html":"(location4 : String)","location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L420"},"def":{"name":"location4=","args":[{"name":"location4","external_name":"location4","restriction":"String"}],"visibility":"Public","body":"@location4 = location4"}},{"html_id":"locations-instance-method","name":"locations","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L424"},"def":{"name":"locations","visibility":"Public","body":"{location1, location2, location3, location4}"}},{"html_id":"lockers:Bool-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L412"},"def":{"name":"lockers","return_type":"Bool","visibility":"Public","body":"@lockers"}},{"html_id":"lockers=(lockers:Bool)-instance-method","name":"lockers=","abstract":false,"args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"args_string":"(lockers : Bool)","args_html":"(lockers : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L412"},"def":{"name":"lockers=","args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"visibility":"Public","body":"@lockers = lockers"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L422"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"mode=(mode:String)-instance-method","name":"mode=","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L422"},"def":{"name":"mode=","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"@mode = mode"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L416"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L416"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"online:Bool-instance-method","name":"online","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L411"},"def":{"name":"online","return_type":"Bool","visibility":"Public","body":"@online"}},{"html_id":"online=(online:Bool)-instance-method","name":"online=","abstract":false,"args":[{"name":"online","external_name":"online","restriction":"Bool"}],"args_string":"(online : Bool)","args_html":"(online : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L411"},"def":{"name":"online=","args":[{"name":"online","external_name":"online","restriction":"Bool"}],"visibility":"Public","body":"@online = online"}}]},{"html_id":"drivers/Floorsense/CustomBookingsSync","path":"Floorsense/CustomBookingsSync.html","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","name":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"floorsense\""},{"id":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","name":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"smartalock\""}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L689"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"if foor_id = (locations.eui64_to_desk_id(id.downcase)).get.raw\n floor_desk_id = foor_id.as(String)\n place_id = floor_desk_id\n level_id = nil\n building = nil\n @desk_mapping_cache.each do |level, lookup|\n if meta = lookup[floor_desk_id]?\n level_id = level\n place_id = meta.place_id || floor_desk_id\n building = meta.building\n break\n end\n end\n if level_id\n {level: level_id, desk_id: place_id, building_id: building}\n end\nelse\n logger.warn do\n \"No desk found for #{id}\"\n end\nend"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L249"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n current.concat(bookings)\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L651"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nif @user_lookup == \"email\"\n placeos_staff_id = placeos_staff_id.downcase\n floorsense_users = floorsense.user_list(email: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg7|\n __arg7[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nelse\n floorsense_users = floorsense.user_list(description: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg8|\n __arg8[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L78"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n if (@zone_mappings.keys & (Booking.from_json(payload)).zones).empty?\n else\n booking_changed(Booking.from_json(payload))\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_lookup_key = (setting?(String, :floorsense_lookup_key)).presence || \"floorsensedeskid\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n@meta_ext_static = (setting?(Hash(String, String), :meta_ext_static)) || ({} of String => String)\ntime_zone = (setting?(String, :time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.every(@poll_rate * 10) do\n sync_bookings\nend\nschedule.in(1.seconds) do\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L266"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}, include_checked_out: true).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,building_id:String|Nil)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, building_id : String | Nil)","args_html":"(zone_id : String, building_id : String | Nil)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":927,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L927"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"desk_lookup = {} of String => DeskMeta\nbegin\n metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\n lookup_key = @floorsense_lookup_key\n metadata.each do |desk|\n desk = desk.as_h\n place_id = desk[\"id\"]?.try() do |__arg11|\n __arg11.as_s.presence\n end\n if place_id\n else\n next\n end\n floor_id = desk[lookup_key]?.try() do |__arg12|\n __arg12.as_s.presence\n end\n if floor_id\n else\n next\n end\n ext_data = {\"floorsense_id\" => JSON::Any.new(floor_id)}\n title = desk[\"name\"]?.try(&.as_s) || place_id\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk[meta_key]?\n ext_data[ext_key] = value\n end\n end\n @meta_ext_static.each do |key, value|\n ext_data[key] = JSON::Any.new(value)\n end\n ids = DeskMeta.new(place_id, floor_id, building_id, title, ext_data)\n desk_lookup[place_id] = ids\n desk_lookup[floor_id] = ids\n end\n desk_lookup\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain desk metadata for #{zone_id}\"\n end\n desk_lookup\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L193"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_busy:Hash(String,Bool)-instance-method","name":"sync_busy","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L197"},"def":{"name":"sync_busy","return_type":"Hash(String, Bool)","visibility":"Public","body":"@sync_busy"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L201"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"__temp_247 = zone\n@sync_queue[__temp_247] = @sync_queue[__temp_247] + 1\nif !@sync_busy[zone]\n spawn do\n queue_sync_floor(zone)\n end\n Fiber.yield\n :syncing\nelse\n :queued\nend\n"}},{"html_id":"sync_queue:Hash(String,Int32)-instance-method","name":"sync_queue","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L198"},"def":{"name":"sync_queue","return_type":"Hash(String, Int32)","visibility":"Public","body":"@sync_queue"}},{"html_id":"sync_times:Hash(String,Array(Float64))-instance-method","name":"sync_times","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L199"},"def":{"name":"sync_times","return_type":"Hash(String, Array(Float64))","visibility":"Public","body":"@sync_times"}}],"types":[{"html_id":"drivers/Floorsense/CustomBookingsSync/PlaceUser","path":"Floorsense/CustomBookingsSync/PlaceUser.html","kind":"alias","full_name":"Floorsense::CustomBookingsSync::PlaceUser","name":"PlaceUser","abstract":false,"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::User","aliased_html":"PlaceOS::Client::API::Models::User","const":false,"namespace":{"html_id":"drivers/Floorsense/CustomBookingsSync","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync"}}]},{"html_id":"drivers/Floorsense/DeskInfo","path":"Floorsense/DeskInfo.html","kind":"class","full_name":"Floorsense::DeskInfo","name":"DeskInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L176"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::DeskInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L189"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"desk_type:String|Nil-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L185"},"def":{"name":"desk_type","return_type":"String | ::Nil","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String|Nil)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"args_string":"(desk_type : String | Nil)","args_html":"(desk_type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L185"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskheight:Int32|Nil-instance-method","name":"deskheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L182"},"def":{"name":"deskheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@deskheight"}},{"html_id":"deskheight=(deskheight:Int32|Nil)-instance-method","name":"deskheight=","abstract":false,"args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"args_string":"(deskheight : Int32 | Nil)","args_html":"(deskheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L182"},"def":{"name":"deskheight=","args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@deskheight = deskheight"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L179"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L179"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L180"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L180"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L181"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L181"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L186"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L186"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}}]},{"html_id":"drivers/Floorsense/DeskMeta","path":"Floorsense/DeskMeta.html","kind":"struct","full_name":"Floorsense::DeskMeta","name":"DeskMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"doc":"Websocket payloads","summary":"

Websocket payloads

","constructors":[{"html_id":"new(place_id:String,floor_id:String,building:Nil|String,title:String,ext_data:Hash(String,JSON::Any))-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","args_html":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","location":{"filename":"src/floorsense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L9"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, floor_id, building, title, ext_data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L14"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"building=(building:String|Nil)-instance-method","name":"building=","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"args_string":"(building : String | Nil)","args_html":"(building : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L14"},"def":{"name":"building=","args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building = building"}},{"html_id":"ext_data:Hash(String,JSON::Any)-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L15"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@ext_data"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L13"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L13"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L12"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L12"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Floorsense/DeskStatus","path":"Floorsense/DeskStatus.html","kind":"class","full_name":"Floorsense::DeskStatus","name":"DeskStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L141"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L142"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L167"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L167"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"cached:Bool-instance-method","name":"cached","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L145"},"def":{"name":"cached","return_type":"Bool","visibility":"Public","body":"@cached"}},{"html_id":"cached=(cached:Bool)-instance-method","name":"cached=","abstract":false,"args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"args_string":"(cached : Bool)","args_html":"(cached : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L145"},"def":{"name":"cached=","args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"visibility":"Public","body":"@cached = cached"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L144"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L144"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L170"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L170"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L155"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Time)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Time"}],"args_string":"(created : Time)","args_html":"(created : Time)","location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L155"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Time"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desk_type:String-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L162"},"def":{"name":"desk_type","return_type":"String","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"args_string":"(desk_type : String)","args_html":"(desk_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L162"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskid:Int32-instance-method","name":"deskid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L149"},"def":{"name":"deskid","return_type":"Int32","visibility":"Public","body":"@deskid"}},{"html_id":"deskid=(deskid:Int32)-instance-method","name":"deskid=","abstract":false,"args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"args_string":"(deskid : Int32)","args_html":"(deskid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L149"},"def":{"name":"deskid=","args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"visibility":"Public","body":"@deskid = deskid"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L159"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L159"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"features:Int32-instance-method","name":"features","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L164"},"def":{"name":"features","return_type":"Int32","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Int32)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Int32"}],"args_string":"(features : Int32)","args_html":"(features : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L164"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Int32"}],"visibility":"Public","body":"@features = features"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L163"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L163"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"freq:String-instance-method","name":"freq","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L165"},"def":{"name":"freq","return_type":"String","visibility":"Public","body":"@freq"}},{"html_id":"freq=(freq:String)-instance-method","name":"freq=","abstract":false,"args":[{"name":"freq","external_name":"freq","restriction":"String"}],"args_string":"(freq : String)","args_html":"(freq : String)","location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L165"},"def":{"name":"freq=","args":[{"name":"freq","external_name":"freq","restriction":"String"}],"visibility":"Public","body":"@freq = freq"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L166"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L166"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:String-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L152"},"def":{"name":"hardware","return_type":"String","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:String)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"args_string":"(hardware : String)","args_html":"(hardware : String)","location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L152"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"hwfeat:Int32-instance-method","name":"hwfeat","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat","return_type":"Int32","visibility":"Public","body":"@hwfeat"}},{"html_id":"hwfeat=(hwfeat:Int32)-instance-method","name":"hwfeat=","abstract":false,"args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"args_string":"(hwfeat : Int32)","args_html":"(hwfeat : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat=","args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"visibility":"Public","body":"@hwfeat = hwfeat"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L156"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L156"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"netid:Int32-instance-method","name":"netid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L147"},"def":{"name":"netid","return_type":"Int32","visibility":"Public","body":"@netid"}},{"html_id":"netid=(netid:Int32)-instance-method","name":"netid=","abstract":false,"args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"args_string":"(netid : Int32)","args_html":"(netid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L147"},"def":{"name":"netid=","args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"visibility":"Public","body":"@netid = netid"}},{"html_id":"occupied:Bool-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L157"},"def":{"name":"occupied","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L157"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime","return_type":"Int32","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"args_string":"(occupiedtime : Int32)","args_html":"(occupiedtime : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L168"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L168"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L171"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L171"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reservable:Bool-instance-method","name":"reservable","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L146"},"def":{"name":"reservable","return_type":"Bool","visibility":"Public","body":"@reservable"}},{"html_id":"reservable=(reservable:Bool)-instance-method","name":"reservable=","abstract":false,"args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"args_string":"(reservable : Bool)","args_html":"(reservable : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L146"},"def":{"name":"reservable=","args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"visibility":"Public","body":"@reservable = reservable"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L169"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L169"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L148"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L148"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L158"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L158"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket","path":"Floorsense/DesksWebsocket.html","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate_booking(booking_id:String|Int64,controller_id:String|Int32|Int64|Nil=nil,key:String|Nil=nil,eui64:String|Nil=nil,userpresent:Bool|Nil=nil)-instance-method","name":"activate_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":648,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L648"},"def":{"name":"activate_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if key.nil?\n else\n form.add(\"key\", key.to_s)\n end\n if userpresent.nil?\n else\n form.add(\"userpresent\", userpresent.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"all_lockers-instance-method","name":"all_lockers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L295"},"def":{"name":"all_lockers","visibility":"Public","body":"if @locker_controllers.empty?\nelse\n return @locker_controllers.values\nend\nsync_locker_list.values\n"}},{"html_id":"at_location(controller_id:String|Int32|Int64,desk_key:String)-instance-method","name":"at_location","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(controller_id : String | Int32 | Int64, desk_key : String)","args_html":"(controller_id : String | Int32 | Int64, desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L964"},"def":{"name":"at_location","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/user-locate?cid=#{controller_id}&desk_key=#{desk_key}\", headers: default_headers)\nlogger.debug do\n \"at_location response: #{response.body}\"\nend\nusers = parse(response, Array(User))\nusers.first?\n"}},{"html_id":"bank_list(controller_id:String|Int32|Int64)-instance-method","name":"bank_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L251"},"def":{"name":"bank_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\nend\nresponse = get(\"/restapi/bank-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"bookings(plan_id:String,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"args_string":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","args_html":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L615"},"def":{"name":"bookings","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 15.minutes.from_now.to_unix)\nuri = \"/restapi/floorplan-booking?planid=#{plan_id}&start=#{period_start}&finish=#{period_end}\"\nresponse = get(uri, headers: default_headers)\nbookings_map = parse(response, Hash(String, Array(BookingStatus)))\nbookings_map.each do |_id, bookings|\n bookings.each do |booking|\n booking.user = get_user(booking.uid)\n end\nend\nbookings_map\n"}},{"html_id":"check_subscriptions-instance-method","name":"check_subscriptions","doc":"used to poll the websocket to check for liveliness","summary":"

used to poll the websocket to check for liveliness

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L95"},"def":{"name":"check_subscriptions","visibility":"Public","body":"ws_get(\"/restapi/subscribe\")"}},{"html_id":"clear_user_cache!-instance-method","name":"clear_user_cache!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":972,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L972"},"def":{"name":"clear_user_cache!","visibility":"Public","body":"@user_cache.clear"}},{"html_id":"confirm_booking(booking_id:String|Int64)-instance-method","name":"confirm_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L636"},"def":{"name":"confirm_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-confirm\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"method\", \"1\")\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"ws_post(\"/auth\", {user: \"kiosk\"}.to_json, priority: 99, name: \"auth\")"}},{"html_id":"controller_list(locker:Bool|Nil=nil,desks:Bool|Nil=nil)-instance-method","name":"controller_list","abstract":false,"args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"args_string":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","args_html":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L236"},"def":{"name":"controller_list","args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if locker\n form.add(\"locks\", \"true\")\n end\n if desks\n form.add(\"desks\", \"true\")\n end\nend\nresponse = get(\"/restapi/slave-list?#{query}\", headers: default_headers)\ncontrollers = parse(response, Array(ControllerInfo))\nmappings = {} of Int32 => ControllerInfo\ncontrollers.each do |ctrl|\n mappings[ctrl.controller_id] = ctrl\nend\nif locker.nil? && desks.nil?\n self[:controllers] = mappings\nend\n@controllers = mappings\n"}},{"html_id":"create_booking(user_id:String|Int64,plan_id:String|Int32,key:String,description:String|Nil=nil,starting:Int64|Nil=nil,ending:Int64|Nil=nil,time_zone:String|Nil=nil,booking_type:String=\"advance\")-instance-method","name":"create_booking","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"args_string":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = \"advance\")","args_html":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = "advance")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":688,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L688"},"def":{"name":"create_booking","args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"desks_on_plan = desks(plan_id)\ndesk = desks_on_plan.find() do |__arg5|\n __arg5.key == key\nend\nif desk\nelse\n raise(\"could not find desk #{key} on plan #{plan_id}\")\nend\nnow = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nstarting || (starting = now.at_beginning_of_day.to_unix)\nending || (ending = now.at_end_of_day.to_unix)\nresponse = post(\"/restapi/booking-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id.to_s)\n form.add(\"cid\", desk.cid.to_s)\n form.add(\"key\", key)\n form.add(\"bktype\", booking_type)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n form.add(\"start\", starting.to_s)\n form.add(\"finish\", ending.to_s)\n form.add(\"confexpiry\", ending.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"create_rfid(user_id:String,card_number:String,description:String|Nil=nil)-instance-method","name":"create_rfid","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(user_id : String, card_number : String, description : String | Nil = nil)","args_html":"(user_id : String, card_number : String, description : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":886,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L886"},"def":{"name":"create_rfid","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id)\n form.add(\"csn\", card_number)\n if description\n form.add(\"desc\", description.not_nil!)\n end\nend)\nparse(response, User) do |resp|\n resp || (JSON::Any.new(true))\nend\n"}},{"html_id":"create_user(name:String,email:String,description:String|Nil=nil,extid:String|Nil=nil,pin:String|Nil=nil,usertype:String=\"user\")-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"args_string":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = \"user\")","args_html":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = "user")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":860,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L860"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/user-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"name\", name)\n form.add(\"email\", email)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if pin\n form.add(\"pin\", pin.not_nil!)\n end\n if extid\n form.add(\"extid\", extid.not_nil!)\n end\n form.add(\"usertype\", \"user\")\nend)\nuser = parse(response, User)\n@user_cache[user.uid] = user\nuser\n"}},{"html_id":"default_headers-instance-method","name":"default_headers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L198"},"def":{"name":"default_headers","visibility":"Public","body":"{\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"delete_rfid(card_number:String)-instance-method","name":"delete_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":904,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L904"},"def":{"name":"delete_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-delete\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"csn\", card_number)\nend)\ncheck_success(response)\n"}},{"html_id":"desk_control(desk_key:String,led_state:LedState|Nil=nil,led_colour:LedColour|Nil=nil,desk_power:DeskPower|Nil=nil,desk_height:DeskHeight|Int32|Nil=nil,qi_mode:QiMode|Nil=nil,reboot:Bool=false,clean:Bool=false)-instance-method","name":"desk_control","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"args_string":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","args_html":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":790,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L790"},"def":{"name":"desk_control","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = post(\"/restapi/desk-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n form.add(\"key\", desk_key)\n if led_state\n form.add(\"led\", led_state.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour.to_s.downcase)\n end\n if desk_power\n form.add(\"desk-power\", desk_power.to_s.downcase)\n end\n if desk_height\n form.add(\"desk-height\", desk_height.to_s.downcase)\n end\n if qi_mode\n form.add(\"qi-mode\", qi_mode.to_s.downcase)\n end\n if reboot\n form.add(\"reboot\", \"true\")\n end\n if clean\n form.add(\"clean\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"desk_controllers:Hash(String,DeskInfo)-instance-method","name":"desk_controllers","doc":"Desk key => controller id","summary":"

Desk key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L45"},"def":{"name":"desk_controllers","return_type":"Hash(String, DeskInfo)","visibility":"Public","body":"@desk_controllers"}},{"html_id":"desk_info(desk_key:String)-instance-method","name":"desk_info","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":760,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L760"},"def":{"name":"desk_info","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = get(\"/restapi/desk-status?cid=#{controller_id}&key=#{desk_key}\", headers: default_headers)\ndesk_info = parse(response, DeskInfo)\ndesk_info\n"}},{"html_id":"desk_list(controller_id:String|Int32|Int64)-instance-method","name":"desk_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L755"},"def":{"name":"desk_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/desk-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(DeskInfo))\n"}},{"html_id":"desk_scan(eui64:String,key:String|Int64|Nil=nil,cid:String|Nil=nil,uid:String|Nil=nil)-instance-method","name":"desk_scan","doc":"More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a","summary":"

More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a

","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","args_html":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":669,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L669"},"def":{"name":"desk_scan","args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/desk-scan\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"eui64\", eui64.to_s)\n form.add(\"key\", key.to_s)\n if cid.nil?\n else\n form.add(\"cid\", cid.to_s)\n end\n if uid.nil?\n else\n form.add(\"uid\", uid.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"desks(plan_id:String|Int32)-instance-method","name":"desks","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"args_string":"(plan_id : String | Int32)","args_html":"(plan_id : String | Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":610,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L610"},"def":{"name":"desks","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"/restapi/floorplan-desk?planid=#{plan_id}\", headers: default_headers)\nparse(response, Array(DeskStatus))\n"}},{"html_id":"event_log(codes:Array(String|Int32),event_id:Int64|Nil=nil,after:Int64|Nil=nil,limit:Int32=1)-instance-method","name":"event_log","abstract":false,"args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"args_string":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","args_html":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":945,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L945"},"def":{"name":"event_log","args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"codes\", codes.join(\",\", &.to_s))\n if after\n form.add(\"after\", after.not_nil!.to_s)\n end\n if event_id\n form.add(\"event_id\", event_id.not_nil!.to_s)\n end\n form.add(\"limit\", limit.to_s)\nend\nresponse = get(\"/restapi/event-log?#{query}\", headers: default_headers)\nlogs = parse(response, Array(LogEntry))\nlogs.sort do |a, b|\n if a.eventtime == b.eventtime\n a.eventid <=> b.eventid\n else\n a.eventtime <=> b.eventtime\n end\nend\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L133"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floors-instance-method","name":"floors","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L605"},"def":{"name":"floors","visibility":"Public","body":"response = get(\"/restapi/floorplan-list\", headers: default_headers)\nparse(response, Array(Floor))\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L629"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/booking?bkid=#{booking_id}\", headers: default_headers)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"get_desk_height(desk_key:String):Int32|Nil-instance-method","name":"get_desk_height","doc":"return nil on unknown height","summary":"

return nil on unknown height

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Int32 | Nil","args_html":"(desk_key : String) : Int32 | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":830,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L830"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Int32 | ::Nil","visibility":"Public","body":"(desk_info(desk_key)).deskheight"}},{"html_id":"get_desk_power(desk_key:String):Bool|Nil-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Bool | Nil","args_html":"(desk_key : String) : Bool | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":848,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L848"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"get_locker_reservation(reservation_id:String)-instance-method","name":"get_locker_reservation","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L354"},"def":{"name":"get_locker_reservation","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if reservation_id\n form.add(\"resid\", reservation_id)\n end\nend\nresponse = get(\"/restapi/res?#{query}\", headers: default_headers)\nparse(response, LockerBooking)\n"}},{"html_id":"get_rfid(card_number:String)-instance-method","name":"get_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":916,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L916"},"def":{"name":"get_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/rfid?csn=#{card_number}\", headers: default_headers)\nparse(response, RFID)\n"}},{"html_id":"get_setting(key:String,user_id:String|Nil=nil)-instance-method","name":"get_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, user_id : String | Nil = nil)","args_html":"(key : String, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L275"},"def":{"name":"get_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"key\", key)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = get(\"/restapi/setting?#{query}\", headers: default_headers)\nparse(response, Setting)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L142"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/restapi/login\", body: \"username=#{URI.encode_www_form(@username)}&password=#{URI.encode_www_form(@password)}\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"})\ndata = response.body.not_nil!\nlogger.debug do\n \"received login response #{data}\"\nend\nif response.success?\n resp = Resp(AuthInfo).from_json(data)\n token = resp.info.not_nil!.token\n payload, _ = JWT.decode(token, verify: false, validate: false)\n @auth_expiry = (Time.unix(payload[\"exp\"].as_i64)) - 5.minutes\n @auth_token = \"Bearer #{token}\"\nelse\n case response.status_code\n when 401\n resp = Resp(AuthInfo).from_json(data)\n logger.warn do\n \"#{resp.message} (#{resp.code})\"\n end\n else\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":921,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L921"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"existing = @user_cache[user_id]?\nif existing\n return existing\nend\nresponse = get(\"/restapi/user?uid=#{user_id}\", headers: default_headers)\nuser = parse(response, User)\n@user_cache[user_id] = user\nuser\n"}},{"html_id":"locate(key:String,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locate","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":976,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L976"},"def":{"name":"locate","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"uri = if controller_id\n \"/restapi/user-locate?cid=#{controller_id}&key=#{URI.encode_www_form(key)}\"\nelse\n \"/restapi/user-locate?name=#{URI.encode_www_form(key)}\"\nend\nresponse = get(uri, headers: default_headers)\nparse(response, Array(UserLocation))\n"}},{"html_id":"locker(locker_key:String)-instance-method","name":"locker","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L305"},"def":{"name":"locker","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = get(\"/restapi/locker-status?cid=#{lock.controller_id}&bid=#{lock.bus_id}&lid=#{lock.locker_id}\", headers: default_headers)\nparse(response, LockerInfo)\n"}},{"html_id":"locker_change_pin(reservation_id:String,pin:Int32)-instance-method","name":"locker_change_pin","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"args_string":"(reservation_id : String, pin : Int32)","args_html":"(reservation_id : String, pin : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L416"},"def":{"name":"locker_change_pin","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/restapi/res\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"pin\", pin.to_s)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_control(locker_key:String,light:Bool|Nil=nil,led:LedState|Nil=nil,led_colour:String|Nil=nil,buzzer:String|Nil=nil,usb_charging:String|Nil=nil,detect:Bool|Nil=nil)-instance-method","name":"locker_control","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"args_string":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","args_html":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L323"},"def":{"name":"locker_control","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"bid\", lock.bus_id.to_s)\n form.add(\"lid\", lock.locker_id.to_s)\n if !light.nil?\n form.add(\"light\", light ? \"on\" : \"off\")\n end\n if led\n form.add(\"led\", led.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour)\n end\n if buzzer\n form.add(\"buzzer\", buzzer)\n end\n if usb_charging\n form.add(\"usbchg\", usb_charging)\n end\n if detect\n form.add(\"detect\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_controllers:Hash(String,LockerInfo)-instance-method","name":"locker_controllers","doc":"Locker key => controller id","summary":"

Locker key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L42"},"def":{"name":"locker_controllers","return_type":"Hash(String, LockerInfo)","visibility":"Public","body":"@locker_controllers"}},{"html_id":"locker_info(locker_key:String)-instance-method","name":"locker_info","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L311"},"def":{"name":"locker_info","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_controllers[locker_key]"}},{"html_id":"locker_release(reservation_id:String)-instance-method","name":"locker_release","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L403"},"def":{"name":"locker_release","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_reservation(locker_key:String|Nil,user_id:String,type:String|Nil=nil,duration:Int32|Nil=nil,restype:String=\"adhoc\",controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locker_reservation","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"args_string":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = \"adhoc\", controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = "adhoc", controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L363"},"def":{"name":"locker_reservation","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"visibility":"Public","body":"controller_id || (controller_id = @locker_controllers[locker_key].controller_id)\nresponse = post(\"/restapi/res-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n if locker_key.presence\n form.add(\"key\", locker_key.to_s)\n end\n form.add(\"uid\", user_id)\n if type\n form.add(\"type\", type)\n end\n if duration\n form.add(\"duration\", duration.to_s)\n end\n form.add(\"restype\", restype)\nend)\nparse(response, LockerBooking)\n"}},{"html_id":"locker_reservations(active:Bool|Nil=nil,user_id:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,shared:Bool|Nil=nil)-instance-method","name":"locker_reservations","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","args_html":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L390"},"def":{"name":"locker_reservations","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if user_id\n form.add(\"uid\", user_id)\n end\n if active\n form.add(\"active\", \"1\")\n end\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if shared\n form.add(\"shared\", \"1\")\n end\nend\nresponse = get(\"/restapi/res-list?#{query}\", headers: default_headers)\nparse(response, Array(LockerBooking))\n"}},{"html_id":"locker_share(reservation_id:String,user_id:String,duration:UInt32|Nil=nil)-instance-method","name":"locker_share","doc":"POST res-share","summary":"

POST res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"args_string":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","args_html":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L458"},"def":{"name":"locker_share","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-share\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\n if duration\n form.add(\"duration\", duration.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_shared?(reservation_id:String)-instance-method","name":"locker_shared?","doc":"GET res-share","summary":"

GET res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L452"},"def":{"name":"locker_shared?","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/res-share?resid=#{reservation_id}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"locker_unlock(locker_key:String,user_id:String|Nil=nil,pin:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","args_html":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L430"},"def":{"name":"locker_unlock","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-unlock\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"key\", locker_key)\n if user_id.presence\n form.add(\"uid\", user_id.to_s)\n end\n if pin.presence\n form.add(\"pin\", pin.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_unshare(reservation_id:String,user_id:String)-instance-method","name":"locker_unshare","doc":"POST res-unshare","summary":"

POST res-unshare

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(reservation_id : String, user_id : String)","args_html":"(reservation_id : String, user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":477,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L477"},"def":{"name":"locker_unshare","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\nend)\ncheck_success(response)\n"}},{"html_id":"lockers(controller_id:String|Int32|Int64)-instance-method","name":"lockers","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L300"},"def":{"name":"lockers","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/locker-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(LockerInfo))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L52"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@ws_username = (setting?(String, :ws_username)) || @username\n@ws_password = (setting?(String, :ws_password)) || @password\nif uri_override = setting?(String, :http_uri_override)\n transport.http_uri_override = URI.parse(uri_override)\nelse\n transport.http_uri_override = nil\nend\ntransport.before_request do |request|\n logger.debug do\n \"requesting: #{request.method} #{request.path}?#{request.query}\\n#{request.body}\"\n end\nend\nschedule.clear\nschedule.every(1.hour) do\n sync_locker_list\nend\nschedule.in(5.seconds) do\n sync_locker_list\nend\nschedule.every(1.minute) do\n check_subscriptions\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L99"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n string = (String.new(data)).rstrip\n logger.debug do\n \"websocket sent: #{string}\"\n end\n payload = Payload.from_json(string)\n case payload\n in Response\n if !payload.result\n logger.warn do\n \"task #{task.try(&.name)} failed..\"\n end\n return task.try(&.abort)\n end\n case task.try(&.name)\n when \"auth\"\n logger.debug do\n \"authentication success!\"\n end\n ws_post(\"/sub\", {mask: 255}.to_json, name: \"sub\")\n when \"sub\"\n logger.debug do\n \"subscribed to events\"\n end\n else\n logger.warn do\n \"unknown task: #{(task.try(&.name)).inspect}\"\n end\n end\n task.try(&.success)\n in Event\n self[\"event_#{payload.code}\"] = payload.info || payload.message\n in Payload\n logger.error do\n \"base class, this case will never occur\"\n end\n end\nrescue error\n logger.error(exception: error) do\n \"failed to parse: #{string.inspect}\"\n end\nend"}},{"html_id":"release_booking(booking_id:String|Int64)-instance-method","name":"release_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":727,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L727"},"def":{"name":"release_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build(&.add(\"bkid\", booking_id.to_s)))\ncheck_success(response)\n"}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","doc":"desk height is in mm","summary":"

desk height is in mm

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L826"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_control(desk_key, desk_height: desk_height)"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","doc":"desk_power on / off / nil == auto","summary":"

desk_power on / off / nil == auto

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":834,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L834"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"power = case desk_power\nwhen true\n DeskPower::On\nwhen false\n DeskPower::Off\nwhen nil\n DeskPower::Policy\nelse\n raise(\"unknown power state: #{desk_power}\")\nend\ndesk_control(desk_key, desk_power: power)\n"}},{"html_id":"set_setting(key:String,value:JSON::Any,user_id:String|Nil=nil)-instance-method","name":"set_setting","doc":"example keys: \"desk_height_sit\", \"desk_height_stand\"","summary":"

example keys: "desk_height_sit", "desk_height_stand"

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","args_html":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L285"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"body = URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"value\", value.to_json)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = post(\"/restapi/setting\", headers: default_headers, body: body)\nresponse.success?\n"}},{"html_id":"settings_list(group_id:Int32|Nil=nil,user_group_id:Int32|Nil=nil,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"settings_list","abstract":false,"args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L260"},"def":{"name":"settings_list","args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if group_id\n form.add(\"groupid\", group_id.to_s)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\nend\nresponse = get(\"/restapi/setting-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"sync_locker_list-instance-method","name":"sync_locker_list","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L205"},"def":{"name":"sync_locker_list","visibility":"Public","body":"lockers = {} of String => LockerInfo\ndesks = {} of String => DeskInfo\ncontroller_list.each do |controller_id, controller|\n if controller.lockers\n else\n next\n end\n begin\n (lockers(controller_id)).each do |locker|\n if locker.key\n else\n next\n end\n locker.controller_id = controller_id\n lockers[locker.key.not_nil!] = locker\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining locker list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\n begin\n (desk_list(controller_id)).each do |desk|\n if desk.key\n else\n next\n end\n desk.controller_id = controller_id\n desks[desk.key.not_nil!] = desk\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\nend\n@desk_controllers = desks\n@locker_controllers = lockers\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L137"},"def":{"name":"token_expired?","visibility":"Public","body":"now = Time.utc\n@auth_expiry < now\n"}},{"html_id":"update_booking(booking_id:String|Int64,privacy:Bool|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":737,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L737"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"privacy\", privacy.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"user_groups_list(in_use:Bool=true)-instance-method","name":"user_groups_list","abstract":false,"args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"args_string":"(in_use : Bool = true)","args_html":"(in_use : Bool = true)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":854,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L854"},"def":{"name":"user_groups_list","args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"visibility":"Public","body":"query = in_use ? \"inuse=1\" : \"\"\nresponse = get(\"/restapi/usergroup-list?#{query}\", headers: default_headers)\nparse(response, Array(UserGroup))\n"}},{"html_id":"user_list(email:String|Nil=nil,name:String|Nil=nil,description:String|Nil=nil,user_group_id:String|Int32|Nil=nil,limit:Int32=500,offset:Int32=0)-instance-method","name":"user_list","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","args_html":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":931,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L931"},"def":{"name":"user_list","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if email\n form.add(\"email\", email.not_nil!)\n end\n if name\n form.add(\"name\", name.not_nil!)\n end\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\n form.add(\"limit\", limit.to_s)\n form.add(\"offset\", offset.to_s)\nend\nresponse = get(\"/restapi/user-list?#{query}\", headers: default_headers)\nparse(response, Array(User))\n"}},{"html_id":"voucher(voucher_id:String,pin:String)-instance-method","name":"voucher","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L597"},"def":{"name":"voucher","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/voucher?vid=#{voucher_id}&pin=#{pin}\", headers: default_headers)\nparse(response, Voucher)\n"}},{"html_id":"voucher_activate(voucher_id:String,pin:String)-instance-method","name":"voucher_activate","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":582,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L582"},"def":{"name":"voucher_activate","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/voucher-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"vid\", voucher_id)\n form.add(\"pin\", pin)\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_create(template_key:String,user_name:String,user_email:String,user_id:String|Nil=nil,reservation_id:String|Nil=nil,locker_key:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,notes:String|Nil=nil,validfrom:Int64|Nil=nil,validto:Int64|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"voucher_create","abstract":false,"args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":547,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L547"},"def":{"name":"voucher_create","args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", template_key)\n form.add(\"name\", user_name)\n form.add(\"email\", user_email)\n if user_id.nil?\n else\n form.add(\"uid\", user_id)\n end\n if reservation_id.nil?\n else\n form.add(\"resid\", reservation_id.to_s)\n end\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if locker_key.nil?\n else\n form.add(\"key\", locker_key.to_s)\n end\n if notes.nil?\n else\n form.add(\"notes\", notes.to_s)\n end\n if validfrom.nil?\n else\n form.add(\"validfrom\", validfrom.to_s)\n end\n if validto.nil?\n else\n form.add(\"validto\", validto.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\nend)\nparse(response, NamedTuple(user: User, voucher: Voucher))\n"}},{"html_id":"voucher_template(key:String,subject:String,desc:String,bodyhtml:String,body:String,createuser:Bool|Nil=nil,email:Bool|Nil=nil,unlock:Bool|Nil=nil,createunlock:Bool|Nil=nil,createres:Bool|Nil=nil,release:Bool|Nil=nil,cardswipe:Bool|Nil=nil,maxuse:Int32|Nil=nil,duration:Int32|Nil=nil,validperiod:Int32|Nil=nil,restype:String|Nil=nil,activatemessage:String|Nil=nil,vouchermessage:String|Nil=nil)-instance-method","name":"voucher_template","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"args_string":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","args_html":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L498"},"def":{"name":"voucher_template","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"subject\", subject)\n form.add(\"desc\", desc)\n form.add(\"bodyhtml\", bodyhtml)\n form.add(\"body\", body)\n if createuser.nil?\n else\n form.add(\"createuser\", createuser.to_s)\n end\n if email.nil?\n else\n form.add(\"email\", email.to_s)\n end\n if unlock.nil?\n else\n form.add(\"unlock\", unlock.to_s)\n end\n if createunlock.nil?\n else\n form.add(\"createunlock\", createunlock.to_s)\n end\n if createres.nil?\n else\n form.add(\"createres\", createres.to_s)\n end\n if release.nil?\n else\n form.add(\"release\", release.to_s)\n end\n if cardswipe.nil?\n else\n form.add(\"cardswipe\", cardswipe.to_s)\n end\n if maxuse.nil?\n else\n form.add(\"maxuse\", maxuse.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\n if validperiod.nil?\n else\n form.add(\"validperiod\", validperiod.to_s)\n end\n if restype.nil?\n else\n form.add(\"restype\", restype.to_s)\n end\n if activatemessage.nil?\n else\n form.add(\"activatemessage\", activatemessage.to_s)\n end\n if vouchermessage.nil?\n else\n form.add(\"vouchermessage\", vouchermessage.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_templates-instance-method","name":"voucher_templates","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L493"},"def":{"name":"voucher_templates","visibility":"Public","body":"response = get(\"/restapi/voucher-template\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"ws_get(uri:String,**options)-instance-method","name":"ws_get","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String, **options)","args_html":"(uri : String, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L88"},"def":{"name":"ws_get","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"GET #{uri}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}},{"html_id":"ws_post(uri:String,body:String|Nil=nil,**options)-instance-method","name":"ws_post","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(uri : String, body : String | Nil = nil, **options)","args_html":"(uri : String, body : String | Nil = nil, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L81"},"def":{"name":"ws_post","args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"POST #{uri}\\r\\n#{body.presence ? body : \"{}\"}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}}],"macros":[{"html_id":"parse(response,klass,&modify)-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"args_string":"(response, klass, &modify)","args_html":"(response, klass, &modify)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L181"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"block_arg":{"name":"modify","external_name":"modify","restriction":""},"visibility":"Public","body":" check_success(\n{{ response }}\n)\n \n%resp_body\n = \n{{ response }}\n.body\n begin\n check_response Resp(\n{{ klass }}\n).from_json(\n%resp_body\n.not_nil!) \n{{ modify }}\n\n rescue \nerror\n begin\n response = Response.from_json(\n%resp_body\n)\n raise \"#{response.message} (#{response.code})\" unless response.result\n raise \"unexpected response type: #{\n%resp_body\n}\"\n rescue\n logger.debug \n{ \"failed to parse response: #{\n%resp_body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/Floorsense/DesksWebsocket/DeskHeight","path":"Floorsense/DesksWebsocket/DeskHeight.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskHeight","name":"DeskHeight","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":779,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L779"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sit","name":"Sit","value":"0"},{"id":"Stand","name":"Stand","value":"1"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"sit?-instance-method","name":"sit?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":780,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L780"},"def":{"name":"sit?","visibility":"Public","body":"self == Sit"}},{"html_id":"stand?-instance-method","name":"stand?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":781,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L781"},"def":{"name":"stand?","visibility":"Public","body":"self == Stand"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/DeskPower","path":"Floorsense/DesksWebsocket/DeskPower.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskPower","name":"DeskPower","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":773,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L773"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Policy","name":"Policy","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L775"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":774,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L774"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"policy?-instance-method","name":"policy?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":776,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L776"},"def":{"name":"policy?","visibility":"Public","body":"self == Policy"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedColour","path":"Floorsense/DesksWebsocket/LedColour.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedColour","name":"LedColour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":767,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L767"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":770,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L770"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":769,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L769"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L768"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedState","path":"Floorsense/DesksWebsocket/LedState.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedState","name":"LedState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Off","name":"Off","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Slow","name":"Slow","value":"2"},{"id":"Medium","name":"Medium","value":"3"},{"id":"Fast","name":"Fast","value":"4"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"fast?-instance-method","name":"fast?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L320"},"def":{"name":"fast?","visibility":"Public","body":"self == Fast"}},{"html_id":"medium?-instance-method","name":"medium?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L319"},"def":{"name":"medium?","visibility":"Public","body":"self == Medium"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L316"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L317"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"slow?-instance-method","name":"slow?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L318"},"def":{"name":"slow?","visibility":"Public","body":"self == Slow"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/QiMode","path":"Floorsense/DesksWebsocket/QiMode.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::QiMode","name":"QiMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L784"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":787,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L787"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":786,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L786"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":785,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L785"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]}]},{"html_id":"drivers/Floorsense/Event","path":"Floorsense/Event.html","kind":"class","full_name":"Floorsense::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L30"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"info:JSON::Any|Nil-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L32"},"def":{"name":"info","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L31"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L29"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/Floor","path":"Floorsense/Floor.html","kind":"class","full_name":"Floorsense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L229"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"imgheight:Int32|Nil-instance-method","name":"imgheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L236"},"def":{"name":"imgheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgheight"}},{"html_id":"imgheight=(imgheight:Int32|Nil)-instance-method","name":"imgheight=","abstract":false,"args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"args_string":"(imgheight : Int32 | Nil)","args_html":"(imgheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L236"},"def":{"name":"imgheight=","args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgheight = imgheight"}},{"html_id":"imgname:String|Nil-instance-method","name":"imgname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L234"},"def":{"name":"imgname","return_type":"String | ::Nil","visibility":"Public","body":"@imgname"}},{"html_id":"imgname=(imgname:String|Nil)-instance-method","name":"imgname=","abstract":false,"args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"args_string":"(imgname : String | Nil)","args_html":"(imgname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L234"},"def":{"name":"imgname=","args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@imgname = imgname"}},{"html_id":"imgwidth:Int32|Nil-instance-method","name":"imgwidth","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgwidth"}},{"html_id":"imgwidth=(imgwidth:Int32|Nil)-instance-method","name":"imgwidth=","abstract":false,"args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"args_string":"(imgwidth : Int32 | Nil)","args_html":"(imgwidth : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth=","args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgwidth = imgwidth"}},{"html_id":"location1:String|Nil-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L238"},"def":{"name":"location1","return_type":"String | ::Nil","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String|Nil)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"args_string":"(location1 : String | Nil)","args_html":"(location1 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L238"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String|Nil-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L239"},"def":{"name":"location2","return_type":"String | ::Nil","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String|Nil)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"args_string":"(location2 : String | Nil)","args_html":"(location2 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L239"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String|Nil-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L240"},"def":{"name":"location3","return_type":"String | ::Nil","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String|Nil)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"args_string":"(location3 : String | Nil)","args_html":"(location3 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L240"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L232"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L232"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L231"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L231"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}}]},{"html_id":"drivers/Floorsense/LocationService","path":"Floorsense/LocationService.html","kind":"class","full_name":"Floorsense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/location_service.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/location_service.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L150"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"cid=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n user = (floorsense.at_location(floor_mac[\"cid\"], floor_mac[\"key\"])).get\n {location: \"desk\", assigned_to: user[\"name\"].as_s, mac_address: mac_address}\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L163"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of Nil\nend\nbuilding = @building_mappings[zone_id]?\nraw_desks = (floorsense.desks(plan_id)).get.to_json\ndesks = (Array(DeskStatus).from_json(raw_desks)).compact_map do |desk|\n @eui64_to_desk_id[desk.eui64] = desk.key\n if desk.occupied\n {location: :desk, at_location: 1, map_id: desk.key, level: zone_id, building: building, capacity: 1, mac: \"cid=#{desk.cid}&key=#{desk.key}\", floorsense_status: desk.status, floorsense_desk_type: desk.desk_type}\n end\nend\ncurrent = [] of BookingStatus\nif @include_bookings\n raw_bookings = (floorsense.bookings(plan_id)).get.to_json\n (Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\n end\nend\ncurrent.map do |booking|\n {location: :booking, type: \"desk\", checked_in: booking.active, asset_id: booking.key, booking_id: booking.booking_id, building: building, level: zone_id, ends_at: booking.finish, mac: \"cid=#{booking.cid}&key=#{booking.key}\", staff_email: booking.user.try do |__arg2|\n __arg2.email.try(&.downcase)\n end, staff_name: booking.user.try(&.name)}\nend + desks\n"}},{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L57"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@eui64_to_desk_id[id]?"}},{"html_id":"get_desk_height_sit-instance-method","name":"get_desk_height_sit","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L113"},"def":{"name":"get_desk_height_sit","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_sit\", uid)).get[\"value\"]\n"}},{"html_id":"get_desk_height_stand-instance-method","name":"get_desk_height_stand","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L119"},"def":{"name":"get_desk_height_stand","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_stand\", uid)).get[\"value\"]\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/location_service.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L69"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_place_user_id:String-instance-method","name":"get_place_user_id","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L107"},"def":{"name":"get_place_user_id","return_type":"String","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"must be invoked by a user\")\nend\nuser_id\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L140"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/location_service.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L145"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"@include_bookings = (setting?(Bool, :include_bookings)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n"}},{"html_id":"set_desk_height_sit(value:UInt32)-instance-method","name":"set_desk_height_sit","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L125"},"def":{"name":"set_desk_height_sit","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_sit\", value, uid)\n"}},{"html_id":"set_desk_height_stand(value:UInt32)-instance-method","name":"set_desk_height_stand","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L131"},"def":{"name":"set_desk_height_stand","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_stand\", value, uid)\n"}}]},{"html_id":"drivers/Floorsense/LockerBooking","path":"Floorsense/LockerBooking.html","kind":"class","full_name":"Floorsense::LockerBooking","name":"LockerBooking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L110"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Int32-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L130"},"def":{"name":"active","return_type":"Int32","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Int32)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Int32"}],"args_string":"(active : Int32)","args_html":"(active : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L130"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Int32"}],"visibility":"Public","body":"@active = active"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L117"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L117"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L112"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L112"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L114"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L114"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L125"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L125"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"lastopened:Int64-instance-method","name":"lastopened","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L128"},"def":{"name":"lastopened","return_type":"Int64","visibility":"Public","body":"@lastopened"}},{"html_id":"lastopened=(lastopened:Int64)-instance-method","name":"lastopened=","abstract":false,"args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"args_string":"(lastopened : Int64)","args_html":"(lastopened : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L128"},"def":{"name":"lastopened=","args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"visibility":"Public","body":"@lastopened = lastopened"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L126"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L126"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L131"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L131"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L129"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L129"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L133"},"def":{"name":"released?","visibility":"Public","body":"self.active == 1"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L127"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L127"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L113"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L113"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L138"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L138"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L123"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L123"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Floorsense/LockerInfo","path":"Floorsense/LockerInfo.html","kind":"class","full_name":"Floorsense::LockerInfo","name":"LockerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bus_id:Int32-instance-method","name":"bus_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L82"},"def":{"name":"bus_id","return_type":"Int32","visibility":"Public","body":"@bus_id"}},{"html_id":"bus_id=(bus_id:Int32)-instance-method","name":"bus_id=","abstract":false,"args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"args_string":"(bus_id : Int32)","args_html":"(bus_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L82"},"def":{"name":"bus_id=","args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"visibility":"Public","body":"@bus_id = bus_id"}},{"html_id":"canid:Int32-instance-method","name":"canid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L79"},"def":{"name":"canid","return_type":"Int32","visibility":"Public","body":"@canid"}},{"html_id":"canid=(canid:Int32)-instance-method","name":"canid=","abstract":false,"args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"args_string":"(canid : Int32)","args_html":"(canid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L79"},"def":{"name":"canid=","args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"visibility":"Public","body":"@canid = canid"}},{"html_id":"closed:Bool|Nil-instance-method","name":"closed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L93"},"def":{"name":"closed","return_type":"Bool | ::Nil","visibility":"Public","body":"@closed"}},{"html_id":"closed=(closed:Bool|Nil)-instance-method","name":"closed=","abstract":false,"args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"args_string":"(closed : Bool | Nil)","args_html":"(closed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L93"},"def":{"name":"closed=","args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@closed = closed"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L91"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L91"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::LockerInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L106"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"disabled:Bool-instance-method","name":"disabled","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L90"},"def":{"name":"disabled","return_type":"Bool","visibility":"Public","body":"@disabled"}},{"html_id":"disabled=(disabled:Bool)-instance-method","name":"disabled=","abstract":false,"args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"args_string":"(disabled : Bool)","args_html":"(disabled : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L90"},"def":{"name":"disabled=","args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"visibility":"Public","body":"@disabled = disabled"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L89"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L89"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L98"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L98"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:Int32|Nil-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L99"},"def":{"name":"hardware","return_type":"Int32 | ::Nil","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:Int32|Nil)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"args_string":"(hardware : Int32 | Nil)","args_html":"(hardware : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L99"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L101"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L101"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"locker_id:Int32-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L85"},"def":{"name":"locker_id","return_type":"Int32","visibility":"Public","body":"@locker_id"}},{"html_id":"locker_id=(locker_id:Int32)-instance-method","name":"locker_id=","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"args_string":"(locker_id : Int32)","args_html":"(locker_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L85"},"def":{"name":"locker_id=","args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"visibility":"Public","body":"@locker_id = locker_id"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L87"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L87"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"resid:String|Nil-instance-method","name":"resid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L103"},"def":{"name":"resid","return_type":"String | ::Nil","visibility":"Public","body":"@resid"}},{"html_id":"resid=(resid:String|Nil)-instance-method","name":"resid=","abstract":false,"args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"args_string":"(resid : String | Nil)","args_html":"(resid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L103"},"def":{"name":"resid=","args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resid = resid"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L88"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L88"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L100"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L100"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L96"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L96"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}},{"html_id":"uid:String|Nil-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L97"},"def":{"name":"uid","return_type":"String | ::Nil","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String|Nil)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(uid : String | Nil)","args_html":"(uid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L97"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"usbcharger:Bool|Nil-instance-method","name":"usbcharger","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharger"}},{"html_id":"usbcharger=(usbcharger:Bool|Nil)-instance-method","name":"usbcharger=","abstract":false,"args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"args_string":"(usbcharger : Bool | Nil)","args_html":"(usbcharger : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger=","args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharger = usbcharger"}},{"html_id":"usbcharging:Bool|Nil-instance-method","name":"usbcharging","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharging"}},{"html_id":"usbcharging=(usbcharging:Bool|Nil)-instance-method","name":"usbcharging=","abstract":false,"args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"args_string":"(usbcharging : Bool | Nil)","args_html":"(usbcharging : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging=","args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharging = usbcharging"}},{"html_id":"usbcurrent:Int32|Nil-instance-method","name":"usbcurrent","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent","return_type":"Int32 | ::Nil","visibility":"Public","body":"@usbcurrent"}},{"html_id":"usbcurrent=(usbcurrent:Int32|Nil)-instance-method","name":"usbcurrent=","abstract":false,"args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"args_string":"(usbcurrent : Int32 | Nil)","args_html":"(usbcurrent : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent=","args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@usbcurrent = usbcurrent"}}]},{"html_id":"drivers/Floorsense/LockerLocationService","path":"Floorsense/LockerLocationService.html","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L382"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lc=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n controller_id = floor_mac[\"lc\"]\n locker_key = floor_mac[\"lk\"]\n reservations = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n if reservation = reservations.find do |booking|\n booking.key == locker_key\n end\n {location: \"locker\", assigned_to: get_user_email(reservation.user_id), mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"controllers:Hash(Int32,ControllerInfo)-instance-method","name":"controllers","doc":"Controller id => Controller info","summary":"

Controller id => Controller info

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L50"},"def":{"name":"controllers","return_type":"Hash(Int32, ControllerInfo)","visibility":"Public","body":"@controllers"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L412"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\ncontroller_list = @zone_mappings[zone_id]?\nif controller_list\nelse\n return [] of Nil\nend\nbuilding = @zone_building\ncontroller_list.flat_map do |controller_id|\n bookings = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n bookings.map do |booking|\n PlaceLocker.new(get_locker_bank(booking.key), booking, @zone_building, zone_id)\n end\nend\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L106"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nlogger.debug do\n \"found place id: #{placeos_staff_id}\"\nend\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nlogger.debug do\n \"found #{floorsense_users.size} matching floorsense users\"\nend\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_locker_bank(locker_key:String)-instance-method","name":"get_locker_bank","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L403"},"def":{"name":"get_locker_bank","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"if bank_id = @locker_key_to_bank[locker_key]?\n return bank_id\nend\nbank_id = (floorsense.locker_info(locker_key)).get[\"controller_id\"].as_i64\n@locker_key_to_bank[locker_key] = bank_id\n"}},{"html_id":"get_place_user_id(floorsense_id:String|Int64):String-instance-method","name":"get_place_user_id","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L148"},"def":{"name":"get_place_user_id","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nplace_lookup = case @floorsense_filter\nwhen \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\nelse\n floor_user[\"desc\"].as_s\nend\nif (place_lookup.starts_with?(\"user-\")) && !(place_lookup.includes?('@'))\n return place_lookup\nend\n(staff_api.user(place_lookup)).get[\"id\"].as_s\n"}},{"html_id":"get_user_email(floorsense_id:String|Int64):String-instance-method","name":"get_user_email","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L161"},"def":{"name":"get_user_email","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nbegin\n floor_user[\"email\"].as_s\nrescue\n place_lookup = case @floorsense_filter\n when \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\n else\n floor_user[\"desc\"].as_s\n end\n (staff_api.user(place_lookup)).get[\"email\"].as_s\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L370"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L192"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(user_id)\nif expires_at\n duration = (expires_at - Time.local.to_unix) // 60\nend\nbooking = LockerBooking.from_json(floorsense.locker_reservation(locker_key: locker_id, user_id: floorsense_user_id, duration: duration, controller_id: bank_id).get.to_json)\nlevel = nil\n@zone_mappings.each do |level_zone, controllers|\n if bank_id.in?(controllers)\n level = level_zone\n break\n end\nend\nPlaceLocker.new(bank_id, booking, @zone_building, level)\n"}},{"html_id":"locker_banks-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L88"},"def":{"name":"locker_banks","visibility":"Public","body":"banks = {} of Int32 => Array(JSON::Any)\n@controllers.each_key do |controller_id|\n if json = (begin\n (floorsense.bank_list(controller_id)).get\n rescue\n nil\n end)\n banks[controller_id] = json.as_a\n end\nend\nbanks\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L228"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nif place_id = owner_id.presence\n floorsense_user_id = get_floorsense_user(place_id)\nend\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_release(reservation.reservation_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L273"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(owner_id)\nshare_with = get_floorsense_user(share_with)\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_share(reservation.reservation_id, share_with)).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L324"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n return (floorsense.locker_shared?(reservation.reservation_id)).get.as_a.map do |shared_with|\n get_place_user_id(shared_with[\"uid\"].as_s)\n end\nend\n[] of String\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L347"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if owner_id.presence\n floorsense_user_id = get_floorsense_user(owner_id.to_s)\nend\nfloorsense.locker_unlock(locker_key: locker_id.to_s, user_id: floorsense_user_id, pin: pin_code)\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L293"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n res_id = reservation.reservation_id\n if shared_with = shared_with_id.presence\n shared_with_id = get_floorsense_user(shared_with)\n (floorsense.locker_unshare(res_id, shared_with_id)).get\n else\n (floorsense.locker_shared?(res_id)).get.as_a.map do |shared_with|\n (floorsense.locker_unshare(res_id, shared_with[\"uid\"].as_s)).get\n end\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L251"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(user_id)\n(Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id).get.to_json)).compact_map do |floor_booking|\n level = nil\n @zone_mappings.each do |level_zone, controllers|\n if floor_booking.controller_id.in?(controllers)\n level = level_zone\n break\n end\n end\n if level\n PlaceLocker.new(get_locker_bank(floor_booking.key), floor_booking, @zone_building, level)\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L375"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@building_location = setting(String, :locker_building_location)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :locker_floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n"}},{"html_id":"zone_building:String|Nil-instance-method","name":"zone_building","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L57"},"def":{"name":"zone_building","return_type":"String | ::Nil","visibility":"Public","body":"@zone_building"}},{"html_id":"zone_mappings:Hash(String,Array(Int32))-instance-method","name":"zone_mappings","doc":"level zone_id => controller ids","summary":"

level zone_id => controller ids

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L56"},"def":{"name":"zone_mappings","return_type":"Hash(String, Array(Int32))","visibility":"Public","body":"@zone_mappings"}}],"types":[{"html_id":"drivers/Floorsense/LockerLocationService/PlaceLocker","path":"Floorsense/LockerLocationService/PlaceLocker.html","kind":"alias","full_name":"Floorsense::LockerLocationService::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Floorsense/LockerLocationService","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService"}}]},{"html_id":"drivers/Floorsense/LogEntry","path":"Floorsense/LogEntry.html","kind":"class","full_name":"Floorsense::LogEntry","name":"LogEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L376"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L377"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","doc":"booking id","summary":"

booking id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L388"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","doc":"booking id","summary":"

booking id

","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L388"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"code:Int32-instance-method","name":"code","doc":"the event code","summary":"

the event code

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L385"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32)-instance-method","name":"code=","doc":"the event code","summary":"

the event code

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L385"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"@code = code"}},{"html_id":"eventid:Int64-instance-method","name":"eventid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L379"},"def":{"name":"eventid","return_type":"Int64","visibility":"Public","body":"@eventid"}},{"html_id":"eventid=(eventid:Int64)-instance-method","name":"eventid=","abstract":false,"args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"args_string":"(eventid : Int64)","args_html":"(eventid : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L379"},"def":{"name":"eventid=","args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"visibility":"Public","body":"@eventid = eventid"}},{"html_id":"eventtime:Int64-instance-method","name":"eventtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L394"},"def":{"name":"eventtime","return_type":"Int64","visibility":"Public","body":"@eventtime"}},{"html_id":"eventtime=(eventtime:Int64)-instance-method","name":"eventtime=","abstract":false,"args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"args_string":"(eventtime : Int64)","args_html":"(eventtime : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L394"},"def":{"name":"eventtime=","args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"visibility":"Public","body":"@eventtime = eventtime"}},{"html_id":"key:String-instance-method","name":"key","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L382"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L382"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}}]},{"html_id":"drivers/Floorsense/MobileCheckinLogic","path":"Floorsense/MobileCheckinLogic.html","kind":"class","full_name":"Floorsense::MobileCheckinLogic","name":"MobileCheckinLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_scanned(id:String,user_id:String,booking_minutes:Int32|Nil=nil)-instance-method","name":"eui64_scanned","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"args_string":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","args_html":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L31"},"def":{"name":"eui64_scanned","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"#{user_id} scanned mac #{id}\"\nend\ndesk_details = (booking_sync.eui64_to_desk_id(id)).get\nif desk_details.raw.nil?\n raise(\"could not find eui64 id: #{id}\")\nend\nlogger.debug do\n \"desk details found: #{desk_details.inspect}\"\nend\nlevel_zone = desk_details[\"level\"].as_s\nplace_desk = desk_details[\"desk_id\"].as_s\nbuilding_raw = desk_details[\"building_id\"]?.try(&.raw)\nbuild_zone = building_raw.try do |__arg2|\n __arg2.as(String)\nend\nlogger.debug do\n \"located #{place_desk} for #{user_id}\"\nend\nnow = Time.utc.to_unix\nbooking = staff_api.query_bookings(type: \"desk\", zones: [level_zone]).get.as_a.find do |book|\n ((book[\"asset_id\"].as_s == place_desk) && book[\"booking_start\"].as_i64 <= now) && book[\"booking_end\"].as_i64 > now\nend\nif booking\n owner_id = booking[\"user_id\"].as_s\n if owner_id == user_id\n checkin_out = !booking[\"checked_in\"].as_bool\n booking_id = booking[\"id\"].as_i64\n logger.debug do\n \"found existing booking #{booking_id} with current checked-in status #{!checkin_out}\"\n end\n if checkin_out\n (staff_api.booking_check_in(booking_id, true)).get.as_bool\n \"checked-in\"\n else\n now = 1.minute.ago.to_unix\n staff_api.update_booking(booking_id: booking_id, booking_end: now, checked_in: false).get\n \"checked-out\"\n end\n else\n logger.debug do\n \"#{user_id} scanned desk owned by #{owner_id}\"\n end\n \"forbidden\"\n end\nelse\n booking_period = booking_minutes.try(&.minutes) || @booking_period\n now = Time.local(@time_zone)\n future = booking_period ? (now + booking_period) : now.at_end_of_day\n user_details = (staff_api.user(user_id)).get\n zones = [level_zone]\n if build_zone\n zones.unshift(build_zone)\n end\n title = place_desk\n ext_data = {} of String => JSON::Any\n begin\n logger.debug do\n \"obtaining metadata for desk #{place_desk} on level #{level_zone}\"\n end\n if desk_details = placeos_desk_metadata(level_zone, place_desk)\n if bookable = desk_details[\"bookable\"]?\n if (bookable.as_s?.try(&.upcase) == \"FALSE\") || (bookable.as_bool? == false)\n return \"forbidden\"\n end\n end\n title = desk_details[\"name\"]?.try(&.as_s) || place_desk\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk_details[meta_key]?\n ext_data[ext_key] = value\n end\n end\n else\n logger.warn do\n \"desk details not found!\"\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk metadata\"\n end\n end\n logger.debug do\n \"creating new booking for #{user_id} on #{place_desk}\"\n end\n staff_api.create_booking(booking_type: \"desk\", asset_id: place_desk, user_id: user_id, user_email: user_details[\"email\"], user_name: user_details[\"name\"], zones: zones, booking_start: now.to_unix, booking_end: future.to_unix, checked_in: true, approved: true, title: title, time_zone: @time_zone.name, extension_data: ext_data).get\n \"adhoc\"\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"time_zone = (setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@booking_period = (setting?(Int32, :booking_period)).try(&.minutes)\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,asset_id:String)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(zone_id : String, asset_id : String)","args_html":"(zone_id : String, asset_id : String)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L133"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\nmetadata.each do |desk|\n place_id = desk[\"id\"]?.try(&.as_s)\n if place_id\n else\n next\n end\n if place_id == asset_id\n return desk.as_h\n end\nend\nnil\n"}}]},{"html_id":"drivers/Floorsense/Payload","path":"Floorsense/Payload.html","kind":"class","full_name":"Floorsense::Payload","name":"Payload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Floorsense/Event","kind":"class","full_name":"Floorsense::Event","name":"Event"},{"html_id":"drivers/Floorsense/Response","kind":"class","full_name":"Floorsense::Response","name":"Response"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"event\"\n Event.from_json(json)\nwhen \"response\"\n Response.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/Floorsense/Resp","path":"Floorsense/Resp.html","kind":"class","full_name":"Floorsense::Resp(T)","name":"Resp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L56"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32|Nil)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"args_string":"(code : Int32 | Nil)","args_html":"(code : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L56"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@code = code"}},{"html_id":"info:T|Nil-instance-method","name":"info","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L59"},"def":{"name":"info","return_type":"T | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"info=(info:T|Nil)-instance-method","name":"info=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"args_string":"(info : T | Nil)","args_html":"(info : T | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L59"},"def":{"name":"info=","args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"visibility":"Public","body":"@info = info"}},{"html_id":"message:String|Nil-instance-method","name":"message","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L55"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"message=(message:String|Nil)-instance-method","name":"message=","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(message : String | Nil)","args_html":"(message : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L55"},"def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"@message = message"}},{"html_id":"msg_type:String-instance-method","name":"msg_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L51"},"def":{"name":"msg_type","return_type":"String","visibility":"Public","body":"@msg_type"}},{"html_id":"msg_type=(msg_type:String)-instance-method","name":"msg_type=","abstract":false,"args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"args_string":"(msg_type : String)","args_html":"(msg_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L51"},"def":{"name":"msg_type=","args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"visibility":"Public","body":"@msg_type = msg_type"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L52"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"result=(result:Bool)-instance-method","name":"result=","abstract":false,"args":[{"name":"result","external_name":"result","restriction":"Bool"}],"args_string":"(result : Bool)","args_html":"(result : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L52"},"def":{"name":"result=","args":[{"name":"result","external_name":"result","restriction":"Bool"}],"visibility":"Public","body":"@result = result"}}]},{"html_id":"drivers/Floorsense/Response","path":"Floorsense/Response.html","kind":"class","full_name":"Floorsense::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L38"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"info-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L42"},"def":{"name":"info","visibility":"Public","body":"@info || (JSON.parse(\"{}\"))"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L39"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L37"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L36"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/RFID","path":"Floorsense/RFID.html","kind":"class","full_name":"Floorsense::RFID","name":"RFID","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L397"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L398"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"csn:String-instance-method","name":"csn","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L400"},"def":{"name":"csn","return_type":"String","visibility":"Public","body":"@csn"}},{"html_id":"csn=(csn:String)-instance-method","name":"csn=","abstract":false,"args":[{"name":"csn","external_name":"csn","restriction":"String"}],"args_string":"(csn : String)","args_html":"(csn : String)","location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L400"},"def":{"name":"csn=","args":[{"name":"csn","external_name":"csn","restriction":"String"}],"visibility":"Public","body":"@csn = csn"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L402"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L402"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L401"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L401"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Setting","path":"Floorsense/Setting.html","kind":"class","full_name":"Floorsense::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L66"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L66"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L65"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L65"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Floorsense/User","path":"Floorsense/User.html","kind":"class","full_name":"Floorsense::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L358"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L359"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L364"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L364"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L362"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L362"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expiry:Int64|Nil-instance-method","name":"expiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L366"},"def":{"name":"expiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"expiry=(expiry:Int64|Nil)-instance-method","name":"expiry=","abstract":false,"args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(expiry : Int64 | Nil)","args_html":"(expiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L366"},"def":{"name":"expiry=","args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@expiry = expiry"}},{"html_id":"extid:String|Nil-instance-method","name":"extid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L371"},"def":{"name":"extid","return_type":"String | ::Nil","visibility":"Public","body":"@extid"}},{"html_id":"extid=(extid:String|Nil)-instance-method","name":"extid=","abstract":false,"args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"args_string":"(extid : String | Nil)","args_html":"(extid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L371"},"def":{"name":"extid=","args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@extid = extid"}},{"html_id":"lastlogin:Int64|Nil-instance-method","name":"lastlogin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin","return_type":"Int64 | ::Nil","visibility":"Public","body":"@lastlogin"}},{"html_id":"lastlogin=(lastlogin:Int64|Nil)-instance-method","name":"lastlogin=","abstract":false,"args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"args_string":"(lastlogin : Int64 | Nil)","args_html":"(lastlogin : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin=","args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@lastlogin = lastlogin"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L363"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L363"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"pin:String|Nil-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L368"},"def":{"name":"pin","return_type":"String | ::Nil","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String|Nil)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(pin : String | Nil)","args_html":"(pin : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L368"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"privacy:Int32|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L373"},"def":{"name":"privacy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Int32|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"args_string":"(privacy : Int32 | Nil)","args_html":"(privacy : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L373"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reslimit:Int64|Nil-instance-method","name":"reslimit","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L367"},"def":{"name":"reslimit","return_type":"Int64 | ::Nil","visibility":"Public","body":"@reslimit"}},{"html_id":"reslimit=(reslimit:Int64|Nil)-instance-method","name":"reslimit=","abstract":false,"args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"args_string":"(reslimit : Int64 | Nil)","args_html":"(reslimit : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L367"},"def":{"name":"reslimit=","args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@reslimit = reslimit"}},{"html_id":"ugroupid:Int64|Nil-instance-method","name":"ugroupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ugroupid"}},{"html_id":"ugroupid=(ugroupid:Int64|Nil)-instance-method","name":"ugroupid=","abstract":false,"args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"args_string":"(ugroupid : Int64 | Nil)","args_html":"(ugroupid : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid=","args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ugroupid = ugroupid"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L361"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L361"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"uidtoken:String|Nil-instance-method","name":"uidtoken","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken","return_type":"String | ::Nil","visibility":"Public","body":"@uidtoken"}},{"html_id":"uidtoken=(uidtoken:String|Nil)-instance-method","name":"uidtoken=","abstract":false,"args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"args_string":"(uidtoken : String | Nil)","args_html":"(uidtoken : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken=","args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uidtoken = uidtoken"}},{"html_id":"usertype:String|Nil-instance-method","name":"usertype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L372"},"def":{"name":"usertype","return_type":"String | ::Nil","visibility":"Public","body":"@usertype"}},{"html_id":"usertype=(usertype:String|Nil)-instance-method","name":"usertype=","abstract":false,"args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"args_string":"(usertype : String | Nil)","args_html":"(usertype : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L372"},"def":{"name":"usertype=","args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usertype = usertype"}}]},{"html_id":"drivers/Floorsense/UserGroup","path":"Floorsense/UserGroup.html","kind":"class","full_name":"Floorsense::UserGroup","name":"UserGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L198"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L198"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L196"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L196"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L197"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L197"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Floorsense/UserLocation","path":"Floorsense/UserLocation.html","kind":"class","full_name":"Floorsense::UserLocation","name":"UserLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool|Nil-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L225"},"def":{"name":"active","return_type":"Bool | ::Nil","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool|Nil)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil)","args_html":"(active : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L225"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@active = active"}},{"html_id":"cid:Int32|Nil-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L220"},"def":{"name":"cid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32|Nil)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"args_string":"(cid : Int32 | Nil)","args_html":"(cid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L220"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool|Nil-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L224"},"def":{"name":"confirmed","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool|Nil)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"args_string":"(confirmed : Bool | Nil)","args_html":"(confirmed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L224"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"finish:Time|Nil-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L213"},"def":{"name":"finish","return_type":"Time | ::Nil","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Time|Nil)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"args_string":"(finish : Time | Nil)","args_html":"(finish : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L213"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"floorname:String|Nil-instance-method","name":"floorname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L219"},"def":{"name":"floorname","return_type":"String | ::Nil","visibility":"Public","body":"@floorname"}},{"html_id":"floorname=(floorname:String|Nil)-instance-method","name":"floorname=","abstract":false,"args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"args_string":"(floorname : String | Nil)","args_html":"(floorname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L219"},"def":{"name":"floorname=","args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floorname = floorname"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L217"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L217"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"groupname:String|Nil-instance-method","name":"groupname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L222"},"def":{"name":"groupname","return_type":"String | ::Nil","visibility":"Public","body":"@groupname"}},{"html_id":"groupname=(groupname:String|Nil)-instance-method","name":"groupname=","abstract":false,"args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"args_string":"(groupname : String | Nil)","args_html":"(groupname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L222"},"def":{"name":"groupname=","args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@groupname = groupname"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L218"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L218"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L204"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L204"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"occupied:Bool|Nil-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L216"},"def":{"name":"occupied","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool|Nil)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"args_string":"(occupied : Bool | Nil)","args_html":"(occupied : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L216"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32|Nil-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32|Nil)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"args_string":"(occupiedtime : Int32 | Nil)","args_html":"(occupiedtime : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L215"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L215"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L223"},"def":{"name":"privacy","return_type":"Bool | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(privacy : Bool | Nil)","args_html":"(privacy : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L223"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"start:Time|Nil-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L210"},"def":{"name":"start","return_type":"Time | ::Nil","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Time|Nil)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"args_string":"(start : Time | Nil)","args_html":"(start : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L210"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L205"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L205"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Voucher","path":"Floorsense/Voucher.html","kind":"class","full_name":"Floorsense::Voucher","name":"Voucher","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L429"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L430"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardswipe:Bool-instance-method","name":"cardswipe","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe","return_type":"Bool","visibility":"Public","body":"@cardswipe"}},{"html_id":"cardswipe=(cardswipe:Bool)-instance-method","name":"cardswipe=","abstract":false,"args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"args_string":"(cardswipe : Bool)","args_html":"(cardswipe : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe=","args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"visibility":"Public","body":"@cardswipe = cardswipe"}},{"html_id":"controller_id:String-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L442"},"def":{"name":"controller_id","return_type":"String","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:String)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"args_string":"(controller_id : String)","args_html":"(controller_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L442"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L448"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L448"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"duration:Int64-instance-method","name":"duration","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L450"},"def":{"name":"duration","return_type":"Int64","visibility":"Public","body":"@duration"}},{"html_id":"duration=(duration:Int64)-instance-method","name":"duration=","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"args_string":"(duration : Int64)","args_html":"(duration : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L450"},"def":{"name":"duration=","args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"visibility":"Public","body":"@duration = duration"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L433"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L433"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expired:Int64-instance-method","name":"expired","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L451"},"def":{"name":"expired","return_type":"Int64","visibility":"Public","body":"@expired"}},{"html_id":"expired=(expired:Int64)-instance-method","name":"expired=","abstract":false,"args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"args_string":"(expired : Int64)","args_html":"(expired : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L451"},"def":{"name":"expired=","args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"visibility":"Public","body":"@expired = expired"}},{"html_id":"lastuse:Int64-instance-method","name":"lastuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L432"},"def":{"name":"lastuse","return_type":"Int64","visibility":"Public","body":"@lastuse"}},{"html_id":"lastuse=(lastuse:Int64)-instance-method","name":"lastuse=","abstract":false,"args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"args_string":"(lastuse : Int64)","args_html":"(lastuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L432"},"def":{"name":"lastuse=","args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"visibility":"Public","body":"@lastuse = lastuse"}},{"html_id":"locker_key:String-instance-method","name":"locker_key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L439"},"def":{"name":"locker_key","return_type":"String","visibility":"Public","body":"@locker_key"}},{"html_id":"locker_key=(locker_key:String)-instance-method","name":"locker_key=","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L439"},"def":{"name":"locker_key=","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_key = locker_key"}},{"html_id":"maxuse:Int64-instance-method","name":"maxuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L453"},"def":{"name":"maxuse","return_type":"Int64","visibility":"Public","body":"@maxuse"}},{"html_id":"maxuse=(maxuse:Int64)-instance-method","name":"maxuse=","abstract":false,"args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"args_string":"(maxuse : Int64)","args_html":"(maxuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L453"},"def":{"name":"maxuse=","args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"visibility":"Public","body":"@maxuse = maxuse"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L461"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L461"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L462"},"def":{"name":"notes","return_type":"String","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String"}],"args_string":"(notes : String)","args_html":"(notes : String)","location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L462"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"notified:Int64-instance-method","name":"notified","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L455"},"def":{"name":"notified","return_type":"Int64","visibility":"Public","body":"@notified"}},{"html_id":"notified=(notified:Int64)-instance-method","name":"notified=","abstract":false,"args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"args_string":"(notified : Int64)","args_html":"(notified : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L455"},"def":{"name":"notified=","args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"visibility":"Public","body":"@notified = notified"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L447"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L447"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"release:Bool-instance-method","name":"release","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L449"},"def":{"name":"release","return_type":"Bool","visibility":"Public","body":"@release"}},{"html_id":"release=(release:Bool)-instance-method","name":"release=","abstract":false,"args":[{"name":"release","external_name":"release","restriction":"Bool"}],"args_string":"(release : Bool)","args_html":"(release : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L449"},"def":{"name":"release=","args":[{"name":"release","external_name":"release","restriction":"Bool"}],"visibility":"Public","body":"@release = release"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L454"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L454"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"template:String-instance-method","name":"template","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L460"},"def":{"name":"template","return_type":"String","visibility":"Public","body":"@template"}},{"html_id":"template=(template:String)-instance-method","name":"template=","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"}],"args_string":"(template : String)","args_html":"(template : String)","location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L460"},"def":{"name":"template=","args":[{"name":"template","external_name":"template","restriction":"String"}],"visibility":"Public","body":"@template = template"}},{"html_id":"unlock:Bool-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L459"},"def":{"name":"unlock","return_type":"Bool","visibility":"Public","body":"@unlock"}},{"html_id":"unlock=(unlock:Bool)-instance-method","name":"unlock=","abstract":false,"args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"args_string":"(unlock : Bool)","args_html":"(unlock : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L459"},"def":{"name":"unlock=","args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"visibility":"Public","body":"@unlock = unlock"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L467"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L467"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}},{"html_id":"usecount:Int64-instance-method","name":"usecount","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L452"},"def":{"name":"usecount","return_type":"Int64","visibility":"Public","body":"@usecount"}},{"html_id":"usecount=(usecount:Int64)-instance-method","name":"usecount=","abstract":false,"args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"args_string":"(usecount : Int64)","args_html":"(usecount : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L452"},"def":{"name":"usecount=","args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"visibility":"Public","body":"@usecount = usecount"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L466"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L466"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"validfrom:Int64-instance-method","name":"validfrom","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L456"},"def":{"name":"validfrom","return_type":"Int64","visibility":"Public","body":"@validfrom"}},{"html_id":"validfrom=(validfrom:Int64)-instance-method","name":"validfrom=","abstract":false,"args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"args_string":"(validfrom : Int64)","args_html":"(validfrom : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L456"},"def":{"name":"validfrom=","args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"visibility":"Public","body":"@validfrom = validfrom"}},{"html_id":"validto:Int64-instance-method","name":"validto","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L457"},"def":{"name":"validto","return_type":"Int64","visibility":"Public","body":"@validto"}},{"html_id":"validto=(validto:Int64)-instance-method","name":"validto=","abstract":false,"args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"args_string":"(validto : Int64)","args_html":"(validto : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L457"},"def":{"name":"validto=","args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"visibility":"Public","body":"@validto = validto"}},{"html_id":"voucher_id:String-instance-method","name":"voucher_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id","return_type":"String","visibility":"Public","body":"@voucher_id"}},{"html_id":"voucher_id=(voucher_id:String)-instance-method","name":"voucher_id=","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"args_string":"(voucher_id : String)","args_html":"(voucher_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id=","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"visibility":"Public","body":"@voucher_id = voucher_id"}}]}]},{"html_id":"drivers/Freespace","path":"Freespace.html","kind":"module","full_name":"Freespace","name":"Freespace","abstract":false,"locations":[{"filename":"src/freespace/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Freespace/Category","path":"Freespace/Category.html","kind":"class","full_name":"Freespace::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"color_scheme:String|Nil-instance-method","name":"color_scheme","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L75"},"def":{"name":"color_scheme","return_type":"String | ::Nil","visibility":"Public","body":"@color_scheme"}},{"html_id":"color_scheme=(color_scheme:String|Nil)-instance-method","name":"color_scheme=","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"args_string":"(color_scheme : String | Nil)","args_html":"(color_scheme : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L75"},"def":{"name":"color_scheme=","args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"visibility":"Public","body":"@color_scheme = color_scheme"}},{"html_id":"icon_url:String|Nil-instance-method","name":"icon_url","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L71"},"def":{"name":"icon_url","return_type":"String | ::Nil","visibility":"Public","body":"@icon_url"}},{"html_id":"icon_url=(icon_url:String|Nil)-instance-method","name":"icon_url=","abstract":false,"args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"args_string":"(icon_url : String | Nil)","args_html":"(icon_url : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L71"},"def":{"name":"icon_url=","args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@icon_url = icon_url"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L58"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L59"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L59"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"ordering_index:Int32|Nil-instance-method","name":"ordering_index","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L78"},"def":{"name":"ordering_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@ordering_index"}},{"html_id":"ordering_index=(ordering_index:Int32|Nil)-instance-method","name":"ordering_index=","abstract":false,"args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"args_string":"(ordering_index : Int32 | Nil)","args_html":"(ordering_index : Int32 | Nil)","location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L78"},"def":{"name":"ordering_index=","args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@ordering_index = ordering_index"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L62"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L62"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"show_in_analytics:Bool-instance-method","name":"show_in_analytics","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics","return_type":"Bool","visibility":"Public","body":"@show_in_analytics"}},{"html_id":"show_in_analytics=(show_in_analytics:Bool)-instance-method","name":"show_in_analytics=","abstract":false,"args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"args_string":"(show_in_analytics : Bool)","args_html":"(show_in_analytics : Bool)","location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics=","args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"visibility":"Public","body":"@show_in_analytics = show_in_analytics"}},{"html_id":"show_on_signage:Bool-instance-method","name":"show_on_signage","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage","return_type":"Bool","visibility":"Public","body":"@show_on_signage"}},{"html_id":"show_on_signage=(show_on_signage:Bool)-instance-method","name":"show_on_signage=","abstract":false,"args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"args_string":"(show_on_signage : Bool)","args_html":"(show_on_signage : Bool)","location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage=","args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"visibility":"Public","body":"@show_on_signage = show_on_signage"}}]},{"html_id":"drivers/Freespace/Device","path":"Freespace/Device.html","kind":"class","full_name":"Freespace::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L84"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L84"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L87"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L87"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Freespace/Location","path":"Freespace/Location.html","kind":"class","full_name":"Freespace::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L37"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L37"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"policy:Bool-instance-method","name":"policy","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L44"},"def":{"name":"policy","return_type":"Bool","visibility":"Public","body":"@policy"}},{"html_id":"policy=(policy:Bool)-instance-method","name":"policy=","abstract":false,"args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"args_string":"(policy : Bool)","args_html":"(policy : Bool)","location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L44"},"def":{"name":"policy=","args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"visibility":"Public","body":"@policy = policy"}},{"html_id":"raw:Bool-instance-method","name":"raw","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L43"},"def":{"name":"raw","return_type":"Bool","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:Bool)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"args_string":"(raw : Bool)","args_html":"(raw : Bool)","location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L43"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"visibility":"Public","body":"@raw = raw"}}]},{"html_id":"drivers/Freespace/SensorAPI","path":"Freespace/SensorAPI.html","kind":"class","full_name":"Freespace::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/sensor_api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/freespace/sensor_api.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L207"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"client:STOMP::Client-instance-method","name":"client","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L54"},"def":{"name":"client","return_type":"STOMP::Client","visibility":"Public","body":"if (__temp_1 = @client).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SensorAPI#client cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"client?:STOMP::Client|Nil-instance-method","name":"client?","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L54"},"def":{"name":"client?","return_type":"STOMP::Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L66"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nhostname = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\n@client = STOMP::Client.new(hostname)\nsend(client.stomp.to_s)\nschedule.clear\nschedule.in(5.seconds) do\n @auth_key = nil\nend\nschedule.every(10.seconds) do\n heart_beat\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L212"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nloctions = @zone_mappings[zone_id]?\nif loctions\nelse\n return [] of Nil\nend\nloctions.flat_map do |loc_id|\n location_id = loc_id.to_i64\n loc_details = @floor_mappings[loc_id]\n @space_state.values.compact_map do |activity|\n if ((activity.location_id != location_id) || (activity.state == 0)) || activity.capacity > 1\n next\n end\n {location: activity.capacity == 1 ? \"desk\" : \"area\", at_location: activity.state, map_id: activity.name, level: loc_details[:level_id], building: loc_details[:building_id], capacity: activity.capacity}\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L79"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n@spaces.clear\n@auth_key = @client = nil\n"}},{"html_id":"get_location(location_id:String|Int64):Array(Space)-instance-method","name":"get_location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"args_string":"(location_id : String | Int64) : Array(Space)","args_html":"(location_id : String | Int64) : Array(Space)","location":{"filename":"src/freespace/sensor_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L113"},"def":{"name":"get_location","args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"return_type":"Array(Space)","visibility":"Public","body":"response = http(\"POST\", \"/api/locations/#{location_id}/spaces\", headers: {\"X-Auth-Key\" => get_token, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nif response.success?\nelse\n raise(\"issue obtaining to location #{location_id}: status code #{response.status_code}\\n#{response.body}\")\nend\nspaces = Array(Space).from_json(response.body)\nspaces.each do |space|\n @spaces[space.id] = space\nend\nspaces\n"}},{"html_id":"get_token:String-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L135"},"def":{"name":"get_token","return_type":"String","visibility":"Public","body":"auth_key = @auth_key\nif auth_key\n return auth_key\nend\nresponse = http(\"POST\", \"/login\", headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"login response: #{response.body}\"\nend\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nschedule.in(5.seconds) do\n @auth_key = nil\nend\n@auth_key = response.headers[\"X-Auth-Key\"]\n"}},{"html_id":"heart_beat-instance-method","name":"heart_beat","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L86"},"def":{"name":"heart_beat","visibility":"Public","body":"send((client.send(\"/beat/#{Time.utc.to_unix}\")).to_s, wait: false, priority: 0)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L197"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/freespace/sensor_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L202"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_mappings.clear\n@floor_mappings.each do |location_id, details|\n @zone_mappings[details[:level_id]] << location_id\n @zone_mappings[details[:building_id]] << location_id\nend\nif @connected\n disconnect\nend\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/freespace/sensor_api.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L157"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"frame = STOMP::Frame.new(bytes)\ncase frame.command\nwhen .connected?\n client.negotiate(frame)\n @floor_mappings.keys.each do |location_id|\n begin\n subscribe_location(location_id)\n rescue error\n logger.error(exception: error) do\n \"failed to subscribe to #{location_id}, skipping\"\n end\n end\n end\nwhen .message?\n activity = SpaceActivity.from_json(frame.body_text)\n if space = @spaces[activity.space_id]?\n activity.location_id = space.location_id\n activity.capacity = space.capacity\n activity.name = space.name\n @space_state[activity.space_id] = activity\n self[\"space-#{activity.space_id}\"] = {location: space.location_id, name: space.name, capacity: space.capacity, count: activity.state, last_updated: activity.utc_epoch}\n self[\"last_change\"] = Time.utc.to_unix\n else\n logger.warn do\n \"unknown space id: #{activity.space_id}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"spaces_details:Hash(Int64,Freespace::Space)-instance-method","name":"spaces_details","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L103"},"def":{"name":"spaces_details","visibility":"Public","body":"@spaces"}},{"html_id":"spaces_state:Hash(Int64,Freespace::SpaceActivity)-instance-method","name":"spaces_state","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L108"},"def":{"name":"spaces_state","visibility":"Public","body":"@space_state"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","doc":"We need an API key to connect to the websocket","summary":"

We need an API key to connect to the websocket

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L48"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"X-Auth-Key\" => get_token}"}}]},{"html_id":"drivers/Freespace/Space","path":"Freespace/Space.html","kind":"class","full_name":"Freespace::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L92"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L93"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L115"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L115"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:Category-instance-method","name":"category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L105"},"def":{"name":"category","return_type":"Category","visibility":"Public","body":"@category"}},{"html_id":"category=(category:Category)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"Category"}],"args_string":"(category : Category)","args_html":"(category : Category)","location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L105"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"Category"}],"visibility":"Public","body":"@category = category"}},{"html_id":"counted:Bool-instance-method","name":"counted","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L124"},"def":{"name":"counted","return_type":"Bool","visibility":"Public","body":"@counted"}},{"html_id":"counted=(counted:Bool)-instance-method","name":"counted=","abstract":false,"args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"args_string":"(counted : Bool)","args_html":"(counted : Bool)","location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L124"},"def":{"name":"counted=","args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"visibility":"Public","body":"@counted = counted"}},{"html_id":"department:Category-instance-method","name":"department","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L106"},"def":{"name":"department","return_type":"Category","visibility":"Public","body":"@department"}},{"html_id":"department=(department:Category)-instance-method","name":"department=","abstract":false,"args":[{"name":"department","external_name":"department","restriction":"Category"}],"args_string":"(department : Category)","args_html":"(department : Category)","location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L106"},"def":{"name":"department=","args":[{"name":"department","external_name":"department","restriction":"Category"}],"visibility":"Public","body":"@department = department"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L110"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device=(device:Device)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Device"}],"args_string":"(device : Device)","args_html":"(device : Device)","location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L110"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"Device"}],"visibility":"Public","body":"@device = device"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L95"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"live:Bool-instance-method","name":"live","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L114"},"def":{"name":"live","return_type":"Bool","visibility":"Public","body":"@live"}},{"html_id":"live=(live:Bool)-instance-method","name":"live=","abstract":false,"args":[{"name":"live","external_name":"live","restriction":"Bool"}],"args_string":"(live : Bool)","args_html":"(live : Bool)","location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L114"},"def":{"name":"live=","args":[{"name":"live","external_name":"live","restriction":"Bool"}],"visibility":"Public","body":"@live = live"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L96"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L96"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L123"},"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L123"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"marker:Hash(String,JSON::Any)-instance-method","name":"marker","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L101"},"def":{"name":"marker","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@marker"}},{"html_id":"marker=(marker:Hash(String,JSON::Any))-instance-method","name":"marker=","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"args_string":"(marker : Hash(String, JSON::Any))","args_html":"(marker : Hash(String, JSON::Any))","location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L101"},"def":{"name":"marker=","args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@marker = marker"}},{"html_id":"marker_unique_id:String|Nil-instance-method","name":"marker_unique_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id","return_type":"String | ::Nil","visibility":"Public","body":"@marker_unique_id"}},{"html_id":"marker_unique_id=(marker_unique_id:String|Nil)-instance-method","name":"marker_unique_id=","abstract":false,"args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"args_string":"(marker_unique_id : String | Nil)","args_html":"(marker_unique_id : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id=","args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@marker_unique_id = marker_unique_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L97"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L97"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"sensing_policy_id:Int32-instance-method","name":"sensing_policy_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id","return_type":"Int32","visibility":"Public","body":"@sensing_policy_id"}},{"html_id":"sensing_policy_id=(sensing_policy_id:Int32)-instance-method","name":"sensing_policy_id=","abstract":false,"args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"args_string":"(sensing_policy_id : Int32)","args_html":"(sensing_policy_id : Int32)","location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id=","args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"visibility":"Public","body":"@sensing_policy_id = sensing_policy_id"}},{"html_id":"serial:Int32-instance-method","name":"serial","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L120"},"def":{"name":"serial","return_type":"Int32","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:Int32)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"args_string":"(serial : Int32)","args_html":"(serial : Int32)","location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L120"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"visibility":"Public","body":"@serial = serial"}},{"html_id":"srf:SRF-instance-method","name":"srf","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L98"},"def":{"name":"srf","return_type":"SRF","visibility":"Public","body":"@srf"}},{"html_id":"srf=(srf:SRF)-instance-method","name":"srf=","abstract":false,"args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"args_string":"(srf : SRF)","args_html":"(srf : SRF)","location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L98"},"def":{"name":"srf=","args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"visibility":"Public","body":"@srf = srf"}},{"html_id":"sub_category:Category-instance-method","name":"sub_category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L104"},"def":{"name":"sub_category","return_type":"Category","visibility":"Public","body":"@sub_category"}},{"html_id":"sub_category=(sub_category:Category)-instance-method","name":"sub_category=","abstract":false,"args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"args_string":"(sub_category : Category)","args_html":"(sub_category : Category)","location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L104"},"def":{"name":"sub_category=","args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"visibility":"Public","body":"@sub_category = sub_category"}}]},{"html_id":"drivers/Freespace/SpaceActivity","path":"Freespace/SpaceActivity.html","kind":"class","full_name":"Freespace::SpaceActivity","name":"SpaceActivity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @capacity).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#capacity cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L24"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"capacity?:Int32|Nil-instance-method","name":"capacity?","abstract":false,"def":{"name":"capacity?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L7"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L7"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @location_id).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#location_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L21"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_id?:Int64|Nil-instance-method","name":"location_id?","abstract":false,"def":{"name":"location_id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L27"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"presence?-instance-method","name":"presence?","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L16"},"def":{"name":"presence?","visibility":"Public","body":"@state > 0"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"state:Int32-instance-method","name":"state","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L14"},"def":{"name":"state","return_type":"Int32","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int32)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int32"}],"args_string":"(state : Int32)","args_html":"(state : Int32)","location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L14"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int32"}],"visibility":"Public","body":"@state = state"}},{"html_id":"utc_epoch:Int64-instance-method","name":"utc_epoch","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch","return_type":"Int64","visibility":"Public","body":"@utc_epoch"}},{"html_id":"utc_epoch=(utc_epoch:Int64)-instance-method","name":"utc_epoch=","abstract":false,"args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"args_string":"(utc_epoch : Int64)","args_html":"(utc_epoch : Int64)","location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch=","args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"visibility":"Public","body":"@utc_epoch = utc_epoch"}}]},{"html_id":"drivers/Freespace/SRF","path":"Freespace/SRF.html","kind":"class","full_name":"Freespace::SRF","name":"SRF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Int32-instance-method","name":"x","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L50"},"def":{"name":"x","return_type":"Int32","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Int32)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"}],"args_string":"(x : Int32)","args_html":"(x : Int32)","location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L50"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Int32"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Int32-instance-method","name":"y","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L51"},"def":{"name":"y","return_type":"Int32","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Int32)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(y : Int32)","args_html":"(y : Int32)","location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L51"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"@y = y"}},{"html_id":"z:Int32-instance-method","name":"z","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L52"},"def":{"name":"z","return_type":"Int32","visibility":"Public","body":"@z"}},{"html_id":"z=(z:Int32)-instance-method","name":"z=","abstract":false,"args":[{"name":"z","external_name":"z","restriction":"Int32"}],"args_string":"(z : Int32)","args_html":"(z : Int32)","location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L52"},"def":{"name":"z=","args":[{"name":"z","external_name":"z","restriction":"Int32"}],"visibility":"Public","body":"@z = z"}}]}]},{"html_id":"drivers/Gallagher","path":"Gallagher.html","kind":"module","full_name":"Gallagher","name":"Gallagher","abstract":false,"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Gallagher/AccessGroup","path":"Gallagher/AccessGroup.html","kind":"class","full_name":"Gallagher::AccessGroup","name":"AccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L185"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L186"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholders:NamedTuple(href:String)-instance-method","name":"cardholders","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@cardholders"}},{"html_id":"cardholders=(cardholders:NamedTuple(href:String))-instance-method","name":"cardholders=","abstract":false,"args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"args_string":"(cardholders : NamedTuple(href: String))","args_html":"(cardholders : NamedTuple(href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders=","args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"visibility":"Public","body":"@cardholders = cardholders"}},{"html_id":"children:Array(NamedTuple(href:String,name:String))|Nil-instance-method","name":"children","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children","return_type":"Array(NamedTuple(href: String, name: String)) | ::Nil","visibility":"Public","body":"@children"}},{"html_id":"children=(children:Array(NamedTuple(href:String,name:String))|Nil)-instance-method","name":"children=","abstract":false,"args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"args_string":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","args_html":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children=","args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"visibility":"Public","body":"@children = children"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(id:String,href:String)-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division","return_type":"NamedTuple(id: String, href: String)","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(id:String,href:String))-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"args_string":"(division : NamedTuple(id: String, href: String))","args_html":"(division : NamedTuple(id: String, href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"visibility":"Public","body":"@division = division"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent:NamedTuple(href:String|Nil,name:String)|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent","return_type":"NamedTuple(href: String | ::Nil, name: String) | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:NamedTuple(href:String|Nil,name:String)|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"args_string":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","args_html":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"visibility":"Public","body":"@parent = parent"}}]},{"html_id":"drivers/Gallagher/AccessGroupMembership","path":"Gallagher/AccessGroupMembership.html","kind":"class","full_name":"Gallagher::AccessGroupMembership","name":"AccessGroupMembership","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L213"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L214"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholder:NamedTuple(href:String,name:String)-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder","return_type":"NamedTuple(href: String, name: String)","visibility":"Public","body":"@cardholder"}},{"html_id":"cardholder=(cardholder:NamedTuple(href:String,name:String))-instance-method","name":"cardholder=","abstract":false,"args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"args_string":"(cardholder : NamedTuple(href: String, name: String))","args_html":"(cardholder : NamedTuple(href: String, name: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder=","args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"visibility":"Public","body":"@cardholder = cardholder"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Card","path":"Gallagher/Card.html","kind":"struct","full_name":"Gallagher::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(href:Nil|String,status:NamedTuple(value:String,type:Nil|String)|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"args_string":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","args_html":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L133"},"def":{"name":"new","args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(href, status)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ble_facility_id:Int64|Nil-instance-method","name":"ble_facility_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ble_facility_id"}},{"html_id":"ble_facility_id=(ble_facility_id:Int64|Nil)-instance-method","name":"ble_facility_id=","abstract":false,"args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"args_string":"(ble_facility_id : Int64 | Nil)","args_html":"(ble_facility_id : Int64 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id=","args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ble_facility_id = ble_facility_id"}},{"html_id":"card_serial_number:String|Nil-instance-method","name":"card_serial_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"card_serial_number=(card_serial_number:String|Nil)-instance-method","name":"card_serial_number=","abstract":false,"args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"args_string":"(card_serial_number : String | Nil)","args_html":"(card_serial_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number=","args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@card_serial_number = card_serial_number"}},{"html_id":"credential_class:String|Nil-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class","return_type":"String | ::Nil","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String|Nil)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"args_string":"(credential_class : String | Nil)","args_html":"(credential_class : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"credential_id:String|Nil-instance-method","name":"credential_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id","return_type":"String | ::Nil","visibility":"Public","body":"@credential_id"}},{"html_id":"credential_id=(credential_id:String|Nil)-instance-method","name":"credential_id=","abstract":false,"args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"args_string":"(credential_id : String | Nil)","args_html":"(credential_id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id=","args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_id = credential_id"}},{"html_id":"e2e_key:String|Nil-instance-method","name":"e2e_key","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key","return_type":"String | ::Nil","visibility":"Public","body":"@e2e_key"}},{"html_id":"e2e_key=(e2e_key:String|Nil)-instance-method","name":"e2e_key=","abstract":false,"args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"args_string":"(e2e_key : String | Nil)","args_html":"(e2e_key : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key=","args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@e2e_key = e2e_key"}},{"html_id":"facility_code:String|Nil-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code","return_type":"String | ::Nil","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String|Nil)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"args_string":"(facility_code : String | Nil)","args_html":"(facility_code : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"invitation:Invitation|Nil-instance-method","name":"invitation","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation","return_type":"Invitation | ::Nil","visibility":"Public","body":"@invitation"}},{"html_id":"invitation=(invitation:Invitation|Nil)-instance-method","name":"invitation=","abstract":false,"args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"args_string":"(invitation : Invitation | Nil)","args_html":"(invitation : Invitation | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation=","args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"visibility":"Public","body":"@invitation = invitation"}},{"html_id":"issue_level:Int32|Nil-instance-method","name":"issue_level","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_level"}},{"html_id":"issue_level=(issue_level:Int32|Nil)-instance-method","name":"issue_level=","abstract":false,"args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"args_string":"(issue_level : Int32 | Nil)","args_html":"(issue_level : Int32 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level=","args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@issue_level = issue_level"}},{"html_id":"number:String|Nil-instance-method","name":"number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number","return_type":"String | ::Nil","visibility":"Public","body":"@number"}},{"html_id":"number=(number:String|Nil)-instance-method","name":"number=","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(number : String | Nil)","args_html":"(number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number=","args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@number = number"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:NamedTuple(href:String|Nil,name:String|Nil)|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:NamedTuple(href:String|Nil,name:String|Nil)|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"args_string":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","args_html":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Cardholder","path":"Gallagher/Cardholder.html","kind":"class","full_name":"Gallagher::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(first_name:Nil|String,last_name:Nil|String,short_name:Nil|String,description:Nil|String,authorised:Bool|Nil,cards:Array(Gallagher::Card)|Hash(String,Array(Gallagher::Card))|Nil,access_groups:Array(Gallagher::CardholderAccessGroup)|Hash(String,Array(Gallagher::CardholderAccessGroup))|Nil,division:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"args_string":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","args_html":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(first_name, last_name, short_name, description, authorised, cards, access_groups, division)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil-instance-method","name":"access_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups","return_type":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil","visibility":"Public","body":"@access_groups"}},{"html_id":"access_groups=(access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil)-instance-method","name":"access_groups=","abstract":false,"args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"args_string":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","args_html":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups=","args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"visibility":"Public","body":"@access_groups = access_groups"}},{"html_id":"authorised:Bool|Nil-instance-method","name":"authorised","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised","return_type":"Bool | ::Nil","visibility":"Public","body":"@authorised"}},{"html_id":"authorised=(authorised:Bool|Nil)-instance-method","name":"authorised=","abstract":false,"args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"args_string":"(authorised : Bool | Nil)","args_html":"(authorised : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised=","args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@authorised = authorised"}},{"html_id":"cards:Array(Card)|Hash(String,Array(Card))|Nil-instance-method","name":"cards","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards","return_type":"Array(Card) | Hash(String, Array(Card)) | ::Nil","visibility":"Public","body":"@cards"}},{"html_id":"cards=(cards:Array(Card)|Hash(String,Array(Card))|Nil)-instance-method","name":"cards=","abstract":false,"args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"args_string":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","args_html":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards=","args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"visibility":"Public","body":"@cards = cards"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(href:String)|Nil-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(href:String)|Nil)-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(division : NamedTuple(href: String) | Nil)","args_html":"(division : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@division = division"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_accessed:Time|Nil-instance-method","name":"last_accessed","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed","return_type":"Time | ::Nil","visibility":"Public","body":"@last_accessed"}},{"html_id":"last_accessed=(last_accessed:Time|Nil)-instance-method","name":"last_accessed=","abstract":false,"args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"args_string":"(last_accessed : Time | Nil)","args_html":"(last_accessed : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed=","args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@last_accessed = last_accessed"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"usercode:String|Nil-instance-method","name":"usercode","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode","return_type":"String | ::Nil","visibility":"Public","body":"@usercode"}},{"html_id":"usercode=(usercode:String|Nil)-instance-method","name":"usercode=","abstract":false,"args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"args_string":"(usercode : String | Nil)","args_html":"(usercode : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode=","args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usercode = usercode"}}]},{"html_id":"drivers/Gallagher/CardholderAccessGroup","path":"Gallagher/CardholderAccessGroup.html","kind":"class","full_name":"Gallagher::CardholderAccessGroup","name":"CardholderAccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(access_group:NamedTuple(href:Nil|String,name:Nil|String),from:Time|Nil=nil,until__arg0:Time|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"args_string":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","args_html":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L181"},"def":{"name":"new","args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_group, from, __arg0)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"access_group:NamedTuple(href:String|Nil,name:String|Nil)-instance-method","name":"access_group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil)","visibility":"Public","body":"@access_group"}},{"html_id":"access_group=(access_group:NamedTuple(href:String|Nil,name:String|Nil))-instance-method","name":"access_group=","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"args_string":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","args_html":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group=","args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"visibility":"Public","body":"@access_group = access_group"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/CardType","path":"Gallagher/CardType.html","kind":"class","full_name":"Gallagher::CardType","name":"CardType","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_card_states:Array(String)-instance-method","name":"available_card_states","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states","return_type":"Array(String)","visibility":"Public","body":"@available_card_states"}},{"html_id":"available_card_states=(available_card_states:Array(String))-instance-method","name":"available_card_states=","abstract":false,"args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"args_string":"(available_card_states : Array(String))","args_html":"(available_card_states : Array(String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states=","args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"visibility":"Public","body":"@available_card_states = available_card_states"}},{"html_id":"credential_class:String-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class","return_type":"String","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"args_string":"(credential_class : String)","args_html":"(credential_class : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"facility_code:String-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code","return_type":"String","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"args_string":"(facility_code : String)","args_html":"(facility_code : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"maximum_number:String|Nil-instance-method","name":"maximum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number","return_type":"String | ::Nil","visibility":"Public","body":"@maximum_number"}},{"html_id":"maximum_number=(maximum_number:String|Nil)-instance-method","name":"maximum_number=","abstract":false,"args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"args_string":"(maximum_number : String | Nil)","args_html":"(maximum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number=","args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@maximum_number = maximum_number"}},{"html_id":"minimum_number:String|Nil-instance-method","name":"minimum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number","return_type":"String | ::Nil","visibility":"Public","body":"@minimum_number"}},{"html_id":"minimum_number=(minimum_number:String|Nil)-instance-method","name":"minimum_number=","abstract":false,"args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"args_string":"(minimum_number : String | Nil)","args_html":"(minimum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number=","args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@minimum_number = minimum_number"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/DoorDetails","path":"Gallagher/DoorDetails.html","kind":"class","full_name":"Gallagher::DoorDetails","name":"DoorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L38"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L36"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/Event","path":"Gallagher/Event.html","kind":"struct","full_name":"Gallagher::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L232"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L233"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card:Card|Nil-instance-method","name":"card","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L243"},"def":{"name":"card","return_type":"Card | ::Nil","visibility":"Public","body":"@card"}},{"html_id":"cardholder:IdName|Nil-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L244"},"def":{"name":"cardholder","return_type":"IdName | ::Nil","visibility":"Public","body":"@cardholder"}},{"html_id":"group:IdName-instance-method","name":"group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L235"},"def":{"name":"group","return_type":"IdName","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L239"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"matching_type?(types:Array(Int32)|Nil)-instance-method","name":"matching_type?","abstract":false,"args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"args_string":"(types : Array(Int32) | Nil)","args_html":"(types : Array(Int32) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L246"},"def":{"name":"matching_type?","args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"visibility":"Public","body":"if types\nelse\n return true\nend\ntypes.map(&.to_s).includes?(type.id)\n"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L241"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"source:IdName-instance-method","name":"source","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L237"},"def":{"name":"source","return_type":"IdName","visibility":"Public","body":"@source"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L240"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:IdName-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L236"},"def":{"name":"type","return_type":"IdName","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Gallagher/Events","path":"Gallagher/Events.html","kind":"struct","full_name":"Gallagher::Events","name":"Events","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L252"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L253"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(Event)-instance-method","name":"events","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L255"},"def":{"name":"events","return_type":"Array(Event)","visibility":"Public","body":"@events"}},{"html_id":"update_url-instance-method","name":"update_url","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L258"},"def":{"name":"update_url","visibility":"Public","body":"updates[:href]"}},{"html_id":"updates:NamedTuple(href:String)-instance-method","name":"updates","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L256"},"def":{"name":"updates","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@updates"}}]},{"html_id":"drivers/Gallagher/IdName","path":"Gallagher/IdName.html","kind":"struct","full_name":"Gallagher::IdName","name":"IdName","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L226"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L229"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Gallagher/Invitation","path":"Gallagher/Invitation.html","kind":"class","full_name":"Gallagher::Invitation","name":"Invitation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"mobile=(mobile:String|Nil)-instance-method","name":"mobile=","abstract":false,"args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"args_string":"(mobile : String | Nil)","args_html":"(mobile : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile=","args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mobile = mobile"}},{"html_id":"single_factor_only:Bool|Nil-instance-method","name":"single_factor_only","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@single_factor_only"}},{"html_id":"single_factor_only=(single_factor_only:Bool|Nil)-instance-method","name":"single_factor_only=","abstract":false,"args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"args_string":"(single_factor_only : Bool | Nil)","args_html":"(single_factor_only : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only=","args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@single_factor_only = single_factor_only"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"args_string":"(status : String | Nil)","args_html":"(status : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/Gallagher/PDF","path":"Gallagher/PDF.html","kind":"class","full_name":"Gallagher::PDF","name":"PDF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"doc":"Personal Data Field","summary":"

Personal Data Field

","constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L16"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default:String|Nil-instance-method","name":"default","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default","return_type":"String | ::Nil","visibility":"Public","body":"@default"}},{"html_id":"default=(default:String|Nil)-instance-method","name":"default=","abstract":false,"args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"args_string":"(default : String | Nil)","args_html":"(default : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default=","args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default = default"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"required:Bool|Nil-instance-method","name":"required","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required","return_type":"Bool | ::Nil","visibility":"Public","body":"@required"}},{"html_id":"required=(required:Bool|Nil)-instance-method","name":"required=","abstract":false,"args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"args_string":"(required : Bool | Nil)","args_html":"(required : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required=","args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@required = required"}},{"html_id":"server_display_name:String|Nil-instance-method","name":"server_display_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name","return_type":"String | ::Nil","visibility":"Public","body":"@server_display_name"}},{"html_id":"server_display_name=(server_display_name:String|Nil)-instance-method","name":"server_display_name=","abstract":false,"args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"args_string":"(server_display_name : String | Nil)","args_html":"(server_display_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name=","args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@server_display_name = server_display_name"}},{"html_id":"unique:Bool|Nil-instance-method","name":"unique","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique","return_type":"Bool | ::Nil","visibility":"Public","body":"@unique"}},{"html_id":"unique=(unique:Bool|Nil)-instance-method","name":"unique=","abstract":false,"args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"args_string":"(unique : Bool | Nil)","args_html":"(unique : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique=","args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@unique = unique"}}]},{"html_id":"drivers/Gallagher/RestAPI","path":"Gallagher/RestAPI.html","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"access_group_member?(group_id:String|Int32,cardholder_id:String|Int32):String|Nil-instance-method","name":"access_group_member?","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L402"},"def":{"name":"access_group_member?","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"String | ::Nil","visibility":"Public","body":"group_id = group_id.to_s\ndetails = (get_cardholder(cardholder_id)).access_groups\naccess_groups = case details\nin Array(CardholderAccessGroup)\n details\nin Hash(String, Array(CardholderAccessGroup))\n details.values.flatten\nin Nil\n return nil\nend\naccess = access_groups.find do |group|\n if href = group.access_group[:href]\n href.ends_with?(group_id)\n end\nend\naccess.try(&.href)\n"}},{"html_id":"access_groups_endpoint:String-instance-method","name":"access_groups_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L123"},"def":{"name":"access_groups_endpoint","return_type":"String","visibility":"Public","body":"@access_groups_endpoint"}},{"html_id":"access_zones_endpoint:String-instance-method","name":"access_zones_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L124"},"def":{"name":"access_zones_endpoint","return_type":"String","visibility":"Public","body":"@access_zones_endpoint"}},{"html_id":"add_access_group_member(group_id:String|Int32,cardholder_id:String|Int32,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"add_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L433"},"def":{"name":"add_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"if from_unix\n from_time = Time.unix(from_unix)\nend\nif until_unix\n until_time = Time.unix(until_unix)\nend\ngroup = CardholderAccessGroup.new({href: \"#{@uri_base}#{@access_groups_endpoint}/#{group_id}\".as(String | ::Nil), name: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, access_groups: [group])\n"}},{"html_id":"card_holder_id_lookup(email:String):String|Int64|Nil-instance-method","name":"card_holder_id_lookup","doc":"using an email address, lookup the security system id for a user","summary":"

using an email address, lookup the security system id for a user

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L653"},"def":{"name":"card_holder_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(query_cardholders(email, @unique_pdf_name)).first?.try(&.id)"}},{"html_id":"card_holder_lookup(id:String|Int64):CardHolderDetails-instance-method","name":"card_holder_lookup","doc":"given a card holder id, lookup the details of the card holder","summary":"

given a card holder id, lookup the details of the card holder

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : CardHolderDetails","args_html":"(id : String | Int64) : CardHolderDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L658"},"def":{"name":"card_holder_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"CardHolderDetails","visibility":"Public","body":"details = get_cardholder(id.to_s)\nfirst_name = details.first_name\nlast_name = details.last_name\nshort_name = details.short_name\nname = if first_name.presence\n \"#{first_name} #{last_name}\"\nelse\n short_name || \"\"\nend\nemail_key = \"@#{@unique_pdf_name}\"\nCardHolder.new(id, name, details.json_unmapped[email_key]?.try(&.as_s))\n"}},{"html_id":"card_types_endpoint:String-instance-method","name":"card_types_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L127"},"def":{"name":"card_types_endpoint","return_type":"String","visibility":"Public","body":"@card_types_endpoint"}},{"html_id":"cardholder_exists?(filter:String)-instance-method","name":"cardholder_exists?","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L366"},"def":{"name":"cardholder_exists?","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"!(query_cardholders(filter)).empty?"}},{"html_id":"cardholders_endpoint:String-instance-method","name":"cardholders_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L125"},"def":{"name":"cardholders_endpoint","return_type":"String","visibility":"Public","body":"@cardholders_endpoint"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L118"},"def":{"name":"connected","visibility":"Public","body":"query_endpoints"}},{"html_id":"create_cardholder(first_name:String,last_name:String,description:String=\"acardholder\",authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"create_cardholder","doc":"#\nCreate a new cardholder.\n@param first_name [String] The first name of the new cardholder. Either this or last name is required (but we should assume both are for most instances).\n@param last_name [String] The last name of the new cardholder. Either this or first name is required (but we should assume both are for most instances).\n@option options [String] :division The division to add the cardholder to. This is required when making the request to create the cardholder but if none is passed the `default_division` is used.\n@option options [Hash] :pdfs A hash containing all PDFs to add to the user in the form `{ some_pdf_name: some_pdf_value, another_pdf_name: another_pdf_value }`.\n@option options [Array] :cards An array of cards to be added to this cardholder which can include both virtual and physical cards.\n@option options [Array] :access_groups An array of access groups to add this cardholder to. These may include `from` and `until` fields to dictate temporary access.\n@option options [Array] :competencies An array of competencies to add this cardholder to.\n@return [Hash] The cardholder that was created.","summary":"

\n \n \nCreate a new cardholder.

","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(first_name : String, last_name : String, description : String = \"a cardholder\", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(first_name : String, last_name : String, description : String = "a cardholder", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L278"},"def":{"name":"create_cardholder","args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"short_name || (short_name = \"#{first_name} #{last_name}\")\nshort_name = short_name[0..15]\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, cards, access_groups, division_href || @default_division.not_nil!)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = post(@cardholders_endpoint, headers: @headers, body: payload)\nCardholder.from_json(process(response))\n"}},{"html_id":"delete_card(href:String)-instance-method","name":"delete_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L361"},"def":{"name":"delete_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = delete(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"failed to delete card #{href}\")\nend\n"}},{"html_id":"delete_href(href:String)-instance-method","name":"delete_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L527"},"def":{"name":"delete_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"delete_card(href)"}},{"html_id":"disable_card(href:String)-instance-method","name":"disable_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L354"},"def":{"name":"disable_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"uri = get_path(href)\ncardholder_id = (uri.split('/'))[-3]\ncard = Card.new(uri, {value: @disabled_card_value, type: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, update_cards: [card])\n"}},{"html_id":"divisions_endpoint:String-instance-method","name":"divisions_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L126"},"def":{"name":"divisions_endpoint","return_type":"String","visibility":"Public","body":"@divisions_endpoint"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":567,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L567"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"doors.map do |d|\n Door.new(d.id, d.name)\nend"}},{"html_id":"doors-instance-method","name":"doors","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":557,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L557"},"def":{"name":"doors","visibility":"Public","body":"response = get(@doors_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\n(NamedTuple(results: Array(DoorDetails)).from_json(response.body))[:results]\n"}},{"html_id":"doors_endpoint:String-instance-method","name":"doors_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L130"},"def":{"name":"doors_endpoint","return_type":"String","visibility":"Public","body":"@doors_endpoint"}},{"html_id":"events_endpoint:String-instance-method","name":"events_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L128"},"def":{"name":"events_endpoint","return_type":"String","visibility":"Public","body":"@events_endpoint"}},{"html_id":"free_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"free_zone","doc":"forces a zone to be free, that is doors are unlocked","summary":"

forces a zone to be free, that is doors are unlocked

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L464"},"def":{"name":"free_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/free\", headers: @headers)\nresponse.success?\n"}},{"html_id":"get_access_group(id:String)-instance-method","name":"get_access_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L377"},"def":{"name":"get_access_group","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"access group request failed with #{response.status_code}\\n#{response.body}\")\nend\nAccessGroup.from_json(response.body)\n"}},{"html_id":"get_access_group_members(id:String)-instance-method","name":"get_access_group_members","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L391"},"def":{"name":"get_access_group_members","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}/cardholders\", headers: @headers)\nif response.success?\nelse\n raise(\"access group members request failed with #{response.status_code}\\n#{response.body}\")\nend\njson = response.body\nbegin\n NamedTuple(cardholders: Array(NamedTuple(href: String | ::Nil, cardholder: NamedTuple(name: String, href: String | ::Nil)))).from_json(json)\nrescue error\n logger.warn(exception: error) do\n \"#get_access_group_members failed to parse:\\n#{json}\"\n end\nend\n"}},{"html_id":"get_access_groups(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_access_groups","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L383"},"def":{"name":"get_access_groups","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_groups_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"access groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(AccessGroup, response.body)\n"}},{"html_id":"get_base64_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_base64_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L230"},"def":{"name":"get_base64_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nBase64.strict_encode(response.body)\n"}},{"html_id":"get_card_type(id:String|Int32|Nil=nil)-instance-method","name":"get_card_type","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"args_string":"(id : String | Int32 | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L261"},"def":{"name":"get_card_type","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"visibility":"Public","body":"card = (id || @default_card_type) || (raise(\"no default card type provided\"))\nresponse = get(\"#{@card_types_endpoint}/#{card}\", headers: @headers)\nif response.success?\nelse\n raise(\"card type request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardType.from_json(response.body)\n"}},{"html_id":"get_cardholder(id:String|Int32)-instance-method","name":"get_cardholder","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"args_string":"(id : String | Int32)","args_html":"(id : String | Int32)","location":{"filename":"src/gallagher/rest_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L237"},"def":{"name":"get_cardholder","args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardholder.from_json(response.body)\n"}},{"html_id":"get_division(id:String)-instance-method","name":"get_division","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":440,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L440"},"def":{"name":"get_division","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@divisions_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"division request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_divisions(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_divisions","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":446,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L446"},"def":{"name":"get_divisions","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@divisions_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"divisions request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"get_event_groups-instance-method","name":"get_event_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L490"},"def":{"name":"get_event_groups","visibility":"Public","body":"response = get(\"#{@events_endpoint}/groups\", headers: @headers)\nif response.success?\nelse\n raise(\"event groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_events-instance-method","name":"get_events","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":484,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L484"},"def":{"name":"get_events","visibility":"Public","body":"response = get(@events_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"events request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_href(href:String)-instance-method","name":"get_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":521,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L521"},"def":{"name":"get_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = get(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"generic request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L224"},"def":{"name":"get_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_pdfs(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_pdfs","doc":"#\nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.\nThey will usually be for things like email address, employee ID or some other field specific to whoever is hosting the Gallagher instance.\nAllows retrieval of the PDFs used in the Gallagher instance, primarily so we can get the PDF's ID and use that to filter cardholders based on that PDF.\n\n@param name [String] The name of the PDF which we want to retrieve. This will only return one result (as the PDF names are unique).\n@return [Hash] A list of PDF results and a next link for pagination (we will generally have less than 100 PDFs so 'next' link will mostly be unused):\n@example An example response:\n {\n \"results\": [\n {\n \"name\": \"email\",\n \"id\": \"5516\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/5516\"\n },\n {\n \"name\": \"cellphone\",\n \"id\": \"9998\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/9998\",\n \"serverDisplayName\": \"Site B\"\n }\n ],\n \"next\": {\n \"href\": \"https://localhost:8904/api/personal_data_fields?pos=900&sort=id\"\n }\n }","summary":"

\n \n \nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.

","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L216"},"def":{"name":"get_pdfs","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@pdfs_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(PDF, response.body)\n"}},{"html_id":"get_zones(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L454"},"def":{"name":"get_zones","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_zones_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"zones request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L69"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nspawn do\n event_monitor\nend\nschedule.every(1.minutes) do\n query_endpoints\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L79"},"def":{"name":"on_unload","visibility":"Public","body":"@poll_events = false"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L91"},"def":{"name":"on_update","visibility":"Public","body":"uri = URI.parse(config.uri.not_nil!)\n@uri_base || (@uri_base = \"#{uri.scheme}://#{uri.host}\")\napi_key = setting(String, :api_key)\n@api_key = \"GGL-API-KEY #{api_key}\"\n@door_event_channel = (setting?(String, :door_event_channel)) || \"event\"\nnew_map = {} of String => EventMap\n((setting?(Array(EventMap), :event_mappings)) || ([] of EventMap)).each do |event|\n new_map[event.group.to_s] = event\nend\n@event_map = new_map\n@unique_pdf_name = setting(String, :unique_pdf_name)\n@default_division = setting?(String, :default_division_href)\n@default_facility_code = setting?(String, :default_facility_code)\n@default_card_type = setting?(String, :default_card_type_href)\n@default_access_group = setting?(String, :default_access_group_href)\n@disabled_card_value = (setting(::Union(String, ::Nil), :disabled_card_value)) || \"Disabled (manually)\"\n@headers = {\"Authorization\" => @api_key, \"Content-Type\" => \"application/json\"}\n"}},{"html_id":"pdfs_endpoint:String-instance-method","name":"pdfs_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L129"},"def":{"name":"pdfs_endpoint","return_type":"String","visibility":"Public","body":"@pdfs_endpoint"}},{"html_id":"query_card_types-instance-method","name":"query_card_types","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L255"},"def":{"name":"query_card_types","visibility":"Public","body":"response = get(@card_types_endpoint, {\"top\" => \"10000\"}, headers: @headers)\nif response.success?\nelse\n raise(\"card types request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(CardType, response.body)\n"}},{"html_id":"query_cardholders(filter:String,pdf_name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"query_cardholders","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","args_html":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L243"},"def":{"name":"query_cardholders","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"pdf_id = \"pdf_\" + (pdf_name ? (get_pdfs(pdf_name)).first.id : @fixed_pdf_id).not_nil!\nquery = {pdf_id => exact_match ? \"\\\"#{filter}\\\"\" : filter, \"top\" => \"10000\"}\nresponse = get(@cardholders_endpoint, query, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder query request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(Cardholder, response.body)\n"}},{"html_id":"query_endpoints-instance-method","name":"query_endpoints","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L138"},"def":{"name":"query_endpoints","visibility":"Public","body":"response = get(\"/api\", headers: @headers)\nif response.success?\nelse\n raise(\"endpoints request failed with #{response.status_code}\\n#{response.body}\")\nend\npayload = JSON.parse(response.body)\nlogger.debug do\n \"endpoints query returned:\\n#{payload.inspect}\"\nend\napi_version = SemanticVersion.parse((payload[\"version\"].as_s.split('.'))[0..2].join('.'))\nraw_uri = payload[\"features\"][\"cardholders\"][\"cardholders\"][\"href\"].as_s\nuri = URI.parse(raw_uri)\n@uri_base = \"#{uri.scheme}://#{uri.host}\"\n@cardholders_endpoint = get_path(raw_uri)\n@divisions_endpoint = @cardholders_endpoint.sub(\"cardholders\", \"divisions\")\n@access_groups_endpoint = get_path(payload[\"features\"][\"accessGroups\"][\"accessGroups\"][\"href\"].as_s)\n@access_zones_endpoint = get_path(payload[\"features\"][\"accessZones\"][\"accessZones\"][\"href\"].as_s)\n@events_endpoint = get_path(payload[\"features\"][\"events\"][\"events\"][\"href\"].as_s)\nbegin\n @doors_endpoint = get_path(payload[\"features\"][\"doors\"][\"doors\"][\"href\"].as_s)\nrescue error\n logger.debug(exception: error) do\n \"error locating doors feature URI\"\n end\nend\nif api_version >= (SemanticVersion.parse(\"8.10.0\"))\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"assign\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"personalDataFields\"][\"personalDataFields\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name}, @headers)\nelse\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"cardTypes\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"items\"][\"items\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name, \"type\" => \"33\"}, @headers)\nend\nif response.success?\n logger.debug do\n \"PDFS request returned:\\n#{response.body}\"\n end\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nresults = (JSON.parse(response.body))[\"results\"].as_a\nif results.empty?\nelse\n @fixed_pdf_id = results.first[\"id\"].as_s\nend\n"}},{"html_id":"remove_access_group_member(group_id:String|Int32,cardholder_id:String|Int32):Bool-instance-method","name":"remove_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","location":{"filename":"src/gallagher/rest_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L423"},"def":{"name":"remove_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"Bool","visibility":"Public","body":"if href = access_group_member?(group_id, cardholder_id)\n response = delete(get_path(href), headers: @headers)\n if response.success?\n else\n raise(\"remove access group member request failed with #{response.status_code}\\n#{response.body}\")\n end\n true\nelse\n false\nend"}},{"html_id":"remove_cardholder_access(id:String|Nil=nil,href:String|Nil=nil)-instance-method","name":"remove_cardholder_access","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil = nil, href : String | Nil = nil)","args_html":"(id : String | Nil = nil, href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L370"},"def":{"name":"remove_cardholder_access","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"update_cardholder(id, href, authorised: false)"}},{"html_id":"reset_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"reset_zone","doc":"returns the zone to it's default scheduled state, removing any overrides","summary":"

returns the zone to it's default scheduled state, removing any overrides

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L478"},"def":{"name":"reset_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/cancel\", headers: @headers)\nresponse.success?\n"}},{"html_id":"secure_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"secure_zone","doc":"forces a zone to be secure and require a swipe card to access","summary":"

forces a zone to be secure and require a swipe card to access

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L471"},"def":{"name":"secure_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/secure\", headers: @headers)\nresponse.success?\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":572,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L572"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@doors_endpoint}/#{door_id}/open\", headers: @headers)\nresponse.success?\n"}},{"html_id":"update_cardholder(id:String|Int32|Nil=nil,href:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,remove_cards:Array(Card)|Nil=nil,update_cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,remove_access_groups:Array(CardholderAccessGroup)|Nil=nil,update_access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"update_cardholder","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L305"},"def":{"name":"update_cardholder","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"url = href ? get_path(href) : \"#{@cardholders_endpoint}/#{id.not_nil!}\"\nif (cards || remove_cards) || update_cards\n card_updates = {} of String => Array(Card)\n if cards\n card_updates[\"add\"] = cards\n end\n if update_cards\n card_updates[\"update\"] = update_cards\n end\n if remove_cards\n card_updates[\"remove\"] = remove_cards.map do |card|\n Card.new(card.href, nil)\n end\n end\nend\nif (access_groups || remove_access_groups) || update_access_groups\n groups_update = {} of String => Array(CardholderAccessGroup)\n if access_groups\n groups_update[\"add\"] = access_groups\n end\n if update_access_groups\n groups_update[\"update\"] = update_access_groups\n end\n if remove_access_groups\n groups_update[\"remove\"] = remove_access_groups\n end\nend\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, card_updates, groups_update, division_href)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = patch(url, headers: @headers, body: payload)\nresult = process(response)\nresult.presence && (Cardholder.from_json(result))\n"}},{"html_id":"uri_base:String-instance-method","name":"uri_base","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base","return_type":"String","visibility":"Public","body":"if (__temp_1 = @uri_base).nil?\n ::raise(::NilAssertionError.new(\"Gallagher::RestAPI#uri_base cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"uri_base?:String|Nil-instance-method","name":"uri_base?","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base?","return_type":"String | ::Nil","visibility":"Public","body":"@uri_base"}},{"html_id":"zone_access_add_member(zone_id:String|Int64,card_holder_id:String|Int64,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"zone_access_add_member","doc":"add a member to the zone","summary":"

add a member to the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":692,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L692"},"def":{"name":"zone_access_add_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"add_access_group_member(zone_id.to_s, card_holder_id.to_s, from_unix, until_unix)"}},{"html_id":"zone_access_id_lookup(name:String,exact_match:Bool=true):String|Int64|Nil-instance-method","name":"zone_access_id_lookup","doc":"using a name, lookup the access zone id","summary":"

using a name, lookup the access zone id

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","args_html":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L674"},"def":{"name":"zone_access_id_lookup","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(get_access_groups(name, exact_match)).first?.try(&.id)"}},{"html_id":"zone_access_lookup(id:String|Int64):ZoneDetails-instance-method","name":"zone_access_lookup","doc":"given an access zone id, lookup the details of the zone","summary":"

given an access zone id, lookup the details of the zone

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : ZoneDetails","args_html":"(id : String | Int64) : ZoneDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":679,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L679"},"def":{"name":"zone_access_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"ZoneDetails","visibility":"Public","body":"details = get_access_group(id.to_s)\nZoneInfo.new(id, details.name, details.description)\n"}},{"html_id":"zone_access_member?(zone_id:String|Int64,card_holder_id:String|Int64):String|Int64|Nil-instance-method","name":"zone_access_member?","doc":"return the id that represents the access permission (truthy indicates access)","summary":"

return the id that represents the access permission (truthy indicates access)

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L686"},"def":{"name":"zone_access_member?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"access_group_member?(zone_id.to_s, card_holder_id.to_s)"}},{"html_id":"zone_access_remove_member(zone_id:String|Int64,card_holder_id:String|Int64)-instance-method","name":"zone_access_remove_member","doc":"remove a member from the zone","summary":"

remove a member from the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":698,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L698"},"def":{"name":"zone_access_remove_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"visibility":"Public","body":"remove_access_group_member(zone_id.to_s, card_holder_id.to_s)"}}],"macros":[{"html_id":"get_results(klass,response)-macro","name":"get_results","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"args_string":"(klass, response)","args_html":"(klass, response)","location":{"filename":"src/gallagher/rest_api.cr","line_number":496,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L496"},"def":{"name":"get_results","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%body\n = \n{{ response }}\n\n begin\n \n%results\n = Results(\n{{ klass }}\n).from_json \n%body\n\n \n%result_array\n = \n%results\n.results\n loop do\n \n%next_uri\n = \n%results\n.next_uri\n break unless \n%next_uri\n\n \n%body\n = get_raw(\n%next_uri\n[:href])\n \n%results\n = Results(\n{{ klass }}\n).from_json(\n%body\n)\n \n%result_array\n.concat \n%results\n.results\n \nend\n \n%result_array\n\n rescue \nerror\n logger.debug \n{ \"failed to parse response body:\\n#{\n%body\n}\\n\" }\n raise \nerror\n \nend\n \n"}}],"types":[{"html_id":"drivers/Gallagher/RestAPI/BadRequest","path":"Gallagher/RestAPI/BadRequest.html","kind":"class","full_name":"Gallagher::RestAPI::BadRequest","name":"BadRequest","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":555,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L555"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/CardHolder","path":"Gallagher/RestAPI/CardHolder.html","kind":"struct","full_name":"Gallagher::RestAPI::CardHolder","name":"CardHolder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L641"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,email)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"args_string":"(id, name, email)","args_html":"(id, name, email)","location":{"filename":"src/gallagher/rest_api.cr","line_number":642,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L642"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L641"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/Gallagher/RestAPI/CardHolderDetails","path":"Gallagher/RestAPI/CardHolderDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::CardHolderDetails","name":"CardHolderDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L638"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/Conflict","path":"Gallagher/RestAPI/Conflict.html","kind":"class","full_name":"Gallagher::RestAPI::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L551"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/EventMap","path":"Gallagher/RestAPI/EventMap.html","kind":"struct","full_name":"Gallagher::RestAPI::EventMap","name":"EventMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(group:Int32,types:Array(Int32)|Nil,action:Action)-class-method","name":"new","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"args_string":"(group : Int32, types : Array(Int32) | Nil, action : Action)","args_html":"(group : Int32, types : Array(Int32) | Nil, action : Action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"new","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"visibility":"Public","body":"_ = allocate\n_.initialize(group, types, action)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Action-instance-method","name":"action","abstract":false,"def":{"name":"action","return_type":"Action","visibility":"Public","body":"@action"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@group.clone, @types.clone, @action.clone)"}},{"html_id":"copy_with(group_group=@group,types_types=@types,action_action=@action)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"args_string":"(group _group = @group, types _types = @types, action _action = @action)","args_html":"(group _group = @group, types _types = @types, action _action = @action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"copy_with","args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"visibility":"Public","body":"self.class.new(_group, _types, _action)"}},{"html_id":"group:Int32-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"Int32","visibility":"Public","body":"@group"}},{"html_id":"types:Array(Int32)|Nil-instance-method","name":"types","abstract":false,"def":{"name":"types","return_type":"Array(Int32) | ::Nil","visibility":"Public","body":"@types"}}]},{"html_id":"drivers/Gallagher/RestAPI/NotFound","path":"Gallagher/RestAPI/NotFound.html","kind":"class","full_name":"Gallagher::RestAPI::NotFound","name":"NotFound","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":553,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L553"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneDetails","path":"Gallagher/RestAPI/ZoneDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::ZoneDetails","name":"ZoneDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L639"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneInfo","path":"Gallagher/RestAPI/ZoneInfo.html","kind":"struct","full_name":"Gallagher::RestAPI::ZoneInfo","name":"ZoneInfo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L646"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,description)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"args_string":"(id, name, description)","args_html":"(id, name, description)","location":{"filename":"src/gallagher/rest_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L647"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L646"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]}]},{"html_id":"drivers/Gallagher/Results","path":"Gallagher/Results.html","kind":"class","full_name":"Gallagher::Results(ResultType)","name":"Results","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_uri:NamedTuple(href:String)|Nil-instance-method","name":"next_uri","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@next_uri"}},{"html_id":"next_uri=(next_uri:NamedTuple(href:String)|Nil)-instance-method","name":"next_uri=","abstract":false,"args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(next_uri : NamedTuple(href: String) | Nil)","args_html":"(next_uri : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri=","args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@next_uri = next_uri"}},{"html_id":"results:Array(ResultType)-instance-method","name":"results","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results","return_type":"Array(ResultType)","visibility":"Public","body":"@results"}},{"html_id":"results=(results:Array(ResultType))-instance-method","name":"results=","abstract":false,"args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"args_string":"(results : Array(ResultType))","args_html":"(results : Array(ResultType))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results=","args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"visibility":"Public","body":"@results = results"}}]},{"html_id":"drivers/Gallagher/ZoneSchedule","path":"Gallagher/ZoneSchedule.html","kind":"class","full_name":"Gallagher::ZoneSchedule","name":"ZoneSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/zone_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L25"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_presence:Bool|Nil-instance-method","name":"last_presence","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L44"},"def":{"name":"last_presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@last_presence"}},{"html_id":"last_status:String|Nil-instance-method","name":"last_status","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L43"},"def":{"name":"last_status","return_type":"String | ::Nil","visibility":"Public","body":"@last_status"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :gallagher_system)).presence || config.control_system.not_nil!.id\n@state_mappings = setting(Hash(String, String), :state_mappings)\n@zone_id = (setting?(String | Int64, :zone_id)) || (setting(String | Int64, :door_zone_id))\n@presence_timeout = ((setting?(Int32, :presence_timeout)) || 30).minutes\n"}},{"html_id":"state_mappings:Hash(String,String)-instance-method","name":"state_mappings","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L29"},"def":{"name":"state_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@state_mappings"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L24"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zone_id:String|Int64-instance-method","name":"zone_id","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L28"},"def":{"name":"zone_id","return_type":"String | Int64","visibility":"Public","body":"@zone_id"}}]}]},{"html_id":"drivers/GlobalCache","path":"GlobalCache.html","kind":"module","full_name":"GlobalCache","name":"GlobalCache","abstract":false,"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GlobalCache/Gc100","path":"GlobalCache/Gc100.html","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"}],"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"@relay_config = {} of String => Hash(Int32, String)\n@port_config = {} of String => Tuple(String, Int32)\nschedule.clear\nschedule.every(10.seconds, true) do\n logger.debug do\n \"-- Polling GC100\"\n end\n if status?(Bool, :config_indexed)\n do_send(\"get_NET,0:1\", priority: 0, wait: false)\n else\n get_devices\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L41"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_devices-instance-method","name":"get_devices","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L45"},"def":{"name":"get_devices","visibility":"Public","body":"do_send(\"getdevices\")"}},{"html_id":"ir(index:Int32,command:String,**options)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String, **options)","args_html":"(index : Int32, command : String, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L60"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"sendir,1:#{index},#{command}\", **options)"}},{"html_id":"ir_status?(index:Int32,**options)-instance-method","name":"ir_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L89"},"def":{"name":"ir_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\nself[:num_relays] = 0\nself[:num_ir] = 0\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/global_cache/gc_100.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L98"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nlogger.debug do\n \"GlobalCache sent #{data}\"\nend\ndata = data.split(',')\ntask_name = task.try(&.name) || \"unknown\"\ncase data[0]\nwhen \"state\", \"statechange\"\n type, index = self[:port_config][data[1]]\n self[\"#{type}#{index}\"] = data[2] == \"1\"\nwhen \"device\"\n address = data[1]\n number, type = data[2].split(' ')\n type = type.downcase\n __temp_697 = type\n @relay_config[__temp_697]? || (@relay_config[__temp_697] = {} of Int32 => String)\n current = @relay_config[type].size\n (current..((current + number.to_i) - 1)).each_with_index(1) do |i, dev_index|\n port = \"#{address}:#{dev_index}\"\n @relay_config[type][i] = port\n @port_config[port] = {type, i}\n end\n return task.try(&.success)\nwhen \"endlistdevices\"\n if @relay_config[\"relay\"]?\n self[:num_relays] = @relay_config[\"relay\"].size\n end\n if @relay_config[\"relaysensor\"]?\n @relay_config[\"relaysensor\"][1] = \"1:2\"\n @relay_config[\"relaysensor\"][2] = \"1:3\"\n @relay_config[\"relaysensor\"][3] = \"1:4\"\n self[:num_relays] = @relay_config[\"relaysensor\"].size\n end\n if @relay_config[\"ir\"]?\n self[:num_ir] = @relay_config[\"ir\"].size\n end\n self[:relay_config] = @relay_config\n self[:port_config] = @port_config\n logger.debug do\n \"self[:relay_config] is #{self[:relay_config]}\"\n end\n logger.debug do\n \"self[:port_config] is #{self[:port_config]}\"\n end\n @relay_config = {} of String => Hash(Int32, String)\n @port_config = {} of String => Tuple(String, Int32)\n self[:config_indexed] = true\n return task.try(&.success)\nend\nif data.size == 1\n error = case (data[0].split(' '))[1].to_i\n when 1\n \"Command was missing the carriage return delimiter\"\n when 2\n \"Invalid module address when looking for version\"\n when 3\n \"Invalid module address\"\n when 4\n \"Invalid connector address\"\n when 5\n \"Connector address 1 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 6\n \"Connector address 2 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 7\n \"Connector address 3 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 8\n \"Offset is set to an even transition number, but should be set to an odd transition number in the IR command\"\n when 9\n \"Maximum number of transitions exceeded (256 total on/off transitions allowed)\"\n when 10\n \"Number of transitions in the IR command is not even (the same number of on and off transitions is required)\"\n when 11\n \"Contact closure command sent to a module that is not a relay\"\n when 12\n \"Missing carriage return. All commands must end with a carriage return\"\n when 13\n \"State was requested of an invalid connector address, or the connector is programmed as IR out and not sensor in.\"\n when 14\n \"Command sent to the unit is not supported by the GC-100\"\n when 15\n \"Maximum number of IR transitions exceeded\"\n when 16\n \"Invalid number of IR transitions (must be an even number)\"\n when 21\n \"Attempted to send an IR command to a non-IR module\"\n when 23\n \"Command sent is not supported by this type of module\"\n else\n \"Unknown error\"\n end\n return task.try(&.abort(\"GlobalCache error for command #{task_name}: #{error}\"))\nend\ntask.try(&.success)\n"}},{"html_id":"relay(state:Bool,index:Int32=0,**options)-instance-method","name":"relay","doc":"`**options` here will be passed to the `task` to allow for different priorities","summary":"

**options here will be passed to the task to allow for different priorities

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(state : Bool, index : Int32 = 0, **options)","args_html":"(state : Bool, index : Int32 = 0, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L49"},"def":{"name":"relay","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n relays = (self[:relay_config][\"relay\"]? || self[:relay_config][\"relaysensor\"]?).not_nil!.as_h\n logger.debug do\n \"relays = #{relays}\"\n end\n connector = relays[index.to_s]\n do_send(\"setstate,#{connector},#{state ? 1 : 0}\", **options)\nelse\n logger.warn do\n \"Attempted to set relay on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"relay_status?(index:Int32,**options)-instance-method","name":"relay_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L80"},"def":{"name":"relay_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n connector = self[:relay_config][\"relay\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"set_ir(index:Int32,mode:IrMode,**options)-instance-method","name":"set_ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"args_string":"(index : Int32, mode : IrMode, **options)","args_html":"(index : Int32, mode : IrMode, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L71"},"def":{"name":"set_ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"set_IR,#{connector},#{mode}\", **options)\nelse\n logger.warn do\n \"Attempted to set IR mode on GlobalCache that does not exist: #{index}\"\n end\nend"}}],"types":[{"html_id":"drivers/GlobalCache/Gc100/IrMode","path":"GlobalCache/Gc100/IrMode.html","kind":"enum","full_name":"GlobalCache::Gc100::IrMode","name":"IrMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L64"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IR","name":"IR","value":"0"},{"id":"SENSOR","name":"SENSOR","value":"1"},{"id":"SENSOR_NOTIFY","name":"SENSOR_NOTIFY","value":"2"},{"id":"IR_NOCARRIER","name":"IR_NOCARRIER","value":"3"}],"namespace":{"html_id":"drivers/GlobalCache/Gc100","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100"},"instance_methods":[{"html_id":"ir?-instance-method","name":"ir?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L65"},"def":{"name":"ir?","visibility":"Public","body":"self == IR"}},{"html_id":"ir_nocarrier?-instance-method","name":"ir_nocarrier?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L68"},"def":{"name":"ir_nocarrier?","visibility":"Public","body":"self == IR_NOCARRIER"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L66"},"def":{"name":"sensor?","visibility":"Public","body":"self == SENSOR"}},{"html_id":"sensor_notify?-instance-method","name":"sensor_notify?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L67"},"def":{"name":"sensor_notify?","visibility":"Public","body":"self == SENSOR_NOTIFY"}}]}]},{"html_id":"drivers/GlobalCache/IRTV","path":"GlobalCache/IRTV.html","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(id:String,ir_set:String=\"\",ir_index:Int32=0)-instance-method","name":"channel","doc":"Actually send the IR commands, via the globalcache","summary":"

Actually send the IR commands, via the globalcache

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"args_string":"(id : String, ir_set : String = \"\", ir_index : Int32 = 0)","args_html":"(id : String, ir_set : String = "", ir_index : Int32 = 0)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L146"},"def":{"name":"channel","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"visibility":"Public","body":"if ir_set.presence\nelse\n ir_set = @default_ir_set\nend\nif ir_index == 0\n ir_index = @default_ir_index\nend\nresult = @channel_lookup[id].ir_commands.map do |ir_command_name|\n (system[@globalcache].ir(ir_index, @ir_commands[ir_set][ir_command_name])).get\n sleep(500.milliseconds)\nend\nself[:current_channel] = id\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L119"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache = setting(String, :globalcache_module)\n@default_ir_set = setting(String, :default_ir_set)\n@default_ir_index = setting(Int32, :default_ir_index)\n@channels = setting(Array(Channel), :channel_details)\nupdated_channel_lookup = {} of String => Channel\n@channels.each do |channel|\n updated_channel_lookup[channel.channel] = channel\nend\n@channel_lookup = updated_channel_lookup\nglobalcache_ir_sets = setting(Hash(String, String), :globalcache_ir_sets)\nupdated_ir_commands = {} of String => Hash(String, String)\nglobalcache_ir_sets.each do |device, all_commands|\n updated_ir_commands[device] = parse_all_commands(all_commands)\nend\n@ir_commands = updated_ir_commands\nself[:channel_details] = @channels\nself[:ir_commands] = @ir_commands\n"}}],"types":[{"html_id":"drivers/GlobalCache/IRTV/Channel","path":"GlobalCache/IRTV/Channel.html","kind":"class","full_name":"GlobalCache::IRTV::Channel","name":"Channel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GlobalCache/IRTV","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L87"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L86"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"ir_commands:Array(String)-instance-method","name":"ir_commands","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L88"},"def":{"name":"ir_commands","return_type":"Array(String)","visibility":"Public","body":"@ir_commands"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L85"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/GlobalCache/ProjectorScreen","path":"GlobalCache/ProjectorScreen.html","kind":"class","full_name":"GlobalCache::ProjectorScreen","name":"ProjectorScreen","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down-instance-method","name":"down","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L50"},"def":{"name":"down","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_down)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache_module = (setting(String, :globalcache_module)) || \"DigitalIO_1\"\n@relay_method = (setting(String, :globalcache_relay_method)) || \"pulse\"\n@relay_index_down = (setting(Int32, :globalcache_relay_index_down)) || 0\n@relay_index_up = (setting(Int32, :globalcache_relay_index_up)) || 1\n@relay_pulse_milliseconds = (setting(Int32, :globalcache_relay_pulse_milliseconds)) || 1000\n"}},{"html_id":"up-instance-method","name":"up","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L39"},"def":{"name":"up","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_up)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}}]}]},{"html_id":"drivers/GoBright","path":"GoBright.html","kind":"module","full_name":"GoBright","name":"GoBright","abstract":false,"locations":[{"filename":"src/gobright/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GoBright/AccessToken","path":"GoBright/AccessToken.html","kind":"struct","full_name":"GoBright::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L195"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"expires_at:Time-instance-method","name":"expires_at","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L198"},"def":{"name":"expires_at","return_type":"Time","visibility":"Public","body":"expires_in.seconds.from_now"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L196"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}}]},{"html_id":"drivers/GoBright/Amenity","path":"GoBright/Amenity.html","kind":"struct","full_name":"GoBright::Amenity","name":"Amenity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_for_desk:Bool|Nil-instance-method","name":"available_for_desk","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L101"},"def":{"name":"available_for_desk","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_desk"}},{"html_id":"available_for_parking:Bool|Nil-instance-method","name":"available_for_parking","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L104"},"def":{"name":"available_for_parking","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_parking"}},{"html_id":"available_for_room:Bool|Nil-instance-method","name":"available_for_room","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L98"},"def":{"name":"available_for_room","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_room"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L93"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L94"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L92"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"order:Int32|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L95"},"def":{"name":"order","return_type":"Int32 | ::Nil","visibility":"Public","body":"@order"}}]},{"html_id":"drivers/GoBright/API","path":"GoBright/API.html","kind":"class","full_name":"GoBright::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings(starting:Int64,ending:Int64,location_id:String|Array(String)|Nil=nil,space_id:String|Array(String)|Nil=nil)-instance-method","name":"bookings","doc":"the list of booking occurances in the time period specified","summary":"

the list of booking occurances in the time period specified

","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","args_html":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L121"},"def":{"name":"bookings","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"1000\")\n form.add(\"include\", \"spaces,organizer,attendees\")\n form.add(\"start\", (Time.unix(starting)).to_rfc3339)\n form.add(\"end\", (Time.unix(ending)).to_rfc3339)\n if location_id\n location_ids = location_id.is_a?(Array) ? location_id : [location_id]\n location_ids.each do |loc|\n form.add(\"locationIds\", loc)\n end\n end\n if space_id\n space_ids = space_id.is_a?(Array) ? space_id : [space_id]\n space_ids.each do |space|\n form.add(\"spaceIds\", space)\n end\n end\nend\nArray(Occurrence).from_json(fetch(\"/api/v2.0/bookings/occurrences?#{params}\"))\n"}},{"html_id":"fetch(location:String):String-instance-method","name":"fetch","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/gobright/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L25"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"next_page = location\nappend = location.includes?('?') ? '&' : '?'\nString.build do |str|\n str << \"[\"\n loop do\n logger.debug do\n \"requesting: #{next_page}\"\n end\n response = get(next_page, headers: HTTP::Headers {\"Authorization\" => get_token, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = begin\n Response.from_json(response.body)\n rescue error : JSON::SerializableError\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(error)\n end\n if data = payload.data || payload.items\n str << data.strip[1..-2]\n end\n continuation = payload.paging.try(&.token)\n total_items = payload.paging.try(&.total)\n if continuation\n next_page = \"#{location}#{append}continuationToken=#{continuation}\"\n else\n if total_items\n uri = URI.parse(next_page)\n params = uri.query_params\n skip = params[\"pagingSkip\"]?.try(&.to_i) || 0\n taking = params[\"pagingTake\"]?.try(&.to_i) || 100\n if (skip + taking) >= total_items\n break\n end\n params[\"pagingSkip\"] = (skip + taking).to_s\n uri.query_params = params\n next_page = uri.to_s\n else\n break\n end\n end\n str << \",\"\n end\n str << \"]\"\nend\n"}},{"html_id":"live_occupancy(location:String,type:SpaceType|Nil=nil)-instance-method","name":"live_occupancy","doc":"the occupancy status of the spaces","summary":"

the occupancy status of the spaces

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"args_string":"(location : String, type : SpaceType | Nil = nil)","args_html":"(location : String, type : SpaceType | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L144"},"def":{"name":"live_occupancy","args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n form.add(\"filterLocationId\", location)\n if type\n form.add(\"filterSpaceType\", type.value.to_s)\n end\nend\nArray(Occupancy).from_json(fetch(\"/api/v2.0/occupancy/space/live?#{params}\"))\n"}},{"html_id":"locations-instance-method","name":"locations","doc":"the list of buildings, levels, areas etc","summary":"

the list of buildings, levels, areas etc

","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L84"},"def":{"name":"locations","visibility":"Public","body":"Array(Location).from_json(fetch(\"/api/v2.0/locations?pagingTake=100\"))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}},{"html_id":"spaces(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces","doc":"a list of spaces in the locations. rooms, desks and parking","summary":"

a list of spaces in the locations.

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L89"},"def":{"name":"spaces","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"LocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"SpaceTypes\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces?#{params}\"))\n"}},{"html_id":"spaces_state(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces_state","doc":"Paged list of state per space, filtered by location/spacetype","summary":"

Paged list of state per space, filtered by location/spacetype

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L105"},"def":{"name":"spaces_state","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"filterLocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"filterSpaceType\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces/state?#{params}\"))\n"}}]},{"html_id":"drivers/GoBright/ApprovalState","path":"GoBright/ApprovalState.html","kind":"enum","full_name":"GoBright::ApprovalState","name":"ApprovalState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L203"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Inactive","name":"Inactive","value":"0"},{"id":"NeedsApproval","name":"NeedsApproval","value":"1"},{"id":"Approved","name":"Approved","value":"2"},{"id":"Rejected","name":"Rejected","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"approved?-instance-method","name":"approved?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L206"},"def":{"name":"approved?","visibility":"Public","body":"self == Approved"}},{"html_id":"inactive?-instance-method","name":"inactive?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L204"},"def":{"name":"inactive?","visibility":"Public","body":"self == Inactive"}},{"html_id":"needs_approval?-instance-method","name":"needs_approval?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L205"},"def":{"name":"needs_approval?","visibility":"Public","body":"self == NeedsApproval"}},{"html_id":"rejected?-instance-method","name":"rejected?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L207"},"def":{"name":"rejected?","visibility":"Public","body":"self == Rejected"}}]},{"html_id":"drivers/GoBright/Attendee","path":"GoBright/Attendee.html","kind":"struct","full_name":"GoBright::Attendee","name":"Attendee","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L222"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"email_address=(email_address:String|Nil)-instance-method","name":"email_address=","abstract":false,"args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"args_string":"(email_address : String | Nil)","args_html":"(email_address : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L222"},"def":{"name":"email_address=","args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email_address = email_address"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L223"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L223"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/GoBright/BookingType","path":"GoBright/BookingType.html","kind":"enum","full_name":"GoBright::BookingType","name":"BookingType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L210"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"BookingOnRoom","name":"BookingOnRoom","value":"0"},{"id":"ServiceOnly","name":"ServiceOnly","value":"1"},{"id":"BookingOnDesk","name":"BookingOnDesk","value":"2"},{"id":"BookingAsTeam","name":"BookingAsTeam","value":"3"},{"id":"BookingOnParking","name":"BookingOnParking","value":"4"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"booking_as_team?-instance-method","name":"booking_as_team?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L214"},"def":{"name":"booking_as_team?","visibility":"Public","body":"self == BookingAsTeam"}},{"html_id":"booking_on_desk?-instance-method","name":"booking_on_desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L213"},"def":{"name":"booking_on_desk?","visibility":"Public","body":"self == BookingOnDesk"}},{"html_id":"booking_on_parking?-instance-method","name":"booking_on_parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L215"},"def":{"name":"booking_on_parking?","visibility":"Public","body":"self == BookingOnParking"}},{"html_id":"booking_on_room?-instance-method","name":"booking_on_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L211"},"def":{"name":"booking_on_room?","visibility":"Public","body":"self == BookingOnRoom"}},{"html_id":"service_only?-instance-method","name":"service_only?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L212"},"def":{"name":"service_only?","visibility":"Public","body":"self == ServiceOnly"}}]},{"html_id":"drivers/GoBright/DeskPeriod","path":"GoBright/DeskPeriod.html","kind":"struct","full_name":"GoBright::DeskPeriod","name":"DeskPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L67"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L64"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L55"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L61"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L58"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Location","path":"GoBright/Location.html","kind":"struct","full_name":"GoBright::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_desk_periods:DeskPeriod|Nil-instance-method","name":"booking_desk_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L142"},"def":{"name":"booking_desk_periods","return_type":"DeskPeriod | ::Nil","visibility":"Public","body":"@booking_desk_periods"}},{"html_id":"booking_parking_periods:ParkingPeriod|Nil-instance-method","name":"booking_parking_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L145"},"def":{"name":"booking_parking_periods","return_type":"ParkingPeriod | ::Nil","visibility":"Public","body":"@booking_parking_periods"}},{"html_id":"full_path:String|Nil-instance-method","name":"full_path","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L130"},"def":{"name":"full_path","return_type":"String | ::Nil","visibility":"Public","body":"@full_path"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L133"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L110"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_id:String|Nil-instance-method","name":"image_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L139"},"def":{"name":"image_id","return_type":"String | ::Nil","visibility":"Public","body":"@image_id"}},{"html_id":"level:Int64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L127"},"def":{"name":"level","return_type":"Int64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L118"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name_indented:String|Nil-instance-method","name":"name_indented","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L121"},"def":{"name":"name_indented","return_type":"String | ::Nil","visibility":"Public","body":"@name_indented"}},{"html_id":"old_id:Int64|Nil-instance-method","name":"old_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L113"},"def":{"name":"old_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@old_id"}},{"html_id":"order:Int64|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L124"},"def":{"name":"order","return_type":"Int64 | ::Nil","visibility":"Public","body":"@order"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L116"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"visitor_kiosk_enabled:Bool|Nil-instance-method","name":"visitor_kiosk_enabled","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L136"},"def":{"name":"visitor_kiosk_enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@visitor_kiosk_enabled"}}]},{"html_id":"drivers/GoBright/LocationService","path":"GoBright/LocationService.html","kind":"class","full_name":"GoBright::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCHES","name":"NO_MATCHES","value":"[] of String"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L72"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"cache_space_details-instance-method","name":"cache_space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L75"},"def":{"name":"cache_space_details","visibility":"Public","body":"space_details = {} of String => Space\n(Array(Space).from_json(gobright.spaces.get.to_json)).each do |space|\n space_details[space.id] = space\nend\n@space_details = space_details\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/gobright/location_service.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L126"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"checking ownership of: #{mac_address}\"\nend\nif mac_address.starts_with?(\"gobright-\")\nelse\n return\nend\nid = (mac_address.split(\"gobright-\"))[1]\n@cached_booking_data.each do |zone_id, lookup|\n if booking = lookup[id]?\n return {location: \"booking\", assigned_to: booking.organizer.try(&.email_address) || (booking.attendees.first.email_address.as(String)), mac_address: mac_address}\n end\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L143"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && !(location.in?({\"desk\", \"area\", \"booking\"}))\n return [] of Nil\nend\ngobright_location_id = @floor_mappings[zone_id]\nspaces = {} of String => Space\nspace_details.each_value do |space|\n if space.location_id == gobright_location_id\n else\n next\n end\n spaces[space.id] = space.dup\nend\noccupancy = Array(Occupancy).from_json((gobright.live_occupancy(gobright_location_id, @default_space_type)).get.to_json)\noccupancy.each do |details|\n space = spaces[details.id]?\n if space\n else\n next\n end\n space.occupied = details.occupied? || false\nend\ndesk_types = @desk_space_types\noccupancy_locs = spaces.values.compact_map do |space|\n loc_type = space.type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n if (occupied = space.occupied?) || @return_empty_spaces\n {location: loc_type, at_location: occupied ? 1 : 0, map_id: space.name, level: zone_id, building: building_id, capacity: space.capacity || 1, gobright_location_id: gobright_location_id, gobright_space_name: space.name, gobright_space_type: space.type, gobright_space_id: space.id}\n end\nend\nif location && (location != \"booking\")\n return spaces\nend\nbookings = Array(Occurrence).from_json((gobright.bookings(1.minutes.ago.to_unix, 10.minutes.from_now.to_unix, gobright_location_id)).get.to_json)\nlookup = {} of String => Occurrence\nbooking_locs = bookings.compact_map do |occurrence|\n space = nil\n occurrence.spaces.each do |details|\n space = spaces[details.id]?\n if space\n break\n end\n end\n if space\n else\n next\n end\n occurrence.zone_id = zone_id\n occurrence.matched_space = space\n lookup[occurrence.id] = occurrence\n map_booking(occurrence, space, zone_id)\nend\n@cached_booking_data[zone_id] = lookup\nbooking_locs.map() do |__arg6|\n __arg6.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend + occupancy_locs.map() do |__arg7|\n __arg7.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L64"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L59"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"if (__temp_1 = @level_details).nil?\n @level_details = (Hash(String, LevelCapacity).from_json(area_management.level_details.get.to_json))\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"NOTE:: we could keep track of current bookings and then use that information to assign ownership of a desk\nif the desks are being booked via the check-in/check-out\nthis would allow us to locate","summary":"

NOTE : we could keep track of current bookings and then use that information to assign ownership of a desk if the desks are being booked via the check-in/check-out this would allow us to locate

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L93"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for user #{email}\"\nend\nmatches = [] of Occurrence\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n else\n next\n end\n matches << booking\n end\nend\nmatches.compact_map do |booking|\n zone_id = booking.zone_id\n map_booking(booking, booking.matched_space, zone_id, level_details[zone_id]?.try(&.desk_mappings))\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/gobright/location_service.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L114"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"if email\nelse\n return NO_MATCHES\nend\nlogger.debug do\n \"checking if any bookings for email: #{email}\"\nend\nmatches = [] of String\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n matches << \"gobright-#{booking.id}\"\n end\n end\nend\nmatches\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@desk_space_types = (setting?(Array(SpaceType), :desk_space_types)) || [SpaceType::Desk]\n@default_space_type = (setting?(SpaceType, :default_space_type)) || nil\n@floor_mappings = (setting(Hash(String, Mapping), :gobright_floor_mappings)).transform_values(&.location_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\ntimezone = Time::Location.load(system.timezone.presence || \"Australia/Sydney\")\nschedule.clear\nschedule.cron((setting?(String, :space_cache_cron)) || \"0 5 * * *\", timezone) do\n cache_space_details\nend\nschedule.every(10.minutes) do\n @level_details = nil\nend\n"}},{"html_id":"space_details:Hash(String,Space)-instance-method","name":"space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L73"},"def":{"name":"space_details","return_type":"Hash(String, Space)","visibility":"Public","body":"if (__temp_1 = @space_details).nil?\n @space_details = (cache_space_details)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/GoBright/LocationService/LevelCapacity","path":"GoBright/LocationService/LevelCapacity.html","kind":"struct","full_name":"GoBright::LocationService::LevelCapacity","name":"LevelCapacity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_mappings:Hash(String,String)-instance-method","name":"desk_mappings","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L42"},"def":{"name":"desk_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@desk_mappings"}}]},{"html_id":"drivers/GoBright/LocationService/Mapping","path":"GoBright/LocationService/Mapping.html","kind":"struct","full_name":"GoBright::LocationService::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L36"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}}]}]},{"html_id":"drivers/GoBright/Metadata","path":"GoBright/Metadata.html","kind":"struct","full_name":"GoBright::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L11"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"status_code:Int32|Nil-instance-method","name":"status_code","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L8"},"def":{"name":"status_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status_code"}},{"html_id":"validation_errors:Array(Hash(String,String))|Nil-instance-method","name":"validation_errors","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L14"},"def":{"name":"validation_errors","return_type":"Array(Hash(String, String)) | ::Nil","visibility":"Public","body":"@validation_errors"}}]},{"html_id":"drivers/GoBright/Occupancy","path":"GoBright/Occupancy.html","kind":"struct","full_name":"GoBright::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L182"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L183"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L186"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"occupied?:Bool|Nil-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L189"},"def":{"name":"occupied?","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}}]},{"html_id":"drivers/GoBright/Occurrence","path":"GoBright/Occurrence.html","kind":"struct","full_name":"GoBright::Occurrence","name":"Occurrence","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L226"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L227"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approval_state:ApprovalState|Nil-instance-method","name":"approval_state","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L244"},"def":{"name":"approval_state","return_type":"ApprovalState | ::Nil","visibility":"Public","body":"@approval_state"}},{"html_id":"approval_state=(approval_state:ApprovalState|Nil)-instance-method","name":"approval_state=","abstract":false,"args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"args_string":"(approval_state : ApprovalState | Nil)","args_html":"(approval_state : ApprovalState | Nil)","location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L244"},"def":{"name":"approval_state=","args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"visibility":"Public","body":"@approval_state = approval_state"}},{"html_id":"attendee_amount:Int32|Nil-instance-method","name":"attendee_amount","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount","return_type":"Int32 | ::Nil","visibility":"Public","body":"@attendee_amount"}},{"html_id":"attendee_amount=(attendee_amount:Int32|Nil)-instance-method","name":"attendee_amount=","abstract":false,"args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"args_string":"(attendee_amount : Int32 | Nil)","args_html":"(attendee_amount : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount=","args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@attendee_amount = attendee_amount"}},{"html_id":"attendees:Array(Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L260"},"def":{"name":"attendees","return_type":"Array(Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"attendees=(attendees:Array(Attendee))-instance-method","name":"attendees=","abstract":false,"args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"args_string":"(attendees : Array(Attendee))","args_html":"(attendees : Array(Attendee))","location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L260"},"def":{"name":"attendees=","args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"visibility":"Public","body":"@attendees = attendees"}},{"html_id":"booking_type:BookingType-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L235"},"def":{"name":"booking_type","return_type":"BookingType","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:BookingType)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"args_string":"(booking_type : BookingType)","args_html":"(booking_type : BookingType)","location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L235"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"composed_id:String-instance-method","name":"composed_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L232"},"def":{"name":"composed_id","return_type":"String","visibility":"Public","body":"@composed_id"}},{"html_id":"composed_id=(composed_id:String)-instance-method","name":"composed_id=","abstract":false,"args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"args_string":"(composed_id : String)","args_html":"(composed_id : String)","location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L232"},"def":{"name":"composed_id=","args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"visibility":"Public","body":"@composed_id = composed_id"}},{"html_id":"confirmation_active:Bool|Nil-instance-method","name":"confirmation_active","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmation_active"}},{"html_id":"confirmation_active=(confirmation_active:Bool|Nil)-instance-method","name":"confirmation_active=","abstract":false,"args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"args_string":"(confirmation_active : Bool | Nil)","args_html":"(confirmation_active : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active=","args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmation_active = confirmation_active"}},{"html_id":"confirmation_window_end:String|Nil-instance-method","name":"confirmation_window_end","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_end"}},{"html_id":"confirmation_window_end=(confirmation_window_end:String|Nil)-instance-method","name":"confirmation_window_end=","abstract":false,"args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_end : String | Nil)","args_html":"(confirmation_window_end : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end=","args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_end = confirmation_window_end"}},{"html_id":"confirmation_window_start:String|Nil-instance-method","name":"confirmation_window_start","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_start"}},{"html_id":"confirmation_window_start=(confirmation_window_start:String|Nil)-instance-method","name":"confirmation_window_start=","abstract":false,"args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_start : String | Nil)","args_html":"(confirmation_window_start : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start=","args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_start = confirmation_window_start"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L256"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L256"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L229"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L229"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"intention_type:Int32|Nil-instance-method","name":"intention_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L238"},"def":{"name":"intention_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@intention_type"}},{"html_id":"intention_type=(intention_type:Int32|Nil)-instance-method","name":"intention_type=","abstract":false,"args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"args_string":"(intention_type : Int32 | Nil)","args_html":"(intention_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L238"},"def":{"name":"intention_type=","args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@intention_type = intention_type"}},{"html_id":"is_anonymously_booked:Bool|Nil-instance-method","name":"is_anonymously_booked","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_anonymously_booked"}},{"html_id":"is_anonymously_booked=(is_anonymously_booked:Bool|Nil)-instance-method","name":"is_anonymously_booked=","abstract":false,"args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"args_string":"(is_anonymously_booked : Bool | Nil)","args_html":"(is_anonymously_booked : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked=","args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_anonymously_booked = is_anonymously_booked"}},{"html_id":"license_plate:String|Nil-instance-method","name":"license_plate","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L250"},"def":{"name":"license_plate","return_type":"String | ::Nil","visibility":"Public","body":"@license_plate"}},{"html_id":"license_plate=(license_plate:String|Nil)-instance-method","name":"license_plate=","abstract":false,"args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"args_string":"(license_plate : String | Nil)","args_html":"(license_plate : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L250"},"def":{"name":"license_plate=","args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"visibility":"Public","body":"@license_plate = license_plate"}},{"html_id":"matched_space:Space-instance-method","name":"matched_space","abstract":false,"def":{"name":"matched_space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @matched_space).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#matched_space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"matched_space=(matched_space:Space)-instance-method","name":"matched_space=","abstract":false,"args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"args_string":"(matched_space : Space)","args_html":"(matched_space : Space)","location":{"filename":"src/gobright/models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L278"},"def":{"name":"matched_space=","args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"visibility":"Public","body":"@matched_space = matched_space"}},{"html_id":"matched_space?:Space|Nil-instance-method","name":"matched_space?","abstract":false,"def":{"name":"matched_space?","return_type":"Space | ::Nil","visibility":"Public","body":"@matched_space"}},{"html_id":"organizer:Attendee|Nil-instance-method","name":"organizer","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L258"},"def":{"name":"organizer","return_type":"Attendee | ::Nil","visibility":"Public","body":"@organizer"}},{"html_id":"organizer=(organizer:Attendee|Nil)-instance-method","name":"organizer=","abstract":false,"args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"args_string":"(organizer : Attendee | Nil)","args_html":"(organizer : Attendee | Nil)","location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L258"},"def":{"name":"organizer=","args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"visibility":"Public","body":"@organizer = organizer"}},{"html_id":"recurrence_type:Int32|Nil-instance-method","name":"recurrence_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@recurrence_type"}},{"html_id":"recurrence_type=(recurrence_type:Int32|Nil)-instance-method","name":"recurrence_type=","abstract":false,"args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"args_string":"(recurrence_type : Int32 | Nil)","args_html":"(recurrence_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type=","args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@recurrence_type = recurrence_type"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L259"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L259"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L253"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L253"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}},{"html_id":"subject:String|Nil-instance-method","name":"subject","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L257"},"def":{"name":"subject","return_type":"String | ::Nil","visibility":"Public","body":"@subject"}},{"html_id":"subject=(subject:String|Nil)-instance-method","name":"subject=","abstract":false,"args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"args_string":"(subject : String | Nil)","args_html":"(subject : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L257"},"def":{"name":"subject=","args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"visibility":"Public","body":"@subject = subject"}},{"html_id":"zone_id:String-instance-method","name":"zone_id","abstract":false,"def":{"name":"zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @zone_id).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#zone_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"zone_id=(zone_id:String)-instance-method","name":"zone_id=","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/gobright/models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L275"},"def":{"name":"zone_id=","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"@zone_id = zone_id"}},{"html_id":"zone_id?:String|Nil-instance-method","name":"zone_id?","abstract":false,"def":{"name":"zone_id?","return_type":"String | ::Nil","visibility":"Public","body":"@zone_id"}}]},{"html_id":"drivers/GoBright/Paging","path":"GoBright/Paging.html","kind":"struct","full_name":"GoBright::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L24"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"total:Int32|Nil-instance-method","name":"total","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L21"},"def":{"name":"total","return_type":"Int32 | ::Nil","visibility":"Public","body":"@total"}}]},{"html_id":"drivers/GoBright/ParkingPeriod","path":"GoBright/ParkingPeriod.html","kind":"struct","full_name":"GoBright::ParkingPeriod","name":"ParkingPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L70"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L71"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L86"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L83"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L74"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L80"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L77"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Response","path":"GoBright/Response.html","kind":"struct","full_name":"GoBright::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L34"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"items:String|Nil-instance-method","name":"items","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L37"},"def":{"name":"items","return_type":"String | ::Nil","visibility":"Public","body":"@items"}},{"html_id":"metadata:Metadata|Nil-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L31"},"def":{"name":"metadata","return_type":"Metadata | ::Nil","visibility":"Public","body":"@metadata"}},{"html_id":"paging:Paging|Nil-instance-method","name":"paging","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L40"},"def":{"name":"paging","return_type":"Paging | ::Nil","visibility":"Public","body":"@paging"}}]},{"html_id":"drivers/GoBright/Space","path":"GoBright/Space.html","kind":"class","full_name":"GoBright::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L156"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"amenities:Array(Amenity)-instance-method","name":"amenities","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L160"},"def":{"name":"amenities","return_type":"Array(Amenity)","visibility":"Public","body":"@amenities"}},{"html_id":"capacity:Int64|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L170"},"def":{"name":"capacity","return_type":"Int64 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L169"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L158"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"integration_external_id:String|Nil-instance-method","name":"integration_external_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L173"},"def":{"name":"integration_external_id","return_type":"String | ::Nil","visibility":"Public","body":"@integration_external_id"}},{"html_id":"is_bookable:Bool|Nil-instance-method","name":"is_bookable","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L176"},"def":{"name":"is_bookable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_bookable"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L166"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L159"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L179"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupied?:Bool-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L179"},"def":{"name":"occupied?","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"type:SpaceType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L163"},"def":{"name":"type","return_type":"SpaceType | ::Nil","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/GoBright/SpaceType","path":"GoBright/SpaceType.html","kind":"enum","full_name":"GoBright::SpaceType","name":"SpaceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L148"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Room","name":"Room","value":"0"},{"id":"Desk","name":"Desk","value":"1"},{"id":"CombinedRoom","name":"CombinedRoom","value":"2"},{"id":"Parking","name":"Parking","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"combined_room?-instance-method","name":"combined_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L151"},"def":{"name":"combined_room?","visibility":"Public","body":"self == CombinedRoom"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L150"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}},{"html_id":"parking?-instance-method","name":"parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L152"},"def":{"name":"parking?","visibility":"Public","body":"self == Parking"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L149"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}}]}]},{"html_id":"drivers/Halite","path":"Halite.html","kind":"module","full_name":"Halite","name":"Halite","abstract":false,"locations":[{"filename":"lib/halite/src/halite.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite.cr#L4"},{"filename":"lib/halite/src/halite/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/chainable.cr#L3"},{"filename":"lib/halite/src/halite/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/client.cr#L8"},{"filename":"lib/halite/src/halite/error.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/error.cr#L1"},{"filename":"lib/halite/src/halite/feature.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/feature.cr#L1"},{"filename":"lib/halite/src/halite/features/cache.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/features/cache.cr#L5"},{"filename":"lib/halite/src/halite/features/logging.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/features/logging.cr#L10"},{"filename":"lib/halite/src/halite/form_data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/form_data.cr#L4"},{"filename":"lib/halite/src/halite/header_link.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/header_link.cr#L1"},{"filename":"lib/halite/src/halite/mime_type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/mime_type.cr#L1"},{"filename":"lib/halite/src/halite/options.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options.cr#L4"},{"filename":"lib/halite/src/halite/options/follow.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options/follow.cr#L1"},{"filename":"lib/halite/src/halite/options/timeout.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options/timeout.cr#L1"},{"filename":"lib/halite/src/halite/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/rate_limit.cr#L1"},{"filename":"lib/halite/src/halite/redirector.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/redirector.cr#L1"},{"filename":"lib/halite/src/halite/request.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/request.cr#L1"},{"filename":"lib/halite/src/halite/response.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/response.cr#L1"},{"filename":"lib/quantum/src/quantum/extensions/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/quantum/src/quantum/extensions/client.cr#L1"},{"filename":"lib/sabo/src/sabo/ext/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/sabo/src/sabo/ext/client.cr#L1"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/stripetease/src/stripetease/extensions/chainable.cr#L1"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Halite/Chainable","kind":"module","full_name":"Halite::Chainable","name":"Chainable"},{"html_id":"drivers/Halite/FeatureRegister","kind":"module","full_name":"Halite::FeatureRegister","name":"FeatureRegister"}],"types":[{"html_id":"drivers/Halite/Chainable","path":"Halite/Chainable.html","kind":"module","full_name":"Halite::Chainable","name":"Chainable","abstract":false,"locations":[{"filename":"lib/halite/src/halite/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/chainable.cr#L4"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/stripetease/src/stripetease/extensions/chainable.cr#L2"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Halite","kind":"module","full_name":"Halite","name":"Halite"},"instance_methods":[{"html_id":"cookies(cookies:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"cookies","doc":"Make a request with the given cookies\n\n```\nHalite.cookies({\"private-token\", \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.cookies({private-token: \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given cookies

","abstract":false,"args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L189"},"def":{"name":"cookies","args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_cookies(cookies))"}},{"html_id":"headers(headers:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"headers","doc":"Make a request with the given headers\n\n```\nHalite.headers({\"Content-Type\", \"application/json\", \"Connection\": \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.headers({content_type: \"application/json\", connection: \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given headers

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L166"},"def":{"name":"headers","args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_headers(headers))"}}]}]},{"html_id":"drivers/Helvar","path":"Helvar.html","kind":"module","full_name":"Helvar","name":"Helvar","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Helvar/Net","path":"Helvar/Net.html","kind":"class","full_name":"Helvar::Net","name":"Net","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_METHODS","name":"CMD_METHODS","value":"{group_scene: 11, device_scene: 12, group_level: 13, device_level: 14, group_proportion: 15, device_proportion: 16, group_modify_proportion: 17, device_modify_proportion: 18, group_emergency_test: 19, device_emergency_test: 20, group_emergency_duration_test: 21, device_emergency_duration_test: 22, group_emergency_stop: 23, device_emergency_stop: 24, query_lamp_hours: 70, query_ballast_hours: 71, query_max_voltage: 72, query_min_voltage: 73, query_max_temp: 74, query_min_temp: 75, query_device_types_with_addresses: 100, query_clusters: 101, query_routers: 102, query_LSIB: 103, query_device_type: 104, query_description_group: 105, query_description_device: 106, query_workgroup_name: 107, query_workgroup_membership: 108, query_last_scene: 109, query_device_state: 110, query_device_disabled: 111, query_lamp_failure: 112, query_device_faulty: 113, query_missing: 114, query_emergency_battery_failure: 129, query_measurement: 150, query_inputs: 151, query_load: 152, query_power_consumption: 160, query_group_power_consumption: 161, query_group: 164, query_groups: 165, query_scene_names: 166, query_scene_info: 167, query_emergency_func_test_time: 170, query_emergency_func_test_state: 171, query_emergency_duration_time: 172, query_emergency_duration_state: 173, query_emergency_battery_charge: 174, query_emergency_battery_time: 175, query_emergency_total_lamp_time: 176, query_time: 185, query_longitude: 186, query_latitude: 187, query_time_zone: 188, query_daylight_savings: 189, query_software_version: 190, query_helvar_net: 191}"},{"id":"COMMANDS","name":"COMMANDS","value":"{\"group_scene\" => \"11\", \"device_scene\" => \"12\", \"group_level\" => \"13\", \"device_level\" => \"14\", \"group_proportion\" => \"15\", \"device_proportion\" => \"16\", \"group_modify_proportion\" => \"17\", \"device_modify_proportion\" => \"18\", \"group_emergency_test\" => \"19\", \"device_emergency_test\" => \"20\", \"group_emergency_duration_test\" => \"21\", \"device_emergency_duration_test\" => \"22\", \"group_emergency_stop\" => \"23\", \"device_emergency_stop\" => \"24\", \"query_lamp_hours\" => \"70\", \"query_ballast_hours\" => \"71\", \"query_max_voltage\" => \"72\", \"query_min_voltage\" => \"73\", \"query_max_temp\" => \"74\", \"query_min_temp\" => \"75\", \"query_device_types_with_addresses\" => \"100\", \"query_clusters\" => \"101\", \"query_routers\" => \"102\", \"query_LSIB\" => \"103\", \"query_device_type\" => \"104\", \"query_description_group\" => \"105\", \"query_description_device\" => \"106\", \"query_workgroup_name\" => \"107\", \"query_workgroup_membership\" => \"108\", \"query_last_scene\" => \"109\", \"query_device_state\" => \"110\", \"query_device_disabled\" => \"111\", \"query_lamp_failure\" => \"112\", \"query_device_faulty\" => \"113\", \"query_missing\" => \"114\", \"query_emergency_battery_failure\" => \"129\", \"query_measurement\" => \"150\", \"query_inputs\" => \"151\", \"query_load\" => \"152\", \"query_power_consumption\" => \"160\", \"query_group_power_consumption\" => \"161\", \"query_group\" => \"164\", \"query_groups\" => \"165\", \"query_scene_names\" => \"166\", \"query_scene_info\" => \"167\", \"query_emergency_func_test_time\" => \"170\", \"query_emergency_func_test_state\" => \"171\", \"query_emergency_duration_time\" => \"172\", \"query_emergency_duration_state\" => \"173\", \"query_emergency_battery_charge\" => \"174\", \"query_emergency_battery_time\" => \"175\", \"query_emergency_total_lamp_time\" => \"176\", \"query_time\" => \"185\", \"query_longitude\" => \"186\", \"query_latitude\" => \"187\", \"query_time_zone\" => \"188\", \"query_daylight_savings\" => \"189\", \"query_software_version\" => \"190\", \"query_helvar_net\" => \"191\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"0\" => \"success\", \"1\" => \"invalid group index parameter\", \"2\" => \"invalid cluster parameter\", \"3\" => \"invalid router\", \"4\" => \"invalid router subnet\", \"5\" => \"invalid device parameter\", \"6\" => \"invalid sub device parameter\", \"7\" => \"invalid block parameter\", \"8\" => \"invalid scene\", \"9\" => \"cluster does not exist\", \"10\" => \"router does not exist\", \"11\" => \"device does not exist\", \"12\" => \"property does not exist\", \"13\" => \"invalid RAW message size\", \"14\" => \"invalid messages type\", \"15\" => \"invalid message command\", \"16\" => \"missing ASCII terminator\", \"17\" => \"missing ASCII parameter\", \"18\" => \"incompatible version\"}"},{"id":"PARAMS","name":"PARAMS","value":"{\"V\" => :ver, \"Q\" => :seq, \"C\" => :cmd, \"A\" => :ack, \"@\" => :addr, \"F\" => :fade, \"T\" => :time, \"L\" => :level, \"G\" => :group, \"S\" => :scene, \"B\" => :block, \"N\" => :latitude, \"E\" => :longitude, \"Z\" => :time_zone, \"P\" => :proportion, \"D\" => :display_screen, \"Y\" => :daylight_savings, \"O\" => :force_store_scene, \"K\" => :constant_light_scene}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Helvar","kind":"module","full_name":"Helvar","name":"Helvar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Helvar\"\n end\n if poll_group = @poll_group\n get_current_preset(poll_group)\n else\n query_software_version\n end\nend"}},{"html_id":"device_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"22\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"24\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"20\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"14\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"18\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"16\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"12\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(group:Int32)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L67"},"def":{"name":"get_current_preset","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_last_scene(group: group, name: \"query_scene#{group}\")"}},{"html_id":"group_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"21\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"23\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"19\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"13\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"17\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"15\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"11\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"light_level(group:Int32,level:Int32,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, level : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, level : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L55"},"def":{"name":"light_level","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}_level\"] = level\ngroup_level(group: group, level: level, fade: fade, name: \"group_level#{group}\")\n"}},{"html_id":"lighting(group:Int32,state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(group : Int32, state : Bool)","args_html":"(group : Int32, state : Bool)","location":{"filename":"src/helvar/net.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L50"},"def":{"name":"lighting","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(group, level)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L337"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"group = check_arguments(area)\nif scene = (get_current_preset(group)).get(response_required: true).payload.to_i\n payload = (query_scene_levels(group)).get(response_required: true).payload\n levels = Array(Int32).from_json(payload)\n self[\"area#{group}_level\"] = levels[scene]\nend\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L328"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"get_current_preset(check_arguments(area))"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"#\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(Int32, :version)) || 2\n@ignore_blocks = (setting?(Bool, :ignore_blocks)) || true\n@poll_group = setting?(Int32, :poll_group)\n"}},{"html_id":"query_ballast_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_ballast_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_ballast_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"71\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_clusters(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_clusters","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_clusters","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"101\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_daylight_savings(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_daylight_savings","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_daylight_savings","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"189\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_device(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_device","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_description_device","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"106\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_description_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"105\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_disabled(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_disabled","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_disabled","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"111\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_faulty(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_faulty","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_faulty","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"113\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"110\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_type(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_type","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_type","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"104\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_types_with_addresses(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_types_with_addresses","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_types_with_addresses","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"100\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_charge(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_charge","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_charge","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"174\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"129\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"175\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"173\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"172\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"171\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"170\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_total_lamp_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_total_lamp_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_total_lamp_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"176\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"164\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_group_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"161\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_groups(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_groups","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_groups","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"165\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_helvar_net(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_helvar_net","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_helvar_net","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"191\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_inputs(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_inputs","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_inputs","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"151\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"112\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"70\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_last_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_last_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_last_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"109\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_latitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_latitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_latitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"187\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_load(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_load","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_load","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"152\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_longitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_longitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_longitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"186\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_LSIB(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_LSIB","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_LSIB","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"103\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_max_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"74\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_max_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"72\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_measurement(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_measurement","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_measurement","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"150\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_min_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"75\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_min_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"73\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_missing(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_missing","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_missing","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"114\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"160\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_routers(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_routers","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_routers","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"102\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_info(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_info","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_scene_info","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"167\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_levels(group:Int32)-instance-method","name":"query_scene_levels","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L71"},"def":{"name":"query_scene_levels","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_scene_info(group: group, name: \"query_scene#{group}_info\")"}},{"html_id":"query_scene_names(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_names","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_scene_names","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"166\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_software_version(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_software_version","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_software_version","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"190\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"185\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time_zone(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time_zone","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_time_zone","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"188\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_membership(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_membership","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_membership","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"108\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_name(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_name","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_name","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"107\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/helvar/net.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L181"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Helvar sent: #{data}\"\nend\ntask_name = task.try(&.name)\ndata = data[0..-2]\nstart_of_message = data.index(/[\\?\\>\\!]V:/i)\nif start_of_message != 0\n logger.warn do\n \"Lighting error response: #{data[0...start_of_message]}\"\n end\n data = data[start_of_message..-1]\nend\ndata = data.delete(\"$\")\nindicator = data[0]\ncase indicator\nwhen '?', '>'\n data = data[1..-1]\n parts = data.split(\"=\")\n data = parts[0]\n value = parts[1]?\n params = {} of Symbol => String\n (data.split(\",\")).each do |param|\n parts = param.split(\":\")\n if parts.size > 1\n params[PARAMS[parts[0]]] = parts[1]\n else\n if parts[0][0] == '@'\n params[:addr] == parts[0][1..-1]\n else\n logger.debug do\n \"unknown param type #{param}\"\n end\n end\n end\n end\n ack = params[:ack]?\n if ack\n if ack != \"1\"\n return task.try(&.abort(\"request failed\"))\n end\n return task.try(&.success)\n end\n cmd = COMMANDS[params[:cmd]]\n case cmd\n when \"query_last_scene\"\n scene = value.try(&.to_i)\n group = params[:group]\n self[\"area#{group}\"] = scene\n if task_name == \"query_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_scene\"\n block = params[:block]\n group = params[:group]\n scene = params[:scene].to_i\n if block\n if @ignore_blocks\n self[\"area#{group}\"] = scene\n else\n self[\"area#{group}_#{block}\"] = scene\n end\n else\n self[\"area#{group}\"] = scene\n end\n if task_name == \"group_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_level\"\n if task_name == \"group_level#{params[:group]}\"\n task.not_nil!.success\n end\n when \"query_scene_info\"\n group = params[:group]\n if value && (task_name == \"query_scene#{group}_info\")\n levels = ((value.split(\",L\"))[0].split(',')).map(&.to_i)\n task.not_nil!.success(levels)\n end\n else\n logger.debug do\n \"unknown response value\\n#{cmd} = #{value}\"\n end\n end\nwhen '!'\n error = ERRORS[(data.split(\"=\"))[1]]\n error = \"#{error} for #{data}\"\n self[:last_error] = error\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nelse\n logger.info do\n \"unknown request #{data}\"\n end\nend\nif task_name\nelse\n task.try(&.success)\nend\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L332"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\nlight_level(area_id, level.round_even.to_i, fade_time.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L324"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"trigger(check_arguments(area), scene.to_i, fade_time.to_i)"}},{"html_id":"trigger(group:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L61"},"def":{"name":"trigger","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}\"] = scene\ngroup_scene(group: group, scene: scene, fade: fade, name: \"group_scene#{group}\")\n"}}],"macros":[{"html_id":"build_command_hash-macro","name":"build_command_hash","doc":"Generate a String => String hash based on the data above","summary":"

Generate a String => String hash based on the data above

","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L147"},"def":{"name":"build_command_hash","visibility":"Public","body":" COMMANDS = \n{\n \n{% for name, command in CMD_METHODS %}\n {{ name.id.stringify }} => {{ command.id.stringify }},\n {% end %}\n\n }\n COMMANDS.merge!(COMMANDS.invert)\n \n"}}],"types":[{"html_id":"drivers/Helvar/Net/Area","path":"Helvar/Net/Area.html","kind":"alias","full_name":"Helvar::Net::Area","name":"Area","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Helvar/Net","kind":"class","full_name":"Helvar::Net","name":"Net"}}]}]},{"html_id":"drivers/Hitachi","path":"Hitachi.html","kind":"module","full_name":"Hitachi","name":"Hitachi","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Hitachi/Projector","path":"Hitachi/Projector.html","kind":"module","full_name":"Hitachi::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Hitachi","kind":"module","full_name":"Hitachi","name":"Hitachi"},"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","path":"Hitachi/Projector/CpTwSeriesBasic.html","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Commands","name":"Commands","value":"{power_on: \"BA D2 01 00 00 60 01 00\", power_off: \"2A D3 01 00 00 60 00 00\", hdmi: \"0E D2 01 00 00 20 03 00\", hdmi2: \"6E D6 01 00 00 20 0D 00\", mute_video: \"6E F1 01 00 A0 20 01 00\", unmute_video: \"FE F0 01 00 A0 20 00 00\", mute_audio: \"D6 D2 01 00 02 20 01 00\", unmute_audio: \"46 D3 01 00 02 20 00 00\", lamp_hours_reset: \"58 DC 06 00 30 70 00 00\", filter_hours_reset: \"98 C6 06 00 40 70 00 00\", \"power?\": \"19 D3 02 00 00 60 00 00\", \"input?\": \"CD D2 02 00 00 20 00 00\", \"error?\": \"D9 D8 02 00 20 60 00 00\", \"freeze?\": \"B0 D2 02 00 02 30 00 00\", \"audio_mute?\": \"75 D3 02 00 02 20 00 00\", \"video_mute?\": \"CD F0 02 00 A0 20 00 00\", \"lamp?\": \"C2 FF 02 00 90 10 00 00\", \"filter?\": \"C2 F0 02 00 A0 10 00 00\"}","doc":"Note: commands have spaces in between each byte for readability","summary":"

Note: commands have spaces in between each byte for readability

"},{"id":"GetRequests","name":"GetRequests","value":"[:\"power?\", :\"input?\", :\"error?\", :\"freeze?\", :\"audio_mute?\", :\"video_mute?\", :\"lamp?\", :\"filter?\"] of ::Symbol"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Hitachi/Projector","kind":"module","full_name":"Hitachi::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?(**options)-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"audio_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"audio_mute?\", **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L32"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n poll_1\nend\nschedule.every(10.minutes, true) do\n poll_2\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L53"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@recover_power = nil\n@recover_input = nil\n"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"error?\", **options)"}},{"html_id":"filter?(**options)-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"filter?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"filter?\", **options)"}},{"html_id":"filter_hours_reset-instance-method","name":"filter_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L109"},"def":{"name":"filter_hours_reset","visibility":"Public","body":"do_send(:filter_hours_reset)\nfilter?\n"}},{"html_id":"freeze?(**options)-instance-method","name":"freeze?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"freeze?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"freeze?\", **options)"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"input?\", **options)"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"lamp?\", **options)"}},{"html_id":"lamp_hours_reset-instance-method","name":"lamp_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L104"},"def":{"name":"lamp_hours_reset","visibility":"Public","body":"do_send(:lamp_hours_reset)\nlamp?\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L77"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L95"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_audio)\nelse\n do_send(:unmute_audio)\nend\naudio_mute?\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L86"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_video)\nelse\n do_send(:unmute_video)\nend\nvideo_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nqueue.timeout = 5.seconds\nqueue.retries = 3\nself[:type] = :projector\n"}},{"html_id":"poll_1-instance-method","name":"poll_1","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L37"},"def":{"name":"poll_1","visibility":"Public","body":"power?(priority: 0).get\nif self[:power]?.try(&.as_bool)\n input?(priority: 0)\n audio_mute?(priority: 0)\n video_mute?(priority: 0)\n freeze?(priority: 0)\nend\n"}},{"html_id":"poll_2-instance-method","name":"poll_2","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L47"},"def":{"name":"poll_2","visibility":"Public","body":"lamp?(priority: 0)\nfilter?(priority: 0)\nerror?(priority: 0)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L59"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off)\nend\npower?\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"power?\", **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L139"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data}\"\nend\ncommand = task.try(&.name)\ncase Response.from_value(data[0])\nwhen .ack?\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"NAK response\"))\nwhen .error?\n task.try(&.abort(\"Error response\"))\nwhen .data?\n if command\n case command\n when \"power?\"\n self[:power] = data[1] == 1\n self[:cooling] = data[1] == 2\n if self[:power]? == @power_target\n @power_target = nil\n else\n if @power_target && @recover_power.nil?\n logger.debug do\n \"recovering power state #{self[:power]} != target #{@power_target}\"\n end\n @recover_power = schedule.in(3.seconds) do\n @recover_power = nil\n power(@power_target.not_nil!)\n end\n end\n end\n when \"input?\"\n input = Input.from_value?(data[1])\n self[:input] = input || \"unknown\"\n if @input_target\n if input == @input_target\n @input_target = nil\n else\n if @recover_input.nil?\n logger.debug do\n \"recovering input #{self[:input]} != target #{@input_target}\"\n end\n @recover_input = schedule.in(3.seconds) do\n @recover_input = nil\n switch_to(@input_target.not_nil!)\n end\n end\n end\n end\n when \"error?\"\n self[:error_status] = (Error.from_value?(data[1])) || \"unknown\"\n when \"freeze?\"\n self[:frozen] = data[1] == 1\n when \"audio_mute?\"\n self[:audio_mute] = data[1] == 1\n when \"video_mute?\"\n self[:video_mute] = data[1] == 1\n when \"lamp?\"\n self[:lamp] = data[1] * data[2]\n when \"filter?\"\n self[:filter] = data[1] * data[2]\n end\n task.try(&.success)\n else\n task.try(&.abort(\"data received for unknown command\"))\n end\nwhen .busy?\n if (data[1] == 4) && (data[2] == 0)\n task.try(&.abort(\"authentication enabled, please disable\"))\n else\n task.try(&.retry(\"projector busy, retrying\"))\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L71"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ndo_send(input.to_s.downcase)\ninput?\n"}},{"html_id":"video_mute?(**options)-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"video_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"video_mute?\", **options)"}}],"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Error","path":"Hitachi/Projector/CpTwSeriesBasic/Error.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Normal","name":"Normal","value":"0"},{"id":"Cover","name":"Cover","value":"1"},{"id":"Fan","name":"Fan","value":"2"},{"id":"Lamp","name":"Lamp","value":"3"},{"id":"Temp","name":"Temp","value":"4"},{"id":"AirFlow","name":"AirFlow","value":"5"},{"id":"Cold","name":"Cold","value":"6"},{"id":"Filter","name":"Filter","value":"7"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"air_flow?-instance-method","name":"air_flow?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L134"},"def":{"name":"air_flow?","visibility":"Public","body":"self == AirFlow"}},{"html_id":"cold?-instance-method","name":"cold?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L135"},"def":{"name":"cold?","visibility":"Public","body":"self == Cold"}},{"html_id":"cover?-instance-method","name":"cover?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L130"},"def":{"name":"cover?","visibility":"Public","body":"self == Cover"}},{"html_id":"fan?-instance-method","name":"fan?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L131"},"def":{"name":"fan?","visibility":"Public","body":"self == Fan"}},{"html_id":"filter?-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L136"},"def":{"name":"filter?","visibility":"Public","body":"self == Filter"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L132"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"normal?-instance-method","name":"normal?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L129"},"def":{"name":"normal?","visibility":"Public","body":"self == Normal"}},{"html_id":"temp?-instance-method","name":"temp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L133"},"def":{"name":"temp?","visibility":"Public","body":"self == Temp"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Input","path":"Hitachi/Projector/CpTwSeriesBasic/Input.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L122"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmi","name":"Hdmi","value":"3"},{"id":"Hdmi2","name":"Hdmi2","value":"13"},{"id":"HdbaSet","name":"HdbaSet","value":"17"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"hdba_set?-instance-method","name":"hdba_set?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L125"},"def":{"name":"hdba_set?","visibility":"Public","body":"self == HdbaSet"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L124"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L123"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Response","path":"Hitachi/Projector/CpTwSeriesBasic/Response.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L114"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"6"},{"id":"Nak","name":"Nak","value":"21"},{"id":"Error","name":"Error","value":"28"},{"id":"Data","name":"Data","value":"29"},{"id":"Busy","name":"Busy","value":"31"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L115"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L119"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"data?-instance-method","name":"data?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L118"},"def":{"name":"data?","visibility":"Public","body":"self == Data"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L117"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L116"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Infosilem","path":"Infosilem.html","kind":"module","full_name":"Infosilem","name":"Infosilem","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L4"},{"filename":"src/infosilem/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Infosilem/Campus","path":"Infosilem/Campus.html","kind":"class","full_name":"Infosilem::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String)","location":{"filename":"src/infosilem/campus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L35"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"response = @integration.try(&.call(operation: \"StartTransfer\", body: {\"StartTransferOptions\" => Sabo::Parameter.from_hash(start_transfer_options(username: setting(String, :username), password: setting(String, :password)))}))\ntransfer_id = response.try(&.result)\nresponse = @booking.try(&.call(operation: \"RoomBookingOccurrence_ExportAll\", body: {\"TransferID\" => Sabo::Parameter.new(transfer_id.to_s), \"Options\" => Sabo::Parameter.from_hash(booking_options(building: building_id, room: room_id, start_date: start_date, end_date: end_date, start_time: start_date, end_time: end_date))}))\n@integration.try(&.call(operation: \"EndTransfer\", body: end_transfer_body(transfer_id: transfer_id.to_s)))\nself[\"room_#{room_id}_bookings_#{start_date}_#{end_date}\"] = response.try() do |__arg4|\n __arg4.result[\"ObjectData\"][\"ReservationOccurrences\"][\"ReservationOccurrence\"]?\nend || ([] of Int32)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/campus.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@integration = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/Integration/Integration.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n@booking = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/ExportOnly/RoomBookingPub.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n"}}],"types":[{"html_id":"drivers/Infosilem/Campus/Client","path":"Infosilem/Campus/Client.html","kind":"alias","full_name":"Infosilem::Campus::Client","name":"Client","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Sabo::Client","aliased_html":"Sabo::Client","const":false,"namespace":{"html_id":"drivers/Infosilem/Campus","kind":"class","full_name":"Infosilem::Campus","name":"Campus"}}]},{"html_id":"drivers/Infosilem/DateTimeConvertor","path":"Infosilem/DateTimeConvertor.html","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/DateTimeConvertor","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L37"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_local(\"#{Time.local.to_s(\"%F\")} #{value.read_string}\", \"%F %H:%M:%S\")"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L33"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%H:%M:%S\"))"}}]},{"html_id":"drivers/Infosilem/Event","path":"Infosilem/Event.html","kind":"class","full_name":"Infosilem::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflicting:Int32|Nil-instance-method","name":"conflicting","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L15"},"def":{"name":"conflicting","return_type":"Int32 | ::Nil","visibility":"Public","body":"@conflicting"}},{"html_id":"conflicting=(conflicting:Int32|Nil)-instance-method","name":"conflicting=","abstract":false,"args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"args_string":"(conflicting : Int32 | Nil)","args_html":"(conflicting : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L15"},"def":{"name":"conflicting=","args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@conflicting = conflicting"}},{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L23"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L23"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L9"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L9"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L25"},"def":{"name":"duration","visibility":"Public","body":"end_time - start_time"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L21"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Time)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"args_string":"(end_time : Time)","args_html":"(end_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L21"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"number_of_attendees:Int32|Nil-instance-method","name":"number_of_attendees","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_attendees"}},{"html_id":"number_of_attendees=(number_of_attendees:Int32|Nil)-instance-method","name":"number_of_attendees=","abstract":false,"args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"args_string":"(number_of_attendees : Int32 | Nil)","args_html":"(number_of_attendees : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees=","args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@number_of_attendees = number_of_attendees"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L18"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Time)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"args_string":"(start_time : Time)","args_html":"(start_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L18"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Infosilem/IntegerConverter","path":"Infosilem/IntegerConverter.html","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/IntegerConverter","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L49"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"value.read_string.to_i"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L45"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s)"}}]},{"html_id":"drivers/Infosilem/MockCampus","path":"Infosilem/MockCampus.html","kind":"class","full_name":"Infosilem::MockCampus","name":"MockCampus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/mock_campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String):Array(JSON::Any)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","location":{"filename":"src/infosilem/mock_campus.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L226"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"@response"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/mock_campus.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L222"},"def":{"name":"on_update","visibility":"Public","body":"@response = (setting?(Array(JSON::Any), :response)) || ([] of JSON::Any)"}}]},{"html_id":"drivers/Infosilem/RoomSchedule","path":"Infosilem/RoomSchedule.html","kind":"class","full_name":"Infosilem::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L34"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local.to_s(\"%Y-%m-%d\")\n todays_events = Array(Event).from_json(fetch_events(today, today))\n todays_events.sort_by(&.duration).reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.start_time\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by?(&.start_time)\n previous_event = past_events.max_by?(&.end_time)\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(start_date : String, end_date : String)","args_html":"(start_date : String, end_date : String)","location":{"filename":"src/infosilem/room_schedule.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L77"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"events = (infosilem.bookings?(@building_id, @room_id, start_date, end_date)).get.to_json\nif @debug\n logger.debug do\n \"Infosilem Campus returned: #{events}\"\n end\nend\nevents\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@building_id = setting(String, :infosilem_building_id)\n@room_id = setting(String, :infosilem_room_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/InnerRange","path":"InnerRange.html","kind":"module","full_name":"InnerRange","name":"InnerRange","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/InnerRange/Integriti","path":"InnerRange/Integriti.html","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L10"},{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PERMISSION_REGEX","name":"PERMISSION_REGEX","value":"/ID\\:\\s+(?[a-f0-9\\-]+)\\s+added/"},{"id":"PROPS","name":"PROPS","value":"{\"SystemInfo\" => \"ProductEdition,ProductVersion,ProtocolVersion\", \"RemoveResult\" => \"NumberOfItemsRemoved,Message\", \"AddResult\" => \"NumberOfItemsAdded,Message\", \"AddOrUpdateResult\" => \"ID,Address,Message\", \"PermissionGroup\" => \"attr_PartitionID,SiteName,SiteID,ID,Name,Address\", \"SiteKeyword\" => \"ID,Name,PartitionID\", \"Area\" => \"ID,Name,Site\", \"Partition\" => \"ID,Name,ParentId,PartitionId,ShortName\", \"User\" => \"ID,Name,SiteID,SiteName,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"FullUser\" => \"ID,Name,Site,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"UserPermission\" => \"ID,What,ManagedByActiveDirectory,User,Deny,Expired\", \"CardFormat\" => \"ID,Name,SiteID,SiteName,Notes,Address,Site\", \"CardTemplate\" => \"ID,Name,SiteID,SiteName,Notes,Address,SiteCodeNumber,Site,Format\", \"Card\" => \"ID,Name,CardNumberNumeric,CardNumber,CardData,CardSerialNumber,IssueNumber,State,ExpiryDateTime,StartDateTime,LastUsed,CloudCredentialId,CloudCredentialType,CloudCredentialPoolId,CloudCredentialInvitationId,CloudCredentialInvitationCode,CloudCredentialCommunicationHandler,ManagedByActiveDirectory,Site,User,CardType\", \"Door\" => \"ID,Name,Site\", \"Review\" => \"ID,Text,UTCTimeGenerated,Type,Transition\"} of String => String"},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%9N\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_entry(type:String,fields:UpdateFields,return_object:Bool=false)-instance-method","name":"add_entry","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, fields : UpdateFields, return_object : Bool = false)","args_html":"(type : String, fields : UpdateFields, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":482,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L482"},"def":{"name":"add_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"add(type, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"add_or_update(payload:String,return_object:Bool=false)-instance-method","name":"add_or_update","doc":"This is the only way to add or update a database entry...","summary":"

This is the only way to add or update a database entry...

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(payload : String, return_object : Bool = false)","args_html":"(payload : String, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L447"},"def":{"name":"add_or_update","args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"if return_object\n check(post(\"/v2/User/AddOrUpdate?IncludeObjectInResult=true\", body: payload))\nelse\n check(post(\"/v2/User/AddOrUpdate\", body: payload))\nend"}},{"html_id":"add_to_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"add_to_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L387"},"def":{"name":"add_to_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/addToCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"api_version:String-instance-method","name":"api_version","doc":"http://20.213.104.2:80/restapi/ApiVersion/v2","summary":"

http://20.213.104.2:80/restapi/ApiVersion/v2

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L359"},"def":{"name":"api_version","return_type":"String","visibility":"Public","body":"document = check(get(\"/ApiVersion\"))\nuri = URI.parse(document.first_element_child.try(&.content).as(String))\nPath[uri.path].basename\n"}},{"html_id":"area(id:Int64|String)-instance-method","name":"area","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":579,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L579"},"def":{"name":"area","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Area/#{id}?#{prop_param(\"Area\")}\"))\nextract_area(document)\n"}},{"html_id":"areas(site_id:Int32|Nil=nil)-instance-method","name":"areas","doc":"roughly zones in a building","summary":"

roughly zones in a building

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":568,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L568"},"def":{"name":"areas","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"areas = [] of Area\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Area\", filter) do |row|\n areas << (extract_area(row))\nend\nareas\n"}},{"html_id":"assign_card_to_user(user_id:String,card_template:String,card_number:String,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true)-instance-method","name":"assign_card_to_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","args_html":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","location":{"filename":"src/inner_range/integriti.cr","line_number":1130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1130"},"def":{"name":"assign_card_to_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nif candidate = cards(template: card_template, number: card_number).first?\n set_card_user(candidate.id, user_id)\nelse\n card_id = create_card(card_number: card_number, user_id: user_id, partition_id: partition_id, site_id: site_id, card_template: card_template, externally_managed: externally_managed)\n candidate = cards(template: card_template, number: card_number).first\nend\ncandidate\n"}},{"html_id":"build_filter(filter:Filter):String-instance-method","name":"build_filter","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"args_string":"(filter : Filter) : String","args_html":"(filter : Filter) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L247"},"def":{"name":"build_filter","args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"return_type":"String","visibility":"Public","body":"XML.build(indent: \" \") do |xml|\n xml.element(\"FilterExpression\", {\"xmlns:xsd\" => \"http://www.w3.org/2001/XMLSchema\", \"xmlns:xsi\" => \"http://www.w3.org/2001/XMLSchema-instance\", \"xsi:type\" => \"AggregateExpression\"}) do\n xml.element(\"OperatorType\") do\n xml.text(\"And\")\n end\n xml.element(\"SubExpressions\") do\n filter.each do |key, value|\n if value.nil?\n next\n end\n xml.element(\"FilterExpression\", {\"xsi:type\" => \"PropertyExpression\"}) do\n xml.element(\"PropertyName\") do\n xml.text(key)\n end\n xml.element(\"OperatorType\") do\n xml.text(\"Equals\")\n end\n xml.element(\"Args\") do\n compare_type = case value\n in String\n \"xsd:string\"\n in Bool\n \"xsd:boolean\"\n in Int32\n \"xsd:int\"\n in Int64\n \"xsd:long\"\n in Float32\n \"xsd:float\"\n in Float64\n \"xsd:double\"\n in Nil\n raise(\"nil values not supported\")\n end\n xml.element(\"anyType\", {\"xsi:type\" => compare_type}) do\n xml.text(value.to_s)\n end\n end\n end\n end\n end\n end\nend"}},{"html_id":"card(id:String)-instance-method","name":"card","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L872"},"def":{"name":"card","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Card/#{id}?#{prop_param(\"Card\")}\"))\nextract_card(document)\n"}},{"html_id":"card_templates(site_id:Int32|Nil=nil)-instance-method","name":"card_templates","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L926"},"def":{"name":"card_templates","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"templates = [] of CardTemplate\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"CardTemplate\", filter) do |row|\n templates << (extract_card_template(row))\nend\ntemplates\n"}},{"html_id":"cards(site_id:Int32|Nil=nil,user_id:String|Nil=nil,template:String|Nil=nil,number:String|Nil=nil)-instance-method","name":"cards","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":853,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L853"},"def":{"name":"cards","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"cards = [] of Card\nfilter = Filter {\"CardNumber\" => number, \"Site.ID\" => site_id, \"User.Address\" => user_id, \"CardType.Address\" => template}\npaginate_request(\"User\", \"Card\", filter) do |row|\n cards << (extract_card(row))\nend\ncards\n"}},{"html_id":"cf_email:String-instance-method","name":"cf_email","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L77"},"def":{"name":"cf_email","return_type":"String","visibility":"Public","body":"@cf_email"}},{"html_id":"cf_origo:String-instance-method","name":"cf_origo","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L79"},"def":{"name":"cf_origo","return_type":"String","visibility":"Public","body":"@cf_origo"}},{"html_id":"cf_phone:String-instance-method","name":"cf_phone","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L78"},"def":{"name":"cf_phone","return_type":"String","visibility":"Public","body":"@cf_phone"}},{"html_id":"cf_virtual_card:String-instance-method","name":"cf_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L18"},"def":{"name":"cf_virtual_card","return_type":"String","visibility":"Public","body":"@cf_virtual_card"}},{"html_id":"create_card(card_number:String|Int64,user_id:String|Nil=nil,partition_id:String|Int32|Nil=nil,site_id:String|Int64|Nil=nil,card_template:String|Nil=nil,externally_managed:Bool|Nil=nil):String-instance-method","name":"create_card","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","args_html":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":878,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L878"},"def":{"name":"create_card","args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"String","visibility":"Public","body":"if user_id\n user_ref = Ref.new(\"User\", user_id, partition_id)\nend\nif site_id\n site_ref = Ref.new(\"SiteKeyword\", site_id.to_s)\nend\nif card_template\n card_type = Ref.new(\"CardTemplate\", card_template, partition_id)\nend\ncard = extract_add_or_update_result(add_entry(\"Card\", UpdateFields {\"CardNumber\" => card_number, \"Site\" => site_ref, \"User\" => user_ref, \"CardType\" => card_type, \"ManagedByActiveDirectory\" => externally_managed}.compact!))\ncard.id.as(String)\n"}},{"html_id":"create_user(name:String,email:String,phone:String|Nil=nil,site_id:String|Int64|Nil=nil):String-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"args_string":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","args_html":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L677"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"return_type":"String","visibility":"Public","body":"first_name, second_name = name.split(' ', 2)\nuser = extract_add_or_update_result(add_entry(\"User\", UpdateFields {\"FirstName\" => first_name, \"SecondName\" => second_name, \"Site\" => Ref.new(\"SiteKeyword\", (site_id || default_site_id).to_s), cf_email => email.strip.downcase, cf_phone => phone}.compact!))\nuser.address.as(String)\n"}},{"html_id":"default_partition_id:Int32-instance-method","name":"default_partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L76"},"def":{"name":"default_partition_id","return_type":"Int32","visibility":"Public","body":"@default_partition_id"}},{"html_id":"default_site_id:Int32-instance-method","name":"default_site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L75"},"def":{"name":"default_site_id","return_type":"Int32","visibility":"Public","body":"@default_site_id"}},{"html_id":"default_unlock_time:Int32-instance-method","name":"default_unlock_time","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L74"},"def":{"name":"default_unlock_time","return_type":"Int32","visibility":"Public","body":"@default_unlock_time"}},{"html_id":"delete_permission(user_id:String,permission_id:String)-instance-method","name":"delete_permission","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(user_id : String, permission_id : String)","args_html":"(user_id : String, permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":791,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L791"},"def":{"name":"delete_permission","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\", {\"ID\" => permission_id}) do\n xml.element(\"ID\") do\n xml.text(permission_id)\n end\n end\nend\nextract_remove_result(modify_collection(\"User\", user_id, \"Permissions\", payload, add: false))\n"}},{"html_id":"door(id:Int64|String)-instance-method","name":"door","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L964"},"def":{"name":"door","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Door/#{id}?#{prop_param(\"Door\")}\"))\nextract_integriti_door(document)\n"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1056,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1056"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"(doors(default_site_id)).map do |door|\n Door.new(door.id.to_s, door.name)\nend"}},{"html_id":"doors(site_id:Int32|Nil=nil)-instance-method","name":"doors","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L953"},"def":{"name":"doors","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"doors = [] of IntegritiDoor\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Door\", filter) do |row|\n doors << (extract_integriti_door(row))\nend\ndoors\n"}},{"html_id":"grant_access(name:String,email:String,group_id:String,starting:Int64|Nil=nil,ending:Int64|Nil=nil,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true):AccessDetails-instance-method","name":"grant_access","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","args_html":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1093,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1093"},"def":{"name":"grant_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"return_type":"AccessDetails","visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: site_id)\nresult = modify_user_permissions(user_id: user_id, group_id: group_id, partition_id: partition_id, add: true, externally_managed: externally_managed, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], \"\")\n"}},{"html_id":"grant_guest_access(name:String,email:String,starting:Int64,ending:Int64):AccessDetails-instance-method","name":"grant_guest_access","doc":"a function for granting guests access to a building\nshould return a payload that can be encoded into a QR code\nthe response is expected to be hexstring","summary":"

a function for granting guests access to a building should return a payload that can be encoded into a QR code the response is expected to be hexstring

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","args_html":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1160"},"def":{"name":"grant_guest_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"return_type":"AccessDetails","visibility":"Public","body":"if guest_access_configured?\nelse\n raise(\"guest access is not configured\")\nend\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: @default_site_id)\ncard = cards(user_id: user_id).find do |card|\n card.template.try(&.address) == @guest_card_template\nend\nif card\nelse\n card = create_guest_card(user_id)\nend\nresult = modify_user_permissions(user_id: user_id, group_id: @guest_access_group, partition_id: @default_partition_id, add: true, externally_managed: true, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], card.card_data_hex)\n"}},{"html_id":"guest_access_configured?:Bool-instance-method","name":"guest_access_configured?","doc":"return true if we can grant guest access","summary":"

return true if we can grant guest access

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1196"},"def":{"name":"guest_access_configured?","return_type":"Bool","visibility":"Public","body":"!@guest_access_group.presence.nil? && !@guest_card_template.presence.nil?"}},{"html_id":"guest_access_group:String-instance-method","name":"guest_access_group","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L81"},"def":{"name":"guest_access_group","return_type":"String","visibility":"Public","body":"@guest_access_group"}},{"html_id":"guest_card_template:String-instance-method","name":"guest_card_template","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L80"},"def":{"name":"guest_card_template","return_type":"String","visibility":"Public","body":"@guest_card_template"}},{"html_id":"has_virtual_card?:Bool-instance-method","name":"has_virtual_card?","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L42"},"def":{"name":"has_virtual_card?","return_type":"Bool","visibility":"Public","body":"email = get_user_email\nintegriti.users(email: email).get[0][\"origo\"].as_bool? || false\n"}},{"html_id":"long_poll_seconds:Int32-instance-method","name":"long_poll_seconds","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L73"},"def":{"name":"long_poll_seconds","return_type":"Int32","visibility":"Public","body":"@long_poll_seconds"}},{"html_id":"managed_users_in_group(group_address:String):Hash(String,String)-instance-method","name":"managed_users_in_group","abstract":false,"args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"args_string":"(group_address : String) : Hash(String, String)","args_html":"(group_address : String) : Hash(String, String)","location":{"filename":"src/inner_range/integriti.cr","line_number":718,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L718"},"def":{"name":"managed_users_in_group","args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"user_ids = user_permissions(group_id: group_address, externally_managed: true).map do |permission|\n permission.user.address.as(String)\nend\nemail_user_id = Hash(String, String).new(\"\", user_ids.size)\nuser_ids.each do |user_id|\n document = check(get(\"/v2/User/User/#{user_id}\"))\n if email = extract_user(document).@email\n email_user_id[email.downcase] = user_id\n end\nend\nlogger.debug do\n \"found #{email_user_id.size} user to email mappings\"\nend\nemail_user_id\n"}},{"html_id":"modify_user_permissions(user_id:String,group_id:String,partition_id:String|Int32|Nil=nil,add:Bool=true,externally_managed:Bool=true,expires_at:Int64|Nil=nil,valid_from:Int64|Nil=nil)-instance-method","name":"modify_user_permissions","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","args_html":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":739,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L739"},"def":{"name":"modify_user_permissions","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\") do\n xml.element(\"What\") do\n (Ref.new(\"PermissionGroup\", group_id, partition_id)).to_xml(xml)\n end\n if add\n xml.element(\"GrantAccess\") do\n xml.text(\"True\")\n end\n if externally_managed\n xml.element(\"ManagedByActiveDirectory\") do\n xml.text(\"True\")\n end\n end\n if expires_at\n expiry = ((Time.unix(expires_at)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"ExpiryDateTime\") do\n xml.text(expiry)\n end\n end\n if valid_from\n starting = ((Time.unix(valid_from)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"StartDateTime\") do\n xml.text(starting)\n end\n end\n end\n end\nend\nresponse = modify_collection(\"User\", user_id, \"Permissions\", payload, add: add)\nadd ? extract_add_result(response) : extract_remove_result(response)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"@cf_virtual_card = (setting?(String, :custom_field_hid_origo)) || \"cf_HasVirtualCard\""}},{"html_id":"partition(id:Int64|String)-instance-method","name":"partition","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":608,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L608"},"def":{"name":"partition","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Partition/#{id}?#{prop_param(\"Partition\")}\"))\nextract_partition(document)\n"}},{"html_id":"partitions(parent_id:Int32|Nil=nil)-instance-method","name":"partitions","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"args_string":"(parent_id : Int32 | Nil = nil)","args_html":"(parent_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L597"},"def":{"name":"partitions","args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"partitions = [] of Partition\nfilter = Filter {\"ParentId\" => parent_id}\npaginate_request(\"User\", \"Partition\", filter) do |row|\n partitions << (extract_partition(row))\nend\npartitions\n"}},{"html_id":"permission_group(id:Int64|String)-instance-method","name":"permission_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L527"},"def":{"name":"permission_group","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/PermissionGroup/#{id}\"))\nextract_site(document)\n"}},{"html_id":"permission_groups(site_id:Int32|Nil=nil):Array(PermissionGroup)-instance-method","name":"permission_groups","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","args_html":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","location":{"filename":"src/inner_range/integriti.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L516"},"def":{"name":"permission_groups","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"return_type":"Array(PermissionGroup)","visibility":"Public","body":"pgroups = [] of PermissionGroup\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"PermissionGroup\", filter, summary_only: true) do |row|\n pgroups << (extract_permission_group(row))\nend\npgroups\n"}},{"html_id":"remove_from_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"remove_from_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":392,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L392"},"def":{"name":"remove_from_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/removeFromCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"remove_virtual_card:Nil-instance-method","name":"remove_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L37"},"def":{"name":"remove_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => false})\n"}},{"html_id":"request_virtual_card:Nil-instance-method","name":"request_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L32"},"def":{"name":"request_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => true})\n"}},{"html_id":"review_access(filter:Filter,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_access","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":1018,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1018"},"def":{"name":"review_access","args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"Review\", filter, page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"review_predefined_access(query_id:String|Int64,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_predefined_access","abstract":false,"args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":984,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L984"},"def":{"name":"review_predefined_access","args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"PredefinedFilter/#{query_id}\", page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"revoke_guest_access(details:JSON::Any)-instance-method","name":"revoke_guest_access","doc":"delete the permission from user","summary":"

delete the permission from user

","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/inner_range/integriti.cr","line_number":1191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1191"},"def":{"name":"revoke_guest_access","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"details = Guest.from_json(details.to_json)\ndelete_permission(details.user_id, details.permission_id)\n"}},{"html_id":"set_card_user(card_id:String,user_id:String|Nil,partition_id:String|Int32|Nil=nil)-instance-method","name":"set_card_user","doc":"sets or unsets the user associated with this card","summary":"

sets or unsets the user associated with this card

","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"args_string":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","args_html":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":914,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L914"},"def":{"name":"set_card_user","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"visibility":"Public","body":"if user_id\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => Ref.new(\"User\", user_id, partition_id)}, attribute: \"ID\")\nelse\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => nil}, attribute: \"ID\")\nend"}},{"html_id":"set_user_primary_permission_group(user_id:String,permission_group_id:String|Nil)-instance-method","name":"set_user_primary_permission_group","doc":"sets or unsets the Permission Group","summary":"

sets or unsets the Permission Group

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, permission_group_id : String | Nil)","args_html":"(user_id : String, permission_group_id : String | Nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L778"},"def":{"name":"set_user_primary_permission_group","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if permission_group_id\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => Ref.new(\"PermissionGroup\", permission_group_id)})\nelse\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => nil})\nend"}},{"html_id":"site(id:Int64|String)-instance-method","name":"site","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":552,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L552"},"def":{"name":"site","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/SiteKeyword/#{id}?#{prop_param(\"SiteKeyword\")}\"))\nextract_site(document)\n"}},{"html_id":"sites:Array(Site)-instance-method","name":"sites","doc":"roughly analogous to buildings","summary":"

roughly analogous to buildings

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L544"},"def":{"name":"sites","return_type":"Array(Site)","visibility":"Public","body":"sites = [] of Site\npaginate_request(\"User\", \"SiteKeyword\") do |row|\n sites << (extract_site(row))\nend\nsites\n"}},{"html_id":"system_info-instance-method","name":"system_info","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L375"},"def":{"name":"system_info","visibility":"Public","body":"document = check(get(\"/v2/SystemInfo\"))\nextract_system_info(document)\n"}},{"html_id":"template(address:String)-instance-method","name":"template","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":937,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L937"},"def":{"name":"template","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/CardTemplate/#{address}?#{prop_param(\"CardTemplate\")}\"))\nextract_card_template(document)\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/inner_range/integriti.cr","line_number":1063,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1063"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"payload = XML.build(indent: \" \") do |xml|\n xml.element(\"GrantAccessActionOptions\") do\n xml.element(\"UnlockSeconds\") do\n xml.text(default_unlock_time.to_s)\n end\n xml.element(\"ForceEvenIfOverridden\") do\n xml.text(\"false\")\n end\n end\nend\nresponse = post(\"/v2/BasicStatus/GrantAccess/#{door_id}\", body: payload)\nresponse.success?\n"}},{"html_id":"update_entry(type:String,id:String,fields:UpdateFields,attribute:String=\"Address\",return_object:Bool=false)-instance-method","name":"update_entry","doc":"use this to update fields in various models, like:\nupdate_entry(type: \"User\", id: \"U5\", fields: {cf_HasMobileCredential: true})","summary":"

use this to update fields in various models, like: update_entry(type: "User", id: "U5", fields: {cf_HasMobileCredential: true})

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, id : String, fields : UpdateFields, attribute : String = \"Address\", return_object : Bool = false)","args_html":"(type : String, id : String, fields : UpdateFields, attribute : String = "Address", return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":499,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L499"},"def":{"name":"update_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"update(type, id, attribute, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"user(id:Int64|String)-instance-method","name":"user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L667"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/User/#{id}?FullObject=true\"))\nextract_full_user(document)\n"}},{"html_id":"user_id_lookup(email:String):Array(String)-instance-method","name":"user_id_lookup","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : Array(String)","args_html":"(email : String) : Array(String)","location":{"filename":"src/inner_range/integriti.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L672"},"def":{"name":"user_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"users(email: email).map() do |__arg4|\n __arg4.address.as(String)\nend"}},{"html_id":"user_permissions(user_id:String|Nil=nil,group_id:String|Nil=nil,externally_managed:Bool|Nil=nil):Array(UserPermission)-instance-method","name":"user_permissions","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","args_html":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","location":{"filename":"src/inner_range/integriti.cr","line_number":705,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L705"},"def":{"name":"user_permissions","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"Array(UserPermission)","visibility":"Public","body":"user_permissions = [] of UserPermission\nfilter = Filter {\"User.Address\" => user_id, \"What.Address\" => group_id, \"ManagedByActiveDirectory\" => externally_managed}\npaginate_request(\"User\", \"UserPermission\", filter) do |row|\n user_permissions << (extract_user_permission(row))\nend\nuser_permissions\n"}},{"html_id":"users(site_id:Int32|Nil=nil,email:String|Nil=nil)-instance-method","name":"users","doc":"users in a site","summary":"

users in a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L651"},"def":{"name":"users","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"users = [] of User\nfilter = Filter {cf_email => email}\npaginate_request(\"User\", \"User\", filter) do |row|\n users << (extract_user(row))\nend\nif site_id\n users.select() do |__arg3|\n __arg3.site_id == site_id\n end\nend\nusers\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/inner_range/integriti.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L85"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" begin\n \n%resp\n = \n{{ response }}\n\n raise \"request failed with #{\n%resp\n.status_code} (#{\n%resp\n.body})\" unless \n%resp\n.success?\n \n%body\n = \n%resp\n.body\n logger.debug \n{ \"response was:\\n#{\n%body\n}\" }\n begin\n XML.parse \n%body\n\n rescue \nerror\n logger.error \n{ \"error: #{error.message}, failed to parse:\\n#{\n%body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}},{"html_id":"define_xml_type(klass,keys,lookup=nil,&block)-macro","name":"define_xml_type","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"args_string":"(klass, keys, lookup = nil, &block)","args_html":"(klass, keys, lookup = nil, &block)","location":{"filename":"src/inner_range/integriti.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L107"},"def":{"name":"define_xml_type","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"block_arg":{"name":"block","external_name":"block","restriction":""},"visibility":"Public","body":" struct \n{{ klass }}\n < IntegritiObject\n \n{% for _node, variable in keys %}\n getter! {{ variable.var }} : {{ variable.type }}\n {% end %}\n\n\n def initialize(\n \n{% for _node, variable in keys %}\n @{{ variable.var }} = nil,\n {% end %}\n\n )\n \nend\n\n \n{% if block %}\n {{ block.body }}\n {% end %}\n\n \nend\n\n \n{% PROPS[lookup || klass.stringify] = keys.keys.join(\",\") %}\n\n\n protected def \nextract_\n{{ klass.id.stringify.underscore.id }}\n(document : XML::Node) : \n{{ klass }}\n\n \n{% for _node, variable in keys %}\n var_{{ variable.var }} = nil\n {% end %}\n\n\n if \n%data\n = document.document? ? document.first_element_child : document\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n if %content = %data[{{ attribute_name }}]?\n\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n {% end %}\n\n\n \n%data\n.children.select(&.element?).each do |child|\n case child.name\n when \"Ref\"\n \n# minimal data provided in attributes\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n {% else %}\n {% attribute_name = node %}\n {% end %}\n\n # ID in ref's are actually the Address in objects\n {% if attribute_name == \"Address\" %}\n {% attribute_name = \"ID\" %}\n {% end %}\n\n if %content = child[{{ attribute_name }}]?\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"cf_\") %}\n # handle custom fields using accessors\n when {{ node.id }}\n {% else %}\n when {{ node.id.stringify }}\n {% end %}\n\n if %content = child.content\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \nend\n \nend\n \nend\n\n \n{{ klass }}\n.new(\n \n{% for node, variable in keys %}\n {{ variable.var }}: var_{{ variable.var }},\n {% end %}\n\n )\n \nend\n \n"}}],"types":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","path":"InnerRange/Integriti/AddOrUpdateResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L437"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|String|Nil=nil,address:Nil|String=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","args_html":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L437"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, address, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64|String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64 | String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/InnerRange/Integriti/AddResult","path":"InnerRange/Integriti/AddResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L401"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L401"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Area","path":"InnerRange/Integriti/Area.html","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L561"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L561"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/Card","path":"InnerRange/Integriti/Card.html","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L826"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,name:Nil|String=nil,card_number_numeric:Int64|Nil=nil,card_number:Nil|String=nil,card_data_hex:Nil|String=nil,card_serial_number:Nil|String=nil,issue_number:Int32|Nil=nil,state:Nil|String=nil,expiry:Nil|String=nil,valid_from:Nil|String=nil,last_used:Nil|String=nil,cloud_credential_id:Nil|String=nil,cloud_credential_type:Nil|String=nil,cloud_credential_pool_id:Nil|String=nil,cloud_credential_invite_id:Nil|String=nil,cloud_credential_invite_code:Nil|String=nil,cloud_credential_comms_handler:Nil|String=nil,active_directory:Bool|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,template:InnerRange::Integriti::CardTemplate|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"args_string":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","args_html":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L826"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, card_number_numeric, card_number, card_data_hex, card_serial_number, issue_number, state, expiry, valid_from, last_used, cloud_credential_id, cloud_credential_type, cloud_credential_pool_id, cloud_credential_invite_id, cloud_credential_invite_code, cloud_credential_comms_handler, active_directory, site, user, template)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"active_directory:Bool-instance-method","name":"active_directory","abstract":false,"def":{"name":"active_directory","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @active_directory).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#active_directory cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"active_directory?:Bool|Nil-instance-method","name":"active_directory?","abstract":false,"def":{"name":"active_directory?","return_type":"Bool | ::Nil","visibility":"Public","body":"@active_directory"}},{"html_id":"card_data_hex:String-instance-method","name":"card_data_hex","abstract":false,"def":{"name":"card_data_hex","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_data_hex).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_data_hex cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_data_hex?:String|Nil-instance-method","name":"card_data_hex?","abstract":false,"def":{"name":"card_data_hex?","return_type":"String | ::Nil","visibility":"Public","body":"@card_data_hex"}},{"html_id":"card_number:String-instance-method","name":"card_number","abstract":false,"def":{"name":"card_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number?:String|Nil-instance-method","name":"card_number?","abstract":false,"def":{"name":"card_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_number"}},{"html_id":"card_number_numeric:Int64-instance-method","name":"card_number_numeric","abstract":false,"def":{"name":"card_number_numeric","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @card_number_numeric).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number_numeric cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number_numeric?:Int64|Nil-instance-method","name":"card_number_numeric?","abstract":false,"def":{"name":"card_number_numeric?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@card_number_numeric"}},{"html_id":"card_serial_number:String-instance-method","name":"card_serial_number","abstract":false,"def":{"name":"card_serial_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_serial_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_serial_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_serial_number?:String|Nil-instance-method","name":"card_serial_number?","abstract":false,"def":{"name":"card_serial_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"cloud_credential_comms_handler:String-instance-method","name":"cloud_credential_comms_handler","abstract":false,"def":{"name":"cloud_credential_comms_handler","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_comms_handler).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_comms_handler cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_comms_handler?:String|Nil-instance-method","name":"cloud_credential_comms_handler?","abstract":false,"def":{"name":"cloud_credential_comms_handler?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_comms_handler"}},{"html_id":"cloud_credential_id:String-instance-method","name":"cloud_credential_id","abstract":false,"def":{"name":"cloud_credential_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_id?:String|Nil-instance-method","name":"cloud_credential_id?","abstract":false,"def":{"name":"cloud_credential_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_id"}},{"html_id":"cloud_credential_invite_code:String-instance-method","name":"cloud_credential_invite_code","abstract":false,"def":{"name":"cloud_credential_invite_code","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_code?:String|Nil-instance-method","name":"cloud_credential_invite_code?","abstract":false,"def":{"name":"cloud_credential_invite_code?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_code"}},{"html_id":"cloud_credential_invite_id:String-instance-method","name":"cloud_credential_invite_id","abstract":false,"def":{"name":"cloud_credential_invite_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_id?:String|Nil-instance-method","name":"cloud_credential_invite_id?","abstract":false,"def":{"name":"cloud_credential_invite_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_id"}},{"html_id":"cloud_credential_pool_id:String-instance-method","name":"cloud_credential_pool_id","abstract":false,"def":{"name":"cloud_credential_pool_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_pool_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_pool_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_pool_id?:String|Nil-instance-method","name":"cloud_credential_pool_id?","abstract":false,"def":{"name":"cloud_credential_pool_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_pool_id"}},{"html_id":"cloud_credential_type:String-instance-method","name":"cloud_credential_type","abstract":false,"def":{"name":"cloud_credential_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_type?:String|Nil-instance-method","name":"cloud_credential_type?","abstract":false,"def":{"name":"cloud_credential_type?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_type"}},{"html_id":"expiry:String-instance-method","name":"expiry","abstract":false,"def":{"name":"expiry","return_type":"String","visibility":"Public","body":"if (__temp_1 = @expiry).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#expiry cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expiry?:String|Nil-instance-method","name":"expiry?","abstract":false,"def":{"name":"expiry?","return_type":"String | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"issue_number:Int32-instance-method","name":"issue_number","abstract":false,"def":{"name":"issue_number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @issue_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#issue_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"issue_number?:Int32|Nil-instance-method","name":"issue_number?","abstract":false,"def":{"name":"issue_number?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_number"}},{"html_id":"last_used:String-instance-method","name":"last_used","abstract":false,"def":{"name":"last_used","return_type":"String","visibility":"Public","body":"if (__temp_1 = @last_used).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#last_used cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"last_used?:String|Nil-instance-method","name":"last_used?","abstract":false,"def":{"name":"last_used?","return_type":"String | ::Nil","visibility":"Public","body":"@last_used"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"String","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:String|Nil-instance-method","name":"state?","abstract":false,"def":{"name":"state?","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"template:CardTemplate-instance-method","name":"template","abstract":false,"def":{"name":"template","return_type":"CardTemplate","visibility":"Public","body":"if (__temp_1 = @template).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#template cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"template?:CardTemplate|Nil-instance-method","name":"template?","abstract":false,"def":{"name":"template?","return_type":"CardTemplate | ::Nil","visibility":"Public","body":"@template"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"valid_from:String-instance-method","name":"valid_from","abstract":false,"def":{"name":"valid_from","return_type":"String","visibility":"Public","body":"if (__temp_1 = @valid_from).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#valid_from cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"valid_from?:String|Nil-instance-method","name":"valid_from?","abstract":false,"def":{"name":"valid_from?","return_type":"String | ::Nil","visibility":"Public","body":"@valid_from"}}]},{"html_id":"drivers/InnerRange/Integriti/CardFormat","path":"InnerRange/Integriti/CardFormat.html","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L804"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L804"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","path":"InnerRange/Integriti/CardTemplate.html","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L814"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site_code:Int64|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,format:InnerRange::Integriti::CardFormat|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L814"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site_code, site, format)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"format:CardFormat-instance-method","name":"format","abstract":false,"def":{"name":"format","return_type":"CardFormat","visibility":"Public","body":"if (__temp_1 = @format).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#format cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"format?:CardFormat|Nil-instance-method","name":"format?","abstract":false,"def":{"name":"format?","return_type":"CardFormat | ::Nil","visibility":"Public","body":"@format"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_code:Int64-instance-method","name":"site_code","abstract":false,"def":{"name":"site_code","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @site_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_code?:Int64|Nil-instance-method","name":"site_code?","abstract":false,"def":{"name":"site_code?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@site_code"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Filter","path":"InnerRange/Integriti/Filter.html","kind":"alias","full_name":"InnerRange::Integriti::Filter","name":"Filter","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L245"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/FullUser","path":"InnerRange/Integriti/FullUser.html","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L630"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L641"},"def":{"name":"site_id","visibility":"Public","body":"site.id"}},{"html_id":"site_name-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L645"},"def":{"name":"site_name","visibility":"Public","body":"site.name"}}]},{"html_id":"drivers/InnerRange/Integriti/Guest","path":"InnerRange/Integriti/Guest.html","kind":"class","full_name":"InnerRange::Integriti::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1082"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(user_id:String,permission_id:String,card_hex:String)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"args_string":"(user_id : String, permission_id : String, card_hex : String)","args_html":"(user_id : String, permission_id : String, card_hex : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1086,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1086"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, permission_id, card_hex)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1082"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"permission_id:String-instance-method","name":"permission_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id","return_type":"String","visibility":"Public","body":"@permission_id"}},{"html_id":"permission_id=(permission_id:String)-instance-method","name":"permission_id=","abstract":false,"args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(permission_id : String)","args_html":"(permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id=","args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"@permission_id = permission_id"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","path":"InnerRange/Integriti/IntegritiDoor.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L946"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L946"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","path":"InnerRange/Integriti/IntegritiObject.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult"},{"html_id":"drivers/InnerRange/Integriti/AddResult","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult"},{"html_id":"drivers/InnerRange/Integriti/Area","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area"},{"html_id":"drivers/InnerRange/Integriti/Card","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card"},{"html_id":"drivers/InnerRange/Integriti/CardFormat","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat"},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate"},{"html_id":"drivers/InnerRange/Integriti/FullUser","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser"},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor"},{"html_id":"drivers/InnerRange/Integriti/Partition","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition"},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup"},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult"},{"html_id":"drivers/InnerRange/Integriti/Review","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review"},{"html_id":"drivers/InnerRange/Integriti/Site","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site"},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo"},{"html_id":"drivers/InnerRange/Integriti/User","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User"},{"html_id":"drivers/InnerRange/Integriti/UserPermission","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/InnerRange/Integriti/Partition","path":"InnerRange/Integriti/Partition.html","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L588"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,parent_id:Int32|Nil=nil,partition_id:Int32|Nil=nil,short_name:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L588"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, parent_id, partition_id, short_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"parent_id:Int32-instance-method","name":"parent_id","abstract":false,"def":{"name":"parent_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @parent_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#parent_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"parent_id?:Int32|Nil-instance-method","name":"parent_id?","abstract":false,"def":{"name":"parent_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"short_name:String-instance-method","name":"short_name","abstract":false,"def":{"name":"short_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @short_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#short_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"short_name?:String|Nil-instance-method","name":"short_name?","abstract":false,"def":{"name":"short_name?","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}}]},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","path":"InnerRange/Integriti/PermissionGroup.html","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L507"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(partition_id:Int32|Nil=nil,site_name:Nil|String=nil,site_id:Int32|Nil=nil,id:Int64|Nil=nil,name:Nil|String=nil,address:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"args_string":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","args_html":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L507"},"def":{"name":"new","args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(partition_id, site_name, site_id, id, name, address)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Ref","path":"InnerRange/Integriti/Ref.html","kind":"struct","full_name":"InnerRange::Integriti::Ref","name":"Ref","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L414"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(type:String,id:String,partition_id:Int32|String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"args_string":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","args_html":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":421,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L421"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L415"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L418"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"partition_id:String|Int32|Nil-instance-method","name":"partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L419"},"def":{"name":"partition_id","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"to_xml(xml)-instance-method","name":"to_xml","abstract":false,"args":[{"name":"xml","external_name":"xml","restriction":""}],"args_string":"(xml)","args_html":"(xml)","location":{"filename":"src/inner_range/integriti.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L424"},"def":{"name":"to_xml","args":[{"name":"xml","external_name":"xml","restriction":""}],"visibility":"Public","body":"xml.element(\"Ref\", {\"Type\" => type, \"PartitionID\" => partition_id, \"ID\" => id}.compact!)"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L417"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","path":"InnerRange/Integriti/RemoveResult.html","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L396"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L396"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Review","path":"InnerRange/Integriti/Review.html","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L973"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,text:Nil|String=nil,time_generated:Time|Nil=nil,event_type:Nil|String=nil,transition:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"args_string":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","args_html":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L973"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, text, time_generated, event_type, transition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @event_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#event_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"event_type?:String|Nil-instance-method","name":"event_type?","abstract":false,"def":{"name":"event_type?","return_type":"String | ::Nil","visibility":"Public","body":"@event_type"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"def":{"name":"text","return_type":"String","visibility":"Public","body":"if (__temp_1 = @text).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#text cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"text?:String|Nil-instance-method","name":"text?","abstract":false,"def":{"name":"text?","return_type":"String | ::Nil","visibility":"Public","body":"@text"}},{"html_id":"time_gen_ms:String-instance-method","name":"time_gen_ms","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":980,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L980"},"def":{"name":"time_gen_ms","return_type":"String","visibility":"Public","body":"if (__temp_1 = @time_gen_ms).nil?\n @time_gen_ms = (time_generated.to_s(TIME_FORMAT))\nelse\n __temp_1\nend"}},{"html_id":"time_generated:Time-instance-method","name":"time_generated","abstract":false,"def":{"name":"time_generated","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_generated).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#time_generated cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_generated?:Time|Nil-instance-method","name":"time_generated?","abstract":false,"def":{"name":"time_generated?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_generated"}},{"html_id":"transition:String-instance-method","name":"transition","abstract":false,"def":{"name":"transition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @transition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#transition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"transition?:String|Nil-instance-method","name":"transition?","abstract":false,"def":{"name":"transition?","return_type":"String | ::Nil","visibility":"Public","body":"@transition"}}]},{"html_id":"drivers/InnerRange/Integriti/Site","path":"InnerRange/Integriti/Site.html","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L537"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,partition_id:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L537"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}}]},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","path":"InnerRange/Integriti/SystemInfo.html","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L369"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(edition:Nil|String=nil,version:Nil|String=nil,protocol:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"args_string":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","args_html":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L369"},"def":{"name":"new","args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(edition, version, protocol)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"edition:String-instance-method","name":"edition","abstract":false,"def":{"name":"edition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @edition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#edition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"edition?:String|Nil-instance-method","name":"edition?","abstract":false,"def":{"name":"edition?","return_type":"String | ::Nil","visibility":"Public","body":"@edition"}},{"html_id":"protocol:Int32-instance-method","name":"protocol","abstract":false,"def":{"name":"protocol","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @protocol).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#protocol cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"protocol?:Int32|Nil-instance-method","name":"protocol?","abstract":false,"def":{"name":"protocol?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@protocol"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"String","visibility":"Public","body":"if (__temp_1 = @version).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#version cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"version?:String|Nil-instance-method","name":"version?","abstract":false,"def":{"name":"version?","return_type":"String | ::Nil","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/InnerRange/Integriti/UpdateFields","path":"InnerRange/Integriti/UpdateFields.html","kind":"alias","full_name":"InnerRange::Integriti::UpdateFields","name":"UpdateFields","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L443"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/User","path":"InnerRange/Integriti/User.html","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L617"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L617"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/UserPermission","path":"InnerRange/Integriti/UserPermission.html","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L693"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,group:InnerRange::Integriti::PermissionGroup|Nil=nil,externally_managed:Bool|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,deny:Bool|Nil=nil,expired:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"args_string":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","args_html":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L693"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, group, externally_managed, user, deny, expired)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"deny:Bool-instance-method","name":"deny","abstract":false,"def":{"name":"deny","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @deny).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#deny cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"deny?:Bool|Nil-instance-method","name":"deny?","abstract":false,"def":{"name":"deny?","return_type":"Bool | ::Nil","visibility":"Public","body":"@deny"}},{"html_id":"expired:Bool-instance-method","name":"expired","abstract":false,"def":{"name":"expired","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @expired).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#expired cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expired?:Bool|Nil-instance-method","name":"expired?","abstract":false,"def":{"name":"expired?","return_type":"Bool | ::Nil","visibility":"Public","body":"@expired"}},{"html_id":"externally_managed:Bool-instance-method","name":"externally_managed","abstract":false,"def":{"name":"externally_managed","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @externally_managed).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#externally_managed cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"externally_managed?:Bool|Nil-instance-method","name":"externally_managed?","abstract":false,"def":{"name":"externally_managed?","return_type":"Bool | ::Nil","visibility":"Public","body":"@externally_managed"}},{"html_id":"group:PermissionGroup-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"group?:PermissionGroup|Nil-instance-method","name":"group?","abstract":false,"def":{"name":"group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/InnerRange/IntegritiUserSync","path":"InnerRange/IntegritiUserSync.html","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"graph_group_id:String-instance-method","name":"graph_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L50"},"def":{"name":"graph_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @graph_group_id).nil?\n @graph_group_id = (if user_group_id.includes?('@')\n (directory.get_group(user_group_id)).get[\"id\"].as_s\n else\n user_group_id\n end)\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group:String-instance-method","name":"integriti_security_group","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group","return_type":"String","visibility":"Public","body":"if (__temp_1 = @integriti_security_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#integriti_security_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group?:String|Nil-instance-method","name":"integriti_security_group?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group?","return_type":"String | ::Nil","visibility":"Public","body":"@integriti_security_group"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@time_zone_string = ((setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence) || \"GMT\"\n@time_zone = Time::Location.load(@time_zone_string)\n@sync_cron = (setting?(String, :sync_cron)).presence || \"0 21 * * *\"\n@user_group_id = setting(String, :user_group_id)\n@integriti_security_group = setting(String, :integriti_security_group)\n@graph_group_id = nil\nschedule.clear\nschedule.cron(@sync_cron, @time_zone) do\n sync_users\nend\nif (setting?(String, :push_notification_url)).presence\n push_notificaitons_configure\nend\n"}},{"html_id":"perform_user_sync-instance-method","name":"perform_user_sync","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L70"},"def":{"name":"perform_user_sync","visibility":"Public","body":"if @syncing\n return \"already syncing\"\nend\n@sync_mutex.synchronize do\n begin\n @syncing = true\n @sync_requests = 0\n sync_users\n ensure\n @syncing = false\n end\nend\nif @sync_requests > 0\n spawn do\n perform_user_sync\n end\nend\n"}},{"html_id":"sync_cron:String-instance-method","name":"sync_cron","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L59"},"def":{"name":"sync_cron","return_type":"String","visibility":"Public","body":"@sync_cron"}},{"html_id":"time_zone_string:String-instance-method","name":"time_zone_string","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L58"},"def":{"name":"time_zone_string","return_type":"String","visibility":"Public","body":"@time_zone_string"}},{"html_id":"user_group_id:String-instance-method","name":"user_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_group_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#user_group_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_group_id?:String|Nil-instance-method","name":"user_group_id?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id?","return_type":"String | ::Nil","visibility":"Public","body":"@user_group_id"}}],"types":[{"html_id":"drivers/InnerRange/IntegritiUserSync/DirUser","path":"InnerRange/IntegritiUserSync/DirUser.html","kind":"alias","full_name":"InnerRange::IntegritiUserSync::DirUser","name":"DirUser","abstract":false,"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Member","aliased_html":"PlaceCalendar::Member","const":false,"namespace":{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}}]}]},{"html_id":"drivers/JohnsonControls","path":"JohnsonControls.html","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls","abstract":false,"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"Time::Format.new(\"%FT%TZ\")"}],"types":[{"html_id":"drivers/JohnsonControls/Attribute","path":"JohnsonControls/Attribute.html","kind":"class","full_name":"JohnsonControls::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"smaples_url:String-instance-method","name":"smaples_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url","return_type":"String","visibility":"Public","body":"@smaples_url"}},{"html_id":"smaples_url=(smaples_url:String)-instance-method","name":"smaples_url=","abstract":false,"args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"args_string":"(smaples_url : String)","args_html":"(smaples_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url=","args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"visibility":"Public","body":"@smaples_url = smaples_url"}}]},{"html_id":"drivers/JohnsonControls/AuthResponse","path":"JohnsonControls/AuthResponse.html","kind":"class","full_name":"JohnsonControls::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires:Time-instance-method","name":"expires","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires","return_type":"Time","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"args_string":"(expires : Time)","args_html":"(expires : Time)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"visibility":"Public","body":"@expires = expires"}}]},{"html_id":"drivers/JohnsonControls/Command","path":"JohnsonControls/Command.html","kind":"class","full_name":"JohnsonControls::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L190"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command_id:String-instance-method","name":"command_id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id","return_type":"String","visibility":"Public","body":"@command_id"}},{"html_id":"command_id=(command_id:String)-instance-method","name":"command_id=","abstract":false,"args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"args_string":"(command_id : String)","args_html":"(command_id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id=","args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"visibility":"Public","body":"@command_id = command_id"}},{"html_id":"items:Array(JSON::Any)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items","return_type":"Array(JSON::Any)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(JSON::Any))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"args_string":"(items : Array(JSON::Any))","args_html":"(items : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"maximum_items:Int32-instance-method","name":"maximum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items","return_type":"Int32","visibility":"Public","body":"@maximum_items"}},{"html_id":"maximum_items=(maximum_items:Int32)-instance-method","name":"maximum_items=","abstract":false,"args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"args_string":"(maximum_items : Int32)","args_html":"(maximum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items=","args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"visibility":"Public","body":"@maximum_items = maximum_items"}},{"html_id":"minimum_items:Int32-instance-method","name":"minimum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items","return_type":"Int32","visibility":"Public","body":"@minimum_items"}},{"html_id":"minimum_items=(minimum_items:Int32)-instance-method","name":"minimum_items=","abstract":false,"args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"args_string":"(minimum_items : Int32)","args_html":"(minimum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items=","args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"visibility":"Public","body":"@minimum_items = minimum_items"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/JohnsonControls/Equipment","path":"JohnsonControls/Equipment.html","kind":"class","full_name":"JohnsonControls::Equipment","name":"Equipment","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_url:String-instance-method","name":"equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url","return_type":"String","visibility":"Public","body":"@equipment_url"}},{"html_id":"equipment_url=(equipment_url:String)-instance-method","name":"equipment_url=","abstract":false,"args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"args_string":"(equipment_url : String)","args_html":"(equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url=","args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"visibility":"Public","body":"@equipment_url = equipment_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"spaces_url:String-instance-method","name":"spaces_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url","return_type":"String","visibility":"Public","body":"@spaces_url"}},{"html_id":"spaces_url=(spaces_url:String)-instance-method","name":"spaces_url=","abstract":false,"args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"args_string":"(spaces_url : String)","args_html":"(spaces_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url=","args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"visibility":"Public","body":"@spaces_url = spaces_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"upstream_equipment_url:String-instance-method","name":"upstream_equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url","return_type":"String","visibility":"Public","body":"@upstream_equipment_url"}},{"html_id":"upstream_equipment_url=(upstream_equipment_url:String)-instance-method","name":"upstream_equipment_url=","abstract":false,"args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"args_string":"(upstream_equipment_url : String)","args_html":"(upstream_equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url=","args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"visibility":"Public","body":"@upstream_equipment_url = upstream_equipment_url"}}]},{"html_id":"drivers/JohnsonControls/EquipmentPoints","path":"JohnsonControls/EquipmentPoints.html","kind":"class","full_name":"JohnsonControls::EquipmentPoints","name":"EquipmentPoints","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(Point))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"@points = points"}}]},{"html_id":"drivers/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse","path":"JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html","kind":"class","full_name":"JohnsonControls::GetEquipmentHostedByNetworkDeviceResponse","name":"GetEquipmentHostedByNetworkDeviceResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L171"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Equipment)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items","return_type":"Array(Equipment)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Equipment))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"args_string":"(items : Array(Equipment))","args_html":"(items : Array(Equipment))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetNetworkDeviceChildrenResponse","path":"JohnsonControls/GetNetworkDeviceChildrenResponse.html","kind":"class","full_name":"JohnsonControls::GetNetworkDeviceChildrenResponse","name":"GetNetworkDeviceChildrenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L139"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(NetworkDevice)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items","return_type":"Array(NetworkDevice)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(NetworkDevice))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"args_string":"(items : Array(NetworkDevice))","args_html":"(items : Array(NetworkDevice))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetObjectAttributesWithSamplesResponse","path":"JohnsonControls/GetObjectAttributesWithSamplesResponse.html","kind":"class","full_name":"JohnsonControls::GetObjectAttributesWithSamplesResponse","name":"GetObjectAttributesWithSamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L157"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L158"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Attribute)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items","return_type":"Array(Attribute)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Attribute))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"args_string":"(items : Array(Attribute))","args_html":"(items : Array(Attribute))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSamplesForAnObjectAttributeResponse","path":"JohnsonControls/GetSamplesForAnObjectAttributeResponse.html","kind":"class","full_name":"JohnsonControls::GetSamplesForAnObjectAttributeResponse","name":"GetSamplesForAnObjectAttributeResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L114"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"items:Array(Sample)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items","return_type":"Array(Sample)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Sample))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"args_string":"(items : Array(Sample))","args_html":"(items : Array(Sample))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","path":"JohnsonControls/GetSingleObjectPresentValueResponse.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L232"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"item:Item-instance-method","name":"item","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item","return_type":"Item","visibility":"Public","body":"@item"}},{"html_id":"item=(item:Item)-instance-method","name":"item=","abstract":false,"args":[{"name":"item","external_name":"item","restriction":"Item"}],"args_string":"(item : Item)","args_html":"(item : Item)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item=","args":[{"name":"item","external_name":"item","restriction":"Item"}],"visibility":"Public","body":"@item = item"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L235"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"presentValue:Value-instance-method","name":"presentValue","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue","return_type":"Value","visibility":"Public","body":"@presentValue"}},{"html_id":"presentValue=(presentValue:Value)-instance-method","name":"presentValue=","abstract":false,"args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"args_string":"(presentValue : Value)","args_html":"(presentValue : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue=","args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"visibility":"Public","body":"@presentValue = presentValue"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L237"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L238"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"reliability:String|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability","return_type":"String | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:String|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"args_string":"(reliability : String | Nil)","args_html":"(reliability : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"value:String|Nil-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value","return_type":"String | ::Nil","visibility":"Public","body":"@value"}},{"html_id":"value=(value:String|Nil)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(value : String | Nil)","args_html":"(value : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"visibility":"Public","body":"@value = value"}}]}]}]},{"html_id":"drivers/JohnsonControls/Item","path":"JohnsonControls/Item.html","kind":"class","full_name":"JohnsonControls::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L264"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L265"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"value:Value-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value","return_type":"Value","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Value)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Value"}],"args_string":"(value : Value)","args_html":"(value : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Value"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/Metasys","path":"JohnsonControls/Metasys.html","kind":"class","full_name":"JohnsonControls::Metasys","name":"Metasys","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CONTENT_TYPE","name":"CONTENT_TYPE","value":"\"application/json\""}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L268"},"def":{"name":"count","visibility":"Public","body":"@count"}},{"html_id":"get_attribute_value(id:String):Float64-instance-method","name":"get_attribute_value","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Float64","args_html":"(id : String) : Float64","location":{"filename":"src/johnson_controls/metasys.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L94"},"def":{"name":"get_attribute_value","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Float64","visibility":"Public","body":"current_time = Time.utc\nshort_while_ago = Time.utc - (@poll_interval_seconds * 2).seconds\nresponse = get_request(\"/objects/#{id}/attributes/85/samples\", start_time: short_while_ago.to_rfc3339, end_time: current_time.to_rfc3339, page_size: 1, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n(SamplesResponse.from_json(response.body)).items.first.value.actual\n"}},{"html_id":"get_commands_for_an_object(id:String):Array(Command)-instance-method","name":"get_commands_for_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Array(Command)","args_html":"(id : String) : Array(Command)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L168"},"def":{"name":"get_commands_for_an_object","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Array(Command)","visibility":"Public","body":"response = get_request(\"/objects/#{id}/commands\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nArray(Command).from_json(response.body)\n"}},{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L232"},"def":{"name":"get_data","visibility":"Public","body":"{data: self[:data], averages: self[:averages]}"}},{"html_id":"get_equipment_hosted_by_network_device(id:String,page:Int32=1,page_size:Int32=10):GetEquipmentHostedByNetworkDeviceResponse-instance-method","name":"get_equipment_hosted_by_network_device","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L129"},"def":{"name":"get_equipment_hosted_by_network_device","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetEquipmentHostedByNetworkDeviceResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/equipment\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetEquipmentHostedByNetworkDeviceResponse.from_json(response.body)\n"}},{"html_id":"get_equipment_points(id:String):EquipmentPoints-instance-method","name":"get_equipment_points","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : EquipmentPoints","args_html":"(id : String) : EquipmentPoints","location":{"filename":"src/johnson_controls/metasys.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L87"},"def":{"name":"get_equipment_points","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"EquipmentPoints","visibility":"Public","body":"response = get_request(\"/equipment/#{id}/points\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nEquipmentPoints.from_json(response.body)\n"}},{"html_id":"get_network_device_children(id:String,page:Int32=1,page_size:Int32=10):GetNetworkDeviceChildrenResponse-instance-method","name":"get_network_device_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L118"},"def":{"name":"get_network_device_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetNetworkDeviceChildrenResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/objects\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetNetworkDeviceChildrenResponse.from_json(response.body)\n"}},{"html_id":"get_object_attributes_with_samples(id:String):GetObjectAttributesWithSamplesResponse-instance-method","name":"get_object_attributes_with_samples","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetObjectAttributesWithSamplesResponse","args_html":"(id : String) : GetObjectAttributesWithSamplesResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L140"},"def":{"name":"get_object_attributes_with_samples","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetObjectAttributesWithSamplesResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/trendedAttributes\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetObjectAttributesWithSamplesResponse.from_json(response.body)\n"}},{"html_id":"get_request_debug(path:String,**params)-instance-method","name":"get_request_debug","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, **params)","args_html":"(path : String, **params)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L252"},"def":{"name":"get_request_debug","args":[{"name":"path","external_name":"path","restriction":"String"}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":"response = get_request(path, **params)\nparsed_json_body = begin\n JSON.parse(response.body)\nrescue ex : JSON::ParseException\n ex.to_s\nend\n{body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\n"}},{"html_id":"get_samples_for_an_object_attribute(id:String,attribute_id:String,start_time:String,end_time:String,page:Int32=1,page_size:Int32=10):GetSamplesForAnObjectAttributeResponse-instance-method","name":"get_samples_for_an_object_attribute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","args_html":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L154"},"def":{"name":"get_samples_for_an_object_attribute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetSamplesForAnObjectAttributeResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/#{attribute_id}/samples\", start_time: start_time, end_time: end_time, page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSamplesForAnObjectAttributeResponse.from_json(response.body)\n"}},{"html_id":"get_single_object_presentValue(id:String):GetSingleObjectPresentValueResponse-instance-method","name":"get_single_object_presentValue","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetSingleObjectPresentValueResponse","args_html":"(id : String) : GetSingleObjectPresentValueResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L147"},"def":{"name":"get_single_object_presentValue","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetSingleObjectPresentValueResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/presentValue\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSingleObjectPresentValueResponse.from_json(response.body)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L36"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"received login response #{response.body}\"\nend\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_token_debug-instance-method","name":"get_token_debug","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L59"},"def":{"name":"get_token_debug","visibility":"Public","body":"response = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n parsed_json_body = begin\n JSON.parse(response.body)\n rescue ex : JSON::ParseException\n ex.to_s\n end\n {body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\nend\n"}},{"html_id":"lookup_object_id(fqr:String):String-instance-method","name":"lookup_object_id","abstract":false,"args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"args_string":"(fqr : String) : String","args_html":"(fqr : String) : String","location":{"filename":"src/johnson_controls/metasys.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L111"},"def":{"name":"lookup_object_id","args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get_request(\"/objectIdentifiers?fqr=#{fqr}\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body.to_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@equipment_ids_and_attributes = (setting?(Hash(String, Array(String)), :equipment_ids_and_attributes)) || ({} of String => Array(String))\n@poll_interval_seconds = (setting?(Int32, :poll_interval_seconds)) || 300\n@count = 0\nschedule.every(@poll_interval_seconds.seconds, true) do\n update_data\nend\n"}},{"html_id":"send_command_to_an_object(id:String,command_id:String,body:Array(JSON::Any))-instance-method","name":"send_command_to_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"args_string":"(id : String, command_id : String, body : Array(JSON::Any))","args_html":"(id : String, command_id : String, body : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L175"},"def":{"name":"send_command_to_an_object","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"response = put_request(\"/objects/#{id}/commands/#{command_id}\", body: body)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L32"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry <= Time.utc"}},{"html_id":"update_data-instance-method","name":"update_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L180"},"def":{"name":"update_data","visibility":"Public","body":"debug = {} of String => Hash(String, Float64)\ndata = {} of String => Hash(String, Float64)\n@equipment_ids_and_attributes.each do |id, attributes|\n equipment_points = get_equipment_points(id)\n equipment_points.points.each do |p|\n if attributes.includes?(p.name)\n else\n next\n end\n __temp_762 = p.equipment_name\n data[__temp_762]? || (data[__temp_762] = {} of String => Float64)\n __temp_764 = p.equipment_name\n debug[__temp_764]? || (debug[__temp_764] = {} of String => Float64)\n object_id = (p.object_url.split('/')).last\n value = get_attribute_value(object_id)\n data[p.equipment_name][p.name] = value\n debug[p.equipment_name][p.object_url] = value\n end\nend\naverages = calculate_averages(data)\n{data: self[:data] = data, count: @count, equipment_ids_and_attributes: @equipment_ids_and_attributes, debug: debug, averages: self[:averages] = averages}\n"}}]},{"html_id":"drivers/JohnsonControls/NetworkDevice","path":"JohnsonControls/NetworkDevice.html","kind":"class","full_name":"JohnsonControls::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alarms_url:String-instance-method","name":"alarms_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url","return_type":"String","visibility":"Public","body":"@alarms_url"}},{"html_id":"alarms_url=(alarms_url:String)-instance-method","name":"alarms_url=","abstract":false,"args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"args_string":"(alarms_url : String)","args_html":"(alarms_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url=","args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"visibility":"Public","body":"@alarms_url = alarms_url"}},{"html_id":"audits_url:String-instance-method","name":"audits_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url","return_type":"String","visibility":"Public","body":"@audits_url"}},{"html_id":"audits_url=(audits_url:String)-instance-method","name":"audits_url=","abstract":false,"args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"args_string":"(audits_url : String)","args_html":"(audits_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url=","args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"visibility":"Public","body":"@audits_url = audits_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"objects_url:String-instance-method","name":"objects_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url","return_type":"String","visibility":"Public","body":"@objects_url"}},{"html_id":"objects_url=(objects_url:String)-instance-method","name":"objects_url=","abstract":false,"args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"args_string":"(objects_url : String)","args_html":"(objects_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url=","args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"visibility":"Public","body":"@objects_url = objects_url"}},{"html_id":"parent_url:String-instance-method","name":"parent_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url","return_type":"String","visibility":"Public","body":"@parent_url"}},{"html_id":"parent_url=(parent_url:String)-instance-method","name":"parent_url=","abstract":false,"args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"args_string":"(parent_url : String)","args_html":"(parent_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url=","args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"visibility":"Public","body":"@parent_url = parent_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"trended_attributes_url:String-instance-method","name":"trended_attributes_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url","return_type":"String","visibility":"Public","body":"@trended_attributes_url"}},{"html_id":"trended_attributes_url=(trended_attributes_url:String)-instance-method","name":"trended_attributes_url=","abstract":false,"args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"args_string":"(trended_attributes_url : String)","args_html":"(trended_attributes_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url=","args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"visibility":"Public","body":"@trended_attributes_url = trended_attributes_url"}},{"html_id":"type_url:String-instance-method","name":"type_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url","return_type":"String","visibility":"Public","body":"@type_url"}},{"html_id":"type_url=(type_url:String)-instance-method","name":"type_url=","abstract":false,"args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"args_string":"(type_url : String)","args_html":"(type_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url=","args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"visibility":"Public","body":"@type_url = type_url"}}]},{"html_id":"drivers/JohnsonControls/Point","path":"JohnsonControls/Point.html","kind":"class","full_name":"JohnsonControls::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_name:String-instance-method","name":"equipment_name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name","return_type":"String","visibility":"Public","body":"@equipment_name"}},{"html_id":"equipment_name=(equipment_name:String)-instance-method","name":"equipment_name=","abstract":false,"args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"args_string":"(equipment_name : String)","args_html":"(equipment_name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name=","args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"visibility":"Public","body":"@equipment_name = equipment_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}}]},{"html_id":"drivers/JohnsonControls/Sample","path":"JohnsonControls/Sample.html","kind":"class","full_name":"JohnsonControls::Sample","name":"Sample","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L100"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L101"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"reliable:Bool-instance-method","name":"reliable","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable","return_type":"Bool","visibility":"Public","body":"@reliable"}},{"html_id":"reliable=(reliable:Bool)-instance-method","name":"reliable=","abstract":false,"args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"args_string":"(reliable : Bool)","args_html":"(reliable : Bool)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable=","args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"visibility":"Public","body":"@reliable = reliable"}},{"html_id":"timestamp:String-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp","return_type":"String","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:String)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"args_string":"(timestamp : String)","args_html":"(timestamp : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"value:Hash(String,JSON::Any)-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Hash(String,JSON::Any))-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"args_string":"(value : Hash(String, JSON::Any))","args_html":"(value : Hash(String, JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/SamplesResponse","path":"JohnsonControls/SamplesResponse.html","kind":"class","full_name":"JohnsonControls::SamplesResponse","name":"SamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L258"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L259"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Item)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items","return_type":"Array(Item)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Item))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"args_string":"(items : Array(Item))","args_html":"(items : Array(Item))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"visibility":"Public","body":"@items = items"}}]},{"html_id":"drivers/JohnsonControls/Value","path":"JohnsonControls/Value.html","kind":"class","full_name":"JohnsonControls::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual:Float64-instance-method","name":"actual","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual","return_type":"Float64","visibility":"Public","body":"@actual"}},{"html_id":"actual=(actual:Float64)-instance-method","name":"actual=","abstract":false,"args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"args_string":"(actual : Float64)","args_html":"(actual : Float64)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual=","args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"visibility":"Public","body":"@actual = actual"}}]}]},{"html_id":"drivers/Juniper","path":"Juniper.html","kind":"module","full_name":"Juniper","name":"Juniper","abstract":false,"locations":[{"filename":"src/juniper/mist_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Juniper/Client","path":"Juniper/Client.html","kind":"class","full_name":"Juniper::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L76"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L108"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L85"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L85"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L114"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L114"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L78"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L78"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L86"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L86"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L83"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L83"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L81"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L81"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L98"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L98"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L99"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L99"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientLocation","path":"Juniper/ClientLocation.html","kind":"struct","full_name":"Juniper::ClientLocation","name":"ClientLocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L159"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L145"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L145"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L149"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L149"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L150"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L150"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientStats","path":"Juniper/ClientStats.html","kind":"struct","full_name":"Juniper::ClientStats","name":"ClientStats","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L127"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L127"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L139"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L139"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L120"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L120"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L128"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L128"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L125"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L125"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L123"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L123"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}}]},{"html_id":"drivers/Juniper/Guest","path":"Juniper/Guest.html","kind":"class","full_name":"Juniper::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"authorized:Bool-instance-method","name":"authorized","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized","return_type":"Bool","visibility":"Public","body":"@authorized"}},{"html_id":"authorized=(authorized:Bool)-instance-method","name":"authorized=","abstract":false,"args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"args_string":"(authorized : Bool)","args_html":"(authorized : Bool)","location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized=","args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"visibility":"Public","body":"@authorized = authorized"}},{"html_id":"authorized_expiring_time:Int64|Nil-instance-method","name":"authorized_expiring_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_expiring_time"}},{"html_id":"authorized_expiring_time=(authorized_expiring_time:Int64|Nil)-instance-method","name":"authorized_expiring_time=","abstract":false,"args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_expiring_time : Int64 | Nil)","args_html":"(authorized_expiring_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time=","args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_expiring_time = authorized_expiring_time"}},{"html_id":"authorized_time:Int64|Nil-instance-method","name":"authorized_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_time"}},{"html_id":"authorized_time=(authorized_time:Int64|Nil)-instance-method","name":"authorized_time=","abstract":false,"args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_time : Int64 | Nil)","args_html":"(authorized_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time=","args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_time = authorized_time"}},{"html_id":"company:String|Nil-instance-method","name":"company","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L174"},"def":{"name":"company","return_type":"String | ::Nil","visibility":"Public","body":"@company"}},{"html_id":"company=(company:String|Nil)-instance-method","name":"company=","abstract":false,"args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"args_string":"(company : String | Nil)","args_html":"(company : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L174"},"def":{"name":"company=","args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"visibility":"Public","body":"@company = company"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L173"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L173"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L172"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/LatLng","path":"Juniper/LatLng.html","kind":"struct","full_name":"Juniper::LatLng","name":"LatLng","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L71"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L71"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L72"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L72"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]},{"html_id":"drivers/Juniper/LocationAsset","path":"Juniper/LocationAsset.html","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L236"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L236"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"battery_voltage:Float64|Nil-instance-method","name":"battery_voltage","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage","return_type":"Float64 | ::Nil","visibility":"Public","body":"@battery_voltage"}},{"html_id":"battery_voltage=(battery_voltage:Float64|Nil)-instance-method","name":"battery_voltage=","abstract":false,"args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"args_string":"(battery_voltage : Float64 | Nil)","args_html":"(battery_voltage : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage=","args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@battery_voltage = battery_voltage"}},{"html_id":"eddystone_uid_instance:String|Nil-instance-method","name":"eddystone_uid_instance","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_instance"}},{"html_id":"eddystone_uid_instance=(eddystone_uid_instance:String|Nil)-instance-method","name":"eddystone_uid_instance=","abstract":false,"args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_instance : String | Nil)","args_html":"(eddystone_uid_instance : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance=","args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_instance = eddystone_uid_instance"}},{"html_id":"eddystone_uid_namespace:String|Nil-instance-method","name":"eddystone_uid_namespace","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_namespace"}},{"html_id":"eddystone_uid_namespace=(eddystone_uid_namespace:String|Nil)-instance-method","name":"eddystone_uid_namespace=","abstract":false,"args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_namespace : String | Nil)","args_html":"(eddystone_uid_namespace : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace=","args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_namespace = eddystone_uid_namespace"}},{"html_id":"eddystone_url_url:String|Nil-instance-method","name":"eddystone_url_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_url_url"}},{"html_id":"eddystone_url_url=(eddystone_url_url:String|Nil)-instance-method","name":"eddystone_url_url=","abstract":false,"args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"args_string":"(eddystone_url_url : String | Nil)","args_html":"(eddystone_url_url : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url=","args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_url_url = eddystone_url_url"}},{"html_id":"ibeacon_major:Int64|Nil-instance-method","name":"ibeacon_major","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_major"}},{"html_id":"ibeacon_major=(ibeacon_major:Int64|Nil)-instance-method","name":"ibeacon_major=","abstract":false,"args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_major : Int64 | Nil)","args_html":"(ibeacon_major : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major=","args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_major = ibeacon_major"}},{"html_id":"ibeacon_minor:Int64|Nil-instance-method","name":"ibeacon_minor","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_minor"}},{"html_id":"ibeacon_minor=(ibeacon_minor:Int64|Nil)-instance-method","name":"ibeacon_minor=","abstract":false,"args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_minor : Int64 | Nil)","args_html":"(ibeacon_minor : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor=","args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_minor = ibeacon_minor"}},{"html_id":"ibeacon_uuid:String|Nil-instance-method","name":"ibeacon_uuid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid","return_type":"String | ::Nil","visibility":"Public","body":"@ibeacon_uuid"}},{"html_id":"ibeacon_uuid=(ibeacon_uuid:String|Nil)-instance-method","name":"ibeacon_uuid=","abstract":false,"args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"args_string":"(ibeacon_uuid : String | Nil)","args_html":"(ibeacon_uuid : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid=","args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ibeacon_uuid = ibeacon_uuid"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L238"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L238"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"mfg_company_id:Int64|Nil-instance-method","name":"mfg_company_id","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mfg_company_id"}},{"html_id":"mfg_company_id=(mfg_company_id:Int64|Nil)-instance-method","name":"mfg_company_id=","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"args_string":"(mfg_company_id : Int64 | Nil)","args_html":"(mfg_company_id : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id=","args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@mfg_company_id = mfg_company_id"}},{"html_id":"mfg_data:String|Nil-instance-method","name":"mfg_data","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data","return_type":"String | ::Nil","visibility":"Public","body":"@mfg_data"}},{"html_id":"mfg_data=(mfg_data:String|Nil)-instance-method","name":"mfg_data=","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"args_string":"(mfg_data : String | Nil)","args_html":"(mfg_data : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data=","args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mfg_data = mfg_data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L237"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationEvent","path":"Juniper/LocationEvent.html","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationAsset","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset"},{"html_id":"drivers/Juniper/LocationSDK","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK"},{"html_id":"drivers/Juniper/LocationWifi","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L218"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"sdk\"\n LocationSDK.from_json(json)\nwhen \"wifi\"\n LocationWifi.from_json(json)\nwhen \"asset\"\n LocationAsset.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L214"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L214"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L215"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L215"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Juniper/LocationEvents","path":"Juniper/LocationEvents.html","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L196"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(LocationEvent)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L198"},"def":{"name":"events","return_type":"Array(LocationEvent)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L197"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/LocationSDK","path":"Juniper/LocationSDK.html","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L225"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L228"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L227"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L227"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L226"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationWifi","path":"Juniper/LocationWifi.html","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L231"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L233"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L233"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L232"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/Map","path":"Juniper/Map.html","kind":"class","full_name":"Juniper::Map","name":"Map","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/MapGoogle","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle"},{"html_id":"drivers/Juniper/MapImage","kind":"class","full_name":"Juniper::MapImage","name":"MapImage"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"image\"\n MapImage.from_json(json)\nwhen \"google\"\n MapGoogle.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L21"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L21"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/MapGoogle","path":"Juniper/MapGoogle.html","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_right_coordinates:LatLng-instance-method","name":"bottom_right_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates","return_type":"LatLng","visibility":"Public","body":"@bottom_right_coordinates"}},{"html_id":"bottom_right_coordinates=(bottom_right_coordinates:LatLng)-instance-method","name":"bottom_right_coordinates=","abstract":false,"args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"args_string":"(bottom_right_coordinates : LatLng)","args_html":"(bottom_right_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates=","args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@bottom_right_coordinates = bottom_right_coordinates"}},{"html_id":"origin_x:Float64-instance-method","name":"origin_x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x","return_type":"Float64","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64)-instance-method","name":"origin_x=","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"args_string":"(origin_x : Float64)","args_html":"(origin_x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64-instance-method","name":"origin_y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y","return_type":"Float64","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64)-instance-method","name":"origin_y=","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"args_string":"(origin_y : Float64)","args_html":"(origin_y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"top_left_coordinates:LatLng-instance-method","name":"top_left_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates","return_type":"LatLng","visibility":"Public","body":"@top_left_coordinates"}},{"html_id":"top_left_coordinates=(top_left_coordinates:LatLng)-instance-method","name":"top_left_coordinates=","abstract":false,"args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"args_string":"(top_left_coordinates : LatLng)","args_html":"(top_left_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates=","args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@top_left_coordinates = top_left_coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L56"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"view:String-instance-method","name":"view","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L57"},"def":{"name":"view","return_type":"String","visibility":"Public","body":"@view"}},{"html_id":"view=(view:String)-instance-method","name":"view=","abstract":false,"args":[{"name":"view","external_name":"view","restriction":"String"}],"args_string":"(view : String)","args_html":"(view : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L57"},"def":{"name":"view=","args":[{"name":"view","external_name":"view","restriction":"String"}],"visibility":"Public","body":"@view = view"}}]},{"html_id":"drivers/Juniper/MapImage","path":"Juniper/MapImage.html","kind":"class","full_name":"Juniper::MapImage","name":"MapImage","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Int32-instance-method","name":"height","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L41"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Int32)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(height : Int32)","args_html":"(height : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L41"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"@height = height"}},{"html_id":"height_m:Float64|Nil-instance-method","name":"height_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height_m"}},{"html_id":"height_m=(height_m:Float64|Nil)-instance-method","name":"height_m=","abstract":false,"args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"args_string":"(height_m : Float64 | Nil)","args_html":"(height_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m=","args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@height_m = height_m"}},{"html_id":"locked:Bool|Nil-instance-method","name":"locked","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L52"},"def":{"name":"locked","return_type":"Bool | ::Nil","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool|Nil)-instance-method","name":"locked=","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"args_string":"(locked : Bool | Nil)","args_html":"(locked : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L52"},"def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@locked = locked"}},{"html_id":"org_id:String|Nil-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id","return_type":"String | ::Nil","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String|Nil)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"args_string":"(org_id : String | Nil)","args_html":"(org_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"orientation:Int32|Nil-instance-method","name":"orientation","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation","return_type":"Int32 | ::Nil","visibility":"Public","body":"@orientation"}},{"html_id":"orientation=(orientation:Int32|Nil)-instance-method","name":"orientation=","abstract":false,"args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"args_string":"(orientation : Int32 | Nil)","args_html":"(orientation : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation=","args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@orientation = orientation"}},{"html_id":"origin_x:Float64|Nil-instance-method","name":"origin_x","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64|Nil)-instance-method","name":"origin_x=","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"args_string":"(origin_x : Float64 | Nil)","args_html":"(origin_x : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64|Nil-instance-method","name":"origin_y","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64|Nil)-instance-method","name":"origin_y=","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"args_string":"(origin_y : Float64 | Nil)","args_html":"(origin_y : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"pixels_per_meter:Float64|Nil-instance-method","name":"pixels_per_meter","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter","return_type":"Float64 | ::Nil","visibility":"Public","body":"@pixels_per_meter"}},{"html_id":"pixels_per_meter=(pixels_per_meter:Float64|Nil)-instance-method","name":"pixels_per_meter=","abstract":false,"args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"args_string":"(pixels_per_meter : Float64 | Nil)","args_html":"(pixels_per_meter : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter=","args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@pixels_per_meter = pixels_per_meter"}},{"html_id":"site_id:String|Nil-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id","return_type":"String | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String|Nil)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String | Nil)","args_html":"(site_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"thumbnail_url:String-instance-method","name":"thumbnail_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url","return_type":"String","visibility":"Public","body":"@thumbnail_url"}},{"html_id":"thumbnail_url=(thumbnail_url:String)-instance-method","name":"thumbnail_url=","abstract":false,"args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"args_string":"(thumbnail_url : String)","args_html":"(thumbnail_url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url=","args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"visibility":"Public","body":"@thumbnail_url = thumbnail_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L31"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"width:Int32-instance-method","name":"width","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L40"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Int32)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32)","args_html":"(width : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L40"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"visibility":"Public","body":"@width = width"}},{"html_id":"width_m:Float64|Nil-instance-method","name":"width_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width_m"}},{"html_id":"width_m=(width_m:Float64|Nil)-instance-method","name":"width_m=","abstract":false,"args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"args_string":"(width_m : Float64 | Nil)","args_html":"(width_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m=","args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@width_m = width_m"}}]},{"html_id":"drivers/Juniper/Mist","path":"Juniper/Mist.html","kind":"class","full_name":"Juniper::Mist","name":"Mist","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(site_id:String,client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(site_id : String, client_mac : String)","args_html":"(site_id : String, client_mac : String)","location":{"filename":"src/juniper/mist.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L117"},"def":{"name":"client","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"clients(site_id:String,map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String, map_id : String | Nil = nil)","args_html":"(site_id : String, map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L109"},"def":{"name":"clients","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L97"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"location_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"location_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/juniper/mist.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L124"},"def":{"name":"location_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nvalidation = if signature = headers[\"X-Mist-Signature-v2\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA256, @webhook_secret, body)).downcase\nelse\n if signature = headers[\"X-Mist-Signature\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA1, @webhook_secret, body)).downcase\n else\n logger.warn do\n \"webhook called without validation signature\"\n end\n return {HTTP::Status::NOT_FOUND.to_i, EMPTY_HEADERS, \"\"}\n end\nend\nif validation != signature.downcase\n logger.warn do\n \"validation failed, check webhook secret\"\n end\n return {HTTP::Status::UNAUTHORIZED.to_i, EMPTY_HEADERS, \"\"}\nend\nbegin\n event_data = WebhookEvent.from_json(body)\n logger.debug do\n \"parsed mist webhook payload\"\n end\n if event_data.topic != \"location\"\n logger.debug do\n \"ignoring message type: #{event_data.topic}\"\n end\n return SUCCESS_RESPONSE\n end\n sites = Hash(String, Array(LocationEvent)).new do |hash, site|\n hash[site] = [] of LocationEvent\n end\n (event_data.events.as(Array(LocationEvent))).each do |event|\n sites[event.site_id] << event\n end\n sites.each do |site, events|\n self[site] = events\n end\nrescue e\n logger.error(exception: e) do\n \"failed to parse mist webhook payload\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}},{"html_id":"maps(site_id:String)-instance-method","name":"maps","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L105"},"def":{"name":"maps","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nschedule.cron(\"0 * * * *\") do\n reset_rate_limit\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L36"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@org_id = setting(String, :org_id)\n@webhook_secret = (setting?(String, :webhook_secret)) || \"\"\n"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L101"},"def":{"name":"sites","visibility":"Public","body":"request(Array(Site)) do |headers|\n get(\"/api/v1/orgs/#{@org_id}/sites\", headers: headers)\nend"}}]},{"html_id":"drivers/Juniper/MistLocationService","path":"Juniper/MistLocationService.html","kind":"class","full_name":"Juniper::MistLocationService","name":"MistLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/juniper/mist_location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L113"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = (mist.ownership_of(lookup)).get.as_s?\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L125"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of String\nend\nmaps = [] of String\n@floorplan_mappings.each do |map_id, data|\n if data.values.includes?(zone_id)\n maps << map_id\n end\nend\nlogger.debug do\n \"found matching mist maps: #{maps}\"\nend\nif maps.empty?\n return [] of String\nend\nignore_older = @max_location_age.ago.to_unix\nall_devices = maps.flat_map do |map_id|\n clients = (mist.status?(Array(Client), map_id)) || ([] of Client)\n mappings = @floorplan_mappings[map_id]\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n clients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\n end\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L192"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L62"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"clients = Array(Client).from_json((mist.locate(username.presence || email.presence.not_nil!)).get.to_json)\nignore_older = @max_location_age.ago.to_unix\nclients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n map_id = client.map_id\n mappings = @floorplan_mappings[map_id]?\n if mappings\n else\n next\n end\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\nend\n"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","doc":"Proxies the data to the mist driver","summary":"

Proxies the data to the mist driver

","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_location_service.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L108"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"mist.mac_address_mappings(username, macs, domain)"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L102"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(mist.macs_assigned_to(username.presence || email.presence.not_nil!)).get.as_a.map(&.as_s)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Int32)), :floorplan_mappings)) || @floorplan_mappings\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\nschedule.clear\nschedule.every(10.minutes) do\n sync_map_sizes\nend\nschedule.in(20.seconds) do\n sync_map_sizes\nend\n"}}]},{"html_id":"drivers/Juniper/MistWebsocket","path":"Juniper/MistWebsocket.html","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L207"},"def":{"name":"client","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"client_data:Hash(String,Client)-instance-method","name":"client_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L36"},"def":{"name":"client_data","return_type":"Hash(String, Client)","visibility":"Public","body":"if (__temp_1 = @client_data).nil?\n @client_data = ({} of String => Client)\nelse\n __temp_1\nend"}},{"html_id":"clients(map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil = nil)","args_html":"(map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L199"},"def":{"name":"clients","args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L69"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\n@location_data = nil\n@client_data = nil\nschedule.every(45.seconds, immediate: true) do\n transport.send({subscribe: \"/sites/#{@site_id}/stats/clients\"}.to_json)\n maps.each do |map|\n transport.send({subscribe: \"/sites/#{@site_id}/stats/maps/#{map.id}/clients\"}.to_json)\n end\nend\nsync_clients\nschedule.every(3.seconds) do\n update_client_locations\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L85"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@connected = false\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L248"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L239"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L186"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"locate(username:String)-instance-method","name":"locate","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String)","args_html":"(username : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L266"},"def":{"name":"locate","args":[{"name":"username","external_name":"username","restriction":"String"}],"visibility":"Public","body":"(macs_assigned_to(username)).compact_map do |mac|\n self[mac]?\nend"}},{"html_id":"location_data:Hash(String,Hash(String,Client))-instance-method","name":"location_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L32"},"def":{"name":"location_data","return_type":"Hash(String, Hash(String, Client))","visibility":"Public","body":"if (__temp_1 = @location_data).nil?\n @location_data = (Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\n end)\nelse\n __temp_1\nend"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_websocket.cr","line_number":307,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L307"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"macs_assigned_to(username:String):Array(String)-instance-method","name":"macs_assigned_to","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String) : Array(String)","args_html":"(username : String) : Array(String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L252"},"def":{"name":"macs_assigned_to","args":[{"name":"username","external_name":"username","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username)\nif macs = user_mac_mappings do |s|\n s[username]?\nend\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"maps-instance-method","name":"maps","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L194"},"def":{"name":"maps","visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\ntransport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@site_id = setting(String, :site_id)\nif @site_id == \"site_id\"\nelse\n transport.http_uri_override = URI.parse(\"https://api.mist.com\")\nend\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\nif @connected\n connected\nend\n"}},{"html_id":"ownership_of(mac_address:String)-instance-method","name":"ownership_of","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L261"},"def":{"name":"ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"mac_address = format_mac(mac_address)\nuser_mac_mappings do |storage|\n storage[mac_address]?\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L221"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"string = (String.new(data)).rstrip\nlogger.debug do\n \"websocket sent: #{string}\"\nend\nevent = WebsocketEvent.from_json(string)\nif event_data = event.data\n if event.channel.includes?(\"/maps/\")\n client_location = ClientLocation.from_json(event_data)\n update_location(client_data, location_data, client_location)\n else\n client_stats = ClientStats.from_json(event_data)\n update_stats(client_data, client_stats)\n end\nend\ntask.try(&.success)\n"}},{"html_id":"site_list(org_id:String)-instance-method","name":"site_list","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L190"},"def":{"name":"site_list","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Hash(String, JSON::Any))) do |headers|\n get(\"/api/v1/installer/orgs/#{org_id}/sites\", headers: headers)\nend"}},{"html_id":"sync_clients-instance-method","name":"sync_clients","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L155"},"def":{"name":"sync_clients","visibility":"Public","body":"all_clients = [] of Client\nmaps.each do |map|\n all_clients.concat((clients(map.id)).map() do |__arg0|\n __arg0.as(Client)\n end)\nend\nloc_data = Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\nend\ncli_data = {} of String => Client\nall_clients.each do |client|\n client_mac = format_mac(client.mac)\n client.mac = client_mac\n cli_data[client_mac] = client\n loc_data[client.map_id][client_mac] = client\nend\n@client_data = cli_data\n@location_data = loc_data\nloc_data.each do |map_id, clients|\n self[map_id] = clients.values\nend\nlocation_data.size\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L62"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"Authorization\" => @api_token, \"User-Agent\" => \"PlaceOS/2.0 PlaceTechnology\"}"}}],"types":[{"html_id":"drivers/Juniper/MistWebsocket/WebsocketEvent","path":"Juniper/MistWebsocket/WebsocketEvent.html","kind":"struct","full_name":"Juniper::MistWebsocket::WebsocketEvent","name":"WebsocketEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper/MistWebsocket","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L215"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"data:String|Nil-instance-method","name":"data","doc":"data will be the Client class as a JSON string","summary":"

data will be the Client class as a JSON string

","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L218"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L214"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]}]},{"html_id":"drivers/Juniper/OtherEvents","path":"Juniper/OtherEvents.html","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L202"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(JSON::Any)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L204"},"def":{"name":"events","return_type":"Array(JSON::Any)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L203"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/Site","path":"Juniper/Site.html","kind":"class","full_name":"Juniper::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"country_code:String-instance-method","name":"country_code","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code","return_type":"String","visibility":"Public","body":"@country_code"}},{"html_id":"country_code=(country_code:String)-instance-method","name":"country_code=","abstract":false,"args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"args_string":"(country_code : String)","args_html":"(country_code : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code=","args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"visibility":"Public","body":"@country_code = country_code"}},{"html_id":"created_time:Int64-instance-method","name":"created_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time","return_type":"Int64","visibility":"Public","body":"@created_time"}},{"html_id":"created_time=(created_time:Int64)-instance-method","name":"created_time=","abstract":false,"args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"args_string":"(created_time : Int64)","args_html":"(created_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time=","args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"visibility":"Public","body":"@created_time = created_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"modified_time:Int64-instance-method","name":"modified_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time","return_type":"Int64","visibility":"Public","body":"@modified_time"}},{"html_id":"modified_time=(modified_time:Int64)-instance-method","name":"modified_time=","abstract":false,"args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"args_string":"(modified_time : Int64)","args_html":"(modified_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time=","args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"visibility":"Public","body":"@modified_time = modified_time"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}}]},{"html_id":"drivers/Juniper/WebhookEvent","path":"Juniper/WebhookEvent.html","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationEvents","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents"},{"html_id":"drivers/Juniper/OtherEvents","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L180"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"topic\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'topic' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'topic'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n LocationEvents.from_json(json)\nwhen \"zone\"\n OtherEvents.from_json(json)\nwhen \"asset-raw\"\n OtherEvents.from_json(json)\nwhen \"device-events\"\n OtherEvents.from_json(json)\nwhen \"device-updowns\"\n OtherEvents.from_json(json)\nwhen \"alarms\"\n OtherEvents.from_json(json)\nwhen \"audits\"\n OtherEvents.from_json(json)\nwhen \"client-join\"\n OtherEvents.from_json(json)\nwhen \"client-sessions\"\n OtherEvents.from_json(json)\nwhen \"ping\"\n OtherEvents.from_json(json)\nwhen \"occupancy-alerts\"\n OtherEvents.from_json(json)\nwhen \"sdkclient-scan-data\"\n OtherEvents.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'topic' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]}]},{"html_id":"drivers/Kaiterra","path":"Kaiterra.html","kind":"module","full_name":"Kaiterra","name":"Kaiterra","abstract":false,"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kaiterra/API","path":"Kaiterra/API.html","kind":"class","full_name":"Kaiterra::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"batch(body:Array(Request),params:Hash(String,String)={}ofString=>String)-instance-method","name":"batch","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","args_html":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L114"},"def":{"name":"batch","args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = post(generate_url(\"/batch\", params), body: body.to_json, headers: generate_headers({\"Content-Type\" => \"application/json\", \"Content-Encoding\" => \"UTF-8\"}))\nArray(BatchResponse).from_json(response.body)\n"}},{"html_id":"get_devices(id:String,params:Hash(String,String)={}ofString=>String)-instance-method","name":"get_devices","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(id : String, params : Hash(String, String) = {} of String => String)","args_html":"(id : String, params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L89"},"def":{"name":"get_devices","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = get(generate_url(\"/devices/#{id}/top\", params), headers: generate_headers)\nResponse.from_json(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}}],"types":[{"html_id":"drivers/Kaiterra/API/BatchResponse","path":"Kaiterra/API/BatchResponse.html","kind":"class","full_name":"Kaiterra::API::BatchResponse","name":"BatchResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L110"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L110"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"code:Int64-instance-method","name":"code","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L111"},"def":{"name":"code","return_type":"Int64","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int64)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int64"}],"args_string":"(code : Int64)","args_html":"(code : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L111"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int64"}],"visibility":"Public","body":"@code = code"}}]},{"html_id":"drivers/Kaiterra/API/Data","path":"Kaiterra/API/Data.html","kind":"class","full_name":"Kaiterra::API::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"param:Param-instance-method","name":"param","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L82"},"def":{"name":"param","return_type":"Param","visibility":"Public","body":"@param"}},{"html_id":"param=(param:Param)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"Param"}],"args_string":"(param : Param)","args_html":"(param : Param)","location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L82"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"Param"}],"visibility":"Public","body":"@param = param"}},{"html_id":"points:Array(JSON::Any::Type)-instance-method","name":"points","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L86"},"def":{"name":"points","return_type":"Array(JSON::Any::Type)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(JSON::Any::Type))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"args_string":"(points : Array(JSON::Any::Type))","args_html":"(points : Array(JSON::Any::Type))","location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L86"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"visibility":"Public","body":"@points = points"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L84"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:String|Nil)-instance-method","name":"source=","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(source : String | Nil)","args_html":"(source : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L84"},"def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"@source = source"}},{"html_id":"span:Int64-instance-method","name":"span","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L85"},"def":{"name":"span","return_type":"Int64","visibility":"Public","body":"@span"}},{"html_id":"span=(span:Int64)-instance-method","name":"span=","abstract":false,"args":[{"name":"span","external_name":"span","restriction":"Int64"}],"args_string":"(span : Int64)","args_html":"(span : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L85"},"def":{"name":"span=","args":[{"name":"span","external_name":"span","restriction":"Int64"}],"visibility":"Public","body":"@span = span"}},{"html_id":"units:Unit-instance-method","name":"units","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L83"},"def":{"name":"units","return_type":"Unit","visibility":"Public","body":"@units"}},{"html_id":"units=(units:Unit)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"Unit"}],"args_string":"(units : Unit)","args_html":"(units : Unit)","location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L83"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"Unit"}],"visibility":"Public","body":"@units = units"}}]},{"html_id":"drivers/Kaiterra/API/Param","path":"Kaiterra/API/Param.html","kind":"enum","full_name":"Kaiterra::API::Param","name":"Param","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rco2","name":"Rco2","value":"0"},{"id":"Ro3","name":"Ro3","value":"1"},{"id":"Rpm25c","name":"Rpm25c","value":"2"},{"id":"Rpm10c","name":"Rpm10c","value":"3"},{"id":"Rhumid","name":"Rhumid","value":"4"},{"id":"Rtemp","name":"Rtemp","value":"5"},{"id":"Rtvoc","name":"Rtvoc","value":"6"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"instance_methods":[{"html_id":"rco2?-instance-method","name":"rco2?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L22"},"def":{"name":"rco2?","visibility":"Public","body":"self == Rco2"}},{"html_id":"rhumid?-instance-method","name":"rhumid?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L26"},"def":{"name":"rhumid?","visibility":"Public","body":"self == Rhumid"}},{"html_id":"ro3?-instance-method","name":"ro3?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L23"},"def":{"name":"ro3?","visibility":"Public","body":"self == Ro3"}},{"html_id":"rpm10c?-instance-method","name":"rpm10c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L25"},"def":{"name":"rpm10c?","visibility":"Public","body":"self == Rpm10c"}},{"html_id":"rpm25c?-instance-method","name":"rpm25c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L24"},"def":{"name":"rpm25c?","visibility":"Public","body":"self == Rpm25c"}},{"html_id":"rtemp?-instance-method","name":"rtemp?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L27"},"def":{"name":"rtemp?","visibility":"Public","body":"self == Rtemp"}},{"html_id":"rtvoc?-instance-method","name":"rtvoc?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L28"},"def":{"name":"rtvoc?","visibility":"Public","body":"self == Rtvoc"}}]},{"html_id":"drivers/Kaiterra/API/Request","path":"Kaiterra/API/Request.html","kind":"class","full_name":"Kaiterra::API::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String|Nil-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L104"},"def":{"name":"body","return_type":"String | ::Nil","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String|Nil)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(body : String | Nil)","args_html":"(body : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L104"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"@body = body"}},{"html_id":"headers:Array(NamedTuple(name:String,value:String))|Nil-instance-method","name":"headers","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L103"},"def":{"name":"headers","return_type":"Array(NamedTuple(name: String, value: String)) | ::Nil","visibility":"Public","body":"@headers"}},{"html_id":"headers=(headers:Array(NamedTuple(name:String,value:String))|Nil)-instance-method","name":"headers=","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"args_string":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","args_html":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L103"},"def":{"name":"headers=","args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"visibility":"Public","body":"@headers = headers"}},{"html_id":"method:String-instance-method","name":"method","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L100"},"def":{"name":"method","return_type":"String","visibility":"Public","body":"@method"}},{"html_id":"method=(method:String)-instance-method","name":"method=","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"}],"args_string":"(method : String)","args_html":"(method : String)","location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L100"},"def":{"name":"method=","args":[{"name":"method","external_name":"method","restriction":"String"}],"visibility":"Public","body":"@method = method"}},{"html_id":"relative_url:String-instance-method","name":"relative_url","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url","return_type":"String","visibility":"Public","body":"@relative_url"}},{"html_id":"relative_url=(relative_url:String)-instance-method","name":"relative_url=","abstract":false,"args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"args_string":"(relative_url : String)","args_html":"(relative_url : String)","location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url=","args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"visibility":"Public","body":"@relative_url = relative_url"}}]},{"html_id":"drivers/Kaiterra/API/Response","path":"Kaiterra/API/Response.html","kind":"class","full_name":"Kaiterra::API::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Data)|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L75"},"def":{"name":"data","return_type":"Array(Data) | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Array(Data)|Nil)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"args_string":"(data : Array(Data) | Nil)","args_html":"(data : Array(Data) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L75"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"visibility":"Public","body":"@data = data"}},{"html_id":"errors:Array(JSON::Any::Type)|Nil-instance-method","name":"errors","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L76"},"def":{"name":"errors","return_type":"Array(JSON::Any::Type) | ::Nil","visibility":"Public","body":"@errors"}},{"html_id":"errors=(errors:Array(JSON::Any::Type)|Nil)-instance-method","name":"errors=","abstract":false,"args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"args_string":"(errors : Array(JSON::Any::Type) | Nil)","args_html":"(errors : Array(JSON::Any::Type) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L76"},"def":{"name":"errors=","args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"visibility":"Public","body":"@errors = errors"}}]},{"html_id":"drivers/Kaiterra/API/Unit","path":"Kaiterra/API/Unit.html","kind":"enum","full_name":"Kaiterra::API::Unit","name":"Unit","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L31"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ppm","name":"Ppm","value":"0"},{"id":"Ppb","name":"Ppb","value":"1"},{"id":"MicrogramsPerCubicMeter","name":"MicrogramsPerCubicMeter","value":"2"},{"id":"MilligramsPerCubicMeter","name":"MilligramsPerCubicMeter","value":"3"},{"id":"C","name":"C","value":"4"},{"id":"F","name":"F","value":"5"},{"id":"X","name":"X","value":"6"},{"id":"Percentage","name":"Percentage","value":"7"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"class_methods":[{"html_id":"parse(string)-class-method","name":"parse","abstract":false,"args":[{"name":"string","external_name":"string","restriction":""}],"args_string":"(string)","args_html":"(string)","location":{"filename":"src/kaiterra/api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L41"},"def":{"name":"parse","args":[{"name":"string","external_name":"string","restriction":""}],"visibility":"Public","body":"case string\nwhen \"µg/m³\"\n Unit::MicrogramsPerCubicMeter\nwhen \"mg/m³\"\n Unit::MilligramsPerCubicMeter\nwhen \"%\"\n Unit::Percentage\nelse\n super(string)\nend"}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L54"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"parse(pull.read_string)"}}],"instance_methods":[{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L36"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L37"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"micrograms_per_cubic_meter?-instance-method","name":"micrograms_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L34"},"def":{"name":"micrograms_per_cubic_meter?","visibility":"Public","body":"self == MicrogramsPerCubicMeter"}},{"html_id":"milligrams_per_cubic_meter?-instance-method","name":"milligrams_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L35"},"def":{"name":"milligrams_per_cubic_meter?","visibility":"Public","body":"self == MilligramsPerCubicMeter"}},{"html_id":"percentage?-instance-method","name":"percentage?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L39"},"def":{"name":"percentage?","visibility":"Public","body":"self == Percentage"}},{"html_id":"ppb?-instance-method","name":"ppb?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L33"},"def":{"name":"ppb?","visibility":"Public","body":"self == Ppb"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L32"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L58"},"def":{"name":"to_s","visibility":"Public","body":"case self\nwhen Unit::MicrogramsPerCubicMeter\n \"µg/m³\"\nwhen Unit::MilligramsPerCubicMeter\n \"mg/m³\"\nwhen Unit::Percentage\n \"%\"\nelse\n super()\nend"}},{"html_id":"x?-instance-method","name":"x?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L38"},"def":{"name":"x?","visibility":"Public","body":"self == X"}}]}]},{"html_id":"drivers/Kaiterra/RoomLogic","path":"Kaiterra/RoomLogic.html","kind":"class","full_name":"Kaiterra::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_measurements-instance-method","name":"get_measurements","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L25"},"def":{"name":"get_measurements","visibility":"Public","body":"response = (kaiterra.get_devices(@room_id)).get\nif results = response.as_h[\"data\"]\nelse\n return \"No Data\"\nend\nresults.as_a.each do |i|\n name = \"#{i[\"param\"]} (#{i[\"units\"]})\"\n value = i[\"points\"].as_a.first[\"value\"]\n self[name] = value\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@room_id = setting(String, :kaiterra_room_id)\n@cron_string = setting(String, :kaiterra_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_measurements\nend\n"}}]}]},{"html_id":"drivers/Keycloak","path":"Keycloak.html","kind":"module","full_name":"Keycloak","name":"Keycloak","abstract":false,"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Keycloak/RestAPI","path":"Keycloak/RestAPI.html","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Keycloak","kind":"module","full_name":"Keycloak","name":"Keycloak"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L113"},"def":{"name":"get_token","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"only supports requests directly from SSO users\")\nend\nget_user_token(user_id)\n"}},{"html_id":"get_user_token(user_id:String):String-instance-method","name":"get_user_token","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/keycloak/rest_api.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L120"},"def":{"name":"get_user_token","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = ::HTTP::Client.post(\"#{@place_domain}/api/engine/v2/users/#{user_id}/resource_token\", headers: HTTP::Headers {\"X-API-Key\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain a keycloak API key for user #{user_id}: #{response.status_code} - #{response.body}\")\nend\n(JSON.parse(response.body))[\"token\"].as_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@realm = (setting(String, :realm)) || \"\"\n@api_key = (setting(String, :place_api_key)) || \"\"\n@place_domain = (setting(String, :place_domain)) || \"\"\n"}},{"html_id":"users(search:String|Nil=nil,email:String|Nil=nil,enabled_users_only:Bool=true,all_pages:Bool=false,auth_token:String|Nil=nil)-instance-method","name":"users","abstract":false,"args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"args_string":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","args_html":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","location":{"filename":"src/keycloak/rest_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L63"},"def":{"name":"users","args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_token = \"Bearer #{auth_token.presence || get_token}\"\nparams = URI::Params.build do |form|\n if search.presence\n form.add(\"search\", search.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n form.add(\"enabled\", enabled_users_only.to_s)\n form.add(\"exact\", (!!email.presence).to_s)\n form.add(\"first\", \"1\")\n form.add(\"max\", \"100\")\nend\nusers = [] of UserDetails\nnext_request = \"/admin/realms/#{@realm}/users?#{params}\"\nheaders = HTTP::Headers {\"Accept\" => \"application/json\", \"Authorization\" => user_token}\nlogger.debug do\n \"requesting users, all pages: #{all_pages}\"\nend\npage_count = 1\nloop do\n response = get(next_request, headers: headers)\n if response.success?\n else\n raise(\"unexpected error: #{response.status_code} - #{response.body}\")\n end\n links = LinkHeader.new(response)\n next_request = links[\"next\"]?\n new_users = Array(UserDetails).from_json(response.body)\n users.concat(new_users)\n if (!all_pages || next_request.nil?) || new_users.empty?\n break\n end\n page_count = page_count + 1\nend\nlogger.debug do\n \"users count: #{users.size}, pages: #{page_count}\"\nend\nusers\n"}}],"types":[{"html_id":"drivers/Keycloak/RestAPI/Role","path":"Keycloak/RestAPI/Role.html","kind":"struct","full_name":"Keycloak::RestAPI::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L29"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L34"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L32"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L33"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Keycloak/RestAPI/UserDetails","path":"Keycloak/RestAPI/UserDetails.html","kind":"struct","full_name":"Keycloak::RestAPI::UserDetails","name":"UserDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_roles:Array(Role)|Nil-instance-method","name":"application_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L59"},"def":{"name":"application_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@application_roles"}},{"html_id":"client_roles:Array(Role)|Nil-instance-method","name":"client_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L56"},"def":{"name":"client_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@client_roles"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L44"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"enabled:Bool|Nil-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L43"},"def":{"name":"enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L47"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"groups:Array(String)|Nil-instance-method","name":"groups","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L60"},"def":{"name":"groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@groups"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L41"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L50"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"realm_roles:Array(String)|Nil-instance-method","name":"realm_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L53"},"def":{"name":"realm_roles","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@realm_roles"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L42"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]}]},{"html_id":"drivers/KontaktIO","path":"KontaktIO.html","kind":"module","full_name":"KontaktIO","name":"KontaktIO","abstract":false,"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/KontaktIO/Building","path":"KontaktIO/Building.html","kind":"class","full_name":"KontaktIO::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L158"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L159"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L164"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L163"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L168"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L161"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L165"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L166"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L162"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/BuildingShort","path":"KontaktIO/BuildingShort.html","kind":"class","full_name":"KontaktIO::BuildingShort","name":"BuildingShort","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L132"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L133"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/Campus","path":"KontaktIO/Campus.html","kind":"class","full_name":"KontaktIO::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L171"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L172"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L177"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"buildings:Array(Building)-instance-method","name":"buildings","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L183"},"def":{"name":"buildings","return_type":"Array(Building)","visibility":"Public","body":"@buildings"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L176"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L174"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L180"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L181"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L175"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L179"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/KontaktIO/Contact","path":"KontaktIO/Contact.html","kind":"class","full_name":"KontaktIO::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration_sec:Int32-instance-method","name":"duration_sec","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L62"},"def":{"name":"duration_sec","return_type":"Int32","visibility":"Public","body":"@duration_sec"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L53"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L56"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L59"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}}]},{"html_id":"drivers/KontaktIO/ContactTracing","path":"KontaktIO/ContactTracing.html","kind":"class","full_name":"KontaktIO::ContactTracing","name":"ContactTracing","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/contact_tracing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"close_contacts(email:String|Nil=nil,username:String|Nil=nil,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil)-instance-method","name":"close_contacts","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L13"},"def":{"name":"close_contacts","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"macs = (location_services.macs_assigned_to(email, username)).get.as_a.map(&.as_s)\nperiods = [] of Tuple(Int64, Int64)\nperiod_start = start_time || 2.days.ago.to_unix\nperiod_end = end_time || 1.days.ago.to_unix\nloop do\n temp_ending = period_start + 6.hours.to_i\n if temp_ending < period_end\n periods << {period_start, temp_ending}\n else\n periods << {period_start, period_end}\n break\n end\n period_start = temp_ending\nend\nlocations = [] of Tracking\nerrors = [] of Exception\nmacs.each do |mac|\n begin\n periods.each do |__temp_821|\n starting, ending = __temp_821\n raw_report = (kontakt.colocations(mac, starting, ending)).get.to_json\n locations.concat(Array(Tracking).from_json(raw_report))\n end\n rescue error\n logger.warn(exception: error) do\n \"locating close contacts\"\n end\n errors << error\n end\nend\nif locations.empty? && errors.size > 0\n raise(errors[0])\nend\nmacs = Set(String).new\nlocations.each do |location|\n macs << location.mac_address\nend\nmac_mappings = {} of String => String\nmacs.each do |mac|\n mac = format_mac(mac)\n if owner = (location_services.check_ownership_of(mac)).get.as_h?\n username = owner[\"assigned_to\"]?.try(&.as_s)\n if username\n else\n next\n end\n mac_mappings[mac] = username\n end\nend\ncontacts = {} of String => NamedTuple(mac_address: String, username: String | ::Nil, contact_time: Int64, duration: Int32)\nlocations.each do |location|\n mac = format_mac(location.mac_address)\n username = mac_mappings[mac]?\n duration = location.duration\n if current = contacts[username || mac]?\n if current[:duration] > duration\n next\n end\n end\n contacts[username || mac] = {mac_address: mac, username: username, contact_time: location.start_time.to_unix, duration: duration}\nend\ncontacts.values\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L93"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}}]},{"html_id":"drivers/KontaktIO/Floor","path":"KontaktIO/Floor.html","kind":"class","full_name":"KontaktIO::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:BuildingShort|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L155"},"def":{"name":"building","return_type":"BuildingShort | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"height:Float64|Nil-instance-method","name":"height","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L143"},"def":{"name":"height","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L140"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","doc":"lat lng from bottom right corner of image","summary":"

lat lng from bottom right corner of image

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L150"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"level:Int32|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L146"},"def":{"name":"level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L153"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L141"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"rotation:Float64|Nil-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L145"},"def":{"name":"rotation","return_type":"Float64 | ::Nil","visibility":"Public","body":"@rotation"}},{"html_id":"width:Float64|Nil-instance-method","name":"width","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L144"},"def":{"name":"width","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/KontaktIO/KioCloud","path":"KontaktIO/KioCloud.html","kind":"class","full_name":"KontaktIO::KioCloud","name":"KioCloud","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"campuses:Array(Campus)-instance-method","name":"campuses","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L110"},"def":{"name":"campuses","return_type":"Array(Campus)","visibility":"Public","body":"campuses = [] of Campus\nmake_request(\"GET\", \"/v2/locations/campuses\") do |data|\n resp = Response(Campus).from_json(data)\n campuses.concat(resp.content)\n resp.page\nend\ncampuses\n"}},{"html_id":"colocations(mac_address:String,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil):Array(Tracking)-instance-method","name":"colocations","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","args_html":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L83"},"def":{"name":"colocations","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"return_type":"Array(Tracking)","visibility":"Public","body":"ending = end_time ? Time.unix(end_time) : 10.minutes.ago\nstarting = start_time ? Time.unix(start_time) : (ending - 20.days)\ntracking = [] of Tracking\nmake_request(\"GET\", \"/v3/novid/colocations\", params: URI::Params {\"trackingId\" => ((format_mac(mac_address)).upcase.scan(/\\w{2}/)).map() do |__arg1|\n __arg1.to_a.first\nend.join(':'), \"startTime\" => starting.to_rfc3339, \"endTime\" => ending.to_rfc3339}) do |data|\n resp = Response(Tracking).from_json(data)\n tracking.concat(resp.content)\n resp.page\nend\ntracking\n"}},{"html_id":"create_channel(name:String,uri:String)-instance-method","name":"create_channel","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(name : String, uri : String)","args_html":"(name : String, uri : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L202"},"def":{"name":"create_channel","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"make_request(\"POST\", \"/v3/channels\", body: {status: :active, name: name, channel: {type: \"eventHub\", endpoint: uri, streamName: name, accessKey: \"test\", secretKey: \"test\", region: \"test\", sharedAccessKeyName: \"test\", eventHubName: \"test\", sharedAccessKey: \"test\"}}.to_json)"}},{"html_id":"delete_channel(id:Int32|String)-instance-method","name":"delete_channel","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"args_string":"(id : Int32 | String)","args_html":"(id : Int32 | String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L220"},"def":{"name":"delete_channel","args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"visibility":"Public","body":"make_request(\"DELETE\", \"/v3/channels\", params: URI::Params {\"id\" => id.to_s})"}},{"html_id":"event_hub(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"event_hub","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L197"},"def":{"name":"event_hub","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nlogger.debug do\n body\nend\n"}},{"html_id":"find(mac_address:String):Position|Nil-instance-method","name":"find","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : Position | Nil","args_html":"(mac_address : String) : Position | Nil","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L102"},"def":{"name":"find","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"Position | ::Nil","visibility":"Public","body":"data = make_request(\"GET\", \"/v2/positions\", params: URI::Params {\"trackingId\" => format_mac(mac_address)})\n(Response(Position).from_json(data)).content.first?\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L193"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"occupancy_cache:Hash(Int64,RoomOccupancy)-instance-method","name":"occupancy_cache","doc":"===================================\nCaching sensor data\n===================================","summary":"

=================================== Caching sensor data ===================================

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L159"},"def":{"name":"occupancy_cache","return_type":"Hash(Int64, RoomOccupancy)","visibility":"Public","body":"@occupancy_cache"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)\npoll_every = ((setting?(Int32, :poll_every)) || 2).seconds\nschedule.clear\nschedule.every(poll_every) do\n cache_occupancy_counts\nend\n"}},{"html_id":"room_occupancy:Array(RoomOccupancy)-instance-method","name":"room_occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L130"},"def":{"name":"room_occupancy","return_type":"Array(RoomOccupancy)","visibility":"Public","body":"room_occupancy = [] of RoomOccupancy\nmake_request(\"GET\", \"/v3/occupancy/rooms\") do |data|\n resp = Response(RoomOccupancy).from_json(data)\n room_occupancy.concat(resp.content)\n resp.page\nend\nroom_occupancy\n"}},{"html_id":"rooms:Array(Room)-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L120"},"def":{"name":"rooms","return_type":"Array(Room)","visibility":"Public","body":"rooms = [] of Room\nmake_request(\"GET\", \"/v2/locations/rooms\") do |data|\n resp = Response(Room).from_json(data)\n rooms.concat(resp.content)\n resp.page\nend\nrooms\n"}},{"html_id":"telemetry(tracking_ids:Array(String)):Array(Telemetry)-instance-method","name":"telemetry","abstract":false,"args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"args_string":"(tracking_ids : Array(String)) : Array(Telemetry)","args_html":"(tracking_ids : Array(String)) : Array(Telemetry)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L140"},"def":{"name":"telemetry","args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"return_type":"Array(Telemetry)","visibility":"Public","body":"telemetry = [] of Telemetry\nparams = URI::Params.new\nparams[\"endTime\"] = Time.utc.to_rfc3339(fraction_digits: 3)\nparams[\"startTime\"] = 2.minutes.ago.to_rfc3339(fraction_digits: 3)\nif tracking_ids.empty?\nelse\n params[\"trackingId\"] = tracking_ids.map() do |__arg2|\n __arg2.strip.downcase\n end.join(\",\")\nend\nmake_request(\"GET\", \"/v3/telemetry\", params: params) do |data|\n resp = Response(Telemetry).from_json(data)\n telemetry.concat(resp.content)\n resp.page\nend\ntelemetry\n"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings","path":"KontaktIO/MacAddressMappings.html","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"map_devices-instance-method","name":"map_devices","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L40"},"def":{"name":"map_devices","visibility":"Public","body":"request = \"https://api.kontakt.io/device?maxResult=500&deviceType=BEACON\"\nlocatable = system.implementing(Interface::Locatable)\nwhile request.presence\n response = HTTP::Client.get(request, headers: HTTP::Headers {\"Api-Key\" => @api_key, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/vnd.com.kontakt+json;version=10\"})\n logger.debug do\n \"request returned:\\n#{response.body}\"\n end\n case response.status_code\n when 303\n when 401\n logger.warn do\n \"The API Key is invalid or disabled\"\n end\n when 403\n logger.warn do\n \"User who created the API no longer has access to the Kio Cloud account or their user role doesn't allow access to the endpoint. Device error if the endpoint is not available for the device model.\"\n end\n end\n if response.success?\n else\n raise(\"request #{request} failed with status: #{response.status_code}\")\n end\n result = NamedTuple(devices: Array(DeviceDetails), searchMeta: SearchMeta).from_json(response.body)\n meta = result[:searchMeta]\n request = meta.next_results\n result[:devices].each do |device|\n if device.alias.presence\n else\n next\n end\n (locatable.mac_address_mappings(device.alias, {device.mac}, \"\")).get\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.hour) do\n map_devices\nend\nschedule.in(10.seconds) do\n map_devices\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)"}}],"types":[{"html_id":"drivers/KontaktIO/MacAddressMappings/DeviceDetails","path":"KontaktIO/MacAddressMappings/DeviceDetails.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::DeviceDetails","name":"DeviceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alias:String|Nil-instance-method","name":"alias","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L36"},"def":{"name":"alias","return_type":"String | ::Nil","visibility":"Public","body":"@alias"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L37"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings/SearchMeta","path":"KontaktIO/MacAddressMappings/SearchMeta.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::SearchMeta","name":"SearchMeta","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_results:String-instance-method","name":"next_results","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L30"},"def":{"name":"next_results","return_type":"String","visibility":"Public","body":"@next_results"}}]}]},{"html_id":"drivers/KontaktIO/Page","path":"KontaktIO/Page.html","kind":"class","full_name":"KontaktIO::Page","name":"Page","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"number:Int32-instance-method","name":"number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L8"},"def":{"name":"number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @number).nil?\n @number = (0)\nelse\n __temp_1\nend"}},{"html_id":"size:Int32-instance-method","name":"size","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L7"},"def":{"name":"size","return_type":"Int32","visibility":"Public","body":"@size"}},{"html_id":"total_elements:Int32-instance-method","name":"total_elements","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L11"},"def":{"name":"total_elements","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_elements).nil?\n @total_elements = (0)\nelse\n __temp_1\nend"}},{"html_id":"total_pages:Int32-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L14"},"def":{"name":"total_pages","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_pages).nil?\n @total_pages = (0)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Position","path":"KontaktIO/Position.html","kind":"class","full_name":"KontaktIO::Position","name":"Position","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L105"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L106"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L118"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L121"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L115"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"last_update:String|Nil-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L124"},"def":{"name":"last_update","return_type":"String | ::Nil","visibility":"Public","body":"@last_update"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L109"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64|Nil-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L112"},"def":{"name":"room_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_id"}},{"html_id":"x:Int64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L125"},"def":{"name":"x","return_type":"Int64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"y:Int64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L126"},"def":{"name":"y","return_type":"Int64 | ::Nil","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/KontaktIO/Presence","path":"KontaktIO/Presence.html","kind":"class","full_name":"KontaktIO::Presence","name":"Presence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L87"},"def":{"name":"building_id","return_type":"Int64","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L90"},"def":{"name":"building_name","return_type":"String","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L93"},"def":{"name":"campus_id","return_type":"Int64","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L96"},"def":{"name":"campus_name","return_type":"String","visibility":"Public","body":"@campus_name"}},{"html_id":"company_id:String-instance-method","name":"company_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L69"},"def":{"name":"company_id","return_type":"String","visibility":"Public","body":"@company_id"}},{"html_id":"end_time:String-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L102"},"def":{"name":"end_time","return_type":"String","visibility":"Public","body":"@end_time"}},{"html_id":"floor_id:Int64-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L81"},"def":{"name":"floor_id","return_type":"Int64","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L84"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L72"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L78"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L75"},"def":{"name":"room_name","return_type":"String","visibility":"Public","body":"@room_name"}},{"html_id":"start_time:String-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L99"},"def":{"name":"start_time","return_type":"String","visibility":"Public","body":"@start_time"}}]},{"html_id":"drivers/KontaktIO/Response","path":"KontaktIO/Response.html","kind":"class","full_name":"KontaktIO::Response(T)","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Array(T)-instance-method","name":"content","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L20"},"def":{"name":"content","return_type":"Array(T)","visibility":"Public","body":"@content"}},{"html_id":"page:Page|Nil-instance-method","name":"page","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L21"},"def":{"name":"page","return_type":"Page | ::Nil","visibility":"Public","body":"@page"}}]},{"html_id":"drivers/KontaktIO/Room","path":"KontaktIO/Room.html","kind":"class","full_name":"KontaktIO::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor:Floor-instance-method","name":"floor","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L195"},"def":{"name":"floor","return_type":"Floor","visibility":"Public","body":"@floor"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L190"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L191"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_number:Int64|Nil-instance-method","name":"room_number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L198"},"def":{"name":"room_number","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_number"}},{"html_id":"room_sensor_ids:Array(String)-instance-method","name":"room_sensor_ids","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L203"},"def":{"name":"room_sensor_ids","return_type":"Array(String)","visibility":"Public","body":"room_sensors.map(&.tracking_id)"}},{"html_id":"room_sensors:Array(RoomSensor)-instance-method","name":"room_sensors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L201"},"def":{"name":"room_sensors","return_type":"Array(RoomSensor)","visibility":"Public","body":"if (__temp_1 = @room_sensors).nil?\n @room_sensors = ([] of RoomSensor)\nelse\n __temp_1\nend"}},{"html_id":"room_type:String-instance-method","name":"room_type","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L194"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"to_room_occupancy(occupied:Bool,last_update:Time)-instance-method","name":"to_room_occupancy","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(occupied : Bool, last_update : Time)","args_html":"(occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L207"},"def":{"name":"to_room_occupancy","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"RoomOccupancy.new(self, occupied, last_update)"}}]},{"html_id":"drivers/KontaktIO/RoomOccupancy","path":"KontaktIO/RoomOccupancy.html","kind":"struct","full_name":"KontaktIO::RoomOccupancy","name":"RoomOccupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L220"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(room:Room,occupied:Bool,last_update:Time)-class-method","name":"new","abstract":false,"args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(room : Room, occupied : Bool, last_update : Time)","args_html":"(room : Room, occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L223"},"def":{"name":"new","args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(room, occupied, last_update)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L221"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L252"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String|Nil-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L255"},"def":{"name":"building_name","return_type":"String | ::Nil","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L258"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String|Nil-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L261"},"def":{"name":"campus_name","return_type":"String | ::Nil","visibility":"Public","body":"@campus_name"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L246"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String|Nil-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L249"},"def":{"name":"floor_name","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L264"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"occupancy:Int32-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L265"},"def":{"name":"occupancy","return_type":"Int32","visibility":"Public","body":"@occupancy"}},{"html_id":"pir?:Bool-instance-method","name":"pir?","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L267"},"def":{"name":"pir?","return_type":"Bool","visibility":"Public","body":"@pir"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L240"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String|Nil-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L243"},"def":{"name":"room_name","return_type":"String | ::Nil","visibility":"Public","body":"@room_name"}}]},{"html_id":"drivers/KontaktIO/RoomSensor","path":"KontaktIO/RoomSensor.html","kind":"struct","full_name":"KontaktIO::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L212"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L213"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L217"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}}]},{"html_id":"drivers/KontaktIO/RoomSensorDriver","path":"KontaktIO/RoomSensorDriver.html","kind":"class","full_name":"KontaktIO::RoomSensorDriver","name":"RoomSensorDriver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsubscribe_to_sensor\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L76"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nsensor = @space\nif sensor\nelse\n return nil\nend\nif mac == \"kontakt-#{sensor.room_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(sensor, :people_count)\nwhen \"presence\"\n build_sensor_details(sensor, :presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L57"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nsensor = @space\nif sensor\nelse\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac == \"kontakt-#{sensor.room_id}\"\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nbuild_sensors(sensor, sensor_type)\n"}},{"html_id":"space:RoomOccupancy-instance-method","name":"space","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space","return_type":"RoomOccupancy","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"KontaktIO::RoomSensorDriver#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:RoomOccupancy|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space?","return_type":"RoomOccupancy | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/KontaktIO/SensorService","path":"KontaktIO/SensorService.html","kind":"class","full_name":"KontaktIO::SensorService","name":"SensorService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/sensor_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LOCATION","name":"LOCATION","value":"{\"desk\", \"area\"}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L100"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L107"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nfloor_ids = @zone_lookup[zone_id]?\nif floor_ids && floor_ids.size > 0\nelse\n return [] of Nil\nend\nif location && !(LOCATION.includes?(location))\n return [] of Nil\nend\nloc = LOCATION\ncache = @occupancy_cache\ncache.compact_map do |__temp_829|\n room_id, space = __temp_829\n if space.floor_id.in?(floor_ids)\n else\n next\n end\n people_count = space.occupancy\n if @return_empty_spaces || (people_count && people_count > 0)\n if space.pir?\n capacity = 1\n loc_type = loc[1]\n else\n loc_type = loc[0]\n capacity = nil\n end\n if map_id = map_ids[space.room_id]?\n capacity = 1\n loc_type = loc[1]\n else\n map_id = \"room-#{space.room_id}\"\n end\n {location: loc_type, at_location: people_count, map_id: map_id, level: zone_id, building: @floor_mappings[space.floor_id.to_s]?.try(&.[](:building_id)), capacity: capacity, kontakt_io_room: space.room_name}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L90"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L95"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"map_ids:Hash(Int64,String)-instance-method","name":"map_ids","doc":"KIO room id => Map ID","summary":"

KIO room id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L76"},"def":{"name":"map_ids","return_type":"Hash(Int64, String)","visibility":"Public","body":"if (__temp_1 = @map_ids).nil?\n @map_ids = (begin\n ids = {} of Int64 => String\n system_map_ids.each do |sys_id, map_id|\n resp = (staff_api.system_settings(sys_id, \"space_ref_id\")).get\n value = resp.as_s?.try(&.to_i64?) || resp.as_i64?\n if value\n else\n next\n end\n ids[value] = map_id\n end\n ids\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\nlookup = Hash(String, Array(Int64)).new do |hash, key|\n hash[key] = [] of Int64\nend\n@floor_mappings.each do |kontakt_floor_id, zones|\n begin\n kontakt_id = kontakt_floor_id.to_i64\n if building_id = zones[:building_id]\n lookup[building_id] << kontakt_id\n end\n lookup[zones[:level_id]] << kontakt_id\n rescue error\n logger.warn(exception: error) do\n \"invalid floor mapping #{kontakt_floor_id}\"\n end\n end\nend\n@zone_lookup = lookup\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L158"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"kontakt-\"))\n else\n return nil\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\n if room\n else\n return nil\n end\n case id\n when \"people\"\n if room.pir?\n return nil\n end\n build_sensor_details(room, :people_count)\n when \"presence\"\n build_sensor_details(room, :presence)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L180"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"kontakt-\")\n else\n return NO_MATCH\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\nend\nif zone_id\n levels = @zone_lookup[zone_id]?\nend\nrooms = if room\n {room}\nelse\n if levels\n @occupancy_cache.values.select do |r|\n floor_id = r.floor_id\n (floor_id.in?(levels)) || @floor_mappings[floor_id.to_s]?.nil?\n end\n else\n @occupancy_cache.values\n end\nend\nrooms.flat_map do |r|\n build_sensors(r, sensor_type)\nend\n"}},{"html_id":"system_map_ids:Hash(String,String)-instance-method","name":"system_map_ids","doc":"System id => Map ID","summary":"

System id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L64"},"def":{"name":"system_map_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @system_map_ids).nil?\n @system_map_ids = (begin\n building_zone = location_service.building_id.get.as_s\n map_ids = {} of String => String\n staff_api.systems(zone_id: building_zone).get.as_a.each do |sys|\n map_id = sys[\"map_id\"]?.try(&.as_s?)\n if map_id\n else\n next\n end\n map_ids[sys[\"id\"].as_s] = map_id\n end\n map_ids\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Telemetry","path":"KontaktIO/Telemetry.html","kind":"class","full_name":"KontaktIO::Telemetry","name":"Telemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L275"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"number_of_people:Int32|Nil-instance-method","name":"number_of_people","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L281"},"def":{"name":"number_of_people","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_people"}},{"html_id":"seconds_since_motion:Int64|Nil-instance-method","name":"seconds_since_motion","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L278"},"def":{"name":"seconds_since_motion","return_type":"Int64 | ::Nil","visibility":"Public","body":"@seconds_since_motion"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L283"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/KontaktIO/Tracking","path":"KontaktIO/Tracking.html","kind":"class","full_name":"KontaktIO::Tracking","name":"Tracking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contacts:Array(Contact)-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L42"},"def":{"name":"contacts","return_type":"Array(Contact)","visibility":"Public","body":"@contacts"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L44"},"def":{"name":"duration","visibility":"Public","body":"contacts.first.duration_sec"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L40"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L28"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L31"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L37"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}}]}]},{"html_id":"drivers/Kramer","path":"Kramer.html","kind":"module","full_name":"Kramer","name":"Kramer","abstract":false,"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kramer/RC308Panel","path":"Kramer/RC308Panel.html","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\"","doc":"\\r\\n 0D0A","summary":"

\\r\\n 0D0A

"}],"namespace":{"html_id":"drivers/Kramer","kind":"module","full_name":"Kramer","name":"Kramer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"button_state(index:UInt8,light:Bool,red:UInt8|Nil=nil,green:UInt8|Nil=nil,blue:UInt8|Nil=nil)-instance-method","name":"button_state","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"args_string":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","args_html":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L61"},"def":{"name":"button_state","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"visibility":"Public","body":"data = \"#RGB #{index},#{red || @default.red},#{green || @default.green},#{blue || @default.blue},#{light ? '1' : '0'}\\r\"\nsend(data, name: \"button#{index}\")\n"}},{"html_id":"button_state?(index:UInt8,priority:Int32=0)-instance-method","name":"button_state?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(index : UInt8, priority : Int32 = 0)","args_html":"(index : UInt8, priority : Int32 = 0)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L66"},"def":{"name":"button_state?","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(\"#RGB? #{index}\\r\", priority: priority)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(1.minute, true) do\n query_state\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\non_update\n(0..@button_count).each do |idx|\n self[\"button#{idx}_state\"] = ButtonAction::Released\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@default = (setting?(DefaultLight, :default_light)) || (DefaultLight.new(255_u8, 0_u8, 0_u8))\n@button_count = (setting?(UInt8, :button_count)) || 8_u8\n"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L55"},"def":{"name":"query_state","visibility":"Public","body":"(1_u8..@button_count).each do |idx|\n button_state?(idx)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L89"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Kramer sent: #{data.inspect}\"\nend\nparts = (data.split('@', 2))[1].strip.split(' ')\ncomponent = parts[0].upcase\ndetails = parts[1]\nsuccess = parts[2]?\ncase component\nwhen \"BTN\"\n light_on, button_index, button_action = details.split(',')\n self[\"button#{button_index}_light\"] = light_on == \"1\"\n self[\"button#{button_index}_state\"] = ButtonAction.check(button_action)\nwhen \"RGB\"\n button_index, red, green, blue, light_on = details.split(',')\n self[\"button#{button_index}_rgb\"] = {red.to_u8, green.to_u8, blue.to_u8}\n self[\"button#{button_index}_light\"] = light_on == \"1\"\nwhen \"ERR\"\n logger.warn do\n \"request failed with error code: #{details}\"\n end\n return task.try(&.abort(\"error code: #{details}\"))\nelse\n logger.warn do\n \"unknown button component #{component}\"\n end\n return\nend\nif task\n if task.name\n if success\n task.success\n end\n else\n task.success\n end\nend\n"}}],"types":[{"html_id":"drivers/Kramer/RC308Panel/ButtonAction","path":"Kramer/RC308Panel/ButtonAction.html","kind":"enum","full_name":"Kramer::RC308Panel::ButtonAction","name":"ButtonAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L70"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pressed","name":"Pressed","value":"0"},{"id":"Released","name":"Released","value":"1"},{"id":"HeldDown","name":"HeldDown","value":"2"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"class_methods":[{"html_id":"check(type:String)-class-method","name":"check","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L75"},"def":{"name":"check","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"case type.downcase\nwhen \"p\"\n ButtonAction::Pressed\nwhen \"r\"\n ButtonAction::Released\nwhen \"h\"\n ButtonAction::HeldDown\nelse\n raise(\"unknown button action type: #{type}\")\nend"}}],"instance_methods":[{"html_id":"held_down?-instance-method","name":"held_down?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L73"},"def":{"name":"held_down?","visibility":"Public","body":"self == HeldDown"}},{"html_id":"pressed?-instance-method","name":"pressed?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L71"},"def":{"name":"pressed?","visibility":"Public","body":"self == Pressed"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L72"},"def":{"name":"released?","visibility":"Public","body":"self == Released"}}]},{"html_id":"drivers/Kramer/RC308Panel/DefaultLight","path":"Kramer/RC308Panel/DefaultLight.html","kind":"struct","full_name":"Kramer::RC308Panel::DefaultLight","name":"DefaultLight","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"constructors":[{"html_id":"new(red:UInt8,green:UInt8,blue:UInt8)-class-method","name":"new","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"new","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"_ = allocate\n_.initialize(red, green, blue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blue:UInt8-instance-method","name":"blue","abstract":false,"def":{"name":"blue","return_type":"UInt8","visibility":"Public","body":"@blue"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@red.clone, @green.clone, @blue.clone)"}},{"html_id":"copy_with(red_red=@red,green_green=@green,blue_blue=@blue)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"args_string":"(red _red = @red, green _green = @green, blue _blue = @blue)","args_html":"(red _red = @red, green _green = @green, blue _blue = @blue)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"visibility":"Public","body":"self.class.new(_red, _green, _blue)"}},{"html_id":"green:UInt8-instance-method","name":"green","abstract":false,"def":{"name":"green","return_type":"UInt8","visibility":"Public","body":"@green"}},{"html_id":"red:UInt8-instance-method","name":"red","abstract":false,"def":{"name":"red","return_type":"UInt8","visibility":"Public","body":"@red"}}]}]}]},{"html_id":"drivers/Lenel","path":"Lenel.html","kind":"module","full_name":"Lenel","name":"Lenel","abstract":false,"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lenel/OpenAccess","path":"Lenel/OpenAccess.html","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L4"},{"filename":"src/lenel/open_access.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"}],"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"badge_types-instance-method","name":"badge_types","doc":"Query the available badge types.\n\nBadge types contain default configuration that is applied to any badge\ncreated under them. This includes items such as access areas, activation\nwindows and other bulk config. These may then be override on individual\nbadge instances.","summary":"

Query the available badge types.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L114"},"def":{"name":"badge_types","visibility":"Public","body":"client.lookup(BadgeType)"}},{"html_id":"check_comms-instance-method","name":"check_comms","doc":"Test service connectivity.","summary":"

Test service connectivity.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L80"},"def":{"name":"check_comms","visibility":"Public","body":"begin\n logger.debug do\n \"checking service connectivity\"\n end\n if client.token\n client.keepalive\n logger.info do\n \"client online and authenticated\"\n end\n else\n client.version\n logger.warn do\n \"service reachable, no active auth session\"\n end\n authenticate!\n end\nrescue e : OpenAccess::Error\n logger.error do\n e.message\n end\n set_connected_state(false)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"logger.debug do\n \"connected\"\nend\nif client.token.nil?\n authenticate!\nend\n"}},{"html_id":"create_badge(type:Int32,id:Int64,personid:Int32,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"create_badge","doc":"Creates a new badge of the specied *type*, belonging to *personid* with a\nspecific *id*.\n\nNote: 'id' is the physical badge number (e.g. the ID written to an NFC chip)","summary":"

Creates a new badge of the specied type, belonging to personid with a specific id.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L150"},"def":{"name":"create_badge","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"creating badge for cardholder #{personid}\"\nend\nclient.create(Badge, **args)\n"}},{"html_id":"create_badge_epoch(type:Int32,id:Int64,personid:Int32,activate_epoch:Int32,deactivate_epoch:Int32,uselimit:Int32|Nil=nil)-instance-method","name":"create_badge_epoch","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L162"},"def":{"name":"create_badge_epoch","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\ncreate_badge(type: type, id: id, personid: personid, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"create_cardholder(email:String,firstname:String,lastname:String)-instance-method","name":"create_cardholder","doc":"Creates a new cardholder.\n\nAn error will be returned if an existing cardholder exists for the specified\n*email* address.","summary":"

Creates a new cardholder.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"args_string":"(email : String, firstname : String, lastname : String)","args_html":"(email : String, firstname : String, lastname : String)","location":{"filename":"src/lenel/open_access.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L264"},"def":{"name":"create_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"creating cardholder record for #{email}\"\nend\nif (client.count(Cardholder, filter: \"email = \\\"#{email}\\\"\")).zero?\nelse\n raise(ArgumentError.new(\"record already exists for #{email}\"))\nend\nclient.create(Cardholder, **args)\n"}},{"html_id":"delete_badge(badgekey:Int32):Nil-instance-method","name":"delete_badge","doc":"Deletes a badge with the specified *badgekey*.","summary":"

Deletes a badge with the specified badgekey.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32) : Nil","args_html":"(badgekey : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L217"},"def":{"name":"delete_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting badge #{badgekey}\"\nend\nclient.delete(Badge, **args)\n"}},{"html_id":"delete_badges(badgekeys:Array(Int32)):Int32-instance-method","name":"delete_badges","abstract":false,"args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"args_string":"(badgekeys : Array(Int32)) : Int32","args_html":"(badgekeys : Array(Int32)) : Int32","location":{"filename":"src/lenel/open_access.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L222"},"def":{"name":"delete_badges","args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"return_type":"Int32","visibility":"Public","body":"badgekeys.count do |badge_key|\n begin\n delete_badge(badge_key)\n 1\n rescue OpenAccess::Error\n logger.debug do\n \"failed to delete badge #{badge_key}\"\n end\n 0\n end\nend"}},{"html_id":"delete_cardholder(id:Int32):Nil-instance-method","name":"delete_cardholder","doc":"Deletes a cardholed by their person *id*.","summary":"

Deletes a cardholed by their person id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32) : Nil","args_html":"(id : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L278"},"def":{"name":"delete_cardholder","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting cardholder #{id}\"\nend\nclient.delete(Cardholder, **args)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"logger.debug do\n \"disconnected\"\nend\nclient.token = nil\n"}},{"html_id":"list_badges(personid:Int32)-instance-method","name":"list_badges","doc":"List badges belonging to a cardholder","summary":"

List badges belonging to a cardholder

","abstract":false,"args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"args_string":"(personid : Int32)","args_html":"(personid : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L120"},"def":{"name":"list_badges","args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"visibility":"Public","body":"client.lookup(Badge, filter: \"personid = #{personid}\")"}},{"html_id":"list_directories-instance-method","name":"list_directories","doc":"Query the directories available for auth.","summary":"

Query the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L97"},"def":{"name":"list_directories","visibility":"Public","body":"client.directories"}},{"html_id":"list_events(filter:String,page_number:Int32|Nil=nil)-instance-method","name":"list_events","doc":"List Logged Events","summary":"

List Logged Events

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"args_string":"(filter : String, page_number : Int32 | Nil = nil)","args_html":"(filter : String, page_number : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L291"},"def":{"name":"list_events","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"client.get_logged_events(filter, page_number)"}},{"html_id":"list_events_in_range(filter:String,from:Time|Nil=nil,til:Time|Nil=nil)-instance-method","name":"list_events_in_range","doc":"List events that occured during a given time window. Default to past 24h.","summary":"

List events that occured during a given time window.

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"args_string":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","args_html":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L297"},"def":{"name":"list_events_in_range","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"visibility":"Public","body":"til || (til = Time.local)\nfrom || (from = til - 1.day)\nclient.get_logged_events(filter + \" AND timestamp >= \\\"#{from.to_s}\\\" AND timestamp <= \\\"#{til.to_s}\\\"\")\n"}},{"html_id":"lookup_badge_id(id:Int64)-instance-method","name":"lookup_badge_id","doc":"Get badge by id (instead of badgekey)","summary":"

Get badge by id (instead of badgekey)

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/lenel/open_access.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L137"},"def":{"name":"lookup_badge_id","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"id = #{id}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_badge_key(badgekey:Int32)-instance-method","name":"lookup_badge_key","doc":"Get badge by badgekey (instead of id)\nNote: id is the number in the QR data or burnt to the swipe card. badgekey is Lenel's primary key for badges","summary":"

Get badge by badgekey (instead of id) Note: id is the number in the QR data or burnt to the swipe card.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32)","args_html":"(badgekey : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L127"},"def":{"name":"lookup_badge_key","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"badgekey = #{badgekey}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{badgekey}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_cardholder(email:String)-instance-method","name":"lookup_cardholder","doc":"Lookup a cardholder by *email* address.","summary":"

Lookup a cardholder by email address.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L236"},"def":{"name":"lookup_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{email}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholder_id(id:Int32)-instance-method","name":"lookup_cardholder_id","doc":"Lookup a cardholder by ID","summary":"

Lookup a cardholder by ID

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L251"},"def":{"name":"lookup_cardholder_id","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"id = #{id}\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholders(email:String)-instance-method","name":"lookup_cardholders","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L245"},"def":{"name":"lookup_cardholders","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L35"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(5.minutes, &->check_comms)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"logger.debug do\n \"settings updated\"\nend\nclient.app_id = setting(String, :application_id)\nauthenticate!\n"}},{"html_id":"search(type_name:String,filter:String|Nil=nil)-instance-method","name":"search","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L308"},"def":{"name":"search","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"client.raw_lookup(type_name, filter)"}},{"html_id":"search_readers(filter:String)-instance-method","name":"search_readers","doc":"List card readers matching a given filter","summary":"

List card readers matching a given filter

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/lenel/open_access.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L285"},"def":{"name":"search_readers","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"client.lookup(Reader, filter)"}},{"html_id":"update_badge(badgekey:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"update_badge","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L184"},"def":{"name":"update_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"Updating badge #{badgekey}\"\nend\nclient.update(Badge, **args)\n"}},{"html_id":"update_badge_epoch(badgekey:Int32,activate_epoch:Int32,deactivate_epoch:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil)-instance-method","name":"update_badge_epoch","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","args_html":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L196"},"def":{"name":"update_badge_epoch","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\nupdate_badge(badgekey: badgekey, id: id, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L103"},"def":{"name":"version","visibility":"Public","body":"client.version"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Client","path":"Lenel/OpenAccess/Client.html","kind":"class","full_name":"Lenel::OpenAccess::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/client.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"Lenel OpenAccess API wrapper.\n\nProvides thin abstractions over API endpoints. Requests are executed on the\npased transport. This can be a `PlaceOS::Driver`, `HTTP::Client` or other type\nsupporting the same set of base HTTP request methods.","summary":"

Lenel OpenAccess API wrapper.

","constructors":[{"html_id":"new(transport:HTTP::Client,app_id:String)-class-method","name":"new","abstract":false,"args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"args_string":"(transport : HTTP::Client, app_id : String)","args_html":"(transport : HTTP::Client, app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L22"},"def":{"name":"new","args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(transport, app_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"app_id:String-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id","return_type":"String","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:String)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"args_string":"(app_id : String)","args_html":"(app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"count(entitytype_name:T.class,filter:String|Nil=nil)forallT-instance-method","name":"count","doc":"Counts the number of instances of *entity*.\n\n*filter* may optionally be used to specify a subset of these.","summary":"

Counts the number of instances of entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L152"},"def":{"name":"count","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.encode(args.merge(type_name: T.type_name))\n((~transport.get(path: \"/count?version=1.0&#{params}\")) >> NamedTuple(total_items: Int32))[:total_items]\n"}},{"html_id":"create(entity:T.class,**props)forallT-instance-method","name":"create","doc":"Creates a new instance of *entity*.\n\nAPI create responses return a partial object, which is provided here as an\nuntyped return. This includes the object's database key (which varies\nbetween object types - ID, BADGEKEY etc), however contents of this is\nunspecified. The partial object is provided here, in full, with keys\ntransformed to match how they appear in a type-safe model.","summary":"

Creates a new instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) forall T","args_html":"(entity : T.class, **props) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L94"},"def":{"name":"create","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"visibility":"Public","body":"(~transport.post(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> Models::Untyped"}},{"html_id":"delete(entity:T.class,**props):NilforallT-instance-method","name":"delete","doc":"Deletes an instance of *entity*.","summary":"

Deletes an instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : Nil forall T","args_html":"(entity : T.class, **props) : Nil forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L172"},"def":{"name":"delete","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)"}},{"html_id":"directories-instance-method","name":"directories","doc":"Enumerates the directories available for auth.","summary":"

Enumerates the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L49"},"def":{"name":"directories","visibility":"Public","body":"((~transport.get(path: \"/directories?version=1.0\")) >> NamedTuple(total_items: Int32, item_list: Array(::NamedTuple(property_value_map: ::NamedTuple(ID: String, Name: String, directory_type: Int32)))))[:item_list].map do |item|\n item[:property_value_map]\nend"}},{"html_id":"get_logged_events(filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"get_logged_events","doc":"Retrieve a list of logged events from Onguard\nSee Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events","summary":"

Retrieve a list of logged events from Onguard See Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events

","abstract":false,"args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L184"},"def":{"name":"get_logged_events","args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/logged_events?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"keepalive:Nil-instance-method","name":"keepalive","doc":"Request a connection keepalive to prevent session timeout.","summary":"

Request a connection keepalive to prevent session timeout.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L81"},"def":{"name":"keepalive","return_type":"Nil","visibility":"Public","body":"~transport.get(path: \"/keepalive?version=1.0\")"}},{"html_id":"login(usernameuser_name:String,password:String,directory_id:String|Nil)-instance-method","name":"login","doc":"Creates a new auth session.","summary":"

Creates a new auth session.

","abstract":false,"args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"args_string":"(username user_name : String, password : String, directory_id : String | Nil)","args_html":"(username user_name : String, password : String, directory_id : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L59"},"def":{"name":"login","args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"(~transport.post(path: \"/authentication?version=1.0\", body: args.to_h.compact.to_json)) >> NamedTuple(session_token: String, token_expiration_time: Time)"}},{"html_id":"logout:Nil-instance-method","name":"logout","doc":"Removes an auth session.","summary":"

Removes an auth session.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L74"},"def":{"name":"logout","return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/authentication?version=1.0\")"}},{"html_id":"lookup(entitytype_name:T.class,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=nil,order_by:String|Nil=nil):Array(T)forallT-instance-method","name":"lookup","doc":"Retrieves instances of a particular *entity*.\n\nThe search criteria specified in *filter* is a subset of SQL. This supports\noperations such as as:\n+ exclusion `LastName != \"Lake\"`\n+ wildcards `LastName like \"La%\"`\n+ boolean operators `LastName = \"Lake\" OR FirstName = \"Lisa\"`","summary":"

Retrieves instances of a particular entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L111"},"def":{"name":"lookup","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"return_type":"Array(T)","visibility":"Public","body":"params = HTTP::Params.new\nargs.merge(type_name: T.type_name).each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val)\n end\nend\n((~transport.get(path: \"/instances?version=1.0&#{params}\")) >> NamedTuple(page_number: Int32 | ::Nil, page_size: Int32 | ::Nil, total_pages: Int32, total_items: Int32, count: Int32, item_list: Array(T)))[:item_list]\n"}},{"html_id":"raw_lookup(type_name:String,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"raw_lookup","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L134"},"def":{"name":"raw_lookup","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/instances?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L20"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String|Nil)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"args_string":"(token : String | Nil)","args_html":"(token : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L20"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"visibility":"Public","body":"@token = token"}},{"html_id":"update(entity:T.class,**props):TforallT-instance-method","name":"update","doc":"Updates a record of *entity*. Passed properties must include the types key and\nany fields to update.","summary":"

Updates a record of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : T forall T","args_html":"(entity : T.class, **props) : T forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L161"},"def":{"name":"update","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"T","visibility":"Public","body":"(~transport.put(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> T"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L39"},"def":{"name":"version","visibility":"Public","body":"(~transport.get(path: \"/version?version=1.0\")) >> NamedTuple(product_name: String, product_version: String)"}}]},{"html_id":"drivers/Lenel/OpenAccess/Error","path":"Lenel/OpenAccess/Error.html","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"class_methods":[{"html_id":"from_response(response)-class-method","name":"from_response","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/lenel/open_access/error.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L6"},"def":{"name":"from_response","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"begin\n error = Error::Info.from_json(response.body)\n new(**error[:error])\nrescue\n new(response.status.to_s)\nend"}}],"constructors":[{"html_id":"new(code:String,message:String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(code : String, message : String | Nil = nil)","args_html":"(code : String, message : String | Nil = nil)","location":{"filename":"src/lenel/open_access/error.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L17"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"code:String-instance-method","name":"code","abstract":false,"location":{"filename":"src/lenel/open_access/error.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L15"},"def":{"name":"code","visibility":"Public","body":"@code"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Error/Info","path":"Lenel/OpenAccess/Error/Info.html","kind":"alias","full_name":"Lenel::OpenAccess::Error::Info","name":"Info","abstract":false,"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(error: NamedTuple(code: String, message: String | Nil))","aliased_html":"{error: {code: String, message: String?}}","const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Error","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models","path":"Lenel/OpenAccess/Models.html","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROPERTIES_KEY","name":"PROPERTIES_KEY","value":"\"property_value_map\""}],"including_types":[{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"DTO's for OpenAccess entities.\n\nThese are intentionally lightweight. In cases where a entity holds a\nrelationship to another, these are _not_ auto-resolved. Original ID references\nare kept in place. Types here a simply a thin wrapper for JSON serialization.","summary":"

DTO's for OpenAccess entities.

","types":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","path":"Lenel/OpenAccess/Models/Badge.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activate:Time|Nil-instance-method","name":"activate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L134"},"def":{"name":"activate","return_type":"Time | ::Nil","visibility":"Public","body":"@activate"}},{"html_id":"badgekey:Int32-instance-method","name":"badgekey","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L131"},"def":{"name":"badgekey","return_type":"Int32","visibility":"Public","body":"@badgekey"}},{"html_id":"deactivate:Time|Nil-instance-method","name":"deactivate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L137"},"def":{"name":"deactivate","return_type":"Time | ::Nil","visibility":"Public","body":"@deactivate"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L139"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"personid:Int32|Nil-instance-method","name":"personid","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L140"},"def":{"name":"personid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@personid"}},{"html_id":"status:Int32|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L141"},"def":{"name":"status","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"type:Int32|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L142"},"def":{"name":"type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"uselimit:Int32|Nil-instance-method","name":"uselimit","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L143"},"def":{"name":"uselimit","return_type":"Int32 | ::Nil","visibility":"Public","body":"@uselimit"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","path":"Lenel/OpenAccess/Models/BadgeType.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L146"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L146"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"badgetypeclass:BadgeTypeClass-instance-method","name":"badgetypeclass","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L156"},"def":{"name":"badgetypeclass","return_type":"BadgeTypeClass","visibility":"Public","body":"@badgetypeclass"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L154"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L155"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"usemobilecredential:Bool-instance-method","name":"usemobilecredential","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L157"},"def":{"name":"usemobilecredential","return_type":"Bool","visibility":"Public","body":"@usemobilecredential"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass","path":"Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html","kind":"enum","full_name":"Lenel::OpenAccess::Models::BadgeType::BadgeTypeClass","name":"BadgeTypeClass","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L147"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Standard","name":"Standard","value":"0"},{"id":"Temporary","name":"Temporary","value":"1"},{"id":"Visitor","name":"Visitor","value":"2"},{"id":"Guest","name":"Guest","value":"3"},{"id":"SpecialPurpose","name":"SpecialPurpose","value":"4"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},"instance_methods":[{"html_id":"guest?-instance-method","name":"guest?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L151"},"def":{"name":"guest?","visibility":"Public","body":"self == Guest"}},{"html_id":"special_purpose?-instance-method","name":"special_purpose?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L152"},"def":{"name":"special_purpose?","visibility":"Public","body":"self == SpecialPurpose"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L148"},"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}},{"html_id":"temporary?-instance-method","name":"temporary?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L149"},"def":{"name":"temporary?","visibility":"Public","body":"self == Temporary"}},{"html_id":"visitor?-instance-method","name":"visitor?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L150"},"def":{"name":"visitor?","visibility":"Public","body":"self == Visitor"}}]}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","path":"Lenel/OpenAccess/Models/Cardholder.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L160"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L160"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L161"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","path":"Lenel/OpenAccess/Models/Element.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge"},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event"},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader"},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"doc":"Base type for Lenel data objects.","summary":"

Base type for Lenel data objects.

","class_methods":[{"html_id":"partial(**properties:**T):TforallT-class-method","name":"partial","doc":"Provide a compile-time check to ensure *properties* is a subset of *self*.","summary":"

Provide a compile-time check to ensure properties is a subset of self.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L74"},"def":{"name":"partial","double_splat":{"name":"properties","external_name":"properties","restriction":"**T"},"return_type":"T","visibility":"Public","body":"{% for key in T.keys %}\n {% unless @type.has_method?(key)\n raise(\"no \\\"#{key}\\\" property on #{@type.name}\")\nend %}\n {% end %}\nproperties\n"}},{"html_id":"type_name-class-method","name":"type_name","doc":"Name of the type as expected by the OpenAccess API endpoints.","summary":"

Name of the type as expected by the OpenAccess API endpoints.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L23"},"def":{"name":"type_name","visibility":"Public","body":"\"Lnl_#{(name.rpartition(\"::\")).last}\""}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(*,__pull_for_json_serializablepull:JSON::PullParser)-class-method","name":"new","doc":"Override the default JSON::Serializable behaviour to make keys case\ninensitive when deserialising.","summary":"

Override the default JSON::Serializable behaviour to make keys case inensitive when deserialising.

","abstract":false,"args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"args_string":"(*, __pull_for_json_serializable pull : JSON::PullParser)","args_html":"(*, __pull_for_json_serializable pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L36"},"def":{"name":"new","args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"splat_index":0,"visibility":"Public","body":"_ = allocate\n_.initialize(__pull_for_json_serializable: pull)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","path":"Lenel/OpenAccess/Models/Event.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_result:Int32|Nil-instance-method","name":"access_result","doc":"getter alarm_priority : Int32?\ngetter alarm_ack_blue_channel : Int32?\ngetter alarm_ack_green_channel : Int32?\ngetter alarm_ack_red_channel : Int32?\ngetter alarm_blue_channel : Int32?\ngetter alarm_green_channel : Int32?\ngetter alarm_red_channel : Int32?","summary":"

getter alarm_priority : Int32? getter alarm_ack_blue_channel : Int32? getter alarm_ack_green_channel : Int32? getter alarm_ack_red_channel : Int32? getter alarm_blue_channel : Int32? getter alarm_green_channel : Int32? getter alarm_red_channel : Int32?

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L111"},"def":{"name":"access_result","return_type":"Int32 | ::Nil","visibility":"Public","body":"@access_result"}},{"html_id":"asset_id:Int32|Nil-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L102"},"def":{"name":"asset_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@asset_id"}},{"html_id":"badge_extended_id:String|Nil-instance-method","name":"badge_extended_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L100"},"def":{"name":"badge_extended_id","return_type":"String | ::Nil","visibility":"Public","body":"@badge_extended_id"}},{"html_id":"badge_id:Int32|Nil-instance-method","name":"badge_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L98"},"def":{"name":"badge_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_id"}},{"html_id":"badge_id_str:String|Nil-instance-method","name":"badge_id_str","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L99"},"def":{"name":"badge_id_str","return_type":"String | ::Nil","visibility":"Public","body":"@badge_id_str"}},{"html_id":"badge_issue_code:Int32|Nil-instance-method","name":"badge_issue_code","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L101"},"def":{"name":"badge_issue_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_issue_code"}},{"html_id":"cardholder_entered:Bool|Nil-instance-method","name":"cardholder_entered","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L112"},"def":{"name":"cardholder_entered","return_type":"Bool | ::Nil","visibility":"Public","body":"@cardholder_entered"}},{"html_id":"cardholder_first_name:String|Nil-instance-method","name":"cardholder_first_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L116"},"def":{"name":"cardholder_first_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_first_name"}},{"html_id":"cardholder_key:Int32|Nil-instance-method","name":"cardholder_key","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L103"},"def":{"name":"cardholder_key","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cardholder_key"}},{"html_id":"cardholder_last_name:String|Nil-instance-method","name":"cardholder_last_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L117"},"def":{"name":"cardholder_last_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_last_name"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L91"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_name:String|Nil-instance-method","name":"controller_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L114"},"def":{"name":"controller_name","return_type":"String | ::Nil","visibility":"Public","body":"@controller_name"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L90"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"device_id:Int32-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L92"},"def":{"name":"device_id","return_type":"Int32","visibility":"Public","body":"@device_id"}},{"html_id":"device_name:String|Nil-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L118"},"def":{"name":"device_name","return_type":"String | ::Nil","visibility":"Public","body":"@device_name"}},{"html_id":"duress:Bool|Nil-instance-method","name":"duress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L113"},"def":{"name":"duress","return_type":"Bool | ::Nil","visibility":"Public","body":"@duress"}},{"html_id":"event_source_name:String|Nil-instance-method","name":"event_source_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L115"},"def":{"name":"event_source_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_source_name"}},{"html_id":"event_subtype:Int32|Nil-instance-method","name":"event_subtype","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L96"},"def":{"name":"event_subtype","return_type":"Int32 | ::Nil","visibility":"Public","body":"@event_subtype"}},{"html_id":"event_text:String|Nil-instance-method","name":"event_text","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L97"},"def":{"name":"event_text","return_type":"String | ::Nil","visibility":"Public","body":"@event_text"}},{"html_id":"event_type:Int32-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L95"},"def":{"name":"event_type","return_type":"Int32","visibility":"Public","body":"@event_type"}},{"html_id":"segment_id:Int32|Nil-instance-method","name":"segment_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L94"},"def":{"name":"segment_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@segment_id"}},{"html_id":"serial_number:Int32|Nil-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L88"},"def":{"name":"serial_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@serial_number"}},{"html_id":"subdevice_id:Int32|Nil-instance-method","name":"subdevice_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L93"},"def":{"name":"subdevice_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@subdevice_id"}},{"html_id":"subdevice_name:String|Nil-instance-method","name":"subdevice_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L119"},"def":{"name":"subdevice_name","return_type":"String | ::Nil","visibility":"Public","body":"@subdevice_name"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L89"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","path":"Lenel/OpenAccess/Models/Person.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person","abstract":true,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L124"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L124"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firstname:String|Nil-instance-method","name":"firstname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L126"},"def":{"name":"firstname","return_type":"String | ::Nil","visibility":"Public","body":"@firstname"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L125"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"lastname:String|Nil-instance-method","name":"lastname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L127"},"def":{"name":"lastname","return_type":"String | ::Nil","visibility":"Public","body":"@lastname"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","path":"Lenel/OpenAccess/Models/Reader.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L164"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L164"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accessMode:Int32|Nil-instance-method","name":"accessMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L165"},"def":{"name":"accessMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@accessMode"}},{"html_id":"address:Int32|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L166"},"def":{"name":"address","return_type":"Int32 | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"aux1Name:String|Nil-instance-method","name":"aux1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L182"},"def":{"name":"aux1Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux1Name"}},{"html_id":"aux2Name:String|Nil-instance-method","name":"aux2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L183"},"def":{"name":"aux2Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux2Name"}},{"html_id":"aux3Name:String|Nil-instance-method","name":"aux3Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L184"},"def":{"name":"aux3Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux3Name"}},{"html_id":"controlType:Int32|Nil-instance-method","name":"controlType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L167"},"def":{"name":"controlType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controlType"}},{"html_id":"extendedOpenTime:Int32|Nil-instance-method","name":"extendedOpenTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L168"},"def":{"name":"extendedOpenTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedOpenTime"}},{"html_id":"extendedStrikeTime:Int32|Nil-instance-method","name":"extendedStrikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L169"},"def":{"name":"extendedStrikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedStrikeTime"}},{"html_id":"friendlyName:String|Nil-instance-method","name":"friendlyName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L185"},"def":{"name":"friendlyName","return_type":"String | ::Nil","visibility":"Public","body":"@friendlyName"}},{"html_id":"gatewayAddress:Int32|Nil-instance-method","name":"gatewayAddress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L170"},"def":{"name":"gatewayAddress","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayAddress"}},{"html_id":"gatewayHostName:String|Nil-instance-method","name":"gatewayHostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L186"},"def":{"name":"gatewayHostName","return_type":"String | ::Nil","visibility":"Public","body":"@gatewayHostName"}},{"html_id":"gatewayIPPort:Int32|Nil-instance-method","name":"gatewayIPPort","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L171"},"def":{"name":"gatewayIPPort","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayIPPort"}},{"html_id":"hostName:String|Nil-instance-method","name":"hostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L187"},"def":{"name":"hostName","return_type":"String | ::Nil","visibility":"Public","body":"@hostName"}},{"html_id":"isPairedMaster:Bool|Nil-instance-method","name":"isPairedMaster","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L192"},"def":{"name":"isPairedMaster","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedMaster"}},{"html_id":"isPairedSlave:Bool|Nil-instance-method","name":"isPairedSlave","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L193"},"def":{"name":"isPairedSlave","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedSlave"}},{"html_id":"mode:Int32|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L173"},"def":{"name":"mode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L188"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"offlineMode:Int32|Nil-instance-method","name":"offlineMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L172"},"def":{"name":"offlineMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@offlineMode"}},{"html_id":"openTime:Int32|Nil-instance-method","name":"openTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L174"},"def":{"name":"openTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@openTime"}},{"html_id":"out1Name:String|Nil-instance-method","name":"out1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L189"},"def":{"name":"out1Name","return_type":"String | ::Nil","visibility":"Public","body":"@out1Name"}},{"html_id":"out2Name:String|Nil-instance-method","name":"out2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L190"},"def":{"name":"out2Name","return_type":"String | ::Nil","visibility":"Public","body":"@out2Name"}},{"html_id":"panelID:Int32|Nil-instance-method","name":"panelID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L175"},"def":{"name":"panelID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@panelID"}},{"html_id":"panelTypeName:String|Nil-instance-method","name":"panelTypeName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L191"},"def":{"name":"panelTypeName","return_type":"String | ::Nil","visibility":"Public","body":"@panelTypeName"}},{"html_id":"portNumber:Int32|Nil-instance-method","name":"portNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L176"},"def":{"name":"portNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@portNumber"}},{"html_id":"readerID:Int32|Nil-instance-method","name":"readerID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L177"},"def":{"name":"readerID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerID"}},{"html_id":"readerNumber:Int32|Nil-instance-method","name":"readerNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L178"},"def":{"name":"readerNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerNumber"}},{"html_id":"slaveID:Int32|Nil-instance-method","name":"slaveID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L179"},"def":{"name":"slaveID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@slaveID"}},{"html_id":"strikeTime:Int32|Nil-instance-method","name":"strikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L180"},"def":{"name":"strikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@strikeTime"}},{"html_id":"timeAttendanceType:Int32|Nil-instance-method","name":"timeAttendanceType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L181"},"def":{"name":"timeAttendanceType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@timeAttendanceType"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","path":"Lenel/OpenAccess/Models/Untyped.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/lenel/open_access/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L84"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" json_unmapped.\n{{ call }}\n\n \n"}}]}]}]},{"html_id":"drivers/Lenel/TimeConverter","path":"Lenel/TimeConverter.html","kind":"module","full_name":"Lenel::TimeConverter","name":"TimeConverter","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"doc":"Ensure that UTC time strings provide the offset as \"+00:00\" instead of \"Z\", as required by Openaccess","summary":"

Ensure that UTC time strings provide the offset as "+00:00" instead of "Z", as required by Openaccess

","class_methods":[{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/lenel/open_access/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L5"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%FT%T%:z\"))"}}]}]},{"html_id":"drivers/Leviton","path":"Leviton.html","kind":"module","full_name":"Leviton","name":"Leviton","abstract":false,"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Leviton/Acquisuite","path":"Leviton/Acquisuite.html","kind":"class","full_name":"Leviton::Acquisuite","name":"Acquisuite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Leviton","kind":"module","full_name":"Leviton","name":"Leviton"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_list:Hash(String,{String,String})-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L148"},"def":{"name":"device_list","visibility":"Public","body":"@device_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@device_list = setting(Hash(String, Tuple(String, String)), :device_list)\n@manifest_list = setting(Array(String), :manifest_list)\n@config_list = setting(Hash(String, Array(Hash(String, Float64 | String | Nil))), :config_list)\n"}},{"html_id":"receive_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"receive_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/leviton/acquisuite.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L31"},"def":{"name":"receive_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n if @debug_webhook\n logger.warn do\n ((\"Received Webhook\\n\" + \"Method: #{method.inspect}\\n\") + \"Headers:\\n#{headers.inspect}\\n\") + \"Body:\\n#{body.inspect}\"\n end\n end\n decoded = Base64.decode_string(body)\n case method.downcase\n when \"post\"\n new_headers = HTTP::Headers.new\n headers.each do |k, v|\n new_headers[k] = v\n end\n request = HTTP::Request.new(\"POST\", \"/request\", new_headers, decoded)\n files, form_data = ActionController::BodyParser.extract_form_data(request, \"multipart/form-data\", request.query_params)\n form_data = form_data.not_nil!\n case form_data[\"MODE\"]\n when \"STATUS\"\n return {HTTP::Status::OK.to_i, {} of String => String, \"SUCCESS\"}\n when \"CONFIGFILEMANIFEST\"\n return {HTTP::Status::OK.to_i, {} of String => String, device_to_manifest.join(\"\\n\")}\n when \"CONFIGFILEUPLOAD\"\n files = files.not_nil!\n return config_file_upload(files, form_data)\n when \"LOGFILEUPLOAD\"\n files = files.not_nil!\n return log_file_upload(files, form_data)\n else\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: Invalid mode passed. Either STATUS, CONFIGFILEMANIFEST, CONFIGFILEUPLOAD or LOGFILEUPLOAD required. Got #{form_data[\"MODE\"]}\"}\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request: #{body.inspect}\"\n end\n self[:last_error] = error.inspect_with_backtrace\n self[:error_payload] = body\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: #{error.message.to_s}\"}\nend"}}]}]},{"html_id":"drivers/Lg","path":"Lg.html","kind":"module","full_name":"Lg","name":"Lg","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lg/Displays","path":"Lg/Displays.html","kind":"module","full_name":"Lg::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lg","kind":"module","full_name":"Lg","name":"Lg"},"types":[{"html_id":"drivers/Lg/Displays/Ls5","path":"Lg/Displays/Ls5.html","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"120_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Lg/Displays","kind":"module","full_name":"Lg::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(ratio:Ratio)-instance-method","name":"aspect_ratio","abstract":false,"args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"args_string":"(ratio : Ratio)","args_html":"(ratio : Ratio)","location":{"filename":"src/lg/displays/ls5.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L143"},"def":{"name":"aspect_ratio","args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"visibility":"Public","body":"do_send(Command::AspectRatio, ratio.value, name: \"aspect_ratio\", delay: 1.second)"}},{"html_id":"aspect_ratio?(priority:Int32=0)-instance-method","name":"aspect_ratio?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"aspect_ratio?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AspectRatio, 255, priority: priority, name: \"aspect_ratio\" + \"_status\")"}},{"html_id":"auto_off(state:Bool=false)-instance-method","name":"auto_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L211"},"def":{"name":"auto_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::AutoOff, val, 'm', name: \"disable_auto_off\")\n"}},{"html_id":"auto_off?(priority:Int32=0)-instance-method","name":"auto_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"auto_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AutoOff, 255, priority: priority, name: \"auto_off\" + \"_status\")"}},{"html_id":"brightness(value:Float64|Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Brightness, val, name: \"brightness\")\n"}},{"html_id":"brightness?(priority:Int32=0)-instance-method","name":"brightness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"brightness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Brightness, 255, priority: priority, name: \"brightness\" + \"_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nself[:connected] = true\nwake_on_lan\nno_signal_off\nauto_off\nlocal_button_lock\npm_mode\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Float64|Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Contrast, val, name: \"contrast\")\n"}},{"html_id":"contrast?(priority:Int32=0)-instance-method","name":"contrast?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"contrast?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Contrast, 255, priority: priority, name: \"contrast\" + \"_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L69"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nself[:connected] = false\nschedule.clear\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"if @rs232\n power?\n if self[:hard_power]?.try(&.as_bool)\n screen_mute?\n input?\n volume_mute?\n volume?\n end\nelse\n if @connected\n screen_mute?\n if @id_num == 1\n input?\n volume_mute?\n volume?\n end\n else\n if self[:power_target]?.try(&.as_bool)\n power(true)\n end\n end\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L111"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::Power, 0, name: \"power\", priority: 99, clear_queue: true)"}},{"html_id":"input?(priority:Int32=0)-instance-method","name":"input?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L169"},"def":{"name":"input?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Input, 255, 'x', priority: priority)"}},{"html_id":"local_button_lock(state:Bool=true)-instance-method","name":"local_button_lock","doc":"0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons. Default to 2 as power off from local button results in network offline","summary":"

0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L206"},"def":{"name":"local_button_lock","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 2 : 0\ndo_send(Command::LocalButtonLock, val, 't', name: \"local_button_lock\")\n"}},{"html_id":"local_button_lock?(priority:Int32=0)-instance-method","name":"local_button_lock?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"local_button_lock?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::LocalButtonLock, 255, priority: priority, name: \"local_button_lock\" + \"_status\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/lg/displays/ls5.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L119"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n do_send(Command::ScreenMute, state ? 1 : 0, name: \"mute_video\")\nend\nif (layer.audio? || layer.audio_video?) && ((self[:audio_mute]?.try(&.as_bool)) != state)\n do_send(Command::VolumeMute, state ? 0 : 1, name: \"mute_audio\")\nend\nstate\n"}},{"html_id":"no_signal_off(state:Bool=false)-instance-method","name":"no_signal_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L199"},"def":{"name":"no_signal_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ncommand = build_command(Command::NoSignalOff, val, 'f')\nsend(command, name: \"no_signal_off\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"no_signal_off?(priority:Int32=0)-instance-method","name":"no_signal_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"no_signal_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::NoSignalOff, 255, priority: priority, name: \"no_signal_off\" + \"_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 150.milliseconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@rs232 = setting(Bool, :rs232_control)\n@id_num = setting(Int32, :display_id)\n@id = @id_num.to_s.rjust(2, '0')\n"}},{"html_id":"pm_mode(mode:Int32=3)-instance-method","name":"pm_mode","abstract":false,"args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"args_string":"(mode : Int32 = 3)","args_html":"(mode : Int32 = 3)","location":{"filename":"src/lg/displays/ls5.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L194"},"def":{"name":"pm_mode","args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"visibility":"Public","body":"command = build_command(Command::PmMode, mode, 's')\nsend(command, name: \"pm_mode\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"pm_mode?(priority:Int32=0)-instance-method","name":"pm_mode?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"pm_mode?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::PmMode, 255, priority: priority, name: \"pm_mode\" + \"_status\")"}},{"html_id":"power(state:Bool,broadcast:String|Nil=nil)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(state : Bool, broadcast : String | Nil = nil)","args_html":"(state : Bool, broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L98"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if state\n if @rs232\n do_send(Command::Power, 1, name: \"power\", priority: 99)\n else\n wake(broadcast || @last_broadcast)\n end\nend\nif @connected\n mute(!state)\nend\n"}},{"html_id":"power?(priority:Int32=0)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Power, 255, priority: priority, name: \"power\" + \"_status\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lg/displays/ls5.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L253"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if (resp_value = get_response_value(data)) == -1\n return task.try(&.abort)\nend\ncommand = Command.from_value(data[0])\nlogger.debug do\n \"Received command #{command}\"\nend\ncase command\nwhen .power?\n self[:hard_power] = resp_value == 1\n if self[:hard_power].as_bool\n else\n self[:power] = false\n end\nwhen .input?\n self[:input] = Input.from_value(resp_value)\nwhen .aspect_ratio?\n self[:aspect_ratio] = Ratio.from_value(resp_value)\nwhen .screen_mute?\n self[:power] = resp_value == 0\nwhen .volume_mute?\n self[:audio_mute] = resp_value == 0\nwhen .contrast?, .brightness?, .sharpness?, .volume?\n self[command.to_s.underscore] = resp_value\nwhen .wake_on_lan?, .auto_off?\n self[command.to_s.underscore] = resp_value == 1\nwhen .local_button_lock?\n self[:local_button_lock] = resp_value == 2\nelse\n return task.try(&.retry)\nend\ntask.try(&.success)\n"}},{"html_id":"screen_mute?(priority:Int32=0)-instance-method","name":"screen_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"screen_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::ScreenMute, 255, priority: priority, name: \"screen_mute\" + \"_status\")"}},{"html_id":"sharpness(value:Float64|Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Sharpness, val, name: \"sharpness\")\n"}},{"html_id":"sharpness?(priority:Int32=0)-instance-method","name":"sharpness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"sharpness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Sharpness, 255, priority: priority, name: \"sharpness\" + \"_status\")"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/lg/displays/ls5.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L115"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Input, input.value, 'x', name: \"input\", delay: 2.seconds)"}},{"html_id":"volume(value:Float64|Int32)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, val, name: \"volume\")\n"}},{"html_id":"volume?(priority:Int32=0)-instance-method","name":"volume?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Volume, 255, priority: priority, name: \"volume\" + \"_status\")"}},{"html_id":"volume_mute?(priority:Int32=0)-instance-method","name":"volume_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::VolumeMute, 255, priority: priority, name: \"volume_mute\" + \"_status\")"}},{"html_id":"wake(broadcast:String|Nil=nil)-instance-method","name":"wake","abstract":false,"args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(broadcast : String | Nil = nil)","args_html":"(broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L221"},"def":{"name":"wake","args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if mac = setting?(String, :mac_address)\n wake_device(mac, broadcast)\n logger.debug do\n info = \"Wake on Lan for MAC #{mac}\"\n if b = broadcast\n info = info + \" directed to VLAN #{b}\"\n end\n info\n end\nelse\n logger.warn do\n \"No MAC address provided\"\n end\nend"}},{"html_id":"wake_on_lan(state:Bool=true)-instance-method","name":"wake_on_lan","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L216"},"def":{"name":"wake_on_lan","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::WakeOnLan, val, 'f', name: \"enable_wake_on_lan\")\n"}},{"html_id":"wake_on_lan?(priority:Int32=0)-instance-method","name":"wake_on_lan?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"wake_on_lan?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::WakeOnLan, 255, priority: priority, name: \"wake_on_lan\" + \"_status\")"}}],"types":[{"html_id":"drivers/Lg/Displays/Ls5/Command","path":"Lg/Displays/Ls5/Command.html","kind":"enum","full_name":"Lg::Displays::Ls5::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"97"},{"id":"Input","name":"Input","value":"98"},{"id":"AspectRatio","name":"AspectRatio","value":"99"},{"id":"ScreenMute","name":"ScreenMute","value":"100"},{"id":"VolumeMute","name":"VolumeMute","value":"101"},{"id":"Volume","name":"Volume","value":"102"},{"id":"Contrast","name":"Contrast","value":"103"},{"id":"Brightness","name":"Brightness","value":"104"},{"id":"Sharpness","name":"Sharpness","value":"107"},{"id":"AutoOff","name":"AutoOff","value":"110"},{"id":"LocalButtonLock","name":"LocalButtonLock","value":"111"},{"id":"WakeOnLan","name":"WakeOnLan","value":"119"},{"id":"NoSignalOff","name":"NoSignalOff","value":"103"},{"id":"PmMode","name":"PmMode","value":"110"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"aspect_ratio?-instance-method","name":"aspect_ratio?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L78"},"def":{"name":"aspect_ratio?","visibility":"Public","body":"self == AspectRatio"}},{"html_id":"auto_off?-instance-method","name":"auto_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L85"},"def":{"name":"auto_off?","visibility":"Public","body":"self == AutoOff"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L83"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L82"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"local_button_lock?-instance-method","name":"local_button_lock?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L86"},"def":{"name":"local_button_lock?","visibility":"Public","body":"self == LocalButtonLock"}},{"html_id":"no_signal_off?-instance-method","name":"no_signal_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L88"},"def":{"name":"no_signal_off?","visibility":"Public","body":"self == NoSignalOff"}},{"html_id":"pm_mode?-instance-method","name":"pm_mode?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L89"},"def":{"name":"pm_mode?","visibility":"Public","body":"self == PmMode"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L76"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"screen_mute?-instance-method","name":"screen_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L79"},"def":{"name":"screen_mute?","visibility":"Public","body":"self == ScreenMute"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L84"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L81"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"volume_mute?-instance-method","name":"volume_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L80"},"def":{"name":"volume_mute?","visibility":"Public","body":"self == VolumeMute"}},{"html_id":"wake_on_lan?-instance-method","name":"wake_on_lan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L87"},"def":{"name":"wake_on_lan?","visibility":"Public","body":"self == WakeOnLan"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Input","path":"Lg/Displays/Ls5/Input.html","kind":"enum","full_name":"Lg::Displays::Ls5::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dvi","name":"Dvi","value":"112"},{"id":"Hdmi","name":"Hdmi","value":"160"},{"id":"HdmiDtv","name":"HdmiDtv","value":"144"},{"id":"Hdmi2","name":"Hdmi2","value":"161"},{"id":"Hdmi2Dtv","name":"Hdmi2Dtv","value":"145"},{"id":"DisplayPort","name":"DisplayPort","value":"208"},{"id":"DisplayPortDtv","name":"DisplayPortDtv","value":"192"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L16"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"display_port_dtv?-instance-method","name":"display_port_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L17"},"def":{"name":"display_port_dtv?","visibility":"Public","body":"self == DisplayPortDtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L11"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L14"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_dtv?-instance-method","name":"hdmi2_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L15"},"def":{"name":"hdmi2_dtv?","visibility":"Public","body":"self == Hdmi2Dtv"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L12"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_dtv?-instance-method","name":"hdmi_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L13"},"def":{"name":"hdmi_dtv?","visibility":"Public","body":"self == HdmiDtv"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Ratio","path":"Lg/Displays/Ls5/Ratio.html","kind":"enum","full_name":"Lg::Displays::Ls5::Ratio","name":"Ratio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Square","name":"Square","value":"1"},{"id":"Wide","name":"Wide","value":"2"},{"id":"Zoom","name":"Zoom","value":"4"},{"id":"Scan","name":"Scan","value":"9"},{"id":"Program","name":"Program","value":"6"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"program?-instance-method","name":"program?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L140"},"def":{"name":"program?","visibility":"Public","body":"self == Program"}},{"html_id":"scan?-instance-method","name":"scan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L139"},"def":{"name":"scan?","visibility":"Public","body":"self == Scan"}},{"html_id":"square?-instance-method","name":"square?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L136"},"def":{"name":"square?","visibility":"Public","body":"self == Square"}},{"html_id":"wide?-instance-method","name":"wide?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L137"},"def":{"name":"wide?","visibility":"Public","body":"self == Wide"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L138"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]}]}]}]},{"html_id":"drivers/Lumens","path":"Lumens.html","kind":"module","full_name":"Lumens","name":"Lumens","abstract":false,"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lumens/DC193","path":"Lumens/DC193.html","kind":"class","full_name":"Lumens::DC193","name":"DC193","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{193_u8 => :lamp, 176_u8 => :power, 183_u8 => :power_staus, 167_u8 => :picture_mode, 163_u8 => :auto_focus, 138_u8 => :max_zoom, 120_u8 => :frozen_status, 96_u8 => :zoom_staus, 81_u8 => :picture_mode_staus, 80_u8 => :lamp_staus, 44_u8 => :freeze, 31_u8 => :zoom_direct_auto_focus, 19_u8 => :zoom_direct, 17_u8 => :zoom, 16_u8 => :zoom_stop}"},{"id":"PICTURE_MODES","name":"PICTURE_MODES","value":"{:photo, :test, :greyscale}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"}],"namespace":{"html_id":"drivers/Lumens","kind":"module","full_name":"Lumens","name":"Lumens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_focus(name:String=\"auto_focus\")-instance-method","name":"auto_focus","abstract":false,"args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"args_string":"(name : String = \"auto_focus\")","args_html":"(name : String = "auto_focus")","location":{"filename":"src/lumens/dc193.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L107"},"def":{"name":"auto_focus","args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nsend(Bytes[160, 163, 1, 0, 0, 175], name: name)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds) do\n query_status\nend\nquery_status\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"freeze(state:Bool)-instance-method","name":"freeze","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L117"},"def":{"name":"freeze","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 44, state, 0, 0, 175], name: :freeze)\n"}},{"html_id":"frozen?-instance-method","name":"frozen?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L122"},"def":{"name":"frozen?","visibility":"Public","body":"send(Bytes[160, 120, 0, 0, 0, 175], priority: 0)"}},{"html_id":"lamp(state:Bool,head_led:Bool=false)-instance-method","name":"lamp","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"args_string":"(state : Bool, head_led : Bool = false)","args_html":"(state : Bool, head_led : Bool = false)","location":{"filename":"src/lumens/dc193.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L59"},"def":{"name":"lamp","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"visibility":"Public","body":"if @frozen\n return false\nend\nlamps = if state && head_led\n 1_u8\nelse\n if state\n 2_u8\n else\n if head_led\n 3_u8\n else\n 0_u8\n end\n end\nend\nsend(Bytes[160, 193, lamps, 0, 0, 175], name: :lamp)\n"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L75"},"def":{"name":"lamp?","visibility":"Public","body":"send(Bytes[160, 80, 0, 0, 0, 175], priority: 0)"}},{"html_id":"max_zoom?-instance-method","name":"max_zoom?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L146"},"def":{"name":"max_zoom?","visibility":"Public","body":"send(Bytes[160, 138, 0, 0, 0, 175], priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(6)\n@zoom_range = 0..@zoom_max\n"}},{"html_id":"picture_mode(state:String)-instance-method","name":"picture_mode","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/lumens/dc193.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L126"},"def":{"name":"picture_mode","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nmode = case state.downcase\nwhen \"photo\"\n 0_u8\nwhen \"text\"\n 1_u8\nwhen \"greyscale\", \"grayscale\"\n 2_u8\nelse\n raise(ArgumentError.new(\"unknown picture mode #{state}\"))\nend\nsend(Bytes[160, 167, mode, 0, 0, 175], name: :picture_mode)\n"}},{"html_id":"picture_mode?-instance-method","name":"picture_mode?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L142"},"def":{"name":"picture_mode?","visibility":"Public","body":"send(Bytes[160, 81, 0, 0, 0, 175], priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L48"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 176, state, 0, 0, 175], name: :power)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L54"},"def":{"name":"power?","visibility":"Public","body":"send(Bytes[160, 183, 0, 0, 0, 175], priority: 0)"}},{"html_id":"query_status-instance-method","name":"query_status","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L37"},"def":{"name":"query_status","visibility":"Public","body":"if power?.get == \"true\"\n lamp?\n zoom?\n frozen?\n max_zoom?\n picture_mode?\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lumens/dc193.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L189"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Lumens sent: #{data.hexstring}\"\nend\nstatus = Status.from_value(data[4].to_i)\nself[:zooming] = status.zooming?\nself[:focusing] = status.focusing?\nself[:iris_adjusting] = status.iris?\nif status.error?\n return task.try(&.abort(\"bad request\"))\nend\nif status.ignored?\n return task.try(&.retry(\"device busy\"))\nend\nresult = case COMMANDS[data[1]]?\nwhen :power\n data[2] == 1_u8\nwhen :power_staus\n @ready = data[2] == 1_u8\n @power = data[3] == 1_u8\n logger.debug do\n \"System power: #{@power}, ready: #{@ready}\"\n end\n self[:ready] = @ready\n self[:power] = @power\nwhen :max_zoom\n @zoom_max = data[2].to_i + (data[3].to_i << 8)\n @zoom_range = 0..@zoom_max\n self[:zoom_range] = {min: 0, max: @zoom_max}\nwhen :frozen_status, :freeze\n self[:frozen] = @frozen = data[2] == 1_u8\nwhen :zoom_staus, :zoom_direct_auto_focus, :zoom_direct\n value = data[2].to_i + (data[3].to_i << 8)\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\nwhen :picture_mode_staus, :picture_mode\n self[:picture_mode] = PICTURE_MODES[data[2].to_i]\nwhen :lamp_staus, :lamp\n case data[2]\n when 0_u8\n @head_led = @lamp = false\n when 1_u8\n @head_led = @lamp = true\n when 2_u8\n @head_led = false\n @lamp = true\n when 3_u8\n @head_led = true\n @lamp = false\n end\n self[:head_led] = @head_led\n self[:lamp] = @lamp\nwhen :auto_focus\nelse\n error = \"Unknown command #{data[1]}\"\n logger.debug do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success(result))\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=1)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 1)","args_html":"(direction : ZoomDirection, index : Int32 | String = 1)","location":{"filename":"src/lumens/dc193.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L90"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @frozen\n return false\nend\ncase direction\nwhen ZoomDirection::Stop\n send(Bytes[160, 16, 0, 0, 0, 175])\n zoom?(priority: queue.priority)\n auto_focus(name: \"zoom\")\nwhen ZoomDirection::In\n send(Bytes[160, 17, 0, 0, 0, 175], name: :zoom)\nwhen ZoomDirection::Out\n send(Bytes[160, 17, 1, 0, 0, 175], name: :zoom)\nend\n"}},{"html_id":"zoom?(priority:Int32=0)-instance-method","name":"zoom?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L113"},"def":{"name":"zoom?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(Bytes[160, 96, 0, 0, 0, 175], priority: priority)"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L79"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nposition = (percentage * @zoom_max.to_f).to_i\nlow = (position & 255).to_u8\nhigh = ((position >> 8) & 255).to_u8\nauto_focus = auto_focus ? 31_u8 : 19_u8\nsend(Bytes[160, auto_focus, low, high, 0, 175], name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Lumens/DC193/Status","path":"Lumens/DC193/Status.html","kind":"enum","full_name":"Lumens::DC193::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L151"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"1"},{"id":"Ignored","name":"Ignored","value":"2"},{"id":"Reserved1","name":"Reserved1","value":"4"},{"id":"Reserved2","name":"Reserved2","value":"8"},{"id":"Focusing","name":"Focusing","value":"16"},{"id":"Zooming","name":"Zooming","value":"32"},{"id":"Iris","name":"Iris","value":"64"},{"id":"Reserved3","name":"Reserved3","value":"128"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"255"}],"namespace":{"html_id":"drivers/Lumens/DC193","kind":"class","full_name":"Lumens::DC193","name":"DC193"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L152"},"def":{"name":"error?","visibility":"Public","body":"self.includes?(Error)"}},{"html_id":"focusing?-instance-method","name":"focusing?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L156"},"def":{"name":"focusing?","visibility":"Public","body":"self.includes?(Focusing)"}},{"html_id":"ignored?-instance-method","name":"ignored?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L153"},"def":{"name":"ignored?","visibility":"Public","body":"self.includes?(Ignored)"}},{"html_id":"iris?-instance-method","name":"iris?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L158"},"def":{"name":"iris?","visibility":"Public","body":"self.includes?(Iris)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L151"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"reserved1?-instance-method","name":"reserved1?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L154"},"def":{"name":"reserved1?","visibility":"Public","body":"self.includes?(Reserved1)"}},{"html_id":"reserved2?-instance-method","name":"reserved2?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L155"},"def":{"name":"reserved2?","visibility":"Public","body":"self.includes?(Reserved2)"}},{"html_id":"reserved3?-instance-method","name":"reserved3?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L159"},"def":{"name":"reserved3?","visibility":"Public","body":"self.includes?(Reserved3)"}},{"html_id":"zooming?-instance-method","name":"zooming?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L157"},"def":{"name":"zooming?","visibility":"Public","body":"self.includes?(Zooming)"}}]}]}]},{"html_id":"drivers/Lutron","path":"Lutron.html","kind":"module","full_name":"Lutron","name":"Lutron","abstract":false,"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L12"},{"filename":"src/lutron/vive_leap_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"macros":[{"html_id":"upper_enum(name)-macro","name":"upper_enum","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""}],"args_string":"(name)","args_html":"(name)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L4"},"def":{"name":"upper_enum","args":[{"name":"name","external_name":"name","restriction":""}],"visibility":"Public","body":" \n{% if name.type.resolve.nilable? %} @{{ name.var }} : String? {% else %} @{{ name.var }} : String {% end %}\n\n \n{% enum_type = name.type.resolve.union_types.reject(&.nilable?).first %}\n\n\n def \n{{ name.var }}\n : \n{{ name.type }}\n\n if value = @\n{{ name.var }}\n\n \n{{ enum_type }}\n.parse(value)\n \nelse\n nil\n \nend\n \nend\n\n def \n{{ name.var }}\n=(value : \n{{ name.type }}\n) : \n{{ name.type }}\n\n @\n{{ name.var }}\n = value.try &.to_s\n value\n \nend\n \n"}}],"types":[{"html_id":"drivers/Lutron/AreaStatus","path":"Lutron/AreaStatus.html","kind":"struct","full_name":"Lutron::AreaStatus","name":"AreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","doc":"/area/3/status","summary":"

/area/3/status

","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L121"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L124"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"occupancy:OccupancyStatus|Nil-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy","return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"if value = @occupancy\n Lutron::OccupancyStatus.parse(value)\nelse\n nil\nend"}},{"html_id":"occupancy=(value:OccupancyStatus|Nil):OccupancyStatus|Nil-instance-method","name":"occupancy=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"args_string":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","args_html":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy=","args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"@occupancy = value.try(&.to_s)\nvalue\n"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L129"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, area_id, status = href.split(\"/\", 4)\n\"#{component}#{area_id}\"\n"}}]},{"html_id":"drivers/Lutron/Availability","path":"Lutron/Availability.html","kind":"enum","full_name":"Lutron::Availability","name":"Availability","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L159"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Available","name":"Available","value":"0"},{"id":"Unavailable","name":"Unavailable","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"available?-instance-method","name":"available?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L160"},"def":{"name":"available?","visibility":"Public","body":"self == Available"}},{"html_id":"unavailable?-instance-method","name":"unavailable?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L161"},"def":{"name":"unavailable?","visibility":"Public","body":"self == Unavailable"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L162"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]},{"html_id":"drivers/Lutron/ClientSetting","path":"Lutron/ClientSetting.html","kind":"struct","full_name":"Lutron::ClientSetting","name":"ClientSetting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"protocol:ClientVersion-instance-method","name":"protocol","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L77"},"def":{"name":"protocol","return_type":"ClientVersion","visibility":"Public","body":"@protocol"}}]},{"html_id":"drivers/Lutron/ClientVersion","path":"Lutron/ClientVersion.html","kind":"struct","full_name":"Lutron::ClientVersion","name":"ClientVersion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"major_version:Int32-instance-method","name":"major_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L84"},"def":{"name":"major_version","return_type":"Int32","visibility":"Public","body":"@major_version"}},{"html_id":"minor_version:Int32-instance-method","name":"minor_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L87"},"def":{"name":"minor_version","return_type":"Int32","visibility":"Public","body":"@minor_version"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L89"},"def":{"name":"version","visibility":"Public","body":"\"#{major_version}.#{minor_version}.0\""}}]},{"html_id":"drivers/Lutron/CommuniqueType","path":"Lutron/CommuniqueType.html","kind":"enum","full_name":"Lutron::CommuniqueType","name":"CommuniqueType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"ReadRequest","name":"ReadRequest","value":"0"},{"id":"ReadResponse","name":"ReadResponse","value":"1"},{"id":"UpdateRequest","name":"UpdateRequest","value":"2"},{"id":"UpdateResponse","name":"UpdateResponse","value":"3"},{"id":"SubscribeRequest","name":"SubscribeRequest","value":"4"},{"id":"SubscribeResponse","name":"SubscribeResponse","value":"5"},{"id":"DeleteRequest","name":"DeleteRequest","value":"6"},{"id":"DeleteResponse","name":"DeleteResponse","value":"7"},{"id":"CreateRequest","name":"CreateRequest","value":"8"},{"id":"CreateResponse","name":"CreateResponse","value":"9"},{"id":"UnsubscribeRequest","name":"UnsubscribeRequest","value":"10"},{"id":"UnsubscribeResponse","name":"UnsubscribeResponse","value":"11"},{"id":"ExceptionResponse","name":"ExceptionResponse","value":"12"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"create_request?-instance-method","name":"create_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L31"},"def":{"name":"create_request?","visibility":"Public","body":"self == CreateRequest"}},{"html_id":"create_response?-instance-method","name":"create_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L32"},"def":{"name":"create_response?","visibility":"Public","body":"self == CreateResponse"}},{"html_id":"delete_request?-instance-method","name":"delete_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L29"},"def":{"name":"delete_request?","visibility":"Public","body":"self == DeleteRequest"}},{"html_id":"delete_response?-instance-method","name":"delete_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L30"},"def":{"name":"delete_response?","visibility":"Public","body":"self == DeleteResponse"}},{"html_id":"exception_response?-instance-method","name":"exception_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L35"},"def":{"name":"exception_response?","visibility":"Public","body":"self == ExceptionResponse"}},{"html_id":"read_request?-instance-method","name":"read_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L23"},"def":{"name":"read_request?","visibility":"Public","body":"self == ReadRequest"}},{"html_id":"read_response?-instance-method","name":"read_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L24"},"def":{"name":"read_response?","visibility":"Public","body":"self == ReadResponse"}},{"html_id":"subscribe_request?-instance-method","name":"subscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L27"},"def":{"name":"subscribe_request?","visibility":"Public","body":"self == SubscribeRequest"}},{"html_id":"subscribe_response?-instance-method","name":"subscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L28"},"def":{"name":"subscribe_response?","visibility":"Public","body":"self == SubscribeResponse"}},{"html_id":"unsubscribe_request?-instance-method","name":"unsubscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L33"},"def":{"name":"unsubscribe_request?","visibility":"Public","body":"self == UnsubscribeRequest"}},{"html_id":"unsubscribe_response?-instance-method","name":"unsubscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L34"},"def":{"name":"unsubscribe_response?","visibility":"Public","body":"self == UnsubscribeResponse"}},{"html_id":"update_request?-instance-method","name":"update_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L25"},"def":{"name":"update_request?","visibility":"Public","body":"self == UpdateRequest"}},{"html_id":"update_response?-instance-method","name":"update_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L26"},"def":{"name":"update_response?","visibility":"Public","body":"self == UpdateResponse"}}]},{"html_id":"drivers/Lutron/ContactClosureState","path":"Lutron/ContactClosureState.html","kind":"enum","full_name":"Lutron::ContactClosureState","name":"ContactClosureState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L156"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L155"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]},{"html_id":"drivers/Lutron/ExceptionDetail","path":"Lutron/ExceptionDetail.html","kind":"struct","full_name":"Lutron::ExceptionDetail","name":"ExceptionDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error_code:Int32|Nil-instance-method","name":"error_code","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L101"},"def":{"name":"error_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@error_code"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L98"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Lutron/Lighting","path":"Lutron/Lighting.html","kind":"class","full_name":"Lutron::Lighting","name":"Lighting","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Errors","name":"Errors","value":"{\"1\" => \"Parameter count mismatch\", \"2\" => \"Object does not exist\", \"3\" => \"Invalid action number\", \"4\" => \"Parameter data out of range\", \"5\" => \"Parameter data malformed\", \"6\" => \"Unsupported Command\"}"},{"id":"Occupancy","name":"Occupancy","value":"{\"1\" => \"unknown\", \"2\" => \"inactive\", \"3\" => \"occupied\", \"4\" => \"unoccupied\"}"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"blinds(device:String,action:String,component:String=\"shadegrp\")-instance-method","name":"blinds","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"args_string":"(device : String, action : String, component : String = \"shadegrp\")","args_html":"(device : String, action : String, component : String = "shadegrp")","location":{"filename":"src/lutron/lighting.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L77"},"def":{"name":"blinds","args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"case action.downcase\nwhen \"raise\", \"up\"\n send_cmd(component.upcase, device, 3)\nwhen \"lower\", \"down\"\n send_cmd(component.upcase, device, 2)\nwhen \"stop\"\n send_cmd(component.upcase, device, 4)\nend"}},{"html_id":"button_press(area:Int32,button:Int32)-instance-method","name":"button_press","doc":"===============\nDEVICE COMMANDS\n===============","summary":"

=============== DEVICE COMMANDS ===============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"args_string":"(area : Int32, button : Int32)","args_html":"(area : Int32, button : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L116"},"def":{"name":"button_press","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"visibility":"Public","body":"send_cmd(\"DEVICE\", area, button, 3)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"send(\"#{@login}\\r\\n\", priority: 9999)\nschedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Lutron\"\n end\n scene?(1)\nend\n"}},{"html_id":"daylight(area:Int32,mode:Bool)-instance-method","name":"daylight","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"args_string":"(area : Int32, mode : Bool)","args_html":"(area : Int32, mode : Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L108"},"def":{"name":"daylight","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"visibility":"Public","body":"val = mode ? 1 : 2\nsend_cmd(\"AREA\", area, 7, val)\n"}},{"html_id":"daylight_mode?(area:Int32)-instance-method","name":"daylight_mode?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L104"},"def":{"name":"daylight_mode?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 7)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L44"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"led(area:Int32,device:Int32,state:Int32|Bool)-instance-method","name":"led","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"args_string":"(area : Int32, device : Int32, state : Int32 | Bool)","args_html":"(area : Int32, device : Int32, state : Int32 | Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L120"},"def":{"name":"led","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"visibility":"Public","body":"val = if state.is_a?(Int32)\n state\nelse\n state ? 1 : 0\nend\nsend_cmd(\"DEVICE\", area, device, 9, val)\n"}},{"html_id":"led?(area:Int32,device:Int32)-instance-method","name":"led?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"args_string":"(area : Int32, device : Int32)","args_html":"(area : Int32, device : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L130"},"def":{"name":"led?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"DEVICE\", area, device, 9)"}},{"html_id":"level(device:Int32,level:Int32,rate:Int32=1000,component:String=\"output\")-instance-method","name":"level","doc":"dimmers, CCOs, or other devices in a system that have a controllable output","summary":"

dimmers, CCOs, or other devices in a system that have a controllable output

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"args_string":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = \"output\")","args_html":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = "output")","location":{"filename":"src/lutron/lighting.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L63"},"def":{"name":"level","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nseconds = rate / 1000\nmin = seconds / 60\nseconds = seconds - (min * 60)\ntime = \"#{min.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}\"\nsend_cmd(component.upcase, device, 1, level, time)\n"}},{"html_id":"light_level(area:Int32,level:Int32,component:String|Nil=nil,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","args_html":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","location":{"filename":"src/lutron/lighting.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L141"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"if component\n level(area, level, fade, component)\nelse\n level(area, level, fade, \"area\")\nend"}},{"html_id":"lighting(device:Int32,state:Bool,action:Int32=1)-instance-method","name":"lighting","doc":"on or off","summary":"

on or off

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"args_string":"(device : Int32, state : Bool, action : Int32 = 1)","args_html":"(device : Int32, state : Bool, action : Int32 = 1)","location":{"filename":"src/lutron/lighting.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L53"},"def":{"name":"lighting","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(device, level)\n"}},{"html_id":"occupancy?(area:Int32)-instance-method","name":"occupancy?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L100"},"def":{"name":"occupancy?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 8)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@login = (setting?(String, :login)) || \"nwk\"\n@trigger_type = (setting?(String, :trigger)) || \"area\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/lighting.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nparts = data.split(\",\")\ncomponent = parts[0][1..-1].downcase\ncase component\nwhen \"area\", \"output\", \"shadegrp\"\n area = parts[1]\n action = parts[2].to_i\n param = parts[3]\n case action\n when 1\n self[\"#{component}#{area}_level\"] = param.to_f\n when 6\n self[\"#{component}#{area}\"] = param.to_i\n when 7\n self[\"#{component}#{area}_daylight\"] = param == \"1\"\n when 8\n self[\"#{component}#{area}_occupied\"] = Occupancy[param]\n end\nwhen \"device\"\n area = parts[1]\n device = parts[2]\n action = parts[3].to_i\n case action\n when 7\n self[\"device#{area}_#{device}\"] = parts[4].to_i\n when 9\n self[\"device#{area}_#{device}_led\"] = parts[4].to_i\n end\nwhen \"error\"\n error = \"error #{parts[1]}: #{Errors[parts[1]]}\"\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success)\n"}},{"html_id":"restart-instance-method","name":"restart","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L48"},"def":{"name":"restart","visibility":"Public","body":"send_cmd(\"RESET\", 0)"}},{"html_id":"scene(area:Int32,scene:Int32,component:String=\"area\")-instance-method","name":"scene","doc":"=============\nAREA COMMANDS\n=============","summary":"

============= AREA COMMANDS =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, scene : Int32, component : String = \"area\")","args_html":"(area : Int32, scene : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L91"},"def":{"name":"scene","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"(send_cmd(component.upcase, area, 6, scene)).get\nscene?(area, component)\n"}},{"html_id":"scene?(area:Int32,component:String=\"area\")-instance-method","name":"scene?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, component : String = \"area\")","args_html":"(area : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L96"},"def":{"name":"scene?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"send_query(component.upcase, area, 6)"}},{"html_id":"trigger(area:Int32,scene:Int32)-instance-method","name":"trigger","doc":"=============\nCOMPATIBILITY\n=============","summary":"

============= COMPATIBILITY =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32)","args_html":"(area : Int32, scene : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L137"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"scene(area, scene, @trigger_type)"}}]},{"html_id":"drivers/Lutron/MultipleAreaStatus","path":"Lutron/MultipleAreaStatus.html","kind":"struct","full_name":"Lutron::MultipleAreaStatus","name":"MultipleAreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L104"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L105"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(AreaStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L108"},"def":{"name":"states","return_type":"Array(AreaStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/MultipleZoneStatus","path":"Lutron/MultipleZoneStatus.html","kind":"struct","full_name":"Lutron::MultipleZoneStatus","name":"MultipleZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L135"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(ZoneStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L139"},"def":{"name":"states","return_type":"Array(ZoneStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/OccupancyStatus","path":"Lutron/OccupancyStatus.html","kind":"enum","full_name":"Lutron::OccupancyStatus","name":"OccupancyStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L111"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Occupied","name":"Occupied","value":"0"},{"id":"Unoccupied","name":"Unoccupied","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"occupied?-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L112"},"def":{"name":"occupied?","visibility":"Public","body":"self == Occupied"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L114"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"unoccupied?-instance-method","name":"unoccupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L113"},"def":{"name":"unoccupied?","visibility":"Public","body":"self == Unoccupied"}}]},{"html_id":"drivers/Lutron/OneZoneStatus","path":"Lutron/OneZoneStatus.html","kind":"struct","full_name":"Lutron::OneZoneStatus","name":"OneZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:ZoneStatus-instance-method","name":"status","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L146"},"def":{"name":"status","return_type":"ZoneStatus","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/Lutron/Quantum","path":"Lutron/Quantum.html","kind":"class","full_name":"Lutron::Quantum","name":"Quantum","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/quantum.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"level(id:Int32,level:String)-instance-method","name":"level","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(id : Int32, level : String)","args_html":"(id : Int32, level : String)","location":{"filename":"src/lutron/quantum.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L31"},"def":{"name":"level","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"client.zone.set_status_level(id: id, level: level)\nself[\"area#{id}_level\"] = level\n"}},{"html_id":"level?(id:Int32)-instance-method","name":"level?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L26"},"def":{"name":"level?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.zone.get_status(id)\nself[\"area#{id}_level\"] = status[\"Level\"]\n"}},{"html_id":"occupancy_status?(id:Int32)-instance-method","name":"occupancy_status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L46"},"def":{"name":"occupancy_status?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"occupancy_status = client.area.get_occupancy_status(id: id)\nself[\"area#{id}_occupancy\"] = occupancy_status\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = (URI.parse(config.uri.not_nil!)).host\napi_key = setting(String, :api_key)\ndevice_key = setting(String, :device_key)\n@client = Client.new(host_name: host_name.not_nil!, api_key: api_key, device_key: device_key)\n"}},{"html_id":"root-instance-method","name":"root","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L57"},"def":{"name":"root","visibility":"Public","body":"client.area.root"}},{"html_id":"scene(id:Int32,scene:Int32)-instance-method","name":"scene","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(id : Int32, scene : Int32)","args_html":"(id : Int32, scene : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L36"},"def":{"name":"scene","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"client.area.set_scene(id: id, scene: scene)\nself[\"area#{id}\"] = scene\n"}},{"html_id":"scene?(id:Int32)-instance-method","name":"scene?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L41"},"def":{"name":"scene?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.area.get_status(id: id)\nself[\"area#{id}\"] = status[\"CurrentScene\"]\n"}},{"html_id":"scenes(id:Int32)-instance-method","name":"scenes","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L52"},"def":{"name":"scenes","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"client.area.get_scenes(id: id)"}}],"types":[{"html_id":"drivers/Lutron/Quantum/Client","path":"Lutron/Quantum/Client.html","kind":"alias","full_name":"Lutron::Quantum::Client","name":"Client","abstract":false,"locations":[{"filename":"src/lutron/quantum.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Quantum::Client","aliased_html":"Quantum::Client","const":false,"namespace":{"html_id":"drivers/Lutron/Quantum","kind":"class","full_name":"Lutron::Quantum","name":"Quantum"}}]},{"html_id":"drivers/Lutron/Request","path":"Lutron/Request.html","kind":"class","full_name":"Lutron::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L39"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(url:String,req_type:CommuniqueType=CommuniqueType::ReadRequest,body=nil,header:Hash(String,String)={}ofString=>String)-class-method","name":"new","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"args_string":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","args_html":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L56"},"def":{"name":"new","args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(url, req_type, body, header)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(*args,**options)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args] = **options"}},{"html_id":"[]=(*args,**options,&)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]=(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"if (__temp_1 = @body).nil?\n @body = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"header:Hash(String,String)-instance-method","name":"header","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header","return_type":"Hash(String, String)","visibility":"Public","body":"@header"}},{"html_id":"header=(header:Hash(String,String))-instance-method","name":"header=","abstract":false,"args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"args_string":"(header : Hash(String, String))","args_html":"(header : Hash(String, String))","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header=","args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@header = header"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L52"},"def":{"name":"name?","visibility":"Public","body":"header[\"Url\"]?"}},{"html_id":"type:CommuniqueType-instance-method","name":"type","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type","return_type":"CommuniqueType","visibility":"Public","body":"if value = @type\n Lutron::CommuniqueType.parse(value)\nelse\n nil\nend"}},{"html_id":"type=(value:CommuniqueType):CommuniqueType-instance-method","name":"type=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"args_string":"(value : CommuniqueType) : CommuniqueType","args_html":"(value : CommuniqueType) : CommuniqueType","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type=","args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"return_type":"CommuniqueType","visibility":"Public","body":"@type = value.try(&.to_s)\nvalue\n"}}]},{"html_id":"drivers/Lutron/RoomLogic","path":"Lutron/RoomLogic.html","kind":"class","full_name":"Lutron::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/room_logic.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_state-instance-method","name":"get_state","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L26"},"def":{"name":"get_state","visibility":"Public","body":"self[\"lighting_scene\"] = (lutron.scene?(@area_id)).get\nself[\"occupancy\"] = (lutron.occupancy_status?(@area_id)).get\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@area_id = setting(Int32, :lutron_area_id)\n@cron_string = setting(String, :lutron_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_state\nend\n"}}]},{"html_id":"drivers/Lutron/SwitchedLevel","path":"Lutron/SwitchedLevel.html","kind":"enum","full_name":"Lutron::SwitchedLevel","name":"SwitchedLevel","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L149"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L151"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L150"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Lutron/ViveBacnet","path":"Lutron/ViveBacnet.html","kind":"class","full_name":"Lutron::ViveBacnet","name":"ViveBacnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disable_occupancy(state:Bool)-instance-method","name":"disable_occupancy","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L79"},"def":{"name":"disable_occupancy","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 7, state)).get\nself[:occupancy_disabled] = state\n"}},{"html_id":"level(percentage:Float32)-instance-method","name":"level","abstract":false,"args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"args_string":"(percentage : Float32)","args_html":"(percentage : Float32)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L67"},"def":{"name":"level","args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"visibility":"Public","body":"if percentage < 0.0_f32\n percentage = 0.0_f32\nend\nif percentage > 100.0_f32\n percentage = 100.0_f32\nend\n(bacnet.write_real(@device_id, 2, percentage)).get\nself[:lighting_level] = percentage\n"}},{"html_id":"lighting(state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L74"},"def":{"name":"lighting","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 3, state)).get\nself[:lighting] = state\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_bacnet.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@device_id = setting(UInt32, :device_id)\nsubscriptions.clear\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[2]\") do |_sub, value|\n self[:lighting_level] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[18]\") do |_sub, value|\n self[:power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[19]\") do |_sub, value|\n self[:max_power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[3]\") do |_sub, value|\n self[:lighting] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[7]\") do |_sub, value|\n self[:occupancy_disabled] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.MultiStateValue[8]\") do |_sub, value|\n @occupancy = case value\n when \"1\"\n false\n when \"2\"\n true\n else\n nil\n end\n self[:occupancy] = @occupancy\n self[:occupancy_sensor] = @occupancy.nil? ? nil : (@occupancy ? 1.0 : 0.0)\n @last_updated = Time.utc.to_unix\nend\nschedule.clear\nschedule.every((4 + (rand(3))).seconds) do\n (bacnet.update_value(@device_id, 2, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 18, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 19, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 3, \"BinaryValue\")).get\n (bacnet.update_value(@device_id, 8, \"MultiStateValue\")).get\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L111"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id == \"occupancy\"\nelse\n return nil\nend\nif mac == @device_id.to_s\nelse\n return nil\nend\nif @last_updated == 0_i64\n return nil\nend\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L90"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != @device_id.to_s)\n return NO_MATCH\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\n[Interface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")]\n"}}]},{"html_id":"drivers/Lutron/ViveLeap","path":"Lutron/ViveLeap.html","kind":"class","full_name":"Lutron::ViveLeap","name":"ViveLeap","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area_status?-instance-method","name":"area_status?","doc":"gets the status of all areas","summary":"

gets the status of all areas

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L85"},"def":{"name":"area_status?","visibility":"Public","body":"request = Request.new(\"/area/status\")\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"request = Request.new(\"/clientsetting\", :update_request, {ClientSetting: {ClientMajorVersion: 1}})\nsend(request.to_json, priority: 99, name: request.name?)\nschedule.every(1.minute) do\n ping\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"@sensors.clear\nschedule.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n length, unpaired = 0, 0\n loop do\n case io.read_char\n when '{'\n unpaired = unpaired + 1\n when '}'\n unpaired = unpaired - 1\n when Nil\n break\n end\n length = length + 1\n if unpaired.zero?\n break\n end\n end\n unpaired.zero? && length > 0 ? length : -1\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L79"},"def":{"name":"ping","visibility":"Public","body":"request = Request.new(\"/server/status/ping\")\nsend(request.to_json, priority: 0, name: request.name?)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/vive_leap.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L142"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nrequest = Request.from_json(data)\nurl = request[\"Url\"]?\nhttp_status = request[\"StatusCode\"]? || \"200 OK\"\nmessage_type = request[\"MessageBodyType\"]?\ncase message_type\nwhen \"OneClientSettingDefinition\"\n setting = ClientSetting.from_json(request.body)\n logger.debug do\n \"protocol version negotiated #{setting.protocol.version}, authenticating\"\n end\n authenticate\nwhen \"MultipleAreaStatus\"\n statuses = MultipleAreaStatus.from_json(request.body)\n timestamp = Time.utc.to_unix\n statuses.states.each do |status|\n base_key = status.status_key\n if status.level\n self[\"#{base_key}_level\"] = status.level\n end\n if status.occupancy\n self[\"#{base_key}_occupied\"] = status.occupancy\n @sensors[base_key] = {status.occupancy.try(&.occupied?) || false, timestamp}\n end\n end\nwhen \"MultipleZoneStatus\"\n statuses = MultipleZoneStatus.from_json(request.body)\n statuses.states.each do |status|\n set_zone(status)\n end\nwhen \"OneZoneStatus\"\n set_zone((OneZoneStatus.from_json(request.body)).status)\nwhen \"ExceptionDetail\"\n code, status = http_status.split(\" \", 2)\n details = ExceptionDetail.from_json(request.body)\n error_message = \"operation #{url} failed with #{code}: #{status}, #{details.message} [#{details.error_code}]\"\n logger.warn do\n error_message\n end\n if task && (task.name == url)\n task.abort(error_message)\n else\n return\n end\nwhen nil\n case url\n when \"/server/status/ping\"\n logger.debug do\n \"got ping response\"\n end\n end\nelse\n logger.debug do\n \"unknown message type #{message_type}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_leap.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L233"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif mac == config.ip\nelse\n return nil\nend\nif id\nelse\n return nil\nend\nsensor_found = @sensors[id]?\nif sensor_found\nelse\n return nil\nend\npresence, timestamp = sensor_found\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: mac, id: id, name: \"#{system.name} #{id} occupancy\", module_id: module_id, binding: \"#{id}_occupied\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_leap.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L213"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\n@sensors.map do |area_id, __temp_844|\n presence, timestamp = __temp_844\n Interface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: config.ip.not_nil!, id: area_id, name: \"#{system.name} #{area_id} occupancy\", module_id: module_id, binding: \"#{area_id}_occupied\")\nend\n"}},{"html_id":"zone_contact_closure(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_contact_closure","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L130"},"def":{"name":"zone_contact_closure","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToCCOLevel\", CCOLevelParameters: {CCOLevel: state ? \"Closed\" : \"Open\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_level(zone_id:String|Int32,level:Float64)-instance-method","name":"zone_level","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(zone_id : String | Int32, level : Float64)","args_html":"(zone_id : String | Int32, level : Float64)","location":{"filename":"src/lutron/vive_leap.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L106"},"def":{"name":"zone_level","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToDimmedLevel\", DimmedLevelParameters: {Level: level}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_lighting(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_lighting","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L118"},"def":{"name":"zone_lighting","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToSwitchedLevel\", SwitchedLevelParameters: {SwitchedLevel: state ? \"On\" : \"Off\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_status?-instance-method","name":"zone_status?","doc":"get the status of all zones","summary":"

get the status of all zones

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L96"},"def":{"name":"zone_status?","visibility":"Public","body":"request = Request.new(\"/zone/status\")\nsend(request.to_json, name: request.name?)\n"}}]},{"html_id":"drivers/Lutron/ZoneStatus","path":"Lutron/ZoneStatus.html","kind":"struct","full_name":"Lutron::ZoneStatus","name":"ZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"availability:Availability|Nil-instance-method","name":"availability","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability","return_type":"Availability | ::Nil","visibility":"Public","body":"if value = @availability\n Lutron::Availability.parse(value)\nelse\n nil\nend"}},{"html_id":"availability=(value:Availability|Nil):Availability|Nil-instance-method","name":"availability=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"args_string":"(value : Availability | Nil) : Availability | Nil","args_html":"(value : Availability | Nil) : Availability | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability=","args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"return_type":"Availability | ::Nil","visibility":"Public","body":"@availability = value.try(&.to_s)\nvalue\n"}},{"html_id":"contact_closure:ContactClosureState|Nil-instance-method","name":"contact_closure","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure","return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"if value = @contact_closure\n Lutron::ContactClosureState.parse(value)\nelse\n nil\nend"}},{"html_id":"contact_closure=(value:ContactClosureState|Nil):ContactClosureState|Nil-instance-method","name":"contact_closure=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"args_string":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","args_html":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure=","args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"@contact_closure = value.try(&.to_s)\nvalue\n"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L168"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L171"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L182"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, zone_id, status = href.split(\"/\", 4)\n\"#{component}#{zone_id}\"\n"}},{"html_id":"switched_level:SwitchedLevel|Nil-instance-method","name":"switched_level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level","return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"if value = @switched_level\n Lutron::SwitchedLevel.parse(value)\nelse\n nil\nend"}},{"html_id":"switched_level=(value:SwitchedLevel|Nil):SwitchedLevel|Nil-instance-method","name":"switched_level=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"args_string":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","args_html":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level=","args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"@switched_level = value.try(&.to_s)\nvalue\n"}}]}]},{"html_id":"drivers/Mailer","path":"Mailer.html","kind":"class","full_name":"Mailer","name":"Mailer","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_spec.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L544"},{"filename":"src/place/survey_mailer_spec.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L54"},{"filename":"src/place/template_mailer_spec.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"on_load-instance-method","name":"on_load","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"location":{"filename":"src/place/template_mailer_spec.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L112"},"def":{"name":"on_load","visibility":"Public","body":"self[:sent] = 0"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/auto_release_spec.cr","line_number":565,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L565"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L75"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/template_mailer_spec.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L131"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/auto_release_spec.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L551"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L61"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer_spec.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L116"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}}]},{"html_id":"drivers/MessageMedia","path":"MessageMedia.html","kind":"module","full_name":"MessageMedia","name":"MessageMedia","abstract":false,"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MessageMedia/SMS","path":"MessageMedia/SMS.html","kind":"class","full_name":"MessageMedia::SMS","name":"SMS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/MessageMedia","kind":"module","full_name":"MessageMedia","name":"MessageMedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/message_media/sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/message_media/sms.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L24"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nformat = format || \"SMS\"\nnumbers = phone_numbers.map do |number|\n payload = {:content => message, :destination_number => number, :format => format}\n if source\n payload[:source_number] = source.to_s\n payload[:source_number_type] = \"ALPHANUMERIC\"\n end\n payload\nend\nresponse = post(\"/v1/messages\", body: {messages: numbers}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nnil\n"}}]}]},{"html_id":"drivers/Microsoft","path":"Microsoft.html","kind":"module","full_name":"Microsoft","name":"Microsoft","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Microsoft/Coordinates","path":"Microsoft/Coordinates.html","kind":"class","full_name":"Microsoft::Coordinates","name":"Coordinates","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L21"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L24"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L27"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L30"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/Microsoft/FindMe","path":"Microsoft/FindMe.html","kind":"class","full_name":"Microsoft::FindMe","name":"FindMe","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"levels-instance-method","name":"levels","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L61"},"def":{"name":"levels","visibility":"Public","body":"data = make_request(\"GET\", \"/FindMeService/api/MeetingRooms/BuildingLevelsWithMeetingRooms\")\nlevels = Array(Microsoft::Level).from_json(data)\nbuildings = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\nend\nlevels.each do |level|\n buildings[level.building] << level.name\nend\nbuildings\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@domain = (setting?(String, :domain)) || \"\"\n"}},{"html_id":"user_details(usernames:String|Array(String))-instance-method","name":"user_details","abstract":false,"args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"args_string":"(usernames : String | Array(String))","args_html":"(usernames : String | Array(String))","location":{"filename":"src/microsoft/find_me.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L71"},"def":{"name":"user_details","args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"visibility":"Public","body":"users = usernames.is_a?(String) ? [usernames] : usernames\ndata = make_request(\"GET\", \"/FindMeService/api/ObjectLocation/Users/#{users.join(\",\")}?getExtendedData=true\")\n(Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\nend\n"}},{"html_id":"users_on(building:String,level:String)-instance-method","name":"users_on","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(building : String, level : String)","args_html":"(building : String, level : String)","location":{"filename":"src/microsoft/find_me.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L78"},"def":{"name":"users_on","args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"uri = \"/FindMeService/api/ObjectLocation/Level/#{building}/#{level}\"\ndata = make_request(\"GET\", uri)\nbegin\n (Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\n end\nrescue error\n logger.debug do\n \"failed to parse location data\\n#{data}\"\n end\n raise(error)\nend\n"}}]},{"html_id":"drivers/Microsoft/FindMeLocationService","path":"Microsoft/FindMeLocationService.html","kind":"class","full_name":"Microsoft::FindMeLocationService","name":"FindMeLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L91"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nactive_users_raw = (findme.user_details(mac_address)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nif user_details = active_users[0]?\n {location: user_details.located_using == \"FixedLocation\" ? \"desk\" : \"wireless\", assigned_to: user_details.user_data.not_nil!.email_address || \"\", mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L106"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfindme_details = @floor_mappings[zone_id]?\nif findme_details\nelse\n return [] of Nil\nend\nfindme_building = findme_details[:building]\nfindme_level = findme_details[:level]\nactive_users_raw = (findme.users_on(findme_building, findme_level)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nlocations = active_users.compact_map do |loc|\n build_location_response(loc, zone_id, findme_building, findme_level, location)\nend\nlocations\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L49"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocations_raw = (findme.user_details(username)).get.to_json\nlocations = Array(Microsoft::Location).from_json(locations_raw)\nlocations = locations.compact_map do |location|\n coords = location.coordinates\n if coords\n else\n next\n end\n level = findme_building = findme_level = \"\"\n @floor_mappings.each do |zone, details|\n findme_building = details[:building]\n findme_level = details[:level]\n if (findme_building == coords.building) && (findme_level == coords.level)\n level = zone\n break\n end\n end\n if level.empty?\n next\n end\n build_location_response(location, level, findme_building, findme_level)\nend\nlocations\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L78"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nactive_users_raw = (findme.user_details(username || email)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nfound = [] of String\nif user_details = active_users[0]?\n found << user_details.username\nend\nfound\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@map_id_prefix = (setting?(String, :map_id_prefix)).presence || \"table-\"\n@building_zone = setting(String, :building_zone)\n@floor_mappings = setting(Hash(String, NamedTuple(building: String, level: String)), :floor_mappings)\n@zone_filter = @floor_mappings.keys\n@s2_level = (setting?(Int32, :s2_level)) || 21\n"}}]},{"html_id":"drivers/Microsoft/GPS","path":"Microsoft/GPS.html","kind":"class","full_name":"Microsoft::GPS","name":"GPS","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L37"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L40"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}}]},{"html_id":"drivers/Microsoft/GraphAPI","path":"Microsoft/GraphAPI.html","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Microsoft/GraphAPIAdvanced","path":"Microsoft/GraphAPIAdvanced.html","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_request(path:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L41"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"get(path)"}},{"html_id":"list_managed_devices(filter_device_name:String|Nil=nil)-instance-method","name":"list_managed_devices","abstract":false,"args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"args_string":"(filter_device_name : String | Nil = nil)","args_html":"(filter_device_name : String | Nil = nil)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L77"},"def":{"name":"list_managed_devices","args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"query_params = filter_device_name ? URI::Params {\"filter\" => \"deviceName eq #{filter_device_name}\"} : nil\nresponse = get(\"/v1.0/deviceManagement/managedDevices\", query_params)\nresponse.body[\"value\"]\n"}},{"html_id":"list_users_managed_devices(user_id:String)-instance-method","name":"list_users_managed_devices","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L86"},"def":{"name":"list_users_managed_devices","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/v1.0/users/#{user_id}/managedDevices\")\nresponse.body[\"value\"]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"credentials = setting(GraphParams, :credentials)\n@client = Office365::Client.new(**credentials)\n"}},{"html_id":"post_request(path:String)-instance-method","name":"post_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L57"},"def":{"name":"post_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"post(path)"}},{"html_id":"put_request(path:String)-instance-method","name":"put_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L73"},"def":{"name":"put_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"put(path)"}}],"types":[{"html_id":"drivers/Microsoft/GraphAPIAdvanced/GraphParams","path":"Microsoft/GraphAPIAdvanced/GraphParams.html","kind":"alias","full_name":"Microsoft::GraphAPIAdvanced::GraphParams","name":"GraphParams","abstract":false,"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String)","aliased_html":"{tenant: String, client_id: String, client_secret: String}","const":false,"namespace":{"html_id":"drivers/Microsoft/GraphAPIAdvanced","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced"}}]},{"html_id":"drivers/Microsoft/Level","path":"Microsoft/Level.html","kind":"class","full_name":"Microsoft::Level","name":"Level","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L8"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"online:Int32-instance-method","name":"online","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L14"},"def":{"name":"online","return_type":"Int32","visibility":"Public","body":"@online"}}]},{"html_id":"drivers/Microsoft/Location","path":"Microsoft/Location.html","kind":"class","full_name":"Microsoft::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"doc":"Example Response:\n[{\"Alias\":\"dwatson\",\"LastUpdate\":\"2015-11-12T02:25:50.017Z\",\"Confidence\":100,\n \"Coordinates\":{\"Building\":\"SYDNEY\",\"Level\":\"2\",\"X\":76,\"Y\":29,\"LocationDescription\":\"2140\",\"MapByLocationId\":true},\n \"GPS\":{\"Latitude\":-33.796597429,\"Longitude\":151.1382508278,\"Accuracy\":0.0,\"LocationDescription\":null},\n \"LocationIdentifier\":null,\"Status\":\"Located\",\"LocatedUsing\":\"FixedLocation\",\"Type\":\"Person\",\"Comments\":null,\n \"ExtendedUserData\":{\"Alias\":\"dwatson\",\"DisplayName\":\"David Watson\",\"EmailAddress\":\"David.Watson@microsoft.com\",\"LyncSipAddress\":\"dwatson@microsoft.com\"}}]","summary":"

Example Response: [{"Alias":"dwatson","LastUpdate":"2015-11-12T02:25:50.017Z","Confidence":100, "Coordinates":{"Building":"SYDNEY","Level":"2","X":76,"Y":29,"LocationDescription":"2140","MapByLocationId":true}, "GPS":{"Latitude":-33.796597429,"Longitude":151.1382508278,"Accuracy":0.0,"LocationDescription":null}, "LocationIdentifier":null,"Status":"Located","LocatedUsing":"FixedLocation","Type":"Person","Comments":null, "ExtendedUserData":{"Alias":"dwatson","DisplayName":"David Watson","EmailAddress":"David.Watson@microsoft.com","LyncSipAddress":"dwatson@microsoft.com"}}]

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence:Float64-instance-method","name":"confidence","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L85"},"def":{"name":"confidence","return_type":"Float64","visibility":"Public","body":"@confidence"}},{"html_id":"coordinates:Coordinates|Nil-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L88"},"def":{"name":"coordinates","return_type":"Coordinates | ::Nil","visibility":"Public","body":"@coordinates"}},{"html_id":"gps:GPS|Nil-instance-method","name":"gps","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L91"},"def":{"name":"gps","return_type":"GPS | ::Nil","visibility":"Public","body":"@gps"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L82"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"located_using:String|Nil-instance-method","name":"located_using","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L100"},"def":{"name":"located_using","return_type":"String | ::Nil","visibility":"Public","body":"@located_using"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L94"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L97"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L103"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"user_data:UserData|Nil-instance-method","name":"user_data","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L106"},"def":{"name":"user_data","return_type":"UserData | ::Nil","visibility":"Public","body":"@user_data"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L76"},"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}],"types":[{"html_id":"drivers/Microsoft/Location/RFC3339Converter","path":"Microsoft/Location/RFC3339Converter.html","kind":"module","full_name":"Microsoft::Location::RFC3339Converter","name":"RFC3339Converter","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft/Location","kind":"class","full_name":"Microsoft::Location","name":"Location"},"class_methods":[{"html_id":"from_json(value:JSON::PullParser):Time-class-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser) : Time","args_html":"(value : JSON::PullParser) : Time","location":{"filename":"src/microsoft/find_me_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L66"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"return_type":"Time","visibility":"Public","body":"Time::Format::RFC_3339.parse(value.read_string)"}},{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L70"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(Time::Format::RFC_3339.format(value, 1))"}}]}]},{"html_id":"drivers/Microsoft/UserData","path":"Microsoft/UserData.html","kind":"class","full_name":"Microsoft::UserData","name":"UserData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L50"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L53"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L47"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]},{"html_id":"drivers/MuleSoft","path":"MuleSoft.html","kind":"module","full_name":"MuleSoft","name":"MuleSoft","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MuleSoft/Booking","path":"MuleSoft/Booking.html","kind":"class","full_name":"MuleSoft::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L9"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L9"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L18"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L18"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L15"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L15"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L20"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L20"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L6"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L6"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"to_placeos-instance-method","name":"to_placeos","doc":"we need this method to create an intermediary hash\notherwise when to_json is called all the field names revert to the MuleSoft ones","summary":"

we need this method to create an intermediary hash otherwise when to_json is called all the field names revert to the MuleSoft ones

","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L24"},"def":{"name":"to_placeos","visibility":"Public","body":"value = {\"title\" => @title, \"body\" => @body, \"recurring_master_id\" => @recurring_master_id, \"event_start\" => @event_start, \"event_end\" => @event_end, \"location\" => @location}"}}]},{"html_id":"drivers/MuleSoft/BookingResults","path":"MuleSoft/BookingResults.html","kind":"class","full_name":"MuleSoft::BookingResults","name":"BookingResults","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L37"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookings:Array(Booking)-instance-method","name":"bookings","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L47"},"def":{"name":"bookings","return_type":"Array(Booking)","visibility":"Public","body":"@bookings"}},{"html_id":"bookings=(bookings:Array(Booking))-instance-method","name":"bookings=","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L47"},"def":{"name":"bookings=","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"@bookings = bookings"}},{"html_id":"count:Int64-instance-method","name":"count","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L39"},"def":{"name":"count","return_type":"Int64","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int64)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int64"}],"args_string":"(count : Int64)","args_html":"(count : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L39"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int64"}],"visibility":"Public","body":"@count = count"}},{"html_id":"venue_code:String-instance-method","name":"venue_code","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code","return_type":"String","visibility":"Public","body":"@venue_code"}},{"html_id":"venue_code=(venue_code:String)-instance-method","name":"venue_code=","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"args_string":"(venue_code : String)","args_html":"(venue_code : String)","location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code=","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"visibility":"Public","body":"@venue_code = venue_code"}},{"html_id":"venue_name:String-instance-method","name":"venue_name","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name","return_type":"String","visibility":"Public","body":"@venue_name"}},{"html_id":"venue_name=(venue_name:String)-instance-method","name":"venue_name=","abstract":false,"args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"args_string":"(venue_name : String)","args_html":"(venue_name : String)","location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name=","args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"visibility":"Public","body":"@venue_name = venue_name"}}]},{"html_id":"drivers/MuleSoft/BookingsAPI","path":"MuleSoft/BookingsAPI.html","kind":"class","full_name":"MuleSoft::BookingsAPI","name":"BookingsAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/booking_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_current_booking-instance-method","name":"check_current_booking","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L78"},"def":{"name":"check_current_booking","visibility":"Public","body":"now = Time.utc.to_unix\nprevious_booking = nil\ncurrent_booking = nil\nnext_booking = Int32::MAX\n@bookings.each_with_index do |event, index|\n starting = event.event_start\n if starting > now\n next_booking = index\n if index > 0\n previous_booking = index - 1\n end\n break\n end\n ending_unix = event.event_end\n if ending_unix < now\n next\n end\n if starting <= now && ending_unix > now\n current_booking = index\n if index > 0\n previous_booking = index - 1\n end\n next_booking = index + 1\n break\n end\nend\nif next_booking >= (@bookings.size - 1)\n next_booking = nil\nend\nself[:previous_booking] = previous_booking ? @bookings[previous_booking].to_placeos : nil\nself[:current_booking] = current_booking ? @bookings[current_booking].to_placeos : nil\nself[:next_booking] = next_booking ? @bookings[next_booking].to_placeos : nil\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L36"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@running_a_spec = !!(setting(Bool, :running_a_spec))\n@username = setting(String, :username)\n@password = setting(String, :password)\n@basic_auth_enabled = !!(setting?(Bool, :basic_auth_enabled))\nlogger.debug do\n \"basic_auth_enabled is #{@basic_auth_enabled}\"\nend\n@base_path = setting(String, :base_path)\n@venue_code = setting(String, :venue_code)\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\ntime_zone = (setting?(String, :time_zone)).presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@ssl_auth_enabled = !!(setting?(Bool, :ssl_auth_enabled))\nif @ssl_auth_enabled\n save_ssl_credentials\nend\nlogger.debug do\n \"ssl_auth_enabled is #{@ssl_auth_enabled}\"\nend\nschedule.in((Random.rand(60)).seconds + (Random.rand(1000)).milliseconds) do\n poll_bookings\nend\ncron_string = (setting?(String, :polling_cron)).presence || \"*/30 7-20 * * *\"\nschedule.cron(cron_string, @time_zone) do\n poll_bookings(random_delay: true)\nend\n"}},{"html_id":"poll_bookings(random_delay:Bool=false)-instance-method","name":"poll_bookings","abstract":false,"args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"args_string":"(random_delay : Bool = false)","args_html":"(random_delay : Bool = false)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L63"},"def":{"name":"poll_bookings","args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"visibility":"Public","body":"now = Time.local(@time_zone)\nfrom = now - 1.week\nto = now + 1.week\nlogger.debug do\n \"polling bookings #{@venue_code}, from #{from}, to #{to}, in #{@time_zone.name}\"\nend\nif random_delay\n logger.debug do\n \"random delay of <30seconds to reduce instantaneous Mulesoft API load\"\n end\n sleep(Random.rand(30.0))\nend\nquery_bookings(@venue_code, from, to)\ncheck_current_booking\n"}},{"html_id":"query_bookings(venue_code:String,starts_at:Time=Time.local.at_beginning_of_day,ends_at:Time=Time.local.at_end_of_day)-instance-method","name":"query_bookings","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"args_string":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","args_html":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L118"},"def":{"name":"query_bookings","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"visibility":"Public","body":"client = HTTP::Client.new(host: @host, tls: (@ssl_auth_enabled ? @context : nil))\nparams = {\"startDateTime\" => starts_at.to_s(\"%FT%T\"), \"endDateTime\" => ends_at.to_s(\"%FT%T\")}.join('&') do |k, v|\n \"#{k}=#{v}\"\nend\nheaders = HTTP::Headers {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}\nif @basic_auth_enabled\n headers.add(\"Authorization\", \"Basic #{Base64.strict_encode(\"#{@username}:#{@password}\")}\")\nend\nif @running_a_spec\n response = get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nelse\n response = client.get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nend\nif (200...300).includes?(response.status_code)\nelse\n raise(\"request failed with #{response.status_code}: #{response.body}\")\nend\nif response.body.presence != nil\n results = BookingResults.from_json(response.body)\n self[:venue_code] = results.venue_code\n self[:venue_name] = results.venue_name\n @bookings = results.bookings.sort do |a, b|\n a.event_start <=> b.event_start\n end\n self[:bookings] = @bookings.map(&.to_placeos)\nelse\n self[:venue_code] = nil\n self[:venue_name] = nil\n self[:bookings] = nil\nend\n"}},{"html_id":"query_bookings_epoch(venue_code:String,starts_at:Int32,ends_at:Int32)-instance-method","name":"query_bookings_epoch","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"args_string":"(venue_code : String, starts_at : Int32, ends_at : Int32)","args_html":"(venue_code : String, starts_at : Int32, ends_at : Int32)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L159"},"def":{"name":"query_bookings_epoch","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"visibility":"Public","body":"query_bookings(venue_code, Time.unix(starts_at), Time.unix(ends_at))"}}]},{"html_id":"drivers/MuleSoft/CalendarExporter","path":"MuleSoft/CalendarExporter.html","kind":"class","full_name":"MuleSoft::CalendarExporter","name":"CalendarExporter","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/calendar_exporter.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_all_events(past_days:Int32=14,future_days:Int32=14)-instance-method","name":"delete_all_events","abstract":false,"args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"args_string":"(past_days : Int32 = 14, future_days : Int32 = 14)","args_html":"(past_days : Int32 = 14, future_days : Int32 = 14)","location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L137"},"def":{"name":"delete_all_events","args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"visibility":"Public","body":"events = fetch_events(past_span: past_days.days, future_span: future_days.days)\nevent_ids = events.map do |e|\n e[\"id\"]\nend\nevent_ids.each do |event_id|\n calendar.delete_event(calendar_id: system.email.not_nil!, event_id: event_id)\nend\n\"Deleted #{event_ids.size} events\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"@just_this_system = {email: system.email.not_nil!, name: system.name}\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\n@time_zone_string = (setting?(String, :calendar_time_zone)).presence\nif @time_zone_string\n @time_zone = Time::Location.load(@time_zone_string.not_nil!)\nend\nself[:timezone] = Time.local.to_s\nsubscription = system.subscribe(:Bookings_1, :bookings) do |_subscription, mulesoft_bookings|\n logger.debug do\n \"DETECTED changed in Mulesoft Bookings..\"\n end\n latest_bookings : Array(Hash(String, Int64 | String | Nil)) = [] of Hash(String, Int64 | String | Nil)\n latest_bookings = Array(Hash(String, Int64 | String | Nil)).from_json(mulesoft_bookings)\n logger.debug do\n \"#{latest_bookings.size} bookings in total\"\n end\n removed_bookings = @bookings - latest_bookings\n now = Time.utc.to_unix\n deleted_bookings = removed_bookings.reject do |b|\n b[\"event_end\"].not_nil!.to_i64 < now\n end\n update_events\n deleted_bookings.each do |b|\n delete_matching_event(b)\n end\n @bookings = latest_bookings\n @bookings.each do |b|\n export_booking(b)\n end\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L63"},"def":{"name":"status","visibility":"Public","body":"{bookings: @bookings, events: @existing_events, deleted_events: @deleted_events}"}},{"html_id":"update_events-instance-method","name":"update_events","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L71"},"def":{"name":"update_events","visibility":"Public","body":"logger.debug do\n \"FETCHING existing Calendar events...\"\nend\n@existing_events = fetch_events()\nlogger.debug do\n \"#{@existing_events.size} events in total\"\nend\n"}}]},{"html_id":"drivers/MuleSoft/DateTimeConvertor","path":"MuleSoft/DateTimeConvertor.html","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/MuleSoft/DateTimeConvertor","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"instance_methods":[{"html_id":"from_json(pull:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L57"},"def":{"name":"from_json","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(Time.parse(pull.read_string, \"%FT%T\", Time::Location.local)).to_unix"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/mulesoft/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L53"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string((Time.unix(value)).to_local.to_s(\"%FT%T\"))"}}]}]},{"html_id":"drivers/Nec","path":"Nec.html","kind":"module","full_name":"Nec","name":"Nec","abstract":false,"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Nec/Display","path":"Nec/Display.html","kind":"class","full_name":"Nec::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"13_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_input(priority:Int32=0)-instance-method","name":"audio_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"audio_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AudioInput), priority: priority, name: \"audio_input\")"}},{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L105"},"def":{"name":"auto_adjust","visibility":"Public","body":"data = MsgType::SetParameter.build(Command::AutoSetup, 1)\nsend(data, name: \"auto_adjust\")\n"}},{"html_id":"auto_setup(priority:Int32=0)-instance-method","name":"auto_setup","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"auto_setup","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AutoSetup), priority: priority, name: \"auto_setup\")"}},{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L110"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::BrightnessStatus, val.clamp(0, 100))\nsend(data, name: \"brightness\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"brightness_status(priority:Int32=0)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::BrightnessStatus), priority: priority, name: \"brightness_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L116"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::ContrastStatus, val.clamp(0, 100))\nsend(data, name: \"contrast\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"contrast_status(priority:Int32=0)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::ContrastStatus), priority: priority, name: \"contrast_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"current_power = power?(priority: 0)\nlogger.debug do\n \"Polling, power = #{current_power}\"\nend\nif current_power\n mute_status\n video_input\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/nec/display.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L139"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"logger.debug do\n \"requested to update mute to #{state}\"\nend\ndata = MsgType::SetParameter.build(Command::MuteStatus, state ? 1 : 0)\nresp = send(data, name: \"mute_audio\")\nresp\n"}},{"html_id":"mute_status(priority:Int32=0)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::MuteStatus), priority: priority, name: \"mute_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 120.milliseconds\nqueue.timeout = 5.seconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/display.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:power]? == state\n return\nend\nif state\n logger.debug do\n \"requested to power on\"\n end\n data = MsgType::Command.build(Command::SetPower, 1)\n send(data, name: \"power\", delay: 5.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n data = MsgType::Command.build(Command::SetPower, 4)\n send(data, name: \"power\", delay: 10.seconds, timeout: 10.seconds)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L73"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"data = MsgType::Command.build(Command::PowerQuery)\n(send(data, **options, name: \"power?\")).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerOnDelay), priority: priority, name: \"power_on_delay\")"}},{"html_id":"power_query(priority:Int32=0)-instance-method","name":"power_query","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"power_query","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerQuery), priority: priority, name: \"power_query\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/display.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L157"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"NEC sent: 0x#{data.hexstring}\"\nend\nheader = data[0..6]\nmessage = data[7..-3]\nchecksum = data[-2]\nbegin\n case MsgType.from_value(header[4])\n when .command_reply?\n parse_command_reply(message)\n when .get_parameter_reply?, .set_parameter_reply?\n parse_response(message)\n else\n raise(\"unknown message type\")\n end\nrescue e\n logger.warn(exception: e) do\n \"processing response\"\n end\n task.try(&.abort(e.message))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save(priority:Int32=0)-instance-method","name":"save","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"save","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::Save), priority: priority, name: \"save\")"}},{"html_id":"set_power(priority:Int32=0)-instance-method","name":"set_power","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"set_power","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::SetPower), priority: priority, name: \"set_power\")"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/display.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L99"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch audio to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::AudioInput, input.value)\nsend(data, name: \"audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/display.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L79"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::VideoInput, input.value)\nsend(data, name: \"input\", delay: 6.seconds)\n"}},{"html_id":"video_input(priority:Int32=0)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VideoInput), priority: priority, name: \"video_input\")"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/nec/display.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L122"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\ndata = MsgType::SetParameter.build(Command::VolumeStatus, val)\nsend(data, name: \"volume\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L134"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VolumeStatus), priority: priority, name: \"volume_status\")"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L129"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Display/Audio","path":"Nec/Display/Audio.html","kind":"enum","full_name":"Nec::Display::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio1","name":"Audio1","value":"1"},{"id":"Audio2","name":"Audio2","value":"2"},{"id":"Audio3","name":"Audio3","value":"3"},{"id":"Hdmi","name":"Hdmi","value":"4"},{"id":"Tv","name":"Tv","value":"6"},{"id":"DisplayPort1","name":"DisplayPort1","value":"7"},{"id":"DisplayPort2","name":"DisplayPort2","value":"8"},{"id":"Hdmi2","name":"Hdmi2","value":"10"},{"id":"Hdmi3","name":"Hdmi3","value":"11"},{"id":"MultiPicture","name":"MultiPicture","value":"13"},{"id":"ComputeModule","name":"ComputeModule","value":"14"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio1?-instance-method","name":"audio1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L86"},"def":{"name":"audio1?","visibility":"Public","body":"self == Audio1"}},{"html_id":"audio2?-instance-method","name":"audio2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L87"},"def":{"name":"audio2?","visibility":"Public","body":"self == Audio2"}},{"html_id":"audio3?-instance-method","name":"audio3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L88"},"def":{"name":"audio3?","visibility":"Public","body":"self == Audio3"}},{"html_id":"compute_module?-instance-method","name":"compute_module?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L96"},"def":{"name":"compute_module?","visibility":"Public","body":"self == ComputeModule"}},{"html_id":"display_port1?-instance-method","name":"display_port1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L91"},"def":{"name":"display_port1?","visibility":"Public","body":"self == DisplayPort1"}},{"html_id":"display_port2?-instance-method","name":"display_port2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L92"},"def":{"name":"display_port2?","visibility":"Public","body":"self == DisplayPort2"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L93"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L94"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L89"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"multi_picture?-instance-method","name":"multi_picture?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L95"},"def":{"name":"multi_picture?","visibility":"Public","body":"self == MultiPicture"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L90"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}}]},{"html_id":"drivers/Nec/Display/Command","path":"Nec/Display/Command.html","kind":"enum","full_name":"Nec::Display::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L246"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VideoInput","name":"VideoInput","value":"96"},{"id":"AudioInput","name":"AudioInput","value":"558"},{"id":"VolumeStatus","name":"VolumeStatus","value":"98"},{"id":"MuteStatus","name":"MuteStatus","value":"141"},{"id":"PowerOnDelay","name":"PowerOnDelay","value":"728"},{"id":"ContrastStatus","name":"ContrastStatus","value":"18"},{"id":"BrightnessStatus","name":"BrightnessStatus","value":"16"},{"id":"AutoSetup","name":"AutoSetup","value":"30"},{"id":"PowerQuery","name":"PowerQuery","value":"470"},{"id":"Save","name":"Save","value":"12"},{"id":"SetPower","name":"SetPower","value":"12714966"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio_input?-instance-method","name":"audio_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L248"},"def":{"name":"audio_input?","visibility":"Public","body":"self == AudioInput"}},{"html_id":"auto_setup?-instance-method","name":"auto_setup?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L254"},"def":{"name":"auto_setup?","visibility":"Public","body":"self == AutoSetup"}},{"html_id":"brightness_status?-instance-method","name":"brightness_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L253"},"def":{"name":"brightness_status?","visibility":"Public","body":"self == BrightnessStatus"}},{"html_id":"contrast_status?-instance-method","name":"contrast_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L252"},"def":{"name":"contrast_status?","visibility":"Public","body":"self == ContrastStatus"}},{"html_id":"mute_status?-instance-method","name":"mute_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L250"},"def":{"name":"mute_status?","visibility":"Public","body":"self == MuteStatus"}},{"html_id":"power_on_delay?-instance-method","name":"power_on_delay?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L251"},"def":{"name":"power_on_delay?","visibility":"Public","body":"self == PowerOnDelay"}},{"html_id":"power_query?-instance-method","name":"power_query?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L255"},"def":{"name":"power_query?","visibility":"Public","body":"self == PowerQuery"}},{"html_id":"save?-instance-method","name":"save?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L256"},"def":{"name":"save?","visibility":"Public","body":"self == Save"}},{"html_id":"set_power?-instance-method","name":"set_power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L257"},"def":{"name":"set_power?","visibility":"Public","body":"self == SetPower"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L259"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"case self\nwhen .save?\n length = 2\nwhen .set_power?\n length = 6\nelse\n length = 4\nend\n(value.to_s(16, upcase: true)).rjust(length, '0')\n"}},{"html_id":"video_input?-instance-method","name":"video_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L247"},"def":{"name":"video_input?","visibility":"Public","body":"self == VideoInput"}},{"html_id":"volume_status?-instance-method","name":"volume_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L249"},"def":{"name":"volume_status?","visibility":"Public","body":"self == VolumeStatus"}}]},{"html_id":"drivers/Nec/Display/Input","path":"Nec/Display/Input.html","kind":"enum","full_name":"Nec::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"1"},{"id":"Rgbhv","name":"Rgbhv","value":"2"},{"id":"Dvi","name":"Dvi","value":"3"},{"id":"HdmiSet","name":"HdmiSet","value":"4"},{"id":"Video1","name":"Video1","value":"5"},{"id":"Video2","name":"Video2","value":"6"},{"id":"Svideo","name":"Svideo","value":"7"},{"id":"Tuner","name":"Tuner","value":"9"},{"id":"Tv","name":"Tv","value":"10"},{"id":"Dvd1","name":"Dvd1","value":"12"},{"id":"Option","name":"Option","value":"13"},{"id":"Dvd2","name":"Dvd2","value":"14"},{"id":"DisplayPort","name":"DisplayPort","value":"15"},{"id":"Hdmi","name":"Hdmi","value":"17"},{"id":"Hdmi2","name":"Hdmi2","value":"18"},{"id":"Hdmi3","name":"Hdmi3","value":"130"},{"id":"Usb","name":"Usb","value":"135"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L23"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvd1?-instance-method","name":"dvd1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L20"},"def":{"name":"dvd1?","visibility":"Public","body":"self == Dvd1"}},{"html_id":"dvd2?-instance-method","name":"dvd2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L22"},"def":{"name":"dvd2?","visibility":"Public","body":"self == Dvd2"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L25"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L26"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L24"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_set?-instance-method","name":"hdmi_set?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L14"},"def":{"name":"hdmi_set?","visibility":"Public","body":"self == HdmiSet"}},{"html_id":"option?-instance-method","name":"option?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L21"},"def":{"name":"option?","visibility":"Public","body":"self == Option"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == Rgbhv"}},{"html_id":"svideo?-instance-method","name":"svideo?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L17"},"def":{"name":"svideo?","visibility":"Public","body":"self == Svideo"}},{"html_id":"tuner?-instance-method","name":"tuner?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L18"},"def":{"name":"tuner?","visibility":"Public","body":"self == Tuner"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L19"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L27"},"def":{"name":"usb?","visibility":"Public","body":"self == Usb"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"video1?-instance-method","name":"video1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L15"},"def":{"name":"video1?","visibility":"Public","body":"self == Video1"}},{"html_id":"video2?-instance-method","name":"video2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L16"},"def":{"name":"video2?","visibility":"Public","body":"self == Video2"}}]},{"html_id":"drivers/Nec/Display/MsgType","path":"Nec/Display/MsgType.html","kind":"enum","full_name":"Nec::Display::MsgType","name":"MsgType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L280"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"65_u8"},{"id":"CommandReply","name":"CommandReply","value":"66_u8"},{"id":"GetParameter","name":"GetParameter","value":"67_u8"},{"id":"GetParameterReply","name":"GetParameterReply","value":"68_u8"},{"id":"SetParameter","name":"SetParameter","value":"69_u8"},{"id":"SetParameterReply","name":"SetParameterReply","value":"70_u8"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"doc":"Types of messages sent to and from the LCD","summary":"

Types of messages sent to and from the LCD

","instance_methods":[{"html_id":"build(command:Nec::Display::Command,data:Int|Nil=nil)-instance-method","name":"build","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"args_string":"(command : Nec::Display::Command, data : Int | Nil = nil)","args_html":"(command : Nec::Display::Command, data : Int | Nil = nil)","location":{"filename":"src/nec/display.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L288"},"def":{"name":"build","args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"visibility":"Public","body":"command = command.to_s\nmessage = String.build do |str|\n str << \"0*0\"\n str.write_byte(self.value)\n message_length = command.size + 2\n if data\n message_length = message_length + 4\n end\n str << ((message_length.to_s(16, upcase: true)).rjust(2, '0'))\n str.write_byte(2)\n str << command\n if data\n str << ((data.to_s(16, upcase: true)).rjust(4, '0'))\n end\n str.write_byte(3)\nend\nString.build do |str|\n str.write_byte(1)\n str << message\n str.write_byte(message.each_byte.reduce do |a, b|\n a ^ b\n end)\n str.write_byte(DELIMITER)\nend\n"}},{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L281"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"command_reply?-instance-method","name":"command_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L282"},"def":{"name":"command_reply?","visibility":"Public","body":"self == CommandReply"}},{"html_id":"get_parameter?-instance-method","name":"get_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L283"},"def":{"name":"get_parameter?","visibility":"Public","body":"self == GetParameter"}},{"html_id":"get_parameter_reply?-instance-method","name":"get_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L284"},"def":{"name":"get_parameter_reply?","visibility":"Public","body":"self == GetParameterReply"}},{"html_id":"set_parameter?-instance-method","name":"set_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L285"},"def":{"name":"set_parameter?","visibility":"Public","body":"self == SetParameter"}},{"html_id":"set_parameter_reply?-instance-method","name":"set_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L286"},"def":{"name":"set_parameter_reply?","visibility":"Public","body":"self == SetParameterReply"}}]}]},{"html_id":"drivers/Nec/Projector","path":"Nec/Projector.html","kind":"class","full_name":"Nec::Projector","name":"Projector","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{mute_picture: Bytes[2, 16, 0, 0, 0, 18], unmute_picture: Bytes[2, 17, 0, 0, 0, 19], mute_audio_cmd: Bytes[2, 18, 0, 0, 0, 20], unmute_audio_cmd: Bytes[2, 19, 0, 0, 0, 21], mute_onscreen: Bytes[2, 20, 0, 0, 0, 22], unmute_onscreen: Bytes[2, 21, 0, 0, 0, 23], freeze_picture: Bytes[1, 152, 0, 0, 1, 1], unfreeze_picture: Bytes[1, 152, 0, 0, 1, 2], \"lamp?\": Bytes[0, 129, 0, 0, 0, 129], \"input?\": Bytes[0, 133, 0, 0, 1, 2], \"mute?\": Bytes[0, 133, 0, 0, 1, 3], \"error?\": Bytes[0, 136, 0, 0, 0, 136], \"model?\": Bytes[0, 133, 0, 0, 1, 4], lamp_info: Bytes[3, 138, 0, 0, 0, 141], filter_info: Bytes[3, 138, 0, 0, 0, 141], projector_info: Bytes[3, 138, 0, 0, 0, 141], background_black: Bytes[3, 177, 0, 0, 2, 11, 1], background_blue: Bytes[3, 177, 0, 0, 2, 11, 0], background_logo: Bytes[3, 177, 0, 0, 2, 11, 2]}","doc":"Command Listing\nSecond byte used to detect command type","summary":"

Command Listing Second byte used to detect command type

"},{"id":"ERROR_CODES","name":"ERROR_CODES","value":"[{1 => \"Lamp cover error\", 2 => \"Temperature error (Bimetal)\", 8 => \"Fan Error\", 16 => \"Fan Error\", 32 => \"Power Error\", 64 => \"Lamp Error\", 128 => \"Lamp has reached its end of life\"}, {1 => \"Lamp has been used beyond its limit\", 2 => \"Formatter error\", 4 => \"Lamp no.2 Error\"}, {2 => \"FPGA error\", 4 => \"Temperature error (Sensor)\", 8 => \"Lamp housing error\", 16 => \"Lamp data error\", 32 => \"Mirror cover error\", 64 => \"Lamp no.2 has reached its end of life\", 128 => \"Lamp no.2 has been used beyond its limit\"}, {1 => \"Lamp no.2 housing error\", 2 => \"Lamp no.2 data error\", 4 => \"High temperature due to dust pile-up\", 8 => \"A foreign object sensor error\"}]","doc":"Provide all the error info required","summary":"

Provide all the error info required

"},{"id":"INPUT_MAP","name":"INPUT_MAP","value":"{1 => {1 => Input::VGA, 2 => Input::Composite, 3 => Input::SVideo, 6 => Input::HDMI, 7 => Input::Viewer, 33 => Input::HDMI, 34 => Input::DisplayPort}, 2 => {1 => Input::RGBHV, 4 => Input::Component2, 6 => Input::HDMI2, 7 => Input::LAN, 33 => Input::HDMI2}, 3 => {4 => Input::Component}}","doc":"NEC has different values for the input status when compared to input selection","summary":"

NEC has different values for the input status when compared to input selection

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"background_black(**options)-instance-method","name":"background_black","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_black","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_black\"], **options, name: \"background_black\")"}},{"html_id":"background_blue(**options)-instance-method","name":"background_blue","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_blue","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_blue\"], **options, name: \"background_blue\")"}},{"html_id":"background_logo(**options)-instance-method","name":"background_logo","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_logo","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_logo\"], **options, name: \"background_logo\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L59"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:power] = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L196"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?(priority: 0)\n background_black(priority: 0)\n lamp_info(priority: 0)\nend"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"error?\"], **options, name: \"error?\")"}},{"html_id":"filter_info(**options)-instance-method","name":"filter_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"filter_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"filter_info\"], **options, name: \"filter_info\")"}},{"html_id":"freeze_picture(**options)-instance-method","name":"freeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"freeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"freeze_picture\"], **options, name: \"freeze_picture\")"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"input?\"], **options, name: \"input?\")"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp?\"], **options, name: \"lamp?\")"}},{"html_id":"lamp_info(**options)-instance-method","name":"lamp_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"lamp_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp_info\"], **options, name: \"lamp_info\")"}},{"html_id":"model?(**options)-instance-method","name":"model?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"model?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"model?\"], **options, name: \"model?\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/nec/np_series.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L128"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n if state\n mute_picture\n mute_onscreen\n else\n unmute_picture\n end\nend\nif layer.audio? || layer.audio_video?\n state ? mute_audio_cmd : unmute_audio_cmd\nend\n"}},{"html_id":"mute?(**options)-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute?\"], **options, name: \"mute?\")"}},{"html_id":"mute_audio_cmd(**options)-instance-method","name":"mute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_audio_cmd\"], **options, name: \"mute_audio_cmd\")"}},{"html_id":"mute_onscreen(**options)-instance-method","name":"mute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_onscreen\"], **options, name: \"mute_onscreen\")"}},{"html_id":"mute_picture(**options)-instance-method","name":"mute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_picture\"], **options, name: \"mute_picture\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nself[:error] = [] of String\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@power_target = nil\n@input_target = nil\n@volume_min = setting(Int32, :volume_min)\n@volume_max = setting(Int32, :volume_max)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/np_series.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L165"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n command = Bytes[2, 0, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 15.seconds, delay: 1.second)\nelse\n command = Bytes[2, 1, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 60.seconds, delay: 30.seconds, clear_queue: true, priority: 100)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L185"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(COMMAND[:\"lamp?\"], **options, name: \"power?\")).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"projector_info(**options)-instance-method","name":"projector_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"projector_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"projector_info\"], **options, name: \"projector_info\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/np_series.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L302"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(data, task)"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/np_series.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L159"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"command = Bytes[3, 177, 0, 0, 2, 192, input.value]\ndo_send(command, name: \"switch_audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/np_series.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L190"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ncommand = Bytes[2, 3, 0, 0, 2, 1, input.value]\ndo_send(command, name: \"input\")\n"}},{"html_id":"unfreeze_picture(**options)-instance-method","name":"unfreeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unfreeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unfreeze_picture\"], **options, name: \"unfreeze_picture\")"}},{"html_id":"unmute_audio_cmd(**options)-instance-method","name":"unmute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_audio_cmd\"], **options, name: \"unmute_audio_cmd\")"}},{"html_id":"unmute_onscreen(**options)-instance-method","name":"unmute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_onscreen\"], **options, name: \"unmute_onscreen\")"}},{"html_id":"unmute_picture(**options)-instance-method","name":"unmute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_picture\"], **options, name: \"unmute_picture\")"}},{"html_id":"volume(vol:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"args_string":"(vol : Int32 | Float64)","args_html":"(vol : Int32 | Float64)","location":{"filename":"src/nec/np_series.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L103"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ncommand = Bytes[3, 16, 0, 0, 5, 5, 0, 0, vol, 0]\ndo_send(command)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L122"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L117"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Projector/Audio","path":"Nec/Projector/Audio.html","kind":"enum","full_name":"Nec::Projector::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"VGA","name":"VGA","value":"1"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L155"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L156"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Nec/Projector/Input","path":"Nec/Projector/Input.html","kind":"enum","full_name":"Nec::Projector::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"1"},{"id":"RGBHV","name":"RGBHV","value":"2"},{"id":"Composite","name":"Composite","value":"6"},{"id":"SVideo","name":"SVideo","value":"11"},{"id":"Component","name":"Component","value":"16"},{"id":"Component2","name":"Component2","value":"17"},{"id":"HDMI","name":"HDMI","value":"26"},{"id":"HDMI2","name":"HDMI2","value":"27"},{"id":"DisplayPort","name":"DisplayPort","value":"166"},{"id":"LAN","name":"LAN","value":"32"},{"id":"Viewer","name":"Viewer","value":"31"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"component2?-instance-method","name":"component2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L16"},"def":{"name":"component2?","visibility":"Public","body":"self == Component2"}},{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L15"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L13"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L19"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L17"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"lan?-instance-method","name":"lan?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L20"},"def":{"name":"lan?","visibility":"Public","body":"self == LAN"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == RGBHV"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L14"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}},{"html_id":"viewer?-instance-method","name":"viewer?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L21"},"def":{"name":"viewer?","visibility":"Public","body":"self == Viewer"}}]},{"html_id":"drivers/Nec/Projector/Response","path":"Nec/Projector/Response.html","kind":"enum","full_name":"Nec::Projector::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L219"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"8321_u16"},{"id":"InputOrMuteQuery","name":"InputOrMuteQuery","value":"8325_u16"},{"id":"Error","name":"Error","value":"8328_u16"},{"id":"InputSwitch","name":"InputSwitch","value":"8707_u16"},{"id":"Lamp","name":"Lamp","value":"8704_u16"},{"id":"Lamp2","name":"Lamp2","value":"8705_u16"},{"id":"PictureMuteOn","name":"PictureMuteOn","value":"8720_u16"},{"id":"PictureMuteOff","name":"PictureMuteOff","value":"8721_u16"},{"id":"AudioMuteOn","name":"AudioMuteOn","value":"8722_u16"},{"id":"AudioMuteOff","name":"AudioMuteOff","value":"8723_u16"},{"id":"OnscreenMuteOn","name":"OnscreenMuteOn","value":"8724_u16"},{"id":"OnscreenMuteOff","name":"OnscreenMuteOff","value":"8725_u16"},{"id":"VolumeOrImageAdjust","name":"VolumeOrImageAdjust","value":"8976_u16"},{"id":"Info","name":"Info","value":"9098_u16"},{"id":"AudioSwitch","name":"AudioSwitch","value":"9137_u16"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"doc":"TODO: add responses for freeze commands if we need to process them","summary":"

TODO add responses for freeze commands if we need to process them

","class_methods":[{"html_id":"from_bytes?(response)-class-method","name":"from_bytes?","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/nec/np_series.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L236"},"def":{"name":"from_bytes?","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"value = (IO::Memory.new(response[0..1])).read_bytes(UInt16, IO::ByteFormat::BigEndian)\nResponse.from_value?(value)\n"}}],"instance_methods":[{"html_id":"audio_mute_off?-instance-method","name":"audio_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L229"},"def":{"name":"audio_mute_off?","visibility":"Public","body":"self == AudioMuteOff"}},{"html_id":"audio_mute_on?-instance-method","name":"audio_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L228"},"def":{"name":"audio_mute_on?","visibility":"Public","body":"self == AudioMuteOn"}},{"html_id":"audio_switch?-instance-method","name":"audio_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L234"},"def":{"name":"audio_switch?","visibility":"Public","body":"self == AudioSwitch"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L222"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L233"},"def":{"name":"info?","visibility":"Public","body":"self == Info"}},{"html_id":"input_or_mute_query?-instance-method","name":"input_or_mute_query?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L221"},"def":{"name":"input_or_mute_query?","visibility":"Public","body":"self == InputOrMuteQuery"}},{"html_id":"input_switch?-instance-method","name":"input_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L223"},"def":{"name":"input_switch?","visibility":"Public","body":"self == InputSwitch"}},{"html_id":"lamp2?-instance-method","name":"lamp2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L225"},"def":{"name":"lamp2?","visibility":"Public","body":"self == Lamp2"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L224"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"onscreen_mute_off?-instance-method","name":"onscreen_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L231"},"def":{"name":"onscreen_mute_off?","visibility":"Public","body":"self == OnscreenMuteOff"}},{"html_id":"onscreen_mute_on?-instance-method","name":"onscreen_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L230"},"def":{"name":"onscreen_mute_on?","visibility":"Public","body":"self == OnscreenMuteOn"}},{"html_id":"picture_mute_off?-instance-method","name":"picture_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L227"},"def":{"name":"picture_mute_off?","visibility":"Public","body":"self == PictureMuteOff"}},{"html_id":"picture_mute_on?-instance-method","name":"picture_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L226"},"def":{"name":"picture_mute_on?","visibility":"Public","body":"self == PictureMuteOn"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L220"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"volume_or_image_adjust?-instance-method","name":"volume_or_image_adjust?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L232"},"def":{"name":"volume_or_image_adjust?","visibility":"Public","body":"self == VolumeOrImageAdjust"}}]}]}]},{"html_id":"drivers/OfficeRnd","path":"OfficeRnd.html","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd","abstract":false,"locations":[{"filename":"src/office_rnd/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L4"},{"filename":"src/office_rnd/office_rnd_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"OfficeRnD Data Models","summary":"

OfficeRnD Data Models

","types":[{"html_id":"drivers/OfficeRnd/Booking","path":"OfficeRnd/Booking.html","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L88"},"def":{"name":"new","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(resource_id, booking_start, booking_end, summary, team_id, member_id, description, tentative, free)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:BookingTime-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L70"},"def":{"name":"booking_end","return_type":"BookingTime","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:BookingTime-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L68"},"def":{"name":"booking_start","return_type":"BookingTime","visibility":"Public","body":"@booking_start"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L82"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"extras:JSON::Any-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L86"},"def":{"name":"extras","return_type":"JSON::Any","visibility":"Public","body":"@extras"}},{"html_id":"fees:Array(OfficeRnd::BookingFee)-instance-method","name":"fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L85"},"def":{"name":"fees","return_type":"Array(::OfficeRnd::BookingFee)","visibility":"Public","body":"@fees"}},{"html_id":"free:Bool|Nil-instance-method","name":"free","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L84"},"def":{"name":"free","return_type":"Bool | ::Nil","visibility":"Public","body":"@free"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L81"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"overlaps?(time_span:Range(Time,Time))-instance-method","name":"overlaps?","abstract":false,"args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"args_string":"(time_span : Range(Time, Time))","args_html":"(time_span : Range(Time, Time))","location":{"filename":"src/office_rnd/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L106"},"def":{"name":"overlaps?","args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"visibility":"Public","body":"starting, ending = booking_start.time, booking_end.time\nwithin = (time_span.includes?(starting)) || (time_span.includes?(ending))\ncovers = starting < time_span.begin && ending > time_span.end\nwithin || covers\n"}},{"html_id":"plan_id:String-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L77"},"def":{"name":"plan_id","return_type":"String","visibility":"Public","body":"@plan_id"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L75"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L72"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"summary:String|Nil-instance-method","name":"summary","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L73"},"def":{"name":"summary","return_type":"String | ::Nil","visibility":"Public","body":"@summary"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L79"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"tentative:Bool|Nil-instance-method","name":"tentative","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L83"},"def":{"name":"tentative","return_type":"Bool | ::Nil","visibility":"Public","body":"@tentative"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L71"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/BookingFee","path":"OfficeRnd/BookingFee.html","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"credits:Array(Credit)-instance-method","name":"credits","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L63"},"def":{"name":"credits","return_type":"Array(Credit)","visibility":"Public","body":"@credits"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L59"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"extra_fees:Array(JSON::Any|Nil)-instance-method","name":"extra_fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L62"},"def":{"name":"extra_fees","return_type":"Array(JSON::Any | ::Nil)","visibility":"Public","body":"@extra_fees"}},{"html_id":"fee:Fee|Nil-instance-method","name":"fee","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L60"},"def":{"name":"fee","return_type":"Fee | ::Nil","visibility":"Public","body":"@fee"}}]},{"html_id":"drivers/OfficeRnd/BookingTime","path":"OfficeRnd/BookingTime.html","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/office_rnd/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L35"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L33"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}}]},{"html_id":"drivers/OfficeRnd/Credit","path":"OfficeRnd/Credit.html","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L115"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L116"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"credit:String-instance-method","name":"credit","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L117"},"def":{"name":"credit","return_type":"String","visibility":"Public","body":"@credit"}}]},{"html_id":"drivers/OfficeRnd/Data","path":"OfficeRnd/Data.html","kind":"struct","full_name":"OfficeRnd::Data","name":"Data","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/OfficeRnd/Booking","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking"},{"html_id":"drivers/OfficeRnd/BookingFee","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee"},{"html_id":"drivers/OfficeRnd/BookingTime","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime"},{"html_id":"drivers/OfficeRnd/Credit","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit"},{"html_id":"drivers/OfficeRnd/Fee","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee"},{"html_id":"drivers/OfficeRnd/Floor","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor"},{"html_id":"drivers/OfficeRnd/Office","kind":"struct","full_name":"OfficeRnd::Office","name":"Office"},{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy"},{"html_id":"drivers/OfficeRnd/Rate/Extra","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra"},{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},{"html_id":"drivers/OfficeRnd/TokenResponse","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/OfficeRnd/Fee","path":"OfficeRnd/Fee.html","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bill_in_advance:Bool|Nil-instance-method","name":"bill_in_advance","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L53"},"def":{"name":"bill_in_advance","return_type":"Bool | ::Nil","visibility":"Public","body":"@bill_in_advance"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L42"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"is_personal:Bool|Nil-instance-method","name":"is_personal","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L55"},"def":{"name":"is_personal","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_personal"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L48"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L39"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L46"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"plan_id:String|Nil-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L50"},"def":{"name":"plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@plan_id"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L40"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}},{"html_id":"quantity:Int32-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L41"},"def":{"name":"quantity","return_type":"Int32","visibility":"Public","body":"@quantity"}},{"html_id":"refundable:Bool|Nil-instance-method","name":"refundable","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L51"},"def":{"name":"refundable","return_type":"Bool | ::Nil","visibility":"Public","body":"@refundable"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L44"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}}]},{"html_id":"drivers/OfficeRnd/Floor","path":"OfficeRnd/Floor.html","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L189"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area:Int32|Nil-instance-method","name":"area","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L196"},"def":{"name":"area","return_type":"Int32 | ::Nil","visibility":"Public","body":"@area"}},{"html_id":"floor:String|Nil-instance-method","name":"floor","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L192"},"def":{"name":"floor","return_type":"String | ::Nil","visibility":"Public","body":"@floor"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L191"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L198"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L193"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L195"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"target_revenue:Int32|Nil-instance-method","name":"target_revenue","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L200"},"def":{"name":"target_revenue","return_type":"Int32 | ::Nil","visibility":"Public","body":"@target_revenue"}}]},{"html_id":"drivers/OfficeRnd/Office","path":"OfficeRnd/Office.html","kind":"struct","full_name":"OfficeRnd::Office","name":"Office","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L24"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"city:String|Nil-instance-method","name":"city","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L23"},"def":{"name":"city","return_type":"String | ::Nil","visibility":"Public","body":"@city"}},{"html_id":"country:String|Nil-instance-method","name":"country","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L21"},"def":{"name":"country","return_type":"String | ::Nil","visibility":"Public","body":"@country"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image:String|Nil-instance-method","name":"image","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L26"},"def":{"name":"image","return_type":"String | ::Nil","visibility":"Public","body":"@image"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L28"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"state:String|Nil-instance-method","name":"state","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L22"},"def":{"name":"state","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L25"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/OfficeRndAPI","path":"OfficeRnd/OfficeRndAPI.html","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking(booking_id:String)-instance-method","name":"booking","doc":"Get a booking\n","summary":"

Get a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L130"},"def":{"name":"booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/bookings/#{booking_id}\", Booking)"}},{"html_id":"bookings(office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil)-instance-method","name":"bookings","doc":"Get bookings\n","summary":"

Get bookings

","abstract":false,"args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","args_html":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L136"},"def":{"name":"bookings","args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif member_id\n params[\"member\"] = member_id\nend\nif team_id\n params[\"team\"] = team_id\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/bookings\" : \"/bookings?#{query_string}\"\nget_request(path, Array(Booking))\n"}},{"html_id":"create_booking(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-instance-method","name":"create_booking","doc":"Create a booking\n","summary":"

Create a booking

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L164"},"def":{"name":"create_booking","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"create_bookings([Booking.new(resource_id: resource_id, booking_start: booking_start, booking_end: booking_end, summary: summary, team_id: team_id, member_id: member_id, description: description, tentative: tentative, free: free)])"}},{"html_id":"create_bookings(bookings:Array(Booking))-instance-method","name":"create_bookings","doc":"Make a booking\n","summary":"

Make a booking

","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L158"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"post_request(\"/bookings\", body: bookings.to_json)"}},{"html_id":"create_bookings(bookings:Array(BookingArgument))-instance-method","name":"create_bookings","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"args_string":"(bookings : Array(BookingArgument))","args_html":"(bookings : Array(BookingArgument))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L200"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"visibility":"Public","body":"create_bookings(bookings.map do |booking|\n Booking.new(**booking)\nend)"}},{"html_id":"delete_booking(booking_id:String)-instance-method","name":"delete_booking","doc":"Delete a booking\n","summary":"

Delete a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L152"},"def":{"name":"delete_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"!!(delete_request(\"/bookings/#{booking_id}\"))"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L38"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(floor_id:String)-instance-method","name":"floor","doc":"Get a floor\n","summary":"

Get a floor

","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L89"},"def":{"name":"floor","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"path = \"/floors/#{floor_id}\"\nget_request(path, Floor)\n"}},{"html_id":"floors(office_id:String|Nil,name:String|Nil)-instance-method","name":"floors","doc":"Get floors\n","summary":"

Get floors

","abstract":false,"args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil, name : String | Nil)","args_html":"(office_id : String | Nil, name : String | Nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L96"},"def":{"name":"floors","args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif name\n params[\"name\"] = name\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/floors\" : \"/floors?#{query_string}\"\nget_request(path, Array(Floor))\n"}},{"html_id":"get_header-instance-method","name":"get_header","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L77"},"def":{"name":"get_header","visibility":"Public","body":"headers = {\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L46"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nauth_route = @test_auth ? \"http://localhost:17839/oauth/token\" : \"https://identity.officernd.com/oauth/token\"\nparams = HTTP::Params.encode({\"client_id\" => @client_id, \"client_secret\" => @client_secret, \"grant_type\" => \"client_credentials\", \"scope\" => @scopes.join(' ')})\nheaders = HTTP::Headers {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"}\nresponse = HTTP::Client.post(url: auth_route, headers: headers, body: params)\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body)\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"office(name:String)-instance-method","name":"office","doc":"Retrieve office\n","summary":"

Retrieve office

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L216"},"def":{"name":"office","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"path = \"/offices/#{name}\"\nget_request(path, Array(Office))\n"}},{"html_id":"offices-instance-method","name":"offices","doc":"List offices\n","summary":"

List offices

","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L209"},"def":{"name":"offices","visibility":"Public","body":"path = \"/offices\"\nget_request(path, Array(Office))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\n@test_auth = setting(Bool, :test_auth)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@client_id = setting(String, :client_id)\n@client_secret = setting(String, :client_secret)\n@scopes = setting(Array(String), :scopes)\n"}},{"html_id":"resource_bookings(resource_id:String,range_start:Time=Time.utc-5.minutes,range_end:Time=Time.utc+24.hours,office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil):Array(Booking)-instance-method","name":"resource_bookings","doc":"Get bookings for a resource for a given time span\n","summary":"

Get bookings for a resource for a given time span

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","args_html":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L110"},"def":{"name":"resource_bookings","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"return_type":"Array(Booking)","visibility":"Public","body":"time_span = (range_start..range_end)\nbookings(office_id: office_id, member_id: member_id, team_id: team_id).select! do |booking|\n (booking.resource_id == resource_id) && (booking.overlaps?(time_span))\nend\n"}},{"html_id":"resources(type:Resource::Type|String|Nil=nil,name:String|Nil=nil,office_id:String|Nil=nil,available_from:Time|Nil=nil,available_to:Time|Nil=nil)-instance-method","name":"resources","doc":"Get available rooms (resources) by\n- type\n- date range (available_from, available_to)\n- office (office_id)\n- resource name (name)","summary":"

Get available rooms (resources) by - type - date range (available_from, available_to) - office (office_id) - resource name (name)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"args_string":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","args_html":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L229"},"def":{"name":"resources","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"visibility":"Public","body":"if type.is_a?(String)\n type = Resource::Type.parse(type)\nend\nparams = HTTP::Params.new\nif type\n params[\"type\"] = type.to_s\nend\nif name\n params[\"name\"] = name\nend\nif office_id\n params[\"office\"] = office_id\nend\nif available_from\n params[\"availableFrom\"] = available_from.to_s\nend\nif available_to\n params[\"availableTo\"] = available_to.to_s\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/resources\" : \"/resources?#{query_string}\"\nget_request(path, Array(Resource))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L42"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}}],"types":[{"html_id":"drivers/OfficeRnd/OfficeRndAPI/BookingArgument","path":"OfficeRnd/OfficeRndAPI/BookingArgument.html","kind":"alias","full_name":"OfficeRnd::OfficeRndAPI::BookingArgument","name":"BookingArgument","abstract":false,"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L188"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(resource_id: String, booking_start: Time, booking_end: Time, summary: String | Nil, team_id: String | Nil, member_id: String | Nil, description: String | Nil, tentative: Bool | Nil, free: Bool | Nil)","aliased_html":"{resource_id: String, booking_start: Time, booking_end: Time, summary: String?, team_id: String?, member_id: String?, description: String?, tentative: Bool?, free: Bool?}","const":false,"namespace":{"html_id":"drivers/OfficeRnd/OfficeRndAPI","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI"}}]},{"html_id":"drivers/OfficeRnd/Rate","path":"OfficeRnd/Rate.html","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L120"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cancellation_policy:CancellationPolicy-instance-method","name":"cancellation_policy","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L126"},"def":{"name":"cancellation_policy","return_type":"CancellationPolicy","visibility":"Public","body":"@cancellation_policy"}},{"html_id":"extras:Array(Extra)-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L127"},"def":{"name":"extras","return_type":"Array(Extra)","visibility":"Public","body":"@extras"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L122"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"max_duration:Int32-instance-method","name":"max_duration","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L129"},"def":{"name":"max_duration","return_type":"Int32","visibility":"Public","body":"@max_duration"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L123"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L124"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}],"types":[{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","path":"OfficeRnd/Rate/CancellationPolicy.html","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L131"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"minimum_period:Int32-instance-method","name":"minimum_period","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period","return_type":"Int32","visibility":"Public","body":"@minimum_period"}},{"html_id":"minimum_period=(minimum_period:Int32)-instance-method","name":"minimum_period=","abstract":false,"args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"args_string":"(minimum_period : Int32)","args_html":"(minimum_period : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period=","args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"visibility":"Public","body":"@minimum_period = minimum_period"}}]},{"html_id":"drivers/OfficeRnd/Rate/Extra","path":"OfficeRnd/Rate/Extra.html","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L138"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L139"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L140"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}]}]},{"html_id":"drivers/OfficeRnd/Resource","path":"OfficeRnd/Resource.html","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAPPING","name":"MAPPING","value":"{Type::MeetingRoom => \"meeting_room\", Type::PrivateOffices => \"team_room\", Type::PrivateOfficeDesk => \"desk_tr\", Type::DedicatedDesks => \"desk\", Type::HotDesks => \"hotdesk\"}"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L144"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L151"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L145"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L149"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"rate_id:String|Nil-instance-method","name":"rate_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L147"},"def":{"name":"rate_id","return_type":"String | ::Nil","visibility":"Public","body":"@rate_id"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L152"},"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}}],"types":[{"html_id":"drivers/OfficeRnd/Resource/Type","path":"OfficeRnd/Resource/Type.html","kind":"enum","full_name":"OfficeRnd::Resource::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L162"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MeetingRoom","name":"MeetingRoom","value":"0"},{"id":"PrivateOffices","name":"PrivateOffices","value":"1"},{"id":"PrivateOfficeDesk","name":"PrivateOfficeDesk","value":"2"},{"id":"DedicatedDesks","name":"DedicatedDesks","value":"3"},{"id":"HotDesks","name":"HotDesks","value":"4"}],"namespace":{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},"class_methods":[{"html_id":"parse(type:String)-class-method","name":"parse","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L177"},"def":{"name":"parse","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"parsed = Resource::MAPPING.key_for?(type)\nif parsed\nelse\n raise(ArgumentError.new(\"Unrecognised Resource::Type '#{type}'\"))\nend\nparsed\n"}},{"html_id":"valid?(type:String)-class-method","name":"valid?","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L183"},"def":{"name":"valid?","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"!!(Resource::MAPPING.key_for?(type))"}}],"instance_methods":[{"html_id":"dedicated_desks?-instance-method","name":"dedicated_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L166"},"def":{"name":"dedicated_desks?","visibility":"Public","body":"self == DedicatedDesks"}},{"html_id":"hot_desks?-instance-method","name":"hot_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L167"},"def":{"name":"hot_desks?","visibility":"Public","body":"self == HotDesks"}},{"html_id":"meeting_room?-instance-method","name":"meeting_room?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L163"},"def":{"name":"meeting_room?","visibility":"Public","body":"self == MeetingRoom"}},{"html_id":"private_office_desk?-instance-method","name":"private_office_desk?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L165"},"def":{"name":"private_office_desk?","visibility":"Public","body":"self == PrivateOfficeDesk"}},{"html_id":"private_offices?-instance-method","name":"private_offices?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L164"},"def":{"name":"private_offices?","visibility":"Public","body":"self == PrivateOffices"}},{"html_id":"to_json(json:JSON::Builder)-instance-method","name":"to_json","doc":"Serializes this enum member by name.\n\nFor non-flags enums, the serialization is a JSON string. The value is the\nmember name (see `#to_s`) transformed with `String#underscore`.\n\n```\nenum Stages\n INITIAL\n SECOND_STAGE\nend\n\nStages::INITIAL.to_json # => %(\"initial\")\nStages::SECOND_STAGE.to_json # => %(\"second_stage\")\n```\n\nFor flags enums, the serialization is a JSON array including every flagged\nmember individually serialized in the same way as a member of a non-flags enum.\n`None` is serialized as an empty array, `All` as an array containing\nall members.\n\n```\n@[Flags]\nenum Sides\n LEFT\n RIGHT\nend\n\nSides::LEFT.to_json # => %([\"left\"])\n(Sides::LEFT | Sides::RIGHT).to_json # => %([\"left\",\"right\"])\nSides::All.to_json # => %([\"left\",\"right\"])\nSides::None.to_json # => %([])\n```\n\n`ValueConverter.to_json` offers a different serialization strategy based on the\nmember value.","summary":"

Serializes this enum member by name.

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(json : JSON::Builder)","args_html":"(json : JSON::Builder)","location":{"filename":"src/office_rnd/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L173"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(self.to_s)"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L169"},"def":{"name":"to_s","visibility":"Public","body":"Resource::MAPPING[self]"}}]}]},{"html_id":"drivers/OfficeRnd/TokenResponse","path":"OfficeRnd/TokenResponse.html","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L11"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L11"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"scope:String-instance-method","name":"scope","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L14"},"def":{"name":"scope","return_type":"String","visibility":"Public","body":"@scope"}},{"html_id":"scope=(scope:String)-instance-method","name":"scope=","abstract":false,"args":[{"name":"scope","external_name":"scope","restriction":"String"}],"args_string":"(scope : String)","args_html":"(scope : String)","location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L14"},"def":{"name":"scope=","args":[{"name":"scope","external_name":"scope","restriction":"String"}],"visibility":"Public","body":"@scope = scope"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L12"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L12"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]}]},{"html_id":"drivers/OpenAI","path":"OpenAI.html","kind":"module","full_name":"OpenAI","name":"OpenAI","abstract":false,"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L3"},{"filename":"src/open_ai/models/edit_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L4"},{"filename":"src/open_ai/models/model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L3"},{"filename":"src/open_ai/models/text_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/OpenAI/ChatCompletion","path":"OpenAI/ChatCompletion.html","kind":"struct","full_name":"OpenAI::ChatCompletion","name":"ChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(MessageChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L95"},"def":{"name":"choices","return_type":"Array(MessageChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L93"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L89"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L90"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L96"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/CreateChatCompletion","path":"OpenAI/CreateChatCompletion.html","kind":"class","full_name":"OpenAI::CreateChatCompletion","name":"CreateChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/chat/completions","summary":"

POST https://api.openai.com/v1/chat/completions

","constructors":[{"html_id":"new(model:String,messages:Array(OpenAI::Message))-class-method","name":"new","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"args_string":"(model : String, messages : Array(OpenAI::Message))","args_html":"(model : String, messages : Array(OpenAI::Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L30"},"def":{"name":"new","args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(model, messages)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"messages:Array(Message)-instance-method","name":"messages","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages","return_type":"Array(Message)","visibility":"Public","body":"@messages"}},{"html_id":"messages=(messages:Array(Message))-instance-method","name":"messages=","abstract":false,"args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"args_string":"(messages : Array(Message))","args_html":"(messages : Array(Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages=","args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"visibility":"Public","body":"@messages = messages"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/CreateEditCompletion","path":"OpenAI/CreateEditCompletion.html","kind":"class","full_name":"OpenAI::CreateEditCompletion","name":"CreateEditCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/edit_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/edits","summary":"

POST https://api.openai.com/v1/edits

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"input:String-instance-method","name":"input","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input","return_type":"String","visibility":"Public","body":"@input"}},{"html_id":"input=(input:String)-instance-method","name":"input=","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input=","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"@input = input"}},{"html_id":"instruction:String-instance-method","name":"instruction","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction","return_type":"String","visibility":"Public","body":"@instruction"}},{"html_id":"instruction=(instruction:String)-instance-method","name":"instruction=","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"args_string":"(instruction : String)","args_html":"(instruction : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction=","args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"visibility":"Public","body":"@instruction = instruction"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}}]},{"html_id":"drivers/OpenAI/CreateTextCompletion","path":"OpenAI/CreateTextCompletion.html","kind":"class","full_name":"OpenAI::CreateTextCompletion","name":"CreateTextCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/completions","summary":"

POST https://api.openai.com/v1/completions

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"best_of:Int32-instance-method","name":"best_of","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of","return_type":"Int32","visibility":"Public","body":"@best_of"}},{"html_id":"best_of=(best_of:Int32)-instance-method","name":"best_of=","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"args_string":"(best_of : Int32)","args_html":"(best_of : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of=","args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"visibility":"Public","body":"@best_of = best_of"}},{"html_id":"echo:Bool-instance-method","name":"echo","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo","return_type":"Bool","visibility":"Public","body":"@echo"}},{"html_id":"echo=(echo:Bool)-instance-method","name":"echo=","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"args_string":"(echo : Bool)","args_html":"(echo : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo=","args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"visibility":"Public","body":"@echo = echo"}},{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"logprobs:Int32|Nil-instance-method","name":"logprobs","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs","return_type":"Int32 | ::Nil","visibility":"Public","body":"@logprobs"}},{"html_id":"logprobs=(logprobs:Int32|Nil)-instance-method","name":"logprobs=","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"args_string":"(logprobs : Int32 | Nil)","args_html":"(logprobs : Int32 | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs=","args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@logprobs = logprobs"}},{"html_id":"max_tokens:Int32-instance-method","name":"max_tokens","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens","return_type":"Int32","visibility":"Public","body":"@max_tokens"}},{"html_id":"max_tokens=(max_tokens:Int32)-instance-method","name":"max_tokens=","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"args_string":"(max_tokens : Int32)","args_html":"(max_tokens : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens=","args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"visibility":"Public","body":"@max_tokens = max_tokens"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"prompt:String|Array(String)|Nil-instance-method","name":"prompt","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"prompt=(prompt:String|Array(String)|Nil)-instance-method","name":"prompt=","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"args_string":"(prompt : String | Array(String) | Nil)","args_html":"(prompt : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt=","args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@prompt = prompt"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"suffix:String|Nil-instance-method","name":"suffix","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix","return_type":"String | ::Nil","visibility":"Public","body":"@suffix"}},{"html_id":"suffix=(suffix:String|Nil)-instance-method","name":"suffix=","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"args_string":"(suffix : String | Nil)","args_html":"(suffix : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix=","args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"visibility":"Public","body":"@suffix = suffix"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/GPT","path":"OpenAI/GPT.html","kind":"class","full_name":"OpenAI::GPT","name":"GPT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/gpt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat(model:String,message:Message|Array(Message))-instance-method","name":"chat","doc":"creates a completion for the chat message","summary":"

creates a completion for the chat message

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"args_string":"(model : String, message : Message | Array(Message))","args_html":"(model : String, message : Message | Array(Message))","location":{"filename":"src/open_ai/gpt.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L78"},"def":{"name":"chat","args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"visibility":"Public","body":"messages = message.is_a?(Array) ? message : [message]\nchat = CreateChatCompletion.new(model, messages)\nresponse = check(post(\"/v1/chat/completions\", body: chat.to_json))\nchat = ChatCompletion.from_json(response.body)\nupdate_token(chat.usage)\nchat.choices\n"}},{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L37"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"model(id:String)-instance-method","name":"model","doc":"returns the details of the provided model id","summary":"

returns the details of the provided model id

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/open_ai/gpt.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L72"},"def":{"name":"model","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = check(get(\"/v1/models/#{id}\"))\nModel.from_json(response.body)\n"}},{"html_id":"models-instance-method","name":"models","doc":"returns the available models for the current key","summary":"

returns the available models for the current key

","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L66"},"def":{"name":"models","visibility":"Public","body":"response = check(get(\"/v1/models\"))\n(List(Model).from_json(response.body)).data\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"openai_key = setting(String, :openai_key)\nopenai_org = setting?(String, :openai_org)\ntransport.before_request do |request|\n logger.debug do\n \"requesting #{request.method} #{request.path}?#{request.query}\\n#{request.headers}\\n#{request.body}\"\n end\n request.headers[\"Authorization\"] = \"Bearer #{openai_key}\"\n if openai_org\n request.headers[\"OpenAI-Organization\"] = openai_org\n end\n request.headers[\"Content-Type\"] = \"application/json\"\nend\nif usage = setting?(Usage, :token_usage)\n @total_tokens = usage.total_tokens\n @prompt_tokens = usage.prompt_tokens\n @completion_tokens = usage.completion_tokens\nend\n"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L36"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L35"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/List","path":"OpenAI/List.html","kind":"struct","full_name":"OpenAI::List(Type)","name":"List","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Type)-instance-method","name":"data","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L8"},"def":{"name":"data","return_type":"Array(Type)","visibility":"Public","body":"@data"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L7"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}}]},{"html_id":"drivers/OpenAI/Message","path":"OpenAI/Message.html","kind":"struct","full_name":"OpenAI::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"Typically, a conversation is formatted with a system message first,\nfollowed by alternating user and assistant messages.","summary":"

Typically, a conversation is formatted with a system message first, followed by alternating user and assistant messages.

","constructors":[{"html_id":"new(role:Role,content:String)-class-method","name":"new","abstract":false,"args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"args_string":"(role : Role, content : String)","args_html":"(role : Role, content : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L19"},"def":{"name":"new","args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(role, content)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L23"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"role:Role-instance-method","name":"role","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L22"},"def":{"name":"role","return_type":"Role","visibility":"Public","body":"@role"}}]},{"html_id":"drivers/OpenAI/MessageChoice","path":"OpenAI/MessageChoice.html","kind":"struct","full_name":"OpenAI::MessageChoice","name":"MessageChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L78"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L79"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L83"},"def":{"name":"finish_reason","return_type":"String","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L81"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"message:Message-instance-method","name":"message","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L82"},"def":{"name":"message","return_type":"Message","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/OpenAI/Model","path":"OpenAI/Model.html","kind":"struct","full_name":"OpenAI::Model","name":"Model","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"GET https://api.openai.com/v1/models","summary":"

GET https://api.openai.com/v1/models

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L27"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L28"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"owned_by:String-instance-method","name":"owned_by","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L29"},"def":{"name":"owned_by","return_type":"String","visibility":"Public","body":"@owned_by"}}]},{"html_id":"drivers/OpenAI/Role","path":"OpenAI/Role.html","kind":"enum","full_name":"OpenAI::Role","name":"Role","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"User","name":"User","value":"0","doc":"Can be generated by the end users of an application, or set by a developer as an instruction.","summary":"

Can be generated by the end users of an application, or set by a developer as an instruction.

"},{"id":"System","name":"System","value":"1","doc":"The system message helps set the behavior of the assistant.\nGPT 3 does not always pay strong attention to system messages","summary":"

The system message helps set the behavior of the assistant.

"},{"id":"Assistant","name":"Assistant","value":"2","doc":"The assistant messages help store prior responses. They can also be written by a developer to help give examples of desired behavior.","summary":"

The assistant messages help store prior responses.

"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"instance_methods":[{"html_id":"assistant?-instance-method","name":"assistant?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L11"},"def":{"name":"assistant?","visibility":"Public","body":"self == Assistant"}},{"html_id":"system?-instance-method","name":"system?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L9"},"def":{"name":"system?","visibility":"Public","body":"self == System"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L6"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/OpenAI/TextChoice","path":"OpenAI/TextChoice.html","kind":"struct","full_name":"OpenAI::TextChoice","name":"TextChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String|Nil-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L78"},"def":{"name":"finish_reason","return_type":"String | ::Nil","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L77"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L76"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}}]},{"html_id":"drivers/OpenAI/TextCompletion","path":"OpenAI/TextCompletion.html","kind":"struct","full_name":"OpenAI::TextCompletion","name":"TextCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(TextChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L91"},"def":{"name":"choices","return_type":"Array(TextChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L89"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L84"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L85"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L86"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L92"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/Usage","path":"OpenAI/Usage.html","kind":"struct","full_name":"OpenAI::Usage","name":"Usage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(total_tokens:Int64,prompt_tokens:Int64,completion_tokens:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"args_string":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","args_html":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","location":{"filename":"src/open_ai/models/model.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L14"},"def":{"name":"new","args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(total_tokens, prompt_tokens, completion_tokens)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L19"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L18"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L17"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/VoiceControlInterface","path":"OpenAI/VoiceControlInterface.html","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROMPT","name":"PROMPT","value":"OpenAI::Message.new(:user, \"\\n\")"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"custom_prompts:Array(OpenAI::Message)-instance-method","name":"custom_prompts","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L25"},"def":{"name":"custom_prompts","return_type":"Array(OpenAI::Message)","visibility":"Public","body":"@custom_prompts"}},{"html_id":"llm_model_id:String-instance-method","name":"llm_model_id","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L24"},"def":{"name":"llm_model_id","return_type":"String","visibility":"Public","body":"@llm_model_id"}},{"html_id":"module_status(module_id:String):Hash(String,String)-instance-method","name":"module_status","doc":"returns a hash of status values","summary":"

returns a hash of status values

","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Hash(String, String)","args_html":"(module_id : String) : Hash(String, String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L71"},"def":{"name":"module_status","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"system[module_id].__status__"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@llm_model_id = setting(String, :llm_model_id)\n@custom_prompts = (setting?(Array(OpenAI::Message), :custom_prompts)) || ([] of OpenAI::Message)\n"}},{"html_id":"request(text:String)-instance-method","name":"request","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L34"},"def":{"name":"request","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"messages = ([PROMPT] + custom_prompts) + [OpenAI::Message.new(:user, \"The Request: #{text}\")]\nchoices = Array(MessageChoice).from_json((language_model.chat(llm_model_id, messages)).get.to_json)\n"}},{"html_id":"system_metadata-instance-method","name":"system_metadata","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L46"},"def":{"name":"system_metadata","visibility":"Public","body":"metadata = {} of String => Metadata\nsys = system\nsys.modules.each do |module_name|\n 1.upto(sys.count(module_name)) do |index|\n mod = sys.get(module_name, index)\n metadata[\"#{module_name}_#{index}\"] = mod.__metadata__.llm_interface\n end\nend\n{name: sys.name, description: sys.description, modules: metadata}\n"}}],"types":[{"html_id":"drivers/OpenAI/VoiceControlInterface/Metadata","path":"OpenAI/VoiceControlInterface/Metadata.html","kind":"alias","full_name":"OpenAI::VoiceControlInterface::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::DriverModel::Metadata","aliased_html":"PlaceOS::Driver::DriverModel::Metadata","const":false,"namespace":{"html_id":"drivers/OpenAI/VoiceControlInterface","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface"}}]}]},{"html_id":"drivers/Optergy","path":"Optergy.html","kind":"module","full_name":"Optergy","name":"Optergy","abstract":false,"locations":[{"filename":"src/optergy/p864_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ANALOG_INPUT_MODE","name":"ANALOG_INPUT_MODE","value":"{\"2\" => \"10k-2 sensor\", \"6\" => \"Dry Contact\", \"4|10\" => \"Pulse 10 per pulse\", \"3|0|100\" => \"4-20 ma 0 to 100\", \"5\" => \"3K sensor\"}"}],"types":[{"html_id":"drivers/Optergy/AnalogValue","path":"Optergy/AnalogValue.html","kind":"struct","full_name":"Optergy::AnalogValue","name":"AnalogValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L21"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L25"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L28"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L30"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L32"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str.to_f? || 0.0)\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L24"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/BinaryValue","path":"Optergy/BinaryValue.html","kind":"struct","full_name":"Optergy::BinaryValue","name":"BinaryValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L42"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L46"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L41"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L49"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L51"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Bool-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L53"},"def":{"name":"value","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str == \"Active\")\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L45"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/Config","path":"Optergy/Config.html","kind":"struct","full_name":"Optergy::Config","name":"Config","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L13"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"units:Units-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L12"},"def":{"name":"units","return_type":"Units","visibility":"Public","body":"@units"}}]},{"html_id":"drivers/Optergy/ModeResponse","path":"Optergy/ModeResponse.html","kind":"struct","full_name":"Optergy::ModeResponse","name":"ModeResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L70"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L69"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"object_type:Int32-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L73"},"def":{"name":"object_type","return_type":"Int32","visibility":"Public","body":"@object_type"}}]},{"html_id":"drivers/Optergy/P864","path":"Optergy/P864.html","kind":"class","full_name":"Optergy::P864","name":"P864","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"value\", \"input\", \"output\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"analog_input(instance:Int32)-instance-method","name":"analog_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ai/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_inputs-instance-method","name":"analog_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_inputs","visibility":"Public","body":"response = get(\"/api/ai/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_output(instance:Int32)-instance-method","name":"analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_outputs-instance-method","name":"analog_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_outputs","visibility":"Public","body":"response = get(\"/api/ao/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_value(instance:Int32)-instance-method","name":"analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_values-instance-method","name":"analog_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_values","visibility":"Public","body":"response = get(\"/api/av/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"auth_headers-instance-method","name":"auth_headers","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L193"},"def":{"name":"auth_headers","visibility":"Public","body":"HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"binary_input(instance:Int32)-instance-method","name":"binary_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bi/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_inputs-instance-method","name":"binary_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_inputs","visibility":"Public","body":"response = get(\"/api/bi/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_output(instance:Int32)-instance-method","name":"binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_outputs-instance-method","name":"binary_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_outputs","visibility":"Public","body":"response = get(\"/api/bo/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_value(instance:Int32)-instance-method","name":"binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_values-instance-method","name":"binary_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_values","visibility":"Public","body":"response = get(\"/api/bv/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"configuration-instance-method","name":"configuration","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L56"},"def":{"name":"configuration","visibility":"Public","body":"response = get(\"/api/device/config\", headers: auth_headers)\nConfig.from_json(check(response))\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L158"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/authorize\", headers: HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nbody = response.body\nnow = Time.utc\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n set_connected_state(true)\n token = (TokenResponse.from_json(body)).token\n payload, header = JWT.decode(token, verify: false, validate: false)\n issued = payload[\"iat\"].as_i64\n expires = payload[\"exp\"].as_i64\n expires_at = now + ((expires - issued) - 3).seconds\n @auth_expiry = expires_at\n @auth_token = \"Bearer #{token}\"\nelse\n set_connected_state(false)\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.minutes) do\n version\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@unit_mappings = (setting?(Mapping, :unit_mappings)) || Mapping.new\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/optergy/p864.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L318"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nthis_mac = device_mac\nif mac != this_mac\n return nil\nend\nif id\nelse\n return nil\nend\ninstance = id.to_i?\nif instance\nelse\n return nil\nend\ndevice = (begin\n analog_value(instance)\nrescue\n nil\nend)\nif device\nelse\n return nil\nend\nto_sensor(device, this_mac)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/optergy/p864.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L306"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n this_mac = device_mac\n if mac && (mac != this_mac)\n return NO_MATCH\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n analog_values.compact_map do |obj|\n to_sensor(obj, this_mac, filter)\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"set_input_mode(instance:Int32,mode:String)-instance-method","name":"set_input_mode","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(instance : Int32, mode : String)","args_html":"(instance : Int32, mode : String)","location":{"filename":"src/optergy/p864.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L138"},"def":{"name":"set_input_mode","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/ai/#{instance}/mode\", headers: auth_headers, body: {mode: mode}.to_json)\nModeResponse.from_json(check(response))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L149"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L51"},"def":{"name":"version","visibility":"Public","body":"response = get(\"/version\", headers: auth_headers)\n(NamedTuple(version: String).from_json(check(response)))[:version]\n"}},{"html_id":"write_analog_output(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_analog_value(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_binary_output(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"write_binary_value(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/optergy/p864.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L201"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%resp\n = \n{{ response }}\n\n logger.debug \n{ \"received: #{\n%resp\n.body}\" }\n raise \"error response: #{\n%resp\n.status} (#{\n%resp\n.status_code})\\n#{\n%resp\n.body}\" unless \n%resp\n.success?\n \n%resp\n.body\n \n"}}],"types":[{"html_id":"drivers/Optergy/P864/Mapping","path":"Optergy/P864/Mapping.html","kind":"alias","full_name":"Optergy::P864::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/optergy/p864.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Tuple(PlaceOS::Driver::Interface::Sensor::SensorType, String))","aliased_html":"Hash(Int32, {PlaceOS::Driver::Interface::Sensor::SensorType, String})","const":false,"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"}},{"html_id":"drivers/Optergy/P864/TokenResponse","path":"Optergy/P864/TokenResponse.html","kind":"struct","full_name":"Optergy::P864::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"},"constructors":[{"html_id":"new(token:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L154"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone)"}},{"html_id":"copy_with(token_token=@token)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"args_string":"(token _token = @token)","args_html":"(token _token = @token)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"visibility":"Public","body":"self.class.new(_token)"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]}]},{"html_id":"drivers/Optergy/Units","path":"Optergy/Units.html","kind":"enum","full_name":"Optergy::Units","name":"Units","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Metric","name":"Metric","value":"0"},{"id":"Imperial","name":"Imperial","value":"1"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"instance_methods":[{"html_id":"imperial?-instance-method","name":"imperial?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L6"},"def":{"name":"imperial?","visibility":"Public","body":"self == Imperial"}},{"html_id":"metric?-instance-method","name":"metric?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L5"},"def":{"name":"metric?","visibility":"Public","body":"self == Metric"}}]}]},{"html_id":"drivers/Panasonic","path":"Panasonic.html","kind":"module","full_name":"Panasonic","name":"Panasonic","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Panasonic/Camera","path":"Panasonic/Camera.html","kind":"module","full_name":"Panasonic::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Camera/HESeries","path":"Panasonic/Camera/HESeries.html","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MOVEMENT_STOPPED","name":"MOVEMENT_STOPPED","value":"50"},{"id":"ZOOM_MAX","name":"ZOOM_MAX","value":"4095"},{"id":"ZOOM_MIN","name":"ZOOM_MIN","value":"1365"},{"id":"ZOOM_RANGE","name":"ZOOM_RANGE","value":"(ZOOM_MAX - ZOOM_MIN).to_f"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Camera","kind":"module","full_name":"Panasonic::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L254"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n zoom?\n pantilt?\nend"}},{"html_id":"installation(position:Installation)-instance-method","name":"installation","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Installation"}],"args_string":"(position : Installation)","args_html":"(position : Installation)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L223"},"def":{"name":"installation","args":[{"name":"position","external_name":"position","restriction":"Installation"}],"visibility":"Public","body":"request(\"INS\", position.desk? ? 0 : 1) do |resp|\n parse_installation(resp)\nend"}},{"html_id":"installation?-instance-method","name":"installation?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L227"},"def":{"name":"installation?","visibility":"Public","body":"parse_installation(query(\"INS\"))"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L85"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan = (MOVEMENT_STOPPED + (joyspeed(pan_speed))).to_s.rjust(2, '0')\ntilt = (MOVEMENT_STOPPED + (joyspeed(tilt_speed))).to_s.rjust(2, '0')\nif (pan_speed == \"50\") && (tilt_speed == \"50\")\n options = {retries: 4, priority: queue.priority + 50, clear_queue: true, name: :joystick}\nelse\n options = {retries: 1, priority: queue.priority, clear_queue: false, name: :joystick}\nend\nrequest(\"PTS\", \"#{pan}#{tilt}\", **options) do |resp|\n pan, tilt = (resp[3..-1].scan(/.{2}/)).flat_map(&.to_a)\n self[:pan_speed] = pan.not_nil!.to_i - MOVEMENT_STOPPED\n self[:tilt_speed] = tilt.not_nil!.to_i - MOVEMENT_STOPPED\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L141"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0, tilt_speed: position.down? ? @default_movement_speed : -@default_movement_speed)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -@default_movement_speed : @default_movement_speed, tilt_speed: 0)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 130.milliseconds\nschedule.every(1.minute) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@default_movement_speed = (setting?(Int32, :default_movement_speed)) || 12\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Float64)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Float64))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32)-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"args_string":"(pan : Int32, tilt : Int32)","args_html":"(pan : Int32, tilt : Int32)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L238"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"visibility":"Public","body":"pan_val = (pan.to_s(16)).upcase.rjust(4, '0')\ntilt_val = (tilt.to_s(16)).upcase.rjust(4, '0')\nrequest(\"APC\", \"#{pan_val}#{tilt_val}\", name: :pantilt) do |resp|\n parse_pantilt(resp)\nend\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L244"},"def":{"name":"pantilt?","visibility":"Public","body":"parse_pantilt(query(\"APC\"))"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L53"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n delay = 6.seconds\nend\nrequest(\"O\", state ? 1 : 0, delay: delay) do |resp|\n parse_power(resp)\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L58"},"def":{"name":"power?","visibility":"Public","body":"parse_power(query(\"O\"))"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L115"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(preset[:pan], preset[:tilt])\n zoom_to(preset[:zoom])\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L132"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L125"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"do_poll\n@presets[name] = {pan: @pan, tilt: @tilt, zoom: self[:zoom].as_f}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L210"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"move_zoom(0, priority: 100)\njoystick(0, 0)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L189"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .in?\n move_zoom(@default_movement_speed // 2)\nin .out?\n move_zoom(-@default_movement_speed)\nin .stop?\n move_zoom(0)\nend"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L177"},"def":{"name":"zoom?","visibility":"Public","body":"resp = query(\"GZ\")\nif resp.includes?(\"--\")\n message = \"camera in standby, operation unavailable\"\n logger.debug do\n message\n end\n message\nelse\n @zoom_raw = resp[2..-1].to_i(16)\n self[:zoom] = (@zoom_raw - ZOOM_MIN).to_f * (100.0 / ZOOM_RANGE)\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L167"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * ZOOM_RANGE).to_i + ZOOM_MIN\nrequest(\"AXZ\", (zoom_value.to_s(16)).upcase.rjust(3, '0')) do |resp|\n self[:zoom] = resp[3..-1].to_i(16)\nend\n"}}],"types":[{"html_id":"drivers/Panasonic/Camera/HESeries/Installation","path":"Panasonic/Camera/HESeries/Installation.html","kind":"enum","full_name":"Panasonic::Camera::HESeries::Installation","name":"Installation","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Desk","name":"Desk","value":"0"},{"id":"Ceiling","name":"Ceiling","value":"1"}],"namespace":{"html_id":"drivers/Panasonic/Camera/HESeries","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries"},"instance_methods":[{"html_id":"ceiling?-instance-method","name":"ceiling?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L220"},"def":{"name":"ceiling?","visibility":"Public","body":"self == Ceiling"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L219"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}}]}]}]},{"html_id":"drivers/Panasonic/Display","path":"Panasonic/Display.html","kind":"module","full_name":"Panasonic::Display","name":"Display","abstract":false,"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Display/Protocol2","path":"Panasonic/Display/Protocol2.html","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", input: \"IMS\", volume: \"AVL\", volume_query: \"QAV\", audio_mute: \"AMT\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HM1\", Inputs::HDMI2 => \"HM2\", Inputs::VGA => \"PC1\", Inputs::DVI => \"DVI\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Display","kind":"module","full_name":"Panasonic::Display","name":"Display"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","doc":"There is no input query command","summary":"

There is no input query command

","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L111"},"def":{"name":"input?","visibility":"Public","body":"self[:input]?"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There is no video mute command so this only mutes audio","summary":"

There is no video mute command so this only mutes audio

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L116"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"requested audio mute state: #{state}\"\n end\n do_send(:audio_mute, state ? 1 : 0)\nend"}},{"html_id":"mute?:Bool-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L129"},"def":{"name":"mute?","return_type":"Bool","visibility":"Public","body":"(do_send(:audio_mute)).get\n!!self[:audio_mute]?.try(&.as_bool)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L42"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(60.seconds) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"dispadmin\"\n@password = (setting?(String, :password)) || \"@Panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L78"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)\nend\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L91"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power_query, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L175"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic display sent: #{data} for #{task.try(&.name) || \"unknown\"}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\ndata = data[2..-1]\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"display busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"display error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on, :power_off, :power_query\n if (cmd == (:power_on)) || (cmd == (:power_off))\n self[:power] = cmd == (:power_on)\n end\n if cmd == (:power_query)\n self[:power] = val.not_nil!.to_i == 1\n end\n if power_target = @power_target\n if self[:power] == power_target\n @power_target = nil\n else\n power(power_target)\n end\n end\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :volume, :volume_query\n self[:volume] = val.not_nil!.to_f\nwhen :audio_mute\n self[:audio_mute] = val.not_nil!.to_i == 1\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L104"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nself[:input] = input\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L134"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\n(do_send(:volume, val.to_s.rjust(3, '0'))).get\nself[:volume] = val\n"}},{"html_id":"volume?:Int32|Nil-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L142"},"def":{"name":"volume?","return_type":"Int32 | ::Nil","visibility":"Public","body":"(do_send(:volume_query)).get\nself[:volume]?.try(&.as_i)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L152"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L147"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Panasonic/Display/Protocol2/Inputs","path":"Panasonic/Display/Protocol2/Inputs.html","kind":"enum","full_name":"Panasonic::Display::Protocol2::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"DVI","name":"DVI","value":"3"}],"namespace":{"html_id":"drivers/Panasonic/Display/Protocol2","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L25"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L23"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L22"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L24"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Panasonic/Projector","path":"Panasonic/Projector.html","kind":"module","full_name":"Panasonic::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Projector/NTControl","path":"Panasonic/Projector/NTControl.html","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", freeze: \"OFZ\", input: \"IIS\", mute: \"OSH\", lamp: \"Q$S\", lamp_hours: \"Q$L\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HD1\", Inputs::HDMI2 => \"HD2\", Inputs::VGA => \"RG1\", Inputs::VGA2 => \"RG2\", Inputs::Miracast => \"MC1\", Inputs::DVI => \"DVI\", Inputs::DisplayPort => \"DP1\", Inputs::HDBaseT => \"DL1\", Inputs::Composite => \"VID\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Projector","kind":"module","full_name":"Panasonic::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L55"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"lamp_hours?(**options)-instance-method","name":"lamp_hours?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L105"},"def":{"name":"lamp_hours?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp_hours, 1, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes audio + video","summary":"

Mutes audio + video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L133"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"logger.debug do\n \"requested mute state: #{state}\"\nend\nactual = state ? 1 : 0\ndo_send(:mute, actual)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(40.seconds) do\n power?(priority: 0)\n lamp_hours?(priority: 0)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L66"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"admin1\"\n@password = (setting?(String, :password)) || \"panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L83"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:stable_power] = @stable_power = false\nself[:power_target] = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\n do_send(:lamp)\nelse\n logger.debug do\n \"requested to power off\"\n end\n (do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)).get\n schedule.in(10.seconds) do\n do_send(:lamp)\n end\nend\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L101"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L158"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic sent: #{data}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"projector busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"projector error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\ndata = data[2..-1]\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on\n self[:power] = true\nwhen :power_off\n self[:power] = false\nwhen :power_query\n self[:power] = val.not_nil!.to_i == 1\nwhen :freeze\n self[:frozen] = val.not_nil!.to_i == 1\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :mute\n state = self[:mute] = val.not_nil!.to_i == 1\n self[:mute0] = state\n self[:mute0_video] = state\n self[:mute0_audio] = state\nelse\n case task.name\n when \"lamp\"\n ival = resp[0].to_i\n self[:power] = {1, 2}.includes?(ival)\n self[:warming] = ival == 1\n self[:cooling] = ival == 3\n if !@stable_power\n if self[:power] == self[:power_target]\n self[:stable_power] = @stable_power = true\n else\n power(self[:power_target].as_bool)\n end\n end\n when \"lamp_hours\"\n self[:lamp_usage] = data.to_i\n end\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L122"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"if self[:mute]\n unmute\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\nself[:input] = input\n"}}],"types":[{"html_id":"drivers/Panasonic/Projector/NTControl/Inputs","path":"Panasonic/Projector/NTControl/Inputs.html","kind":"enum","full_name":"Panasonic::Projector::NTControl::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"3"},{"id":"Miracast","name":"Miracast","value":"4"},{"id":"DVI","name":"DVI","value":"5"},{"id":"DisplayPort","name":"DisplayPort","value":"6"},{"id":"HDBaseT","name":"HDBaseT","value":"7"},{"id":"Composite","name":"Composite","value":"8"}],"namespace":{"html_id":"drivers/Panasonic/Projector/NTControl","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl"},"instance_methods":[{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L31"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L29"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L28"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L30"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L24"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L23"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"miracast?-instance-method","name":"miracast?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L27"},"def":{"name":"miracast?","visibility":"Public","body":"self == Miracast"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L26"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L25"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]}]},{"html_id":"drivers/Pattr","path":"Pattr.html","kind":"module","full_name":"Pattr","name":"Pattr","abstract":false,"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Pattr/ChatBot","path":"Pattr/ChatBot.html","kind":"class","full_name":"Pattr::ChatBot","name":"ChatBot","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat_data_request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"chat_data_request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/pattr/chat_bot.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L45"},"def":{"name":"chat_data_request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nrequest = Request.from_json(body)\nresponse = case request\nin Location\n locate(request.referencing)\nend\npayload = response.to_json\nif @debug_webhook\n logger.debug do\n payload\n end\nend\n{HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, payload}\n"}},{"html_id":"locate(staff:Array(String))-instance-method","name":"locate","doc":"map reduce search for the users across all buildings","summary":"

map reduce search for the users across all buildings

","abstract":false,"args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"args_string":"(staff : Array(String))","args_html":"(staff : Array(String))","location":{"filename":"src/pattr/chat_bot.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L61"},"def":{"name":"locate","args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"visibility":"Public","body":"searches = staff.map do |username|\n email = username.includes?('@') ? username : nil\n queries = @buildings.map do |building|\n building[:LocationServices].locate_user(email, username)\n end\n {username, queries}\nend\nresponse = {} of String => PlaceLocationResult\nsearches.each do |__temp_871|\n username, queries = __temp_871\n locations = {} of String => PlaceLocationResult\n queries.each do |results|\n (Array(PlaceLocationResult).from_json(results.get.to_json)).map do |location|\n locations[location.location] = location\n end\n end\n if location = (locations[\"meeting\"]? || locations[\"wireless\"]?) || locations[\"desk\"]?\n response[username] = location\n end\nend\nresponse.transform_values do |location|\n case location.location\n when \"meeting\"\n {building: zones[location.building], level: zones[location.level], room: systems[location.sys_id.not_nil!]}\n else\n {building: zones[location.building], level: zones[location.level]}\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"@zones = Hash(String, String).new do |hash, key|\n zone = (staff_api.zone(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg0|\n __arg0.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\n@systems = Hash(String, String).new do |hash, key|\n zone = (staff_api.get_system(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg2|\n __arg2.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\nbuildings = (setting?(Array(String), :buildings)) || [config.control_system.not_nil!.id]\n@buildings = buildings.map do |id|\n system(id)\nend\n"}}]},{"html_id":"drivers/Pattr/Location","path":"Pattr/Location.html","kind":"class","full_name":"Pattr::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},"ancestors":[{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L15"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"referencing:Array(String)-instance-method","name":"referencing","doc":"user emails / usernames of users we want to locate","summary":"

user emails / usernames of users we want to locate

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L19"},"def":{"name":"referencing","return_type":"Array(String)","visibility":"Public","body":"@referencing"}},{"html_id":"request:String-instance-method","name":"request","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L16"},"def":{"name":"request","return_type":"String","visibility":"Public","body":"@request"}}]},{"html_id":"drivers/Pattr/PlaceLocationResult","path":"Pattr/PlaceLocationResult.html","kind":"class","full_name":"Pattr::PlaceLocationResult","name":"PlaceLocationResult","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","doc":"zone ids","summary":"

zone ids

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L29"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L30"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"location:String-instance-method","name":"location","doc":"wireless, desk, meeting, booking","summary":"

wireless, desk, meeting, booking

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L26"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"sys_id:String|Nil-instance-method","name":"sys_id","doc":"system id (if it's a meeting room)","summary":"

system id (if it's a meeting room)

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L33"},"def":{"name":"sys_id","return_type":"String | ::Nil","visibility":"Public","body":"@sys_id"}}]},{"html_id":"drivers/Pattr/Request","path":"Pattr/Request.html","kind":"class","full_name":"Pattr::Request","name":"Request","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Pattr/Location","kind":"class","full_name":"Pattr::Location","name":"Location"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"request type hint","summary":"

request type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"request\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'request' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'request'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n Location.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'request' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"user:String-instance-method","name":"user","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L12"},"def":{"name":"user","return_type":"String","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/Philips","path":"Philips.html","kind":"module","full_name":"Philips","name":"Philips","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Philips/Dynalite","path":"Philips/Dynalite.html","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"254 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n get_current_preset(1)\nend"}},{"html_id":"decrement_area_level(area:UInt8)-instance-method","name":"decrement_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L124"},"def":{"name":"decrement_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 5, 0, 0, 255])"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L24"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(area:UInt8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L59"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 99, 0, 0, 255]\ndo_send(command, wait: true)\n"}},{"html_id":"get_light_level(area:Int32,channel:Int32=255)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, channel : Int32 = 255)","args_html":"(area : Int32, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L116"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"do_send(Bytes[28, area & 255, channel & 255, 97, 0, 0, 255], wait: true)"}},{"html_id":"increment_area_level(area:UInt8)-instance-method","name":"increment_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L120"},"def":{"name":"increment_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 6, 0, 0, 255])"}},{"html_id":"light_level(area:Int32,level:Float64,fade:Int32=1000,channel:Int32=255)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","args_html":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L78"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"cmd = 113\nfade = if fade <= 25500\n fade // 100\nelse\n if fade < 255000\n cmd = 114\n fade // 1000\n else\n cmd = 115\n (fade // 60000).clamp(1, 22)\n end\nend\narea_key = ((Area.new(area.to_u32, channel: channel == 255 ? nil : channel.to_u32)).append(\"level\")).to_s\nself[area_key] = level\nlevel = ((level.clamp(0.0, 100.0)) * LEVEL_PERCENTAGE).to_u8\nlevel = 255_u8 - level\ncommand = Bytes[28, area & 255, channel & 255, cmd, level, fade & 255, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"lighting(area:Int32,state:Bool,fade:Int32=1000)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, state : Bool, fade : Int32 = 1000)","args_html":"(area : Int32, state : Bool, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L71"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100.0 : 0.0\nlight_level(area, level, fade)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L215"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nget_light_level(area_id, area_channel.to_i)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L204"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\nget_current_preset(area_id.to_u8)\n"}},{"html_id":"link_area(area:UInt8,join:UInt8)-instance-method","name":"link_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt8, join : UInt8)","args_html":"(area : UInt8, join : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L134"},"def":{"name":"link_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, join, 20, 0, 0, 255])"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 35.milliseconds\ntransport.tokenizer = Tokenizer.new(8, Bytes[28])\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynalite.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L138"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data.hexstring}\"\nend\ncase data[3]\nwhen 0, 1, 2, 3, 10, 11, 12, 13\n number = data[3]\n if number > 3\n number = number - (10 + 4)\n end\n number = number + ((data[5] * 8) + 1)\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 98\n number = data[2] + 1\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 96\n level = data[4]\n level = 255 - level\n level = level / LEVEL_PERCENTAGE\n channel = data[2].to_u32\n area_key = ((Area.new(data[1].to_u32, channel: channel == 255_u32 ? nil : channel)).append(\"level\")).to_s\n self[area_key] = level\n task.try(&.success(level))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save_preset(area:UInt8,scene:UInt8)-instance-method","name":"save_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"args_string":"(area : UInt8, scene : UInt8)","args_html":"(area : UInt8, scene : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L65"},"def":{"name":"save_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"visibility":"Public","body":"num = (scene - 1) & 255\ncommand = Bytes[28, area, num, 9, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L209"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nlight_level(area_id, level, fade_time.to_i, area_channel.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L199"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\ntrigger(area_id, scene.to_i, fade_time.to_i)\n"}},{"html_id":"stop_all_fading(area:UInt8)-instance-method","name":"stop_all_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L111"},"def":{"name":"stop_all_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 122, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"stop_fading(area:UInt8,channel:UInt8=255_u8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"args_string":"(area : UInt8, channel : UInt8 = 255_u8)","args_html":"(area : UInt8, channel : UInt8 = 255_u8)","location":{"filename":"src/philips/dynalite.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L106"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, channel, 118, 0, 0, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"trigger(area:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","doc":"fade_time in millisecond","summary":"

fade_time in millisecond

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(area : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L37"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade_centi = fade // 10\nself[Area.new(area.to_u32)] = scene\nscene = scene - 1\nbank = scene // 8\nscene = scene - (bank * 8)\nif scene >= 4\n scene = scene + 6\nend\ncommand = Bytes[28, area & 255, fade_centi & 255, scene & 255, (fade_centi >> 8) & 255, bank, 255]\nschedule.in((fade + 200).milliseconds) do\n get_light_level(area)\nend\ndo_send(command, name: \"preset_#{area}_#{scene}\")\n"}},{"html_id":"unlink_area(area:UInt8)-instance-method","name":"unlink_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L128"},"def":{"name":"unlink_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"link_area(area, 0_u8)"}}],"types":[{"html_id":"drivers/Philips/Dynalite/Area","path":"Philips/Dynalite/Area.html","kind":"alias","full_name":"Philips::Dynalite::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Dynalite","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite"}}]},{"html_id":"drivers/Philips/DyNetText","path":"Philips/DyNetText.html","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynet_text.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- polling gateway\"\n end\n get_date\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L38"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"get_current_preset(area:UInt16,join:UInt8=255_u8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8)","args_html":"(area : UInt16, join : UInt8 = 255_u8)","location":{"filename":"src/philips/dynet_text.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L169"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(\"RequestCurrentPreset #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}\" : \"get_area#{area}_#{join}\"))"}},{"html_id":"get_date-instance-method","name":"get_date","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L152"},"def":{"name":"get_date","visibility":"Public","body":"do_send(\"RequestDate\", name: :date)"}},{"html_id":"get_light_level(area:UInt16,join:UInt8=255_u8,channel:UInt16=1_u16)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L183"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"RequestChannelLevel #{channel} #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}_level\" : \"get_area#{area}_#{join}_level\"))"}},{"html_id":"get_time-instance-method","name":"get_time","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L156"},"def":{"name":"get_time","visibility":"Public","body":"do_send(\"RequestTime\", name: :time)"}},{"html_id":"light_level(area:UInt16,level:Float64,join:UInt8=255_u8,fade:UInt32=1000_u32,channel:UInt16=0_u16)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L177"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"level = level.round_away.to_i\ndo_send(\"ChannelLevel #{channel} #{level.clamp(0, 100)} #{area} #{fade} #{join}\", name: \"level#{area}_#{channel}_#{join}\")\n"}},{"html_id":"lighting(area:UInt16,state:Bool,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L173"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"light_level(area, state ? 100.0 : 0.0, join, fade)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L218"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 1_u32\nget_light_level(area_id, area_join, area_channel.to_u16)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L207"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\nget_current_preset(area_id, area_join)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynet_text.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L48"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip(\"\\u0000\\r\\n\\t \")\nif data.empty?\n return\nend\nlogger.debug do\n \"Dynalite sent: #{data}\"\nend\nif @ready\n components = (data.split(\", \")).map do |component|\n parts = component.downcase.split\n value = parts.pop\n key = parts.join(' ')\n {key, value}\n end.to_h\n process_response(data, components, task)\nelse\n if data =~ (/Connection Established/i)\n @ready = true\n self[:ready] = true\n do_send(\"Echo 0\", name: \"echo\")\n do_send(\"Verbose\", name: \"verbose\")\n do_send(\"ReplyOK 1\", name: \"replies\")\n do_send(\"Join 255\", name: \"join\")\n end\nend\n"}},{"html_id":"send_custom(data:String)-instance-method","name":"send_custom","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/philips/dynet_text.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L165"},"def":{"name":"send_custom","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"do_send(data)"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L212"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 0_u32\nlight_level(area_id, level, area_join, fade_time, area_channel.to_u16)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L202"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\ntrigger(area_id, scene.to_u16, area_join, fade_time)\n"}},{"html_id":"stop_fading(area:UInt16,join:UInt8=255_u8,channel:UInt16=0_u16)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L188"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"StopFade #{channel} #{area} #{join}\", name: \"stopfade#{area}_#{join}_#{channel}\")"}},{"html_id":"trigger(area:UInt16,scene:UInt16,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"trigger","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L160"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"do_send(\"Preset #{scene} #{area} #{fade} #{join}\", name: \"preset#{area}_#{join}\")"}}],"types":[{"html_id":"drivers/Philips/DyNetText/Area","path":"Philips/DyNetText/Area.html","kind":"alias","full_name":"Philips::DyNetText::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynet_text.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/DyNetText","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText"}}]},{"html_id":"drivers/Philips/Hue","path":"Philips/Hue.html","kind":"class","full_name":"Philips::Hue","name":"Hue","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"app_key:String-instance-method","name":"app_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L33"},"def":{"name":"app_key","return_type":"String","visibility":"Public","body":"@app_key"}},{"html_id":"client_key:String-instance-method","name":"client_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L36"},"def":{"name":"client_key","return_type":"String","visibility":"Public","body":"@client_key"}},{"html_id":"device_list-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L96"},"def":{"name":"device_list","visibility":"Public","body":"resource_details(Resource::Device)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L184"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\nelse\n raise(\"no area provided\")\nend\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\njson = resource_details(resource, area_id)\nstate = json[\"on\"][\"on\"].as_bool\nstate ? json[\"dimming\"][\"brightness\"].as_i : 0\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L170"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"raise(\"not really a thing\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@app_key = setting(String, :app_key)\n@client_key = setting(String, :client_key)\n@scenes = (setting?(Array(String), :scenes)) || ([] of String)\n"}},{"html_id":"register-instance-method","name":"register","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L52"},"def":{"name":"register","visibility":"Public","body":"response = post(\"/api\", body: {devicetype: \"placeos##{module_id}\", generateclientkey: true}.to_json)\nif response.success?\nelse\n raise(\"unknown error: #{response.body}\")\nend\nresp = (Array(RegResponse).from_json(response.body))[0]\nif success = resp.success\n @app_key = success.username\n @client_key = success.clientkey\n define_setting(:app_key, @app_key)\n define_setting(:client_key, @client_key)\n @app_key\nelse\n error = resp.error.as(HueError)\n logger.error do\n \"type #{error.type}: #{error.description}\"\n end\n error.description\nend\n"}},{"html_id":"resource_details(resource:Resource,id:String|Nil=nil)-instance-method","name":"resource_details","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(resource : Resource, id : String | Nil = nil)","args_html":"(resource : Resource, id : String | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L88"},"def":{"name":"resource_details","args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = get(\"/clip/v2/resource/#{resource.to_s.underscore}#{id.presence ? \"/#{id}\" : \"\"}\", headers: HTTP::Headers {\"hue-application-key\" => app_key})\nJSON.parse(response.body)\n"}},{"html_id":"rgb_to_cie(r:UInt8,g:UInt8,b:UInt8):Tuple(Float64,Float64)-instance-method","name":"rgb_to_cie","doc":"convert RGB to CIE which is used by Hue","summary":"

convert RGB to CIE which is used by Hue

","abstract":false,"args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"args_string":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","args_html":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","location":{"filename":"src/philips/hue.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L105"},"def":{"name":"rgb_to_cie","args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"return_type":"Tuple(Float64, Float64)","visibility":"Public","body":"r_norm = r / 255.0\ng_norm = g / 255.0\nb_norm = b / 255.0\nr_lin = (r_norm > 0.04045) ? ((r_norm + 0.055) / 1.055) ** 2.4 : r_norm / 12.92\ng_lin = (g_norm > 0.04045) ? ((g_norm + 0.055) / 1.055) ** 2.4 : g_norm / 12.92\nb_lin = (b_norm > 0.04045) ? ((b_norm + 0.055) / 1.055) ** 2.4 : b_norm / 12.92\nx = ((r_lin * 0.4124) + (g_lin * 0.3576)) + (b_lin * 0.1805)\ny = ((r_lin * 0.2126) + (g_lin * 0.7152)) + (b_lin * 0.0722)\nz = ((r_lin * 0.0193) + (g_lin * 0.1192)) + (b_lin * 0.9505)\nxy_x = x / ((x + y) + z)\nxy_y = y / ((x + y) + z)\n{xy_x, xy_y}\n"}},{"html_id":"scene_list-instance-method","name":"scene_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L100"},"def":{"name":"scene_list","visibility":"Public","body":"resource_details(Resource::Scene)"}},{"html_id":"scenes:Array(String)-instance-method","name":"scenes","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L38"},"def":{"name":"scenes","return_type":"Array(String)","visibility":"Public","body":"@scenes"}},{"html_id":"set_light_colour(light_id:Int32,r:UInt8=0_u8,g:UInt8=0_u8,b:UInt8=0_u8)-instance-method","name":"set_light_colour","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"args_string":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","args_html":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","location":{"filename":"src/philips/hue.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L128"},"def":{"name":"set_light_colour","args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"visibility":"Public","body":"x, y = rgb_to_cie(r, g, b)\nresponse = put(\"/clip/v2/resource/light/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {color: {xy: {x: x, y: y}}}.to_json)\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"set_light_level(light_id:String,level:UInt32,resource:Resource=Resource::Light)-instance-method","name":"set_light_level","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"args_string":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","args_html":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","location":{"filename":"src/philips/hue.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L137"},"def":{"name":"set_light_level","args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nif level == 0\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: false}}.to_json)\nelse\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: true}, dimming: {brightness: level}}.to_json)\nend\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nlevel\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L174"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"level_int = level.round_away.to_u32\narea = area.as(Area)\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\nset_light_level(area_id, level_int, resource)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","doc":"==================\nLighting Interface\n==================","summary":"

================== Lighting Interface ==================

","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L165"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"scene_id = @scenes[scene]\nset_scene(scene_id)\n"}},{"html_id":"set_scene(scene_id:String)-instance-method","name":"set_scene","abstract":false,"args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"args_string":"(scene_id : String)","args_html":"(scene_id : String)","location":{"filename":"src/philips/hue.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L154"},"def":{"name":"set_scene","args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"visibility":"Public","body":"response = put(\"/clip/v2/resource/scene/#{scene_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {recall: {action: :active}}.to_json)\nif response.success?\nelse\n raise(\"error activating scene (#{response.status})\\n#{response.body}\")\nend\nresponse.body\n"}}],"types":[{"html_id":"drivers/Philips/Hue/Area","path":"Philips/Hue/Area.html","kind":"alias","full_name":"Philips::Hue::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/hue.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"doc":"component == resource\nid == id","summary":"

component == resource id == id

"},{"html_id":"drivers/Philips/Hue/HueError","path":"Philips/Hue/HueError.html","kind":"struct","full_name":"Philips::Hue::HueError","name":"HueError","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(type:Int32,address:String,description:String)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(type : Int32, address : String, description : String)","args_html":"(type : Int32, address : String, description : String)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, address, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"@address"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @address.clone, @description.clone)"}},{"html_id":"copy_with(type_type=@type,address_address=@address,description_description=@description)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"args_string":"(type _type = @type, address _address = @address, description _description = @description)","args_html":"(type _type = @type, address _address = @address, description _description = @description)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _address, _description)"}},{"html_id":"description:String-instance-method","name":"description","abstract":false,"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"type:Int32-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Int32","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Philips/Hue/RegResponse","path":"Philips/Hue/RegResponse.html","kind":"struct","full_name":"Philips::Hue::RegResponse","name":"RegResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(success:RegSuccess|Nil,error:HueError|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"args_string":"(success : RegSuccess | Nil, error : HueError | Nil)","args_html":"(success : RegSuccess | Nil, error : HueError | Nil)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"new","args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(success, error)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@success.clone, @error.clone)"}},{"html_id":"copy_with(success_success=@success,error_error=@error)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"args_string":"(success _success = @success, error _error = @error)","args_html":"(success _success = @success, error _error = @error)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"copy_with","args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"visibility":"Public","body":"self.class.new(_success, _error)"}},{"html_id":"error:HueError|Nil-instance-method","name":"error","abstract":false,"def":{"name":"error","return_type":"HueError | ::Nil","visibility":"Public","body":"@error"}},{"html_id":"success:RegSuccess|Nil-instance-method","name":"success","abstract":false,"def":{"name":"success","return_type":"RegSuccess | ::Nil","visibility":"Public","body":"@success"}}]},{"html_id":"drivers/Philips/Hue/RegSuccess","path":"Philips/Hue/RegSuccess.html","kind":"struct","full_name":"Philips::Hue::RegSuccess","name":"RegSuccess","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(username:String,clientkey:String)-class-method","name":"new","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"args_string":"(username : String, clientkey : String)","args_html":"(username : String, clientkey : String)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"new","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(username, clientkey)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clientkey:String-instance-method","name":"clientkey","abstract":false,"def":{"name":"clientkey","return_type":"String","visibility":"Public","body":"@clientkey"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@username.clone, @clientkey.clone)"}},{"html_id":"copy_with(username_username=@username,clientkey_clientkey=@clientkey)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"args_string":"(username _username = @username, clientkey _clientkey = @clientkey)","args_html":"(username _username = @username, clientkey _clientkey = @clientkey)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"visibility":"Public","body":"self.class.new(_username, _clientkey)"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}]},{"html_id":"drivers/Philips/Hue/Resource","path":"Philips/Hue/Resource.html","kind":"enum","full_name":"Philips::Hue::Resource","name":"Resource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L74"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Light","name":"Light","value":"0"},{"id":"Scene","name":"Scene","value":"1"},{"id":"Room","name":"Room","value":"2"},{"id":"Zone","name":"Zone","value":"3"},{"id":"GroupedLight","name":"GroupedLight","value":"4"},{"id":"Device","name":"Device","value":"5"},{"id":"Motion","name":"Motion","value":"6"},{"id":"GroupedMotion","name":"GroupedMotion","value":"7"},{"id":"GroupedLightLevel","name":"GroupedLightLevel","value":"8"},{"id":"CameraMotion","name":"CameraMotion","value":"9"},{"id":"Temperature","name":"Temperature","value":"10"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"instance_methods":[{"html_id":"camera_motion?-instance-method","name":"camera_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L84"},"def":{"name":"camera_motion?","visibility":"Public","body":"self == CameraMotion"}},{"html_id":"device?-instance-method","name":"device?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L80"},"def":{"name":"device?","visibility":"Public","body":"self == Device"}},{"html_id":"grouped_light?-instance-method","name":"grouped_light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L79"},"def":{"name":"grouped_light?","visibility":"Public","body":"self == GroupedLight"}},{"html_id":"grouped_light_level?-instance-method","name":"grouped_light_level?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L83"},"def":{"name":"grouped_light_level?","visibility":"Public","body":"self == GroupedLightLevel"}},{"html_id":"grouped_motion?-instance-method","name":"grouped_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L82"},"def":{"name":"grouped_motion?","visibility":"Public","body":"self == GroupedMotion"}},{"html_id":"light?-instance-method","name":"light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L75"},"def":{"name":"light?","visibility":"Public","body":"self == Light"}},{"html_id":"motion?-instance-method","name":"motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L81"},"def":{"name":"motion?","visibility":"Public","body":"self == Motion"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L77"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}},{"html_id":"scene?-instance-method","name":"scene?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L76"},"def":{"name":"scene?","visibility":"Public","body":"self == Scene"}},{"html_id":"temperature?-instance-method","name":"temperature?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L85"},"def":{"name":"temperature?","visibility":"Public","body":"self == Temperature"}},{"html_id":"zone?-instance-method","name":"zone?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L78"},"def":{"name":"zone?","visibility":"Public","body":"self == Zone"}}]}]}]},{"html_id":"drivers/Place","path":"Place.html","kind":"module","full_name":"Place","name":"Place","abstract":false,"locations":[{"filename":"src/place/area_config.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L4"},{"filename":"src/place/meet/help.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L3"},{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Place/AreaConfig","path":"Place/AreaConfig.html","kind":"class","full_name":"Place::AreaConfig","name":"AreaConfig","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:String,name,coordinates,building_id=nil,area_type:String=\"Feature\",feature_type:String=\"section\",capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"args_string":"(id : String, name, coordinates, building_id = nil, area_type : String = \"Feature\", feature_type : String = \"section\", capacity = nil)","args_html":"(id : String, name, coordinates, building_id = nil, area_type : String = "Feature", feature_type : String = "section", capacity = nil)","location":{"filename":"src/place/area_config.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, coordinates, building_id, area_type, feature_type, capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L33"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L33"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}},{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L46"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"self.properties[\"building_id\"]?.as?(String)"}},{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L50"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"(self.properties[\"capacity\"]?.as?(Int64 | Float64)).try(&.to_i)"}},{"html_id":"coordinates(map_width:Float64,map_height:Float64)-instance-method","name":"coordinates","abstract":false,"args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"args_string":"(map_width : Float64, map_height : Float64)","args_html":"(map_width : Float64, map_height : Float64)","location":{"filename":"src/place/area_config.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L62"},"def":{"name":"coordinates","args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"visibility":"Public","body":"@adjusted_coords = self.geometry.coordinates.map do |__temp_884|\n x, y = __temp_884\n {x * map_width, y * map_height}\nend"}},{"html_id":"coordinates-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L54"},"def":{"name":"coordinates","visibility":"Public","body":"if coords = @adjusted_coords\n coords\nelse\n self.geometry.coordinates\nend"}},{"html_id":"feature_type:String-instance-method","name":"feature_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L34"},"def":{"name":"feature_type","return_type":"String","visibility":"Public","body":"@feature_type"}},{"html_id":"feature_type=(feature_type:String)-instance-method","name":"feature_type=","abstract":false,"args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"args_string":"(feature_type : String)","args_html":"(feature_type : String)","location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L34"},"def":{"name":"feature_type=","args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"visibility":"Public","body":"@feature_type = feature_type"}},{"html_id":"geometry:Geometry-instance-method","name":"geometry","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L36"},"def":{"name":"geometry","return_type":"Geometry","visibility":"Public","body":"@geometry"}},{"html_id":"geometry=(geometry:Geometry)-instance-method","name":"geometry=","abstract":false,"args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"args_string":"(geometry : Geometry)","args_html":"(geometry : Geometry)","location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L36"},"def":{"name":"geometry=","args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"visibility":"Public","body":"@geometry = geometry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L30"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"self.properties[\"name\"].as(String)"}},{"html_id":"polygon:Polygon-instance-method","name":"polygon","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L66"},"def":{"name":"polygon","return_type":"Polygon","visibility":"Public","body":"@polygon || (@polygon = Polygon.new(coordinates.map do |coords|\n Point.new(*coords)\nend))"}},{"html_id":"properties:Hash(String,JSON::Any::Type)-instance-method","name":"properties","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L37"},"def":{"name":"properties","return_type":"Hash(String, JSON::Any::Type)","visibility":"Public","body":"@properties"}},{"html_id":"properties=(properties:Hash(String,JSON::Any::Type))-instance-method","name":"properties=","abstract":false,"args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(properties : Hash(String, JSON::Any::Type))","args_html":"(properties : Hash(String, JSON::Any::Type))","location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L37"},"def":{"name":"properties=","args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"visibility":"Public","body":"@properties = properties"}}]},{"html_id":"drivers/Place/AreaManagement","path":"Place/AreaManagement.html","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"areas:Hash(String,AreaConfig)-instance-method","name":"areas","doc":"area_id => area","summary":"

area_id => area

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L80"},"def":{"name":"areas","return_type":"Hash(String, AreaConfig)","visibility":"Public","body":"@areas"}},{"html_id":"building_id:String-instance-method","name":"building_id","doc":"PlaceOS client config","summary":"

PlaceOS client config

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L87"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.as(String))\nelse\n __temp_1\nend"}},{"html_id":"campus?:Bool-instance-method","name":"campus?","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L71"},"def":{"name":"campus?","return_type":"Bool","visibility":"Public","body":"@campus"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L160"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"is_inside?(x:Float64,y:Float64,area_id:String):Bool-instance-method","name":"is_inside?","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(x : Float64, y : Float64, area_id : String) : Bool","args_html":"(x : Float64, y : Float64, area_id : String) : Bool","location":{"filename":"src/place/area_management.cr","line_number":581,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L581"},"def":{"name":"is_inside?","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"area = @areas[area_id]\narea.polygon.contains(x, y)\n"}},{"html_id":"level_areas:Hash(String,Array(AreaConfig))-instance-method","name":"level_areas","doc":"zone_id => areas","summary":"

zone_id => areas

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L78"},"def":{"name":"level_areas","return_type":"Hash(String, Array(AreaConfig))","visibility":"Public","body":"@level_areas"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L74"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"@level_buildings"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L84"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"@level_details"}},{"html_id":"level_sensors:Hash(String,Hash(String,SensorMeta))-instance-method","name":"level_sensors","doc":"zone_id => sensors","summary":"

zone_id => sensors

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L76"},"def":{"name":"level_sensors","return_type":"Hash(String, Hash(String, SensorMeta))","visibility":"Public","body":"@level_sensors"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L105"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nspawn do\n update_scheduler\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L112"},"def":{"name":"on_unload","visibility":"Public","body":"@rate_limit.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@include_sensors = (setting?(Bool, :include_sensors)) || false\n@campus = (setting?(Bool, :is_campus)) || false\n@desk_id_mappings = (setting?(Array(String), :desk_id_mappings)) || ([] of String)\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@location_service = (setting?(String, :location_service)).presence || \"LocationServices\"\n@duplication_factor = (setting?(Float64, :duplication_factor)) || 0.8\n@sensor_discovery = Hash(String, Hash(String, SensorMeta)).new do |hash, key|\n hash[key] = {} of String => SensorMeta\nend\n@rounding_precision = (setting?(UInt32, :rounding_precision)) || 2_u32\nif building_areas = setting?(Hash(String, Array(AreaSetting)), :areas)\n @level_areas.clear\n building_areas.each do |zone_id, areas|\n @level_areas[zone_id] = areas.map do |area|\n config = AreaConfig.new(area[:id], area[:name], area[:coordinates], area[:building])\n @areas[config.id] = config\n config\n end\n end\nend\nschedule.clear\nschedule.every(@poll_rate) do\n synchronize_all_levels\nend\nif @include_sensors\n schedule.in(@poll_rate * 3) do\n schedule.every(2.hours + (rand(300)).seconds, immediate: true) do\n write_sensor_discovery\n end\n end\nend\nunits = (setting?(Hash(String, String), :units)) || ({} of String => String)\n@units = units.transform_keys do |key|\n SensorType.parse(key)\nend\n"}},{"html_id":"request_level_locations(level_id:String,sensor_data:Array(SensorDetail)|Nil=nil,overview:Bool=true):Nil-instance-method","name":"request_level_locations","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"args_string":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","args_html":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","location":{"filename":"src/place/area_management.cr","line_number":562,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L562"},"def":{"name":"request_level_locations","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@update_lock.synchronize do\n zone = Zone.from_json((staff_api.zone(level_id)).get.to_json)\n if !(zone.tags.includes?(\"level\"))\n logger.warn do\n \"attempted to update location for #{zone.name} (#{level_id}) which is not tagged as a level\"\n end\n return\n end\n metadata = Metadata.from_json((staff_api.metadata(level_id)).get.to_json)\n update_level_details(@level_details, zone, metadata)\n update_level_locations(@level_counts, level_id, @level_details[level_id], sensor_data)\n if overview\n update_overview\n end\nend"}},{"html_id":"request_sensor_data(level_id:String):Array(SensorDetail)-instance-method","name":"request_sensor_data","doc":"Queries all the sensors in a building and exposes the data","summary":"

Queries all the sensors in a building and exposes the data

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Array(SensorDetail)","args_html":"(level_id : String) : Array(SensorDetail)","location":{"filename":"src/place/area_management.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L206"},"def":{"name":"request_sensor_data","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Array(SensorDetail)","visibility":"Public","body":"level_sensors = @level_sensors[level_id]?\nsensors = location_service.sensors(zone_id: level_id).get.as_a\nif sensors.empty?\n return [] of SensorDetail\nend\ndetails = Array(SensorDetail).from_json(sensors.to_json)\nbuilding_id_local = level_buildings[level_id]? || building_id\nlocs = sensor_locations(level_id)\ndetails = details.select! do |sensor|\n id = sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac\n @sensor_discovery[building_id_local][id] = SensorMeta.new(sensor.name, sensor.type, sensor.level, sensor.x, sensor.y)\n sensor.module_id = sensor.binding = sensor.loc = nil\n if location = locs[id]?\n sensor.x = location.x\n sensor.y = location.y\n sensor.level = location.level\n sensor.building = building_id_local\n end\n if sensor.level.nil? && level_sensors\n if level_sensors[sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac]?\n sensor.level = level_id\n end\n end\n if sensor.x && sensor.level\n if ((curr_unit = sensor.unit) && (desired_unit = @units[sensor.type]?)) && (curr_unit != desired_unit)\n begin\n sensor.value = ((Units::Measurement.new(sensor.value, curr_unit)).convert_to(desired_unit)).to_f\n sensor.unit = desired_unit\n rescue error\n logger.warn(exception: error) do\n \"failed to convert #{sensor.value} #{curr_unit} => #{desired_unit}\"\n end\n end\n end\n sensor\n end\nend\nself[\"#{level_id}:sensors\"] = {value: details, ts_hint: \"complex\", ts_map: {x: \"xloc\", y: \"yloc\"}, ts_tag_keys: {\"s2_cell_id\"}, ts_tags: {pos_building: building_id_local, pos_level: level_id}}\ndetails\n"}},{"html_id":"sensor_discovery:Hash(String,Hash(String,Place::AreaManagement::SensorMeta))-instance-method","name":"sensor_discovery","doc":"Building => sensor_id => sensor meta","summary":"

Building => sensor_id => sensor meta

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L97"},"def":{"name":"sensor_discovery","visibility":"Public","body":"@sensor_discovery"}},{"html_id":"sensor_locations(level_id:String|Nil=nil)-instance-method","name":"sensor_locations","doc":"returns the sensor location data that has been configured","summary":"

returns the sensor location data that has been configured

","abstract":false,"args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil = nil)","args_html":"(level_id : String | Nil = nil)","location":{"filename":"src/place/area_management.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L197"},"def":{"name":"sensor_locations","args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if level_id\n @level_sensors[level_id]? || ({} of String => SensorMeta)\nelse\n @level_sensors.values.reduce({} of String => SensorMeta) do |acc, i|\n acc.merge!(i)\n end\nend"}},{"html_id":"synchronize_all_levels-instance-method","name":"synchronize_all_levels","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L651"},"def":{"name":"synchronize_all_levels","visibility":"Public","body":"@schedule_lock.synchronize do\n @update_all = true\nend"}},{"html_id":"update_available(level_ids:Array(String))-instance-method","name":"update_available","abstract":false,"args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"args_string":"(level_ids : Array(String))","args_html":"(level_ids : Array(String))","location":{"filename":"src/place/area_management.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L647"},"def":{"name":"update_available","args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@schedule_lock.synchronize do\n @update_levels.concat(level_ids)\nend"}},{"html_id":"write_sensor_discovery-instance-method","name":"write_sensor_discovery","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L190"},"def":{"name":"write_sensor_discovery","visibility":"Public","body":"sensor_discovery.each do |b_id, sensors|\n staff_api.write_metadata(b_id, \"sensor-discovered\", sensors)\nend"}}],"types":[{"html_id":"drivers/Place/AreaManagement/AreaSetting","path":"Place/AreaManagement/AreaSetting.html","kind":"alias","full_name":"Place::AreaManagement::AreaSetting","name":"AreaSetting","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: String, name: String, building: String | Nil, coordinates: Array(Tuple(Float64, Float64)))","aliased_html":"{id: String, name: String, building: String?, coordinates: Array({Float64, Float64})}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/ChildMetadata","path":"Place/AreaManagement/ChildMetadata.html","kind":"alias","full_name":"Place::AreaManagement::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L344"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/LevelCapacity","path":"Place/AreaManagement/LevelCapacity.html","kind":"alias","full_name":"Place::AreaManagement::LevelCapacity","name":"LevelCapacity","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String))","aliased_html":"{total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Metadata","path":"Place/AreaManagement/Metadata.html","kind":"alias","full_name":"Place::AreaManagement::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L343"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/RawLevelDetails","path":"Place/AreaManagement/RawLevelDetails.html","kind":"alias","full_name":"Place::AreaManagement::RawLevelDetails","name":"RawLevelDetails","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)), sensors: Hash(String, Float64))","aliased_html":"{wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: {total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}, sensors: Hash(String, Float64)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorDetail","path":"Place/AreaManagement/SensorDetail.html","kind":"alias","full_name":"Place::AreaManagement::SensorDetail","name":"SensorDetail","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::Detail","aliased_html":"PlaceOS::Driver::Interface::Sensor::Detail","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorMeta","path":"Place/AreaManagement/SensorMeta.html","kind":"struct","full_name":"Place::AreaManagement::SensorMeta","name":"SensorMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"},"constructors":[{"html_id":"new(name:Nil|String,type:PlaceOS::Driver::Interface::Sensor::SensorType|Nil,level:Nil|String,x:Float64|Nil,y:Float64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"args_string":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","args_html":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L180"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, type, level, x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_management.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L178"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level:String|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L185"},"def":{"name":"level","return_type":"String | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String|Nil)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"args_string":"(level : String | Nil)","args_html":"(level : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L185"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level = level"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L184"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L184"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:SensorType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L183"},"def":{"name":"type","return_type":"SensorType | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:SensorType|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"args_string":"(type : SensorType | Nil)","args_html":"(type : SensorType | Nil)","location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L183"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"x:Float64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L186"},"def":{"name":"x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64|Nil)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"args_string":"(x : Float64 | Nil)","args_html":"(x : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L186"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L187"},"def":{"name":"y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"args_string":"(y : Float64 | Nil)","args_html":"(y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L187"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Place/AreaManagement/SensorType","path":"Place/AreaManagement/SensorType.html","kind":"alias","full_name":"Place::AreaManagement::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Zone","path":"Place/AreaManagement/Zone.html","kind":"alias","full_name":"Place::AreaManagement::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}}]},{"html_id":"drivers/Place/AttendeeScanner","path":"Place/AttendeeScanner.html","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L27"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"externals_booked_to_visit-instance-method","name":"externals_booked_to_visit","doc":"Find the list of external guests expected in the building today","summary":"

Find the list of external guests expected in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L102"},"def":{"name":"externals_booked_to_visit","visibility":"Public","body":"building = building_id\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\n(staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {building}, type: \"visitor\")).get.as_a.map do |booking|\n Booking.new(booking[\"asset_id\"].as_s.downcase, Time.unix(booking[\"booking_start\"].as_i64), Time.unix(booking[\"booking_end\"].as_i64))\nend\n"}},{"html_id":"externals_in_events-instance-method","name":"externals_in_events","doc":"extract the list of externals invited to meetings in the building today","summary":"

extract the list of externals invited to meetings in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L62"},"def":{"name":"externals_in_events","visibility":"Public","body":"building = building_id\nexternals = [] of Guest\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nsystems.each do |level_id, system_ids|\n zones = {org_id, building, level_id}\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n events = begin\n (sys.get(\"Bookings\", 1)).status(Array(Event), :bookings)\n rescue\n [] of Event\n end\n events.each do |event|\n event_end = event.event_end || end_of_day\n if event_end <= now\n next\n end\n if event.event_start >= end_of_day\n break\n end\n externals.concat(event.attendees.reject do |attendee|\n internal_domains.find do |domain|\n attendee.email.downcase.ends_with?(domain)\n end\n end.map do |attendee|\n Guest.new(zones, system_id, attendee, event)\n end)\n end\n end\n end\nend\nexternals\n"}},{"html_id":"internal_domains:Array(String)-instance-method","name":"internal_domains","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L15"},"def":{"name":"internal_domains","return_type":"Array(String)","visibility":"Public","body":"@internal_domains"}},{"html_id":"invite_external_guests-instance-method","name":"invite_external_guests","doc":"invite missing guests","summary":"

invite missing guests

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L113"},"def":{"name":"invite_external_guests","visibility":"Public","body":"bookings = externals_booked_to_visit\nexternals = externals_in_events\nchecked = externals.size\nfailed = 0\nlogger.debug do\n \"found bookings #{bookings.size} and #{externals.size} externals\"\nend\nexternals.reject! do |guest|\n guest_email = guest.details.email.downcase\n bookings.find do |booking|\n booking.visitor_email == guest_email\n end\nend\nlogger.debug do\n \"found #{externals.size} guests without bookings\"\nend\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nexternals.each do |guest|\n begin\n event = guest.event\n host_email = (event.host.as(String)).downcase\n host = guest.event.attendees.find! do |attend|\n attend.email.downcase == host_email\n end\n guest_email = guest.details.email.downcase\n guest_name = guest.details.name\n sys_info = (staff_api.get_system(guest.system_id)).get\n staff_api.create_booking(booking_type: \"visitor\", asset_id: guest_email, user_id: host_email, user_email: host_email, user_name: host.name, zones: guest.zones, booking_start: event.event_start.to_unix, booking_end: event.event_end.try(&.to_unix) || end_of_day.to_unix, checked_in: false, approved: true, title: guest_name, description: event.title, time_zone: timezone.name, extension_data: {name: guest_name, parent_id: event.id, location_id: sys_info[\"name\"].as_s}, utm_source: \"attendee_scanner\", limit_override: 999, event_id: event.id, ical_uid: event.ical_uid, attendees: [{name: guest_name, email: guest_email}]).get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"failed to invite guest: #{guest.details.email}\"\n end\n end\nend\n{invited: externals.size - failed, checked: checked, failure: failed}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@internal_domains = (setting(Array(String), :internal_domains)).map!() do |__arg0|\n __arg0.strip.downcase\nend\n@building_id = nil\n@timezone = nil\n@systems = nil\n@org_id = nil\n"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L36"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_id).nil?\n @org_id = (begin\n building_details = (staff_api.zone(building_id)).get\n if tz = building_details[\"timezone\"].as_s?\n @timezone = Time::Location.load(tz)\n end\n building_details[\"parent_id\"].as_s\n end)\nelse\n __temp_1\nend"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L32"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/AttendeeScanner/Attendee","path":"Place/AttendeeScanner/Attendee.html","kind":"alias","full_name":"Place::AttendeeScanner::Attendee","name":"Attendee","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event::Attendee","aliased_html":"PlaceCalendar::Event::Attendee","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Booking","path":"Place/AttendeeScanner/Booking.html","kind":"struct","full_name":"Place::AttendeeScanner::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(visitor_email:String,booking_start:Time,booking_end:Time)-class-method","name":"new","abstract":false,"args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"args_string":"(visitor_email : String, booking_start : Time, booking_end : Time)","args_html":"(visitor_email : String, booking_start : Time, booking_end : Time)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"new","args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(visitor_email, booking_start, booking_end)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:Time-instance-method","name":"booking_end","abstract":false,"def":{"name":"booking_end","return_type":"Time","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:Time-instance-method","name":"booking_start","abstract":false,"def":{"name":"booking_start","return_type":"Time","visibility":"Public","body":"@booking_start"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@visitor_email.clone, @booking_start.clone, @booking_end.clone)"}},{"html_id":"copy_with(visitor_email_visitor_email=@visitor_email,booking_start_booking_start=@booking_start,booking_end_booking_end=@booking_end)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"args_string":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","args_html":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"copy_with","args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"visibility":"Public","body":"self.class.new(_visitor_email, _booking_start, _booking_end)"}},{"html_id":"visitor_email:String-instance-method","name":"visitor_email","abstract":false,"def":{"name":"visitor_email","return_type":"String","visibility":"Public","body":"@visitor_email"}}]},{"html_id":"drivers/Place/AttendeeScanner/Event","path":"Place/AttendeeScanner/Event.html","kind":"alias","full_name":"Place::AttendeeScanner::Event","name":"Event","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event","aliased_html":"PlaceCalendar::Event","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Guest","path":"Place/AttendeeScanner/Guest.html","kind":"struct","full_name":"Place::AttendeeScanner::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(zones:Tuple(String,String,String),system_id:String,details:Attendee,event:Event)-class-method","name":"new","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"args_string":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","args_html":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"new","args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"visibility":"Public","body":"_ = allocate\n_.initialize(zones, system_id, details, event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@zones.clone, @system_id.clone, @details.clone, @event.clone)"}},{"html_id":"copy_with(zones_zones=@zones,system_id_system_id=@system_id,details_details=@details,event_event=@event)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"args_string":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","args_html":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"copy_with","args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"visibility":"Public","body":"self.class.new(_zones, _system_id, _details, _event)"}},{"html_id":"details:Attendee-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"Attendee","visibility":"Public","body":"@details"}},{"html_id":"event:Event-instance-method","name":"event","abstract":false,"def":{"name":"event","return_type":"Event","visibility":"Public","body":"@event"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zones:Tuple(String,String,String)-instance-method","name":"zones","abstract":false,"def":{"name":"zones","return_type":"Tuple(String, String, String)","visibility":"Public","body":"@zones"}}]}]},{"html_id":"drivers/Place/AutoDeskCheckin","path":"Place/AutoDeskCheckin.html","kind":"class","full_name":"Place::AutoDeskCheckin","name":"AutoDeskCheckin","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_check_in-instance-method","name":"fetch_and_check_in","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L29"},"def":{"name":"fetch_and_check_in","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nbooking_ids = (staff_api.query_bookings(@booking_category, period_start, period_end, @zones, checked_in: false)).get.as_a.map do |booking|\n booking[\"id\"].as_i64\nend\nsuccess = 0\nfailed = [] of Int64\nbooking_ids.each do |id|\n begin\n (staff_api.booking_check_in(id, true, \"auto-checkin\")).get\n success = success + 1\n rescue error\n failed << id\n logger.debug(exception: error) do\n \"failed to check-in booking #{id}\"\n end\n end\nend\n\"checked-in #{success} bookings, failed #{failed.size}: #{failed}\"\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@zones = setting(Array(String), :check_in_zones)\n@time_period = (setting(Int32, :hours_before_booking_start)).hours\n@booking_category = setting(String, :booking_category)\nschedule.clear\nschedule.every(5.minutes) do\n fetch_and_check_in\nend\n"}}]},{"html_id":"drivers/Place/AutoRelease","path":"Place/AutoRelease.html","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:Zone-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L33"},"def":{"name":"building_zone","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (get_building_zone?.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L95"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"if (!@auto_release.resources.empty? && (@auto_release.time_before > 0 || @auto_release.time_after > 0)) && !building_zone.time_location?.nil?\n true\nelse\n logger.notice do\n \"auto release is not enabled on zone #{building_zone.id}\"\n end\n if @auto_release.resources.empty?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.resources being empty\"\n end\n end\n if @auto_release.time_before.zero? && @auto_release.time_after.zero?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.time_before and auto_release.time_after being 0\"\n end\n end\n if building_zone.time_location?.nil?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to building_zone.time_location being nil\"\n end\n end\n false\nend"}},{"html_id":"get_building_zone?:Zone|Nil-instance-method","name":"get_building_zone?","doc":"Finds the building zone for the current location services object","summary":"

Finds the building zone for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L84"},"def":{"name":"get_building_zone?","return_type":"Zone | ::Nil","visibility":"Public","body":"begin\n zones = Array(Zone).from_json(staff_api.zones(tags: \"building\").get.to_json)\n zone_ids = zones.map(&.id)\n zone_id = (zone_ids & system.zones).first\n zones.find do |zone|\n zone.id == zone_id\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone\"\n end\n nil\nend"}},{"html_id":"get_pending_bookings:Array(Booking)-instance-method","name":"get_pending_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L110"},"def":{"name":"get_pending_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n @auto_release.resources.each do |type|\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [building_zone.id]).get.to_json)\n results = results + bookings.select do |booking|\n !booking.checked_in\n end\n end\n logger.debug do\n \"found #{results.size} pending bookings\"\n end\n self[:pending_bookings] = results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of bookings\"\n end\n self[:pending_bookings] = [] of Booking\nend"}},{"html_id":"get_user_preferences?(user_id:String)-instance-method","name":"get_user_preferences?","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L132"},"def":{"name":"get_user_preferences?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"begin\n user = (staff_api.user(user_id)).get\n work_preferences = Array(WorktimePreference).from_json(user.as_h[\"work_preferences\"].to_json)\n work_overrides = Hash(String, WorktimePreference).from_json(user.as_h[\"work_overrides\"].to_json)\n {work_preferences: work_preferences, work_overrides: work_overrides}\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain user work location\"\n end\n nil\nend"}},{"html_id":"in_preference?(preference:WorktimePreference,event_time:Float64,locations:Array(String),match_locations:Bool=true):Bool-instance-method","name":"in_preference?","abstract":false,"args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"args_string":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","args_html":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L152"},"def":{"name":"in_preference?","args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"if match_locations\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && (locations.includes?(block.location))\n end\nelse\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && !(locations.includes?(block.location))\n end\nend"}},{"html_id":"in_preference_hours?(start_time:Float64,end_time:Float64,event_time:Float64):Bool-instance-method","name":"in_preference_hours?","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"args_string":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","args_html":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L144"},"def":{"name":"in_preference_hours?","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"return_type":"Bool","visibility":"Public","body":"if start_time < end_time\n start_time < event_time && end_time > event_time\nelse\n start_time < event_time || end_time > event_time\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = nil\n@email_schedule = (setting?(String, :email_schedule)).presence\n@email_template = (setting?(String, :email_template)) || \"auto_release\"\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\n@release_locations = (setting?(Array(String), :release_locations)) || [\"wfh\"]\n@auto_release = (setting?(AutoReleaseConfig, :auto_release)) || AutoReleaseConfig.new\nschedule.clear\nschedule.every(5.minutes) do\n pending_release\nend\nschedule.every(1.minute) do\n release_bookings\nend\nif emails = @email_schedule\n schedule.cron(emails, @timezone) do\n send_release_emails\n end\nend\n"}},{"html_id":"pending_release-instance-method","name":"pending_release","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L167"},"def":{"name":"pending_release","visibility":"Public","body":"results = [] of Booking\nif enabled?\nelse\n return results\nend\nbookings = get_pending_bookings\nbookings.each do |booking|\n if preferences = get_user_preferences?(booking.user_id)\n booking_start = (Time.unix(booking.booking_start)).in(building_zone.time_location!)\n day_of_week = booking_start.day_of_week.value\n if day_of_week == 7\n day_of_week = 0\n end\n event_time = booking_start.hour + (booking_start.minute / 60.0)\n overrides = preferences[:work_overrides].select do |_, pref|\n pref.blocks.size > 0\n end\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations))\n results << booking\n else\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations, false))\n else\n if (preference = preferences[:work_preferences].find do |pref|\n pref.day_of_week == day_of_week\n end) && (in_preference?(preference, event_time, @release_locations))\n results << booking\n end\n end\n end\n end\nend\nlogger.debug do\n \"found #{results.size} bookings pending release\"\nend\nself[:pending_release] = results\n"}},{"html_id":"release_bookings-instance-method","name":"release_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L214"},"def":{"name":"release_bookings","visibility":"Public","body":"begin\n released_booking_ids = [] of Int64\n if enabled?\n else\n return released_booking_ids\n end\n bookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\n previously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\n previously_released = previously_released - (previously_released - bookings.map(&.id))\n released_booking_ids = released_booking_ids + previously_released\n bookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if (Time.utc.to_unix - booking.booking_start) > (@auto_release.time_after * 60)\n if skip_release?(booking)\n next\n end\n logger.debug do\n \"rejecting booking #{booking.id} as it is within the time_after window\"\n end\n (staff_api.reject(booking.id)).get\n released_booking_ids << booking.id\n end\n end\n logger.debug do\n \"released #{released_booking_ids.size} bookings\"\n end\n self[:released_booking_ids] = released_booking_ids\nrescue error\n logger.warn(exception: error) do\n \"unable to release bookings\"\n end\n self[:released_booking_ids] = [] of Int64\nend"}},{"html_id":"send_release_emails-instance-method","name":"send_release_emails","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L280"},"def":{"name":"send_release_emails","visibility":"Public","body":"emailed_booking_ids = [] of Int64\nbookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\npreviously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\npreviously_emailed = self[:emailed_booking_ids]? ? Array(Int64).from_json(self[:emailed_booking_ids].to_json) : [] of Int64\npreviously_emailed = previously_emailed - (previously_emailed - bookings.map(&.id))\nemailed_booking_ids = emailed_booking_ids + previously_emailed\nbookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if previously_emailed.includes?(booking.id)\n next\n end\n if (enabled? && ((booking.booking_start - Time.utc.to_unix) < (@auto_release.time_before * 60))) && ((Time.utc.to_unix - booking.booking_start) < (@auto_release.time_after * 60))\n logger.debug do\n \"sending release email to #{booking.user_email} for booking #{booking.id} as it is withing the time_before window\"\n end\n timezone = booking.timezone.presence || @timezone.name\n location = Time::Location.load(timezone)\n starting = (Time.unix(booking.booking_start)).in(location)\n ending = (Time.unix(booking.booking_end)).in(location)\n args = {booking_id: booking.id, booking_start: booking.booking_start, booking_end: booking.booking_end, start_time: starting.to_s(@time_format), start_date: starting.to_s(@date_format), start_datetime: starting.to_s(@date_time_format), end_time: ending.to_s(@time_format), end_date: ending.to_s(@date_format), end_datetime: ending.to_s(@date_time_format), asset_id: booking.asset_id, user_id: booking.user_id, user_email: booking.user_email, user_name: booking.user_name, reason: booking.title, approver_name: booking.approver_name, approver_email: booking.approver_email, booked_by_name: booking.booked_by_name, booked_by_email: booking.booked_by_email}\n begin\n mailer.send_template(to: booking.user_email, template: {@email_template, \"auto_release\"}, args: args)\n emailed_booking_ids << booking.id\n rescue error\n logger.warn(exception: error) do\n \"failed to send release email to #{booking.user_email}\"\n end\n end\n end\nend\nself[:emailed_booking_ids] = emailed_booking_ids\n"}},{"html_id":"skip_release?(cached_booking:Booking):Bool-instance-method","name":"skip_release?","abstract":false,"args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"args_string":"(cached_booking : Booking) : Bool","args_html":"(cached_booking : Booking) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L205"},"def":{"name":"skip_release?","args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"return_type":"Bool","visibility":"Public","body":"if (booking_json_any = (staff_api.get_booking(cached_booking.id)).get) && (booking = Booking.from_json(booking_json_any.to_json))\n booking.checked_in || (booking.booking_start != cached_booking.booking_start)\nelse\n true\nend"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L248"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {@email_template, \"auto_release\"}, name: \"Auto release booking\", description: \"Notification when a booking is pending automatic release due to user's work location preferences\", fields: [{name: \"booking_id\", description: \"Unique identifier for the booking that may be released\"}, {name: \"booking_start\", description: \"Unix timestamp of when the booking begins\"}, {name: \"booking_end\", description: \"Unix timestamp of when the booking ends\"}, {name: \"start_time\", description: \"Formatted start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Formatted start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Formatted start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Formatted end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Formatted end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Formatted end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"asset_id\", description: \"Identifier of the booked resource\"}, {name: \"user_id\", description: \"Identifier of the person who has the booking\"}, {name: \"user_email\", description: \"Email address of the person who has the booking\"}, {name: \"user_name\", description: \"Full name of the person who has the booking\"}, {name: \"reason\", description: \"Title or purpose of the booking\"}, {name: \"approver_name\", description: \"Name of the person who approved the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}])]\n"}}],"types":[{"html_id":"drivers/Place/AutoRelease/AutoReleaseConfig","path":"Place/AutoRelease/AutoReleaseConfig.html","kind":"struct","full_name":"Place::AutoRelease::AutoReleaseConfig","name":"AutoReleaseConfig","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"time_before and time_after are in minutes","summary":"

time_before and time_after are in minutes

","constructors":[{"html_id":"new(time_before:Int64=0,time_after:Int64=0,resources:Array(String)=[]ofString)-class-method","name":"new","abstract":false,"args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"args_string":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","args_html":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"new","args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time_before, time_after, resources)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L348"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@time_before.clone, @time_after.clone, @resources.clone)"}},{"html_id":"copy_with(time_before_time_before=@time_before,time_after_time_after=@time_after,resources_resources=@resources)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"args_string":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","args_html":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"copy_with","args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"visibility":"Public","body":"self.class.new(_time_before, _time_after, _resources)"}},{"html_id":"resources:Array(String)-instance-method","name":"resources","abstract":false,"def":{"name":"resources","return_type":"Array(String)","visibility":"Public","body":"@resources"}},{"html_id":"time_after:Int64-instance-method","name":"time_after","abstract":false,"def":{"name":"time_after","return_type":"Int64","visibility":"Public","body":"@time_after"}},{"html_id":"time_before:Int64-instance-method","name":"time_before","abstract":false,"def":{"name":"time_before","return_type":"Int64","visibility":"Public","body":"@time_before"}}]},{"html_id":"drivers/Place/AutoRelease/Booking","path":"Place/AutoRelease/Booking.html","kind":"struct","full_name":"Place::AutoRelease::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approved:Bool-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L391"},"def":{"name":"approved","return_type":"Bool","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"args_string":"(approved : Bool)","args_html":"(approved : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L391"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L394"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L394"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L393"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L393"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L395"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L395"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L378"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"asset_id=(asset_id:String)-instance-method","name":"asset_id=","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L378"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id","return_type":"String","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"args_string":"(booked_by_id : String)","args_html":"(booked_by_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L383"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L383"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L382"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L382"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L380"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L380"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L389"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L389"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L403"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L403"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L387"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L387"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L373"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L373"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L402"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L402"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L401"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L401"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L390"},"def":{"name":"rejected","return_type":"Bool","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"args_string":"(rejected : Bool)","args_html":"(rejected : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L390"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L385"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L385"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L386"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L386"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L376"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L376"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L375"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L375"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L377"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L377"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L379"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L379"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimeBlock","path":"Place/AutoRelease/WorktimeBlock.html","kind":"struct","full_name":"Place::AutoRelease::WorktimeBlock","name":"WorktimeBlock","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L354"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"start_time: Start time of work hours. e.g. `7.5` being 7:30AM\nend_time: End time of work hours. e.g. `18.5` being 6:30PM\nlocation: Name of the location the work is being performed at","summary":"

start_time: Start time of work hours.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L355"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_time:Float64-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L358"},"def":{"name":"end_time","return_type":"Float64","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Float64)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"args_string":"(end_time : Float64)","args_html":"(end_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L358"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L359"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L359"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"start_time:Float64-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L357"},"def":{"name":"start_time","return_type":"Float64","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Float64)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"args_string":"(start_time : Float64)","args_html":"(start_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L357"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimePreference","path":"Place/AutoRelease/WorktimePreference.html","kind":"struct","full_name":"Place::AutoRelease::WorktimePreference","name":"WorktimePreference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"day_of_week: Index of the day of the week. `0` being Sunday","summary":"

day_of_week: Index of the day of the week.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocks:Array(WorktimeBlock)-instance-method","name":"blocks","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L367"},"def":{"name":"blocks","return_type":"Array(WorktimeBlock)","visibility":"Public","body":"@blocks"}},{"html_id":"blocks=(blocks:Array(WorktimeBlock))-instance-method","name":"blocks=","abstract":false,"args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"args_string":"(blocks : Array(WorktimeBlock))","args_html":"(blocks : Array(WorktimeBlock))","location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L367"},"def":{"name":"blocks=","args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"visibility":"Public","body":"@blocks = blocks"}},{"html_id":"day_of_week:Int32-instance-method","name":"day_of_week","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week","return_type":"Int32","visibility":"Public","body":"@day_of_week"}},{"html_id":"day_of_week=(day_of_week:Int32)-instance-method","name":"day_of_week=","abstract":false,"args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"args_string":"(day_of_week : Int32)","args_html":"(day_of_week : Int32)","location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week=","args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"visibility":"Public","body":"@day_of_week = day_of_week"}}]},{"html_id":"drivers/Place/AutoRelease/Zone","path":"Place/AutoRelease/Zone.html","kind":"struct","full_name":"Place::AutoRelease::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L412"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L412"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L415"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L415"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L409"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L409"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L414"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L414"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L411"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L411"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L418"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L418"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Set(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L413"},"def":{"name":"tags","return_type":"Set(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Set(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"args_string":"(tags : Set(String))","args_html":"(tags : Set(String))","location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L413"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_location!:Time::Location-instance-method","name":"time_location!","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L429"},"def":{"name":"time_location!","return_type":"Time::Location","visibility":"Public","body":"time_location?.not_nil!"}},{"html_id":"time_location?:Time::Location|Nil-instance-method","name":"time_location?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L423"},"def":{"name":"time_location?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if tz = timezone.presence\n @time_location || (@time_location = Time::Location.load(tz))\nend"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L416"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L416"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}}]}]},{"html_id":"drivers/Place/AutoReleaseLocker","path":"Place/AutoReleaseLocker.html","kind":"class","full_name":"Place::AutoReleaseLocker","name":"AutoReleaseLocker","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_bookings:Array(Booking)-instance-method","name":"get_bookings","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L47"},"def":{"name":"get_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: @booking_type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [get_building_id]).get.to_json)\n results = bookings.select do |booking|\n booking.checked_in\n end\n logger.debug do\n \"found #{results.size} #{@booking_type} bookings\"\n end\n results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of #{@booking_type} bookings\"\n end\n [] of Booking\nend"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L38"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@release_schedule = (setting?(String, :release_schedule)).presence\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@booking_type = (setting?(String, :booking_type)).presence || \"locker\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\nschedule.clear\nif release = @release_schedule\n schedule.cron(release, @timezone) do\n release_lockers\n end\nend\n"}},{"html_id":"release_lockers-instance-method","name":"release_lockers","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L65"},"def":{"name":"release_lockers","visibility":"Public","body":"bookings = get_bookings\nreleased = 0\nbookings.each do |booking|\n logger.debug do\n \"releasing booking #{booking.id} as it is within the time_after window\"\n end\n begin\n staff_api.update_booking(booking_id: booking.id, booking_end: Time.utc.to_unix, checked_in: false).get\n released = released + 1\n rescue error\n logger.warn(exception: error) do\n \"unable to release #{@booking_type} with booking id #{booking.id}\"\n end\n end\nend\n{total: bookings.size, released: released}\n"}}]},{"html_id":"drivers/Place/Booking","path":"Place/Booking.html","kind":"class","full_name":"Place::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:Int64,booking_type:String,booking_start:Int64,booking_end:Int64,user_id:String,user_email:String,user_name:String,zones:Array(String),booked_by_name:String,booked_by_email:String,action:Nil|String=nil,timezone:Nil|String=nil,asset_id:Nil|String=nil,resource_id:Nil|String=nil,checked_in:Bool|Nil=nil,rejected:Bool|Nil=nil,approved:Bool|Nil=nil,process_state:Nil|String=nil,last_changed:Int64|Nil=nil,approver_name:Nil|String=nil,approver_email:Nil|String=nil,title:Nil|String=nil,description:Nil|String=nil,asset_ids:Array(String)=[]ofString,created:Int64|Nil=nil,approver_id:Nil|String=nil,booked_by_id:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"args_string":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","args_html":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","location":{"filename":"src/place/booking_model.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L95"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, booking_type, booking_start, booking_end, user_id, user_email, user_name, zones, booked_by_name, booked_by_email, action, timezone, asset_id, resource_id, checked_in, rejected, approved, process_state, last_changed, approver_name, approver_email, title, description, asset_ids, created, approver_id, booked_by_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L7"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L7"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L31"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L31"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L38"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L38"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L36"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L36"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L37"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L37"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L20"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).as(String)"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L16"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"asset_ids:Array(String)-instance-method","name":"asset_ids","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids","return_type":"Array(String)","visibility":"Public","body":"@asset_ids"}},{"html_id":"asset_ids=(asset_ids:Array(String))-instance-method","name":"asset_ids=","abstract":false,"args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"args_string":"(asset_ids : Array(String))","args_html":"(asset_ids : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids=","args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@asset_ids = asset_ids"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String|Nil-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String|Nil)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"args_string":"(booked_by_id : String | Nil)","args_html":"(booked_by_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L12"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L12"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L11"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L11"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L10"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L10"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"changed-instance-method","name":"changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L55"},"def":{"name":"changed","visibility":"Public","body":"Time.unix(last_changed.not_nil!)"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L44"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @checked_in).nil?\n @checked_in = (false)\nelse\n __temp_1\nend"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L44"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L34"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L34"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L46"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L46"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"expand-instance-method","name":"expand","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L59"},"def":{"name":"expand","visibility":"Public","body":"if asset_ids.size < 2\n return {self}.each\nend\nasset_ids.map do |aid|\n Place::Booking.new(id: id, booking_type: booking_type, booking_start: booking_start, booking_end: booking_end, user_id: user_id, user_email: user_email, user_name: user_name, zones: zones, booked_by_name: booked_by_name, booked_by_email: booked_by_email, action: action, timezone: timezone, asset_id: aid, resource_id: resource_id, checked_in: checked_in, rejected: rejected, approved: approved, process_state: process_state, last_changed: last_changed, approver_name: approver_name, approver_email: approver_email, title: title, description: description, asset_ids: [aid], created: created, approver_id: approver_id, booked_by_id: booked_by_id)\nend\n"}},{"html_id":"extension_data:Hash(String,JSON::Any)-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L48"},"def":{"name":"extension_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @extension_data).nil?\n @extension_data = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"extension_data=(extension_data:Hash(String,JSON::Any))-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"args_string":"(extension_data : Hash(String, JSON::Any))","args_html":"(extension_data : Hash(String, JSON::Any))","location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L48"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L9"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L50"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L33"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L33"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L32"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L32"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L30"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L30"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L18"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L18"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L13"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L13"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L45"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L45"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L25"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L25"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L24"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L24"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L26"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L26"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L28"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L28"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/BookingApprovalWorkflows","path":"Place/BookingApprovalWorkflows.html","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":542,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L542"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_895|\n _event, entered = __temp_895\n expired > entered\nend\nexpired = 1.hour.ago.to_unix\n@group_email_notifications.reject! do |_, entered|\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n building_name = details[:name]\n approval_type = details[:approval]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, approval_type, building_name, building_key, support_email, attachments, months_from_now)\n end\nend\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L370"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @approval_lookup[zone_id]?\n if details\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details[:name], details[:approval], details[:support_email], attachments}\n end\nend\nnil\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L657"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (mailer.get_user_manager(staff_email)).get\n {(manager[\"email\"]? || manager[\"username\"]).as_s, manager[\"name\"].as_s}\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n {nil, nil}\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L59"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L94"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@remind_after = ((setting?(Int32, :remind_after)) || 24).hours\n@escalate_after = ((setting?(Int32, :escalate_after)) || 48).hours\n@notify_managers = (setting?(Bool, :notify_managers)) || false\n@approval_lookup = setting(Hash(String, SiteDetails), :approval_type)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\nschedule.clear\nschedule.every(5.minutes) do\n check_bookings\nend\nreminders = (setting?(Reminders, :reminders)) || {crons: [] of String, zones: {} of String => Array(String)}\nreminders[:crons].each do |cron|\n reminders[:zones].each do |timezone, zones|\n begin\n schedule.cron(cron, Time::Location.load(timezone)) do\n send_checkin_reminder(zones)\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to schedule reminder: #{zones} => #{timezone} : #{cron}\"\n end\n end\n end\nend\n"}},{"html_id":"send_checkin_reminder(zones:Array(String)|Nil=nil,timezone:String|Nil=nil)-instance-method","name":"send_checkin_reminder","abstract":false,"args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","args_html":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":713,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L713"},"def":{"name":"send_checkin_reminder","args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_now = Time.utc.in(timezone ? Time::Location.load(timezone) : @time_zone)\ntime_now = time_now.at_beginning_of_day + 12.hours\ntime_now = time_now.to_local_in(Time::Location::UTC)\nquery_start = time_now.to_unix\nquery_end = (time_now + 30.minutes).to_unix\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n if zones && !(zones.includes?(building_zone))\n next\n end\n building_name = details[:name]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_checkin_reminder(building_zone, building_name, building_key, support_email, attachments, query_start, query_end)\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L129"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"desk_id\", description: \"Identifier of the booked desk\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"support_email\", description: \"Contact email for booking support\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"group_booking_sent#{@template_suffix}\"}, name: \"Group booking sent#{@template_fields_suffix}\", description: \"Notification when a group booking has been created\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved_by#{@template_suffix}\"}, name: \"Booking approved by#{@template_fields_suffix}\", description: \"Notification when booking is approved by someone other than the requester\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved#{@template_suffix}\"}, name: \"Booking approved#{@template_fields_suffix}\", description: \"Notification when booking is approved\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"rejected#{@template_suffix}\"}, name: \"Booking rejected#{@template_fields_suffix}\", description: \"Notification when booking is rejected\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"checked_in#{@template_suffix}\"}, name: \"Booking checked in#{@template_fields_suffix}\", description: \"Notification when user checks in to their booking\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled_by#{@template_suffix}\"}, name: \"Booking cancelled by#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by someone other than the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_notify_cancelled#{@template_suffix}\"}, name: \"Booking cancelled manager notification#{@template_fields_suffix}\", description: \"Notification to manager when their team member's booking is cancelled\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_approval#{@template_suffix}\"}, name: \"Booking manager approval#{@template_fields_suffix}\", description: \"Request for manager to approve a booking#{@template_suffix}\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_contacted#{@template_suffix}\"}, name: \"Booking manager contacted#{@template_fields_suffix}\", description: \"Notification to user that their manager has been contacted for approval\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"notify_manager#{@template_suffix}\"}, name: \"Booking manager notification#{@template_fields_suffix}\", description: \"Notification to manager about their team member's booking\", fields: common_fields)]\n"}},{"html_id":"users_with_invalid_desk_bookings(building_zone:String,ending:Int64)-instance-method","name":"users_with_invalid_desk_bookings","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(building_zone : String, ending : Int64)","args_html":"(building_zone : String, ending : Int64)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":666,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L666"},"def":{"name":"users_with_invalid_desk_bookings","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"visibility":"Public","body":"meta_raw = (staff_api.metadata_children(building_zone, \"desks\")).get.as_a\nmetadata = {} of String => Hash(String, Array(String))\nmeta_raw.each do |zone|\n desks = {} of String => Array(String)\n zone_id = zone[\"zone\"][\"id\"].as_s\n zone[\"metadata\"][\"desks\"][\"details\"].as_a.each do |desk|\n desks[desk[\"id\"].as_s] = desk[\"groups\"].as_a.map() do |__arg11|\n __arg11.as_s.downcase\n end\n end\n metadata[zone_id] = desks\nend\nusers = [] of Tuple(String, String, String, Int64, Int64, String)\nbookings = staff_api.query_bookings(type: \"desk\", period_end: ending, zones: [building_zone], rejected: false).get.as_a\nbookings.each do |booking|\n user_email = booking[\"user_email\"].as_s\n level_id = (booking[\"zones\"].as_a.map(&.as_s).reject(building_zone)).first\n desk_id = booking[\"asset_id\"].as_s\n booking_id = booking[\"id\"].as_i64\n starting = booking[\"booking_start\"].as_i64\n if desks = metadata[level_id]?\n if groups = desks[desk_id]?\n if groups.empty?\n next\n end\n users_groups = (mailer.get_groups(user_email)).get.as_a.map do |g|\n g[\"name\"].as_s.downcase\n end\n overlap = users_groups & groups\n if overlap.empty?\n date_friendly = (Time.unix(starting)).to_s(@date_format)\n users << {user_email, desk_id, level_id, booking_id, starting, date_friendly}\n end\n end\n end\nend\nlogger.debug do\n \"Email,Desk ID,Zone,Booking id,Starting,Start date\\n#{users.map do |u|\n \"#{u[0]},#{u[1]},#{u[2]},#{u[3]},#{u[4]},#{u[5]}\"\n end.join(\"\\n\")}\"\nend\nnil\n"}}],"types":[{"html_id":"drivers/Place/BookingApprovalWorkflows/Reminders","path":"Place/BookingApprovalWorkflows/Reminders.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::Reminders","name":"Reminders","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(crons: Array(String), zones: Hash(String, Array(String)))","aliased_html":"{crons: Array(String), zones: Hash(String, Array(String))}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}},{"html_id":"drivers/Place/BookingApprovalWorkflows/SiteDetails","path":"Place/BookingApprovalWorkflows/SiteDetails.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::SiteDetails","name":"SiteDetails","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(approval: String, name: String, support_email: String, attachments: Hash(String, String) | Nil)","aliased_html":"{approval: String, name: String, support_email: String, attachments: Hash(String, String)?}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}}]},{"html_id":"drivers/Place/BookingApprover","path":"Place/BookingApprover.html","kind":"class","full_name":"Place::BookingApprover","name":"BookingApprover","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approver.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve_missed-instance-method","name":"approve_missed","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L78"},"def":{"name":"approve_missed","visibility":"Public","body":"booking_type = @approve_booking_types[0]? || \"desk\"\nbookings = Array(Booking).from_json(staff_api.query_bookings(type: booking_type, zones: [get_building_id], approved: false, period_end: 8.weeks.from_now.to_unix).get.to_json)\nbookings.each do |booking|\n booking.action = \"create\"\n approve_booking(booking)\nend\n\"found #{bookings.size} missed\"\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L37"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n approve_booking(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@approve_zones = (setting?(Array(String), :approve_zones)) || ([] of String)\n@approve_booking_types = (setting?(Array(String), :approve_booking_types)) || ([] of String)\nschedule.clear\nschedule.every(10.minutes) do\n approve_missed\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L96"},"def":{"name":"status","visibility":"Public","body":"{bookings_approved: @bookings_approved}"}}]},{"html_id":"drivers/Place/BookingCheckInHelper","path":"Place/BookingCheckInHelper.html","kind":"class","full_name":"Place::BookingCheckInHelper","name":"BookingCheckInHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_check_in_helper.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"current_meeting:PlaceCalendar::Event|Nil-instance-method","name":"current_meeting","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L95"},"def":{"name":"current_meeting","return_type":"PlaceCalendar::Event | ::Nil","visibility":"Public","body":"@current_meeting"}},{"html_id":"ignore_long_meeting?:Bool-instance-method","name":"ignore_long_meeting?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L145"},"def":{"name":"ignore_long_meeting?","return_type":"Bool","visibility":"Public","body":"meeting = current_meeting\nif meeting\nelse\n return false\nend\nevent_end = meeting.event_end\nif event_end\nelse\n return true\nend\nignore_length = @ignore_longer_than\nif ignore_length\nelse\n return false\nend\nmeeting_length = event_end - meeting.event_start\nmeeting_length >= ignore_length\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L15"},"def":{"name":"mailer","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\n(sys.implementing(Interface::Mailer))[0]\n"}},{"html_id":"meeting_pending?:Bool-instance-method","name":"meeting_pending?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L93"},"def":{"name":"meeting_pending?","return_type":"Bool","visibility":"Public","body":"@meeting_pending"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L108"},"def":{"name":"on_update","visibility":"Public","body":"@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n@decline_message = setting?(String, :decline_message)\n@mailer_system = setting?(String, :mailer_system)\n@ignore_longer_than = (setting?(Int32, :ignore_longer_than)).try(&.minutes)\n@prompt_after = ((setting?(Int32, :prompt_after)) || 10).minutes\n@present_from = ((setting?(Int32, :present_from)) || 5).minutes\n@auto_cancel = (setting?(Bool, :auto_cancel)) || false\n@check_in_url = (setting?(String, :check_in_url)) || \"\"\n@no_show_url = (setting?(String, :no_show_url)) || \"\"\nif @check_in_url.presence\n @domain = (URI.parse(@check_in_url)).host.not_nil!\nend\nsubscriptions.clear\nbookings.subscribe(:current_booking) do |_sub, pending|\n event = ::Union(PlaceCalendar::Event, ::Nil).from_json(pending)\n update_current(event)\nend\nbookings.subscribe(:current_pending) do |_sub, pending|\n update_pending(pending == \"true\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nmonitor(\"#{config.control_system.not_nil!.id}/guest/bookings/prompted\") do |_sub, response|\n checkin_or_end_meeting(**NamedTuple(id: String, check_in: Bool).from_json(response))\nend\ntimezone = (setting?(String, :time_zone)) || config.control_system.not_nil!.timezone.presence\nif timezone\n @timezone = Time::Location.load(timezone)\nend\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L94"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"staff_api-instance-method","name":"staff_api","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L21"},"def":{"name":"staff_api","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\nsys[:StaffAPI_1]\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L257"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {\"bookings\", \"check_in_prompt\"}, name: \"Check in prompt\", description: \"Email template for prompting meeting hosts to check in or cancel their booking\", fields: [{name: \"jwt\", description: \"Authentication token for secure responses\"}, {name: \"host_email\", description: \"Email address of the meeting organizer\"}, {name: \"host_name\", description: \"Full name of the meeting organizer\"}, {name: \"event_id\", description: \"Unique identifier for the calendar event\"}, {name: \"system_id\", description: \"Unique identifier for the room/space\"}, {name: \"meeting_room_name\", description: \"Display name of the meeting room\"}, {name: \"meeting_summary\", description: \"Title or subject of the meeting\"}, {name: \"meeting_datetime\", description: \"Formatted date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"meeting_time\", description: \"Formatted time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"meeting_date\", description: \"Formatted date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"check_in_url\", description: \"URL for confirming attendance\"}, {name: \"no_show_url\", description: \"URL for cancelling the booking\"}])]\n"}}]},{"html_id":"drivers/Place/BookingNotifier","path":"Place/BookingNotifier.html","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"calendar-instance-method","name":"calendar","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L64"},"def":{"name":"calendar","visibility":"Public","body":"system[:Calendar]"}},{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_notifier.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L365"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_902|\n _event, entered = __temp_902\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @notify_lookup.each do |building_zone, details|\n building_name = details.name\n email = details.email\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, building_name, building_key, email, details.notify_booking_owner, details.notify_manager, attachments, months_from_now)\n end\nend\n"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":508,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L508"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_notifier.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L313"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @notify_lookup[zone_id]?\n if details\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details, attachments}\n end\nend\n{nil, nil, nil}\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_notifier.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L489"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (calendar.get_user_manager(staff_email)).get\n (manager[\"email\"]? || manager[\"username\"]).as_s\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n nil\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L60"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L68"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L113"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\n@notify_lookup = setting(Hash(String, SiteDetails), :notify)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\n@poll_bookings = setting(Bool, :poll_bookings)\n@poll_every_minutes = setting(Int32, :poll_every_minutes)\nschedule.clear\nif @poll_bookings\n schedule.every(@poll_every_minutes.minutes) do\n check_bookings\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L136"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"asset_id\", description: \"Identifier of the booked asset (e.g., desk)\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}, {name: \"network_username\", description: \"Network access username (if configured)\"}, {name: \"network_password\", description: \"Generated network access password (if configured)\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"booked_by_notify#{@template_suffix}\"}, name: \"Booking booked by notification#{@template_fields_suffix}\", description: \"Notification when someone books on behalf of another person\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"booking_notify#{@template_suffix}\"}, name: \"Booking booked notification#{@template_fields_suffix}\", description: \"Notification when a booking is created for yourself\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when a booking is cancelled\", fields: common_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L497"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/BookingNotifier/SiteDetails","path":"Place/BookingNotifier/SiteDetails.html","kind":"class","full_name":"Place::BookingNotifier::SiteDetails","name":"SiteDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/BookingNotifier","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_notifier.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L96"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Hash(String,String)-instance-method","name":"attachments","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L100"},"def":{"name":"attachments","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @attachments).nil?\n @attachments = ({} of String => String)\nelse\n __temp_1\nend"}},{"html_id":"email:Array(String)-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L99"},"def":{"name":"email","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @email).nil?\n @email = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"include_network_credentials:Bool|Nil-instance-method","name":"include_network_credentials","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L103"},"def":{"name":"include_network_credentials","return_type":"Bool | ::Nil","visibility":"Public","body":"@include_network_credentials"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L98"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"network_group_ids:Array(String)-instance-method","name":"network_group_ids","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L110"},"def":{"name":"network_group_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @network_group_ids).nil?\n @network_group_ids = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"network_password_exclude:String|Nil-instance-method","name":"network_password_exclude","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L105"},"def":{"name":"network_password_exclude","return_type":"String | ::Nil","visibility":"Public","body":"@network_password_exclude"}},{"html_id":"network_password_length:Int32|Nil-instance-method","name":"network_password_length","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L104"},"def":{"name":"network_password_length","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_length"}},{"html_id":"network_password_minimum_lowercase:Int32|Nil-instance-method","name":"network_password_minimum_lowercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L106"},"def":{"name":"network_password_minimum_lowercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_lowercase"}},{"html_id":"network_password_minimum_numbers:Int32|Nil-instance-method","name":"network_password_minimum_numbers","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L108"},"def":{"name":"network_password_minimum_numbers","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_numbers"}},{"html_id":"network_password_minimum_symbols:Int32|Nil-instance-method","name":"network_password_minimum_symbols","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L109"},"def":{"name":"network_password_minimum_symbols","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_symbols"}},{"html_id":"network_password_minimum_uppercase:Int32|Nil-instance-method","name":"network_password_minimum_uppercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L107"},"def":{"name":"network_password_minimum_uppercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_uppercase"}},{"html_id":"notify_booking_owner:Bool|Nil-instance-method","name":"notify_booking_owner","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L102"},"def":{"name":"notify_booking_owner","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_booking_owner"}},{"html_id":"notify_manager:Bool|Nil-instance-method","name":"notify_manager","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L101"},"def":{"name":"notify_manager","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_manager"}}]}]},{"html_id":"drivers/Place/Bookings","path":"Place/Bookings.html","kind":"class","full_name":"Place::Bookings","name":"Bookings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"book_now(period_in_seconds:Int64,title:String|Nil=nil,owner:String|Nil=nil)-instance-method","name":"book_now","abstract":false,"args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"args_string":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","args_html":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L233"},"def":{"name":"book_now","args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"visibility":"Public","body":"title || (title = @default_title)\nstarting = Time.utc.to_unix\nending = starting + period_in_seconds\nif @next_pending || (status?(Bool, \"in_use\"))\n raise(\"the room is currently in use\")\nend\nif next_booking = upcoming\n if next_booking.event_start.to_unix < ending\n raise(\"unable to book due to clash\")\n end\nend\nlogger.debug do\n \"booking event #{title}, from #{starting}, to #{ending}, in #{@time_zone.name}, on #{@calendar_id}\"\nend\nroom_email = system.email.not_nil!\nif @application_permissions\n host_calendar = @calendar_id\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, true)]\n if owner && !owner.empty?\n attendees << (::PlaceCalendar::Event::Attendee.new(owner, owner))\n end\nelse\n host_calendar = owner.presence || @calendar_id\n room_is_organizer = host_calendar == room_email\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, room_is_organizer)]\nend\nevent = calendar.create_event(title: title, event_start: starting, event_end: ending, description: \"\", attendees: attendees, location: status?(String, \"room_name\"), timezone: @time_zone.name, calendar_id: host_calendar)\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(2.seconds) do\n poll_events\n end\nend\ncheck_in_actual(starting, check_bookings: false)\nevent\n"}},{"html_id":"calendar_id:String-instance-method","name":"calendar_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L60"},"def":{"name":"calendar_id","return_type":"String","visibility":"Public","body":"@calendar_id"}},{"html_id":"calendar_ids:Array(String)-instance-method","name":"calendar_ids","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L61"},"def":{"name":"calendar_ids","return_type":"Array(String)","visibility":"Public","body":"@calendar_ids"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/bookings.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L510"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nsys_email = @calendar_id.downcase\nif (sys_email == mac_address.downcase) && (host = current.try(&.host))\n {location: \"meeting\", assigned_to: host, mac_address: sys_email}\nend\n"}},{"html_id":"checkin:Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L193"},"def":{"name":"checkin","return_type":"Nil","visibility":"Public","body":"if booking = pending || current\n check_in_actual(booking.event_start.to_unix)\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L522"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\n[] of Nil\n"}},{"html_id":"end_meeting(meeting_start_time:Int64,notify:Bool=true,comment:String=\"cancelledatbookingpanel\"):Nil-instance-method","name":"end_meeting","doc":"End either the current meeting early, or the pending meeting","summary":"

End either the current meeting early, or the pending meeting

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"args_string":"(meeting_start_time : Int64, notify : Bool = true, comment : String = \"cancelled at booking panel\") : Nil","args_html":"(meeting_start_time : Int64, notify : Bool = true, comment : String = "cancelled at booking panel") : Nil","location":{"filename":"src/place/bookings.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L208"},"def":{"name":"end_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"cmeeting = current\nresult = if cmeeting && (cmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"deleting event #{cmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, cmeeting.id, notify: notify, comment: comment)\nelse\n nmeeting = upcoming\n if nmeeting && (nmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"declining event #{nmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, nmeeting.id, notify: notify, comment: comment)\n else\n raise(\"only the current or pending meeting can be cancelled\")\n end\nend\nresult.get\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(1.seconds) do\n poll_events\n end\nend\n"}},{"html_id":"is_stale?(timestamp:Int64|Nil):Bool-instance-method","name":"is_stale?","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"args_string":"(timestamp : Int64 | Nil) : Bool","args_html":"(timestamp : Int64 | Nil) : Bool","location":{"filename":"src/place/bookings.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L634"},"def":{"name":"is_stale?","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"if timestamp.nil?\n return self[:sensor_stale] = false\nend\nsensor_time = Time.unix(timestamp)\nstale_time = @sensor_stale_minutes.ago\nif sensor_time > stale_time\n self[:sensor_stale] = false\nelse\n @perform_sensor_search = true\n self[:sensor_stale] = true\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:UInt32|Nil=20_u32)-instance-method","name":"list_users","doc":"Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)","summary":"

Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","args_html":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","location":{"filename":"src/place/bookings.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L229"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"calendar.list_users(query, limit)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L481"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nemail = email.to_s.downcase\nusername = username.to_s.downcase\nmatching_events = [] of ::PlaceCalendar::Event\nif event = current\n emails = event.attendees.map() do |__arg4|\n __arg4.email.downcase\n end\n if host = event.host\n emails << host.downcase\n end\n if (emails.includes?(email)) || (emails.includes?(username))\n logger.debug do\n \"found user {#{email}, #{username}} in list of attendees\"\n end\n matching_events << event\n else\n if !username.empty? && emails.find(&.starts_with?(username))\n logger.debug do\n \"found email starting with username '#{username}' in list of attendees\"\n end\n matching_events << event\n end\n end\nend\nto_location_format(matching_events)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/bookings.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L506"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(locate_user(email, username)).map(&.[](:mac))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L84"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@calendar_id = ((setting?(String, :calendar_id)).presence || system.email.not_nil!).downcase\nids = ((setting?(Array(String), :calendar_ids)) || ([] of String)).map!(&.downcase)\nids.unshift(@calendar_id)\n@calendar_ids = ids.uniq!\n@perform_sensor_search = true\nschedule.in((Random.rand(30)).seconds + (Random.rand(30000)).milliseconds) do\n poll_events\nend\ncache_polling_period = ((setting?(UInt32, :cache_polling_period)) || 2_u32).minutes.total_milliseconds.to_i\ncache_polling_period = cache_polling_period + (Random.rand(5000))\ncache_random_period = cache_polling_period // 3\nschedule.every(cache_polling_period.milliseconds) do\n schedule.in((Random.rand(cache_random_period)).milliseconds) do\n poll_events\n end\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@default_title = (setting?(String, :book_now_default_title)).presence || \"Ad Hoc booking\"\nbook_now = setting?(Bool, :disable_book_now)\nnot_bookable = (setting?(Bool, :not_bookable)) || false\nself[:bookable] = bookable = not_bookable ? false : system.bookable\n@disable_book_now = book_now.nil? ? !bookable : !!book_now\n@disable_end_meeting = !!(setting?(Bool, :disable_end_meeting))\n@disable_book_now_host = (setting?(Bool, :disable_book_now_host)) || false\n@max_user_search_results = (setting?(UInt32, :max_user_search_results)) || 20_u32\npending_period = (setting?(UInt32, :pending_period)) || 5_u32\n@pending_period = pending_period.minutes\npending_before = (setting?(UInt32, :pending_before)) || 5_u32\n@pending_before = pending_before.minutes\ncache_days = (setting?(UInt32, :cache_days)) || 30_u32\n@cache_days = cache_days.days\n@change_event_sync_delay = (setting?(UInt32, :change_event_sync_delay)) || 5_u32\nlast_started = (setting?(Int64, :last_booking_started)) || 0_i64\n@last_booking_started = last_started > 30.minutes.from_now.to_unix ? 0_i64 : last_started\n@include_cancelled_bookings = (setting?(Bool, :include_cancelled_bookings)) || false\n@application_permissions = (setting?(Bool, :application_permissions)) || false\n@sensor_stale_minutes = ((setting?(Int32, :sensor_stale_minutes)) || 8).minutes\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nschedule.cron(\"* * * * *\") do\n schedule.in((rand(1000)).milliseconds) do\n if list = self[:bookings]?\n check_current_booking(list.as_a)\n end\n end\nend\npush_notificaitons_configure\ncontrol_sys = config.control_system.not_nil!\nself[:room_name] = ((setting?(String, :room_name)).presence || control_sys.display_name.presence) || control_sys.name\nself[:room_capacity] = (setting?(Int32, :room_capacity)) || control_sys.capacity\nself[:default_title] = @default_title\nself[:disable_book_now_host] = @disable_book_now_host\nself[:disable_book_now] = @disable_book_now\nself[:disable_end_meeting] = @disable_end_meeting\nself[:pending_period] = pending_period\nself[:pending_before] = pending_before\nself[:control_ui] = setting?(String, :control_ui)\nself[:catering_ui] = setting?(String, :catering_ui)\nself[:room_image] = (setting?(String, :room_image)) || control_sys.images.try(&.first?)\nself[:hide_meeting_details] = (setting?(Bool, :hide_meeting_details)) || false\nself[:hide_meeting_title] = (setting?(Bool, :hide_meeting_title)) || false\nself[:offline_color] = setting?(String, :offline_color)\nself[:offline_image] = setting?(String, :offline_image)\nself[:custom_qr_color] = setting?(String, :custom_qr_color)\nself[:custom_qr_url] = (setting?(String, :custom_qr_url)).try(&.gsub(\"{system_id}\", control_sys.id))\nhide_qr_code = (setting?(Bool, :hide_qr_code)) || false\nshow_qr_code = setting?(Bool, :show_qr_code)\nself[:show_qr_code] = show_qr_code.nil? ? !hide_qr_code : show_qr_code\nself[:sensor_mac] = @sensor_mac = setting?(String, :sensor_mac)\nself[:min_duration] = (setting?(Int32, :min_duration)) || 15\nself[:max_duration] = (setting?(Int32, :max_duration)) || 480\nself[:enable_end_meeting_button] = (setting?(Bool, :enable_end_meeting_button)) || false\n"}},{"html_id":"people_count?:Float64|Nil-instance-method","name":"people_count?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L527"},"def":{"name":"people_count?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n drivers = system.implementing(Interface::Sensor)\n count_data = (drivers.sensors(\"people_count\", @sensor_mac)).get.flat_map(&.as_a).first?\n if count_data\n else\n return nil\n end\n if is_stale?(count_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = count_data[\"value\"]\n (data.as_f? || data.as_i).to_f\nrescue error\n logger.warn(exception: error) do\n \"error checking people count\"\n end\n nil\nend"}},{"html_id":"people_present?:Float64|Nil-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L541"},"def":{"name":"people_present?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n count = people_count?\n if count\n return count > 0.0 ? 1.0 : 0.0\n end\n drivers = system.implementing(Interface::Sensor)\n presence_data = (drivers.sensors(\"presence\", @sensor_mac)).get.flat_map(&.as_a).first?\n if presence_data\n else\n return nil\n end\n if is_stale?(presence_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = presence_data[\"value\"]\n (data.as_f? || data.as_i).to_f > 0.0 ? 1.0 : 0.0\nrescue error\n logger.warn(exception: error) do\n \"error checking people presence\"\n end\n nil\nend"}},{"html_id":"poll_events:Nil-instance-method","name":"poll_events","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L281"},"def":{"name":"poll_events","return_type":"Nil","visibility":"Public","body":"begin\n if @polling\n return\n end\n @polling = true\n if @perform_sensor_search\n check_for_sensors\n end\n now = Time.local(@time_zone)\n start_of_day = now.at_beginning_of_day.to_unix\n cache_period = start_of_day + @cache_days.to_i\n events = @calendar_ids.flat_map do |cal_id|\n logger.debug do\n \"polling events #{cal_id}, from #{start_of_day}, to #{cache_period}, in #{@time_zone.name}\"\n end\n (calendar.list_events(cal_id, start_of_day, cache_period, @time_zone.name, include_cancelled: @include_cancelled_bookings)).get.as_a\n end.sort do |a, b|\n a[\"event_start\"].as_i64 <=> b[\"event_start\"].as_i64\n end\n self[:bookings] = events\n check_current_booking(events)\n events\nensure\n @polling = false\nend"}},{"html_id":"start_meeting(meeting_start_time:Int64):Nil-instance-method","name":"start_meeting","doc":"we no longer accept user specified values","summary":"

we no longer accept user specified values

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"args_string":"(meeting_start_time : Int64) : Nil","args_html":"(meeting_start_time : Int64) : Nil","location":{"filename":"src/place/bookings.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L188"},"def":{"name":"start_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"return_type":"Nil","visibility":"Public","body":"logger.warn do\n \"deprecated function call to start_meeting, please use checkin\"\nend\ncheckin\n"}},{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":740,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L740"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess","path":"Place/Bookings/GrantAreaAccess.html","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"allocations:Hash(String,Array(String))-instance-method","name":"allocations","doc":"user_id => Array(special access)","summary":"

user_id => Array(special access)

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L29"},"def":{"name":"allocations","return_type":"Hash(String, Array(String))","visibility":"Public","body":"@allocations"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"cached_user_lookups:Hash(String,String|Int64)-instance-method","name":"cached_user_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L30"},"def":{"name":"cached_user_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_user_lookups"}},{"html_id":"cached_zone_lookups:Hash(String,String|Int64)-instance-method","name":"cached_zone_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L31"},"def":{"name":"cached_zone_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_zone_lookups"}},{"html_id":"desks(level_id:String):Hash(String,String)-instance-method","name":"desks","doc":"returns desk_id => security zone name / id","summary":"

returns desk_id => security zone name / id

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Hash(String, String)","args_html":"(level_id : String) : Hash(String, String)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L119"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"desks = (staff_api.metadata(level_id, \"desks\")).get.dig?(\"desks\", \"details\")\nsecurity = {} of String => String\nif desks\nelse\n return security\nend\n(Array(Desk).from_json(desks.to_json)).each do |desk|\n sec = desk.security.presence\n if sec\n else\n next\n end\n security[desk.id] = sec\nend\nsecurity\n"}},{"html_id":"ensure_booking_access-instance-method","name":"ensure_booking_access","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L132"},"def":{"name":"ensure_booking_access","visibility":"Public","body":"@mutex.synchronize do\n now = Time.local(timezone)\n end_of_day = now.at_end_of_day\n access_required = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n levels.each do |level_id|\n desks = desks(level_id)\n if desks.empty?\n next\n end\n desk_bookings = (staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {level_id}, type: \"desk\")).get.as_a\n if desk_bookings.empty?\n next\n end\n desk_bookings.each do |booking|\n desk = booking[\"asset_id\"].as_s\n if security = desks[desk]?\n access_required[booking[\"user_email\"].as_s.downcase] << security\n end\n end\n end\n allocations = @allocations\n if allocations == access_required\n return\n end\n remove = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n add = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n all_keys = allocations.keys.concat(access_required.keys)\n all_keys.each do |key|\n current = allocations[key]? || ([] of String)\n desired = access_required[key]? || ([] of String)\n to_remove = current - desired\n to_add = desired - current\n if to_remove.empty?\n else\n remove[key] = to_remove\n end\n if to_add.empty?\n else\n add[key] = to_add\n end\n end\n security = security_system\n remove.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_remove_member(zone_id, user_id)).get\n rescue error\n access_required[user_email] << zone\n logger.warn(exception: error) do\n \"failed to remove #{user_email} from security zone: #{zone}\"\n end\n end\n end\n rescue error\n access_required[user_email] = allocations[user_email]\n add.delete(user_email)\n logger.warn(exception: error) do\n \"failed to remove #{user_email} from security zones\"\n end\n end\n end\n add.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_add_member(zone_id, user_id)).get\n rescue error\n access_required[user_email].delete(zone)\n logger.warn(exception: error) do\n \"failed to add #{user_email} to security zone: #{zone}\"\n end\n end\n end\n rescue error\n access_required.delete(user_email)\n logger.warn(exception: error) do\n \"failed to add #{user_email} to security zones\"\n end\n end\n end\n define_setting(:permissions_allocated, access_required)\nend"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L53"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"systems.keys"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n check_access(Booking.from_json(payload))\nend\nschedule.every(30.minutes) do\n ensure_booking_access\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@timezone = nil\n@systems = nil\n@mutex.synchronize do\n @allocations = (setting?(Hash(String, Array(String)), :permissions_allocated)) || Hash(String, Array(String)).new\nend\n"}},{"html_id":"security_system-instance-method","name":"security_system","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L13"},"def":{"name":"security_system","visibility":"Public","body":"(system.implementing(Interface::ZoneAccessSecurity)).first"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L49"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg0|\n __arg0.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}},{"html_id":"user_id?(email:String):String|Int64|Nil-instance-method","name":"user_id?","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L78"},"def":{"name":"user_id?","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_user_id(security, email.downcase)\n"}},{"html_id":"zone_id?(name_or_id:String):String|Int64|Nil-instance-method","name":"zone_id?","abstract":false,"args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"args_string":"(name_or_id : String) : String | Int64 | Nil","args_html":"(name_or_id : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L92"},"def":{"name":"zone_id?","args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_zone_id(security, name_or_id)\n"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess/Desk","path":"Place/Bookings/GrantAreaAccess/Desk.html","kind":"struct","full_name":"Place::Bookings::GrantAreaAccess::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings/GrantAreaAccess","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L74"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"security:String|Nil-instance-method","name":"security","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L75"},"def":{"name":"security","return_type":"String | ::Nil","visibility":"Public","body":"@security"}}]}]},{"html_id":"drivers/Place/Bookings/NotifyEvent","path":"Place/Bookings/NotifyEvent.html","kind":"struct","full_name":"Place::Bookings::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L667"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings.cr","line_number":668,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L668"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L674"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":670,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L670"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L677"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":671,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L671"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L672"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":673,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L673"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/Bookings/NotifyType","path":"Place/Bookings/NotifyType.html","kind":"enum","full_name":"Place::Bookings::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L655"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L657"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L659"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L663"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":664,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L664"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":662,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L662"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L658"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/Bookings/ServiceName","path":"Place/Bookings/ServiceName.html","kind":"enum","full_name":"Place::Bookings::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L650"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L651"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L652"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/Calendar","path":"Place/Calendar.html","kind":"class","full_name":"Place::Calendar","name":"Calendar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/CalendarCommon","path":"Place/CalendarCommon.html","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon","abstract":false,"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"locations":[{"filename":"src/place/calendar_common.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"including_types":[{"html_id":"drivers/Microsoft/GraphAPI","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI"},{"html_id":"drivers/Place/Calendar","kind":"class","full_name":"Place::Calendar","name":"Calendar"},{"html_id":"drivers/Place/WorkspaceAPI","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L330"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"accepting event #{event_id} on #{calendar_id}\"\nend\nclient(&.accept_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"access_token(user_id:String|Nil=nil)-instance-method","name":"access_token","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String | Nil = nil)","args_html":"(user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L161"},"def":{"name":"access_token","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.info do\n \"access token requested #{user_id}\"\nend\nclient(&.access_token(user_id))\n"}},{"html_id":"calendar_service_name-instance-method","name":"calendar_service_name","doc":"returns: google or office365","summary":"

returns: google or office365

","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L396"},"def":{"name":"calendar_service_name","visibility":"Public","body":"@client.not_nil!.client_id"}},{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]of::PlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L339"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = ::PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nclient(&.create_event(user_id, event, calendar_id))\n"}},{"html_id":"create_notifier(resource:String,notification_url:String,expiration_time:Int64,client_secret:String|Nil=nil,lifecycle_notification_url:String|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"create_notifier","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"args_string":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","args_html":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L401"},"def":{"name":"create_notifier","args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(expiration_time)\nclient(&.create_notifier(resource, notification_url, expires, client_secret, lifecycle_notification_url: lifecycle_notification_url))\n"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L312"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"declining event #{event_id} on #{calendar_id}\"\nend\nclient(&.decline_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L321"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nclient(&.delete_event(user_id, event_id, calendar_id: calendar_id, notify: notify))\n"}},{"html_id":"delete_notifier(subscription:PlaceCalendar::Subscription):Nil-instance-method","name":"delete_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"args_string":"(subscription : PlaceCalendar::Subscription) : Nil","args_html":"(subscription : PlaceCalendar::Subscription) : Nil","location":{"filename":"src/place/calendar_common.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L420"},"def":{"name":"delete_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"return_type":"Nil","visibility":"Public","body":"client(&.delete_notifier(subscription))"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/calendar_common.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L119"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/calendar_common.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L115"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"get_event(calendar_id:String,event_id:String,user_id:String|Nil=nil)-instance-method","name":"get_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L305"},"def":{"name":"get_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"fetching event #{event_id} on #{calendar_id}\"\nend\nuser_id = (user_id || @service_account.presence) || calendar_id\nclient(&.get_event(user_id, id: event_id, calendar_id: calendar_id))\n"}},{"html_id":"get_group(group_id:String)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L258"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n office_client = (_client.calendar.as(PlaceCalendar::Office365)).client\n if group_id.includes?('@')\n group = office_client.list_groups(filter: \"mail eq '#{group_id}'\").value.first?\n if group\n return group.to_place_group\n end\n end\n (office_client.get_group(group_id)).to_place_group\n end\nend\n"}},{"html_id":"get_groups(user_id:String)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L167"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nclient(&.get_groups(user_id))\n"}},{"html_id":"get_members(group_id:String,next_page:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(group_id : String, next_page : String | Nil = nil)","args_html":"(group_id : String, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L177"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nif group_id.includes?('@')\n client do |_client|\n if _client.client_id == (:office365)\n logger.warn do\n \"inefficient group members request. Recommended obtaining group.id versus using email\"\n end\n end\n end\nend\nmembers = client(&.get_members(group_id, next_link: next_page))\nif member = members.first?\n member.next_page = member.next_link\nend\nmembers\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L220"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nclient(&.get_user_by_email(user_id))\n"}},{"html_id":"get_user_manager(user_id:String)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L233"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.get_user_manager(user_id)).to_place_calendar\n end\nend\n"}},{"html_id":"in_flight_size-instance-method","name":"in_flight_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L111"},"def":{"name":"in_flight_size","visibility":"Public","body":"@flight_size"}},{"html_id":"list_calendars(user_id:String)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L226"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nclient(&.list_calendars(user_id))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,ical_uid:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L273"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"location = time_zone ? Time::Location.load(time_zone) : Time::Location.local\nperiod_start = (Time.unix(period_start)).in(location)\nperiod_end = (Time.unix(period_end)).in(location)\nuser_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"listing events for #{calendar_id}\"\nend\n_client = @client.not_nil!\nevents = if _client.client_id == (:google)\n (_client.calendar.as(PlaceCalendar::Google)).list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid, quotaUser: calendar_id[0..39])\nelse\n _client.list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid)\nend\nif ical_uid\n events = events.select do |e|\n e.ical_uid == ical_uid\n end\nend\nevents\n"}},{"html_id":"list_groups(query:String|Nil=nil,filter:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, filter : String | Nil = nil)","args_html":"(query : String | Nil = nil, filter : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L244"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{filter || query}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.list_groups(query, filter: filter)).value.map(&.to_place_group)\n end\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,filter:String|Nil=nil,next_page:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L203"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query || filter}, limit #{limit} (next: #{!!next_page})\"\nend\nusers = client(&.list_users(query, limit, filter: filter, next_link: next_page))\nif user = users.first?\n user.next_page = user.next_link\nend\nusers\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L40"},"def":{"name":"on_unload","visibility":"Public","body":"@in_flight.close\n@channel.close\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"if proxy_config = setting?(NamedTuple(host: String, port: Int32, auth: NamedTuple(username: String, password: String) | ::Nil), :proxy)\n ConnectProxy.proxy_uri = \"http://#{proxy_config[:host]}:#{proxy_config[:port]}\"\n if proxy_auth = proxy_config[:auth]\n ConnectProxy.username = proxy_auth[:username]\n ConnectProxy.password = proxy_auth[:password]\n end\nend\nConnectProxy.verify_tls = !!(setting?(Bool, :proxy_verify_tls))\nConnectProxy.disable_crl_checks = !!(setting?(Bool, :proxy_disable_crl))\n@service_account = (setting?(String, :calendar_service_account)).presence\n@rate_limit = (setting?(Int32, :rate_limit)) || 10\n@wait_time = 1.second / @rate_limit\n@mailer_from = (setting?(String, :mailer_from)).presence || @service_account\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n@in_flight.close\n@channel.close\n@client = begin\n config = setting(GoogleParams, :calendar_config)\n cli = ::PlaceCalendar::Client.new(**config)\n @channel = Channel(Nil).new(9)\n @in_flight = Channel(Nil).new(10)\n spawn do\n rate_limiter\n end\n cli\nrescue\n config = setting(OfficeParams, :calendar_config)\n ::PlaceCalendar::Client.new(**config)\nend\n"}},{"html_id":"queue_size-instance-method","name":"queue_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L107"},"def":{"name":"queue_size","visibility":"Public","body":"@queue_size"}},{"html_id":"reauthorize_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"reauthorize_notifier","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L414"},"def":{"name":"reauthorize_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = new_expiration_time ? Time.unix(new_expiration_time) : nil\nclient(&.reauthorize_notifier(subscription, expires))\n"}},{"html_id":"renew_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64):PlaceCalendar::Subscription-instance-method","name":"renew_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L407"},"def":{"name":"renew_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(new_expiration_time)\nclient(&.renew_notifier(subscription, expires))\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L124"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"sender = case from\nin String\n from\nin Array(String)\n from.first? || @mailer_from.not_nil!\nin Nil\n @mailer_from.not_nil!\nend\nlogger.debug do\n \"an email was sent from: #{sender}, to: #{to}\"\nend\nclient do |__arg0|\n __arg0.calendar.send_mail(sender, to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc)\nend\n"}},{"html_id":"update_event(event:PlaceCalendar::Event,user_id:String|Nil=nil,calendar_id:String|Nil=nil)-instance-method","name":"update_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"args_string":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","args_html":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L386"},"def":{"name":"update_event","args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"updating event #{event.id} on #{event.host}\"\nend\nclient(&.update_event(user_id: user_id, event: event, calendar_id: calendar_id))\n"}}],"types":[{"html_id":"drivers/Place/CalendarCommon/GoogleParams","path":"Place/CalendarCommon/GoogleParams.html","kind":"alias","full_name":"Place::CalendarCommon::GoogleParams","name":"GoogleParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String)","aliased_html":"{scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}},{"html_id":"drivers/Place/CalendarCommon/OfficeParams","path":"Place/CalendarCommon/OfficeParams.html","kind":"alias","full_name":"Place::CalendarCommon::OfficeParams","name":"OfficeParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String, conference_type: String | Nil)","aliased_html":"{tenant: String, client_id: String, client_secret: String, conference_type: String?}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}}]},{"html_id":"drivers/Place/CalendarDelegated","path":"Place/CalendarDelegated.html","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]ofPlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L207"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nprocess((client(act_as_user)).post(\"/api/staff/v1/events\", body: event.to_json, headers: act_as(act_as_user)))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L174"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nif notify\n begin\n process((client(act_as_user)).post(\"/api/staff/v1/events/#{event_id}/decline\", params: params, headers: act_as(act_as_user)))\n rescue\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\n end\nelse\n params[\"notify\"] = \"false\"\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\nend\n"}},{"html_id":"get_group(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L125"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_groups(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L78"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/groups\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_members(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L84"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}/members\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L97"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user_manager(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L110"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/manager\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_calendars(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L103"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/calendars\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L145"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing events for #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nparams[\"period_start\"] = period_start.to_s\nparams[\"period_end\"] = period_end.to_s\nif include_cancelled\n params[\"include_cancelled\"] = \"true\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/events\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_groups(query:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L117"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{query}, note: graphAPI only\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L90"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query}\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/people\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L53"},"def":{"name":"on_update","visibility":"Public","body":"rate_limit = (setting?(Float64, :rate_limit)) || 3.0\n@limiter = RateLimiter.new(rate: rate_limit, max_burst: rate_limit.to_i)\n@api_key = api_key = setting(String, :api_key)\ntransport.before_request do |request|\n if request.headers[\"Authorization\"]?\n else\n request.headers[\"X-API-Key\"] = api_key\n end\nend\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n"}}],"types":[{"html_id":"drivers/Place/CalendarDelegated/User","path":"Place/CalendarDelegated/User.html","kind":"struct","full_name":"Place::CalendarDelegated::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L251"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/CalendarDelegated","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/calendar_delegated.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L252"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L255"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L256"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L254"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Chat","path":"Place/Chat.html","kind":"module","full_name":"Place::Chat","name":"Chat","abstract":false,"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L4"},{"filename":"src/place/chat/health_rooms_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Chat/ConferenceDetails","path":"Place/Chat/ConferenceDetails.html","kind":"struct","full_name":"Place::Chat::ConferenceDetails","name":"ConferenceDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(place_id:String,space_id:String,host_pin:String,guest_pin:String)-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"args_string":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","args_html":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L16"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, space_id, host_pin, guest_pin)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L14"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"guest_pin:String-instance-method","name":"guest_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L11"},"def":{"name":"guest_pin","return_type":"String","visibility":"Public","body":"@guest_pin"}},{"html_id":"host_pin:String-instance-method","name":"host_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L10"},"def":{"name":"host_pin","return_type":"String","visibility":"Public","body":"@host_pin"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L8"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L9"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}}]},{"html_id":"drivers/Place/Chat/HealthRooms","path":"Place/Chat/HealthRooms.html","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EXAMPLE_SMS_TEMPLATE","name":"EXAMPLE_SMS_TEMPLATE","value":"\"patient %{patient_name} is waiting in %{room_name} for an appointment at %{appointment_time}\""}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"guest_mark_as_contacted(rtc_user_id:String,session_id:String,contacted:Bool=true):Bool-instance-method","name":"guest_mark_as_contacted","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"args_string":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","args_html":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L808"},"def":{"name":"guest_mark_as_contacted","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"found = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n if participant = meeting.participants[rtc_user_id]?\n found = true\n participant.contacted = contacted\n end\n end\nend\nlogger.debug do\n \"[meet] marking guest #{rtc_user_id} as contacted: #{contacted} in session #{session_id}\"\nend\nif found\n update_meeting_state(session_id)\nend\nfound\n"}},{"html_id":"guest_move_session(rtc_user_id:String,session_id:String,new_session_id:String):Bool-instance-method","name":"guest_move_session","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","args_html":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":823,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L823"},"def":{"name":"guest_move_session","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"system_id = nil\nnew_meeting = nil\nif @recent_lock.synchronize do\n @recently_disconnected[rtc_user_id]?\nend\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as disconnected\"\n end\n raise(\"can't move disconnected users, please wait for reconnection or kick\")\nend\n@meeting_mutex.synchronize do\n if (meeting = @meetings[session_id]?) && (new_meeting = @meetings[new_session_id]?)\n if participant = meeting.remove(rtc_user_id)\n system_id = meeting.system_id\n new_meeting.add(participant)\n if meeting.empty?\n @meetings.delete(session_id)\n @room_mutex.synchronize do\n @rooms[system_id].try(&.delete(session_id))\n end\n end\n end\n end\nend\nif system_id && new_meeting\n logger.debug do\n \"[meet] moving user #{rtc_user_id} into #{new_session_id} from #{session_id}\"\n end\n update_meeting_state(session_id, system_id)\n update_meeting_state(new_session_id)\n conference = new_meeting.conference\n staff_api.transfer_user(rtc_user_id, new_session_id, {space_id: conference.space_id, guest_pin: conference.guest_pin})\nelse\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as could not find session\"\n end\nend\n!!system_id\n"}},{"html_id":"meeting_end(session_id:String)-instance-method","name":"meeting_end","doc":"removes the meeting from the list and kicks anyone left in the meeting","summary":"

removes the meeting from the list and kicks anyone left in the meeting

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L778"},"def":{"name":"meeting_end","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nsystem_id = nil\nmeeting = nil\nlogger.debug do\n \"[meet] ending meeting #{session_id} ended by #{placeos_user_id}\"\nend\n@meeting_mutex.synchronize do\n meeting = @meetings.delete(session_id)\n if meeting\n else\n raise(\"meeting not found\")\n end\n system_id = meeting.system_id\n @room_mutex.synchronize do\n if sessions = @rooms[system_id]?\n sessions.delete(session_id)\n if sessions.empty?\n @rooms.delete(system_id)\n end\n end\n end\nend\nmeeting.not_nil!.participants.keys.each do |rtc_user_id|\n staff_api.kick_user(rtc_user_id, session_id, \"meeting ended\")\nend\nupdate_meeting_state(session_id, system_id.as(String))\n"}},{"html_id":"meeting_join(rtc_user_id:String,session_id:String,type:String|Nil=nil,system_id:String|Nil=nil,text_chat_only:Bool|Nil=nil):ConferenceDetails-instance-method","name":"meeting_join","doc":"this is how staff members create a meeting room\nor join an existing meeting","summary":"

this is how staff members create a meeting room or join an existing meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","args_html":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","location":{"filename":"src/place/chat/health_rooms.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L653"},"def":{"name":"meeting_join","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"return_type":"ConferenceDetails","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nuser_details = (staff_api.user(placeos_user_id)).get\nuser_name = user_details[\"name\"].as_s\nparticipant = Participant.new(user_id: rtc_user_id, name: user_name, email: user_details[\"email\"].as_s, type: type, staff_user_id: placeos_user_id, text_chat_only: text_chat_only)\n@recent_lock.synchronize do\n @recently_disconnected.delete(rtc_user_id)\nend\nmeeting = nil\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n system_id = meeting.system_id\n end\nend\nif system_id\nelse\n raise(\"must provide a system id if there is not an existing session\")\nend\nsystem_id = system_id.as(String)\ntimezone = meeting.try(&.timezone) || (timezone_system(system_id))\nlogger.debug do\n if meeting\n \"[meet] joining existing meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n else\n \"[meet] creating new meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n end\nend\nif meeting\nelse\n conference = pool_checkout_conference\nend\n@meeting_mutex.synchronize do\n meeting = if meet = @meetings[session_id]?\n system_id = meet.system_id\n meet.add(participant)\n meet\n else\n conference = conference || pool_checkout_conference\n meet = Meeting.new(system_id.as(String), session_id, conference, participant)\n meet.timezone = timezone\n meet\n end\n @meetings[session_id] = meeting\n conference = meeting.conference\n @room_mutex.synchronize do\n sessions = @rooms[system_id]? || ([] of SessionId)\n if sessions.includes?(session_id)\n else\n sessions << session_id\n end\n @rooms[system_id] = sessions\n end\nend\nupdate_meeting_state(session_id, system_id.as(String))\nconference.as(ConferenceDetails)\n"}},{"html_id":"meeting_kick(rtc_user_id:String,session_id:String)-instance-method","name":"meeting_kick","doc":"kicks an individual from a meeting","summary":"

kicks an individual from a meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String)","args_html":"(rtc_user_id : String, session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":766,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L766"},"def":{"name":"meeting_kick","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.warn do\n \"[meet] kicking user #{rtc_user_id} from session #{session_id}, kicked by: #{placeos_user_id}\"\nend\nstaff_api.kick_user(rtc_user_id, session_id, \"kicked by host\")\nuser_exited(rtc_user_id)\n"}},{"html_id":"meeting_leave(rtc_user_id:String,session_id:String):Nil-instance-method","name":"meeting_leave","doc":"the user is planning of leaving the meeting or has left","summary":"

the user is planning of leaving the meeting or has left

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String) : Nil","args_html":"(rtc_user_id : String, session_id : String) : Nil","location":{"filename":"src/place/chat/health_rooms.cr","line_number":758,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L758"},"def":{"name":"meeting_leave","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.debug do\n \"[meet] user leaving #{rtc_user_id} (#{placeos_user_id}) session #{session_id}\"\nend\nmeeting_remove_user(rtc_user_id, session_id, placeos_user_id)\n"}},{"html_id":"meeting_move_room(session_id:String,system_id:String):Bool-instance-method","name":"meeting_move_room","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(session_id : String, system_id : String) : Bool","args_html":"(session_id : String, system_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L615"},"def":{"name":"meeting_move_room","args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"old_system_id = nil\nmoved = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n old_system_id = meeting.system_id\n meeting.system_id = system_id\n moved = true\n @room_mutex.synchronize do\n if room_sessions = @rooms[old_system_id]?\n room_sessions.delete(session_id)\n if room_sessions.empty?\n @rooms.delete(old_system_id)\n self[old_system_id] = nil\n end\n sessions = @rooms[system_id]? || ([] of SessionId)\n sessions << session_id\n @rooms[system_id] = sessions\n end\n end\n end\nend\nlogger.debug do\n \"[meet] moving session: #{session_id} to system #{system_id} from #{old_system_id}\"\nend\nif moved\n update_meeting_state(session_id, system_id, old_system_id)\nend\nmoved\n"}},{"html_id":"meeting_state_request_save-instance-method","name":"meeting_state_request_save","doc":"use this to trigger a save","summary":"

use this to trigger a save

","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L88"},"def":{"name":"meeting_state_request_save","visibility":"Public","body":"@save_requested.send(nil)"}},{"html_id":"notify_config(system_id:String,timezone:String)-instance-method","name":"notify_config","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(system_id : String, timezone : String)","args_html":"(system_id : String, timezone : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":491,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L491"},"def":{"name":"notify_config","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"timezone = Time::Location.load(timezone)\nraw_settings = (staff_api.metadata(system_id, \"settings\")).get[\"settings\"]?.try(&.to_json)\nsettings = raw_settings ? RoomSettings.from_json(raw_settings, root: \"details\") : RoomSettings.new\ndefault_notifications = settings.notifications\nroom_users = settings.members.compact_map do |member|\n if member.available?\n else\n next\n end\n begin\n user_data = (staff_api.user(member.id)).get.as_h\n member.name = (user_data[\"nickname\"]? || user_data[\"name\"]).as_s\n member.email = user_data[\"email\"].as_s\n member.phone = user_data[\"phone\"]?.try(&.as_s)\n notify_settings = if user_settings = (staff_api.metadata(member.id, \"settings\")).get[\"settings\"]?.try(&.[]?(\"details\")).try(&.to_json)\n begin\n NotificationSettings.from_json(user_settings, root: \"notifications\")\n rescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse user #{member.id} notification settings\"\n end\n default_notifications\n end\n else\n default_notifications\n end\n if notify_settings.enabled?\n else\n next\n end\n member.notifications = notify_settings\n member\n rescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain user #{member.id} metadata\"\n end\n nil\n end\nend\nsettings.members = room_users\nsettings.timezone = timezone\nsettings\n"}},{"html_id":"notify_inspect_meeting(session_id:String)-instance-method","name":"notify_inspect_meeting","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L481"},"def":{"name":"notify_inspect_meeting","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"meeting = @meeting_mutex.synchronize do\n @meetings[session_id]?.try(&.dup)\nend\nif meeting\nelse\n raise(\"meeting #{session_id} not found\")\nend\nsystem_info, room_settings = notify_load_notifications(meeting)\nmembers = room_settings.try do |__arg8|\n __arg8.members.map do |member|\n {member: member, notifications: member.notifications}\n end\nend\n{settings: room_settings, members: members}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L25"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n meeting_state_perform_save\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@update_mutex.synchronize do\n if @update_expected > 0\n @update_expected = @update_expected - 1\n logger.debug do\n \"[admin] updating settings...\"\n end\n return\n end\nend\nlogger.debug do\n \"[admin] updating settings...\"\nend\nis_spec = (setting?(Bool, :is_spec)) || false\ndomain = setting(String, :domain_id)\n@sms_source = setting?(String, :sms_source)\n@sms_template = (setting?(String, :sms_template)) || EXAMPLE_SMS_TEMPLATE\n@notify_no_time = (setting?(String, :notify_no_time)) || \"no time specified\"\n@pool_target_size = (setting?(Int32, :pool_size)) || 10\nsystem_id = config.control_system.not_nil!.id\n@disconnect_timeout = ((setting?(Int32, :disconnect_timeout)) || 3).minutes\n@timezone_default = nil\nschedule.clear\nschedule.every(@disconnect_timeout / 3) do\n cleanup_disconnected\nend\nschedule.every(5.minutes) do\n pool_cleanup\nend\nif is_spec\nelse\n schedule.in(1.second) do\n pool_cleanup\n end\nend\nmonitoring = \"#{domain}/chat/#{system_id}/guest/entry\"\nself[:monitoring] = monitoring\nsubscriptions.clear\nmeeting_state_restore\nmonitor(monitoring) do |_subscription, payload|\n new_guest(payload)\nend\nmonitor(\"#{domain}/chat/user/joined\") do |_subscription, payload|\n user_joined(payload)\nend\nmonitor(\"#{domain}/chat/user/exited\") do |_subscription, payload|\n logger.debug do\n \"[signal] user exited: #{payload}\"\n end\n user_id = (NamedTuple(user_id: String).from_json(payload))[:user_id]\n user_exited(user_id)\nend\nmonitor(\"#{domain}/chat/user/left\") do |_subscription, payload|\n user_left(payload)\nend\nlogger.debug do\n \"[admin] settings update success!\"\nend\n"}},{"html_id":"pool_checkout_conference:ConferenceDetails-instance-method","name":"pool_checkout_conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":939,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L939"},"def":{"name":"pool_checkout_conference","return_type":"ConferenceDetails","visibility":"Public","body":"meeting = @pool_lock.synchronize do\n if @pool_meet.size > 0\n @pool_size = @pool_size - 1\n @pool_meet.shift\n end\nend\nlogger.debug do\n \"[pool] Checking out meeting, available in pool? #{!meeting.nil?}\"\nend\nspawn do\n pool_ensure_size\nend\nmeeting || new_conference\n"}},{"html_id":"pool_clear_conferences:Nil-instance-method","name":"pool_clear_conferences","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L953"},"def":{"name":"pool_clear_conferences","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"[pool] Clearing #{@pool_size} meetings from pool\"\nend\n@pool_lock.synchronize do\n @pool_size = 0\n @pool_meet = [] of ConferenceDetails\nend\npool_ensure_size\n"}},{"html_id":"pool_ensure_size:Nil-instance-method","name":"pool_ensure_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":909,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L909"},"def":{"name":"pool_ensure_size","return_type":"Nil","visibility":"Public","body":"required = 0\n@pool_lock.synchronize do\n required = @pool_target_size - @pool_size\n @pool_size = @pool_target_size\nend\nlogger.debug do\n \"[pool] Maintaining meeting pool size, #{required} new meetings required\"\nend\nif required <= 0\n return\nend\ncreated = 0\nbegin\n required.times do\n meeting = new_conference\n @pool_lock.synchronize do\n @pool_meet << meeting\n end\n created = created + 1\n end\nrescue error\n logger.error(exception: error) do\n \"[pool] error creating pool meetings\"\n end\n if created != required\n diff = required - created\n @pool_lock.synchronize do\n @pool_size = @pool_size - diff\n end\n end\nend\n"}},{"html_id":"pool_size:Int32-instance-method","name":"pool_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L872"},"def":{"name":"pool_size","return_type":"Int32","visibility":"Public","body":"@pool_size"}},{"html_id":"pool_target_size:Int32-instance-method","name":"pool_target_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":873,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L873"},"def":{"name":"pool_target_size","return_type":"Int32","visibility":"Public","body":"@pool_target_size"}},{"html_id":"sessions_with_user(user_id:String):Array(String)-instance-method","name":"sessions_with_user","doc":"finds all the session_ids that includes the specified user_id","summary":"

finds all the session_ids that includes the specified user_id

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(String)","args_html":"(user_id : String) : Array(String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L399"},"def":{"name":"sessions_with_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"sessions = [] of String\n@meeting_mutex.synchronize do\n @meetings.each do |session_id, meeting|\n if meeting.participants.has_key?(user_id)\n sessions << session_id\n end\n end\nend\nsessions\n"}},{"html_id":"timezone_default:String-instance-method","name":"timezone_default","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L471"},"def":{"name":"timezone_default","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone_default).nil?\n @timezone_default = (system.timezone.presence || \"UTC\")\nelse\n __temp_1\nend"}},{"html_id":"timezone_system(system_id:String)-instance-method","name":"timezone_system","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":473,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L473"},"def":{"name":"timezone_system","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"begin\n (staff_api.get_system(system_id)).get[\"timezone\"]?.try() do |__arg6|\n __arg6.as_s.presence\n end || timezone_default\nrescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain timezone information for #{system_id}\"\n end\n timezone_default\nend"}}],"types":[{"html_id":"drivers/Place/Chat/HealthRooms/SessionId","path":"Place/Chat/HealthRooms/SessionId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SessionId","name":"SessionId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":602,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L602"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"session id == the webrtc session id","summary":"

session id == the webrtc session id

"},{"html_id":"drivers/Place/Chat/HealthRooms/SystemId","path":"Place/Chat/HealthRooms/SystemId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SystemId","name":"SystemId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L605"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"system id == room","summary":"

system id == room

"}]},{"html_id":"drivers/Place/Chat/Meeting","path":"Place/Chat/Meeting.html","kind":"class","full_name":"Place::Chat::Meeting","name":"Meeting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(system_id:String,session_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L139"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, session_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(system_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L128"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"add(participant:Participant):Participant-instance-method","name":"add","abstract":false,"args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(participant : Participant) : Participant","args_html":"(participant : Participant) : Participant","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L147"},"def":{"name":"add","args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"return_type":"Participant","visibility":"Public","body":"@participants[participant.user_id] = participant\n@participants[@created_by_user_id]?.try(&.contacted = true)\n@updated_at = Time.utc\nparticipant\n"}},{"html_id":"conference:ConferenceDetails-instance-method","name":"conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference","return_type":"ConferenceDetails","visibility":"Public","body":"@conference"}},{"html_id":"conference=(conference:ConferenceDetails)-instance-method","name":"conference=","abstract":false,"args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"args_string":"(conference : ConferenceDetails)","args_html":"(conference : ConferenceDetails)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference=","args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"visibility":"Public","body":"@conference = conference"}},{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L84"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"created_by_participant-instance-method","name":"created_by_participant","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L161"},"def":{"name":"created_by_participant","visibility":"Public","body":"@participants[created_by_user_id]"}},{"html_id":"created_by_user_id:String-instance-method","name":"created_by_user_id","doc":"webrtc_user_id that created the meeting","summary":"

webrtc_user_id that created the meeting

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L81"},"def":{"name":"created_by_user_id","return_type":"String","visibility":"Public","body":"@created_by_user_id"}},{"html_id":"creator_contacted?-instance-method","name":"creator_contacted?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L165"},"def":{"name":"creator_contacted?","visibility":"Public","body":"@participants[created_by_user_id]?.try(&.contacted)"}},{"html_id":"empty?:Bool-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L181"},"def":{"name":"empty?","return_type":"Bool","visibility":"Public","body":"@participants.empty?"}},{"html_id":"has_participant?(webrtc_user_id:String):Participant|Nil-instance-method","name":"has_participant?","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L169"},"def":{"name":"has_participant?","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"@participants[webrtc_user_id]?"}},{"html_id":"mark_participant_connected(webrtc_user_id:String,state:Bool):String|Nil-instance-method","name":"mark_participant_connected","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(webrtc_user_id : String, state : Bool) : String | Nil","args_html":"(webrtc_user_id : String, state : Bool) : String | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L173"},"def":{"name":"mark_participant_connected","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"return_type":"String | ::Nil","visibility":"Public","body":"if participant = has_participant?(webrtc_user_id)\n old_state = participant.connected\n participant.connected = state\n if old_state == state\n else\n return system_id\n end\nend"}},{"html_id":"notify_members_on_entry:Array(RoomMember)-instance-method","name":"notify_members_on_entry","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L110"},"def":{"name":"notify_members_on_entry","return_type":"Array(RoomMember)","visibility":"Public","body":"settings = room_settings\nif settings\nelse\n return [] of RoomMember\nend\npatient = participants[created_by_user_id]\nclinician_selected = patient.chat_to_user_id.presence\ncontact = filter_members(clinician_selected)\nif contact.empty? && clinician_selected\n contact = filter_members(nil)\nend\nif contact.empty?\n contact = settings.members\nend\ncontact\n"}},{"html_id":"participants:Hash(String,Participant)-instance-method","name":"participants","doc":"webrtc_user_id => participant","summary":"

webrtc_user_id => participant

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L75"},"def":{"name":"participants","return_type":"Hash(String, Participant)","visibility":"Public","body":"@participants"}},{"html_id":"remove(webrtc_user_id:String):Participant|Nil-instance-method","name":"remove","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L154"},"def":{"name":"remove","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"if participant = @participants.delete(webrtc_user_id)\n @updated_at = Time.utc\n participant\nend"}},{"html_id":"room_settings:RoomSettings|Nil-instance-method","name":"room_settings","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings","return_type":"RoomSettings | ::Nil","visibility":"Public","body":"@room_settings"}},{"html_id":"room_settings=(room_settings:RoomSettings|Nil)-instance-method","name":"room_settings=","abstract":false,"args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"args_string":"(room_settings : RoomSettings | Nil)","args_html":"(room_settings : RoomSettings | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings=","args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"visibility":"Public","body":"@room_settings = room_settings"}},{"html_id":"session_id:String-instance-method","name":"session_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L76"},"def":{"name":"session_id","return_type":"String","visibility":"Public","body":"@session_id"}},{"html_id":"system:PlaceOS::Driver::DriverModel::ControlSystem|Nil-instance-method","name":"system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system","return_type":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil","visibility":"Public","body":"@system"}},{"html_id":"system=(system:PlaceOS::Driver::DriverModel::ControlSystem|Nil)-instance-method","name":"system=","abstract":false,"args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"args_string":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","args_html":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system=","args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"visibility":"Public","body":"@system = system"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::Meeting#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L78"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:String|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"updated_at:Time-instance-method","name":"updated_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L87"},"def":{"name":"updated_at","return_type":"Time","visibility":"Public","body":"@updated_at"}}]},{"html_id":"drivers/Place/Chat/MeetingSummary","path":"Place/Chat/MeetingSummary.html","kind":"struct","full_name":"Place::Chat::MeetingSummary","name":"MeetingSummary","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pos_system:String,call_count:Int32,participant_count:Int32,waiting_count:Int32,longest_wait_time:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"args_string":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","args_html":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L67"},"def":{"name":"new","args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pos_system, call_count, participant_count, waiting_count, longest_wait_time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L59"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"call_count:Int32-instance-method","name":"call_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L62"},"def":{"name":"call_count","return_type":"Int32","visibility":"Public","body":"@call_count"}},{"html_id":"longest_wait_time:Int64-instance-method","name":"longest_wait_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L65"},"def":{"name":"longest_wait_time","return_type":"Int64","visibility":"Public","body":"@longest_wait_time"}},{"html_id":"participant_count:Int32-instance-method","name":"participant_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L64"},"def":{"name":"participant_count","return_type":"Int32","visibility":"Public","body":"@participant_count"}},{"html_id":"pos_system:String-instance-method","name":"pos_system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L61"},"def":{"name":"pos_system","return_type":"String","visibility":"Public","body":"@pos_system"}},{"html_id":"waiting_count:Int32-instance-method","name":"waiting_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L63"},"def":{"name":"waiting_count","return_type":"Int32","visibility":"Public","body":"@waiting_count"}}]},{"html_id":"drivers/Place/Chat/NotificationSettings","path":"Place/Chat/NotificationSettings.html","kind":"struct","full_name":"Place::Chat::NotificationSettings","name":"NotificationSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L30"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"chosen_provider?:Bool-instance-method","name":"chosen_provider?","doc":"only alert if the user selected me","summary":"

only alert if the user selected me

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L34"},"def":{"name":"chosen_provider?","return_type":"Bool","visibility":"Public","body":"@chosen_provider"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L35"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"on_enter:NotifyEventSettings-instance-method","name":"on_enter","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L37"},"def":{"name":"on_enter","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_enter"}},{"html_id":"on_escalate:NotifyEventSettings-instance-method","name":"on_escalate","doc":"settings if the patient has been waiting for a long time","summary":"

settings if the patient has been waiting for a long time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L43"},"def":{"name":"on_escalate","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_escalate"}},{"html_id":"on_recurr:NotifyEventSettings-instance-method","name":"on_recurr","doc":"how often should it send notifications","summary":"

how often should it send notifications

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L39"},"def":{"name":"on_recurr","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_recurr"}},{"html_id":"on_waiting:NotifyEventSettings-instance-method","name":"on_waiting","doc":"do we only notify if the user has been waiting for a certain amount of time","summary":"

do we only notify if the user has been waiting for a certain amount of time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L41"},"def":{"name":"on_waiting","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_waiting"}}]},{"html_id":"drivers/Place/Chat/NotifyEventSettings","path":"Place/Chat/NotifyEventSettings.html","kind":"struct","full_name":"Place::Chat::NotifyEventSettings","name":"NotifyEventSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L15"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"browser?:Bool-instance-method","name":"browser?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L19"},"def":{"name":"browser?","return_type":"Bool","visibility":"Public","body":"@browser"}},{"html_id":"delay:Int32-instance-method","name":"delay","doc":"minutes before notification","summary":"

minutes before notification

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L24"},"def":{"name":"delay","return_type":"Int32","visibility":"Public","body":"@delay"}},{"html_id":"email?:Bool-instance-method","name":"email?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L20"},"def":{"name":"email?","return_type":"Bool","visibility":"Public","body":"@email"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L18"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"sms?:Bool-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L21"},"def":{"name":"sms?","return_type":"Bool","visibility":"Public","body":"@sms"}}]},{"html_id":"drivers/Place/Chat/OpeningHours","path":"Place/Chat/OpeningHours.html","kind":"struct","full_name":"Place::Chat::OpeningHours","name":"OpeningHours","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(opening_times:Tuple(String,String,Bool))-class-method","name":"new","abstract":false,"args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"args_string":"(opening_times : Tuple(String, String, Bool))","args_html":"(opening_times : Tuple(String, String, Bool))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L73"},"def":{"name":"new","args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(opening_times)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"closes:Time::Span-instance-method","name":"closes","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L85"},"def":{"name":"closes","return_type":"Time::Span","visibility":"Public","body":"@closes"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L86"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_open?(now:Time)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"now","external_name":"now","restriction":"Time"}],"args_string":"(now : Time)","args_html":"(now : Time)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L88"},"def":{"name":"is_open?","args":[{"name":"now","external_name":"now","restriction":"Time"}],"visibility":"Public","body":"if enabled\nelse\n return false\nend\nstart_of_day = now.at_beginning_of_day\nopening = start_of_day + opens\nif now >= opening\nelse\n return false\nend\nclosing = start_of_day + closes\nnow < closing\n"}},{"html_id":"opens:Time::Span-instance-method","name":"opens","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L84"},"def":{"name":"opens","return_type":"Time::Span","visibility":"Public","body":"@opens"}}]},{"html_id":"drivers/Place/Chat/Participant","path":"Place/Chat/Participant.html","kind":"class","full_name":"Place::Chat::Participant","name":"Participant","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(user_id:String,name:String,email:Nil|String=nil,phone:Nil|String=nil,type:Nil|String=nil,staff_user_id:Nil|String=nil,text_chat_only:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"args_string":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","args_html":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L54"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, name, email, phone, type, staff_user_id, text_chat_only)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"appointment_time:String|Nil-instance-method","name":"appointment_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L37"},"def":{"name":"appointment_time","return_type":"String | ::Nil","visibility":"Public","body":"@appointment_time"}},{"html_id":"captcha:String|Nil-instance-method","name":"captcha","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha","return_type":"String | ::Nil","visibility":"Public","body":"@captcha"}},{"html_id":"captcha=(captcha:String|Nil)-instance-method","name":"captcha=","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"args_string":"(captcha : String | Nil)","args_html":"(captcha : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha=","args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"visibility":"Public","body":"@captcha = captcha"}},{"html_id":"chat_to_user_id:String|Nil-instance-method","name":"chat_to_user_id","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@chat_to_user_id"}},{"html_id":"chat_to_user_id=(chat_to_user_id:String|Nil)-instance-method","name":"chat_to_user_id=","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"args_string":"(chat_to_user_id : String | Nil)","args_html":"(chat_to_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id=","args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@chat_to_user_id = chat_to_user_id"}},{"html_id":"connected:Bool-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected","return_type":"Bool","visibility":"Public","body":"@connected"}},{"html_id":"connected=(connected:Bool)-instance-method","name":"connected=","abstract":false,"args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool)","args_html":"(connected : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected=","args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"@connected = connected"}},{"html_id":"contacted:Bool-instance-method","name":"contacted","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted","return_type":"Bool","visibility":"Public","body":"@contacted"}},{"html_id":"contacted=(contacted:Bool)-instance-method","name":"contacted=","abstract":false,"args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"args_string":"(contacted : Bool)","args_html":"(contacted : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted=","args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"visibility":"Public","body":"@contacted = contacted"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"session_id:String|Nil-instance-method","name":"session_id","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id","return_type":"String | ::Nil","visibility":"Public","body":"@session_id"}},{"html_id":"session_id=(session_id:String|Nil)-instance-method","name":"session_id=","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"args_string":"(session_id : String | Nil)","args_html":"(session_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id=","args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@session_id = session_id"}},{"html_id":"staff_user_id:String|Nil-instance-method","name":"staff_user_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@staff_user_id"}},{"html_id":"staff_user_id=(staff_user_id:String|Nil)-instance-method","name":"staff_user_id=","abstract":false,"args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"args_string":"(staff_user_id : String | Nil)","args_html":"(staff_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id=","args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@staff_user_id = staff_user_id"}},{"html_id":"text_chat_only:Bool|Nil-instance-method","name":"text_chat_only","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@text_chat_only"}},{"html_id":"text_chat_only=(text_chat_only:Bool|Nil)-instance-method","name":"text_chat_only=","abstract":false,"args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(text_chat_only : Bool | Nil)","args_html":"(text_chat_only : Bool | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only=","args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@text_chat_only = text_chat_only"}},{"html_id":"type:String|Nil-instance-method","name":"type","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Place/Chat/RoomMember","path":"Place/Chat/RoomMember.html","kind":"class","full_name":"Place::Chat::RoomMember","name":"RoomMember","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"admin?-instance-method","name":"admin?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L67"},"def":{"name":"admin?","visibility":"Public","body":"roles.includes?(\"admin\")"}},{"html_id":"available?:Bool-instance-method","name":"available?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L49"},"def":{"name":"available?","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"clinician?-instance-method","name":"clinician?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L63"},"def":{"name":"clinician?","visibility":"Public","body":"roles.includes?(\"clinician\")"}},{"html_id":"coordinator?-instance-method","name":"coordinator?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L59"},"def":{"name":"coordinator?","visibility":"Public","body":"roles.includes?(\"coordinator\")"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L51"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomMember#notifications cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notifications=(notifications:NotificationSettings)-instance-method","name":"notifications=","abstract":false,"args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"args_string":"(notifications : NotificationSettings)","args_html":"(notifications : NotificationSettings)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L57"},"def":{"name":"notifications=","args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"visibility":"Public","body":"@notifications = notifications"}},{"html_id":"notifications?:NotificationSettings|Nil-instance-method","name":"notifications?","abstract":false,"def":{"name":"notifications?","return_type":"NotificationSettings | ::Nil","visibility":"Public","body":"@notifications"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"roles:Array(String)-instance-method","name":"roles","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L54"},"def":{"name":"roles","return_type":"Array(String)","visibility":"Public","body":"@roles"}}]},{"html_id":"drivers/Place/Chat/RoomSettings","path":"Place/Chat/RoomSettings.html","kind":"class","full_name":"Place::Chat::RoomSettings","name":"RoomSettings","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L99"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"doc":"Room metadata => settings key","summary":"

Room metadata => settings key

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L100"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L102"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L105"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"is_open?(timezone:Time::Location)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L132"},"def":{"name":"is_open?","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"if available\nelse\n return false\nend\nif open_24_7\n return true\nend\nnow = Time.local(timezone)\nindex = now.day_of_week.to_i - 1\n(OpeningHours.new(opening_hours[index])).is_open?(now)\n"}},{"html_id":"members:Array(RoomMember)-instance-method","name":"members","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members","return_type":"Array(RoomMember)","visibility":"Public","body":"@members"}},{"html_id":"members=(members:Array(RoomMember))-instance-method","name":"members=","abstract":false,"args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"args_string":"(members : Array(RoomMember))","args_html":"(members : Array(RoomMember))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members=","args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"visibility":"Public","body":"@members = members"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L107"},"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n @notifications = (NotificationSettings.new)\nelse\n __temp_1\nend"}},{"html_id":"open_24_7:Bool-instance-method","name":"open_24_7","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L106"},"def":{"name":"open_24_7","return_type":"Bool","visibility":"Public","body":"@open_24_7"}},{"html_id":"opening:Hash(Time::DayOfWeek,OpeningHours)-instance-method","name":"opening","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L123"},"def":{"name":"opening","return_type":"Hash(Time::DayOfWeek, OpeningHours)","visibility":"Public","body":"if (__temp_1 = @opening).nil?\n @opening = (begin\n times = {} of Time::DayOfWeek => OpeningHours\n opening_hours.each_with_index do |times, index|\n index = index + 1\n times[Time::DayOfWeek.from_value(index)] = OpeningHours.new(times)\n end\n times\n end)\nelse\n __temp_1\nend"}},{"html_id":"opening_hours:Array(Tuple(String,String,Bool))-instance-method","name":"opening_hours","doc":"0 index == Monday\n open time, close time, enabled","summary":"

0 index == Monday open time, close time, enabled

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L118"},"def":{"name":"opening_hours","return_type":"Array(Tuple(String, String, Bool))","visibility":"Public","body":"if (__temp_1 = @opening_hours).nil?\n @opening_hours = ([] of Tuple(String, String, Bool))\nelse\n __temp_1\nend"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomSettings#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:Time::Location)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L114"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:Time::Location|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@timezone"}}]}]},{"html_id":"drivers/Place/Demo","path":"Place/Demo.html","kind":"module","full_name":"Place::Demo","name":"Demo","abstract":false,"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Demo/Display","path":"Place/Demo/Display.html","kind":"class","full_name":"Place::Demo::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/demo/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L52"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"self[:audio_mute] = state\nself[:volume] = state ? 0 : @volume\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/demo/display.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L28"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:power] = state"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L32"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[:power].as_bool"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/place/demo/display.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L36"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"self[:input] = input"}},{"html_id":"test_setting(key:String,payload:JSON::Any)-instance-method","name":"test_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(key : String, payload : JSON::Any)","args_html":"(key : String, payload : JSON::Any)","location":{"filename":"src/place/demo/display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L46"},"def":{"name":"test_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"define_setting(key, payload)\npayload\n"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/demo/display.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L42"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"self[:volume] = @volume = level.to_f64"}},{"html_id":"volume?:Float64-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L40"},"def":{"name":"volume?","return_type":"Float64","visibility":"Public","body":"@volume"}}],"types":[{"html_id":"drivers/Place/Demo/Display/Input","path":"Place/Demo/Display/Input.html","kind":"enum","full_name":"Place::Demo::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Place/Demo/Display","kind":"class","full_name":"Place::Demo::Display","name":"Display"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L20"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L15"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L16"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L14"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L19"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L18"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]},{"html_id":"drivers/Place/Demo/LocationServices","path":"Place/Demo/LocationServices.html","kind":"class","full_name":"Place::Demo::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/location_services.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/location_services.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L24"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"case rand(3)\nwhen 0\n [{location: \"wireless\", coordinates_from: \"bottom-left\", x: 27.113065326953013, y: 36.85052447328469, lon: 55.27498749637098, lat: 25.20090608906493, mac: \"66e0fd1279ce\", variance: 4.5194575835650745, last_seen: 1601555879, building: @building_zone, level: @level_zone, map_width: 1234.2, map_height: 123.8}]\nwhen 1\n [{location: \"meeting\", mac: \"meeting.room@resource.org.com\", event_id: \"meet-1234567\", map_id: \"map-1234\", sys_id: @system_id, ends_at: 1.hour.from_now, private: false, level: @level_zone, building: @building_zone}]\nelse\n [] of String\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/location_services.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = setting(String, :building_zone)\n@level_zone = setting(String, :level_zone)\n@system_id = setting(String, :system_id)\n"}}]},{"html_id":"drivers/Place/Demo/Lockers","path":"Place/Demo/Lockers.html","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L15"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L317"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lb=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n locker_bank = floor_mac[\"lb\"]\n locker_key = floor_mac[\"lk\"]\n locker = locker_banks[locker_bank].locker_hash[locker_key]\n has_reservation = false\n if user_id = locker.allocated_to\n if time = locker.allocated_until\n has_reservation = time > Time.utc\n else\n has_reservation = true\n end\n end\n if has_reservation\n {location: \"locker\", assigned_to: (staff_api.user(locker.allocated_to)).get[\"email\"].as_s, mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L345"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\nbuilding = building_id\nlevel_zone = zone_id == building ? nil : zone_id\nif level_zone && !(level_zone.in?(levels))\n return [] of Nil\nend\nnow = Time.utc\nlocker_banks.values.flat_map do |bank|\n if level_zone && (bank.level_id != level_zone)\n next [] of PlaceLocker\n end\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L19"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @levels).nil?\n @levels = ((staff_api.systems_in_building(building_id)).get.as_h.keys)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L305"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/place/demo/lockers.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L153"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"begin\n bank = locker_banks[bank_id.to_s]\n locker_id = locker_id ? locker_id : bank.locker_hash.values.select(&.not_allocated?).sample.id\n locker = bank.locker_hash[locker_id.to_s]\n locker.allocated_to = user_id\n if expires_at\n locker.allocated_until = Time.unix(expires_at)\n end\n PlaceLocker.new(bank_id, locker, building_id)\nrescue\n raise(\"no available lockers\")\nend"}},{"html_id":"locker_banks:Hash(String,LockerBank)-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L23"},"def":{"name":"locker_banks","return_type":"Hash(String, LockerBank)","visibility":"Public","body":"if (__temp_1 = @locker_banks).nil?\n @locker_banks = (begin\n banks = (staff_api.metadata(building_id, \"locker_banks\")).get.dig?(\"locker_banks\", \"details\")\n if banks\n else\n return Hash(String, LockerBank).new\n end\n banks = begin\n Array(LockerBank).from_json(banks.to_json)\n rescue error\n message = \"error parsing banks json on building #{building_id}:\\n#{banks.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lookup = {} of String => LockerBank\n banks.each do |bank|\n bank.level_id = (levels & bank.zones).first?\n lookup[bank.id] = bank\n end\n lockers = (staff_api.metadata(building_id, \"lockers\")).get.dig?(\"lockers\", \"details\")\n if lockers\n else\n return lookup\n end\n lockers = begin\n Array(Locker).from_json(lockers.to_json)\n rescue error\n message = \"error parsing locker json on building #{building_id}:\\n#{lockers.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lockers.each do |locker|\n begin\n bank = lookup[locker.bank_id]\n locker.level_id = bank.level_id\n bank.lockers << locker\n rescue error\n logger.warn(exception: error) do\n \"config issue with locker #{locker.id} on bank #{locker.bank_id}\"\n end\n end\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L178"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nif locker.allocated_to == owner_id\n locker.release\nelse\n locker.shared_with.delete(owner_id)\nend\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L213"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with << share_with\n locker.shared_with.uniq!\nend\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L265"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with\nelse\n [] of String\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L288"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L236"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n if shared_with_id\n locker.shared_with.delete(shared_with_id)\n else\n locker.shared_with = [] of String\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/place/demo/lockers.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L195"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"now = Time.utc\nbuilding = building_id\nlocker_banks.values.flat_map do |bank|\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to == user_id\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L310"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}}],"types":[{"html_id":"drivers/Place/Demo/Lockers/Locker","path":"Place/Demo/Lockers/Locker.html","kind":"class","full_name":"Place::Demo::Lockers::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L68"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated?:Bool-instance-method","name":"allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L87"},"def":{"name":"allocated?","return_type":"Bool","visibility":"Public","body":"if time = self.allocated_until\n if time > Time.utc\n true\n else\n false\n end\nelse\n if allocated_to = self.allocated_to\n true\n else\n false\n end\nend"}},{"html_id":"allocated_to:String|Nil-instance-method","name":"allocated_to","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to","return_type":"String | ::Nil","visibility":"Public","body":"@allocated_to"}},{"html_id":"allocated_to=(allocated_to:String|Nil)-instance-method","name":"allocated_to=","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"args_string":"(allocated_to : String | Nil)","args_html":"(allocated_to : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to=","args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@allocated_to = allocated_to"}},{"html_id":"allocated_until:Time|Nil-instance-method","name":"allocated_until","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until","return_type":"Time | ::Nil","visibility":"Public","body":"@allocated_until"}},{"html_id":"allocated_until=(allocated_until:Time|Nil)-instance-method","name":"allocated_until=","abstract":false,"args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"args_string":"(allocated_until : Time | Nil)","args_html":"(allocated_until : Time | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until=","args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@allocated_until = allocated_until"}},{"html_id":"bank_id:String-instance-method","name":"bank_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L72"},"def":{"name":"bank_id","return_type":"String","visibility":"Public","body":"@bank_id"}},{"html_id":"bookable:Bool-instance-method","name":"bookable","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L73"},"def":{"name":"bookable","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @bookable).nil?\n @bookable = (false)\nelse\n __temp_1\nend"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L70"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L71"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"not_allocated?:Bool-instance-method","name":"not_allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L101"},"def":{"name":"not_allocated?","return_type":"Bool","visibility":"Public","body":"!allocated?"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L81"},"def":{"name":"release","visibility":"Public","body":"@allocated_to = nil\n@allocated_until = nil\n@shared_with = [] of String\n"}},{"html_id":"shared_with:Array(String)-instance-method","name":"shared_with","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with","return_type":"Array(String)","visibility":"Public","body":"@shared_with"}},{"html_id":"shared_with=(shared_with:Array(String))-instance-method","name":"shared_with=","abstract":false,"args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"args_string":"(shared_with : Array(String))","args_html":"(shared_with : Array(String))","location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with=","args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"visibility":"Public","body":"@shared_with = shared_with"}}]},{"html_id":"drivers/Place/Demo/Lockers/LockerBank","path":"Place/Demo/Lockers/LockerBank.html","kind":"class","full_name":"Place::Demo::Lockers::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L106"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L107"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L109"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"locker_hash:Hash(String,Locker)-instance-method","name":"locker_hash","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L115"},"def":{"name":"locker_hash","return_type":"Hash(String, Locker)","visibility":"Public","body":"if (__temp_1 = @locker_hash).nil?\n @locker_hash = (begin\n lookup = {} of String => Locker\n level = self.level_id\n lockers.each do |locker|\n locker.level_id = level\n lookup[locker.id] = locker\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"lockers:Array(Locker)-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L114"},"def":{"name":"lockers","return_type":"Array(Locker)","visibility":"Public","body":"@lockers"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L110"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L111"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}}]},{"html_id":"drivers/Place/Demo/Lockers/PlaceLocker","path":"Place/Demo/Lockers/PlaceLocker.html","kind":"alias","full_name":"Place::Demo::Lockers::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/place/demo/lockers.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"}}]},{"html_id":"drivers/Place/Demo/RoomSensor","path":"Place/Demo/RoomSensor.html","kind":"class","full_name":"Place::Demo::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L147"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n ::raise(::NilAssertionError.new(\"Place::Demo::RoomSensor#count cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"count?:Int32|Nil-instance-method","name":"count?","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L152"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif {building_id, level_id}.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && (location != \"area\")\n return [] of Nil\nend\n[{location: \"area\", at_location: count, map_id: system.map_id, level: level_id, building: building_id, capacity: @capacity, module_id: module_id}]\n"}},{"html_id":"level_id:String-instance-method","name":"level_id","doc":"Finds the level ID for the current location services object","summary":"

Finds the level ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L53"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n @level_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"level\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L137"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L142"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@capacity = (setting?(Int32, :capacity)) || 2\n@count || (@count = (setting?(Int32, :default_count)) || 0)\n@sensor_id = (setting?(String, :sensor_id)) || module_id\n@timestamp = Time.utc.to_unix\nupdate_state\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L87"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"demo-#{@sensor_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L68"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"demo-#{@sensor_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"set_sensor(new_count:Int32)-instance-method","name":"set_sensor","abstract":false,"args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"args_string":"(new_count : Int32)","args_html":"(new_count : Int32)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L32"},"def":{"name":"set_sensor","args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"visibility":"Public","body":"@timestamp = Time.utc.to_unix\n@count = new_count\nupdate_state\n"}}]},{"html_id":"drivers/Place/Demo/Switcher","path":"Place/Demo/Switcher.html","kind":"class","full_name":"Place::Demo::Switcher","name":"Switcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inputs:Int32-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L17"},"def":{"name":"inputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @inputs).nil?\n @inputs = (setting(Int32, :inputs))\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = nil\n@outputs = nil\n"}},{"html_id":"outputs:Int32-instance-method","name":"outputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L18"},"def":{"name":"outputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @outputs).nil?\n @outputs = (setting(Int32, :outputs))\nelse\n __temp_1\nend"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/place/demo/switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L32"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"switching #{map} on layer #{layer || SwitchLayer::All}\"\nend\nmap.each do |input, outputs|\n outputs.each do |outp|\n self[\"output#{outp}\"] = input\n end\nend\ntrue\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/place/demo/switcher.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L25"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input < 0 || input > inputs\n raise(\"invalid input #{input}, supported values 0 -> #{inputs}\")\nend\nlogger.debug do\n \"switching all outputs to input #{input}\"\nend\n(1..outputs).each do |outp|\n self[\"output#{outp}\"] = input\nend\ntrue\n"}}]},{"html_id":"drivers/Place/Demo/TestSSH","path":"Place/Demo/TestSSH.html","kind":"class","full_name":"Place::Demo::TestSSH","name":"TestSSH","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/test_ssh.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"ls(dir:String=\"./\",modifiers:String=\"\")-instance-method","name":"ls","abstract":false,"args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"args_string":"(dir : String = \"./\", modifiers : String = \"\")","args_html":"(dir : String = "./", modifiers : String = "")","location":{"filename":"src/place/demo/test_ssh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L16"},"def":{"name":"ls","args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"visibility":"Public","body":"(exec(\"ls -#{modifiers} #{dir}\")).gets_to_end"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L25"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"SSH response:\\n#{data}\"\nend\ntask.try(&.success(data))\n"}},{"html_id":"run(command:String,wait:Bool=true)-instance-method","name":"run","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"args_string":"(command : String, wait : Bool = true)","args_html":"(command : String, wait : Bool = true)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L20"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"SSH command:\\n#{command}\"\nend\nsend(\"#{command}\\n\", wait: wait)\n"}}]}]},{"html_id":"drivers/Place/Desk","path":"Place/Desk.html","kind":"module","full_name":"Place::Desk","name":"Desk","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Desk/Control","path":"Place/Desk/Control.html","kind":"class","full_name":"Place::Desk::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"desks\""}],"namespace":{"html_id":"drivers/Place/Desk","kind":"module","full_name":"Place::Desk","name":"Desk"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"desk_id_key:String-instance-method","name":"desk_id_key","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L30"},"def":{"name":"desk_id_key","return_type":"String","visibility":"Public","body":"@desk_id_key"}},{"html_id":"desk_ids:Hash(String,String)-instance-method","name":"desk_ids","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L90"},"def":{"name":"desk_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @desk_ids).nil?\n @desk_ids = (begin\n metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\n end\n desks = {} of String => String\n key = desk_id_key\n metadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if ids = level[:metadata][METADATA_KEY]?.try(&.details)\n ids.each do |desk_details|\n if mapped_id = desk_details.json_unmapped[key]?.try(&.as_s?)\n desks[desk_details.id] = mapped_id\n end\n end\n end\n end\n end\n desks\n end)\nelse\n __temp_1\nend"}},{"html_id":"desk_lookup(desk_id:String):String-instance-method","name":"desk_lookup","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String) : String","args_html":"(desk_id : String) : String","location":{"filename":"src/place/desk/control.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L32"},"def":{"name":"desk_lookup","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if desk_id_key != \"id\"\n mapped_id = desk_ids[desk_id]?\n if mapped_id\n else\n raise(\"mapped id not found\")\n end\n mapped_id\nelse\n desk_id\nend"}},{"html_id":"get_desk_height(desk_key:String)-instance-method","name":"get_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L56"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_height(desk_key)).get"}},{"html_id":"get_desk_power(desk_key:String)-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L65"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_power(desk_key)).get"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L118"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(1.hour) do\n @desk_ids = nil\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@desk_id_key = (setting?(String, :desk_id_key)) || \"id\""}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/place/desk/control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L51"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_height(desk_key, desk_height)).get\n"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/place/desk/control.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L60"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_power(desk_key, desk_power)).get\n"}}],"types":[{"html_id":"drivers/Place/Desk/Control/ChildMetadata","path":"Place/Desk/Control/ChildMetadata.html","kind":"alias","full_name":"Place::Desk::Control::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/DeskId","path":"Place/Desk/Control/DeskId.html","kind":"struct","full_name":"Place::Desk::Control::DeskId","name":"DeskId","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L77"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Desk/Control/Details","path":"Place/Desk/Control/Details.html","kind":"struct","full_name":"Place::Desk::Control::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(DeskId)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L83"},"def":{"name":"details","return_type":"Array(DeskId)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(DeskId))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"args_string":"(details : Array(DeskId))","args_html":"(details : Array(DeskId))","location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L83"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Desk/Control/Metadata","path":"Place/Desk/Control/Metadata.html","kind":"alias","full_name":"Place::Desk::Control::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Desk::Control::Details)","aliased_html":"Hash(String, Place::Desk::Control::Details)","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/Zone","path":"Place/Desk/Control/Zone.html","kind":"alias","full_name":"Place::Desk::Control::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}}]}]},{"html_id":"drivers/Place/DeskBookingsLocations","path":"Place/DeskBookingsLocations.html","kind":"class","full_name":"Place::DeskBookingsLocations","name":"DeskBookingsLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_bookings_locations.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L121"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L133"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L106"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_912|\n user_email, _name = __temp_912\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@zone_filter = (setting?(Array(String), :zone_filter)) || ([] of String)\n@zones = nil\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nmap_zones\nschedule.clear\nschedule.every(@poll_rate) do\n query_desk_bookings\nend\nschedule.in(5.seconds) do\n query_desk_bookings\nend\n"}},{"html_id":"query_desk_bookings:Nil-instance-method","name":"query_desk_bookings","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L216"},"def":{"name":"query_desk_bookings","return_type":"Nil","visibility":"Public","body":"ids = Set(Int64).new\nbookings = [] of JSON::Any\nzones.each do |zone|\n begin\n bookings.concat(staff_api.query_bookings(type: @booking_type, zones: {zone}).get.as_a)\n rescue error\n logger.warn(exception: error) do\n \"failed to query bookings in zone: #{zone}\"\n end\n end\nend\nbookings = bookings.flat_map do |booking|\n booking = Booking.from_json(booking.to_json)\n if ids.includes?(booking.id)\n next [] of Booking\n end\n ids << booking.id\n booking.user_email = booking.user_email.downcase\n booking.expand\nend\nlogger.debug do\n \"queried desk bookings, found #{bookings.size}\"\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L57"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zones).nil?\n @zones = (begin\n filtered = @zone_filter\n if filtered.empty?\n location_service.systems.get.as_h.keys\n else\n filtered\n end\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/DeskBookingWebhook","path":"Place/DeskBookingWebhook.html","kind":"class","full_name":"Place::DeskBookingWebhook","name":"DeskBookingWebhook","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_booking_webhook.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_post-instance-method","name":"fetch_and_post","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L54"},"def":{"name":"fetch_and_post","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nzones = [@building]\npayload = (staff_api.query_bookings(@booking_category, period_start, period_end, zones)).get.to_json\nheaders = HTTP::Headers.new\n@custom_headers.each do |key, value|\n headers[key] = value\nend\nheaders[\"Content-Type\"] = \"application/json; charset=UTF-8\"\nif @debug\n logger.debug do\n \"Posting: #{payload} \\n with Headers: #{headers}\"\n end\nend\nresponse = HTTP::Client.post(@post_uri, headers, body: payload)\nif response.status_code < 300\nelse\n raise(\"Request failed with #{response.status_code}: #{response.body}\")\nend\n\"#{response.status_code}: #{response.body}\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n fetch_and_post\nend\nschedule.every(24.hours) do\n fetch_and_post\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@post_uri = setting(String, :post_uri)\n@building = setting(String, :building)\n@custom_headers = setting(Hash(String, String), :custom_headers)\n@time_period = (setting(Int32, :days_from_now)).days\n@booking_category = setting(String, :booking_category)\n@debug = setting(Bool, :debug)\nfetch_and_post\n"}}]},{"html_id":"drivers/Place/EventAttendanceRecorder","path":"Place/EventAttendanceRecorder.html","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking_id:String|Nil-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L22"},"def":{"name":"booking_id","return_type":"String | ::Nil","visibility":"Public","body":"@booking_id"}},{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L18"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_known_count:Int32-instance-method","name":"last_known_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L27"},"def":{"name":"last_known_count","return_type":"Int32","visibility":"Public","body":"@last_known_count"}},{"html_id":"last_saved_count:Int32-instance-method","name":"last_saved_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L26"},"def":{"name":"last_saved_count","return_type":"Int32","visibility":"Public","body":"@last_saved_count"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"@system_id = config.control_system.not_nil!.id\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@metadata_key = (setting?(String, :metadata_key)).presence || \"people_count\"\n@debounce_seconds = (setting?(Int32, :debounce_seconds)) || 0\n"}},{"html_id":"people_counts:Array(Int32)-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L25"},"def":{"name":"people_counts","return_type":"Array(Int32)","visibility":"Public","body":"@people_counts"}},{"html_id":"should_save:Bool-instance-method","name":"should_save","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L24"},"def":{"name":"should_save","return_type":"Bool","visibility":"Public","body":"@should_save"}},{"html_id":"status:String-instance-method","name":"status","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L21"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}],"types":[{"html_id":"drivers/Place/EventAttendanceRecorder/StaffEventChange","path":"Place/EventAttendanceRecorder/StaffEventChange.html","kind":"class","full_name":"Place::EventAttendanceRecorder::StaffEventChange","name":"StaffEventChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventAttendanceRecorder","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}}]}]},{"html_id":"drivers/Place/EventMailer","path":"Place/EventMailer.html","kind":"class","full_name":"Place::EventMailer","name":"EventMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_mailer.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L227"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"inspect_event_store:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"inspect_event_store","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L108"},"def":{"name":"inspect_event_store","visibility":"Public","body":"@events"}},{"html_id":"list_systems_in_zone(zone_id:String)-instance-method","name":"list_systems_in_zone","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/event_mailer.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L104"},"def":{"name":"list_systems_in_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"staff_api.systems(zone_id: zone_id).get.as_a"}},{"html_id":"list_target_systems-instance-method","name":"list_target_systems","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L100"},"def":{"name":"list_target_systems","visibility":"Public","body":"@target_zones.flat_map do |zone_id|\n list_systems_in_zone(zone_id)\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@target_zones = (setting?(Array(String), :zone_ids_to_target)) || ([] of String)\n@target_module = (setting?(String, :module_to_target)) || \"Bookings_1\"\n@target_status = (setting?(String, :module_status_to_target)) || \"bookings\"\n@event_filter = (setting?(String, :event_filter)) || \"\"\n@email_template_group = (setting?(String, :email_template_group)) || \"events\"\n@email_template = (setting?(String, :email_template)) || \"welcome\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\nself[:events] = @events.clear\nsubscribe_to_all_modules\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L126"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(Time::Location.local)\n[TemplateFields.new(trigger: {@email_template_group, @email_template}, name: \"Event welcome\", description: \"Welcome email sent to event organizers when their event is coming up today\", fields: [{name: \"host_name\", description: \"Name of the event organizer\"}, {name: \"host_email\", description: \"Email address of the event organizer\"}, {name: \"room_name\", description: \"Location or room where the event is being held\"}, {name: \"event_title\", description: \"Title or subject of the event\"}, {name: \"event_start\", description: \"Start time of the event (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the event (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"network_username\", description: \"Username for network access (only if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated password for network access (only if network credentials enabled)\"}])]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L216"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime","path":"Place/EventSetupBreakdownTime.html","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/event/changed\") do |_subscription, payload|\n begin\n logger.debug do\n \"received event changed signal #{payload}\"\n end\n @event_change_mutex.synchronize do\n event_changed(EventChangedSignal.from_json(payload))\n end\n rescue error\n logger.warn(exception: error) do\n \"error processing event changed signal\"\n end\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/EventChangedSignal","path":"Place/EventSetupBreakdownTime/EventChangedSignal.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventChangedSignal","name":"EventChangedSignal","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"event:PlaceCalendar::Event-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event","return_type":"PlaceCalendar::Event","visibility":"Public","body":"@event"}},{"html_id":"event=(event:PlaceCalendar::Event)-instance-method","name":"event=","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event=","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"@event = event"}},{"html_id":"event_ical_uid:String-instance-method","name":"event_ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid","return_type":"String","visibility":"Public","body":"@event_ical_uid"}},{"html_id":"event_ical_uid=(event_ical_uid:String)-instance-method","name":"event_ical_uid=","abstract":false,"args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"args_string":"(event_ical_uid : String)","args_html":"(event_ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid=","args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"visibility":"Public","body":"@event_ical_uid = event_ical_uid"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String|Nil)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"args_string":"(host : String | Nil)","args_html":"(host : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"visibility":"Public","body":"@host = host"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/EventMetadata","path":"Place/EventSetupBreakdownTime/EventMetadata.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventMetadata","name":"EventMetadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L199"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L200"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time","return_type":"Int64","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"args_string":"(breakdown_time : Int64)","args_html":"(breakdown_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"cancelled:Bool-instance-method","name":"cancelled","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled","return_type":"Bool","visibility":"Public","body":"@cancelled"}},{"html_id":"cancelled=(cancelled:Bool)-instance-method","name":"cancelled=","abstract":false,"args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"args_string":"(cancelled : Bool)","args_html":"(cancelled : Bool)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled=","args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"visibility":"Public","body":"@cancelled = cancelled"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host_email:String-instance-method","name":"host_email","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email","return_type":"String","visibility":"Public","body":"@host_email"}},{"html_id":"host_email=(host_email:String)-instance-method","name":"host_email=","abstract":false,"args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"args_string":"(host_email : String)","args_html":"(host_email : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email=","args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"visibility":"Public","body":"@host_email = host_email"}},{"html_id":"ical_uid:String-instance-method","name":"ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid","return_type":"String","visibility":"Public","body":"@ical_uid"}},{"html_id":"ical_uid=(ical_uid:String)-instance-method","name":"ical_uid=","abstract":false,"args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"args_string":"(ical_uid : String)","args_html":"(ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid=","args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"visibility":"Public","body":"@ical_uid = ical_uid"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"resource_calendar:String-instance-method","name":"resource_calendar","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar","return_type":"String","visibility":"Public","body":"@resource_calendar"}},{"html_id":"resource_calendar=(resource_calendar:String)-instance-method","name":"resource_calendar=","abstract":false,"args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"args_string":"(resource_calendar : String)","args_html":"(resource_calendar : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar=","args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"visibility":"Public","body":"@resource_calendar = resource_calendar"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time","return_type":"Int64","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"args_string":"(setup_time : Int64)","args_html":"(setup_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"visibility":"Public","body":"@setup_time = setup_time"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/LinkedEvents","path":"Place/EventSetupBreakdownTime/LinkedEvents.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::LinkedEvents","name":"LinkedEvents","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L162"},{"filename":"src/place/event_setup_breakdown_time.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(main_event_ical:String|Nil,main_event_id:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil, main_event_id : String | Nil)","args_html":"(main_event_ical : String | Nil, main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L182"},"def":{"name":"new","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(main_event_ical, main_event_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L175"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"main_event_ical:String|Nil-instance-method","name":"main_event_ical","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_ical"}},{"html_id":"main_event_ical=(main_event_ical:String|Nil)-instance-method","name":"main_event_ical=","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil)","args_html":"(main_event_ical : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical=","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_ical = main_event_ical"}},{"html_id":"main_event_id:String|Nil-instance-method","name":"main_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_id"}},{"html_id":"main_event_id=(main_event_id:String|Nil)-instance-method","name":"main_event_id=","abstract":false,"args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_id : String | Nil)","args_html":"(main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id=","args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_id = main_event_id"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","path":"Place/EventSetupBreakdownTime/PlaceCalendar.html","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar","abstract":false,"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar/Event","path":"Place/EventSetupBreakdownTime/PlaceCalendar/Event.html","kind":"class","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar"},"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64|Nil-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64|Nil)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"args_string":"(breakdown_time : Int64 | Nil)","args_html":"(breakdown_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64|Nil-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64|Nil)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"args_string":"(setup_time : Int64 | Nil)","args_html":"(setup_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@setup_time = setup_time"}}]}]}]},{"html_id":"drivers/Place/Geometry","path":"Place/Geometry.html","kind":"class","full_name":"Place::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(coordinates:Array(Tuple(Float64,Float64)),geo_type:String=\"Polygon\")-class-method","name":"new","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = \"Polygon\")","args_html":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = "Polygon")","location":{"filename":"src/place/area_config.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L8"},"def":{"name":"new","args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(coordinates, geo_type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"coordinates:Array(Tuple(Float64,Float64))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L13"},"def":{"name":"coordinates","return_type":"Array(Tuple(Float64, Float64))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Tuple(Float64,Float64)))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)))","args_html":"(coordinates : Array(Tuple(Float64, Float64)))","location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L13"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"geo_type:String-instance-method","name":"geo_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L12"},"def":{"name":"geo_type","return_type":"String","visibility":"Public","body":"@geo_type"}},{"html_id":"geo_type=(geo_type:String)-instance-method","name":"geo_type=","abstract":false,"args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"args_string":"(geo_type : String)","args_html":"(geo_type : String)","location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L12"},"def":{"name":"geo_type=","args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"visibility":"Public","body":"@geo_type = geo_type"}}]},{"html_id":"drivers/Place/Help","path":"Place/Help.html","kind":"alias","full_name":"Place::Help","name":"Help","abstract":false,"locations":[{"filename":"src/place/meet/help.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::HelpPage)","aliased_html":"Hash(String, Place::HelpPage)","const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"}},{"html_id":"drivers/Place/HelpPage","path":"Place/HelpPage.html","kind":"struct","full_name":"Place::HelpPage","name":"HelpPage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/help.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/help.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L10"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L8"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L9"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/HTTPPinger","path":"Place/HTTPPinger.html","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/http_pinger.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_CALLBACK","name":"DUMMY_CALLBACK","value":"Proc(Task, Nil).new do\n nil\nend"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_status:Bool-instance-method","name":"check_status","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L55"},"def":{"name":"check_status","return_type":"Bool","visibility":"Public","body":"begin\n response = http(@request_verb, \"/\", headers: @request_headers)\n if response.status_code == expected_response_code\n self[:last_successful_check] = Time.utc.to_unix\n self[:last_response_code] = response.status_code\n true\n else\n self[:last_response_code] = response.status_code\n @response_mismatch_count = @response_mismatch_count + 1\n self[:response_mismatch_count] = @response_mismatch_count\n queue.online = false\n false\n end\nrescue error\n logger.warn(exception: error) do\n \"HTTP service not responding\"\n end\n @response_failure_count = @response_failure_count + 1\n self[:response_failure_count] = @response_failure_count\n self[:last_error] = error.message\n false\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"check_status"}},{"html_id":"curl(verb:String,path:String,headers:Hash(String,String)={}ofString=>String,body:String|Nil=nil)-instance-method","name":"curl","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","args_html":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","location":{"filename":"src/place/http_pinger.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L80"},"def":{"name":"curl","args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = http(verb, path, body, headers: headers)\nlogger.debug do\n \"response #{response.status}: #{response.status_message}\\nheaders: #{response.headers}\\n#{response.body}\"\nend\ntask = PlaceOS::Driver::Task.new(queue, DUMMY_CALLBACK, 0, 0.seconds, 0, false, nil, nil)\ntask.success(response.body, response.status_code)\n"}},{"html_id":"expected_response_code:Int32-instance-method","name":"expected_response_code","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L26"},"def":{"name":"expected_response_code","return_type":"Int32","visibility":"Public","body":"@expected_response_code"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"transport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(((setting?(Int32, :ping_every)) || 60).seconds) do\n check_status\nend\n@request_verb = (setting?(String, :request_verb)) || \"GET\"\n@expected_response_code = (setting?(Int32, :expected_response_code)) || 200\nrequest_headers = HTTP::Headers.new\nheaders = (setting?(HeaderJSON, :request_headers)) || ({} of String => Array(String) | String)\nheaders.each do |key, value|\n request_headers.add(key, value)\nend\n@request_headers = request_headers\n"}},{"html_id":"request_verb:String-instance-method","name":"request_verb","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L27"},"def":{"name":"request_verb","return_type":"String","visibility":"Public","body":"@request_verb"}},{"html_id":"response_failure_count:UInt64-instance-method","name":"response_failure_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L24"},"def":{"name":"response_failure_count","return_type":"UInt64","visibility":"Public","body":"@response_failure_count"}},{"html_id":"response_mismatch_count:UInt64-instance-method","name":"response_mismatch_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L23"},"def":{"name":"response_mismatch_count","return_type":"UInt64","visibility":"Public","body":"@response_mismatch_count"}}],"types":[{"html_id":"drivers/Place/HTTPPinger/HeaderJSON","path":"Place/HTTPPinger/HeaderJSON.html","kind":"alias","full_name":"Place::HTTPPinger::HeaderJSON","name":"HeaderJSON","abstract":false,"locations":[{"filename":"src/place/http_pinger.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Array(String) | String)","aliased_html":"Hash(String, Array(String) | String)","const":false,"namespace":{"html_id":"drivers/Place/HTTPPinger","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger"}}]},{"html_id":"drivers/Place/LLM","path":"Place/LLM.html","kind":"class","full_name":"Place::LLM","name":"LLM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/llm.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capabilities-instance-method","name":"capabilities","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L43"},"def":{"name":"capabilities","visibility":"Public","body":"(system.implementing(Interface::ChatFunctions)).map do |driver|\n {id: driver.module_name, capability: driver[:capabilities].as_s}\nend"}},{"html_id":"new_chat-instance-method","name":"new_chat","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L52"},"def":{"name":"new_chat","visibility":"Public","body":"{prompt: @prompt, capabilities: capabilities, system_id: system.id}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@prompt = setting(String, :prompt)\n@user_hint = (setting?(String, :user_hint)) || \"Hi! I'm your workplace assistant.\"\nschedule.clear\nschedule.in(5.seconds) do\n update_prompt\nend\nschedule.every(5.minutes) do\n update_prompt\nend\n"}},{"html_id":"prompt:String-instance-method","name":"prompt","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L41"},"def":{"name":"prompt","return_type":"String","visibility":"Public","body":"if (__temp_1 = @prompt).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#prompt cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"prompt?:String|Nil-instance-method","name":"prompt?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L41"},"def":{"name":"prompt?","return_type":"String | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"user_hint:String-instance-method","name":"user_hint","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_hint).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#user_hint cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_hint?:String|Nil-instance-method","name":"user_hint?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint?","return_type":"String | ::Nil","visibility":"Public","body":"@user_hint"}}]},{"html_id":"drivers/Place/LocationServices","path":"Place/LocationServices.html","kind":"class","full_name":"Place::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/location_services.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, {} of String => String, nil}","doc":"===============================\nIP ADDRESS => MAC ADDRESS\n===============================","summary":"

=============================== IP ADDRESS => MAC ADDRESS ===============================

"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L30"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String)-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/place/location_services.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L138"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nowner = nil\n((system.implementing(Interface::Locatable)).check_ownership_of(mac_address)).get.each do |result|\n if result != nil\n owner = result\n break\n end\nend\nif owner.nil? && @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).check_ownership_of(mac_address))\n end\n end\n results.each do |sys_results|\n sys_results.get.each do |result|\n if result != nil\n owner = result\n break\n end\n end\n if owner.nil?\n else\n break\n end\n end\nend\nowner\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L174"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).device_locations(zone_id, location)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @include_room_locations\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).device_locations(zone_id, location))\n end\n end\n results.each do |__arg9|\n __arg9.get.each do |locations|\n located.concat(locations.as_a)\n end\n end\nend\nlocated\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L54"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L65"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"ip_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"ip_mappings","doc":"Webhook handler for accepting IP address to username mappings\nThis data is typically obtained via domain controller logs","summary":"

Webhook handler for accepting IP address to username mappings This data is typically obtained via domain controller logs

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L298"},"def":{"name":"ip_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"IP mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nip_map = Array(Tuple(String, String, String, String | ::Nil)).from_json(body)\n(system.implementing(Interface::Locatable)).ip_username_mappings(ip_map)\nSUCCESS_RESPONSE\n"}},{"html_id":"locate_contacts(list_name:String)-instance-method","name":"locate_contacts","doc":"locates all the of the emergency contacts","summary":"

locates all the of the emergency contacts

","abstract":false,"args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"args_string":"(list_name : String)","args_html":"(list_name : String)","location":{"filename":"src/place/location_services.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L346"},"def":{"name":"locate_contacts","args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"visibility":"Public","body":"contacts = status(Hash(String, Array(NamedTuple(email: String, username: String))), :emergency_contacts)\nlist = contacts[list_name]\nresults = {} of String => Array(JSON::Any)\nlist.each do |person|\n email = person[:email]\n results[email] = locate_user(email, person[:username])\nend\nresults\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"Runs through all the services that support the Locatable interface\nrequests location information on the identifier for all of them\nconcatenates the results and returns them as a single array","summary":"

Runs through all the services that support the Locatable interface requests location information on the identifier for all of them concatenates the results and returns them as a single array

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L75"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).locate_user(email, username)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n results << {level_id, ((system(system_id)).implementing(Interface::Locatable)).locate_user(email, username)}\n end\n end\n results.each do |__temp_929|\n level_id, result = __temp_929\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"mac_address_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L309"},"def":{"name":"mac_address_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"MAC mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nusername, macs, domain = Tuple(String, Array(String), String | ::Nil).from_json(body)\nusername = username.strip\nmacs = macs.compact_map do |mac|\n mac = (mac.strip.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase\n if mac.size == 12\n mac\n end\nend\nif username.empty? || macs.empty?\n return {HTTP::Status::NOT_ACCEPTABLE, {} of String => String, nil}\nend\n(system.implementing(Interface::Locatable)).mac_address_mappings(username, macs, domain)\nSUCCESS_RESPONSE\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nmacs = [] of String\n((system.implementing(Interface::Locatable)).macs_assigned_to(email, username)).get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\nend\nif @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).macs_assigned_to(email, username))\n end\n end\n results.each do |__arg7|\n __arg7.get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\n end\n end\nend\nmacs\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@emergency_contacts = (setting?(Hash(String, String), :emergency_contacts)) || Hash(String, String).new\n@search_building = (setting?(Bool, :search_building)) || false\n@include_room_locations = (setting?(Bool, :include_room_locations)) || false\n@building_id = nil\n@systems = nil\nschedule.clear\nif @search_building || @include_room_locations\n schedule.every(1.hour) do\n if @systems\n @systems = get_systems_list.not_nil!\n end\n end\nend\nif !@emergency_contacts.empty?\n schedule.every(6.hours, immediate: true) do\n update_contacts_list\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil)-instance-method","name":"sensor","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil)","args_html":"(mac : String, id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L247"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"querying sensor with mac: #{mac}, id: #{id.inspect}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensor(mac, id)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif located.empty?\nelse\n return located.first\nend\ndriver_ids = Set.new(drivers.map() do |__arg13|\n __arg13.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg14|\n __arg14.@module_id\n end)\n results << {level_id, drivers.sensor(mac, id)}\n end\n end\n results.each do |__temp_931|\n level_id, result = __temp_931\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nif located.empty?\nelse\n located.first\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil)-instance-method","name":"sensors","doc":"sensor search + filtered search","summary":"

sensor search + filtered search

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L203"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching sensors of type: #{type.inspect}, mac: #{mac.inspect}, zone_id: #{zone_id}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensors(type, mac, zone_id)).get.each do |locations|\n located.concat(locations.as_a)\nend\ndriver_ids = Set.new(drivers.map() do |__arg10|\n __arg10.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n if zone_id && (zone_id != level_id)\n next\n end\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg11|\n __arg11.@module_id\n end)\n results << {level_id, drivers.sensors(type, mac, zone_id)}\n end\n end\n results.each do |__temp_930|\n level_id, result = __temp_930\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L31"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"update_contacts_list-instance-method","name":"update_contacts_list","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L328"},"def":{"name":"update_contacts_list","visibility":"Public","body":"if @emergency_contacts.empty?\n self[:emergency_contacts] = nil\n return\nend\nif !(system.exists?(:Calendar))\n logger.warn do\n \"contacts requested however no directory service available\"\n end\n return\nend\ndirectory = system[:Calendar]\nself[:emergency_contacts] = @emergency_contacts.transform_values do |id|\n (directory.get_members(id)).get.as(JSON::Any)\nend\n"}}]},{"html_id":"drivers/Place/LogicExample","path":"Place/LogicExample.html","kind":"class","full_name":"Place::LogicExample","name":"LogicExample","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/logic_example.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"display_count-instance-method","name":"display_count","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L28"},"def":{"name":"display_count","visibility":"Public","body":"system.count(:Display)"}},{"html_id":"not_implemented-instance-method","name":"not_implemented","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L32"},"def":{"name":"not_implemented","visibility":"Public","body":"raise(\"not implemented\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L10"},"def":{"name":"on_update","visibility":"Public","body":"logger.info do\n \"woot! an update #{setting?(String, :name)}\"\nend"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/logic_example.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(system.all(:Display)).power(state)"}},{"html_id":"power_state?-instance-method","name":"power_state?","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L14"},"def":{"name":"power_state?","visibility":"Public","body":"main_lcd[:power]"}},{"html_id":"webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/logic_example.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L22"},"def":{"name":"webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook executed\"\nend\npower(true)\n{HTTP::Status::OK.to_i, {} of String => String, \"\"}\n"}}]},{"html_id":"drivers/Place/Meet","path":"Place/Meet.html","kind":"class","full_name":"Place::Meet","name":"Meet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LIGHT_MOD","name":"DEFAULT_LIGHT_MOD","value":"\"Lighting_1\""},{"id":"EXT_INIT","name":"EXT_INIT","value":"[:qsc_phone_dialing_init] of Symbol"},{"id":"EXT_POWER","name":"EXT_POWER","value":"[:qsc_phone_dialing_power] of Symbol"}],"included_modules":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_preset(preset:String,camera:String)-instance-method","name":"add_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":969,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L969"},"def":{"name":"add_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].save_position(preset, cam.index || 0)\n"}},{"html_id":"apply_camera_defaults-instance-method","name":"apply_camera_defaults","doc":"run on system power on","summary":"

run on system power on

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":942,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L942"},"def":{"name":"apply_camera_defaults","visibility":"Public","body":"(system.all(vc_camera_module)).power(true)"}},{"html_id":"apply_default_routes-instance-method","name":"apply_default_routes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L293"},"def":{"name":"apply_default_routes","visibility":"Public","body":"begin\n @default_routes.each do |output, input|\n route_signal(input, output)\n end\nrescue error\n logger.warn(exception: error) do\n \"error applying default routes\"\n end\nend"}},{"html_id":"audio_mute(state:Bool)-instance-method","name":"audio_mute","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L634"},"def":{"name":"audio_mute","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)\nstate ? \"audio is muted\" : \"audio is unmuted\"\n"}},{"html_id":"audio_muted?-instance-method","name":"audio_muted?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L640"},"def":{"name":"audio_muted?","visibility":"Public","body":"(status?(Bool, :mute)) || false"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L91"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"provides meeting room audio visual control such as controlling video source to be presented\\n\"\n str << \"check for available inputs and outputs before switching to present a source to a display.\\n\"\n str << \"output volume and microphone fader controls are floats between 0.0 to 100.0\\n\"\n str << \"query output volume to change it by a relative amount, if asked to increase or decrease volume, change it by 10.0\\n\"\n str << \"audio can be muted and you unroute video to blank displays.\\n\"\n str << \"you can also shutdown, startup, power off, power on, start or end the meeting using the set_power_state function available in this capability.\\n\"\n str << \"some rooms may have lighting control, make sure to check what levels are available before changing state\\n\"\n str << \"some rooms may have accessories such as blinds or projector screen controls. Check for available accessories when asked about something not explicitly controllable\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","doc":"core includes: 'current_routes' hash\nbut we override it here for LLM integration","summary":"

core includes: 'current_routes' hash but we override it here for LLM integration

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L137"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{set_power_state: \"power on or off the meeting room. Send true for power on (startup) or false for power off (shutdown)\", \"power?\": \"query the system power state?\", inputs_and_outputs: \"available inputs and outputs. Route using id keys\", route_input: \"route to present an input to an output / display. Don't guess, look up available input and output ids\", unroute: \"blank a display / output, sometimes called a video mute\", set_volume: \"change the room volume\", \"volume?\": \"query the current volume, useful to know when asked to change the volume relatively\", audio_mute: \"mute or unmute the room audio\", \"audio_muted?\": \"check if the room audio is muted\", lighting_scenes: \"returns the list of available lighting scenes\", \"lighting_scene?\": \"query the current lighting scene\", set_lighting_scene: \"set a new lighting scene. Remember to list available lighting scenes before calling\"}"}},{"html_id":"init_vidconf-instance-method","name":"init_vidconf","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":936,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L936"},"def":{"name":"init_vidconf","visibility":"Public","body":"@vc_camera_in = setting?(String | Array(String), :vc_camera_in)\n@vc_camera_module = setting?(String, :vc_camera_module)\n"}},{"html_id":"inputs_and_outputs-instance-method","name":"inputs_and_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L300"},"def":{"name":"inputs_and_outputs","visibility":"Public","body":"inps = all_inputs\nouts = all_outputs\nresults = [] of NamedTuple(type: Symbol, name: String, id: String)\ninps.each do |input|\n name = status?(NamedTuple(name: String), \"input/#{input}\")\n if name\n results << {type: :input, name: name[:name], id: input}\n end\nend\nouts.each do |output|\n name = status?(NamedTuple(name: String), \"output/#{output}\")\n if name\n results << {type: :output, name: name[:name], id: output}\n end\nend\nresults\n"}},{"html_id":"join_mode(mode_id:String,master:Bool=true)-instance-method","name":"join_mode","abstract":false,"args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"args_string":"(mode_id : String, master : Bool = true)","args_html":"(mode_id : String, master : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1064"},"def":{"name":"join_mode","args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"visibility":"Public","body":"mode = @join_modes[mode_id]\nif @join_selected\n old_mode = @join_modes[@join_selected]?\nend\njoin_settings = @join_settings.not_nil!\nthis_room = config.control_system.not_nil!.id\nbegin\n @join_lock.synchronize do\n if master\n notify_rooms = join_settings.type.fully_aware? ? join_settings.all_rooms : mode.room_ids\n if mode.linked?\n if notify_rooms.includes?(this_room)\n else\n raise(\"unable to perform join from this system\")\n end\n end\n @join_selected = mode.id\n @join_master = true\n if (old_mode && old_mode.linked?) && join_settings.type.independent?\n unlink(old_mode.room_ids - mode.room_ids)\n end\n if !mode.linked?\n return unlink(notify_rooms)\n end\n reset_remote_cache\n self[:join_confirmed] = @join_confirmed = false\n notify_rooms.each do |room_id|\n if room_id == this_room\n next\n end\n (((system(room_id)).get(\"System\", 1)).join_mode(mode_id, master: false)).get\n end\n persist_join_state\n self[:join_master] = master\n self[:joined] = @join_selected\n self[:join_confirmed] = @join_confirmed = true\n else\n @join_selected = mode.id\n @join_master = false\n reset_remote_cache\n persist_join_state\n self[:join_master] = master\n self[:joined] = mode.id\n self[:join_confirmed] = @join_confirmed = true\n end\n end\nensure\n update_available_ui\n if mode.linked? && !power?\n power(true)\n end\n mode.join_actions.each do |action|\n if master || !action.master_only?\n system[action.module_id].__send__(action.function_name, action.arguments, action.named_args)\n end\n end\n if !@light_scenes.empty? && master\n select_lighting_scene(@light_scenes.keys.first)\n end\nend\n"}},{"html_id":"lighting_independent:Bool-instance-method","name":"lighting_independent","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":691,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L691"},"def":{"name":"lighting_independent","return_type":"Bool","visibility":"Public","body":"@lighting_independent"}},{"html_id":"lighting_scene?-instance-method","name":"lighting_scene?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L775"},"def":{"name":"lighting_scene?","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String, id: Int32)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\ncurrent = status?(Int32, :lighting_scene)\nscene = scenes.find do |available|\n available[:id] == current\nend\nscene ? \"current lighting scene: #{scene[:name]}\" : \"lights in unknown state\"\n"}},{"html_id":"lighting_scenes-instance-method","name":"lighting_scenes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L768"},"def":{"name":"lighting_scenes","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\nscenes.map do |scene|\n scene[:name].downcase\nend\n"}},{"html_id":"linked_outputs:Hash(String,Hash(String,String))-instance-method","name":"linked_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L122"},"def":{"name":"linked_outputs","visibility":"Public","body":"@linked_outputs"}},{"html_id":"local_accessories:Array(Accessory)-instance-method","name":"local_accessories","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":812,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L812"},"def":{"name":"local_accessories","return_type":"Array(Accessory)","visibility":"Public","body":"@local_accessories"}},{"html_id":"local_help:Help-instance-method","name":"local_help","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L118"},"def":{"name":"local_help","return_type":"Help","visibility":"Public","body":"@local_help"}},{"html_id":"local_lighting_area:LightingArea|Nil-instance-method","name":"local_lighting_area","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":690,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L690"},"def":{"name":"local_lighting_area","return_type":"LightingArea | ::Nil","visibility":"Public","body":"@local_lighting_area"}},{"html_id":"local_mics:Array(Microphone)-instance-method","name":"local_mics","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":833,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L833"},"def":{"name":"local_mics","return_type":"Array(Microphone)","visibility":"Public","body":"@local_mics"}},{"html_id":"local_outputs:Array(String)-instance-method","name":"local_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L123"},"def":{"name":"local_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_outputs"}},{"html_id":"local_preview_outputs:Array(String)-instance-method","name":"local_preview_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L126"},"def":{"name":"local_preview_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_preview_outputs"}},{"html_id":"local_tabs:Array(Tab)-instance-method","name":"local_tabs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L119"},"def":{"name":"local_tabs","return_type":"Array(Tab)","visibility":"Public","body":"@local_tabs"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Sets the mute state on a signal node within the system.","summary":"

Sets the mute state on a signal node within the system.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/meet.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L667"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"input_or_output = index\naudio = @master_audio\nif audio\n logger.debug do\n \"setting master mute to #{state}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nmixer = system[audio.module_id]\nset_master_mute(mixer, audio, state)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"power(state:Bool,unlink:Bool=false)-instance-method","name":"power","doc":"Sets the overall room power state.","summary":"

Sets the overall room power state.

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"args_string":"(state : Bool, unlink : Bool = false)","args_html":"(state : Bool, unlink : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L210"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"visibility":"Public","body":"if state == (status?(Bool, :active))\n return\nend\nlogger.debug do\n \"Powering #{state ? \"up\" : \"down\"}\"\nend\nself[:active] = state\nunlink = @unjoin_on_shutdown.nil? ? unlink : !!@unjoin_on_shutdown\nremotes_before = remote_rooms\nsys = system\nif state\n apply_master_audio_default\n apply_camera_defaults\n apply_default_routes\n apply_mic_defaults\n if first_output = @tabs.first?.try do |__arg0|\n __arg0.inputs.first\n end\n selected_input(first_output)\n end\nelse\n if unlink\n unlink_systems\n end\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n if devices = @shutdown_devices\n devices.each do |device|\n sys[device].power(false)\n end\n else\n (sys.implementing(Interface::Powerable)).power(false)\n end\n if sys.exists?(@local_vidconf)\n sys[@local_vidconf].hangup\n end\nend\nremotes_before.each do |room|\n room.power(state, unlink)\nend\n{% for func in EXT_POWER %}\n begin\n {{ func.id }}(state, unlink)\n rescue error\n logger.warn(exception: error) { \"error in power state function: #{ {{ func.id.stringify }} }\" }\n end\n {% end %}\nstate\n"}},{"html_id":"power?:Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L257"},"def":{"name":"power?","return_type":"Bool","visibility":"Public","body":"(status?(Bool, :active)) || false"}},{"html_id":"remove_preset(preset:String,camera:String)-instance-method","name":"remove_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":974,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L974"},"def":{"name":"remove_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].remove_position(preset, cam.index || 0)\n"}},{"html_id":"route(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true,called_from_join:Bool=false)-instance-method","name":"route","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L343"},"def":{"name":"route","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"visibility":"Public","body":"route_signal(input, output, max_dist, simulate, follow_additional_routes)\nif links = @linked_outputs[output]?\n links.each do |_sys_id, remote_out|\n route_signal(input, remote_out, max_dist, simulate, follow_additional_routes)\n end\nend\nif !called_from_join\n remote_systems.each do |remote_system|\n room = remote_system.room_logic\n sys_id = remote_system.system_id\n if links = @linked_outputs[output]?\n if remote_out = links[sys_id]?\n room.route(input, remote_out, max_dist, simulate, follow_additional_routes, true)\n end\n end\n end\nend\n"}},{"html_id":"route_input(input_id:String,output_id:String)-instance-method","name":"route_input","abstract":false,"args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"args_string":"(input_id : String, output_id : String)","args_html":"(input_id : String, output_id : String)","location":{"filename":"src/place/meet.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L321"},"def":{"name":"route_input","args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"visibility":"Public","body":"keys = all_inputs\nhash = keys.each_with_object({} of String => String) do |input, memo|\n memo[input.downcase] = input\nend\ninput_actual = hash[input_id.downcase]?\nif input_actual\nelse\n raise(\"invalid input #{input_id}, must be one of #{keys.join(\", \")}\")\nend\nkeys = all_outputs\nhash = keys.each_with_object({} of String => String) do |output, memo|\n memo[output.downcase] = output\nend\noutput_actual = hash[output_id.downcase]?\nif output_actual\nelse\n raise(\"invalid output #{output_id}, must be one of: #{keys.join(\", \")}\")\nend\npower(true)\nselected_input(input_actual)\nroute(input_actual, output_actual)\n"}},{"html_id":"select_lighting_scene(scene:String,push_to_remotes:Bool=true)-instance-method","name":"select_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"args_string":"(scene : String, push_to_remotes : Bool = true)","args_html":"(scene : String, push_to_remotes : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L755"},"def":{"name":"select_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"visibility":"Public","body":"scene_id = @light_scenes[scene.downcase]?\nif scene_id\nelse\n raise(ArgumentError.new(\"invalid scene '#{scene}', valid scenes are: #{@light_scenes.keys.join(\", \")}\"))\nend\nsystem[@light_module].set_lighting_scene(scene_id, @light_area)\nif push_to_remotes && lighting_independent\n remote_rooms.each do |room|\n room.select_lighting_scene(scene, false)\n end\nend\n"}},{"html_id":"selected_camera(camera:String)-instance-method","name":"selected_camera","doc":"This is the camera input that is currently selected so we can switch between\ndifferent cameras","summary":"

This is the camera input that is currently selected so we can switch between different cameras

","abstract":false,"args":[{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(camera : String)","args_html":"(camera : String)","location":{"filename":"src/place/meet.cr","line_number":948,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L948"},"def":{"name":"selected_camera","args":[{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"self[:selected_camera] = camera\ncam = camera_details(camera)\nsystem[cam.mod].power(true)\ncase camera_in = @vc_camera_in\nin String\n route_signal(camera, camera_in)\nin Array(String)\n camera_in.each do |cin|\n route_signal(camera, cin)\n end\nin Nil\nend\nif camera_vc_in = cam.vc_camera_input\n system[@local_vidconf].camera_select(camera_vc_in)\nend\n"}},{"html_id":"selected_input(name:String,simulate:Bool=false):Nil-instance-method","name":"selected_input","doc":"This is the currently selected input\nif the user selects an output then this will be routed to it","summary":"

This is the currently selected input if the user selects an output then this will be routed to it

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"args_string":"(name : String, simulate : Bool = false) : Nil","args_html":"(name : String, simulate : Bool = false) : Nil","location":{"filename":"src/place/meet.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L374"},"def":{"name":"selected_input","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"selected_tab = @tabs.find() do |__arg2|\n __arg2.inputs.includes?(name)\nend.try(&.name)\nif selected_tab || !simulate\n self[:selected_input] = name\n self[:selected_tab] = selected_tab || @tabs.first\n sys = system\n if sys.exists?(name)\n mod = sys[name]\n if mod.implements?(Interface::Powerable)\n mod.power(true)\n end\n end\nend\nif !simulate\n if @preview_outputs.empty?\n if @outputs.size == 1\n route_signal(name, @outputs.first)\n end\n else\n @preview_outputs.each do |output|\n route_signal(name, output)\n end\n end\n remote_rooms.each do |room|\n room.selected_input(name, true)\n end\nend\n"}},{"html_id":"set_lighting_scene(scene:String)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"}],"args_string":"(scene : String)","args_html":"(scene : String)","location":{"filename":"src/place/meet.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L784"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"}],"visibility":"Public","body":"scenes = lighting_scenes\nif scenes.includes?(scene.downcase)\nelse\n raise(\"invalid scene #{scene}, must be one of: #{scenes.join(\", \")}\")\nend\nselect_lighting_scene(scene)\n\"current lighting scene: #{scene}\"\n"}},{"html_id":"set_microphone(level:Float64,mute:Bool=false)-instance-method","name":"set_microphone","doc":"level is a percentage 0.0->100.0","summary":"

level is a percentage 0.0->100.0

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(level : Float64, mute : Bool = false)","args_html":"(level : Float64, mute : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":903,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L903"},"def":{"name":"set_microphone","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"visibility":"Public","body":"@local_mics.each do |mic|\n mixer = system[mic.module_id]\n if level_index = mic.level_index\n mixer.fader(mic.level_id, level, level_index)\n else\n mixer.fader(mic.level_id, level)\n end\n if mute_index = mic.mute_index\n mixer.mute(mic.level_id, mute, mute_index)\n else\n mixer.mute(mic.level_id, mute)\n end\nend"}},{"html_id":"set_power_state(state:Bool)-instance-method","name":"set_power_state","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L205"},"def":{"name":"set_power_state","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power(state)"}},{"html_id":"set_volume(level:Int32|Float64)-instance-method","name":"set_volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/meet.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L616"},"def":{"name":"set_volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"power(true)\nif level.zero?\n audio_mute(true)\n \"audio was muted\"\nelse\n audio_mute(false)\n volume(level, \"\")\n \"volume set to #{level.to_f.clamp(0.0, 100.0)}\"\nend\n"}},{"html_id":"unlink_internal_use-instance-method","name":"unlink_internal_use","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1149"},"def":{"name":"unlink_internal_use","visibility":"Public","body":"begin\n @join_lock.synchronize do\n if @join_modes[@join_selected]?.try() do |__arg11|\n __arg11.room_ids.empty?\n end\n else\n @join_selected = nil\n end\n @join_master = true\n self[:join_confirmed] = @join_confirmed = false\n self[:join_master] = true\n self[:joined] = @join_selected\n reset_remote_cache\n persist_join_state\n update_available_ui\n self[:join_confirmed] = @join_confirmed = true\n end\n if @mute_on_unlink && (status?(Bool, :active))\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n end\nrescue error\n logger.error(exception: error) do\n \"ui state failed to be applied unjoining room\"\n end\nend"}},{"html_id":"unlink_systems-instance-method","name":"unlink_systems","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1135"},"def":{"name":"unlink_systems","visibility":"Public","body":"begin\n if unlink_mode = @join_modes.find do |_id, mode|\n !mode.linked?\n end\n join_mode(unlink_mode[0])\n else\n currrent_selected = @join_selected\n if currrent_selected && (current_mode = @join_modes[currrent_selected]?)\n unlink(current_mode.room_ids)\n end\n unlink_internal_use\n end\nrescue error\n logger.warn(exception: error) do\n \"unlink failed\"\n end\nend"}},{"html_id":"unroute(output:String)-instance-method","name":"unroute","doc":"we want to unroute any signal going to the display\nor if it's a direct connection, we want to mute the display.","summary":"

we want to unroute any signal going to the display or if it's a direct connection, we want to mute the display.

","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"String"}],"args_string":"(output : String)","args_html":"(output : String)","location":{"filename":"src/place/meet.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L366"},"def":{"name":"unroute","args":[{"name":"output","external_name":"output","restriction":"String"}],"visibility":"Public","body":"begin\n route(\"MUTE\", output)\nrescue error\n logger.debug(exception: error) do\n \"failed to unroute #{output}\"\n end\nend"}},{"html_id":"volume(level:Int32|Float64,input_or_output:String)-instance-method","name":"volume","doc":"Set the volume of a signal node within the system.","summary":"

Set the volume of a signal node within the system.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"args_string":"(level : Int32 | Float64, input_or_output : String)","args_html":"(level : Int32 | Float64, input_or_output : String)","location":{"filename":"src/place/meet.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L645"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"visibility":"Public","body":"audio = @master_audio\nif audio\n logger.debug do\n \"setting master volume to #{level}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = audio.min_level..audio.max_level\nlevel_actual = percentage * (range.end - range.begin)\nlevel_actual = (level_actual + range.begin.to_f).round(1)\nmixer = system[audio.module_id]\nset_master_volume(mixer, audio, level_actual)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L629"},"def":{"name":"volume?","visibility":"Public","body":"(status?(Float64, :volume)) || 0.0"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory","path":"Place/Meet/Accessory.html","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":795,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L795"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":796,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L796"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controls:Array(Control)-instance-method","name":"controls","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":809,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L809"},"def":{"name":"controls","return_type":"Array(Control)","visibility":"Public","body":"@controls"}},{"html_id":"module:String-instance-method","name":"module","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L808"},"def":{"name":"module","return_type":"String","visibility":"Public","body":"@module"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":807,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L807"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory/Control","path":"Place/Meet/Accessory/Control.html","kind":"struct","full_name":"Place::Meet::Accessory::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":798,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L798"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet/Accessory","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":799,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L799"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L804"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"@arguments"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":803,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L803"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":802,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L802"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":801,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L801"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Meet/AudioFader","path":"Place/Meet/AudioFader.html","kind":"class","full_name":"Place::Meet::AudioFader","name":"AudioFader","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":487,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L487"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L488"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L490"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"default_level:Float64|Nil-instance-method","name":"default_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L498"},"def":{"name":"default_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@default_level"}},{"html_id":"default_muted:Bool|Nil-instance-method","name":"default_muted","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L497"},"def":{"name":"default_muted","return_type":"Bool | ::Nil","visibility":"Public","body":"@default_muted"}},{"html_id":"implements_volume?-instance-method","name":"implements_volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L522"},"def":{"name":"implements_volume?","visibility":"Public","body":"level_id == \"\\e\""}},{"html_id":"level_feedback:String-instance-method","name":"level_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L506"},"def":{"name":"level_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_feedback).nil?\n @level_feedback = (begin\n id = level_id\n \"fader#{id.is_a?(Array) ? id.first : id}\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"level_feedback=(level_feedback:String)-instance-method","name":"level_feedback=","abstract":false,"args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"args_string":"(level_feedback : String)","args_html":"(level_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L506"},"def":{"name":"level_feedback=","args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"visibility":"Public","body":"@level_feedback = level_feedback"}},{"html_id":"level_feedback?:String?-instance-method","name":"level_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L516"},"def":{"name":"level_feedback?","visibility":"Public","body":"@level_feedback"}},{"html_id":"level_id:String|Array(String)|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L494"},"def":{"name":"level_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Array(String)|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(level_id : String | Array(String) | Nil)","args_html":"(level_id : String | Array(String) | Nil)","location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L494"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_index:Int32|Nil-instance-method","name":"level_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":500,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L500"},"def":{"name":"level_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level_index"}},{"html_id":"max_level:Float64-instance-method","name":"max_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":504,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L504"},"def":{"name":"max_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @max_level).nil?\n @max_level = (100.0)\nelse\n __temp_1\nend"}},{"html_id":"min_level:Float64-instance-method","name":"min_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":503,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L503"},"def":{"name":"min_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @min_level).nil?\n @min_level = (0.0)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L514"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @module_id).nil?\n @module_id = (\"Mixer_1\")\nelse\n __temp_1\nend"}},{"html_id":"module_id=(module_id:String)-instance-method","name":"module_id=","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String)","args_html":"(module_id : String)","location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L514"},"def":{"name":"module_id=","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"visibility":"Public","body":"@module_id = module_id"}},{"html_id":"mute_feedback:String-instance-method","name":"mute_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L510"},"def":{"name":"mute_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @mute_feedback).nil?\n @mute_feedback = (begin\n id = mute_id || level_id\n \"fader#{id.is_a?(Array) ? id.first : id}_mute\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"mute_feedback=(mute_feedback:String)-instance-method","name":"mute_feedback=","abstract":false,"args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"args_string":"(mute_feedback : String)","args_html":"(mute_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L510"},"def":{"name":"mute_feedback=","args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"visibility":"Public","body":"@mute_feedback = mute_feedback"}},{"html_id":"mute_feedback?:String?-instance-method","name":"mute_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L516"},"def":{"name":"mute_feedback?","visibility":"Public","body":"@mute_feedback"}},{"html_id":"mute_id:String|Array(String)|Nil-instance-method","name":"mute_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":495,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L495"},"def":{"name":"mute_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"if (__temp_1 = @mute_id).nil?\n @mute_id = (level_id)\nelse\n __temp_1\nend"}},{"html_id":"mute_index:Int32|Nil-instance-method","name":"mute_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":501,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L501"},"def":{"name":"mute_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mute_index"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L493"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"use_defaults?-instance-method","name":"use_defaults?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":518,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L518"},"def":{"name":"use_defaults?","visibility":"Public","body":"(@module_id.nil? && (level_id.nil? || level_id.try(&.empty?))) && (mute_id.nil? || mute_id.try(&.empty?))"}}]},{"html_id":"drivers/Place/Meet/CamDetails","path":"Place/Meet/CamDetails.html","kind":"class","full_name":"Place::Meet::CamDetails","name":"CamDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":925,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L925"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L926"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"index:String|Int32|Nil-instance-method","name":"index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":929,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L929"},"def":{"name":"index","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@index"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":928,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L928"},"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"vc_camera_input:String|Int32|Nil-instance-method","name":"vc_camera_input","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":930,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L930"},"def":{"name":"vc_camera_input","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@vc_camera_input"}}]},{"html_id":"drivers/Place/Meet/JoinAction","path":"Place/Meet/JoinAction.html","kind":"class","full_name":"Place::Meet::JoinAction","name":"JoinAction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":994,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L994"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":995,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L995"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":999,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L999"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":998,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L998"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"master_only?:Bool-instance-method","name":"master_only?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1001,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1001"},"def":{"name":"master_only?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @master_only).nil?\n @master_only = (true)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":997,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L997"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1000,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1000"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinDetail","path":"Place/Meet/JoinDetail.html","kind":"class","full_name":"Place::Meet::JoinDetail","name":"JoinDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1004,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1004"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1005,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1005"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1007,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1007"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"join_actions:Array(JoinAction)-instance-method","name":"join_actions","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1010,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1010"},"def":{"name":"join_actions","return_type":"Array(JoinAction)","visibility":"Public","body":"if (__temp_1 = @join_actions).nil?\n @join_actions = ([] of JoinAction)\nelse\n __temp_1\nend"}},{"html_id":"linked?:Bool-instance-method","name":"linked?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1017,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1017"},"def":{"name":"linked?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @linked).nil?\n @linked = (!room_ids.empty?)\nelse\n __temp_1\nend"}},{"html_id":"merge_outputs?:Bool-instance-method","name":"merge_outputs?","doc":"Do we want to merge the outputs (all outputs on all screens)\nor do we want them as seperate displays","summary":"

Do we want to merge the outputs (all outputs on all screens) or do we want them as seperate displays

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1014,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1014"},"def":{"name":"merge_outputs?","return_type":"Bool","visibility":"Public","body":"@merge_outputs"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1008,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1008"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_ids:Array(String)-instance-method","name":"room_ids","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1009,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1009"},"def":{"name":"room_ids","return_type":"Array(String)","visibility":"Public","body":"@room_ids"}}]},{"html_id":"drivers/Place/Meet/JoinSetting","path":"Place/Meet/JoinSetting.html","kind":"class","full_name":"Place::Meet::JoinSetting","name":"JoinSetting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1020,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1020"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1021,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1021"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_rooms:Set(String)-instance-method","name":"all_rooms","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1028,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1028"},"def":{"name":"all_rooms","return_type":"Set(String)","visibility":"Public","body":"if (__temp_1 = @all_rooms).nil?\n @all_rooms = (modes.reduce(Set(String).new) do |rooms, mode|\n rooms.concat(mode.room_ids)\n end)\nelse\n __temp_1\nend"}},{"html_id":"lock_remote:Bool-instance-method","name":"lock_remote","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1024,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1024"},"def":{"name":"lock_remote","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @lock_remote).nil?\n @lock_remote = (false)\nelse\n __temp_1\nend"}},{"html_id":"modes:Array(JoinDetail)-instance-method","name":"modes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1025,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1025"},"def":{"name":"modes","return_type":"Array(JoinDetail)","visibility":"Public","body":"@modes"}},{"html_id":"type:JoinType-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1023,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1023"},"def":{"name":"type","return_type":"JoinType","visibility":"Public","body":"if (__temp_1 = @type).nil?\n @type = (JoinType::Independent)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinType","path":"Place/Meet/JoinType.html","kind":"enum","full_name":"Place::Meet::JoinType","name":"JoinType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":986,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L986"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Independent","name":"Independent","value":"0","doc":"only rooms part of the join need to be notified","summary":"

only rooms part of the join need to be notified

"},{"id":"FullyAware","name":"FullyAware","value":"1","doc":"even rooms not part of the join, need to be notified","summary":"

even rooms not part of the join, need to be notified

"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"doc":"=========================\nRoom Joining Coordination\n=========================","summary":"

========================= Room Joining Coordination =========================

","instance_methods":[{"html_id":"fully_aware?-instance-method","name":"fully_aware?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":991,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L991"},"def":{"name":"fully_aware?","visibility":"Public","body":"self == FullyAware"}},{"html_id":"independent?-instance-method","name":"independent?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":988,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L988"},"def":{"name":"independent?","visibility":"Public","body":"self == Independent"}}]},{"html_id":"drivers/Place/Meet/LightingArea","path":"Place/Meet/LightingArea.html","kind":"alias","full_name":"Place::Meet::LightingArea","name":"LightingArea","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":685,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L685"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/LightingScene","path":"Place/Meet/LightingScene.html","kind":"alias","full_name":"Place::Meet::LightingScene","name":"LightingScene","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L686"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(name: String, id: UInt32, icon: String, opacity: Float64)","aliased_html":"{name: String, id: UInt32, icon: String, opacity: Float64}","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/Microphone","path":"Place/Meet/Microphone.html","kind":"alias","full_name":"Place::Meet::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":831,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L831"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Meet::AudioFader","aliased_html":"Place::Meet::AudioFader","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/RemoteSystem","path":"Place/Meet/RemoteSystem.html","kind":"struct","full_name":"Place::Meet::RemoteSystem","name":"RemoteSystem","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1204"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(system_id:String,room_logic:PlaceOS::Driver::Proxy::Driver)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"args_string":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","args_html":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","location":{"filename":"src/place/meet.cr","line_number":1208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1208"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, room_logic)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"room_logic:PlaceOS::Driver::Proxy::Driver-instance-method","name":"room_logic","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1206"},"def":{"name":"room_logic","return_type":"PlaceOS::Driver::Proxy::Driver","visibility":"Public","body":"@room_logic"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1205"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]}]},{"html_id":"drivers/Place/MQTT","path":"Place/MQTT.html","kind":"class","full_name":"Place::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L86"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L100"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L40"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\n@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L46"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\n@queue_size = (setting?(Int32, :queue_size)) || 1000\nif rate_limit = setting?(Int32, :rate_limit)\n @rate_limited = true\n @wait_time = (1.0 / rate_limit.to_f).seconds\nelse\n @rate_limited = false\nend\nexisting = @subs\n@subs = (setting?(Array(String), :subscriptions)) || ([] of String)\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n perform_operation do\n client.unsubscribe(sub)\n end\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\n end\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L115"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\nperform_operation do\n @mqtt.not_nil!.ping\nend\n"}},{"html_id":"publish(key:String,payload:String):Nil-instance-method","name":"publish","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(key : String, payload : String) : Nil","args_html":"(key : String, payload : String) : Nil","location":{"filename":"src/place/mqtt.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L109"},"def":{"name":"publish","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"publishing payload to #{key}\"\nend\nperform_operation do\n @mqtt.not_nil!.publish(key, payload)\nend\nnil\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/mqtt.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L120"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}}]},{"html_id":"drivers/Place/Parking","path":"Place/Parking.html","kind":"module","full_name":"Place::Parking","name":"Parking","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Parking/Locations","path":"Place/Parking/Locations.html","kind":"class","full_name":"Place::Parking::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOKING_TYPE","name":"BOOKING_TYPE","value":"\"parking\""},{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"parking-spaces\""},{"id":"RESERVED_RELEASED","name":"RESERVED_RELEASED","value":"\"parking-released\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place/Parking","kind":"module","full_name":"Place::Parking","name":"Parking"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/parking/locations.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L125"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L137"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L59"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L110"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/parking/locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L116"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_993|\n user_email, _name = __temp_993\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\ntimezone = (config.control_system.not_nil!.timezone.presence || (setting?(String, :time_zone)).presence) || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\nschedule.clear\nschedule.every(@poll_rate) do\n query_parking_bookings\nend\nschedule.in(5.seconds) do\n query_parking_bookings\nend\n"}},{"html_id":"parking_spaces:Hash(String,Array(ParkingSpace))-instance-method","name":"parking_spaces","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L237"},"def":{"name":"parking_spaces","return_type":"Hash(String, Array(ParkingSpace))","visibility":"Public","body":"metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\nend\nzone_parking = Hash(String, Array(ParkingSpace)).new\nmetadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if spaces = level[:metadata][METADATA_KEY]?.try(&.details)\n zone_parking[zone.id] = spaces\n end\n end\nend\nzone_parking\n"}},{"html_id":"query_parking_bookings:Nil-instance-method","name":"query_parking_bookings","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L259"},"def":{"name":"query_parking_bookings","return_type":"Nil","visibility":"Public","body":"reserved_spaces = parking_spaces.tap(&.each_value(&.select!(&.reserved?)))\nlogger.debug do\n count = 0\n reserved_spaces.each_value do |space|\n count = count + space.size\n end\n \"queried reserved spaces, found #{count}\"\nend\nparking_zones = reserved_spaces.keys\nbookings = [] of JSON::Any\nparking_zones.each do |zone|\n bookings.concat(staff_api.query_bookings(type: BOOKING_TYPE, zones: {zone}).get.as_a)\nend\nbookings = bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried parking bookings, found #{bookings.size}\"\nend\nrelease_bookings = [] of JSON::Any\nparking_zones.each do |zone|\n release_bookings.concat(staff_api.query_bookings(type: RESERVED_RELEASED, zones: {zone}).get.as_a)\nend\nrelease_bookings = release_bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried released spaces, found #{release_bookings.size}\"\nend\nrelease_bookings.each do |booking|\n parking_space = booking.asset_id\n reserved_spaces.each_value do |spaces|\n spaces.reject! do |space|\n space.id == parking_space\n end\n end\nend\nnow = Time.local(@timezone)\nres_start = now.at_beginning_of_day.to_unix\nres_end = now.at_end_of_day.to_unix\nlevel_to_building = level_buildings\nreserved_spaces.each do |level_zone, reservations|\n building_zone = level_to_building[level_zone]?\n if building_zone\n else\n next\n end\n reservations.each do |reservation|\n bookings << Place::Booking.new(id: -1, booking_type: BOOKING_TYPE, booking_start: res_start, booking_end: res_end, user_id: reservation.assigned_to.as(String), user_email: reservation.assigned_to.as(String), user_name: reservation.assigned_name.as(String), zones: [level_zone, building_zone], booked_by_name: reservation.assigned_name.as(String), booked_by_email: reservation.assigned_to.as(String), asset_id: reservation.id, checked_in: true)\n end\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zone_filter:Array(String)-instance-method","name":"zone_filter","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L65"},"def":{"name":"zone_filter","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zone_filter).nil?\n @zone_filter = (begin\n lvb = level_buildings\n (lvb.keys + lvb.values).uniq\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Parking/Locations/ChildMetadata","path":"Place/Parking/Locations/ChildMetadata.html","kind":"alias","full_name":"Place::Parking::Locations::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/Details","path":"Place/Parking/Locations/Details.html","kind":"struct","full_name":"Place::Parking::Locations::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(ParkingSpace)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L224"},"def":{"name":"details","return_type":"Array(ParkingSpace)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(ParkingSpace))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"args_string":"(details : Array(ParkingSpace))","args_html":"(details : Array(ParkingSpace))","location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L224"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Parking/Locations/Metadata","path":"Place/Parking/Locations/Metadata.html","kind":"alias","full_name":"Place::Parking::Locations::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Parking::Locations::Details)","aliased_html":"Hash(String, Place::Parking::Locations::Details)","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/ParkingSpace","path":"Place/Parking/Locations/ParkingSpace.html","kind":"struct","full_name":"Place::Parking::Locations::ParkingSpace","name":"ParkingSpace","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L208"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"assigned_name:String|Nil-instance-method","name":"assigned_name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_name"}},{"html_id":"assigned_name=(assigned_name:String|Nil)-instance-method","name":"assigned_name=","abstract":false,"args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"args_string":"(assigned_name : String | Nil)","args_html":"(assigned_name : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name=","args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_name = assigned_name"}},{"html_id":"assigned_to:String|Nil-instance-method","name":"assigned_to","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_to"}},{"html_id":"assigned_to=(assigned_to:String|Nil)-instance-method","name":"assigned_to=","abstract":false,"args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"args_string":"(assigned_to : String | Nil)","args_html":"(assigned_to : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to=","args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_to = assigned_to"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L210"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L210"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L211"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L211"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"reserved?-instance-method","name":"reserved?","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L216"},"def":{"name":"reserved?","visibility":"Public","body":"!!@assigned_to"}}]},{"html_id":"drivers/Place/Parking/Locations/Zone","path":"Place/Parking/Locations/Zone.html","kind":"alias","full_name":"Place::Parking::Locations::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L227"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}}]}]},{"html_id":"drivers/Place/Pinger","path":"Place/Pinger.html","kind":"class","full_name":"Place::Pinger","name":"Pinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/pinger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"period = (setting?(Int32, :ping_every)) || 60\nperiod = (period * 1000) + (rand(1000))\nschedule.clear\nschedule.every(period.milliseconds) do\n ping\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L25"},"def":{"name":"ping","visibility":"Public","body":"hostname = config.ip.not_nil!\npinger = ::Pinger.new(hostname, count: 3)\npinger.ping\npingable = pinger.pingable\nif !pingable\n self[:last_error] = (pinger.exception || pinger.warning) || \"unknown error\"\nend\nset_connected_state(pingable)\nself[:pingable] = pingable\n"}}]},{"html_id":"drivers/Place/QSCPhoneDialing","path":"Place/QSCPhoneDialing.html","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing","abstract":false,"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"Code for handling QSC phone dialing, if available","summary":"

Code for handling QSC phone dialing, if available

","instance_methods":[{"html_id":"qsc_dial_hangup-instance-method","name":"qsc_dial_hangup","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L73"},"def":{"name":"qsc_dial_hangup","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.hangup_id)\n"}},{"html_id":"qsc_dial_makecall-instance-method","name":"qsc_dial_makecall","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L67"},"def":{"name":"qsc_dial_makecall","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.dial_id)\n"}},{"html_id":"qsc_dial_pad(number:String)-instance-method","name":"qsc_dial_pad","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"}],"args_string":"(number : String)","args_html":"(number : String)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L46"},"def":{"name":"qsc_dial_pad","args":[{"name":"number","external_name":"number","restriction":"String"}],"visibility":"Public","body":"if number.size > 0\nelse\n return\nend\nchar = number[0]\ncase char\nwhen '\\b'\n if @dial_string.size == 0\n else\n @dial_string = @dial_string[0..-2]\n end\nwhen '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'\n @dial_string = \"#{@dial_string}#{char}\"\nelse\n logger.info do\n \"unsupported dial char provided #{char}\"\n end\nend\nqsc_dial_pad_sync\n"}},{"html_id":"qsc_dial_pad_clear:Nil-instance-method","name":"qsc_dial_pad_clear","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L62"},"def":{"name":"qsc_dial_pad_clear","return_type":"Nil","visibility":"Public","body":"@dial_string = \"\"\nqsc_dial_pad_sync\n"}}],"types":[{"html_id":"drivers/Place/QSCPhoneDialing/QscPhone","path":"Place/QSCPhoneDialing/QscPhone.html","kind":"class","full_name":"Place::QSCPhoneDialing::QscPhone","name":"QscPhone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},"doc":"This data will be stored in the tab","summary":"

This data will be stored in the tab

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dial_id:String-instance-method","name":"dial_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L8"},"def":{"name":"dial_id","return_type":"String","visibility":"Public","body":"@dial_id"}},{"html_id":"dtmf_id:String-instance-method","name":"dtmf_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L13"},"def":{"name":"dtmf_id","return_type":"String","visibility":"Public","body":"@dtmf_id"}},{"html_id":"hangup_id:String-instance-method","name":"hangup_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L9"},"def":{"name":"hangup_id","return_type":"String","visibility":"Public","body":"@hangup_id"}},{"html_id":"number_id:String-instance-method","name":"number_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L7"},"def":{"name":"number_id","return_type":"String","visibility":"Public","body":"@number_id"}},{"html_id":"offhook_id:String-instance-method","name":"offhook_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L12"},"def":{"name":"offhook_id","return_type":"String","visibility":"Public","body":"@offhook_id"}},{"html_id":"ringing_id:String-instance-method","name":"ringing_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L11"},"def":{"name":"ringing_id","return_type":"String","visibility":"Public","body":"@ringing_id"}},{"html_id":"status_id:String-instance-method","name":"status_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L10"},"def":{"name":"status_id","return_type":"String","visibility":"Public","body":"@status_id"}}]}]},{"html_id":"drivers/Place/RbpRemoteLogger","path":"Place/RbpRemoteLogger.html","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@logging_enabled = (setting?(Bool, \"enabled\")) || true\n@max_log_entries = (setting?(Int32, \"max_log_entries\")) || 1000\n@debug = (setting?(Bool, \"debug\")) || false\nself[:enabled] = @logging_enabled\n"}},{"html_id":"post_event(payload:JSON::Any|String)-instance-method","name":"post_event","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"args_string":"(payload : JSON::Any | String)","args_html":"(payload : JSON::Any | String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L28"},"def":{"name":"post_event","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"visibility":"Public","body":"if @debug\n logger.debug do\n \"Received: #{payload}\"\n end\nend\nif payload.is_a?(JSON::Any)\n payload = payload.to_json\nend\nif payload.is_a?(String)\n payload = payload.to_s\nend\nentry = Entry.from_json(payload)\n__temp_946 = entry.device_id\n@entries[__temp_946]? || (@entries[__temp_946] = [] of JSON::Any)\n@entries[entry.device_id] = (@entries[entry.device_id].unshift(JSON.parse(payload))).truncate(0, @max_log_entries)\nself[:entries] = @entries\nentry\n"}}],"types":[{"html_id":"drivers/Place/RbpRemoteLogger/Entry","path":"Place/RbpRemoteLogger/Entry.html","kind":"class","full_name":"Place::RbpRemoteLogger::Entry","name":"Entry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/RbpRemoteLogger","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:JSON::Any-instance-method","name":"data","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data","return_type":"JSON::Any","visibility":"Public","body":"@data"}},{"html_id":"data=(data:JSON::Any)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"args_string":"(data : JSON::Any)","args_html":"(data : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"visibility":"Public","body":"@data = data"}},{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"device_id=(device_id:String)-instance-method","name":"device_id=","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"args_string":"(device_id : String)","args_html":"(device_id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id=","args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"visibility":"Public","body":"@device_id = device_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"metadata:JSON::Any-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata","return_type":"JSON::Any","visibility":"Public","body":"@metadata"}},{"html_id":"metadata=(metadata:JSON::Any)-instance-method","name":"metadata=","abstract":false,"args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"args_string":"(metadata : JSON::Any)","args_html":"(metadata : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata=","args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"visibility":"Public","body":"@metadata = metadata"}},{"html_id":"raw:JSON::Any-instance-method","name":"raw","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw","return_type":"JSON::Any","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:JSON::Any)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"args_string":"(raw : JSON::Any)","args_html":"(raw : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"visibility":"Public","body":"@raw = raw"}},{"html_id":"subtype:String-instance-method","name":"subtype","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype","return_type":"String","visibility":"Public","body":"@subtype"}},{"html_id":"subtype=(subtype:String)-instance-method","name":"subtype=","abstract":false,"args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"args_string":"(subtype : String)","args_html":"(subtype : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype=","args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"visibility":"Public","body":"@subtype = subtype"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Place/RoomBookingApproval","path":"Place/RoomBookingApproval.html","kind":"class","full_name":"Place::RoomBookingApproval","name":"RoomBookingApproval","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L64"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L13"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L69"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L45"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n bookings.select! do |event|\n event.status == \"tentative\"\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L29"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L38"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L14"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/RoomBookingApprovalAltnerative","path":"Place/RoomBookingApprovalAltnerative.html","kind":"class","full_name":"Place::RoomBookingApprovalAltnerative","name":"RoomBookingApprovalAltnerative","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval_alternate.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L81"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_accept, comment: comment || @default_accept_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L19"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L87"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_decline, comment: comment || @default_decline_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L63"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n @events_requiring_approval_are_tentative ? bookings.select! do |event|\n event.status == \"tentative\"\n end : bookings.select! do |booking|\n (room_attendee(booking)).try(&.response_status).in?({\"needsAction\", \"tentative\"})\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L47"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L56"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n@notify_host_on_accept = (setting?(Bool, :notify_host_on_accept)) || true\n@notify_host_on_decline = (setting?(Bool, :notify_host_on_decline)) || true\n@default_accept_message = (setting?(String, :default_accept_message)) || \"Request accepted\"\n@default_decline_message = (setting?(String, :default_decline_message)) || \"Request not accepted\"\n@events_requiring_approval_are_tentative = (setting?(Bool, :events_requiring_approval_are_tentative)) || true\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L20"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Router","path":"Place/Router.html","kind":"module","full_name":"Place::Router","name":"Router","abstract":false,"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Router/Core","path":"Place/Router/Core.html","kind":"module","full_name":"Place::Router::Core","name":"Core","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L11"},{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Core routing methods and functionality. This exists as module to enable\ninclusion in other drivers, such as room logic, that provide auxillary\nfunctionality to signal distribution.","summary":"

Core routing methods and functionality.

","instance_methods":[{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L42"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"load_siggraph"}},{"html_id":"route_signal(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true)-instance-method","name":"route_signal","doc":"Routes signal from *input* to *output*.\n\nPerforms all intermediate device interaction based on current system\nconfig.","summary":"

Routes signal from input to output.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","location":{"filename":"src/place/router/core.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L186"},"def":{"name":"route_signal","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"requesting route from #{input} to #{output}\"\nend\nsrc, dst = resolver.values_at(input, output)\ndst_node = siggraph[dst]\nsrc_node = siggraph[src]\npath = (siggraph.route(src, dst, max_dist)) || (raise(\"no route found\"))\nexecs = path.compact_map do |__temp_941|\n node, edge, next_node = __temp_941\n logger.debug do\n \"#{node} → #{next_node}\"\n end\n if next_node.locked\n raise(\"#{next_node} is locked, aborting\")\n end\n case edge\n in SignalGraph::Edge::Static\n nil\n in SignalGraph::Edge::Active\n Promise.defer(timeout: 1.second) do\n next_node.source = siggraph[src].source\n if !simulate\n mod = proxy_for(edge.mod)\n case func = edge.func\n in SignalGraph::Edge::Func::Mute\n dst_layer = dst_node.ref.layer.downcase\n case dst_layer\n when \"audio\", \"video\"\n mod.mute(func.state, func.index, dst_layer)\n else\n mod.mute(func.state, func.index)\n end\n in SignalGraph::Edge::Func::Select\n mod.switch_to(func.input)\n in SignalGraph::Edge::Func::Switch\n mod.switch({func.input => [func.output]}, func.layer)\n end\n end\n nil\n end\n end\nend\nif follow_additional_routes\n routes = {} of String => Tuple(String, String, Int32 | ::Nil, Bool, Bool)\n if following_outputs = dst_node[\"followers\"]?.try(&.as_a)\n logger.debug do\n \"routing #{following_outputs.size} additional followers\"\n end\n following_outputs.each do |output_follow|\n routes[output_follow.as_s] = {input, output_follow.as_s, max_dist, simulate, false}\n end\n end\n ignore_source_routes = dst_node[\"ignore_source_routes\"]?.try(&.as_bool) || false\n if !ignore_source_routes && (additional_routes = src_node[\"perform_routes\"]?.try(&.as_h))\n logger.debug do\n \"perfoming #{additional_routes.size} additional routes\"\n end\n additional_routes.each do |ad_output, ad_input|\n routes[ad_output] = {ad_input.as_s, ad_output, max_dist, simulate, false}\n end\n end\n spawn do\n routes.each_value do |route|\n begin\n route_signal(*route)\n rescue error\n logger.warn(exception: error) do\n \"issue routing: #{route[0]}=>#{route[1]}\"\n end\n end\n end\n end\nend\nlogger.debug do\n \"awaiting responses\"\nend\nexecs.each do |promise|\n begin\n promise.get\n rescue error\n logger.warn(exception: error) do\n \"processing route\"\n end\n end\nend\n:ok\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/NodeRef","path":"Place/Router/Core/NodeRef.html","kind":"alias","full_name":"Place::Router::Core::NodeRef","name":"NodeRef","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Ref","aliased_html":"Place::Router::SignalGraph::Node::Ref","const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"}},{"html_id":"drivers/Place/Router/Core/Settings","path":"Place/Router/Core/Settings.html","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections","path":"Place/Router/Core/Settings/Connections.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Types for representing the settings format for defining connections.","summary":"

Types for representing the settings format for defining connections.

","class_methods":[{"html_id":"parse(map:Map,sys:String)-class-method","name":"parse","doc":"Parses a `Map` containing the system conectivity into a set of nodes and\nlinks that can be used for assembling the `SignalGraph`.","summary":"

Parses a Map containing the system conectivity into a set of nodes and links that can be used for assembling the SignalGraph.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(map : Map, sys : String)","args_html":"(map : Map, sys : String)","location":{"filename":"src/place/router/settings.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L105"},"def":{"name":"parse","args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"nodes = [] of SignalGraph::Node::Ref\nlinks = [] of ::Tuple(SignalGraph::Node::Ref, SignalGraph::Node::Ref)\naliases = {} of String => SignalGraph::Node::Ref\nmake_alias = ->(name : String, node : SignalGraph::Node::Ref) do\n if prev = aliases[name]?\n raise(\"invalid configuration: \\\"#{name}\\\" refers to both #{prev} and #{node}\")\n end\n aliases[name] = node\nend\nmap.each do |sink, inputs|\n if sink.is_a?(Alias)\n source = inputs\n if source.is_a?(DeviceOutput)\n else\n raise(\"invalid configuration: \\\"#{sink}\\\" must link to a DeviceOutput\")\n end\n onode = SignalGraph::Output.new(sys, source.mod, source.idx, source.output, source.layer)\n nodes << onode\n make_alias.call(sink.name, onode)\n else\n if inputs.is_a?(DeviceOutput)\n raise(\"invalid configuration: \\\"#{sink}\\\" must specify inputs as either a hash or array\")\n end\n nodes << (SignalGraph::Device.new(sys, sink.mod, sink.idx))\n if inputs.is_a?(Array)\n inputs = (inputs.each.with_index(1)).map(&.reverse)\n end\n inputs.each do |input, input_source|\n inode = SignalGraph::Input.new(sys, sink.mod, sink.idx, input)\n nodes << inode\n if input_source.is_a?(Alias)\n make_alias.call(input_source.name, inode)\n next\n end\n onode = case input_source\n in Device\n SignalGraph::Device.new(sys, input_source.mod, input_source.idx)\n in DeviceOutput\n SignalGraph::Output.new(sys, input_source.mod, input_source.idx, input_source.output, input_source.layer)\n end\n nodes << onode\n links << {onode, inode}\n end\n end\nend\n{nodes, links, aliases}\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Alias","path":"Place/Router/Core/Settings/Connections/Alias.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Alias","name":"Alias","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Alias used to refer to a signal node that does not have an accompanying\nmodule. This can be useful for declaring the concept of a device that is\nattached to an input (e.g. `\"*Laptop\"`). All alias' must be prefixed with\nan asterisk ('*') within connections settings.","summary":"

Alias used to refer to a signal node that does not have an accompanying module.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L73"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n new(name)\nend"}}],"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone)"}},{"html_id":"copy_with(name_name=@name)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"args_string":"(name _name = @name)","args_html":"(name _name = @name)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"visibility":"Public","body":"self.class.new(_name)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","path":"Place/Router/Core/Settings/Connections/Deserializable.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"instance_methods":[{"html_id":"from_json_object_key?(key:String)-instance-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L16"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"parse?(key)"}},{"html_id":"get_parts(module_id:String):Tuple(String,Int32|Nil)-instance-method","name":"get_parts","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Tuple(String, Int32 | Nil)","args_html":"(module_id : String) : Tuple(String, Int32 | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L20"},"def":{"name":"get_parts","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"::Tuple(String, Int32 | ::Nil)","visibility":"Public","body":"mod_name, match, index = module_id.rpartition('_')\nif match.empty?\n {module_id, 1}\nelse\n {mod_name, index.to_i?}\nend\n"}},{"html_id":"parse?(raw:String)-instance-method","name":"parse?","abstract":true,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L14"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":""}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Device","path":"Place/Router/Core/Settings/Connections/Device.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Module name of a device within the local system e.g. `\"Switcher_1\"`.","summary":"

Module name of a device within the local system e.g.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L34"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod, idx = get_parts(raw)\nif idx\n new(mod, idx)\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"args_string":"(mod : String, idx : Int32)","args_html":"(mod : String, idx : Int32)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx)","args_html":"(mod _mod = @mod, idx _idx = @idx)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/DeviceOutput","path":"Place/Router/Core/Settings/Connections/DeviceOutput.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Reference to a specific output on a device that has multiple outputs.\nThis is a concatenation of the `Device` reference a `.` and the output.\nFor example, output 3 of Switcher_1 is `\"Switcher_1.3\"`.","summary":"

Reference to a specific output on a device that has multiple outputs.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L47"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod_name, match, outp = raw.rpartition('.')\nif !match.empty?\n mod, idx = get_parts(mod_name)\n if idx\n outp_idx, match, layer = outp.rpartition('!')\n if match.empty?\n output = outp.to_i? || outp\n new(mod, idx, output, nil)\n else\n output = outp_idx.to_i? || outp_idx\n new(mod, idx, output, layer)\n end\n end\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32,output:String|Int32,layer:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"args_string":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","args_html":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L46"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","args_html":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx, _output, _layer)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"layer:String|Nil-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String | ::Nil","visibility":"Public","body":"@layer"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"output:String|Int32-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"String | Int32","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Input","path":"Place/Router/Core/Settings/Connections/Input.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Identifier for the input on Sink.","summary":"

Identifier for the input on Sink.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Map","path":"Place/Router/Core/Settings/Connections/Map.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Map","name":"Map","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Structure for a full connection map.\n\n```json\n{\n \"Display_1\": {\n \"hdmi\": \"Switcher_1.1\"\n },\n \"Switcher_1\": [\"*Foo\", \"*Bar\"],\n \"*FloorBox\": \"Switcher_1.2\"\n}\n```","summary":"

Structure for a full connection map.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Sink","path":"Place/Router/Core/Settings/Connections/Sink.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Sink","name":"Sink","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L85"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device that recieves the signal.","summary":"

The device that recieves the signal.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Source","path":"Place/Router/Core/Settings/Connections/Source.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Source","name":"Source","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device a signal is originating from.","summary":"

The device a signal is originating from.

"}]},{"html_id":"drivers/Place/Router/Core/Settings/IOMeta","path":"Place/Router/Core/Settings/IOMeta.html","kind":"alias","full_name":"Place::Router::Core::Settings::IOMeta","name":"IOMeta","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L166"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, JSON::Any))","aliased_html":"Hash(String, Hash(String, JSON::Any))","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Input/outputs and their associated metadata. Attributes specified here are\nprogated to the assocated input status keys. This allows information such as\nname, type etc to be exposed to UI's.","summary":"

Input/outputs and their associated metadata.

"}]},{"html_id":"drivers/Place/Router/Core/SignalNode","path":"Place/Router/Core/SignalNode.html","kind":"struct","full_name":"Place::Router::Core::SignalNode","name":"SignalNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/core.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"doc":"Wrapper for providng simple interaction with a signal node and it's\nassociated driver.","summary":"

Wrapper for providng simple interaction with a signal node and it's associated driver.

","constructors":[{"html_id":"new(label:Place::Router::SignalGraph::Node::Label,proxy:Future::Compute(PlaceOS::Driver::Proxy::Driver))-class-method","name":"new","abstract":false,"args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"args_string":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","args_html":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","location":{"filename":"src/place/router/core.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L20"},"def":{"name":"new","args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(label, proxy)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"proxy-instance-method","name":"proxy","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L25"},"def":{"name":"proxy","visibility":"Public","body":"@proxy.get"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/core.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L29"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}},{"html_id":"watch(&handler:self->)-instance-method","name":"watch","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L33"},"def":{"name":"watch","yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"visibility":"Public","body":"@label.watch do\n handler.call(self)\nend"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/place/router/core.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L23"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" @label.\n{{ call }}\n\n \n"}}]}]},{"html_id":"drivers/Place/Router/Digraph","path":"Place/Router/Digraph.html","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Labelled digraph. Holds node labels of type *N* and edge labels of type *E*.\n\nNodes are stored on UInt64 ID's. This provides an interface that should feel\nsimilar to `Indexable` for interacting with nodes labels. Similarly edges can\nbe placed and retrieved by using a dual index of {predescessor, successor}.\n\nOPTIMIZE: replace with a sparse matrix and graphBLAS operations.","summary":"

Labelled digraph.

","constructors":[{"html_id":"new(initial_capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"args_string":"(initial_capacity = nil)","args_html":"(initial_capacity = nil)","location":{"filename":"src/place/router/digraph.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L19"},"def":{"name":"new","args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"visibility":"Public","body":"_ = Digraph(N, E).allocate\n_.initialize(initial_capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](pred_id,succ_id)-instance-method","name":"[]","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id)","args_html":"(pred_id, succ_id)","location":{"filename":"src/place/router/digraph.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L68"},"def":{"name":"[]","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"visibility":"Public","body":"fetch(pred_id, succ_id) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} does not exist\"))\nend"}},{"html_id":"[](id)-instance-method","name":"[]","doc":"Retrieves the label attached to node *id*.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L42"},"def":{"name":"[]","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).attr"}},{"html_id":"[]=(pred_id,succ_id,attr)-instance-method","name":"[]=","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(pred_id, succ_id, attr)","args_html":"(pred_id, succ_id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L81"},"def":{"name":"[]=","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(pred_id, succ_id, attr) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} already exists\"))\nend"}},{"html_id":"[]=(id,attr)-instance-method","name":"[]=","doc":"Insert a new node.","summary":"

Insert a new node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(id, attr)","args_html":"(id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L53"},"def":{"name":"[]=","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(id, attr) do\n raise(Error.new(\"Node #{id} already exists\"))\nend"}},{"html_id":"breadth_first_search(from,&:UInt64->Bool|Nil)-instance-method","name":"breadth_first_search","doc":"Perform a breadth first search across the graph, starting at *from*.\n\nEach node id is yielded as it's traversed. The search will terminate when\nthis block returns true. If `nil` is returned the node is skipped, but the\ntraversal continues.\n\nResults are provided as a Hash that includes all reached nodes as the keys,\nand their predecessor as the associated value.","summary":"

Perform a breadth first search across the graph, starting at from.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""}],"args_string":"(from, & : UInt64 -> Bool | Nil)","args_html":"(from, & : UInt64 -> Bool | Nil)","location":{"filename":"src/place/router/digraph.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L106"},"def":{"name":"breadth_first_search","args":[{"name":"from","external_name":"from","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"","external_name":"","restriction":"(UInt64 -> Bool | ::Nil)"},"visibility":"Public","body":"paths = Hash(UInt64, UInt64).new\nqueue = Deque(UInt64).new(1, from)\nwhile pred_id = queue.shift?\n (node(pred_id)).succ.each_key do |succ_id|\n if paths.has_key?(succ_id)\n next\n end\n done = yield succ_id\n if done.nil?\n next\n end\n paths[succ_id] = pred_id\n if done\n return paths\n end\n queue << succ_id\n end\nend\n"}},{"html_id":"clear(*args,**options)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@nodes.clear(*args, **options)"}},{"html_id":"clear(*args,**options,&)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@nodes.clear(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"fetch(pred_id,succ_id,&):E-instance-method","name":"fetch","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id, &) : E","args_html":"(pred_id, succ_id, &) : E","location":{"filename":"src/place/router/digraph.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L75"},"def":{"name":"fetch","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"yields":2,"block_arity":2,"return_type":"E","visibility":"Public","body":"succ_id = check_node_exists(succ_id)\n(node(pred_id)).succ.fetch(succ_id) do\n yield pred_id, succ_id\nend\n"}},{"html_id":"fetch(id,&):N-instance-method","name":"fetch","doc":"Retrieves the label attached to node *id*. Yields if it does not exist.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id, &) : N","args_html":"(id, &) : N","location":{"filename":"src/place/router/digraph.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L47"},"def":{"name":"fetch","args":[{"name":"id","external_name":"id","restriction":""}],"yields":1,"block_arity":1,"return_type":"N","visibility":"Public","body":"node = node(id) do\n return yield id\nend\nnode.attr\n"}},{"html_id":"indegree(id)-instance-method","name":"indegree","doc":"The number of incomming edges to *id*.","summary":"

The number of incomming edges to id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L183"},"def":{"name":"indegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"id = check_node_exists(id)\n@nodes.reduce(0) do |count, __temp_944|\n _, node = __temp_944\n if node.succ.has_key?(id)\n count = count + 1\n end\n count\nend\n"}},{"html_id":"insert(pred_id,succ_id,attr:E,&)-instance-method","name":"insert","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"args_string":"(pred_id, succ_id, attr : E, &)","args_html":"(pred_id, succ_id, attr : E, &)","location":{"filename":"src/place/router/digraph.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L88"},"def":{"name":"insert","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"yields":2,"block_arity":2,"visibility":"Public","body":"succ_id = check_node_exists(succ_id)\npred = node(pred_id)\nif pred.succ.has_key?(succ_id)\n yield pred_id, succ_id\nelse\n pred.succ[succ_id] = attr\nend\n"}},{"html_id":"insert(id,attr:N,&)-instance-method","name":"insert","doc":"Inserts a node. Yields if it already exists.","summary":"

Inserts a node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"args_string":"(id, attr : N, &)","args_html":"(id, attr : N, &)","location":{"filename":"src/place/router/digraph.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L58"},"def":{"name":"insert","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"yields":1,"block_arity":1,"visibility":"Public","body":"id = id.to_u64\nif @nodes.has_key?(id)\n yield id\nelse\n @nodes[id] = Node(N, E).new(attr, {} of UInt64 => E)\nend\n"}},{"html_id":"nodes:Enumerable(UInt64)-instance-method","name":"nodes","doc":"Provides all nodes present within the graph.\n\nNOTE: ordering of nodes is _not_ defined.","summary":"

Provides all nodes present within the graph.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L149"},"def":{"name":"nodes","return_type":"Enumerable(UInt64)","visibility":"Public","body":"@nodes.each_key"}},{"html_id":"outdegree(id)-instance-method","name":"outdegree","doc":"The outgoing edges from *id*.","summary":"

The outgoing edges from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L178"},"def":{"name":"outdegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).succ.size"}},{"html_id":"path(from,to,invert=false):Enumerable(UInt64)|Nil-instance-method","name":"path","doc":"Returns a list of node IDs that form the shortest path between the passed\nnodes or `nil` if no path exists.","summary":"

Returns a list of node IDs that form the shortest path between the passed nodes or nil if no path exists.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"args_string":"(from, to, invert = false) : Enumerable(UInt64) | Nil","args_html":"(from, to, invert = false) : Enumerable(UInt64) | Nil","location":{"filename":"src/place/router/digraph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L130"},"def":{"name":"path","args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"return_type":"Enumerable(UInt64) | ::Nil","visibility":"Public","body":"from = check_node_exists(from)\nto = check_node_exists(to)\npaths = breadth_first_search(from, &.==(to))\nif paths.nil?\n return\nend\nnodes = [to]\nwhile !(nodes.last == from)\n nodes << paths[nodes.last]\nend\ninvert ? nodes : nodes.reverse!\n"}},{"html_id":"sink?(id):Bool-instance-method","name":"sink?","doc":"Checks if a node has incoming edges only.","summary":"

Checks if a node has incoming edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L154"},"def":{"name":"sink?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"(outdegree(id)).zero? && !(indegree(id)).zero?"}},{"html_id":"sinks:Enumerable(UInt64)-instance-method","name":"sinks","doc":"Provides all nodes with incoming edges only.","summary":"

Provides all nodes with incoming edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L159"},"def":{"name":"sinks","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n sink?(id)\nend"}},{"html_id":"source?(id):Bool-instance-method","name":"source?","doc":"Checks if a node has outgoing edges only.","summary":"

Checks if a node has outgoing edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L164"},"def":{"name":"source?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"!(outdegree(id)).zero? && (indegree(id)).zero?"}},{"html_id":"sources:Enumerable(UInt64)-instance-method","name":"sources","doc":"Provides all nodes with outgoing edges only.\n\nOPTIMIZE: this is _very_ slow [O(V * E)], but works for testing purposes.\nSwitching the sparse matrix should assist so not worth optimising for this\nsetup.","summary":"

Provides all nodes with outgoing edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L173"},"def":{"name":"sources","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n source?(id)\nend"}},{"html_id":"subtree(id):Enumerable(UInt64)-instance-method","name":"subtree","doc":"Provides all nodes reachable from *id*.","summary":"

Provides all nodes reachable from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Enumerable(UInt64)","args_html":"(id) : Enumerable(UInt64)","location":{"filename":"src/place/router/digraph.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L192"},"def":{"name":"subtree","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Enumerable(UInt64)","visibility":"Public","body":"id = check_node_exists(id)\nSubtreeIterator.new(self, id)\n"}}],"types":[{"html_id":"drivers/Place/Router/Digraph/Error","path":"Place/Router/Digraph/Error.html","kind":"class","full_name":"Place::Router::Digraph::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"}},{"html_id":"drivers/Place/Router/Digraph/Node","path":"Place/Router/Digraph/Node.html","kind":"struct","full_name":"Place::Router::Digraph::Node(N, E)","name":"Node","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"},"constructors":[{"html_id":"new(attr:N,succ:Hash(UInt64,E))-class-method","name":"new","abstract":false,"args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"args_string":"(attr : N, succ : Hash(UInt64, E))","args_html":"(attr : N, succ : Hash(UInt64, E))","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"new","args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"visibility":"Public","body":"_ = Node(N, E).allocate\n_.initialize(attr, succ)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attr:N-instance-method","name":"attr","abstract":false,"def":{"name":"attr","return_type":"N","visibility":"Public","body":"@attr"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@attr.clone, @succ.clone)"}},{"html_id":"copy_with(attr_attr=@attr,succ_succ=@succ)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"args_string":"(attr _attr = @attr, succ _succ = @succ)","args_html":"(attr _attr = @attr, succ _succ = @succ)","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"copy_with","args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"visibility":"Public","body":"self.class.new(_attr, _succ)"}},{"html_id":"succ:Hash(UInt64,E)-instance-method","name":"succ","abstract":false,"def":{"name":"succ","return_type":"Hash(UInt64, E)","visibility":"Public","body":"@succ"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph","path":"Place/Router/SignalGraph.html","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L11"},{"filename":"src/place/router/signal_graph/edge.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L3"},{"filename":"src/place/router/signal_graph/mod.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L5"},{"filename":"src/place/router/signal_graph/node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L5"},{"filename":"src/place/router/signal_graph/watchable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Mute","name":"Mute","value":"Node::Mute.instance"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Structures and types for mapping between sys,mod,idx,io referencing and the\nunderlying graph structure.\n\nThe SignalGraph class _does not_ perform any direct interaction with devices,\nbut does provide the ability to discover routes and available connectivity\nwhen may then be acted on.","summary":"

Structures and types for mapping between sys,mod,idx,io referencing and the underlying graph structure.

","class_methods":[{"html_id":"build(nodes:Enumerable(Node::Ref),links:Enumerable(Tuple(Node::Ref,Node::Ref)))-class-method","name":"build","doc":"Construct a graph from a pre-parsed configuration.\n\n*nodes* must contain the set of all signal nodes that form the device inputs\nand outputs across the system. This includes those at the \"edge\" of the\nsignal network (e.g. a input to a switcher) as well as inputs in use on\nintermediate devices (e.g. a input on a display, which in turn is attached to\nthe switcher above).\n\n*links* declares the interconnections between devices.\n\nModules associated with any of these nodes are then introspected for\nswitching, input selection and mute control based on the interfaces they\nexpose.","summary":"

Construct a graph from a pre-parsed configuration.

","abstract":false,"args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"args_string":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","args_html":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","location":{"filename":"src/place/router/signal_graph.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L93"},"def":{"name":"build","args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"visibility":"Public","body":"mod_io = Hash(Mod, ::Tuple(Set(Input), Set(Output))).new do |h, k|\n h[k] = {Set(Input).new, Set(Output).new}\nend\nsiggraph = new(initial_capacity: nodes.size)\nsiggraph.insert(Mute)\nnodes.each do |node|\n siggraph.insert(node)\n case node\n when Input\n inputs, _ = mod_io[node.mod]\n inputs << node\n when Output\n _, outputs = mod_io[node.mod]\n outputs << node\n end\nend\nlinks.each do |source, dest|\n siggraph.connect(source, dest)\nend\nmod_io.each do |mod, __temp_942|\n inputs, outputs = __temp_942\n siggraph.link(mod, inputs, outputs)\nend\nsiggraph.inputs.each do |node|\n node.source = node.ref\nend\nsiggraph\n"}}],"instance_methods":[{"html_id":"[](node:Node::Ref)-instance-method","name":"[]","doc":"Retrieves the labelled state for *node*.","summary":"

Retrieves the labelled state for node.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref)","args_html":"(node : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L130"},"def":{"name":"[]","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"visibility":"Public","body":"g[node.id]"}},{"html_id":"[](node_id)-instance-method","name":"[]","doc":"Retrieves the labelled state for the signal node at *node_id*.","summary":"

Retrieves the labelled state for the signal node at node_id.

","abstract":false,"args":[{"name":"node_id","external_name":"node_id","restriction":""}],"args_string":"(node_id)","args_html":"(node_id)","location":{"filename":"src/place/router/signal_graph.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L135"},"def":{"name":"[]","args":[{"name":"node_id","external_name":"node_id","restriction":""}],"visibility":"Public","body":"g[node_id]"}},{"html_id":"input?(node:Node::Ref):Bool-instance-method","name":"input?","doc":"Checks if *node* is a system input.","summary":"

Checks if node is a system input.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L161"},"def":{"name":"input?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.sink?(node.id)"}},{"html_id":"inputs(destination:Node::Ref)-instance-method","name":"inputs","doc":"Provide all signal nodes that can be routed to *destination*.","summary":"

Provide all signal nodes that can be routed to destination.

","abstract":false,"args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"args_string":"(destination : Node::Ref)","args_html":"(destination : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L172"},"def":{"name":"inputs","args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"visibility":"Public","body":"(g.subtree(destination.id)).map do |id|\n g[id]\nend"}},{"html_id":"inputs-instance-method","name":"inputs","doc":"Provide the signal nodes that form system inputs.","summary":"

Provide the signal nodes that form system inputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L166"},"def":{"name":"inputs","visibility":"Public","body":"g.sinks.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"output?(node:Node::Ref):Bool-instance-method","name":"output?","doc":"Checks if *node* is a system output.","summary":"

Checks if node is a system output.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L177"},"def":{"name":"output?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.source?(node.id)"}},{"html_id":"outputs-instance-method","name":"outputs","doc":"Provide the signal nodes that form system outputs.","summary":"

Provide the signal nodes that form system outputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L182"},"def":{"name":"outputs","visibility":"Public","body":"g.sources.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"route(source:Node::Ref,destination:Node::Ref,max_dist=nil)-instance-method","name":"route","doc":"Find the signal path that connects *source* to *dest*, or `nil` if this is\nnot possible.\n\nProvides an `Iterator` that provides labels across each node, the edge, and\nsubsequent node.","summary":"

Find the signal path that connects source to dest, or nil if this is not possible.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"args_string":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","args_html":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","location":{"filename":"src/place/router/signal_graph.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L144"},"def":{"name":"route","args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"visibility":"Public","body":"path = g.path(destination.id, source.id, invert: true)\nif path\nelse\n return nil\nend\nif max_dist && path.size > max_dist\n return nil\nend\n(path.each_cons(2, true)).map do |__temp_943|\n succ, pred = __temp_943\n {g[succ], g[pred, succ], g[pred]}\nend\n"}}],"types":[{"html_id":"drivers/Place/Router/SignalGraph/Device","path":"Place/Router/SignalGraph/Device.html","kind":"alias","full_name":"Place::Router::SignalGraph::Device","name":"Device","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Device","aliased_html":"Place::Router::SignalGraph::Node::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge","path":"Place/Router/SignalGraph/Edge.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Active","path":"Place/Router/SignalGraph/Edge/Active.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Active","name":"Active","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"new(mod:Mod,func:Func::Type)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"args_string":"(mod : Mod, func : Func::Type)","args_html":"(mod : Mod, func : Func::Type)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, func)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @func.clone)"}},{"html_id":"copy_with(mod_mod=@mod,func_func=@func)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"args_string":"(mod _mod = @mod, func _func = @func)","args_html":"(mod _mod = @mod, func _func = @func)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _func)"}},{"html_id":"func:Func::Type-instance-method","name":"func","abstract":false,"def":{"name":"func","return_type":"Func::Type","visibility":"Public","body":"@func"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","path":"Place/Router/SignalGraph/Edge/Func.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Mute","path":"Place/Router/SignalGraph/Edge/Func/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(state:Bool,index:Int32|String=0)-class-method","name":"new","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool, index : Int32 | String = 0)","args_html":"(state : Bool, index : Int32 | String = 0)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"new","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(state, index)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@state.clone, @index.clone)"}},{"html_id":"copy_with(state_state=@state,index_index=@index)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"args_string":"(state _state = @state, index _index = @index)","args_html":"(state _state = @state, index _index = @index)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"copy_with","args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"visibility":"Public","body":"self.class.new(_state, _index)"}},{"html_id":"index:Int32|String-instance-method","name":"index","abstract":false,"def":{"name":"index","return_type":"Int32 | String","visibility":"Public","body":"@index"}},{"html_id":"state:Bool-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"Bool","visibility":"Public","body":"@state"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Select","path":"Place/Router/SignalGraph/Edge/Func/Select.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Select","name":"Select","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"args_string":"(input : Int32 | String)","args_html":"(input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone)"}},{"html_id":"copy_with(input_input=@input)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"args_string":"(input _input = @input)","args_html":"(input _input = @input)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"visibility":"Public","body":"self.class.new(_input)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Switch","path":"Place/Router/SignalGraph/Edge/Func/Switch.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String,output:Int32|String,layer:String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"args_string":"(input : Int32 | String, output : Int32 | String, layer : String)","args_html":"(input : Int32 | String, output : Int32 | String, layer : String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Type","path":"Place/Router/SignalGraph/Edge/Func/Type.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Func::Type","name":"Type","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch)","aliased_html":"Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Label","path":"Place/Router/SignalGraph/Edge/Label.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Label","name":"Label","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static)","aliased_html":"Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Static","path":"Place/Router/SignalGraph/Edge/Static.html","kind":"class","full_name":"Place::Router::SignalGraph::Edge::Static","name":"Static","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L8"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Input","path":"Place/Router/SignalGraph/Input.html","kind":"alias","full_name":"Place::Router::SignalGraph::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceInput","aliased_html":"Place::Router::SignalGraph::Node::DeviceInput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Mod","path":"Place/Router/SignalGraph/Mod.html","kind":"class","full_name":"Place::Router::SignalGraph::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/mod.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"doc":"Reference to a PlaceOS module that provides IO nodes within the graph.","summary":"

Reference to a PlaceOS module that provides IO nodes within the graph.

","class_methods":[{"html_id":"parse?(ref)-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref)","args_html":"(ref)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L44"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"visibility":"Public","body":"if m = ref.match(/^(.+)\\/(.+)\\_(\\d+)$/)\n sys = m[1]\n mod = m[2]\n idx = m[3].to_i\n new(sys, mod, idx)\nend"}}],"constructors":[{"html_id":"new(sys:String,name:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"args_string":"(sys : String, name : String, idx : Int32)","args_html":"(sys : String, name : String, idx : Int32)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L14"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"==(other:self)-instance-method","name":"==","doc":"Returns `true` if this reference is the same as *other*. Invokes `same?`.","summary":"

Returns true if this reference is the same as other.

","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"self"}],"args_string":"(other : self)","args_html":"(other : self)","def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"self"}],"visibility":"Public","body":"if same?(other)\n return true\nend\nif @id == (other.@id)\nelse\n return false\nend\ntrue\n"}},{"html_id":"audio_muteable?-instance-method","name":"audio_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"audio_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::AudioMuteable\".in?(metadata.implements)"}},{"html_id":"camera?-instance-method","name":"camera?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"camera?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Camera\".in?(metadata.implements)"}},{"html_id":"chat_functions?-instance-method","name":"chat_functions?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"chat_functions?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ChatFunctions\".in?(metadata.implements)"}},{"html_id":"desk_control?-instance-method","name":"desk_control?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"desk_control?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DeskControl\".in?(metadata.implements)"}},{"html_id":"door_security?-instance-method","name":"door_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"door_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DoorSecurity\".in?(metadata.implements)"}},{"html_id":"electrical_relay?-instance-method","name":"electrical_relay?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"electrical_relay?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ElectricalRelay\".in?(metadata.implements)"}},{"html_id":"guest_building_access?-instance-method","name":"guest_building_access?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"guest_building_access?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::GuestBuildingAccess\".in?(metadata.implements)"}},{"html_id":"hash(hasher)-instance-method","name":"hash","doc":"See `Object#hash(hasher)`","summary":"

See Object#hash(hasher)

","abstract":false,"args":[{"name":"hasher","external_name":"hasher","restriction":""}],"args_string":"(hasher)","args_html":"(hasher)","def":{"name":"hash","args":[{"name":"hasher","external_name":"hasher","restriction":""}],"visibility":"Public","body":"hasher = @id.hash(hasher)\nhasher\n"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L12"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L10"},"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"input_muteable?-instance-method","name":"input_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputMuteable\".in?(metadata.implements)"}},{"html_id":"input_selection?-instance-method","name":"input_selection?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_selection?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputSelection\".in?(metadata.implements)"}},{"html_id":"lighting?-instance-method","name":"lighting?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lighting?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lighting\".in?(metadata.implements)"}},{"html_id":"locatable?-instance-method","name":"locatable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"locatable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Locatable\".in?(metadata.implements)"}},{"html_id":"lockers?-instance-method","name":"lockers?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lockers?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lockers\".in?(metadata.implements)"}},{"html_id":"mailer?-instance-method","name":"mailer?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Mailer\".in?(metadata.implements)"}},{"html_id":"mailer_templates?-instance-method","name":"mailer_templates?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer_templates?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::MailerTemplates\".in?(metadata.implements)"}},{"html_id":"metadata-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L19"},"def":{"name":"metadata","visibility":"Public","body":"(PlaceOS::Driver::Proxy::System.driver_metadata?(id)).not_nil!"}},{"html_id":"moveable?-instance-method","name":"moveable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"moveable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Moveable\".in?(metadata.implements)"}},{"html_id":"muteable?-instance-method","name":"muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Muteable\".in?(metadata.implements)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L9"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"powerable?-instance-method","name":"powerable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"powerable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Powerable\".in?(metadata.implements)"}},{"html_id":"selectable?-instance-method","name":"selectable?","doc":"FIXME: drop if / after renaming InputSelection -> Selectable","summary":"

FIXME drop if / after renaming InputSelection -> Selectable

","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"selectable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Selectable\".in?(metadata.implements)"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sensor?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Sensor\".in?(metadata.implements)"}},{"html_id":"sms?-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sms?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::SMS\".in?(metadata.implements)"}},{"html_id":"stoppable?-instance-method","name":"stoppable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"stoppable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Stoppable\".in?(metadata.implements)"}},{"html_id":"switchable?-instance-method","name":"switchable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"switchable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Switchable\".in?(metadata.implements)"}},{"html_id":"sys:String-instance-method","name":"sys","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L8"},"def":{"name":"sys","return_type":"String","visibility":"Public","body":"@sys"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L40"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((((io << sys) << '/') << name) << '_') << idx"}},{"html_id":"video_muteable?-instance-method","name":"video_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"video_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::VideoMuteable\".in?(metadata.implements)"}},{"html_id":"zone_access_security?-instance-method","name":"zone_access_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zone_access_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ZoneAccessSecurity\".in?(metadata.implements)"}},{"html_id":"zoomable?-instance-method","name":"zoomable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zoomable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Zoomable\".in?(metadata.implements)"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node","path":"Place/Router/SignalGraph/Node.html","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","path":"Place/Router/SignalGraph/Node/Device.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to the default / central node for a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1\n │ │ │\n │ │ └module index\n │ └module name\n └system\n","summary":"

Reference to the default / central node for a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L150"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if mod = Mod.parse?(ref)\n new(mod)\nend"}}],"constructors":[{"html_id":"new(sys,name,idx)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"args_string":"(sys, name, idx)","args_html":"(sys, name, idx)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L139"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"args_string":"(mod : Place::Router::SignalGraph::Mod)","args_html":"(mod : Place::Router::SignalGraph::Mod)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L143"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L137"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L146"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","path":"Place/Router/SignalGraph/Node/DeviceInput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal input to a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1:hdmi\n │ │ │ │\n │ │ │ └input\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal input to a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L222"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, i = ref.rpartition(':')\nif mod = Mod.parse?(m)\n input = i.to_i? || i\n new(mod, input)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(sys, name, idx, input : Int32 | String)","args_html":"(sys, name, idx, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L211"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L215"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L209"},"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L208"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L218"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << ':') << input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","path":"Place/Router/SignalGraph/Node/DeviceOutput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal output from a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Switcher_1.1!video\n │ │ │ │ │_layer\n │ │ │ └output\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal output from a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L187"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, o = ref.rpartition('.')\nif mod = Mod.parse?(m)\n output = o.to_i? || o\n new(mod, output)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,output:Int32|String,layer)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"args_string":"(sys, name, idx, output : Int32 | String, layer)","args_html":"(sys, name, idx, output : Int32 | String, layer)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L173"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,output:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L178"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, output)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L171"},"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L169"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L170"},"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L182"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << '.') << output\nif @layer == DEFAULT_LAYER\nelse\n (io << '!') << @layer\nend\n"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","path":"Place/Router/SignalGraph/Node/Label.html","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Metadata tracked against each signal node.","summary":"

Metadata tracked against each signal node.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(ref:Place::Router::SignalGraph::Node::Ref)-class-method","name":"new","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"args_string":"(ref : Place::Router::SignalGraph::Node::Ref)","args_html":"(ref : Place::Router::SignalGraph::Node::Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L12"},"def":{"name":"new","args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ref)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(key,value:JSON::Any)-instance-method","name":"[]=","doc":"Sets a metadata property of `self`.","summary":"

Sets a metadata property of self.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(key, value : JSON::Any)","args_html":"(key, value : JSON::Any)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Int)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(key, value : Int)","args_html":"(key, value : Int)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Float)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"args_string":"(key, value : Float)","args_html":"(key, value : Float)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Array)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"args_string":"(key, value : Array)","args_html":"(key, value : Array)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Hash)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"args_string":"(key, value : Hash)","args_html":"(key, value : Hash)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(key, value)","args_html":"(key, value)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"locked:Bool-instance-method","name":"locked","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L27"},"def":{"name":"locked","return_type":"Bool","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool)-instance-method","name":"locked=","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"args_string":"(locked : Bool)","args_html":"(locked : Bool)","def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"visibility":"Public","body":"(previous_def(locked)).tap do\n notify\nend"}},{"html_id":"meta:Hash(String,JSON::Any)-instance-method","name":"meta","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L33"},"def":{"name":"meta","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @meta).nil?\n @meta = (Hash(String, JSON::Any).new)\nelse\n __temp_1\nend"}},{"html_id":"meta=(meta:Hash(String,JSON::Any))-instance-method","name":"meta=","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"args_string":"(meta : Hash(String, JSON::Any))","args_html":"(meta : Hash(String, JSON::Any))","def":{"name":"meta=","args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"(previous_def(meta)).tap do\n notify\nend"}},{"html_id":"ref:Ref-instance-method","name":"ref","doc":"The `Node::Ref` used when creating this node.","summary":"

The Node::Ref used when creating this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L20"},"def":{"name":"ref","return_type":"Ref","visibility":"Public","body":"@ref"}},{"html_id":"source:Ref|Nil-instance-method","name":"source","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L23"},"def":{"name":"source","return_type":"Ref | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:Ref|Nil)-instance-method","name":"source=","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"args_string":"(source : Ref | Nil)","args_html":"(source : Ref | Nil)","def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"visibility":"Public","body":"(previous_def(source)).tap do\n notify\nend"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L15"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","path":"Place/Router/SignalGraph/Node/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Virtual node representing (any) mute source.\n\nThis may be refernced simply as `MUTE`.","summary":"

Virtual node representing (any) mute source.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L247"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if ref.upcase.ends_with?(\"MUTE\")\n instance\nend"}}],"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L235"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L240"},"def":{"name":"id","visibility":"Public","body":"0_u64"}},{"html_id":"mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L244"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L252"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << \"MUTE\""}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","path":"Place/Router/SignalGraph/Node/Ref.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LAYER","name":"DEFAULT_LAYER","value":"\"all\""}],"subclasses":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Base structure for referring to a node within the graph.","summary":"

Base structure for referring to a node within the graph.

","class_methods":[{"html_id":"resolve?(key:String,sys=nil)-class-method","name":"resolve?","doc":"Resolves a string-based node *key* to a fully-qualified reference.\n\nIf a system component is not present within *key*, this is resolved\nwithin the context of *sys*. For example:\n\n Ref.resolve(\"Display_1:hdmi\", \"sys-abc123\")\n # => DeviceInput(sys: \"sys-abc123\", mod: {\"Display\", 1}, input: \"hdmi\")\n","summary":"

Resolves a string-based node key to a fully-qualified reference.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"args_string":"(key : String, sys = nil)","args_html":"(key : String, sys = nil)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L81"},"def":{"name":"resolve?","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"visibility":"Public","body":"ref = key.includes?('/') ? key : \"#{sys}/#{key}\"\n{% if true %}\n {% for type in @type.subclasses %}\n {{ type }}.parse?(ref) || \\\n {% end %}\n nil\n {% end %}\n"}}],"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"==(other:Ref)-instance-method","name":"==","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Ref"}],"args_string":"(other : Ref)","args_html":"(other : Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L104"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"Ref"}],"visibility":"Public","body":"id == other.id"}},{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L92"},"def":{"name":"id","visibility":"Public","body":"self.class.hash ^ self.hash"}},{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"initialize","visibility":"Public","body":""}},{"html_id":"layer-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L100"},"def":{"name":"layer","visibility":"Public","body":"DEFAULT_LAYER"}},{"html_id":"local(sys:String)-instance-method","name":"local","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(sys : String)","args_html":"(sys : String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L108"},"def":{"name":"local","args":[{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"to_s.lchop(\"#{sys}/\")"}},{"html_id":"mod-instance-method","name":"mod","abstract":true,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L96"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_json(json)-instance-method","name":"to_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":""}],"args_string":"(json)","args_html":"(json)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L112"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":""}],"visibility":"Public","body":"json.string(to_s)"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Output","path":"Place/Router/SignalGraph/Output.html","kind":"alias","full_name":"Place::Router::SignalGraph::Output","name":"Output","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceOutput","aliased_html":"Place::Router::SignalGraph::Node::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","path":"Place/Router/SignalGraph/Watchable.html","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/watchable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"instance_methods":[{"html_id":"notify:Nil-instance-method","name":"notify","doc":"Notify subscribers with current state.","summary":"

Notify subscribers with current state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L10"},"def":{"name":"notify","return_type":"Nil","visibility":"Public","body":"@subscribers.try(&.each(&.call(self)))"}},{"html_id":"watch(initial=true,&handler:self->):Nil-instance-method","name":"watch","doc":"Subscribe to updates.","summary":"

Subscribe to updates.

","abstract":false,"args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"args_string":"(initial = true, &handler : self -> ) : Nil","args_html":"(initial = true, &handler : self -> ) : Nil","location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L4"},"def":{"name":"watch","args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"return_type":"Nil","visibility":"Public","body":"subscribers << handler\nif initial\n handler.call(self)\nend\n"}}]}]}]},{"html_id":"drivers/Place/Schedule","path":"Place/Schedule.html","kind":"class","full_name":"Place::Schedule","name":"Schedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L356"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel(event_id:String,reason:String|Nil=nil)-instance-method","name":"cancel","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, reason : String | Nil = nil)","args_html":"(event_id : String, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L202"},"def":{"name":"cancel","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"declining event: #{event_id}\"\nend\ncal_client.decline_event(user_id: me.email, id: event_id, notify: !!reason, comment: reason)\n\"cancelled\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L38"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"lookup or search for the email and phone numbers of other staff members if you haven't been provided their details. Do not guess.\\n\"\n str << \"provides details of my daily schedule, meeting room bookings and events I'm attending.\\n\"\n str << \"meeting room bookings must have a resource as an attendee.\\n\"\n str << \"my meeting room bookings will have me as the host or creator.\\n\"\n str << \"meeting rooms are the attendees marked as resources.\\n\"\n str << \"all day events may not have an ending time.\\n\"\n str << \"internal staff have the following email domain: #{@email_domain}. We can only obtain the schedules of internal staff\\n\"\n str << \"check schedules before booking or moving meetings to ensure no one is busy at that time\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"create(event:CreateEvent)-instance-method","name":"create","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"args_string":"(event : CreateEvent)","args_html":"(event : CreateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L128"},"def":{"name":"create","args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nmy_email = me.email.downcase\nhost_email = (event.host.presence || me.email).downcase\ni_am_host = host_email == my_email\nhost_name = host_email\nattendees = event.attendees.uniq.reject do |attendee|\n attend_email = attendee.email.downcase\n if attend_email == host_email\n host_name = attendee.name\n true\n else\n if attend_email == my_email\n attendee.organizer = true\n false\n end\n end\nend\nattendees << PlaceCalendar::Event::Attendee.new(name: i_am_host ? me.name : host_name, email: host_email, response_status: \"accepted\", organizer: i_am_host)\nif event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\nend\nnew_event = PlaceCalendar::Event.new\nnew_event.attendees = attendees\nnew_event.title = event.title\nnew_event.location = event.location\nnew_event.all_day = event.all_day\nnew_event.event_start = event.starting.in(timezone)\nnew_event.event_end = event.ending.try(&.in(timezone))\nnew_event.body = event.title\nnew_event.timezone = timezone.name\nnew_event.creator = my_email\nnew_event.host = host_email\nlogger.debug do\n \"creating booking: #{new_event.inspect}\"\nend\ncreated_event = cal_client.create_event(user_id: my_email, event: new_event, calendar_id: host_email)\n(Event.from_json(created_event.to_json)).configure_times(timezone)\n"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L330"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_schedule: \"returns my schedule with event details with attendees and their response status. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", search_staff_member: \"search for a staff members phone and email addresses using odata filter queries, don't include `$filter=`, for example: `givenName eq 'mary' or startswith(surname,'smith')`, confrim with the user when there are multiple results, search for both givenName and surname using `or` if there is ambiguity\", lookup_staff_member: \"look up a staff members name and phone number by providing their email address. Use search if you only have their name\", get_schedules: \"returns busy periods of the emails specified. Search for staff first if you haven't been given their email address. This can be a person or a resource like a room. An empty schedules array means they are available\", create: \"create a calendar entry with the provided event details. Make sure the attendees are available by getting their schedules first, remember to include the host in the attendees list. An ending time is required except for all day bookings. You can specify an alternate host if booking on behalf of someone else. Don't provide a response_status for attendees when using this function. Starting and ending date times must be ISO 8601 formatted with the timezone\", modify: \"update the details of an existing event. The original id is required, otherwise you only need to provide the changes. You must provide the complete list of attendees if that list is being modified. Don't provide a response_status for attendees when using this function. You can't modify events where the start time is in the past\", cancel: \"cancels an event with an optional reason\", update_attending_status: \"use to confirm your attendance at a meeting this will update your attendee response_status in the specified meeting from your schedule. You should probably provide a reason when declining, however this is optional\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L359"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg3|\n __arg3[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"get_schedules(emails:Array(String),day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"get_schedules","abstract":false,"args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L91"},"def":{"name":"get_schedules","args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nif ending < Time.utc\n return \"past schedules are not useful\"\nend\nduration = ending - starting\nlogger.debug do\n \"getting schedules for #{emails} @ #{starting} -> #{ending}\"\nend\navailability_view_interval = {duration, 30.minutes}.min.total_minutes.to_i!\ntz = timezone\n(cal_client.get_availability(me.email, emails, starting, ending, view_interval: availability_view_interval)).map do |avail|\n {email: avail.calendar, schedule: avail.availability.map do |sched|\n {status: sched.status, starting: sched.starts_at.in(tz), ending: sched.ends_at.in(tz)}\n end}\nend\n"}},{"html_id":"lookup_staff_member(email:String)-instance-method","name":"lookup_staff_member","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L82"},"def":{"name":"lookup_staff_member","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"looking up staff member: #{email}\"\nend\ncal_client = place_calendar_client\nuser = cal_client.get_user_by_email(email)\nif user\nelse\n return \"could not find a staff member with email #{email}. Try searching for their name?\"\nend\nuser\n"}},{"html_id":"modify(event:UpdateEvent)-instance-method","name":"modify","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"args_string":"(event : UpdateEvent)","args_html":"(event : UpdateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L171"},"def":{"name":"modify","args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nexisting = cal_client.get_event(me.email, id: event.id)\nif existing\nelse\n return \"error: could not find event with id '#{event.id}', it may have been cancelled?\"\nend\n{% for param in [\"title\", \"location\", \"host\", \"attendees\"] of ::String %}\n existing.{{ param.id }} = event.{{ param.id }}.nil? ? existing.{{ param.id }} : event.{{ param.id }}.not_nil!\n {% end %}\nexisting.event_start = event.starting.nil? ? existing.event_start.in(timezone) : event.starting.not_nil!.in(timezone)\nif event.all_day\n existing.all_day = true\n existing.event_end = nil\nelse\n existing.all_day = false\n existing.event_end = event.ending.nil? ? existing.event_end.try(&.in(timezone)) : event.ending.not_nil!.in(timezone)\n if event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\n end\nend\nlogger.debug do\n \"updating event: #{existing.inspect}\"\nend\nupdated_event = cal_client.update_event(user_id: me.email, event: existing, calendar_id: existing.host)\n(Event.from_json(updated_event.to_json)).configure_times(timezone)\n"}},{"html_id":"my_schedule(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_schedule","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L52"},"def":{"name":"my_schedule","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nlogger.debug do\n \"requesting events for #{me.name} (#{me.email}) @ #{starting} -> #{ending}\"\nend\nevents = cal_client.list_events(me.email, period_start: starting, period_end: ending)\nevents = Array(Event).from_json(events.to_json)\nevents.each do |event|\n event.configure_times(timezone)\nend\nevents\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"search_staff_member(filter:String)-instance-method","name":"search_staff_member","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L75"},"def":{"name":"search_staff_member","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for staff member: #{filter}\"\nend\ncal_client = place_calendar_client\ncal_client.list_users(filter: filter)\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L334"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}},{"html_id":"update_attending_status(event_id:String,attendance:Attendance,reason:String|Nil=nil)-instance-method","name":"update_attending_status","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","args_html":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L224"},"def":{"name":"update_attending_status","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"updating attendance: #{attendance} #{reason} -> #{event_id}\"\nend\ncase attendance\nin .decline?\n cal_client.decline_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"declined\"\nin .attend?\n cal_client.accept_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"attending\"\nend\n"}}],"types":[{"html_id":"drivers/Place/Schedule/AccessToken","path":"Place/Schedule/AccessToken.html","kind":"struct","full_name":"Place::Schedule::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(token:String,expires:Int64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"args_string":"(token : String, expires : Int64 | Nil)","args_html":"(token : String, expires : Int64 | Nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, expires)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone, @expires.clone)"}},{"html_id":"copy_with(token_token=@token,expires_expires=@expires)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"args_string":"(token _token = @token, expires _expires = @expires)","args_html":"(token _token = @token, expires _expires = @expires)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"visibility":"Public","body":"self.class.new(_token, _expires)"}},{"html_id":"expires:Int64|Nil-instance-method","name":"expires","abstract":false,"def":{"name":"expires","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Place/Schedule/Attendance","path":"Place/Schedule/Attendance.html","kind":"enum","full_name":"Place::Schedule::Attendance","name":"Attendance","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attend","name":"Attend","value":"0"},{"id":"Decline","name":"Decline","value":"1"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"instance_methods":[{"html_id":"attend?-instance-method","name":"attend?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L219"},"def":{"name":"attend?","visibility":"Public","body":"self == Attend"}},{"html_id":"decline?-instance-method","name":"decline?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L220"},"def":{"name":"decline?","visibility":"Public","body":"self == Decline"}}]},{"html_id":"drivers/Place/Schedule/CreateEvent","path":"Place/Schedule/CreateEvent.html","kind":"struct","full_name":"Place::Schedule::CreateEvent","name":"CreateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L256"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L257"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L265"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L262"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L264"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L261"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L260"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L263"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L259"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/Event","path":"Place/Schedule/Event.html","kind":"class","full_name":"Place::Schedule::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L281"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L282"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L290"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L291"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"configure_times(tz:Time::Location)-instance-method","name":"configure_times","abstract":false,"args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"args_string":"(tz : Time::Location)","args_html":"(tz : Time::Location)","location":{"filename":"src/place/llm/schedule.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L311"},"def":{"name":"configure_times","args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"visibility":"Public","body":"@time_zone = tz\n@starting = event_start.in(tz)\n@ending = event_end.try(&.in(tz))\nself\n"}},{"html_id":"creator:String|Nil-instance-method","name":"creator","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L289"},"def":{"name":"creator","return_type":"String | ::Nil","visibility":"Public","body":"@creator"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L302"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"event_end:Time|Nil-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L299"},"def":{"name":"event_end","return_type":"Time | ::Nil","visibility":"Public","body":"@event_end"}},{"html_id":"event_start:Time-instance-method","name":"event_start","doc":"We convert unix time into something more readable for a human or AI","summary":"

We convert unix time into something more readable for a human or AI

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L296"},"def":{"name":"event_start","return_type":"Time","visibility":"Public","body":"@event_start"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L288"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L284"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L286"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"online_meeting_url:String|Nil-instance-method","name":"online_meeting_url","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L292"},"def":{"name":"online_meeting_url","return_type":"String | ::Nil","visibility":"Public","body":"@online_meeting_url"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":301,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L301"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L287"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"time_zone:Time::Location-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n ::raise(::NilAssertionError.new(\"Place::Schedule::Event#time_zone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_zone?:Time::Location|Nil-instance-method","name":"time_zone?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@time_zone"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","doc":"these are used to configure the JSON times correctly","summary":"

these are used to configure the JSON times correctly

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L306"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L285"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/UpdateEvent","path":"Place/Schedule/UpdateEvent.html","kind":"struct","full_name":"Place::Schedule::UpdateEvent","name":"UpdateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L268"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L269"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool|Nil-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L278"},"def":{"name":"all_day","return_type":"Bool | ::Nil","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)|Nil-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L275"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee) | ::Nil","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L277"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L274"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L271"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L273"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L276"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L272"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/User","path":"Place/Schedule/User.html","kind":"struct","full_name":"Place::Schedule::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L319"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L320"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L323"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L322"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Schedule/Zone","path":"Place/Schedule/Zone.html","kind":"struct","full_name":"Place::Schedule::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L338"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L339"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L343"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L341"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L342"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L349"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L346"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/SensorShutdown","path":"Place/SensorShutdown.html","kind":"class","full_name":"Place::SensorShutdown","name":"SensorShutdown","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/sensor_shutdown.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"event_in_progress?:Bool-instance-method","name":"event_in_progress?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L18"},"def":{"name":"event_in_progress?","return_type":"Bool","visibility":"Public","body":"@event_in_progress"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"timeout_ad_hoc = (setting?(UInt32, :timeout_ad_hoc)) || 15_u32.minutes\ntimeout_booked = (setting?(UInt32, :timeout_booked)) || 30_u32.minutes\nsubscriptions.clear\nbookings.subscribe(:status) do |_sub, status|\n update_status(status != \"\\\"free\\\"\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nav_control.subscribe(:active) do |_sub, active|\n update_room_power_state(active == \"true\")\nend\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L19"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"room_powered_on?:Bool-instance-method","name":"room_powered_on?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L21"},"def":{"name":"room_powered_on?","return_type":"Bool","visibility":"Public","body":"@room_powered_on"}},{"html_id":"sensor_stale?:Bool-instance-method","name":"sensor_stale?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L20"},"def":{"name":"sensor_stale?","return_type":"Bool","visibility":"Public","body":"@sensor_stale"}},{"html_id":"timer_active?:Bool-instance-method","name":"timer_active?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L23"},"def":{"name":"timer_active?","return_type":"Bool","visibility":"Public","body":"@timer_active"}}]},{"html_id":"drivers/Place/Smtp","path":"Place/Smtp.html","kind":"class","full_name":"Place::Smtp","name":"Smtp","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/smtp.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/smtp.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L89"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/smtp.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L85"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/smtp.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"defaults = URI.parse(config.uri.not_nil!)\ntls_mode = if scheme = defaults.scheme\n scheme.ends_with?('s') ? EMail::Client::TLSMode::SMTPS : EMail::Client::TLSMode::STARTTLS\nelse\n EMail::Client::TLSMode::STARTTLS\nend\nport = defaults.port || 587\nhost = defaults.host || \"smtp.host\"\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@sender = (setting?(String, :sender)) || \"support@place.tech\"\n@host = (setting?(String, :host)) || host\n@port = (setting?(Int32, :port)) || port\n@tls_mode = (setting?(EMail::Client::TLSMode, :tls_mode)) || tls_mode\n@ssl_verify_ignore = (setting?(Bool, :ssl_verify_ignore)) || false\n@smtp_client = new_smtp_client\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/smtp.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L93"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"if to.is_a?(Array)\nelse\n to = {to}\nend\nif from.nil? || from.is_a?(Array)\nelse\n from = {from}\nend\nif cc.nil? || cc.is_a?(Array)\nelse\n cc = {cc}\nend\nif bcc.nil? || bcc.is_a?(Array)\nelse\n bcc = {bcc}\nend\nif reply_to.nil? || reply_to.is_a?(Array)\nelse\n reply_to = {reply_to}\nend\nmessage = EMail::Message.new\nmessage.subject(subject)\nmessage.sender(@sender)\nif from.nil? || from.empty?\n message.from(@sender)\nelse\n from.each do |_from|\n message.from(_from)\n end\nend\nto.each do |_to|\n message.to(_to)\nend\nbcc.each do |_bcc|\n message.bcc(_bcc)\nend\ncc.each do |_cc|\n message.cc(_cc)\nend\nif reply_to\n reply_to.each do |_reply|\n message.reply_to(_reply)\n end\nend\nif message_plaintext.presence.nil?\nelse\n message.message(message_plaintext.as(String))\nend\nif message_html.presence.nil?\nelse\n message.message_html(message_html.as(String))\nend\n{resource_attachments, attachments}.map(&.each).each.flatten.each do |attachment|\n attachment_io = IO::Memory.new\n Base64.decode(attachment[:content], attachment_io)\n attachment_io.rewind\n case attachment\n in Attachment\n message.attach(io: attachment_io, file_name: attachment[:file_name])\n in ResourceAttachment\n message.message_resource(io: attachment_io, file_name: attachment[:file_name], cid: attachment[:content_id])\n end\nend\nsent = false\n@send_lock.synchronize do\n smtp_client.start do\n sent = send(message)\n end\nend\nsent\n"}}]},{"html_id":"drivers/Place/SpecHelper","path":"Place/SpecHelper.html","kind":"class","full_name":"Place::SpecHelper","name":"SpecHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/spec_helper.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/spec_helper.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"implemented_in_driver-instance-method","name":"implemented_in_driver","doc":"This method will be exposed on the module","summary":"

This method will be exposed on the module

","abstract":false,"location":{"filename":"src/place/spec_helper.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/spec_helper.cr#L5"},"def":{"name":"implemented_in_driver","visibility":"Public","body":"\"woot!\""}}]},{"html_id":"drivers/Place/StaffAPI","path":"Place/StaffAPI.html","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve(booking_id:String|Int64)-instance-method","name":"approve","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L647"},"def":{"name":"approve","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"approving booking #{booking_id}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/approve\", headers: authentication)\nif response.success?\nelse\n raise(\"issue approving booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_check_in(booking_id:String|Int64,state:Bool=true,utm_source:String|Nil=nil)-instance-method","name":"booking_check_in","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L663"},"def":{"name":"booking_check_in","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"checking in booking #{booking_id} to: #{state}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n form.add(\"state\", state.to_s)\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/check_in?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue checking in booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_delete(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"booking_delete","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L676"},"def":{"name":"booking_delete","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = delete(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_state(booking_id:String|Int64,state:String)-instance-method","name":"booking_state","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(booking_id : String | Int64, state : String)","args_html":"(booking_id : String | Int64, state : String)","location":{"filename":"src/place/staff_api.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L655"},"def":{"name":"booking_state","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id} state to: #{state}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/update_state?state=#{state}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"chat_members(session_id:String):Array(String)-instance-method","name":"chat_members","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String) : Array(String)","args_html":"(session_id : String) : Array(String)","location":{"filename":"src/place/staff_api.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L289"},"def":{"name":"chat_members","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"SimpleRetry.try_to(max_attempts: 3, base_interval: 1.second, max_interval: 5.seconds) do\n response = get(\"/api/engine/v2/webrtc/members/#{session_id}\", headers: authentication)\n if response.success?\n else\n raise(\"webrtc service possibly unavailable\")\n end\n Array(String).from_json(response.not_nil!.body)\nend"}},{"html_id":"create_booking(booking_type:String,asset_id:String,user_id:String,user_email:String,user_name:String,zones:Array(String),booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,checked_in:Bool=false,approved:Bool|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,time_zone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,utm_source:String|Nil=nil,limit_override:Int64|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,attendees:Array(PlaceCalendar::Event::Attendee)|Nil=nil)-instance-method","name":"create_booking","doc":"===================================\nBOOKINGS ACTIONS\n===================================","summary":"

=================================== BOOKINGS ACTIONS ===================================

","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"args_string":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","args_html":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":531,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L531"},"def":{"name":"create_booking","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"visibility":"Public","body":"now = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nbooking_start || (booking_start = now.at_beginning_of_day.to_unix)\nbooking_end || (booking_end = now.at_end_of_day.to_unix)\nif checked_in\n checked_in_at = now.to_unix\nend\nlogger.debug do\n \"creating a #{booking_type} booking, starting #{booking_start}, asset #{asset_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\n if event_id.nil?\n else\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.nil?\n else\n form.add(\"ical_uid\", ical_uid.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"booking_type\" => booking_type, \"asset_id\" => asset_id, \"user_id\" => user_id, \"user_email\" => user_email, \"user_name\" => user_name, \"zones\" => zones, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"approved\" => approved, \"title\" => title, \"description\" => description, \"timezone\" => time_zone, \"extension_data\" => extension_data || (JSON.parse(\"{}\")), \"attendees\" => attendees}.compact.to_json)\nif response.success?\nelse\n raise(\"issue creating #{booking_type} booking, starting #{booking_start}, asset #{asset_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"create_event(event:PlaceCalendar::Event)-instance-method","name":"create_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L416"},"def":{"name":"create_event","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = post(\"/api/staff/v1/events\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"create_user(body_json:String)-instance-method","name":"create_user","abstract":false,"args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(body_json : String)","args_html":"(body_json : String)","location":{"filename":"src/place/staff_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L192"},"def":{"name":"create_user","args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/users\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to create user: #{response.status_code}\")\nend\nPlaceOS::Client::API::Models::User.from_json(response.body)\n"}},{"html_id":"delete_event(system_id:String,event_id:String)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(system_id : String, event_id : String)","args_html":"(system_id : String, event_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L423"},"def":{"name":"delete_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"response = delete(\"/api/staff/v1/events/#{event_id}?system_id=#{system_id}\", headers: authentication)\nif response.success? || (response.status_code == 404)\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"delete_user(id:String,force_removal:Bool=false):Nil-instance-method","name":"delete_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"args_string":"(id : String, force_removal : Bool = false) : Nil","args_html":"(id : String, force_removal : Bool = false) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L210"},"def":{"name":"delete_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = delete(\"/api/engine/v2/users/#{id}?force_removal=#{force_removal}\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to delete user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":761,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L761"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"getting booking #{booking_id}\"\nend\nresponse = get(\"/api/staff/v1/bookings/#{booking_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue getting booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_event(event_id:String,system_id:String|Nil=nil,calendar:String|Nil=nil)-instance-method","name":"get_event","doc":"gets an event from either the `system_id` or `calendar` if only one is provided\nif both are provided, it gets the event from `calendar` and the metadata from `system_id`\nNOTE:: the use of `calendar` will typically not work from a driver unless the X-API-Key\n has read access to it. From a driver perspective you should probably use a\n dedicated Calendar driver with application access and the query_metadata function\n below if metadata is required: `query_metadata(system_id: \"sys\", event_ref: [\"id\", \"uuid\"])`","summary":"

gets an event from either the system_id or calendar if only one is provided if both are provided, it gets the event from calendar and the metadata from system_id NOTE:: the use of calendar will typically not work from a driver unless the X-API-Key has read access to it.

","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"args_string":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","args_html":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L388"},"def":{"name":"get_event","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"visibility":"Public","body":"if calendar.presence || system_id.presence\nelse\n raise(ArgumentError.new(\"requires system_id or calendar param\"))\nend\nparams = URI::Params.build do |form|\n if calendar.presence\n form.add(\"calendar\", calendar.to_s)\n end\n if system_id.presence\n form.add(\"system_id\", system_id.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events/#{event_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"get_survey_invites(survey_id:Int64|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"get_survey_invites","abstract":false,"args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","args_html":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":772,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L772"},"def":{"name":"get_survey_invites","args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting survey_invites (survey #{survey_id}, sent #{sent})\"\nend\nparams = URI::Params.new\nif survey_id\n params[\"survey_id\"] = survey_id.to_s\nend\nif sent.nil?\nelse\n params[\"sent\"] = sent.to_s\nend\nresponse = get(\"/api/staff/v1/surveys/invitations\", params, headers: authentication)\nif response.success?\nelse\n raise(\"issue getting survey invitations (survey #{survey_id}, sent #{sent}): #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_system(id:String,complete:Bool=false)-instance-method","name":"get_system","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"args_string":"(id : String, complete : Bool = false)","args_html":"(id : String, complete : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L112"},"def":{"name":"get_system","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}?complete=#{complete}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for system id #{id}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing system #{id}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"guest_details(guest_id:String)-instance-method","name":"guest_details","doc":"===================================\nGuest details\n===================================","summary":"

=================================== Guest details ===================================

","abstract":false,"args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"args_string":"(guest_id : String)","args_html":"(guest_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L305"},"def":{"name":"guest_details","args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/guests/#{guest_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"kick_user(user_id:String,session_id:String,reason:String)-instance-method","name":"kick_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"args_string":"(user_id : String, session_id : String, reason : String)","args_html":"(user_id : String, session_id : String, reason : String)","location":{"filename":"src/place/staff_api.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L282"},"def":{"name":"kick_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/webrtc/kick/#{user_id}/#{session_id}\", headers: authentication, body: {reason: reason}.to_json)\nresponse.status_code\n"}},{"html_id":"lookup_authority_id(retry:Int32=0)-instance-method","name":"lookup_authority_id","abstract":false,"args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"args_string":"(retry : Int32 = 0)","args_html":"(retry : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L51"},"def":{"name":"lookup_authority_id","args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"visibility":"Public","body":"begin\n response = get(\"/auth/authority\")\n if response.success?\n else\n raise(\"unexpected response for /auth/authority: #{response.status_code}\\n#{response.body}\")\n end\n old_id = @authority_id\n @authority_id = (NamedTuple(id: String).from_json(response.body))[:id]\n if old_id == @authority_id\n else\n monitor_event_changes\n end\n @authority_id\nrescue error\n logger.warn(exception: error) do\n \"failed to lookup authority id\"\n end\n sleep(rand(3))\n retry = retry + 1\n if retry == 10\n return\n end\n spawn do\n lookup_authority_id(retry)\n end\nend"}},{"html_id":"merge_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"merge_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":502,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L502"},"def":{"name":"merge_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.merge(id, key, payload, description)"}},{"html_id":"metadata(id:String,key:String|Nil=nil)-instance-method","name":"metadata","doc":"===================================\nZONE METADATA\n===================================","summary":"

=================================== ZONE METADATA ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L488"},"def":{"name":"metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.fetch(id, key)"}},{"html_id":"metadata_children(id:String,key:String|Nil=nil)-instance-method","name":"metadata_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":492,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L492"},"def":{"name":"metadata_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.children(id, key)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = (setting(String, :api_key)) || \"\"\nif @api_key.presence\n @access_expires = 30.years.from_now\nend\n@place_domain = URI.parse(config.uri.not_nil!)\n@host_header = (setting?(String, :host_header)) || @place_domain.host.not_nil!\nif @api_key.presence\nelse\n return\nend\nif setting?(Bool, :disable_event_notify)\n return\nend\nschedule.clear\nschedule.every(1.hour + (rand(300)).seconds) do\n lookup_authority_id\nend\nschedule.in(1.second) do\n lookup_authority_id\nend\n"}},{"html_id":"patch_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"patch_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L429"},"def":{"name":"patch_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"push_event_status-instance-method","name":"push_event_status","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L103"},"def":{"name":"push_event_status","visibility":"Public","body":"{authority_id: @authority_id, monitoring: !!@event_monitoring, events: @notify_count, failures: @notify_fails}"}},{"html_id":"query_bookings(type:String|Nil=nil,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,zones:Array(String)=[]ofString,user:String|Nil=nil,email:String|Nil=nil,state:String|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,created_before:Int64|Nil=nil,created_after:Int64|Nil=nil,approved:Bool|Nil=nil,rejected:Bool|Nil=nil,checked_in:Bool|Nil=nil,include_checked_out:Bool|Nil=nil,extension_data:JSON::Any|Nil=nil)-instance-method","name":"query_bookings","doc":"===================================\nBOOKINGS QUERY\n===================================","summary":"

=================================== BOOKINGS QUERY ===================================

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","args_html":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L689"},"def":{"name":"query_bookings","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 30.minutes.from_now.to_unix)\nparams = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if type.presence\n form.add(\"type\", type.to_s)\n end\n if zones.empty?\n else\n form.add(\"zones\", zones.join(\",\"))\n end\n if user.presence\n form.add(\"user\", user.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n if state.presence\n form.add(\"state\", state.to_s)\n end\n if created_before\n form.add(\"created_before\", created_before.to_s)\n end\n if created_after\n form.add(\"created_after\", created_after.to_s)\n end\n if approved.nil?\n else\n form.add(\"approved\", approved.to_s)\n end\n if rejected.nil?\n else\n form.add(\"rejected\", rejected.to_s)\n end\n if checked_in.nil?\n else\n form.add(\"checked_in\", checked_in.to_s)\n end\n if event_id.presence\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if include_checked_out.nil?\n else\n form.add(\"include_checked_out\", include_checked_out.to_s)\n end\n if extension_data\n value = extension_data.as_h.map do |k, v|\n \"#{k}:#{v}\"\n end.join(\",\")\n form.add(\"extension_data\", \"{#{value}}\")\n end\nend\nlogger.debug do\n \"requesting staff/v1/bookings: #{params}\"\nend\nbookings = [] of JSON::Any\nnext_request = \"/api/staff/v1/bookings?#{params}\"\nloop do\n response = get(next_request, headers: authentication)\n if response.success?\n else\n raise(\"issue loading list of bookings (zones #{zones}): #{response.status_code}\")\n end\n links = LinkHeader.new(response)\n new_bookings = (JSON.parse(response.body)).as_a\n bookings.concat(new_bookings)\n last_req = next_request\n next_request = links[\"next\"]?\n if (next_request.nil? || new_bookings.empty?) || (last_req == next_request)\n break\n end\nend\nlogger.debug do\n \"bookings count: #{bookings.size}\"\nend\nbookings\n"}},{"html_id":"query_events(period_start:Int64,period_end:Int64,zones:Array(String)|Nil=nil,systems:Array(String)|Nil=nil,capacity:Int32|Nil=nil,features:String|Nil=nil,bookable:Bool|Nil=nil,include_cancelled:Bool|Nil=nil)-instance-method","name":"query_events","doc":"===================================\nCALENDAR EVENT ACTIONS (via staff api)\n===================================","summary":"

=================================== CALENDAR EVENT ACTIONS (via staff api) ===================================

","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L350"},"def":{"name":"query_events","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n if zones && !zones.empty?\n form.add(\"zone_ids\", zones.join(\",\"))\n end\n if systems && !systems.empty?\n form.add(\"system_ids\", systems.join(\",\"))\n end\n if capacity\n form.add(\"capacity\", capacity.to_s)\n end\n if features\n form.add(\"features\", features)\n end\n if !bookable.nil?\n form.add(\"bookable\", bookable.to_s)\n end\n if !include_cancelled.nil?\n form.add(\"include_cancelled\", include_cancelled.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_guests(period_start:Int64,period_end:Int64,zones:Array(String))-instance-method","name":"query_guests","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String))","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String))","location":{"filename":"src/place/staff_api.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L327"},"def":{"name":"query_guests","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n form.add(\"zone_ids\", zones.join(\",\"))\nend\nresponse = get(\"/api/staff/v1/guests?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_metadata(period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,field_name:String|Nil=nil,value:String|Nil=nil,system_id:String|Nil=nil,event_ref:Array(String)|Nil=nil)-instance-method","name":"query_metadata","doc":"Search for metadata that exists on events to obtain the event information.\nFor response details see `EventMetadata__Assigner` in the OpenAPI docs\nhttps://editor.swagger.io/?url=https://raw.githubusercontent.com/PlaceOS/staff-api/master/OPENAPI_DOC.yml","summary":"

Search for metadata that exists on events to obtain the event information.

","abstract":false,"args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"args_string":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","args_html":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L458"},"def":{"name":"query_metadata","args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if field_name.presence\n form.add(\"field_name\", field_name)\n end\n if value.presence\n form.add(\"value\", value)\n end\n if event_ref && !event_ref.empty?\n form.add(\"event_ref\", event_ref.join(\",\"))\n end\nend\nresponse = get(\"/api/staff/v1/events/extension_metadata/#{system_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_users(q:String|Nil=nil,limit:Int32=20,offset:Int32=0,authority_id:String|Nil=nil,include_deleted:Bool=false)-instance-method","name":"query_users","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","args_html":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L249"},"def":{"name":"query_users","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"visibility":"Public","body":"placeos_client.users.search(q: q, limit: limit, offset: offset, authority_id: authority_id, include_deleted: include_deleted)"}},{"html_id":"reject(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"reject","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L634"},"def":{"name":"reject","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"rejecting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/reject?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue rejecting booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"replace_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"replace_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L442"},"def":{"name":"replace_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = put(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"resource_token-instance-method","name":"resource_token","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L222"},"def":{"name":"resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"revive_user(id:String):Nil-instance-method","name":"revive_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L216"},"def":{"name":"revive_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{id}/revive\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to revive user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"signal(channel:String,payload:JSON::Any|Nil=nil)-instance-method","name":"signal","abstract":false,"args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"args_string":"(channel : String, payload : JSON::Any | Nil = nil)","args_html":"(channel : String, payload : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":800,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L800"},"def":{"name":"signal","args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"placeos_client.root.signal(channel, payload)"}},{"html_id":"staff_details(email:String)-instance-method","name":"staff_details","doc":"Staff details returns the information from AD","summary":"

Staff details returns the information from AD

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/staff_api.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L172"},"def":{"name":"staff_details","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/people/#{email}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for staff #{email}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing staff #{email}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"system_settings(id:String,key:String)-instance-method","name":"system_settings","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(id : String, key : String)","args_html":"(id : String, key : String)","location":{"filename":"src/place/staff_api.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L149"},"def":{"name":"system_settings","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}/settings\", headers: authentication)\nif response.success?\nelse\n raise(\"settings request failed for #{id}: #{response.status_code}\")\nend\nsetting = (Array(Setting).from_json(response.body)).select do |sub_setting|\n sub_setting.settings_string && (sub_setting.keys.includes?(key))\nend.last?\nif setting\nelse\n return nil\nend\n(YAML.parse(setting.settings_string.as(String)))[key]\n"}},{"html_id":"systems(q:String|Nil=nil,zone_id:String|Nil=nil,capacity:Int32|Nil=nil,bookable:Bool|Nil=nil,features:String|Nil=nil,limit:Int32=1000,offset:Int32=0)-instance-method","name":"systems","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","args_html":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L124"},"def":{"name":"systems","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"placeos_client.systems.search(q: q, limit: limit, offset: offset, zone_id: zone_id, capacity: capacity, bookable: bookable, features: features)"}},{"html_id":"systems_in_building(zone_id:String,ids_only:Bool=true)-instance-method","name":"systems_in_building","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"args_string":"(zone_id : String, ids_only : Bool = true)","args_html":"(zone_id : String, ids_only : Bool = true)","location":{"filename":"src/place/staff_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L159"},"def":{"name":"systems_in_building","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"visibility":"Public","body":"levels = zones(parent: zone_id, tags: [\"level\"])\nif ids_only\n hash = {} of String => Array(String)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id).map(&.id)\n end\nelse\n hash = {} of String => Array(::PlaceOS::Client::API::Models::System)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id)\n end\nend\nhash\n"}},{"html_id":"transfer_user(user_id:String,session_id:String,payload:JSON::Any)-instance-method","name":"transfer_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(user_id : String, session_id : String, payload : JSON::Any)","args_html":"(user_id : String, session_id : String, payload : JSON::Any)","location":{"filename":"src/place/staff_api.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L264"},"def":{"name":"transfer_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"status = 200\npayload_str = payload.to_json\nSimpleRetry.try_to(max_attempts: 5, base_interval: 1.second, max_interval: 10.seconds) do\n response = post(\"/api/engine/v2/webrtc/transfer/#{user_id}/#{session_id}\", headers: authentication, body: payload_str)\n status = response.status_code\n if response.success?\n else\n raise(\"client not yet connected\")\n end\nend\nstatus\n"}},{"html_id":"update_booking(booking_id:String|Int64,booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,asset_id:String|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,timezone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,approved:Bool|Nil=nil,checked_in:Bool|Nil=nil,limit_override:Int64|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"args_string":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","args_html":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":590,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L590"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id}\"\nend\ncase checked_in\nin true\n checked_in_at = Time.utc.to_unix\nin false\n checked_out_at = Time.utc.to_unix\nin nil\nend\nparams = URI::Params.build do |form|\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"checked_out_at\" => checked_out_at, \"asset_id\" => asset_id, \"title\" => title, \"description\" => description, \"timezone\" => timezone, \"extension_data\" => extension_data}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_event(system_id:String,event:PlaceCalendar::Event)-instance-method","name":"update_event","doc":"NOTE:: https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit#\nThe service account making this request needs delegated access and hence you can only edit\nevents associated with a resource calendar","summary":"

NOTE : https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit# The service account making this request needs delegated access and hence you can only edit events associated with a resource calendar

","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(system_id : String, event : PlaceCalendar::Event)","args_html":"(system_id : String, event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L409"},"def":{"name":"update_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = patch(\"/api/staff/v1/events/#{event.id}?system_id=#{system_id}\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"update_guest(id:String,body_json:String):Nil-instance-method","name":"update_guest","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L318"},"def":{"name":"update_guest","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/staff/v1/guests/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update guest #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"update_survey_invite(token:String,email:String|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"update_survey_invite","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","args_html":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":783,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L783"},"def":{"name":"update_survey_invite","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating survey invite #{token}\"\nend\nresponse = patch(\"/api/staff/v1/surveys/invitations/#{token}\", headers: authentication, body: {\"email\" => email, \"sent\" => sent}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating survey invite #{token}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"update_user(id:String,body_json:String):Nil-instance-method","name":"update_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L201"},"def":{"name":"update_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/engine/v2/users/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"user(id:String)-instance-method","name":"user","doc":"===================================\nUser details\n===================================","summary":"

=================================== User details ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/staff_api.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L187"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"placeos_client.users.fetch(id)"}},{"html_id":"user_resource_token-instance-method","name":"user_resource_token","doc":"NOTE:: this function requires \"users\" scope to be specified explicity for access","summary":"

NOTE : this function requires "users" scope to be specified explicity for access

","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L236"},"def":{"name":"user_resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{invoked_by_user_id}/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"write_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"write_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L497"},"def":{"name":"write_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.update(id, key, payload, description)"}},{"html_id":"zone(zone_id:String)-instance-method","name":"zone","doc":"===================================\nZONE INFORMATION\n===================================","summary":"

=================================== ZONE INFORMATION ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":509,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L509"},"def":{"name":"zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"placeos_client.zones.fetch(zone_id)"}},{"html_id":"zones(q:String|Nil=nil,limit:Int32=1000,offset:Int32=0,parent:String|Nil=nil,tags:Array(String)|String|Nil=nil)-instance-method","name":"zones","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","args_html":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":513,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L513"},"def":{"name":"zones","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"visibility":"Public","body":"placeos_client.zones.search(q: q, limit: limit, offset: offset, parent_id: parent, tags: tags)"}}],"types":[{"html_id":"drivers/Place/StaffAPI/PushEvent","path":"Place/StaffAPI/PushEvent.html","kind":"struct","full_name":"Place::StaffAPI::PushEvent","name":"PushEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change:String-instance-method","name":"change","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L80"},"def":{"name":"change","return_type":"String","visibility":"Public","body":"@change"}},{"html_id":"event:JSON::Any|Nil-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L82"},"def":{"name":"event","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@event"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L79"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L81"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Place/StaffAPI/Setting","path":"Place/StaffAPI/Setting.html","kind":"struct","full_name":"Place::StaffAPI::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(keys:Array(String),settings_string:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"args_string":"(keys : Array(String), settings_string : String | Nil)","args_html":"(keys : Array(String), settings_string : String | Nil)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"new","args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keys, settings_string)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L145"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@keys.clone, @settings_string.clone)"}},{"html_id":"copy_with(keys_keys=@keys,settings_string_settings_string=@settings_string)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"args_string":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","args_html":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"copy_with","args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"visibility":"Public","body":"self.class.new(_keys, _settings_string)"}},{"html_id":"keys:Array(String)-instance-method","name":"keys","abstract":false,"def":{"name":"keys","return_type":"Array(String)","visibility":"Public","body":"@keys"}},{"html_id":"settings_string:String|Nil-instance-method","name":"settings_string","abstract":false,"def":{"name":"settings_string","return_type":"String | ::Nil","visibility":"Public","body":"@settings_string"}}]}]},{"html_id":"drivers/Place/SurveyMailer","path":"Place/SurveyMailer.html","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L20"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@send_invites = (setting?(String, :send_invites)).presence\n@email_template = (setting?(String, :email_template)) || \"survey\"\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nif invites = @send_invites\n schedule.cron(invites, @time_zone) do\n send_survey_emails\n end\nend\n"}},{"html_id":"send_survey_emails-instance-method","name":"send_survey_emails","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L61"},"def":{"name":"send_survey_emails","visibility":"Public","body":"invites = Array(SurveyInvite).from_json(staff_api.get_survey_invites(sent: false).get.to_json)\nsent_invites : Hash(String, Array(Int64)) = {} of String => Array(Int64)\ninvites.each do |invite|\n if invite.sent\n next\n end\n begin\n if !(sent_surveys = sent_invites[invite.email]?) || !(sent_surveys.includes?(invite.survey_id))\n __temp_953 = invite.email\n sent_invites[__temp_953]? || (sent_invites[__temp_953] = [] of Int64)\n sent_invites[invite.email] << invite.survey_id\n mailer.send_template(to: invite.email, template: {@email_template, \"invite\"}, args: {email: invite.email, token: invite.token, survey_id: invite.survey_id})\n end\n staff_api.update_survey_invite(invite.token, sent: true)\n rescue error\n logger.warn(exception: error) do\n \"failed to send survey email to #{invite.email}\"\n end\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L45"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"[TemplateFields.new(trigger: {@email_template, \"invite\"}, name: \"Survey invite\", description: \"Email invitation sent to participants to complete a survey\", fields: [{name: \"email\", description: \"Email address of the survey recipient\"}, {name: \"token\", description: \"Unique authentication token for accessing the survey\"}, {name: \"survey_id\", description: \"Unique identifier of the survey to be completed\"}])]"}}],"types":[{"html_id":"drivers/Place/SurveyMailer/SurveyInvite","path":"Place/SurveyMailer/SurveyInvite.html","kind":"struct","full_name":"Place::SurveyMailer::SurveyInvite","name":"SurveyInvite","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/SurveyMailer","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/survey_mailer.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L95"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L95"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L92"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L92"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sent:Bool|Nil-instance-method","name":"sent","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L96"},"def":{"name":"sent","return_type":"Bool | ::Nil","visibility":"Public","body":"@sent"}},{"html_id":"sent=(sent:Bool|Nil)-instance-method","name":"sent=","abstract":false,"args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(sent : Bool | Nil)","args_html":"(sent : Bool | Nil)","location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L96"},"def":{"name":"sent=","args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@sent = sent"}},{"html_id":"survey_id:Int64-instance-method","name":"survey_id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id","return_type":"Int64","visibility":"Public","body":"@survey_id"}},{"html_id":"survey_id=(survey_id:Int64)-instance-method","name":"survey_id=","abstract":false,"args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"args_string":"(survey_id : Int64)","args_html":"(survey_id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id=","args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"visibility":"Public","body":"@survey_id = survey_id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L94"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L94"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]},{"html_id":"drivers/Place/Tab","path":"Place/Tab.html","kind":"class","full_name":"Place::Tab","name":"Tab","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/tab.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(icon:String,name:String,inputs:Array(String),help:Nil|String=nil,controls:Nil|String=nil,merge_on_join:Bool|Nil=nil,presentation_source:Nil|String=nil,json_unmapped:Hash(String,JSON::Any)=Hash(String,JSON::Any).new)-class-method","name":"new","abstract":false,"args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","args_html":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","location":{"filename":"src/place/meet/tab.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L7"},"def":{"name":"new","args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(icon, name, inputs, help, controls, merge_on_join, presentation_source, json_unmapped)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/tab.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone:Tab-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L23"},"def":{"name":"clone","return_type":"Tab","visibility":"Public","body":"Tab.new(@icon, @name, inputs.dup, @help, @controls, @merge_on_join, @presentation_source, @json_unmapped.dup)"}},{"html_id":"controls:String|Nil-instance-method","name":"controls","doc":"such as: vidconf-controls","summary":"

such as: vidconf-controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L17"},"def":{"name":"controls","return_type":"String | ::Nil","visibility":"Public","body":"@controls"}},{"html_id":"help:String|Nil-instance-method","name":"help","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L14"},"def":{"name":"help","return_type":"String | ::Nil","visibility":"Public","body":"@help"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L10"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"inputs:Array(String)-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L12"},"def":{"name":"inputs","return_type":"Array(String)","visibility":"Public","body":"@inputs"}},{"html_id":"merge(tab:Tab):Tab-instance-method","name":"merge","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L27"},"def":{"name":"merge","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"input = (inputs.dup.concat(tab.inputs)).uniq!\nnew_unmapped = tab.json_unmapped.merge(json_unmapped)\nTab.new(@icon, @name, input, @help, @controls, @merge_on_join, @presentation_source, new_unmapped)\n"}},{"html_id":"merge!(tab:Tab):Tab-instance-method","name":"merge!","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L33"},"def":{"name":"merge!","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"@json_unmapped.merge!(tab.json_unmapped)\n(@inputs.concat(tab.inputs)).uniq!\nself\n"}},{"html_id":"merge_on_join:Bool|Nil-instance-method","name":"merge_on_join","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L18"},"def":{"name":"merge_on_join","return_type":"Bool | ::Nil","visibility":"Public","body":"@merge_on_join"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"presentation_source:String|Nil-instance-method","name":"presentation_source","doc":"For the VC controls","summary":"

For the VC controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L21"},"def":{"name":"presentation_source","return_type":"String | ::Nil","visibility":"Public","body":"@presentation_source"}}]},{"html_id":"drivers/Place/TemplateMailer","path":"Place/TemplateMailer.html","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SEPERATOR","name":"SEPERATOR","value":"\".\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone_id:String-instance-method","name":"building_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L33"},"def":{"name":"building_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_zone_id).nil?\n @building_zone_id = ((get_local_zone_id(building_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"building_zone_ids:Array(String)-instance-method","name":"building_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L29"},"def":{"name":"building_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @building_zone_ids).nil?\n @building_zone_ids = ((get_zone_ids?(\"building\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"clear_template_cache(zone_id:String|Nil=nil)-instance-method","name":"clear_template_cache","abstract":false,"args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil = nil)","args_html":"(zone_id : String | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L177"},"def":{"name":"clear_template_cache","args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if zone_id && !zone_id.blank?\n @template_cache.delete(zone_id)\nelse\n @template_cache = TemplateCache.new\nend"}},{"html_id":"fetch_templates(zone_id:String|Nil):Array(Template)-instance-method","name":"fetch_templates","doc":"fetch templates from cache or metadata","summary":"

fetch templates from cache or metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil) : Array(Template)","args_html":"(zone_id : String | Nil) : Array(Template)","location":{"filename":"src/place/template_mailer.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L161"},"def":{"name":"fetch_templates","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Template)","visibility":"Public","body":"if zone_id\nelse\n return [] of Template\nend\nif (cache = @template_cache[zone_id]?) && cache[0] > Time.utc.to_unix\n cache[1]\nelse\n templates = (get_templates?(zone_id)) || ([] of Template)\n @template_cache[zone_id] = {Time.utc.to_unix + @cache_timeout, templates}\n templates\nend\n"}},{"html_id":"find_template?(template:String,zone_ids:Array(String)):Template|Nil-instance-method","name":"find_template?","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(template : String, zone_ids : Array(String)) : Template | Nil","args_html":"(template : String, zone_ids : Array(String)) : Template | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L194"},"def":{"name":"find_template?","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"Template | ::Nil","visibility":"Public","body":"org_id = (zone_ids & org_zone_ids)[0]?\nregion_id = (zone_ids & region_zone_ids)[0]?\nbuilding_id = (zone_ids & building_zone_ids)[0]?\nlevel_id = (zone_ids & level_zone_ids)[0]?\norg_templates = fetch_templates(org_id)\nregion_templates = fetch_templates(region_id)\nbuilding_templates = fetch_templates(building_id)\nlevel_templates = fetch_templates(level_id)\n(((level_templates.find do |t|\n t[\"trigger\"] == template\nend || building_templates.find do |t|\n t[\"trigger\"] == template\nend) || region_templates.find do |t|\n t[\"trigger\"] == template\nend) || org_templates.find do |t|\n t[\"trigger\"] == template\nend) || nil\n"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/template_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L218"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_png_qrcode(text, size)).get.as_s"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/template_mailer.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L214"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_svg_qrcode(text)).get.as_s"}},{"html_id":"get_local_zone_id(zone_ids:Array(String)):String|Nil-instance-method","name":"get_local_zone_id","abstract":false,"args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(zone_ids : Array(String)) : String | Nil","args_html":"(zone_ids : Array(String)) : String | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L88"},"def":{"name":"get_local_zone_id","args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"String | ::Nil","visibility":"Public","body":"begin\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine local zone id\"\n end\n nil\nend"}},{"html_id":"get_template_fields?(zone_id:String):Hash(String,MetadataTemplateFields)|Nil-instance-method","name":"get_template_fields?","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L95"},"def":{"name":"get_template_fields?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_template_fields\")).get[\"email_template_fields\"].to_json)\n Hash(String, MetadataTemplateFields).from_json(metadata.details.to_json)\nrescue error\n logger.warn(exception: error) do\n \"unable to get email template fields from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_templates?(zone_id:String):Array(Template)|Nil-instance-method","name":"get_templates?","doc":"get templates from metadata","summary":"

get templates from metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Array(Template) | Nil","args_html":"(zone_id : String) : Array(Template) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L186"},"def":{"name":"get_templates?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Array(Template) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_templates\")).get[\"email_templates\"].to_json)\n metadata.details.as_a.map do |template|\n Template.from_json(template.to_json)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to get email templates from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_zone_ids?(tag:String):Array(String)|Nil-instance-method","name":"get_zone_ids?","abstract":false,"args":[{"name":"tag","external_name":"tag","restriction":"String"}],"args_string":"(tag : String) : Array(String) | Nil","args_html":"(tag : String) : Array(String) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L81"},"def":{"name":"get_zone_ids?","args":[{"name":"tag","external_name":"tag","restriction":"String"}],"return_type":"Array(String) | ::Nil","visibility":"Public","body":"begin\n staff_api.zones(tags: tag).get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine #{tag} zone ids\"\n end\n nil\nend"}},{"html_id":"level_zone_ids:Array(String)-instance-method","name":"level_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L30"},"def":{"name":"level_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @level_zone_ids).nil?\n @level_zone_ids = ((get_zone_ids?(\"level\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[1]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@org_zone_ids = nil\n@region_zone_ids = nil\n@building_zone_ids = nil\n@level_zone_ids = nil\n@org_zone_id = nil\n@building_zone_id = nil\n@cache_timeout = (setting?(Int64, :cache_timeout)) || 300_i64\n@keep_if_not_seen = (setting?(Int64, :keep_if_not_seen)) || 6_i64\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@update_schedule = (setting?(String, :update_schedule)).presence\nschedule.clear\nif update_schedule = @update_schedule\n schedule.cron(update_schedule, @timezone) do\n update_template_fields(org_zone_id)\n end\nend\nupdate_template_fields(org_zone_id)\n"}},{"html_id":"org_zone_id:String-instance-method","name":"org_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L32"},"def":{"name":"org_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_zone_id).nil?\n @org_zone_id = ((get_local_zone_id(org_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"org_zone_ids:Array(String)-instance-method","name":"org_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L27"},"def":{"name":"org_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @org_zone_ids).nil?\n @org_zone_ids = ((get_zone_ids?(\"org\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"region_zone_ids:Array(String)-instance-method","name":"region_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L28"},"def":{"name":"region_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @region_zone_ids).nil?\n @region_zone_ids = ((get_zone_ids?(\"region\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L222"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"mailer.send_mail(to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc, from, reply_to)"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L237"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"zone_ids = if (zones = args[\"zone_ids\"]?) && zones.is_a?(Array(String))\n zones\nelse\n [org_zone_id, building_zone_id]\nend\nmetadata_template = find_template?(template.join(SEPERATOR), zone_ids)\nif metadata_template\n subject = build_template(metadata_template[\"subject\"].to_s, args)\n text = (build_template(metadata_template[\"text\"]?.try(&.to_s), args)) || \"\"\n html = (build_template(metadata_template[\"html\"]?.try(&.to_s), args)) || \"\"\n if (from_template = metadata_template[\"from\"]?) && from_template.to_s.presence\n from = metadata_template[\"from\"].to_s\n end\n if (reply_to_template = metadata_template[\"reply_to\"]?) && reply_to_template.to_s.presence\n reply_to = metadata_template[\"reply_to\"].to_s\n end\n mailer.send_mail(to, subject, text, html, resource_attachments, attachments, cc, bcc, from, reply_to)\nelse\n logger.info do\n \"unable to find template #{template.join(SEPERATOR)} from zones #{zone_ids} metadata, forwarding to Mailer_2\"\n end\n mailer.send_template(to, template, args, resource_attachments, attachments, cc, bcc, from, reply_to)\nend\n"}},{"html_id":"sticky_template_fields(zone_id:String):Hash(String,MetadataTemplateFields)-instance-method","name":"sticky_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields)","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields)","location":{"filename":"src/place/template_mailer.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L103"},"def":{"name":"sticky_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields)","visibility":"Public","body":"if @keep_if_not_seen == 0\n return Hash(String, MetadataTemplateFields).new\nend\ncurrent_fields = (get_template_fields?(zone_id)) || Hash(String, MetadataTemplateFields).new\nif current_fields.empty?\n return current_fields\nend\nif @keep_if_not_seen == -1\n return current_fields\nend\nsticky_fields = Hash(String, MetadataTemplateFields).new\ncurrent_fields.keys.each do |key|\n @not_seen_times[key] = @not_seen_times[key]? ? @not_seen_times[key] + 1 : 1_i64\n if @not_seen_times[key] <= @keep_if_not_seen\n sticky_fields[key] = current_fields[key]\n end\nend\nsticky_fields\n"}},{"html_id":"template_cache:Hash(String,{Int64,Array(Hash(String,Int64|String))})-instance-method","name":"template_cache","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L173"},"def":{"name":"template_cache","visibility":"Public","body":"@template_cache"}},{"html_id":"update_template_fields(zone_id:String)-instance-method","name":"update_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L126"},"def":{"name":"update_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"template_fields : Hash(String, MetadataTemplateFields) = sticky_template_fields(zone_id)\n(system.implementing(Interface::MailerTemplates)).each do |driver|\n begin\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n rescue error\n logger.warn(exception: error) do\n \"unable to get template fields from module #{driver.module_id}\"\n end\n next\n end\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n driver_template_fields.each do |field_list|\n template_fields[\"#{field_list[:trigger].join(SEPERATOR)}\"] = MetadataTemplateFields.new(module_name: driver.module_name, name: field_list[:name], description: field_list[:description], fields: field_list[:fields])\n end\nend\ntemplate_fields.keys.each do |key|\n @not_seen_times[key] = 0_i64\nend\nself[:template_fields] = template_fields\nif template_fields.empty?\nelse\n staff_api.write_metadata(id: zone_id, key: \"email_template_fields\", payload: template_fields, description: \"Available fields for use in email templates\").get\nend\n"}}],"types":[{"html_id":"drivers/Place/TemplateMailer/Metadata","path":"Place/TemplateMailer/Metadata.html","kind":"struct","full_name":"Place::TemplateMailer::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L275"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L276"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L279"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L279"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"details:JSON::Any-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L280"},"def":{"name":"details","return_type":"JSON::Any","visibility":"Public","body":"@details"}},{"html_id":"details=(details:JSON::Any)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L280"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"@details = details"}},{"html_id":"editors:Set(String)-instance-method","name":"editors","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L283"},"def":{"name":"editors","return_type":"Set(String)","visibility":"Public","body":"@editors"}},{"html_id":"editors=(editors:Set(String))-instance-method","name":"editors=","abstract":false,"args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"args_string":"(editors : Set(String))","args_html":"(editors : Set(String))","location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L283"},"def":{"name":"editors=","args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"visibility":"Public","body":"@editors = editors"}},{"html_id":"modified_by_id:String|Nil-instance-method","name":"modified_by_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@modified_by_id"}},{"html_id":"modified_by_id=(modified_by_id:String|Nil)-instance-method","name":"modified_by_id=","abstract":false,"args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"args_string":"(modified_by_id : String | Nil)","args_html":"(modified_by_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id=","args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@modified_by_id = modified_by_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L278"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L278"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id","return_type":"String","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"args_string":"(parent_id : String)","args_html":"(parent_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"schema_id:String|Nil-instance-method","name":"schema_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id","return_type":"String | ::Nil","visibility":"Public","body":"@schema_id"}},{"html_id":"schema_id=(schema_id:String|Nil)-instance-method","name":"schema_id=","abstract":false,"args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"args_string":"(schema_id : String | Nil)","args_html":"(schema_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id=","args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@schema_id = schema_id"}}]},{"html_id":"drivers/Place/TemplateMailer/MetadataTemplateFields","path":"Place/TemplateMailer/MetadataTemplateFields.html","kind":"struct","full_name":"Place::TemplateMailer::MetadataTemplateFields","name":"MetadataTemplateFields","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L287"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(module_name:String,name:String,description:String|Nil=nil,fields:Array(NamedTuple(name:String,description:String))=[]ofNamedTuple(name:String,description:String))-class-method","name":"new","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","args_html":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","location":{"filename":"src/place/template_mailer.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L295"},"def":{"name":"new","args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_name, name, description, fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L288"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L292"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L292"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"fields:Array(NamedTuple(name:String,description:String))-instance-method","name":"fields","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L293"},"def":{"name":"fields","return_type":"Array(NamedTuple(name: String, description: String))","visibility":"Public","body":"@fields"}},{"html_id":"fields=(fields:Array(NamedTuple(name:String,description:String)))-instance-method","name":"fields=","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(fields : Array(NamedTuple(name: String, description: String)))","args_html":"(fields : Array(NamedTuple(name: String, description: String)))","location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L293"},"def":{"name":"fields=","args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"@fields = fields"}},{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L290"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"module_name=(module_name:String)-instance-method","name":"module_name=","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"args_string":"(module_name : String)","args_html":"(module_name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L290"},"def":{"name":"module_name=","args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"visibility":"Public","body":"@module_name = module_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L291"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L291"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/TemplateMailer/Template","path":"Place/TemplateMailer/Template.html","kind":"alias","full_name":"Place::TemplateMailer::Template","name":"Template","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Int64 | String)","aliased_html":"Hash(String, Int64 | String)","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}},{"html_id":"drivers/Place/TemplateMailer/TemplateCache","path":"Place/TemplateMailer/TemplateCache.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateCache","name":"TemplateCache","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L273"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int64, Array(Hash(String, Int64 | String))))","aliased_html":"Hash(String, {Int64, Array(Hash(String, Int64 | String))})","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"doc":" zone_id, timeout, templates","summary":"

zone_id, timeout, templates

"},{"html_id":"drivers/Place/TemplateMailer/TemplateFields","path":"Place/TemplateMailer/TemplateFields.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateFields","name":"TemplateFields","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(trigger: Tuple(String, String), name: String, description: String | Nil, fields: Array(NamedTuple(name: String, description: String)))","aliased_html":"{trigger: {String, String}, name: String, description: String?, fields: Array({name: String, description: String})}","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}}]},{"html_id":"drivers/Place/TODOs","path":"Place/TODOs.html","kind":"class","full_name":"Place::TODOs","name":"TODOs","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/todo_list.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_task(description:String)-instance-method","name":"add_task","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/llm/todo_list.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L27"},"def":{"name":"add_task","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"task = {complete: false, task: description}\n@todos << task\ntask\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L17"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"\"manages the list of tasks a user needs to complete throughout the day\""}},{"html_id":"complete_task(index:Int32)-instance-method","name":"complete_task","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32)","args_html":"(index : Int32)","location":{"filename":"src/place/llm/todo_list.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L34"},"def":{"name":"complete_task","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"task = @todos[index]\n@todos[index] = {complete: true, task: task[:task]}\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{list_tasks: \"returns the list of tasks and their current status\", add_task: \"adds a new task to the list\", complete_task: \"marks a task as completed\"}"}},{"html_id":"list_tasks:Array({complete:Bool,task:String})-instance-method","name":"list_tasks","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L22"},"def":{"name":"list_tasks","visibility":"Public","body":"@todos"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}}]},{"html_id":"drivers/Place/TransportAdaptor","path":"Place/TransportAdaptor.html","kind":"class","full_name":"Place::TransportAdaptor","name":"TransportAdaptor","abstract":false,"superclass":{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},"ancestors":[{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(driver:PlaceOS::Driver::Transport,queue:PlaceOS::Driver::Queue)-class-method","name":"new","abstract":false,"args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"args_string":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","args_html":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L4"},"def":{"name":"new","args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(driver, queue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"close!:Nil-instance-method","name":"close!","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L11"},"def":{"name":"close!","return_type":"Nil","visibility":"Public","body":"@driver.disconnect"}},{"html_id":"closed?:Bool-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L15"},"def":{"name":"closed?","return_type":"Bool","visibility":"Public","body":"!@queue.online"}},{"html_id":"process(data:Bytes)-instance-method","name":"process","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L23"},"def":{"name":"process","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"(@tokenizer.extract(data)).each do |bytes|\n spawn do\n @on_message.try(&.call(bytes))\n end\nend"}},{"html_id":"send(message):Nil-instance-method","name":"send","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message) : Nil","args_html":"(message) : Nil","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L19"},"def":{"name":"send","args":[{"name":"message","external_name":"message","restriction":""}],"return_type":"Nil","visibility":"Public","body":"@driver.send(message)"}}]},{"html_id":"drivers/Place/UserGroupMappings","path":"Place/UserGroupMappings.html","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_user(id:String):Nil-instance-method","name":"check_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/user_group_mappings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L88"},"def":{"name":"check_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"checking groups of: #{id}\"\nend\nuser_json = (staff_api.user(id)).get\nsync_user(user_json)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L48"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"auth/login\") do |_subscription, payload|\n new_user_login(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@group_mappings = (setting?(Hash(String, Mapping), :group_mappings)) || ({} of String => Mapping)\n@group_prefixes = (setting?(Hash(String, Prefix), :group_prefix)) || ({} of String => Prefix)\n@group_prefixes = @group_prefixes.transform_keys(&.downcase)\n@authority_id = (setting?(String, :authority_id)) || \"authority-12345\"\n"}},{"html_id":"sync_all_users-instance-method","name":"sync_all_users","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L134"},"def":{"name":"sync_all_users","visibility":"Public","body":"begin\n if @syncing\n return \"currently syncing\"\n end\n @syncing = true\n limit = 100\n offset = 0\n issues_with = [] of String\n loop do\n users = staff_api.query_users(limit: limit, offset: offset, authority_id: @authority_id).get.as_a\n logger.debug do\n \"syncing users #{offset}->#{offset + limit}...\"\n end\n users.each do |user|\n begin\n sync_user(user)\n sleep(50.milliseconds)\n rescue error\n issues_with << user[\"email\"].as_s\n end\n end\n if users.size < limit\n break\n end\n offset = offset + limit\n end\n logger.debug do\n \"sync complete! issues with #{issues_with.size}:\\n#{issues_with}\"\n end\n issues_with\nensure\n @syncing = false\nend"}}],"types":[{"html_id":"drivers/Place/UserGroupMappings/Mapping","path":"Place/UserGroupMappings/Mapping.html","kind":"alias","full_name":"Place::UserGroupMappings::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(place_id: String)","aliased_html":"{place_id: String}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/Prefix","path":"Place/UserGroupMappings/Prefix.html","kind":"alias","full_name":"Place::UserGroupMappings::Prefix","name":"Prefix","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(strip_prefix: Bool | Nil, place_id: String | Nil)","aliased_html":"{strip_prefix: Bool?, place_id: String?}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/UserLogin","path":"Place/UserGroupMappings/UserLogin.html","kind":"class","full_name":"Place::UserGroupMappings::UserLogin","name":"UserLogin","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/user_group_mappings.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"provider:String-instance-method","name":"provider","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider","return_type":"String","visibility":"Public","body":"@provider"}},{"html_id":"provider=(provider:String)-instance-method","name":"provider=","abstract":false,"args":[{"name":"provider","external_name":"provider","restriction":"String"}],"args_string":"(provider : String)","args_html":"(provider : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider=","args":[{"name":"provider","external_name":"provider","restriction":"String"}],"visibility":"Public","body":"@provider = provider"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]}]},{"html_id":"drivers/Place/VisitorMailer","path":"Place/VisitorMailer.html","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:ZoneDetails-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L91"},"def":{"name":"building_zone","return_type":"ZoneDetails","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (find_building(control_system_zone_list))\nelse\n __temp_1\nend"}},{"html_id":"control_system_zone_list-instance-method","name":"control_system_zone_list","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L159"},"def":{"name":"control_system_zone_list","visibility":"Public","body":"config.control_system.not_nil!.zones"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L674"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L54"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L58"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/guest/attending\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/checkin\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_accepted\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_declined\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L118"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting?(Bool, :debug)) || true\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@send_reminders = (setting?(String, :send_reminders)).presence\n@reminder_template = (setting?(String, :reminder_template)) || \"visitor\"\n@event_template = (setting?(String, :event_template)) || \"event\"\n@booking_template = (setting?(String, :booking_template)) || \"booking\"\n@notify_checkin_template = (setting?(String, :notify_checkin_template)) || \"notify_checkin\"\n@notify_induction_accepted_template = (setting?(String, :induction_accepted)) || \"induction_accepted\"\n@notify_induction_declined_template = (setting?(String, :induction_declined)) || \"induction_declined\"\n@group_event_template = (setting?(String, :group_event_template)) || \"group_event\"\n@disable_qr_code = (setting?(Bool, :disable_qr_code)) || false\n@determine_host_name_using = (setting?(String, :determine_host_name_using)) || \"calendar-driver\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@host_domain_filter = (setting?(Array(String), :host_domain_filter)) || ([] of String)\n@disable_event_visitors = (setting?(Bool, :disable_event_visitors)) || false\n@invite_zone_tag = (setting?(String, :invite_zone_tag)) || \"building\"\n@is_parent_zone = (setting?(Bool, :is_campus)) || false\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\n@booking_space_name = (setting?(String, :booking_space_name)).presence || \"Client Floor\"\nzones = config.control_system.not_nil!.zones\nschedule.clear\nif reminders = @send_reminders\n schedule.cron(reminders, @time_zone) do\n send_reminder_emails\n end\nend\nspawn do\n ensure_building_zone(zones)\nend\n"}},{"html_id":"parent_zone_ids:Array(String)-instance-method","name":"parent_zone_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L95"},"def":{"name":"parent_zone_ids","return_type":"Array(String)","visibility":"Public","body":"@parent_zone_ids"}},{"html_id":"send_checkedin_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64)-instance-method","name":"send_checkedin_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L362"},"def":{"name":"send_checkedin_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format)})\n"}},{"html_id":"send_induction_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,induction_status:Induction)-instance-method","name":"send_induction_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L390"},"def":{"name":"send_induction_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format), induction_status: induction_status.to_s})\n"}},{"html_id":"send_reminder_emails-instance-method","name":"send_reminder_emails","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L561"},"def":{"name":"send_reminder_emails","visibility":"Public","body":"now = 1.hour.ago.to_unix\nlater = 12.hours.from_now.to_unix\nguests = staff_api.query_guests(period_start: now, period_end: later, zones: {building_zone.id}).get.as_a\nguests.uniq! do |g|\n g[\"email\"].as_s.downcase\nend\nguests.each do |guest|\n begin\n if event = guest[\"event\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, event[\"host\"].as_s, event[\"title\"].as_s, event[\"event_start\"].as_i64, (event.dig(\"system\", \"id\")).as_s, event[\"id\"].as_s, ((event.dig?(\"system\", \"display_name\")) || (event.dig(\"system\", \"name\"))).as_s, event_end: event[\"event_end\"].as_i64)\n else\n if booking = guest[\"booking\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, booking[\"user_email\"].as_s, booking[\"title\"].as_s?, booking[\"booking_start\"].as_i64, booking[\"asset_id\"].as_s, booking[\"id\"].as_i64.to_s, @booking_space_name, event_end: booking[\"booking_end\"].as_i64)\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to send reminder email to #{guest[\"email\"]}\"\n end\n end\nend\n"}},{"html_id":"send_visitor_qr_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,resource_id:String,event_id:String,area_name:String,event_end:Int64|Nil=nil)-instance-method","name":"send_visitor_qr_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L490"},"def":{"name":"send_visitor_qr_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nattach = if @disable_qr_code\n [] of NamedTuple(file_name: String, content: String, content_id: String)\nelse\n qr_png = mailer.generate_png_qrcode(text: \"VISIT:#{visitor_email},#{resource_id},#{event_id},#{host_email}\", size: 256).get.as_s\n [{file_name: \"qr.png\", content: qr_png, content_id: visitor_email}]\nend\nnetwork_username = network_password = \"\"\nif @send_network_credentials\n network_username, network_password = update_network_user_password(visitor_email, generate_password(length: @network_password_length, exclude: @network_password_exclude, minimum_lowercase: @network_password_minimum_lowercase, minimum_uppercase: @network_password_minimum_uppercase, minimum_numbers: @network_password_minimum_numbers, minimum_symbols: @network_password_minimum_symbols), @network_group_ids)\nend\nevent_time = if (end_timestamp = event_end) && (((Time.unix(end_timestamp)) - (Time.unix(event_start))) == 24.hours)\n \"all day\"\nelse\n local_start_time.to_s(@time_format)\nend\nmailer.send_template(visitor_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, room_name: area_name, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: event_time, network_username: network_username, network_password: network_password}, attach)\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L419"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"visitor_email\", description: \"Email address of the visiting guest\"}, {name: \"visitor_name\", description: \"Full name of the visiting guest\"}, {name: \"host_name\", description: \"Name of the person hosting the visitor\"}, {name: \"host_email\", description: \"Email address of the host\"}, {name: \"building_name\", description: \"Name of the building where the visit occurs\"}, {name: \"event_title\", description: \"Title or purpose of the visit\"}, {name: \"event_start\", description: \"Start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the visit (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"event_time\", description: \"Time of the visit (or 'all day' for 24-hour events)\"}]\ninvitation_fields = common_fields + [{name: \"room_name\", description: \"Name of the room or area being visited\"}, {name: \"network_username\", description: \"Network access username (if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated network access password (if network credentials enabled)\"}]\ninduction_fields = common_fields + [{name: \"induction_status\", description: \"Status of the induction (e.g., accepted or declined)\"}]\n[TemplateFields.new(trigger: {\"visitor_invited\", @reminder_template}, name: \"Visitor invited\", description: \"Reminder email for upcoming visitor appointments\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @event_template}, name: \"Visitor invited to event\", description: \"Initial invitation for a visitor attending a calendar event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @booking_template}, name: \"Visitor invited to booking\", description: \"Initial invitation for a visitor with a space booking\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @group_event_template}, name: \"Visitor invited to group event booking\", description: \"Initial invitation for a visitor attending a group event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_checkin_template}, name: \"Visitor check in notification\", description: \"Notification to host when their visitor checks in\", fields: common_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_accepted_template}, name: \"Visitor induction accepted notification\", description: \"Notification to host when their visitor accepts the induction\", fields: induction_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_declined_template}, name: \"Visitor induction declined notification\", description: \"Notification to host when their visitor declines the induction\", fields: induction_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L663"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","path":"Place/VisitorMailer/BookingGuest.html","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L233"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L234"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L239"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}}]},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","path":"Place/VisitorMailer/BookingInduction.html","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L253"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L254"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L261"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"induction:Induction-instance-method","name":"induction","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction","return_type":"Induction","visibility":"Public","body":"@induction"}},{"html_id":"induction=(induction:Induction)-instance-method","name":"induction=","abstract":false,"args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"args_string":"(induction : Induction)","args_html":"(induction : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction=","args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"visibility":"Public","body":"@induction = induction"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_ids:Array(String)-instance-method","name":"resource_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids","return_type":"Array(String)","visibility":"Public","body":"@resource_ids"}},{"html_id":"resource_ids=(resource_ids:Array(String))-instance-method","name":"resource_ids=","abstract":false,"args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"args_string":"(resource_ids : Array(String))","args_html":"(resource_ids : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids=","args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@resource_ids = resource_ids"}}]},{"html_id":"drivers/Place/VisitorMailer/EventGuest","path":"Place/VisitorMailer/EventGuest.html","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L228"},"def":{"name":"resource_id","visibility":"Public","body":"system_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","path":"Place/VisitorMailer/GuestCheckin.html","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L244"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L245"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","path":"Place/VisitorMailer/GuestNotification.html","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L193"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest"},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction"},{"html_id":"drivers/Place/VisitorMailer/EventGuest","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest"},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"action\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'action' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'action'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"booking_created\"\n BookingGuest.from_json(json)\nwhen \"booking_updated\"\n BookingGuest.from_json(json)\nwhen \"meeting_created\"\n EventGuest.from_json(json)\nwhen \"meeting_update\"\n EventGuest.from_json(json)\nwhen \"checkin\"\n GuestCheckin.from_json(json)\nwhen \"induction_accepted\"\n BookingInduction.from_json(json)\nwhen \"induction_declined\"\n BookingInduction.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'action' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L206"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L206"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"attendee_email:String-instance-method","name":"attendee_email","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email","return_type":"String","visibility":"Public","body":"@attendee_email"}},{"html_id":"attendee_email=(attendee_email:String)-instance-method","name":"attendee_email=","abstract":false,"args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"args_string":"(attendee_email : String)","args_html":"(attendee_email : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email=","args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"visibility":"Public","body":"@attendee_email = attendee_email"}},{"html_id":"attendee_name:String|Nil-instance-method","name":"attendee_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name","return_type":"String | ::Nil","visibility":"Public","body":"@attendee_name"}},{"html_id":"attendee_name=(attendee_name:String|Nil)-instance-method","name":"attendee_name=","abstract":false,"args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"args_string":"(attendee_name : String | Nil)","args_html":"(attendee_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name=","args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attendee_name = attendee_name"}},{"html_id":"checkin:Bool|Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin","return_type":"Bool | ::Nil","visibility":"Public","body":"@checkin"}},{"html_id":"checkin=(checkin:Bool|Nil)-instance-method","name":"checkin=","abstract":false,"args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"args_string":"(checkin : Bool | Nil)","args_html":"(checkin : Bool | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin=","args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checkin = checkin"}},{"html_id":"event_starting:Int64-instance-method","name":"event_starting","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting","return_type":"Int64","visibility":"Public","body":"@event_starting"}},{"html_id":"event_starting=(event_starting:Int64)-instance-method","name":"event_starting=","abstract":false,"args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"args_string":"(event_starting : Int64)","args_html":"(event_starting : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting=","args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"visibility":"Public","body":"@event_starting = event_starting"}},{"html_id":"event_summary:String-instance-method","name":"event_summary","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary","return_type":"String","visibility":"Public","body":"@event_summary"}},{"html_id":"event_summary=(event_summary:String)-instance-method","name":"event_summary=","abstract":false,"args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"args_string":"(event_summary : String)","args_html":"(event_summary : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary=","args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"visibility":"Public","body":"@event_summary = event_summary"}},{"html_id":"ext_data:Hash(String,JSON::Any)|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:Hash(String,JSON::Any)|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(ext_data : Hash(String, JSON::Any) | Nil)","args_html":"(ext_data : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L213"},"def":{"name":"host","return_type":"String","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String"}],"args_string":"(host : String)","args_html":"(host : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L213"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String"}],"visibility":"Public","body":"@host = host"}},{"html_id":"zones:Array(String)|Nil-instance-method","name":"zones","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String)|Nil)-instance-method","name":"zones=","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"args_string":"(zones : Array(String) | Nil)","args_html":"(zones : Array(String) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/VisitorMailer/Induction","path":"Place/VisitorMailer/Induction.html","kind":"enum","full_name":"Place::VisitorMailer::Induction","name":"Induction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L187"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TENTATIVE","name":"TENTATIVE","value":"0"},{"id":"ACCEPTED","name":"ACCEPTED","value":"1"},{"id":"DECLINED","name":"DECLINED","value":"2"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"instance_methods":[{"html_id":"accepted?-instance-method","name":"accepted?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L189"},"def":{"name":"accepted?","visibility":"Public","body":"self == ACCEPTED"}},{"html_id":"declined?-instance-method","name":"declined?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L190"},"def":{"name":"declined?","visibility":"Public","body":"self == DECLINED"}},{"html_id":"tentative?-instance-method","name":"tentative?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L188"},"def":{"name":"tentative?","visibility":"Public","body":"self == TENTATIVE"}}]},{"html_id":"drivers/Place/VisitorMailer/SystemDetails","path":"Place/VisitorMailer/SystemDetails.html","kind":"class","full_name":"Place::VisitorMailer::SystemDetails","name":"SystemDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":622,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L622"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":623,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L623"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L625"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L625"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String|Nil)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil)","args_html":"(map_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L626"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L626"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/VisitorMailer/ZoneDetails","path":"Place/VisitorMailer/ZoneDetails.html","kind":"class","full_name":"Place::VisitorMailer::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":611,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L611"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":612,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L612"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L614"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L614"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L617"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L617"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L615"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L615"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Place/Workplace","path":"Place/Workplace.html","kind":"class","full_name":"Place::Workplace","name":"Workplace","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"all_levels:Array(Zone)-instance-method","name":"all_levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L93"},"def":{"name":"all_levels","return_type":"Array(Zone)","visibility":"Public","body":"if (__temp_1 = @all_levels).nil?\n @all_levels = ([building] + (Array(Zone).from_json(staff_api.zones(parent: building.id, tags: {\"level\"}).get.to_json)).sort_by(&.name))\nelse\n __temp_1\nend"}},{"html_id":"book_on(booking_type:String,asset_id:String,level_id:String,date:Time,number_of_days:Int32=1)-instance-method","name":"book_on","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L215"},"def":{"name":"book_on","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking on #{booking_type}, asset #{asset_id} on level #{level_id}, date #{date} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\nnow = (date.in(timezone)).at_beginning_of_day\ncurrent_time = Time.local(timezone)\nif current_time < now || (current_time - now) < 18.hours\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (0...number_of_days).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{now.day_of_week}, #{now.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"book_relative(booking_type:String,asset_id:String,level_id:String,day_offset:Int32=0,number_of_days:Int32=1)-instance-method","name":"book_relative","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L161"},"def":{"name":"book_relative","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking relative #{booking_type}, asset #{asset_id} on level #{level_id}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 18)\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L464"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel_bookings(booking_ids:Array(Int64))-instance-method","name":"cancel_bookings","abstract":false,"args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"args_string":"(booking_ids : Array(Int64))","args_html":"(booking_ids : Array(Int64))","location":{"filename":"src/place/llm/workplace.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L267"},"def":{"name":"cancel_bookings","args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"visibility":"Public","body":"logger.debug do\n \"cancel bookings #{booking_ids}\"\nend\nbooking_ids.each do |booking_id|\n booking = (staff_api.get_booking(booking_id)).get\n user_id = invoked_by_user_id\n me = current_user\n if (user_id == booking[\"user_id\"]?.try(&.as_s)) || (me.email.downcase.in?({booking[\"user_email\"].as_s, booking[\"booked_by_email\"].as_s}))\n else\n raise(\"can only cancel bookings owned by #{me.email} - this booking is owned by #{booking[\"user_email\"]}\")\n end\n staff_api.booking_delete(booking_id, \"chatgpt\")\nend\n\"bookings have been removed\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L31"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"functions for listing building levels to obtain level names and level ids\\n\"\n str << \"find meeting rooms, filtering by capacity and or level id\\n\"\n str << \"my current desk, car parking and guest visitor bookings\\n\"\n str << \"Note: when booking a meeting room, preference one on the same level or closest level to my desk booking, if I have one, unless I specify a specific level. Also try to pick a room with an appropriate capacity.\\n\"\n str << \"once candidate meeting rooms have been found, you can include the list of resource emails when getting schedules to see which rooms are available\\n\"\n str << \"this capability also supports managing desk bookings and inviting visitors to the building\\n\"\n str << \"please cancel any bookings made on the incorrect day\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L448"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"desks(level_id:String,day_offset:Int32=0,date:Time|Nil=nil,feature:String|Nil=nil)-instance-method","name":"desks","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"args_string":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","args_html":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L116"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing desks on level #{level_id}, day offset #{day_offset}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nall_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\nif all_desks\nelse\n raise(\"no bookable desks on this level, please try another.\")\nend\ndesks = Array(Desk).from_json(all_desks.to_json)\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nme = current_user\nbookings = staff_api.query_bookings(type: \"desk\", period_start: starting.to_unix, period_end: ending.to_unix, zones: {level_id}).get.as_a\nbookings = bookings.map() do |__arg1|\n __arg1[\"asset_id\"].as_s\nend\nfeature = feature.try(&.downcase)\ndesks.reject! do |desk|\n if desk.id.in?(bookings)\n next true\n end\n if feature && !(desk.features.map!(&.downcase).includes?(feature))\n next true\n end\n if !desk.groups.empty?\n (desk.groups & me.groups).empty?\n end\nend\nlogger.debug do\n \"found #{desks.size} available desks\"\nend\ndesks.sample(5)\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_bookings: \"returns desks, car parking spaces and visitors I have booked. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", levels: \"returns the building details and list of levels. Use this to obtain level_ids\", meeting_rooms: \"returns the list of meeting rooms in the building filtering by capacity or level\", desks: \"returns the list of desks available for booking on the level and day specified. If the level has desk features then you can also filter by features.\", book_relative: \"books an asset, such as a desk or car parking space, for the number of days specified, starting on the day offset. For desk bookings use booking_type: desk\", book_on: \"books an asset, such as a desk or car parking space, for the number of days specified, the start date must be in ISO 8601 format with the correct timezone. For desk bookings use booking_type: desk\", cancel_bookings: \"cancels the given booking ids\", invite: \"book a visitor to the building\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L489"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg12|\n __arg12[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"invite(visitor_name:String,visitor_email:String,day_offset:Int32=0,date:Time|Nil=nil,number_of_days:Int32=1)-instance-method","name":"invite","abstract":false,"args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","args_html":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L282"},"def":{"name":"invite","args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"inviting visitor to the building #{visitor_name}: #{visitor_email}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.first\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif date\n desired_date = (date.in(timezone)).at_beginning_of_day\n day_offset = (desired_date - now).total_days.round_away.to_i\nend\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 16)\nelse\n raise(\"booking in the past is not permitted\")\nend\nvisitor_email = visitor_email.downcase\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: \"visitor\", asset_id: visitor_email, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level.id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\", attendees: [{name: visitor_name, email: visitor_email}])\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"invited #{visitor_email} to the office on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"levels:Array(Zone)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L71"},"def":{"name":"levels","return_type":"Array(Zone)","visibility":"Public","body":"logger.debug do\n \"getting list of levels\"\nend\nl = all_levels\nl.each do |level|\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n desks = all_desks.as_a\n level.bookable_desk_count = desks.size\n features = Set(String).new\n desks.each do |desk|\n if feat = desk[\"features\"]?\n feat.as_a.each do |f|\n features << f.as_s.downcase\n end\n end\n end\n if features.empty?\n else\n level.desk_features = features.to_a\n end\n else\n level.bookable_desk_count = 0\n end\nend\nl\n"}},{"html_id":"meeting_rooms(minimum_capacity:Int32=1,level_id:String|Nil=nil)-instance-method","name":"meeting_rooms","abstract":false,"args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","args_html":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L98"},"def":{"name":"meeting_rooms","args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing meeting rooms on level #{level_id} with capacity #{minimum_capacity}\"\nend\nif level_id\n level = levels.find do |l|\n l.id == level_id\n end\n if level\n else\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\n end\nend\nzone_id = level_id || building.id\nstaff_api.systems(zone_id: zone_id, capacity: minimum_capacity, bookable: true).get.as_a.compact_map do |s|\n to_friendly_system(s)\nend\n"}},{"html_id":"my_bookings(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_bookings","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L44"},"def":{"name":"my_bookings","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"me = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\n logger.debug do\n \"listing bookings for #{current_user.email}, on day #{starting}\"\n end\nelse\n logger.debug do\n \"listing bookings for #{current_user.email}, day offset #{day_offset}\"\n end\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\n{\"desk\", \"visitor\", \"parking\", \"asset-request\"}.flat_map do |booking_type|\n staff_api.query_bookings(type: booking_type, period_start: starting.to_unix, period_end: ending.to_unix, zones: {building.id}, user: invoked_by_user_id, email: me.email).get.as_a.compact_map do |b|\n to_friendly_booking(b)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L452"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Workplace/Booking","path":"Place/Workplace/Booking.html","kind":"struct","full_name":"Place::Workplace::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,book:JSON::Any,timezone:Time::Location)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(level : Zone, book : JSON::Any, timezone : Time::Location)","args_html":"(level : Zone, book : JSON::Any, timezone : Time::Location)","location":{"filename":"src/place/llm/workplace.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L425"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, book, timezone)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L413"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L412"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L423"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L410"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":408,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L408"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L417"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L418"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L409"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L415"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_id:String|Nil-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L414"},"def":{"name":"user_id","return_type":"String | ::Nil","visibility":"Public","body":"@user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L416"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]},{"html_id":"drivers/Place/Workplace/ChildMetadata","path":"Place/Workplace/ChildMetadata.html","kind":"alias","full_name":"Place::Workplace::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/Desk","path":"Place/Workplace/Desk.html","kind":"struct","full_name":"Place::Workplace::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L339"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L340"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L344"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L343"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L342"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Workplace/Metadata","path":"Place/Workplace/Metadata.html","kind":"alias","full_name":"Place::Workplace::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L112"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/PlaceZone","path":"Place/Workplace/PlaceZone.html","kind":"alias","full_name":"Place::Workplace::PlaceZone","name":"PlaceZone","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/System","path":"Place/Workplace/System.html","kind":"struct","full_name":"Place::Workplace::System","name":"System","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L361"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,system:JSON::Any)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"args_string":"(level : Zone, system : JSON::Any)","args_html":"(level : Zone, system : JSON::Any)","location":{"filename":"src/place/llm/workplace.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L376"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, system)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L362"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L368"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L367"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L366"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L364"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L370"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L371"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L372"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L365"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/User","path":"Place/Workplace/User.html","kind":"struct","full_name":"Place::Workplace::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L456"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L457"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L460"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L461"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L459"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/Zone","path":"Place/Workplace/Zone.html","kind":"class","full_name":"Place::Workplace::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L466"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L467"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookable_desk_count:Int32|Nil-instance-method","name":"bookable_desk_count","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@bookable_desk_count"}},{"html_id":"bookable_desk_count=(bookable_desk_count:Int32|Nil)-instance-method","name":"bookable_desk_count=","abstract":false,"args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"args_string":"(bookable_desk_count : Int32 | Nil)","args_html":"(bookable_desk_count : Int32 | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count=","args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@bookable_desk_count = bookable_desk_count"}},{"html_id":"desk_features:Array(String)|Nil-instance-method","name":"desk_features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@desk_features"}},{"html_id":"desk_features=(desk_features:Array(String)|Nil)-instance-method","name":"desk_features=","abstract":false,"args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"args_string":"(desk_features : Array(String) | Nil)","args_html":"(desk_features : Array(String) | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features=","args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@desk_features = desk_features"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L471"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":469,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L469"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":470,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L470"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":472,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L472"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L481"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L478"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/WorkplaceSubscription","path":"Place/WorkplaceSubscription.html","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription","abstract":false,"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"including_types":[{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L94"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}},{"html_id":"subscription_on_crud(notification:NotifyEvent):Nil-instance-method","name":"subscription_on_crud","abstract":true,"args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"args_string":"(notification : NotifyEvent) : Nil","args_html":"(notification : NotifyEvent) : Nil","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L30"},"def":{"name":"subscription_on_crud","args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_on_missed:Nil-instance-method","name":"subscription_on_missed","abstract":true,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L31"},"def":{"name":"subscription_on_missed","return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_resource(service_name:ServiceName):String-instance-method","name":"subscription_resource","doc":"should return the resource URI for monitoring, for example:\n\ncase service_name\nin .google?\n resource = \"/calendars/#{calendar_id}/events\"\nin .office365?\n resource = \"/users/#{calendar_id}/events\"","summary":"

should return the resource URI for monitoring, for example:

","abstract":true,"args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"args_string":"(service_name : ServiceName) : String","args_html":"(service_name : ServiceName) : String","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L45"},"def":{"name":"subscription_resource","args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"return_type":"String","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/WorkplaceSubscription/NotifyEvent","path":"Place/WorkplaceSubscription/NotifyEvent.html","kind":"struct","full_name":"Place::WorkplaceSubscription::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L24"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L20"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L27"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L21"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L22"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L23"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/NotifyType","path":"Place/WorkplaceSubscription/NotifyType.html","kind":"enum","full_name":"Place::WorkplaceSubscription::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L7"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L9"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L13"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L14"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L12"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L8"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/ServiceName","path":"Place/WorkplaceSubscription/ServiceName.html","kind":"enum","full_name":"Place::WorkplaceSubscription::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L33"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L34"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L35"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/WorkspaceAPI","path":"Place/WorkspaceAPI.html","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/google/workspace_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/google/workspace_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Planar","path":"Planar.html","kind":"module","full_name":"Planar","name":"Planar","abstract":false,"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Planar/ClarityMatrix","path":"Planar/ClarityMatrix.html","kind":"class","full_name":"Planar::ClarityMatrix","name":"ClarityMatrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Planar","kind":"module","full_name":"Planar","name":"Planar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"build_date?-instance-method","name":"build_date?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L64"},"def":{"name":"build_date?","visibility":"Public","body":"send(\"ST A1 BUILD.DATE ? \\r\", wait: true)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"do_poll\nschedule.every(60.seconds) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L28"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L59"},"def":{"name":"do_poll","visibility":"Public","body":"power?\nif @power\n input_status?(priority: 0)\nend\n"}},{"html_id":"input_status?(**options)-instance-method","name":"input_status?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L55"},"def":{"name":"input_status?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op A1 slot.current ? \\r\", wait: true)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.tokenizer = Tokenizer.new(\"\\r\")\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L34"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power?.get\nif state && (@power == false)\n send(\"op ** display.power = on \\r\", name: \"power\", delay: 3.seconds)\n result = power?\n schedule.in(20.seconds) do\n recall(0)\n end\n result\nelse\n if !state && (@power == true)\n send(\"op ** display.power = off \\r\", name: \"power\", delay: 3.seconds)\n power?\n end\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L47"},"def":{"name":"power?","visibility":"Public","body":"send(\"op A1 display.power ? \\r\", wait: true, priority: 0)"}},{"html_id":"recall(preset:UInt32,**options)-instance-method","name":"recall","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"args_string":"(preset : UInt32, **options)","args_html":"(preset : UInt32, **options)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L51"},"def":{"name":"recall","args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op ** slot.recall (#{preset}) \\r\", **options, name: \"recall\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L68"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"sent: #{data}\"\nend\ndata = data.split('.')\ncomponent = data[0]\ndata = data[1].split('=')\nstatus = data[0].downcase.strip\nvalue = data[1].strip\ncase status\nwhen \"power\"\n self[:power] = @power = value == \"ON\"\n task.try(&.success(@power))\nwhen \"current\"\n input = value.to_i\n self[:input] = input\n task.try(&.success(input))\nwhen \"date\"\n task.try(&.success(value[1..-2]))\nelse\n task.try(&.success)\nend\n"}}]}]},{"html_id":"drivers/Point","path":"Point.html","kind":"struct","full_name":"Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L19"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"distance_to(point:Point)-instance-method","name":"distance_to","doc":"pythagoras","summary":"

pythagoras

","abstract":false,"args":[{"name":"point","external_name":"point","restriction":"Point"}],"args_string":"(point : Point)","args_html":"(point : Point)","location":{"filename":"src/place/area_polygon.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L26"},"def":{"name":"distance_to","args":[{"name":"point","external_name":"point","restriction":"Point"}],"visibility":"Public","body":"a = point.x - @x\nb = point.y - @y\nMath.sqrt((a * a) + (b * b))\n"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L22"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L22"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L23"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L23"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/PointGrab","path":"PointGrab.html","kind":"module","full_name":"PointGrab","name":"PointGrab","abstract":false,"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/PointGrab/CogniPoint","path":"PointGrab/CogniPoint.html","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/PointGrab","kind":"module","full_name":"PointGrab","name":"PointGrab"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area(site_id:String,building_id:String,floor_id:String,area_id:String)-instance-method","name":"area","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String, area_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String, area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L259"},"def":{"name":"area","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas/#{area_id}\", Area)"}},{"html_id":"areas(site_id:String,building_id:String,floor_id:String)-instance-method","name":"areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L253"},"def":{"name":"areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"areas = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas\", NamedTuple(areas: Array(Area)))\nareas[:areas]\n"}},{"html_id":"building(site_id:String,building_id:String)-instance-method","name":"building","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L164"},"def":{"name":"building","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}\", Building)"}},{"html_id":"building_areas(site_id:String,building_id:String)-instance-method","name":"building_areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L247"},"def":{"name":"building_areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/areas\", NamedTuple(floorsAreas: FloorAreas))\nfloors[:floorsAreas]\n"}},{"html_id":"buildings(site_id:String)-instance-method","name":"buildings","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L159"},"def":{"name":"buildings","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"buildings = get_request(\"/be/cp/v2/sites/#{site_id}/buildings\", NamedTuple(buildings: Array(Building)))\nbuildings[:buildings]\n"}},{"html_id":"customers-instance-method","name":"customers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L89"},"def":{"name":"customers","visibility":"Public","body":"customers = get_request(\"/be/cp/v2/customers\", NamedTuple(endCustomers: Array(Customer)))\ncustomers[:endCustomers]\n"}},{"html_id":"delete_subscription(id:String)-instance-method","name":"delete_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L338"},"def":{"name":"delete_subscription","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"token = get_token\n(delete(\"/be/cp/v2/telemetry/subscriptions/#{id}\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L34"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(site_id:String,building_id:String,floor_id:String)-instance-method","name":"floor","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L194"},"def":{"name":"floor","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}\", Floor)"}},{"html_id":"floors(site_id:String,building_id:String)-instance-method","name":"floors","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L189"},"def":{"name":"floors","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors\", NamedTuple(floors: Array(Building)))\nfloors[:floors]\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L42"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/be/cp/oauth2/token\", body: \"grant_type=client_credentials\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\", \"Authorization\" => \"Basic #{Base64.strict_encode(\"#{@user_id}:#{@app_key}\")}\"})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body.not_nil!)\n token = resp.token\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"handlers-instance-method","name":"handlers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L276"},"def":{"name":"handlers","visibility":"Public","body":"handlers = get_request(\"/be/cp/v2/resources/handlers\", NamedTuple(handlers: Array(Handler)))\nhandlers[:handlers]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@user_id = setting(String, :user_id)\n@app_key = setting(String, :app_key)\n"}},{"html_id":"site(site_id:String)-instance-method","name":"site","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L143"},"def":{"name":"site","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}\", Site)"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L138"},"def":{"name":"sites","visibility":"Public","body":"sites = get_request(\"/be/cp/v2/sites\", NamedTuple(sites: Array(Site)))\nsites[:sites]\n"}},{"html_id":"subscribe(handler_uri:String,auth_token:String=UUID.random.to_s,events:NotificationType=NotificationType::Counting)-instance-method","name":"subscribe","abstract":false,"args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"args_string":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","args_html":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L303"},"def":{"name":"subscribe","args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"visibility":"Public","body":"URI.parse(handler_uri)\ntoken = get_token\nresponse = post(\"/be/cp/v2/telemetry/subscriptions\", body: {subscriptionType: \"PUSH\", notificationType: events.to_s.upcase, endpoint: handler_uri, token: auth_token}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n Subscription.from_json(body.not_nil!)\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"subscriptions-instance-method","name":"subscriptions","doc":"provides access to the modules subscriptions tracker","summary":"

provides access to the modules subscriptions tracker

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L334"},"def":{"name":"subscriptions","visibility":"Public","body":"get_request(\"/be/cp/v2/telemetry/subscriptions\", Array(Subscription))"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L38"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"update_count(count_json:String)-instance-method","name":"update_count","abstract":false,"args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"args_string":"(count_json : String)","args_html":"(count_json : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L376"},"def":{"name":"update_count","args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"visibility":"Public","body":"count = CountUpdate.from_json(count_json)\nself[\"area_#{count.area_id}\"] = count.count\n"}},{"html_id":"update_subscription(id:String,started:Bool=true)-instance-method","name":"update_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"args_string":"(id : String, started : Bool = true)","args_html":"(id : String, started : Bool = true)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L348"},"def":{"name":"update_subscription","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"token = get_token\n(patch(\"/be/cp/v2/telemetry/subscriptions/#{id}\", body: {started: started}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}}],"macros":[{"html_id":"get_request(path,result_type)-macro","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"args_string":"(path, result_type)","args_html":"(path, result_type)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L65"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"visibility":"Public","body":" begin\n \n%token\n = get_token\n \n%response\n = get(\n{{ path }}\n, headers: \n{\n \"Accept\" => \"application/json\",\n \"Authorization\" => \n%token\n\n })\n\n if \n%response\n.success?\n \n{{ result_type }}\n.from_json(\n%response\n.body.not_nil!)\n \nelse\n \nexpire_token! if \n%response\n.status_code == 401\n raise \"unexpected response #{\n%response\n.status_code}\\n#{\n%response\n.body}\"\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area","path":"PointGrab/CogniPoint/Area.html","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L198"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L199"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"applications:Array(Application)-instance-method","name":"applications","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications","return_type":"Array(Application)","visibility":"Public","body":"@applications"}},{"html_id":"applications=(applications:Array(Application))-instance-method","name":"applications=","abstract":false,"args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"args_string":"(applications : Array(Application))","args_html":"(applications : Array(Application))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications=","args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"visibility":"Public","body":"@applications = applications"}},{"html_id":"center_x:Float64-instance-method","name":"center_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x","return_type":"Float64","visibility":"Public","body":"@center_x"}},{"html_id":"center_x=(center_x:Float64)-instance-method","name":"center_x=","abstract":false,"args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"args_string":"(center_x : Float64)","args_html":"(center_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x=","args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"visibility":"Public","body":"@center_x = center_x"}},{"html_id":"center_y:Float64-instance-method","name":"center_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y","return_type":"Float64","visibility":"Public","body":"@center_y"}},{"html_id":"center_y=(center_y:Float64)-instance-method","name":"center_y=","abstract":false,"args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"args_string":"(center_y : Float64)","args_html":"(center_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y=","args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"visibility":"Public","body":"@center_y = center_y"}},{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"device_ids=(device_ids:Array(String))-instance-method","name":"device_ids=","abstract":false,"args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"args_string":"(device_ids : Array(String))","args_html":"(device_ids : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids=","args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@device_ids = device_ids"}},{"html_id":"frequency:Int32-instance-method","name":"frequency","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency","return_type":"Int32","visibility":"Public","body":"@frequency"}},{"html_id":"frequency=(frequency:Int32)-instance-method","name":"frequency=","abstract":false,"args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"args_string":"(frequency : Int32)","args_html":"(frequency : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency=","args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"visibility":"Public","body":"@frequency = frequency"}},{"html_id":"geo_positions:Array(GeoPosition)|Nil-instance-method","name":"geo_positions","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions","return_type":"Array(GeoPosition) | ::Nil","visibility":"Public","body":"@geo_positions"}},{"html_id":"geo_positions=(geo_positions:Array(GeoPosition)|Nil)-instance-method","name":"geo_positions=","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"args_string":"(geo_positions : Array(GeoPosition) | Nil)","args_html":"(geo_positions : Array(GeoPosition) | Nil)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions=","args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"visibility":"Public","body":"@geo_positions = geo_positions"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"length=(length:Float64)-instance-method","name":"length=","abstract":false,"args":[{"name":"length","external_name":"length","restriction":"Float64"}],"args_string":"(length : Float64)","args_html":"(length : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length=","args":[{"name":"length","external_name":"length","restriction":"Float64"}],"visibility":"Public","body":"@length = length"}},{"html_id":"metric_positions:Array(MetricPositions)-instance-method","name":"metric_positions","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions","return_type":"Array(MetricPositions)","visibility":"Public","body":"@metric_positions"}},{"html_id":"metric_positions=(metric_positions:Array(MetricPositions))-instance-method","name":"metric_positions=","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"args_string":"(metric_positions : Array(MetricPositions))","args_html":"(metric_positions : Array(MetricPositions))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions=","args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"visibility":"Public","body":"@metric_positions = metric_positions"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"rotation:Int32-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation","return_type":"Int32","visibility":"Public","body":"@rotation"}},{"html_id":"rotation=(rotation:Int32)-instance-method","name":"rotation=","abstract":false,"args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"args_string":"(rotation : Int32)","args_html":"(rotation : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation=","args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"visibility":"Public","body":"@rotation = rotation"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area/Application","path":"PointGrab/CogniPoint/Area/Application.html","kind":"class","full_name":"PointGrab::CogniPoint::Area::Application","name":"Application","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Area","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_type:String-instance-method","name":"application_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type","return_type":"String","visibility":"Public","body":"@application_type"}},{"html_id":"application_type=(application_type:String)-instance-method","name":"application_type=","abstract":false,"args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"args_string":"(application_type : String)","args_html":"(application_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type=","args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"visibility":"Public","body":"@application_type = application_type"}},{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Building","path":"PointGrab/CogniPoint/Building.html","kind":"class","full_name":"PointGrab::CogniPoint::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L147"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L148"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Site::Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location","return_type":"Site::Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Site::Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"args_string":"(location : Site::Location)","args_html":"(location : Site::Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/CountUpdate","path":"PointGrab/CogniPoint/CountUpdate.html","kind":"class","full_name":"PointGrab::CogniPoint::CountUpdate","name":"CountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"doc":"TODO:: this data is posted to the subscription endpoint\nwe need to implement webhooks for this to work properly","summary":"

TODO : this data is posted to the subscription endpoint we need to implement webhooks for this to work properly

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"devices:Array(String)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices","return_type":"Array(String)","visibility":"Public","body":"@devices"}},{"html_id":"devices=(devices:Array(String))-instance-method","name":"devices=","abstract":false,"args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"args_string":"(devices : Array(String))","args_html":"(devices : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices=","args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"visibility":"Public","body":"@devices = devices"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}},{"html_id":"timestamp:UInt64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp","return_type":"UInt64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:UInt64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"args_string":"(timestamp : UInt64)","args_html":"(timestamp : UInt64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Customer","path":"PointGrab/CogniPoint/Customer.html","kind":"class","full_name":"PointGrab::CogniPoint::Customer","name":"Customer","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Floor","path":"PointGrab/CogniPoint/Floor.html","kind":"class","full_name":"PointGrab::CogniPoint::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_number:String-instance-method","name":"floor_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number","return_type":"String","visibility":"Public","body":"@floor_number"}},{"html_id":"floor_number=(floor_number:String)-instance-method","name":"floor_number=","abstract":false,"args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"args_string":"(floor_number : String)","args_html":"(floor_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number=","args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"visibility":"Public","body":"@floor_number = floor_number"}},{"html_id":"floor_plan_url:String-instance-method","name":"floor_plan_url","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url","return_type":"String","visibility":"Public","body":"@floor_plan_url"}},{"html_id":"floor_plan_url=(floor_plan_url:String)-instance-method","name":"floor_plan_url=","abstract":false,"args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"args_string":"(floor_plan_url : String)","args_html":"(floor_plan_url : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url=","args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"visibility":"Public","body":"@floor_plan_url = floor_plan_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length_distance:Float64-instance-method","name":"length_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance","return_type":"Float64","visibility":"Public","body":"@length_distance"}},{"html_id":"length_distance=(length_distance:Float64)-instance-method","name":"length_distance=","abstract":false,"args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"args_string":"(length_distance : Float64)","args_html":"(length_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance=","args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"visibility":"Public","body":"@length_distance = length_distance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"width_distance:Float64-instance-method","name":"width_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance","return_type":"Float64","visibility":"Public","body":"@width_distance"}},{"html_id":"width_distance=(width_distance:Float64)-instance-method","name":"width_distance=","abstract":false,"args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"args_string":"(width_distance : Float64)","args_html":"(width_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance=","args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"visibility":"Public","body":"@width_distance = width_distance"}}]},{"html_id":"drivers/PointGrab/CogniPoint/FloorAreas","path":"PointGrab/CogniPoint/FloorAreas.html","kind":"class","full_name":"PointGrab::CogniPoint::FloorAreas","name":"FloorAreas","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L239"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L240"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"areas:Array(Area)-instance-method","name":"areas","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas","return_type":"Array(Area)","visibility":"Public","body":"@areas"}},{"html_id":"areas=(areas:Array(Area))-instance-method","name":"areas=","abstract":false,"args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"args_string":"(areas : Array(Area))","args_html":"(areas : Array(Area))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas=","args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"visibility":"Public","body":"@areas = areas"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/GeoPosition","path":"PointGrab/CogniPoint/GeoPosition.html","kind":"class","full_name":"PointGrab::CogniPoint::GeoPosition","name":"GeoPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"latitude=(latitude:Float64)-instance-method","name":"latitude=","abstract":false,"args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"args_string":"(latitude : Float64)","args_html":"(latitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude=","args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"visibility":"Public","body":"@latitude = latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"longitude=(longitude:Float64)-instance-method","name":"longitude=","abstract":false,"args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"args_string":"(longitude : Float64)","args_html":"(longitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude=","args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"visibility":"Public","body":"@longitude = longitude"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Handler","path":"PointGrab/CogniPoint/Handler.html","kind":"class","full_name":"PointGrab::CogniPoint::Handler","name":"Handler","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L263"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L264"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_id:UInt32-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id","return_type":"UInt32","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:UInt32)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"args_string":"(app_id : UInt32)","args_html":"(app_id : UInt32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"end_point:String-instance-method","name":"end_point","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point","return_type":"String","visibility":"Public","body":"@end_point"}},{"html_id":"end_point=(end_point:String)-instance-method","name":"end_point=","abstract":false,"args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"args_string":"(end_point : String)","args_html":"(end_point : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point=","args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"visibility":"Public","body":"@end_point = end_point"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/PointGrab/CogniPoint/MetricPositions","path":"PointGrab/CogniPoint/MetricPositions.html","kind":"class","full_name":"PointGrab::CogniPoint::MetricPositions","name":"MetricPositions","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"pos_x:Float64-instance-method","name":"pos_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x","return_type":"Float64","visibility":"Public","body":"@pos_x"}},{"html_id":"pos_x=(pos_x:Float64)-instance-method","name":"pos_x=","abstract":false,"args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"args_string":"(pos_x : Float64)","args_html":"(pos_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x=","args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"visibility":"Public","body":"@pos_x = pos_x"}},{"html_id":"pos_y:Float64-instance-method","name":"pos_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y","return_type":"Float64","visibility":"Public","body":"@pos_y"}},{"html_id":"pos_y=(pos_y:Float64)-instance-method","name":"pos_y=","abstract":false,"args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"args_string":"(pos_y : Float64)","args_html":"(pos_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y=","args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"visibility":"Public","body":"@pos_y = pos_y"}}]},{"html_id":"drivers/PointGrab/CogniPoint/NotificationType","path":"PointGrab/CogniPoint/NotificationType.html","kind":"enum","full_name":"PointGrab::CogniPoint::NotificationType","name":"NotificationType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L298"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Counting","name":"Counting","value":"0"},{"id":"Traffic","name":"Traffic","value":"1"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"instance_methods":[{"html_id":"counting?-instance-method","name":"counting?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L299"},"def":{"name":"counting?","visibility":"Public","body":"self == Counting"}},{"html_id":"traffic?-instance-method","name":"traffic?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L300"},"def":{"name":"traffic?","visibility":"Public","body":"self == Traffic"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Site","path":"PointGrab/CogniPoint/Site.html","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"customer_id:String-instance-method","name":"customer_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id","return_type":"String","visibility":"Public","body":"@customer_id"}},{"html_id":"customer_id=(customer_id:String)-instance-method","name":"customer_id=","abstract":false,"args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"args_string":"(customer_id : String)","args_html":"(customer_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id=","args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"visibility":"Public","body":"@customer_id = customer_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Site/Location","path":"PointGrab/CogniPoint/Site/Location.html","kind":"class","full_name":"PointGrab::CogniPoint::Site::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Site","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"city=(city:String)-instance-method","name":"city=","abstract":false,"args":[{"name":"city","external_name":"city","restriction":"String"}],"args_string":"(city : String)","args_html":"(city : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city=","args":[{"name":"city","external_name":"city","restriction":"String"}],"visibility":"Public","body":"@city = city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"country=(country:String)-instance-method","name":"country=","abstract":false,"args":[{"name":"country","external_name":"country","restriction":"String"}],"args_string":"(country : String)","args_html":"(country : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country=","args":[{"name":"country","external_name":"country","restriction":"String"}],"visibility":"Public","body":"@country = country"}},{"html_id":"county:String-instance-method","name":"county","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county","return_type":"String","visibility":"Public","body":"@county"}},{"html_id":"county=(county:String)-instance-method","name":"county=","abstract":false,"args":[{"name":"county","external_name":"county","restriction":"String"}],"args_string":"(county : String)","args_html":"(county : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county=","args":[{"name":"county","external_name":"county","restriction":"String"}],"visibility":"Public","body":"@county = county"}},{"html_id":"geo_position:GeoPosition-instance-method","name":"geo_position","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position","return_type":"GeoPosition","visibility":"Public","body":"@geo_position"}},{"html_id":"geo_position=(geo_position:GeoPosition)-instance-method","name":"geo_position=","abstract":false,"args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"args_string":"(geo_position : GeoPosition)","args_html":"(geo_position : GeoPosition)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position=","args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"visibility":"Public","body":"@geo_position = geo_position"}},{"html_id":"house_number:String-instance-method","name":"house_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number","return_type":"String","visibility":"Public","body":"@house_number"}},{"html_id":"house_number=(house_number:String)-instance-method","name":"house_number=","abstract":false,"args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"args_string":"(house_number : String)","args_html":"(house_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number=","args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"visibility":"Public","body":"@house_number = house_number"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"state=(state:String)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"@state = state"}},{"html_id":"street:String-instance-method","name":"street","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street","return_type":"String","visibility":"Public","body":"@street"}},{"html_id":"street=(street:String)-instance-method","name":"street=","abstract":false,"args":[{"name":"street","external_name":"street","restriction":"String"}],"args_string":"(street : String)","args_html":"(street : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street=","args":[{"name":"street","external_name":"street","restriction":"String"}],"visibility":"Public","body":"@street = street"}},{"html_id":"zip:String-instance-method","name":"zip","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip","return_type":"String","visibility":"Public","body":"@zip"}},{"html_id":"zip=(zip:String)-instance-method","name":"zip=","abstract":false,"args":[{"name":"zip","external_name":"zip","restriction":"String"}],"args_string":"(zip : String)","args_html":"(zip : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip=","args":[{"name":"zip","external_name":"zip","restriction":"String"}],"visibility":"Public","body":"@zip = zip"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Subscription","path":"PointGrab/CogniPoint/Subscription.html","kind":"class","full_name":"PointGrab::CogniPoint::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"endpoint:String-instance-method","name":"endpoint","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint","return_type":"String","visibility":"Public","body":"@endpoint"}},{"html_id":"endpoint=(endpoint:String)-instance-method","name":"endpoint=","abstract":false,"args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"args_string":"(endpoint : String)","args_html":"(endpoint : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint=","args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"visibility":"Public","body":"@endpoint = endpoint"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"notification_type:String-instance-method","name":"notification_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type","return_type":"String","visibility":"Public","body":"@notification_type"}},{"html_id":"notification_type=(notification_type:String)-instance-method","name":"notification_type=","abstract":false,"args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"args_string":"(notification_type : String)","args_html":"(notification_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type=","args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"visibility":"Public","body":"@notification_type = notification_type"}},{"html_id":"started:Bool-instance-method","name":"started","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started","return_type":"Bool","visibility":"Public","body":"@started"}},{"html_id":"started=(started:Bool)-instance-method","name":"started=","abstract":false,"args":[{"name":"started","external_name":"started","restriction":"Bool"}],"args_string":"(started : Bool)","args_html":"(started : Bool)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started=","args":[{"name":"started","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"@started = started"}},{"html_id":"subscription_type:String-instance-method","name":"subscription_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type","return_type":"String","visibility":"Public","body":"@subscription_type"}},{"html_id":"subscription_type=(subscription_type:String)-instance-method","name":"subscription_type=","abstract":false,"args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"args_string":"(subscription_type : String)","args_html":"(subscription_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type=","args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"visibility":"Public","body":"@subscription_type = subscription_type"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}}]},{"html_id":"drivers/PointGrab/CogniPoint/TokenResponse","path":"PointGrab/CogniPoint/TokenResponse.html","kind":"class","full_name":"PointGrab::CogniPoint::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]}]},{"html_id":"drivers/Polygon","path":"Polygon.html","kind":"class","full_name":"Polygon","name":"Polygon","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(points:Array(Point))-class-method","name":"new","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/place/area_polygon.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L36"},"def":{"name":"new","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(points)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"contains(testx:Float64,testy:Float64)-instance-method","name":"contains","abstract":false,"args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"args_string":"(testx : Float64, testy : Float64)","args_html":"(testx : Float64, testy : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L54"},"def":{"name":"contains","args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"visibility":"Public","body":"if ((testx < @xmin || testx > @xmax) || testy < @ymin) || testy > @ymax\n return false\nend\ninside = false\nprevious_index = @points.size - 1\n@points.each_with_index do |point, index|\n previous = @points[previous_index]\n if ((point.y > testy) != (previous.y > testy)) && (testx < ((((previous.x - point.x) * (testy - point.y)) / (previous.y - point.y)) + point.x))\n inside = !inside\n end\n previous_index = index\nend\ninside\n"}},{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L48"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"xmax:Float64-instance-method","name":"xmax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L51"},"def":{"name":"xmax","return_type":"Float64","visibility":"Public","body":"@xmax"}},{"html_id":"xmin:Float64-instance-method","name":"xmin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L49"},"def":{"name":"xmin","return_type":"Float64","visibility":"Public","body":"@xmin"}},{"html_id":"ymax:Float64-instance-method","name":"ymax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L52"},"def":{"name":"ymax","return_type":"Float64","visibility":"Public","body":"@ymax"}},{"html_id":"ymin:Float64-instance-method","name":"ymin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L50"},"def":{"name":"ymin","return_type":"Float64","visibility":"Public","body":"@ymin"}}]},{"html_id":"drivers/Qbic","path":"Qbic.html","kind":"module","full_name":"Qbic","name":"Qbic","abstract":false,"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qbic/TouchPanel","path":"Qbic/TouchPanel.html","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"USERNAME","name":"USERNAME","value":"\"admin\""}],"namespace":{"html_id":"drivers/Qbic","kind":"module","full_name":"Qbic","name":"Qbic"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_info-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L188"},"def":{"name":"device_info","visibility":"Public","body":"query(\"GET\", \"/v1/info/\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_all_leds-instance-method","name":"get_all_leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L216"},"def":{"name":"get_all_leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n self[:light_names] = leds\n leds.each do |name|\n get_led_state(name)\n end\n true\nend"}},{"html_id":"get_eddystone_uid-instance-method","name":"get_eddystone_uid","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L165"},"def":{"name":"get_eddystone_uid","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_uid\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_eddystone_url-instance-method","name":"get_eddystone_url","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L184"},"def":{"name":"get_eddystone_url","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_url\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_ibeacon-instance-method","name":"get_ibeacon","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L143"},"def":{"name":"get_ibeacon","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/ibeacon\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_led_state(name:String)-instance-method","name":"get_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L212"},"def":{"name":"get_led_state","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led/#{name}\") do |data|\n self[name] = JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L60"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nif refresh_token = @refresh_token\n response = post(\"/v1/oauth2/token\", body: {grant_type: \"refresh_token\", refresh_token: refresh_token}.to_json)\n if response.success?\n resp = AuthResponse.from_json(response.body.not_nil!)\n @expired = false\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\n @refresh_token = resp.refresh_token\n return @auth_token\n else\n logger.debug do\n \"refresh token request failed\"\n end\n end\nend\nresponse = post(\"/v1/oauth2/token\", body: {grant_type: \"password\", username: USERNAME, password: @password}.to_json)\ndata = response.body.not_nil!\nif response.success?\n resp = AuthResponse.from_json(data)\n @expired = false\n @refresh_token = resp.refresh_token\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\nelse\n resp = FailureResponse.from_json(data)\n raise(\"failed to obtain access token: #{resp.detail} (#{response.status})\")\nend\n"}},{"html_id":"leds-instance-method","name":"leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L208"},"def":{"name":"leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n self[:leds] = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@password = URI.encode_www_form(setting(String, :password))\ntransport.before_request do |request|\n request.headers[\"Content-Type\"] = \"application/json\"\n if token_expired?\n else\n request.headers[\"Authorization\"] = @auth_token\n end\nend\nschedule.clear\nschedule.every(1.minute) do\n logger.debug do\n \"polling to check connectivity\"\n end\n resp = get(\"/v1/public/info/\")\n if resp.success?\n logger.debug do\n resp.body\n end\n get_all_leds\n end\nend\n"}},{"html_id":"set_all_leds(red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_all_leds","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L235"},"def":{"name":"set_all_leds","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n leds.each do |name|\n set_led_state(name, red, green, blue)\n end\n true\nend"}},{"html_id":"set_eddystone_uid(enabled:Bool,namespace:String|Nil=nil,instance:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_uid","doc":"https://github.com/google/eddystone/tree/master/eddystone-uid","summary":"

https://github.com/google/eddystone/tree/master/eddystone-uid

","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L149"},"def":{"name":"set_eddystone_uid","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_uid\", {enabled: enabled ? \"enabled\" : \"disabled\", namespace: namespace, instance: instance, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_eddystone_url(enabled:Bool,url:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_url","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L170"},"def":{"name":"set_eddystone_url","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_url\", {enabled: enabled ? \"enabled\" : \"disabled\", url: url, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_ibeacon(enabled:Bool,major:UInt16|Nil=nil,minor:UInt16|Nil=nil,uuid:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_ibeacon","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L125"},"def":{"name":"set_ibeacon","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/ibeacon\", {enabled: enabled ? \"enabled\" : \"disabled\", major: major, minor: minor, uuid: uuid, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_led_state(name:String,red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","args_html":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L226"},"def":{"name":"set_led_state","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"value = {red: red, green: green, blue: blue}\nquery(\"POST\", \"/v1/led/#{name}\", value.to_json) do\n self[name] = value\nend\n"}},{"html_id":"set_setting(key:String,value:String|JSON::Any)-instance-method","name":"set_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"args_string":"(key : String, value : String | JSON::Any)","args_html":"(key : String, value : String | JSON::Any)","location":{"filename":"src/qbic/touch_panel.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L197"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"visibility":"Public","body":"query(\"POST\", \"/v1/settings/#{key}\", {value: value}.to_json) do\n true\nend"}},{"html_id":"set_url(value:String)-instance-method","name":"set_url","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String)","args_html":"(value : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L204"},"def":{"name":"set_url","args":[{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"set_setting(\"content_url\", value)"}},{"html_id":"settings-instance-method","name":"settings","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L192"},"def":{"name":"settings","visibility":"Public","body":"query(\"GET\", \"/v1/settings\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"token_expired?:Bool-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L56"},"def":{"name":"token_expired?","visibility":"Public","body":"@expired"}},{"html_id":"update_password(new_password:String)-instance-method","name":"update_password","abstract":false,"args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"args_string":"(new_password : String)","args_html":"(new_password : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L106"},"def":{"name":"update_password","args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"visibility":"Public","body":"if new_password.size >= 4 && new_password.size <= 16\nelse\n raise(\"password must be between 4 and 16 characters\")\nend\nquery(\"POST\", \"/v1/user/password\") do\n define_setting(:password, new_password)\nend\n"}},{"html_id":"wifi_scan-instance-method","name":"wifi_scan","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L114"},"def":{"name":"wifi_scan","visibility":"Public","body":"query(\"GET\", \"/v1/wifi/scan_results\") do |data|\n JSON.parse(data.not_nil!)\nend"}}],"types":[{"html_id":"drivers/Qbic/TouchPanel/AdvertiseMode","path":"Qbic/TouchPanel/AdvertiseMode.html","kind":"enum","full_name":"Qbic::TouchPanel::AdvertiseMode","name":"AdvertiseMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L118"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LowLatency","name":"LowLatency","value":"0"},{"id":"Balanced","name":"Balanced","value":"1"},{"id":"LowPower","name":"LowPower","value":"2"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"instance_methods":[{"html_id":"balanced?-instance-method","name":"balanced?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L120"},"def":{"name":"balanced?","visibility":"Public","body":"self == Balanced"}},{"html_id":"low_latency?-instance-method","name":"low_latency?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L119"},"def":{"name":"low_latency?","visibility":"Public","body":"self == LowLatency"}},{"html_id":"low_power?-instance-method","name":"low_power?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L121"},"def":{"name":"low_power?","visibility":"Public","body":"self == LowPower"}}]},{"html_id":"drivers/Qbic/TouchPanel/AuthResponse","path":"Qbic/TouchPanel/AuthResponse.html","kind":"class","full_name":"Qbic::TouchPanel::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"refresh_token:String-instance-method","name":"refresh_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token","return_type":"String","visibility":"Public","body":"@refresh_token"}},{"html_id":"refresh_token=(refresh_token:String)-instance-method","name":"refresh_token=","abstract":false,"args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"args_string":"(refresh_token : String)","args_html":"(refresh_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token=","args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"visibility":"Public","body":"@refresh_token = refresh_token"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]},{"html_id":"drivers/Qbic/TouchPanel/FailureResponse","path":"Qbic/TouchPanel/FailureResponse.html","kind":"class","full_name":"Qbic::TouchPanel::FailureResponse","name":"FailureResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"detail:String-instance-method","name":"detail","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail","return_type":"String","visibility":"Public","body":"@detail"}},{"html_id":"detail=(detail:String)-instance-method","name":"detail=","abstract":false,"args":[{"name":"detail","external_name":"detail","restriction":"String"}],"args_string":"(detail : String)","args_html":"(detail : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail=","args":[{"name":"detail","external_name":"detail","restriction":"String"}],"visibility":"Public","body":"@detail = detail"}}]}]}]},{"html_id":"drivers/Qsc","path":"Qsc.html","kind":"module","full_name":"Qsc","name":"Qsc","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qsc/QSysControl","path":"Qsc/QSysControl.html","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"about-instance-method","name":"about","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L138"},"def":{"name":"about","visibility":"Public","body":"do_send(\"sg\\n\", name: :status, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L54"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nif @username\n login\nend\nrecreate_change_groups\nschedule.every(40.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n about\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L64"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n"}},{"html_id":"fader(fader_ids:Ids,level:Val)-instance-method","name":"fader","doc":"Compatibility Methods","summary":"

Compatibility Methods

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L163"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = -100..20\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = (level_actual + range.begin.to_f).round(1)\n(ensure_array(fader_ids)).each do |f_id|\n if @history[f_id]? == (:percentage_fader)\n set_value(f_id, level, name: \"fader#{f_id}\")\n else\n set_value(f_id, level_actual, name: \"fader#{f_id}\", fader_type: :fader)\n end\nend\n"}},{"html_id":"faders(fader_ids:Ids,level:Val)-instance-method","name":"faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L181"},"def":{"name":"faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"fader(fader_ids, level)"}},{"html_id":"get_status(control_id:String,**options)-instance-method","name":"get_status","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String, **options)","args_html":"(control_id : String, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L112"},"def":{"name":"get_status","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\ndo_send(\"cg #{control_id}\\n\", **options)\n"}},{"html_id":"history:Hash(String,Symbol)-instance-method","name":"history","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L31"},"def":{"name":"history","return_type":"Hash(String, Symbol)","visibility":"Public","body":"@history"}},{"html_id":"login(username:String|Nil=nil,password:String|Nil=nil)-instance-method","name":"login","abstract":false,"args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil = nil, password : String | Nil = nil)","args_html":"(username : String | Nil = nil, password : String | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L142"},"def":{"name":"login","args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"username || (username = @username)\npassword || (password = @password)\ndo_send(\"login #{username} #{password}\\n\", name: :login, priority: 99)\n"}},{"html_id":"mute(mute_ids:Ids,state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool = true)","args_html":"(mute_ids : Ids, state : Bool = true)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L185"},"def":{"name":"mute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 1 : 0\n(ensure_array(mute_ids)).each do |m_id|\n set_value(m_id, level, fader_type: :mute)\nend\n"}},{"html_id":"mute_toggle(mute_id:Ids)-instance-method","name":"mute_toggle","abstract":false,"args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"args_string":"(mute_id : Ids)","args_html":"(mute_id : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L198"},"def":{"name":"mute_toggle","args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_id, !self[\"fader#{mute_id}_mute\"]?.try(&.as_bool))"}},{"html_id":"mutes(mute_ids:Ids,state:Bool)-instance-method","name":"mutes","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool)","args_html":"(mute_ids : Ids, state : Bool)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L190"},"def":{"name":"mutes","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(mute_ids, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nqueue.retries = 1\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@static_change_groups = (setting?(Hash(String, Group), :change_groups)) || ({} of String => Group)\nif @connected\n if @username\n login\n end\n recreate_change_groups\nend\n"}},{"html_id":"phone_dial(control_id:String)-instance-method","name":"phone_dial","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L233"},"def":{"name":"phone_dial","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"trigger(control_id)\nschedule.in(200.milliseconds) do\n poll_change_group(:phone)\nend\n"}},{"html_id":"phone_hangup(control_id:String)-instance-method","name":"phone_hangup","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L238"},"def":{"name":"phone_hangup","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"phone_dial(control_id)"}},{"html_id":"phone_number(number:String,control_id:String)-instance-method","name":"phone_number","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(number : String, control_id : String)","args_html":"(number : String, control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L229"},"def":{"name":"phone_number","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"set_string(control_id, number)"}},{"html_id":"query_fader(fader_ids:Ids)-instance-method","name":"query_fader","doc":"For inter-module compatibility","summary":"

For inter-module compatibility

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L211"},"def":{"name":"query_fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: (@history[fad]? || (:fader)))\n"}},{"html_id":"query_faders(fader_ids:Ids)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L216"},"def":{"name":"query_faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |f_id|\n get_status(f_id, fader_type: (@history[f_id]? || (:fader)))\nend"}},{"html_id":"query_mute(fader_ids:Ids)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L220"},"def":{"name":"query_mute","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: :mute)\n"}},{"html_id":"query_mutes(fader_ids:Ids)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L225"},"def":{"name":"query_mutes","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |fad|\n get_status(fad, fader_type: :mute)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L277"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nputs(\"GOT: #{data}\")\nif data == \"none\\r\\n\"\n return task.try(&.success)\nend\nlogger.debug do\n \"QSys sent: #{data}\"\nend\nresp = shellsplit(data)\ncase resp[0]\nwhen \"cv\"\n control_id = resp[1]\n string_rep = resp[2]\n value = resp[-2]\n position = resp[-1].to_f\n self[\"pos_#{control_id}\"] = position\n if string_rep.ends_with?('%')\n @history[control_id] = :percentage_fader\n end\n if type = @history[control_id]?\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :percentage_fader\n self[\"fader#{control_id}\"] = value.to_f\n when :mute\n self[\"fader#{control_id}_mute\"] = value.to_i == 1\n end\n else\n value = resp[2]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id} == #{value}\"\n end\n end\nwhen \"cvv\"\n control_id = resp[1]\n count = resp[2].to_i\n if type = @history[control_id]?\n next_count = count + 3\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :mute\n self[\"fader#{control_id}_mute\"] = value == 1\n end\n end\n else\n next_count = 2\n 1.upto(count) do |index|\n value = resp[next_count + index]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id}\"\n end\n next_count = count + 3\n count = resp[next_count].to_i\n end\n next_count = (next_count + count) + 1\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n self[\"pos_#{control_id}\"] = value\n end\nwhen \"sr\"\n self[:design_name] = resp[1]\n self[:is_primary] = resp[3] == \"1\"\n self[:is_active] = resp[4] == \"1\"\nwhen \"core_not_active\", \"bad_change_group_handle\", \"bad_command\", \"bad_id\", \"control_read_only\", \"too_many_change_groups\"\n return task.try(&.abort(\"Error response received: #{data}\"))\nwhen \"login_required\"\n if @username\n login\n end\n return task.try(&.abort(\"Login is required!\"))\nwhen \"login_success\"\n logger.debug do\n \"Login success!\"\n end\nwhen \"login_failed\"\n return task.try(&.abort(\"Invalid login details provided\"))\nwhen \"rc\"\n logger.warn do\n \"System is notifying us of a disconnect!\"\n end\nwhen \"cmvv\"\n logger.debug do\n \"received cmvv response\"\n end\nelse\n logger.warn do\n \"Unknown response received #{data}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_snapshot(name:String,index:Int32)-instance-method","name":"save_snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(name : String, index : Int32)","args_html":"(name : String, index : Int32)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L206"},"def":{"name":"save_snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(\"sss \\\"#{name}\\\" #{index}\\n\")"}},{"html_id":"set_position(control_id:String,position:Int32,ramp_time:Val|Nil=nil)-instance-method","name":"set_position","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","args_html":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L118"},"def":{"name":"set_position","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"visibility":"Public","body":"if ramp_time\n do_send(\"cspr \\\"#{control_id}\\\" #{position} #{ramp_time}\\n\")\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csp \\\"#{control_id}\\\" #{position}\\n\")\nend"}},{"html_id":"set_string(control_ids:Ids,text:String)-instance-method","name":"set_string","doc":"Used to set a dial number/string","summary":"

Used to set a dial number/string

","abstract":false,"args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(control_ids : Ids, text : String)","args_html":"(control_ids : Ids, text : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L149"},"def":{"name":"set_string","args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"(ensure_array(control_ids)).each do |id|\n (do_send(\"css \\\"#{id}\\\" \\\"#{text}\\\"\\n\")).get\n self[id] = text\nend"}},{"html_id":"set_value(control_id:String,value:Val,ramp_time:Val|Nil=nil,**options)-instance-method","name":"set_value","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","args_html":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L127"},"def":{"name":"set_value","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\nif ramp_time\n do_send(\"csvr \\\"#{control_id}\\\" #{value} #{ramp_time}\\n\", **options)\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csv \\\"#{control_id}\\\" #{value}\\n\", **options)\nend\n"}},{"html_id":"snapshot(name:String,index:Int32,ramp_time:Val=1.5)-instance-method","name":"snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"args_string":"(name : String, index : Int32, ramp_time : Val = 1.5)","args_html":"(name : String, index : Int32, ramp_time : Val = 1.5)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L202"},"def":{"name":"snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"visibility":"Public","body":"do_send(\"ssl \\\"#{name}\\\" #{index} #{ramp_time}\\n\")"}},{"html_id":"trigger(control_id:String)-instance-method","name":"trigger","doc":"Used to trigger dialing etc","summary":"

Used to trigger dialing etc

","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L157"},"def":{"name":"trigger","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Sending trigger to Qsys: ct #{control_id}\"\nend\ndo_send(\"ct \\\"#{control_id}\\\"\\n\")\n"}},{"html_id":"unmute(mute_ids:Ids)-instance-method","name":"unmute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"args_string":"(mute_ids : Ids)","args_html":"(mute_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L194"},"def":{"name":"unmute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_ids, false)"}}],"types":[{"html_id":"drivers/Qsc/QSysControl/Group","path":"Qsc/QSysControl/Group.html","kind":"alias","full_name":"Qsc::QSysControl::Group","name":"Group","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: Int32, controls: Set(String))","aliased_html":"{id: Int32, controls: Set(String)}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Ids","path":"Qsc/QSysControl/Ids.html","kind":"alias","full_name":"Qsc::QSysControl::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Val","path":"Qsc/QSysControl/Val.html","kind":"alias","full_name":"Qsc::QSysControl::Val","name":"Val","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}}]},{"html_id":"drivers/Qsc/QSysRemote","path":"Qsc/QSysRemote.html","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BoolVals","name":"BoolVals","value":"[\"true\", \"false\"]"},{"id":"DB_RANGE","name":"DB_RANGE","value":"-100..20"},{"id":"Delimiter","name":"Delimiter","value":"\"\\u0000\""},{"id":"Errors","name":"Errors","value":"{-32700 => \"Parse error. Invalid JSON was received by the server.\", -32600 => \"Invalid request. The JSON sent is not a valid Request object.\", -32601 => \"Method not found.\", -32602 => \"Invalid params.\", -32603 => \"Server error.\", 2 => \"Invalid Page Request ID\", 3 => \"Bad Page Request - could not create the requested Page Request\", 4 => \"Missing file\", 5 => \"Change Groups exhausted\", 6 => \"Unknown change croup\", 7 => \"Unknown component name\", 8 => \"Unknown control\", 9 => \"Illegal mixer channel index\", 10 => \"Logon required\"}"},{"id":"Faders","name":"Faders","value":"{matrix_in: {type: :\"Mixer.SetInputGain\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputGain\", pri: :Outputs}, matrix_crosspoint: {type: :\"Mixer.SetCrossPointGain\", pri: :Inputs, sec: :Outputs}}"},{"id":"JsonRpcVer","name":"JsonRpcVer","value":"\"2.0\""},{"id":"Mutes","name":"Mutes","value":"{matrix_in: {type: :\"Mixer.SetInputMute\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputMute\", pri: :Outputs}}"}],"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_poll_change_group(group_id:String,every:Num,**options)-instance-method","name":"auto_poll_change_group","doc":"Where every is the number of seconds between polls","summary":"

Where every is the number of seconds between polls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"args_string":"(group_id : String, every : Num, **options)","args_html":"(group_id : String, every : Num, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L175"},"def":{"name":"auto_poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AutoPoll\", {:Id => group_id, :Rate => every}, **options)"}},{"html_id":"change_group_add_component(group_id:String,component_name:String,controls:Array(String),**options)-instance-method","name":"change_group_add_component","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, component_name : String, controls : Array(String), **options)","args_html":"(group_id : String, component_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L149"},"def":{"name":"change_group_add_component","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddComponentControl\", {:Id => group_id, :Component => {:Name => component_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}}, **options)"}},{"html_id":"change_group_add_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_add_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L135"},"def":{"name":"change_group_add_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddControl\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"change_group_remove_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_remove_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L142"},"def":{"name":"change_group_remove_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Remove\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"clear_change_group(group_id:String,**options)-instance-method","name":"clear_change_group","doc":"Removes all controls from change group","summary":"

Removes all controls from change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L170"},"def":{"name":"clear_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Clear\", {:Id => group_id}, **options)"}},{"html_id":"component_get(c_name:String,controls:Array(String),**options)-instance-method","name":"component_get","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(c_name : String, controls : Array(String), **options)","args_html":"(c_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L108"},"def":{"name":"component_get","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Get\", {:Name => c_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}, **options)"}},{"html_id":"component_set(c_name:String,values:Values,**options)-instance-method","name":"component_set","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"args_string":"(c_name : String, values : Values, **options)","args_html":"(c_name : String, values : Values, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L115"},"def":{"name":"component_set","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"values = ensure_array(values)\ndo_send(next_id, \"Component.Set\", {:Name => c_name, :Controls => values}, **options)\n"}},{"html_id":"component_trigger(component:String,trigger:String,**options)-instance-method","name":"component_trigger","abstract":false,"args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"args_string":"(component : String, trigger : String, **options)","args_html":"(component : String, trigger : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L124"},"def":{"name":"component_trigger","args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Trigger\", {:Name => component, :Controls => [{:Name => trigger}]}, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(20.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n no_op\nend\n@id = 0\n"}},{"html_id":"control_get(names:Array(String),**options)-instance-method","name":"control_get","abstract":false,"args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"args_string":"(names : Array(String), **options)","args_html":"(names : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L104"},"def":{"name":"control_get","args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Control.Get\", names, **options)"}},{"html_id":"control_set(name:String,value:Num|Bool,ramp:Num|Nil=nil,**options)-instance-method","name":"control_set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"args_string":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","args_html":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L87"},"def":{"name":"control_set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if ramp\n params = {:Name => name, :Value => value, :Ramp => ramp}\nelse\n params = {:Name => name, :Value => value}\nend\ndo_send(next_id, \"Control.Set\", params, **options)\n"}},{"html_id":"destroy_change_group(group_id:String,**options)-instance-method","name":"destroy_change_group","doc":"Removes the change group","summary":"

Removes the change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L165"},"def":{"name":"destroy_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Destroy\", {:Id => group_id}, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(fader_ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",use_value:Bool=false,**options)-instance-method","name":"fader","doc":"value can either be a number to set actual numeric values like decibels\nor Bool to deal with mute state","summary":"

value can either be a number to set actual numeric values like decibels or Bool to deal with mute state

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"args_string":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", use_value : Bool = false, **options)","args_html":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", use_value : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L264"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"faders = ensure_array(fader_ids)\nif component && (val = value.as?(Num))\n val = val.to_f.clamp(0.0, 100.0)\n if @db_based_faders || use_value\n percentage = val / 100.0\n level_actual = percentage * (DB_RANGE.size - 1).to_f\n level_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\n fads = faders.map do |fad|\n {Name: fad, Value: level_actual}\n end\n else\n fads = faders.map do |fad|\n {Name: fad, Position: val}\n end\n end\n (component_set(component, fads, name: \"level_#{faders[0]}\")).get\n component_get(component, faders)\nelse\n reqs = faders.map do |fad|\n control_set(fad, value)\n end\n reqs.last.get\n control_get(faders)\nend\n"}},{"html_id":"faders(ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L290"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(ids, value, component, type, **options)"}},{"html_id":"get_components(**options)-instance-method","name":"get_components","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L131"},"def":{"name":"get_components","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.GetComponents\", **options)"}},{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L72"},"def":{"name":"get_status","visibility":"Public","body":"do_send(next_id, cmd: :StatusGet, params: 0, priority: 0)"}},{"html_id":"logon-instance-method","name":"logon","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L76"},"def":{"name":"logon","visibility":"Public","body":"do_send(cmd: :Logon, params: {:User => @username, :Password => @password}, priority: 99)"}},{"html_id":"matrix_fader(name:String,level:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_fader","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, level : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, level : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L213"},"def":{"name":"matrix_fader","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Faders[type]\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nlevel_actual = percentage * (DB_RANGE.size - 1).to_f\nlevel_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\nif sec = info[:sec]?\n params = {:Name => name, info[:pri] => index[0], sec => index[1], :Value => level_actual}\nelse\n params = {:Name => name, info[:pri] => index, :Value => level_actual}\nend\ndo_send(next_id, info[:type], params, **options)\n"}},{"html_id":"matrix_mute(name:String,value:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_mute","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, value : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, value : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L252"},"def":{"name":"matrix_mute","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Mutes[type]\ndo_send(next_id, info[:type], {:Name => name, info[:pri] => index, :Value => value}, **options)\n"}},{"html_id":"mixer(name:String,inouts:Hash(Int32,Int32|Array(Int32)),mute:Bool=false,**options)-instance-method","name":"mixer","doc":"Example usage:\nmixer 'Parade', {1 => [2,3,4], 3 => 6}, true","summary":"

Example usage: mixer 'Parade', {1 => [2,3,4], 3 => 6}, true

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","args_html":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L184"},"def":{"name":"mixer","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, outputs|\n outputs = ensure_array(outputs)\n do_send(next_id, \"Mixer.SetCrossPointMute\", {:Name => name, :Inputs => input.to_s, :Outputs => outputs.join(' '), :Value => mute}, **options)\nend"}},{"html_id":"mute(fader_id:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L294"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(fader_id, state, component, type, state, **options)"}},{"html_id":"mutes(ids:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L298"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(ids, state, component, type, **options)"}},{"html_id":"next_id-instance-method","name":"next_id","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L398"},"def":{"name":"next_id","visibility":"Public","body":"@id = @id + 1\n@id\n"}},{"html_id":"no_op-instance-method","name":"no_op","doc":"This command does nothing but is useful for making sure the socket is left open","summary":"

This command does nothing but is useful for making sure the socket is left open

","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L68"},"def":{"name":"no_op","visibility":"Public","body":"do_send(cmd: :NoOp, priority: 0, wait: false)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Delimiter)\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@db_based_faders = setting?(Bool, :db_based_faders)\n@username = setting?(String, :username)\n@password = setting?(String, :password)\nif @username && @password\n logon\nend\n"}},{"html_id":"poll_change_group(group_id:String,**options)-instance-method","name":"poll_change_group","doc":"Returns values for all the controls","summary":"

Returns values for all the controls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L160"},"def":{"name":"poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Poll\", {:Id => group_id}, **options)"}},{"html_id":"query_fader(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L306"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"faders = ensure_array(fader_id)\ncomponent ? component_get(component, faders) : control_get(faders)\n"}},{"html_id":"query_faders(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L311"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"query_mute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L315"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(fader_id, component, type)"}},{"html_id":"query_mutes(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L319"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L323"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nresponse = JSON.parse(data)\nlogger.debug do\n \"QSys sent:\"\nend\nlogger.debug do\n response\nend\nif err = response[\"error\"]?\n code = err[\"code\"]\n logger.warn do\n \"Error code #{code} - #{Errors[code]}\"\n end\n if code == 10\n if @username && @password\n logon.get\n return task.try(&.retry(\"Logged on and retrying command\"))\n else\n return task.try(&.abort(\"Login required but no username and/or password in settings\"))\n end\n end\n return task.try(&.abort(err[\"message\"]))\nend\nif result = response[\"result\"]?\nelse\n return task.try(&.success(\"Unknown response\"))\nend\ncase result\nwhen .as_h?\n if result[\"Controls\"]?\n process(result[\"Controls\"].as_a, result[\"Name\"]?)\n else\n if result[\"Platform\"]?\n result.as_h.each do |k, v|\n self[k.underscore] = v\n end\n end\n end\nwhen .as_a?\n process(result.as_a)\nend\ntask.try(&.success)\n"}},{"html_id":"unmute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L302"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(fader_id, false, component, type, **options)"}}],"types":[{"html_id":"drivers/Qsc/QSysRemote/Ids","path":"Qsc/QSysRemote/Ids.html","kind":"alias","full_name":"Qsc::QSysRemote::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Num","path":"Qsc/QSysRemote/Num.html","kind":"alias","full_name":"Qsc::QSysRemote::Num","name":"Num","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/PosTup","path":"Qsc/QSysRemote/PosTup.html","kind":"alias","full_name":"Qsc::QSysRemote::PosTup","name":"PosTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Position: Float64 | Int32)","aliased_html":"{Name: String, Position: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/ValTup","path":"Qsc/QSysRemote/ValTup.html","kind":"alias","full_name":"Qsc::QSysRemote::ValTup","name":"ValTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Value: Float64 | Int32)","aliased_html":"{Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Values","path":"Qsc/QSysRemote/Values.html","kind":"alias","full_name":"Qsc::QSysRemote::Values","name":"Values","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(NamedTuple(Name: String, Position: Float64 | Int32)) | Array(NamedTuple(Name: String, Value: Float64 | Int32)) | NamedTuple(Name: String, Position: Float64 | Int32) | NamedTuple(Name: String, Value: Float64 | Int32))","aliased_html":"Array({Name: String, Position: Float64 | Int32}) | Array({Name: String, Value: Float64 | Int32}) | {Name: String, Position: Float64 | Int32} | {Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}}]}]},{"html_id":"drivers/RHBAccess","path":"RHBAccess.html","kind":"module","full_name":"RHBAccess","name":"RHBAccess","abstract":false,"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/RHBAccess/AxiomRoomLogic","path":"RHBAccess/AxiomRoomLogic.html","kind":"class","full_name":"RHBAccess::AxiomRoomLogic","name":"AxiomRoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock-instance-method","name":"lock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L25"},"def":{"name":"lock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.lock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while LOCKING #{@door_ids}\"\n end\nelse\n self[\"locked_by_placeos_at\"] = Time.local\n status?\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@door_ids = setting(Array(String), :axiom_door_ids)\n@cron_string = setting(String, :axiom_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n status?\nend\n"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L43"},"def":{"name":"status?","visibility":"Public","body":"begin\n result = @door_ids.map do |id|\n {id, (axiom.status?(id)).get}\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR requesting STATUS of #{@door_ids}\"\n end\nelse\n doors_locked = 0\n result.each do |id, status|\n self[id] = status[\"Status\"]\n if status[\"Status\"].to_s.starts_with?(\"Locked\")\n doors_locked = doors_locked + 1\n end\n end\n self[\"doors_locked\"] = doors_locked\nend"}},{"html_id":"unlock-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L34"},"def":{"name":"unlock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.unlock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while UNLOCKING #{@door_ids}\"\n end\nelse\n self[\"unlocked_by_placeos_at\"] = Time.local\n status?\nend"}}]},{"html_id":"drivers/RHBAccess/Axiomxa","path":"RHBAccess/Axiomxa.html","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock(id:String,permanent:Bool=false)-instance-method","name":"lock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L23"},"def":{"name":"lock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg0|\n __arg0.access_points.lock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"locked\", \"permanent\" => permanent.to_s}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiomxa.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@client = Client.new(base_url: host_name.to_s, username: setting(String, :username), password: setting(String, :password))\n"}},{"html_id":"status?(id:String)-instance-method","name":"status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L33"},"def":{"name":"status?","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = @client.try() do |__arg2|\n __arg2.access_points.status(id: id)\nend\nself[\"access_point_#{id}_status\"] = JSON.parse(response.not_nil!.body)\n"}},{"html_id":"unlock(id:String,permanent:Bool=false)-instance-method","name":"unlock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L28"},"def":{"name":"unlock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg1|\n __arg1.access_points.unlock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"unlocked\", \"permanent\" => permanent.to_s}\n"}}],"types":[{"html_id":"drivers/RHBAccess/Axiomxa/Client","path":"RHBAccess/Axiomxa/Client.html","kind":"alias","full_name":"RHBAccess::Axiomxa::Client","name":"Client","abstract":false,"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Axio::Client","aliased_html":"Axio::Client","const":false,"namespace":{"html_id":"drivers/RHBAccess/Axiomxa","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa"}}]}]},{"html_id":"drivers/Rhombus","path":"Rhombus.html","kind":"module","full_name":"Rhombus","name":"Rhombus","abstract":false,"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Rhombus/SecurityInterop","path":"Rhombus/SecurityInterop.html","kind":"class","full_name":"Rhombus::SecurityInterop","name":"SecurityInterop","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"door_event(json:String)-instance-method","name":"door_event","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L76"},"def":{"name":"door_event","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"new door event detected: #{json}\"\nend\nwebhook = Webhook.new(Interface::DoorSecurity::DoorEvent.from_json(json))\n@event_count = @event_count + 1_u64\n@subscriptions.each do |sub|\n begin\n logger.debug do\n \"notifying webhook of new door event: #{sub.webhook}\"\n end\n webhook.sign(sub.secret)\n response = HTTP::Client.post(sub.webhook, HTTP::Headers {\"Content-Type\" => \"application/json\"}, webhook.to_json)\n if response.success?\n else\n logger.warn do\n \"request #{sub.webhook} failed with status: #{response.status_code}\\n#{response.body}\"\n end\n end\n rescue error\n logger.error(exception: error) do\n \"failed to notify subscription: #{sub.webhook}\"\n end\n end\nend\nself[:event_count] = @event_count\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_interop.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\norg_id = (setting?(String, :organization_id)) || \"event\"\nmonitor(\"security/#{org_id}/door\") do |_subscription, payload|\n door_event(payload)\nend\n@subscriptions = (setting?(Array(Subscription), :subscriptions)) || ([] of Subscription)\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n"}},{"html_id":"request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L31"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\n end\n if @debug_webhook\n logger.debug do\n body\n end\n end\n case method.downcase\n when \"post\"\n @subscriptions << (Subscription.from_json(body))\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::CREATED.to_i, {} of String => String, \"\"}\n when \"delete\"\n sub_webhook = (Subscription.from_json(body)).webhook\n @subscriptions.reject! do |sub|\n sub.webhook == sub_webhook\n end\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::ACCEPTED.to_i, {} of String => String, \"\"}\n when \"get\"\n all_doors = [] of JSON::Any\n security.door_list.get.each do |doors|\n all_doors.concat(doors.as_a)\n end\n {HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, {doors: all_doors}.to_json}\n when \"put\"\n door = (Interface::DoorSecurity::Door.from_json(body)).door_id\n case (security.unlock(door)).get.first.as_bool?\n in true\n {HTTP::Status::OK.to_i, {} of String => String, \"\"}\n in false\n {HTTP::Status::FORBIDDEN.to_i, {} of String => String, \"\"}\n in nil\n {HTTP::Status::NOT_IMPLEMENTED.to_i, {} of String => String, \"\"}\n end\n else\n {HTTP::Status::BAD_REQUEST.to_i, {\"Content-Type\" => \"application/json\"}, {error: \"unexpected HTTP request method: #{method}\"}.to_json}\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, error.message.to_s}\nend"}}]},{"html_id":"drivers/Rhombus/SecurityMock","path":"Rhombus/SecurityMock.html","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"card_holders:Array(CardUser)-instance-method","name":"card_holders","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L23"},"def":{"name":"card_holders","return_type":"Array(CardUser)","visibility":"Public","body":"@card_holders"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L22"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"@door_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"door_list_size = (setting?(Int32, :door_list_size)) || 30\nFaker.seed(door_list_size)\ndoor_id = 1000\ndoors = Array(Door).new(door_list_size)\ndoor_list_size.times do\n doors << (Door.new(door_id.to_s, Faker::Commerce.department))\n door_id = door_id + 1\nend\n@door_list = doors\n@card_holders = (0..10).map do\n CardUser.new(Faker::Business.credit_card_number, Faker::Name.name, Faker::Internet.safe_email)\nend\nswipe_event_period = (setting?(Int32, :swipe_event_every)) || 30\nschedule.clear\nschedule.every(swipe_event_period.seconds) do\n door = doors.sample\n action = Action::Granted\n case rand(6)\n when 0, 1, 2\n user = card_holders.sample\n when 3\n action = Action::Denied\n user = card_holders.sample\n when 4\n action = Action::Tamper\n when 5\n action = Action::RequestToExit\n end\n publish(\"security/event/door\", DoorEvent.new(module_id: module_id, security_system: \"mock\", door_id: door.door_id, action: action, card_id: user.try(&.card_id), user_name: user.try(&.user_name), user_email: user.try(&.user_email)).to_json)\nend\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/rhombus/security_mock.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L81"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"self[:last_unlocked] = door_id\ntrue\n"}}],"types":[{"html_id":"drivers/Rhombus/SecurityMock/CardUser","path":"Rhombus/SecurityMock/CardUser.html","kind":"struct","full_name":"Rhombus::SecurityMock::CardUser","name":"CardUser","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus/SecurityMock","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock"},"constructors":[{"html_id":"new(card_id:String,user_name:String,user_email:String)-class-method","name":"new","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(card_id : String, user_name : String, user_email : String)","args_html":"(card_id : String, user_name : String, user_email : String)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"new","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(card_id, user_name, user_email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_mock.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card_id:String-instance-method","name":"card_id","abstract":false,"def":{"name":"card_id","return_type":"String","visibility":"Public","body":"@card_id"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@card_id.clone, @user_name.clone, @user_email.clone)"}},{"html_id":"copy_with(card_id_card_id=@card_id,user_name_user_name=@user_name,user_email_user_email=@user_email)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"args_string":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","args_html":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"visibility":"Public","body":"self.class.new(_card_id, _user_name, _user_email)"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Rhombus/Subscription","path":"Rhombus/Subscription.html","kind":"class","full_name":"Rhombus::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(webhook:String,secret:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"args_string":"(webhook : String, secret : Nil | String = nil)","args_html":"(webhook : String, secret : Nil | String = nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L12"},"def":{"name":"new","args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(webhook, secret)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"secret:String|Nil-instance-method","name":"secret","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L10"},"def":{"name":"secret","return_type":"String | ::Nil","visibility":"Public","body":"@secret"}},{"html_id":"webhook:String-instance-method","name":"webhook","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L9"},"def":{"name":"webhook","return_type":"String","visibility":"Public","body":"@webhook"}}]},{"html_id":"drivers/Rhombus/Webhook","path":"Rhombus/Webhook.html","kind":"class","full_name":"Rhombus::Webhook","name":"Webhook","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(event:PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)-class-method","name":"new","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"args_string":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","args_html":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L27"},"def":{"name":"new","args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"visibility":"Public","body":"_ = allocate\n_.initialize(event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"action:PlaceOS::Driver::Interface::DoorSecurity::Action-instance-method","name":"action","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L22"},"def":{"name":"action","return_type":"PlaceOS::Driver::Interface::DoorSecurity::Action","visibility":"Public","body":"@action"}},{"html_id":"card_id:String|Nil-instance-method","name":"card_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L23"},"def":{"name":"card_id","return_type":"String | ::Nil","visibility":"Public","body":"@card_id"}},{"html_id":"door_id:String-instance-method","name":"door_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L19"},"def":{"name":"door_id","return_type":"String","visibility":"Public","body":"@door_id"}},{"html_id":"sign(secret:String|Nil)-instance-method","name":"sign","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"args_string":"(secret : String | Nil)","args_html":"(secret : String | Nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L37"},"def":{"name":"sign","args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"visibility":"Public","body":"if key = secret.presence\n @signature = OpenSSL::HMAC.hexdigest(:sha256, key, timestamp.to_rfc3339)\nelse\n @signature = nil\nend\nself\n"}},{"html_id":"signature:String|Nil-instance-method","name":"signature","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L21"},"def":{"name":"signature","return_type":"String | ::Nil","visibility":"Public","body":"@signature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L20"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"user_email:String|Nil-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L25"},"def":{"name":"user_email","return_type":"String | ::Nil","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String|Nil-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L24"},"def":{"name":"user_name","return_type":"String | ::Nil","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Samsung","path":"Samsung.html","kind":"module","full_name":"Samsung","name":"Samsung","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Samsung/Displays","path":"Samsung/Displays.html","kind":"module","full_name":"Samsung::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Samsung","kind":"module","full_name":"Samsung","name":"Samsung"},"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol","path":"Samsung/Displays/MDCProtocol.html","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEVICE_SETTINGS","name":"DEVICE_SETTINGS","value":"{network_standby: Bool, auto_off_timer: Bool, auto_power: Bool, volume: Num, contrast: Num, brightness: Num, sharpness: Num, colour: Num, tint: Num, red_gain: Num, green_gain: Num, blue_gain: Num}"},{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_off_timer(value:Bool,**options)-instance-method","name":"auto_off_timer","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_off_timer","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_off_timer\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_off_timer\"), data, **options)\n"}},{"html_id":"auto_power(value:Bool,**options)-instance-method","name":"auto_power","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_power","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_power\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_power\"), data, **options)\n"}},{"html_id":"blue_gain(value:Num,**options)-instance-method","name":"blue_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"blue_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"blue_gain\"), data, **options)\n"}},{"html_id":"brightness(value:Num,**options)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"brightness\"), data, **options)\n"}},{"html_id":"colour(value:Num,**options)-instance-method","name":"colour","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"colour","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"colour\"), data, **options)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L88"},"def":{"name":"connected","visibility":"Public","body":"if self[:hard_off]?.try(&.as_bool)\nelse\n do_device_config\nend\nschedule.every(30.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Num,**options)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"contrast\"), data, **options)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L96"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L215"},"def":{"name":"do_device_config","visibility":"Public","body":"{% for name, kind in DEVICE_SETTINGS %}\n %value = setting?({{ kind }}, {{ name.id.stringify }})\n {{ name.id }}(%value) if %value\n {% end %}"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L181"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::Status, Bytes.empty, priority: 0)\nif self[:hard_off]?.try(&.as_bool)\nelse\n power?\nend\n"}},{"html_id":"green_gain(value:Num,**options)-instance-method","name":"green_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"green_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"green_gain\"), data, **options)\n"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L119"},"def":{"name":"hard_off","visibility":"Public","body":"if self[:power]?.try(&.as_bool)\n do_send(Command::PanelMute, 0)\nend\ndo_send(Command::HardOff, 0)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L130"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L146"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","doc":"Adds video mute state compatible with projectors","summary":"

Adds video mute state compatible with projectors

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L140"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1 : 0\ndo_send(Command::PanelMute, state)\n"}},{"html_id":"network_standby(value:Bool,**options)-instance-method","name":"network_standby","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"network_standby","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"network_standby\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"network_standby\"), data, **options)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L62"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L82"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\n@blank = (setting?(String, :blanking_input)).try(&->Input.parse(String))\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L102"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n do_send(Command::HardOff, 1)\n do_send(Command::PanelMute, 0)\nelse\n if (blanking_input = @blank) && self[:power]?\n switch_to(blanking_input)\n end\n do_send(Command::PanelMute, 1)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L124"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::PanelMute, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L237"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .status?\n self[:hard_off] = hard_off = values[0] == 0\n if hard_off\n self[:power] = false\n end\n self[:volume] = values[1]\n self[:audio_mute] = values[2] == 1\n self[:input] = Input.from_value(values[3])\n check_power_state\n when .panel_mute?\n self[:power] = value == 0\n check_power_state\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .brightness?\n self[:brightness] = value\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n if self[:screen_split]?.try(&.as_bool)\n else\n if current_input == @input_target\n @input_target = nil\n else\n if input_target = @input_target\n switch_to(input_target)\n end\n end\n end\n when .speaker?\n self[:speaker] = SpeakerMode.from_value(value)\n when .hard_off?\n if self[:hard_off]?.try(&.as_bool)\n else\n self[:hard_off] = hard_off = value == 0\n if hard_off\n self[:power] = false\n end\n end\n when .screen_split?\n self[:screen_split] = value >= 0\n when .software_version?\n self[:software_version] = values.join\n when .serial_number?\n self[:serial_number] = values.join\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"red_gain(value:Num,**options)-instance-method","name":"red_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"red_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"red_gain\"), data, **options)\n"}},{"html_id":"serial_number-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L163"},"def":{"name":"serial_number","visibility":"Public","body":"do_send(Command::SerialNumber)"}},{"html_id":"sharpness(value:Num,**options)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"sharpness\"), data, **options)\n"}},{"html_id":"software_version-instance-method","name":"software_version","doc":"check software version","summary":"

check software version

","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L159"},"def":{"name":"software_version","visibility":"Public","body":"do_send(Command::SoftwareVersion)"}},{"html_id":"speaker_select(mode:SpeakerMode,**options)-instance-method","name":"speaker_select","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"args_string":"(mode : SpeakerMode, **options)","args_html":"(mode : SpeakerMode, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L177"},"def":{"name":"speaker_select","args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Speaker, mode.value, **options)"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L167"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"tint(value:Num,**options)-instance-method","name":"tint","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"tint","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"tint\"), data, **options)\n"}},{"html_id":"volume(value:Num,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"volume\"), data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L227"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L222"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol/Command","path":"Samsung/Displays/MDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L332"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L339"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L340"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L327"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L321"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L347"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L323"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L320"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L326"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L317"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L328"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":329,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L329"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L338"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L318"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L331"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L325"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L334"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L341"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L343"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L322"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L330"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L342"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L337"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L316"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L344"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L345"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L324"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L319"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":333,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L333"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L335"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L336"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Input","path":"Samsung/Displays/MDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Num","path":"Samsung/Displays/MDCProtocol/Num.html","kind":"alias","full_name":"Samsung::Displays::MDCProtocol::Num","name":"Num","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"}},{"html_id":"drivers/Samsung/Displays/MDCProtocol/ResponseStatus","path":"Samsung/Displays/MDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L232"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L233"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L234"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/SpeakerMode","path":"Samsung/Displays/MDCProtocol/SpeakerMode.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::SpeakerMode","name":"SpeakerMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L172"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Internal","name":"Internal","value":"0"},{"id":"External","name":"External","value":"1"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"external?-instance-method","name":"external?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L174"},"def":{"name":"external?","visibility":"Public","body":"self == External"}},{"html_id":"internal?-instance-method","name":"internal?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L173"},"def":{"name":"internal?","visibility":"Public","body":"self == Internal"}}]}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","path":"Samsung/Displays/ReducedMDCProtocol.html","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_whiteboard-instance-method","name":"clear_whiteboard","doc":"if the user has been using the display as a whiteboard\nthen the display needs to switch input","summary":"

if the user has been using the display as a whiteboard then the display needs to switch input

","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L148"},"def":{"name":"clear_whiteboard","visibility":"Public","body":"target_input = @input_target\nclear_input = @whiteboard_clear_input\nif target_input && clear_input\n (switch_to(clear_input)).get\n switch_to(target_input)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L93"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L99"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L165"},"def":{"name":"do_device_config","visibility":"Public","body":"value = setting?(Int32 | Float64, :volume)\nif value\n volume(value)\nend\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n do_send(Command::Volume, Bytes.empty, priority: 0)\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L110"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::HardOff, 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L120"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.audio? || layer.audio_video?\n mute_audio(state)\nend"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L129"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L83"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\nif clear_input = setting?(String, :whiteboard_clear_input)\n @whiteboard_clear_input = Input.parse(clear_input)\nelse\n @whiteboard_clear_input = nil\nend\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L105"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\ndo_send(Command::HardOff, state ? 1 : 0)\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L114"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::HardOff, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L190"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n when .hard_off?\n self[:power] = value != 0\n check_power_state\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L141"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"volume(value:Int32|Float64,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64, **options)","args_html":"(value : Int32 | Float64, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L170"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L180"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L175"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Command","path":"Samsung/Displays/ReducedMDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L240"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L257"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L264"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L265"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L252"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L246"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L272"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L248"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L245"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L251"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L242"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L253"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L254"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L263"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L243"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L256"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L250"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L259"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L266"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L268"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L247"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L255"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L267"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L262"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L241"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L269"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L270"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L249"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L244"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L258"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L260"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L261"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Input","path":"Samsung/Displays/ReducedMDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/ResponseStatus","path":"Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L186"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L187"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Screen","path":"Screen.html","kind":"class","full_name":"Screen","name":"Screen","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}}]},{"html_id":"drivers/ScreenTechnics","path":"ScreenTechnics.html","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics","abstract":false,"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/ScreenTechnics/Connect","path":"ScreenTechnics/Connect.html","kind":"class","full_name":"ScreenTechnics::Connect","name":"Connect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_LOOKUP","name":"CMD_LOOKUP","value":"{30 => :up, 33 => :down, 1 => :status, 36 => :stop}"},{"id":"COMMANDS","name":"COMMANDS","value":"{up: 30, down: 33, status: 1, stop: 36}"},{"id":"STATUS","name":"STATUS","value":"{0 => :moving_top, 1 => :moving_bottom, 2 => :moving_preset_1, 3 => :moving_preset_2, 4 => :moving_top, 5 => :moving_bottom, 6 => :at_top, 7 => :at_bottom, 8 => :at_preset_1, 9 => :at_preset_2, 10 => :stopped, 11 => :error, 13 => :error_timeout, 14 => :error_current, 15 => :error_rattle, 16 => :at_bottom}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/ScreenTechnics","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L44"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds, immediate: true) do\n (0...@count).each do |index|\n query_state(index)\n end\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"queue.clear\nschedule.clear\n"}},{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L68"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if down?(index)\n return\nend\nstop(index)\ndo_send(:down, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"down?(index:Int32=0)-instance-method","name":"down?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L75"},"def":{"name":"down?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_bottom\", \"at_bottom\"}.includes?(self[\"screen#{index}\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L55"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i\ncase position\nwhen MoveablePosition::Up\n up(index)\nwhen MoveablePosition::Down\n down(index)\nelse\n raise(\"invalid position requested\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 500.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@count = (setting?(Int32, :screen_count)) || 1"}},{"html_id":"query_state(index:Int32=0)-instance-method","name":"query_state","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L101"},"def":{"name":"query_state","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(:status, index, 32)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/screen_technics/connect.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L125"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Screen sent #{data}\"\nend\nparts = (data.split(/,/)).map do |__arg0|\n __arg0.strip.to_i\nend\ncmd = CMD_LOOKUP[parts[0] - 100]?\nif cmd\n index = parts[2] - 17\n case cmd\n when :up\n logger.debug do\n \"Screen#{index} moving up\"\n end\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = true\n when :down\n logger.debug do\n \"Screen#{index} moving down\"\n end\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = true\n when :stop\n logger.debug do\n \"Screen#{index} stopped\"\n end\n self[\"moving#{index}\"] = false\n screen = \"screen#{index}\"\n if {\"at_top\", \"at_bottom\"}.includes?(self[screen]?)\n else\n self[screen] = :stopped\n end\n when :status\n self[\"screen#{index}\"] = status = STATUS[parts[-1]]\n case status\n when :moving_top, :at_top\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = status == (:moving_top)\n when :moving_bottom, :at_bottom\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = status == (:moving_bottom)\n when :stopped\n self[\"moving#{index}\"] = false\n when :error, :error_timeout, :error_current, :error_rattle\n self[\"moving#{index}\"] = false\n end\n end\n task.try(&.success)\nelse\n error = \"Unknown command #{parts[0]}\"\n logger.debug do\n error\n end\n task.try(&.abort(error))\nend\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/screen_technics/connect.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L90"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i\ndo_send(:stop, index, name: \"stop#{index}\", clear_queue: emergency, priority: emergency ? (queue.priority + 50) : queue.priority)\n"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L79"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if up?(index)\n return\nend\nstop(index)\ndo_send(:up, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"up?(index:Int32=0)-instance-method","name":"up?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L86"},"def":{"name":"up?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_top\", \"at_top\"}.includes?(self[\"screen#{index}\"]?)"}}]}]},{"html_id":"drivers/SecureOS","path":"SecureOS.html","kind":"module","full_name":"SecureOS","name":"SecureOS","abstract":false,"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/SecureOS/AuthResponse","path":"SecureOS/AuthResponse.html","kind":"struct","full_name":"SecureOS::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:AuthToken-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L93"},"def":{"name":"data","return_type":"AuthToken","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L94"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/AuthToken","path":"SecureOS/AuthToken.html","kind":"struct","full_name":"SecureOS::AuthToken","name":"AuthToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L100"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/SecureOS/Camera","path":"SecureOS/Camera.html","kind":"struct","full_name":"SecureOS::Camera","name":"Camera","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L110"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L111"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L113"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L114"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"settings:JSON::Any-instance-method","name":"settings","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L115"},"def":{"name":"settings","return_type":"JSON::Any","visibility":"Public","body":"@settings"}},{"html_id":"status:JSON::Any-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L116"},"def":{"name":"status","return_type":"JSON::Any","visibility":"Public","body":"@status"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L117"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/CameraResponse","path":"SecureOS/CameraResponse.html","kind":"struct","full_name":"SecureOS::CameraResponse","name":"CameraResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Camera)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L106"},"def":{"name":"data","return_type":"Array(Camera)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L107"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/Error","path":"SecureOS/Error.html","kind":"struct","full_name":"SecureOS::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error:String-instance-method","name":"error","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L87"},"def":{"name":"error","return_type":"String","visibility":"Public","body":"@error"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L86"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"request_id:String|Int64|Nil-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L85"},"def":{"name":"request_id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@request_id"}}]},{"html_id":"drivers/SecureOS/ErrorWrapper","path":"SecureOS/ErrorWrapper.html","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Error-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L52"},"def":{"name":"data","return_type":"Error","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L51"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Event","path":"SecureOS/Event.html","kind":"struct","full_name":"SecureOS::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L73"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L72"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"parameters:JSON::Any|Nil-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L79"},"def":{"name":"parameters","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@parameters"}},{"html_id":"ticks:Int64|Nil-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L74"},"def":{"name":"ticks","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L77"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L71"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/EventWrapper","path":"SecureOS/EventWrapper.html","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Event-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L47"},"def":{"name":"data","return_type":"Event","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L46"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Response","path":"SecureOS/Response.html","kind":"class","full_name":"SecureOS::Response","name":"Response","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/SecureOS/ErrorWrapper","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper"},{"html_id":"drivers/SecureOS/EventWrapper","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper"},{"html_id":"drivers/SecureOS/StateWrapper","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"state\"\n StateWrapper.from_json(json)\nwhen \"event\"\n EventWrapper.from_json(json)\nwhen \"error\"\n ErrorWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/SecureOS/State","path":"SecureOS/State.html","kind":"struct","full_name":"SecureOS::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L59"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"states:Hash(String,Bool)-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L65"},"def":{"name":"states","return_type":"Hash(String, Bool)","visibility":"Public","body":"@states"}},{"html_id":"ticks:Int64-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L60"},"def":{"name":"ticks","return_type":"Int64","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L63"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L58"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/StateType","path":"SecureOS/StateType.html","kind":"enum","full_name":"SecureOS::StateType","name":"StateType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attached","name":"Attached","value":"0"},{"id":"Armed","name":"Armed","value":"1"},{"id":"Alarmed","name":"Alarmed","value":"2"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"instance_methods":[{"html_id":"alarmed?-instance-method","name":"alarmed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L7"},"def":{"name":"alarmed?","visibility":"Public","body":"self == Alarmed"}},{"html_id":"armed?-instance-method","name":"armed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L6"},"def":{"name":"armed?","visibility":"Public","body":"self == Armed"}},{"html_id":"attached?-instance-method","name":"attached?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L5"},"def":{"name":"attached?","visibility":"Public","body":"self == Attached"}}]},{"html_id":"drivers/SecureOS/StateWrapper","path":"SecureOS/StateWrapper.html","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:State-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L42"},"def":{"name":"data","return_type":"State","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L41"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/SubscribeRule","path":"SecureOS/SubscribeRule.html","kind":"struct","full_name":"SecureOS::SubscribeRule","name":"SubscribeRule","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(type:String,id:String,action:Symbol,states:Array(StateType)|Nil=nil,events:Array(String)|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"args_string":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","args_html":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, action, states, events)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Symbol-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L17"},"def":{"name":"action","return_type":"Symbol","visibility":"Public","body":"@action"}},{"html_id":"events:Array(String)|Nil-instance-method","name":"events","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L16"},"def":{"name":"events","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@events"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L14"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"states:Array(StateType)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L15"},"def":{"name":"states","return_type":"Array(StateType) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L13"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Watchlist","path":"SecureOS/Watchlist.html","kind":"struct","full_name":"SecureOS::Watchlist","name":"Watchlist","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L127"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L128"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L130"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L131"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/SecureOS/WatchlistResponse","path":"SecureOS/WatchlistResponse.html","kind":"struct","full_name":"SecureOS::WatchlistResponse","name":"WatchlistResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L121"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Watchlist)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L123"},"def":{"name":"data","return_type":"Array(Watchlist)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L124"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/WsApi","path":"SecureOS/WsApi.html","kind":"class","full_name":"SecureOS::WsApi","name":"WsApi","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"basic_auth:NamedTuple(username:String,password:String)-instance-method","name":"basic_auth","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth","return_type":"NamedTuple(username: String, password: String)","visibility":"Public","body":"if (__temp_1 = @basic_auth).nil?\n ::raise(::NilAssertionError.new(\"SecureOS::WsApi#basic_auth cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"basic_auth?:NamedTuple(username:String,password:String)|Nil-instance-method","name":"basic_auth?","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth?","return_type":"NamedTuple(username: String, password: String) | ::Nil","visibility":"Public","body":"@basic_auth"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"begin\n response = http_client.get(\"#{@rest_api_host}/api/v1/ws_auth\")\n if response.success?\n auth = AuthResponse.from_json(response.body)\n send({type: :auth, token: auth.data.token}.to_json, wait: false)\n else\n raise(\"Authentication failed\")\n end\n schedule.every(30.seconds) do\n send({type: :get_server_time}.to_json, name: :server_time)\n end\n schedule.every(5.minutes, immediate: true) do\n camera_list\n subscribe_all\n watchlist_list\n end\nrescue error\n logger.warn(exception: error) do\n \"Authentication failed\"\n end\n disconnect\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@rest_api_host = setting(String, :rest_api_host)\n@basic_auth = setting(NamedTuple(username: String, password: String), :basic_auth)\n@camera_types = setting(Array(String), :camera_types)\n@camera_states = setting(Array(StateType), :camera_states)\n@camera_events = setting(Array(String), :camera_events)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/secure_os/ws_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"SecureOS sent: #{raw_json}\"\nend\ntype_check = (JSON.parse(raw_json))[\"type\"]?\nif type_check\n response = Response.from_json(raw_json)\n case response\n in StateWrapper\n self[\"camera_#{response.data.id}_states\"] = response.data\n in EventWrapper\n self[\"camera_#{response.data.id}\"] = response.data\n in ErrorWrapper\n logger.warn do\n \"SecureOS error: #{response.data}\"\n end\n if response.data.error.in?({\"INVALID_AUTH_TOKEN\", \"UNAUTHORIZED\"})\n disconnect\n else\n self[\"last_error\"] = response.data\n end\n in Response\n end\nend\ntask.try(&.success)\n"}},{"html_id":"watchlist_add_lp(watchlist:String,license_plate:String,comment:String=\"\")-instance-method","name":"watchlist_add_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String, comment : String = \"\")","args_html":"(watchlist : String, license_plate : String, comment : String = "")","location":{"filename":"src/secure_os/ws_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L116"},"def":{"name":"watchlist_add_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/set\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate, comment: comment}.to_json)\n if response\n else\n logger.warn do\n \"Failed to add license plate to watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to add license plate to watchlist\"\n end\nend"}},{"html_id":"watchlist_remove_lp(watchlist:String,license_plate:String)-instance-method","name":"watchlist_remove_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String)","args_html":"(watchlist : String, license_plate : String)","location":{"filename":"src/secure_os/ws_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L136"},"def":{"name":"watchlist_remove_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/delete\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate}.to_json)\n if response\n else\n logger.warn do\n \"Failed to remove license plate from watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to remove license plate from watchlist\"\n end\nend"}}]}]},{"html_id":"drivers/Settings","path":"Settings.html","kind":"alias","full_name":"Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Core::Settings","aliased_html":"Place::Router::Core::Settings","const":false},{"html_id":"drivers/Sharp","path":"Sharp.html","kind":"module","full_name":"Sharp","name":"Sharp","abstract":false,"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sharp/PnSeries","path":"Sharp/PnSeries.html","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AUDIO","name":"AUDIO","value":"{audio1: \"ASDP 2\", audio2: \"ASDP 3\", dvi: \"ASDP 1\", dvi_alt: \"ASDA 1\", hdmi: \"ASHP 0\", hdmi_3mm: \"ASHP 1\", hdmi_rca: \"ASHP 2\", vga: \"ASAP 1\", component: \"ASCA 1\"}"},{"id":"AUDIO_RESPONSE","name":"AUDIO_RESPONSE","value":"AUDIO.to_h.invert"},{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"OPERATION_CODE","name":"OPERATION_CODE","value":"{video_input: \"INPS\", volume_status: \"VOLM\", mute_status: \"MUTE\", power_on_delay: \"PWOD\", contrast_status: \"CONT\", brightness_status: \"VLMP\", model_number: \"INF1\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sharp","kind":"module","full_name":"Sharp","name":"Sharp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L127"},"def":{"name":"auto_adjust","visibility":"Public","body":"do_send(\"AGIN 1\", timeout: 20.seconds)"}},{"html_id":"brightness(val:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L131"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nbrightness = (percentage * @brightness_max.to_f).round_away.to_i\ndo_send(\"VLMP#{brightness.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"brightness_status(priority:Int32=0,**options)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VLMP\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"send_credentials\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Display\"\n end\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L139"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\ncontrast = (percentage * @contrast_max.to_f).round_away.to_i\nmultiplier = (self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1\ncontrast = contrast * multiplier\ndo_send(\"CONT#{contrast.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"contrast_status(priority:Int32=0,**options)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"CONT\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L61"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L207"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n if self[:model_number]?\n else\n model_number\n end\n power_on_delay\n mute_status\nend"}},{"html_id":"model_number(priority:Int32=0,**options)-instance-method","name":"model_number","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"model_number","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INF1\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sharp/pn_series.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L175"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"Sharp LCD requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"Sharp LCD, requested to mute #{state}\"\n end\n do_send(\"MUTE #{state ? '1' : '0'}\")\n mute_status(50)\nend"}},{"html_id":"mute_status(priority:Int32=0,**options)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"MUTE\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sharp/pn_series.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L65"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"delay = self[:power_on_delay]?.try(&.as_i) || 5\nif state != !!self[:power]?.try(&.as_bool)\n if state\n logger.debug do\n \"-- Sharp LCD, requested to power on\"\n end\n do_send(\"POWR 1\", name: :POWR, timeout: delay.seconds + 15.seconds)\n self[:warming] = true\n self[:power] = true\n do_send(\"POWR????\", name: :POWR, timeout: 10.seconds)\n else\n logger.debug do\n \"-- Sharp LCD, requested to power off\"\n end\n do_send(\"POWR 0\", name: :POWR, timeout: 15.seconds)\n self[:power] = false\n end\nend\npower?\nmute_status(0)\nvolume_status(0)\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L88"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(\"POWR????\", **options, name: :POWR, timeout: 10.seconds)).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0,**options)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"PWOD\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sharp/pn_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L229"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-3])\nlogger.debug do\n \"-- Sharp LCD, received: #{data}\"\nend\nif data == \"Password:OK\"\n return task.try(&.success(\"Login successful\"))\nelse\n if data == \"Password:Login incorrect\"\n schedule.in(5.seconds) do\n send_credentials\n end\n return task.try(&.success(\"Sharp LCD, bad login or logged off. Attempting login..\"))\n else\n if data == \"OK\"\n return task.try(&.success)\n else\n if data == \"WAIT\"\n logger.debug do\n \"-- Sharp LCD, wait\"\n end\n return\n else\n if data == \"ERR\"\n return task.try(&.abort(\"-- Sharp LCD, error\"))\n else\n if data.size < 8\n return task.try(&.abort(\"Sharp sent out of order response: #{data}\"))\n end\n end\n end\n end\n end\nend\ncommand, value = data.split\ncase command\nwhen \"POWR\"\n self[:warming] = false\n self[:power] = value.to_i > 0\nwhen \"INPS\"\n input = Input.from_value?(value.to_i)\n self[:input] = input || \"unknown\"\n logger.debug do\n \"-- Sharp LCD, input #{self[:input]} == #{value}\"\n end\nwhen \"VOLM\"\n vol_percent = (value.to_i.to_f / @volume_max.to_f) * 100.0\n if self[:audio_mute]?.try(&.as_bool)\n else\n self[:volume] = vol_percent.round(2)\n end\nwhen \"MUTE\"\n self[:audio_mute] = (mute = value.to_i == 1)\n if mute\n self[:volume] = 0\n else\n volume_status(90)\n end\nwhen \"CONT\"\n val = value.to_i / ((self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1)\n contrast = (val.to_f / @contrast_max.to_f) * 100.0\n self[:contrast] = contrast.round(2)\nwhen \"VLMP\"\n brightness = (value.to_i.to_f / @brightness_max.to_f) * 100.0\n self[:brightness] = brightness.round(2)\nwhen \"PWOD\"\n self[:power_on_delay] = value.to_i\nwhen \"INF1\"\n self[:model_number] = value\n logger.debug do\n \"-- Sharp LCD, model number #{self[:model_number]}\"\n end\n determine_contrast_mode\nwhen \"ASDP\", \"ASDA\", \"ASHP\", \"ASAP\", \"ASCA\"\n self[:audio_input] = AUDIO_RESPONSE[data] || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"reset-instance-method","name":"reset","doc":"Resets the brightness and contrast settings","summary":"

Resets the brightness and contrast settings

","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L94"},"def":{"name":"reset","visibility":"Public","body":"do_send(\"ARST 2\")"}},{"html_id":"switch_audio(input:String)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/sharp/pn_series.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L119"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch audio to: #{input}\"\nend\ndo_send(AUDIO[input], name: \"audio\")\nmute_status(40)\nvolume_status(40)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sharp/pn_series.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L98"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch to: #{input}\"\nend\n(do_send(input.data, name: :input, delay: 2.seconds, timeout: 20.seconds)).get\nvideo_input(40)\nbrightness_status(40)\ncontrast_status(40)\n"}},{"html_id":"video_input(priority:Int32=0,**options)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INPS\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L150"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"@vol_status.try(&.cancel)\n@vol_status = schedule.in(2.seconds) do\n @vol_status = nil\n volume_status\nend\nval = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ndo_send(\"VOLM#{vol_actual.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L169"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0,**options)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VOLM\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L164"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sharp/PnSeries/Input","path":"Sharp/PnSeries/Input.html","kind":"enum","full_name":"Sharp::PnSeries::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Sharp/PnSeries","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L21"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"data-instance-method","name":"data","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L23"},"def":{"name":"data","visibility":"Public","body":"\"INPS\" + (self.value.to_s.rjust(4, '0'))"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L18"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L16"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L17"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L15"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L20"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L19"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Shure","path":"Shure.html","kind":"module","full_name":"Shure","name":"Shure","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Shure/Microphone","path":"Shure/Microphone.html","kind":"module","full_name":"Shure::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Shure","kind":"module","full_name":"Shure","name":"Shure"},"types":[{"html_id":"drivers/Shure/Microphone/MXA","path":"Shure/Microphone/MXA.html","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"}],"namespace":{"html_id":"drivers/Shure/Microphone","kind":"module","full_name":"Shure::Microphone","name":"Microphone"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L17"},"def":{"name":"connected","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\" >\")\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Mics\"\n end\n do_poll\nend\nquery_all\nif (setting?(Bool, :send_meter_levels)) != true\n set_meter_rate(0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L192"},"def":{"name":"do_poll","visibility":"Public","body":"query_device_id"}},{"html_id":"flash-instance-method","name":"flash","doc":"flash the LED for 30 seconds","summary":"

flash the LED for 30 seconds

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L81"},"def":{"name":"flash","visibility":"Public","body":"do_send(\"SET FLASH ON\")"}},{"html_id":"led(on:Bool=true)-instance-method","name":"led","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L101"},"def":{"name":"led","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"led_state_muted(on)\nled_state_unmuted(on)\n"}},{"html_id":"led_colour_muted(colour:Colour)-instance-method","name":"led_colour_muted","doc":"Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE","summary":"

Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE

","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L111"},"def":{"name":"led_colour_muted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_MUTED\", colour.to_s.upcase, name: :muted_color)"}},{"html_id":"led_colour_unmuted(colour:Colour)-instance-method","name":"led_colour_unmuted","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L119"},"def":{"name":"led_colour_unmuted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_UNMUTED\", colour.to_s.upcase, name: :unmuted_color)"}},{"html_id":"led_state_muted(on:Bool=true)-instance-method","name":"led_state_muted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L136"},"def":{"name":"led_state_muted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_MUTED\", state)\n"}},{"html_id":"led_state_unmuted(on:Bool=true)-instance-method","name":"led_state_unmuted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L127"},"def":{"name":"led_state_unmuted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_UNMUTED\", state)\n"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L56"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? \"ON\" : \"OFF\"\ndo_send(\"SET DEVICE_AUDIO_MUTE\", val, name: :mute)\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","doc":"part of the mutable interface","summary":"

part of the mutable interface

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L66"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L75"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"if number.in?(1..10)\nelse\n raise(\"must be a number between 1-10, was #{number}\")\nend\ndo_send(\"SET PRESET\", number.to_s, name: :preset)\n"}},{"html_id":"query_all-instance-method","name":"query_all","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L33"},"def":{"name":"query_all","visibility":"Public","body":"do_send(\"GET 0 ALL\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L37"},"def":{"name":"query_device_id","visibility":"Public","body":"do_send(\"GET DEVICE_ID\", name: :device_id)"}},{"html_id":"query_firmware-instance-method","name":"query_firmware","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L41"},"def":{"name":"query_firmware","visibility":"Public","body":"do_send(\"GET FW_VER\", name: :firmware)"}},{"html_id":"query_led_colour_muted-instance-method","name":"query_led_colour_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L106"},"def":{"name":"query_led_colour_muted","visibility":"Public","body":"do_send(\"GET LED_COLOR_MUTED\")"}},{"html_id":"query_led_colour_unmuted-instance-method","name":"query_led_colour_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L115"},"def":{"name":"query_led_colour_unmuted","visibility":"Public","body":"do_send(\"GET LED_COLOR_UNMUTED\")"}},{"html_id":"query_led_state-instance-method","name":"query_led_state","doc":"LED Setup","summary":"

LED Setup

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L97"},"def":{"name":"query_led_state","visibility":"Public","body":"do_send(\"GET DEV_LED_IN_STATE\")"}},{"html_id":"query_led_state_muted-instance-method","name":"query_led_state_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L132"},"def":{"name":"query_led_state_muted","visibility":"Public","body":"do_send(\"GET LED_STATE_MUTED\")"}},{"html_id":"query_led_state_unmuted-instance-method","name":"query_led_state_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L123"},"def":{"name":"query_led_state_unmuted","visibility":"Public","body":"do_send(\"GET LED_STATE_UNMUTED\")"}},{"html_id":"query_mute-instance-method","name":"query_mute","doc":"Mute commands","summary":"

Mute commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L52"},"def":{"name":"query_mute","visibility":"Public","body":"do_send(\"GET DEVICE_AUDIO_MUTE\")"}},{"html_id":"query_preset-instance-method","name":"query_preset","doc":"Preset commands","summary":"

Preset commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L71"},"def":{"name":"query_preset","visibility":"Public","body":"do_send(\"GET PRESET\")"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L141"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(bytes)\nlogger.debug do\n \"-- received: #{data}\"\nend\ndata = ((data.split(\"< \", 2))[1].gsub(/[\\{\\}]/, '\"')).rchop(\" >\")\nresp = (shellsplit(data)).map(&.strip)\nif resp[0] == \"SAMPLE\"\n resp[1..-1].each_with_index do |level, index|\n self[\"output#{index + 1}\"] = level.to_i\n end\n return\nend\nif resp[1] == \"ERR\"\n return task.try(&.abort)\nend\nif resp[1] =~ (/^[0-9]+$/)\n chann = resp[1]\n param = resp[2].try(&.downcase)\n value = resp[3].try(&.downcase)\n self[\"#{param}_#{chann}\"] = value\n return task.try(&.success)\nend\nparam = resp[1].downcase\nvalue = resp[2]\ncase param\nwhen \"device_audio_mute\"\n self[:muted] = value == \"ON\"\nwhen \"dev_led_state_muted\"\n self[:led_muted] = value == \"ON\"\nwhen \"dev_led_state_unmuted\"\n self[:led_unmuted] = value == \"ON\"\nelse\n self[param] = case value\n when \"ON\"\n true\n when \"OFF\"\n false\n when .to_i?\n value.to_i\n else\n value\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_meter_rate(rate:Int32)-instance-method","name":"set_meter_rate","doc":"rate in milliseconds","summary":"

rate in milliseconds

","abstract":false,"args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"args_string":"(rate : Int32)","args_html":"(rate : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L46"},"def":{"name":"set_meter_rate","args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"visibility":"Public","body":"if (rate == 0) || rate >= 100\nelse\n raise(\"rate must be a number greater than 100, was #{rate}\")\nend\ndo_send(\"SET METER_RATE\", rate.to_s, name: :meter_rate)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L61"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}}],"types":[{"html_id":"drivers/Shure/Microphone/MXA/Colour","path":"Shure/Microphone/MXA/Colour.html","kind":"enum","full_name":"Shure::Microphone::MXA::Colour","name":"Colour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"RED","name":"RED","value":"0"},{"id":"GREEN","name":"GREEN","value":"1"},{"id":"BLUE","name":"BLUE","value":"2"},{"id":"PINK","name":"PINK","value":"3"},{"id":"PURPLE","name":"PURPLE","value":"4"},{"id":"YELLOW","name":"YELLOW","value":"5"},{"id":"ORANGE","name":"ORANGE","value":"6"},{"id":"WHITE","name":"WHITE","value":"7"}],"namespace":{"html_id":"drivers/Shure/Microphone/MXA","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L88"},"def":{"name":"blue?","visibility":"Public","body":"self == BLUE"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L87"},"def":{"name":"green?","visibility":"Public","body":"self == GREEN"}},{"html_id":"orange?-instance-method","name":"orange?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L92"},"def":{"name":"orange?","visibility":"Public","body":"self == ORANGE"}},{"html_id":"pink?-instance-method","name":"pink?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L89"},"def":{"name":"pink?","visibility":"Public","body":"self == PINK"}},{"html_id":"purple?-instance-method","name":"purple?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L90"},"def":{"name":"purple?","visibility":"Public","body":"self == PURPLE"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L86"},"def":{"name":"red?","visibility":"Public","body":"self == RED"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L93"},"def":{"name":"white?","visibility":"Public","body":"self == WHITE"}},{"html_id":"yellow?-instance-method","name":"yellow?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L91"},"def":{"name":"yellow?","visibility":"Public","body":"self == YELLOW"}}]}]}]}]},{"html_id":"drivers/Siemens","path":"Siemens.html","kind":"module","full_name":"Siemens","name":"Siemens","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Siemens/Desigo","path":"Siemens/Desigo.html","kind":"class","full_name":"Siemens::Desigo","name":"Desigo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens","kind":"module","full_name":"Siemens","name":"Siemens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"commands(id:String)-instance-method","name":"commands","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L43"},"def":{"name":"commands","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"commands = @client.try() do |__arg3|\n __arg3.commands.get(id: id)\nend\nself[\"commands#{id}\"] = commands\n"}},{"html_id":"execute(id:String,property_name:String,command_id:String,command_inputs_for_execution:String)-instance-method","name":"execute","doc":"Because of the introspect failing on generics,\nwe can pass in the `command_inputs_for_execution` as a JSON string\n\"[{\\\"Name\\\": \\\"Value\\\", \\\"DataType\\\": \\\"ExtendedEnum\\\", \\\"Value\\\": \\\"1\\\"}]\"","summary":"

Because of the introspect failing on generics, we can pass in the command_inputs_for_execution as a JSON string "[{"Name": "Value", "DataType": "ExtendedEnum", "Value": "1"}]"

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"args_string":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","args_html":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","location":{"filename":"src/siemens/desigo.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L51"},"def":{"name":"execute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"visibility":"Public","body":"return_value = @client.try() do |__arg4|\n __arg4.commands.execute(id: id, property_name: property_name, command_id: command_id, command_inputs_for_execution: JSON.parse(command_inputs_for_execution))\nend\nself[\"execute#{id}_property#{property_name}_command#{command_id}\"] = return_value\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"base_url = config.uri.not_nil!.to_s\nusername = setting(String, :username)\npassword = setting(String, :password)\n@client = Client.new(base_url: base_url, username: username, password: password)\nspawn do\n loop do\n @client.try() do |__arg0|\n __arg0.heartbeat.signal\n end\n sleep(60)\n end\nend\n"}},{"html_id":"property_values(id:String)-instance-method","name":"property_values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L33"},"def":{"name":"property_values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"property_values = @client.try() do |__arg1|\n __arg1.property_values.get(id: id)\nend\nself[\"property_values#{id}\"] = property_values\n"}},{"html_id":"values(id:String)-instance-method","name":"values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L38"},"def":{"name":"values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"values = @client.try() do |__arg2|\n __arg2.values.get(id: id)\nend\nself[\"values#{id}\"] = values\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/Client","path":"Siemens/Desigo/Client.html","kind":"alias","full_name":"Siemens::Desigo::Client","name":"Client","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Desigo::Client","aliased_html":"Desigo::Client","const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"}},{"html_id":"drivers/Siemens/Desigo/RoomLogic","path":"Siemens/Desigo/RoomLogic.html","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_queries-instance-method","name":"do_queries","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L25"},"def":{"name":"do_queries","visibility":"Public","body":"responses = @queries.map do |q|\n {q.name, (desigo.values(q.param)).get}\nend\nresponses.each do |name, value|\n self[name] = value.as_a.first.as_h[\"Value\"][\"Value\"]\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@queries = setting(Array(Query), :desigo_queries)\n@cron_string = setting(String, :desigo_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n do_queries\nend\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/RoomLogic/Query","path":"Siemens/Desigo/RoomLogic/Query.html","kind":"struct","full_name":"Siemens::Desigo::RoomLogic::Query","name":"Query","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Siemens/Desigo/RoomLogic","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command:String-instance-method","name":"command","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command","return_type":"String","visibility":"Public","body":"@command"}},{"html_id":"command=(command:String)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@command = command"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L32"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"param:String-instance-method","name":"param","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param","return_type":"String","visibility":"Public","body":"@param"}},{"html_id":"param=(param:String)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"String"}],"args_string":"(param : String)","args_html":"(param : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"String"}],"visibility":"Public","body":"@param = param"}}]}]}]}]},{"html_id":"drivers/SigGraph","path":"SigGraph.html","kind":"alias","full_name":"SigGraph","name":"SigGraph","abstract":false,"locations":[{"filename":"src/place/router/signal_graph_spec.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph_spec.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/SignalGraph","path":"SignalGraph.html","kind":"alias","full_name":"SignalGraph","name":"SignalGraph","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/Sony","path":"Sony.html","kind":"module","full_name":"Sony","name":"Sony","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sony/Camera","path":"Sony/Camera.html","kind":"module","full_name":"Sony::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Camera/CGI","path":"Sony/Camera/CGI.html","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L302"},"def":{"name":"home","visibility":"Public","body":"action(\"/command/presetposition.cgi?HomePos=ptz-recall\", name: \"position\") do\n query_status\nend"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L156"},"def":{"name":"info?","visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=system\", priority: 0) do |response|\n response.each do |key, value|\n if {\"ModelName\", \"Serial\", \"SoftVersion\", \"ModelForm\", \"CGIVersion\"}.includes?(key)\n self[key.underscore] = value\n end\n end\n response\nend"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Implement Camera interface","summary":"

Implement Camera interface

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L252"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\npan_speed = pan_speed.to_i\ntilt_speed = tilt_speed.to_i\nrange = -100..100\nin_range(range, pan_speed)\nin_range(range, tilt_speed)\nif @invert_controls && (tilt_speed != 0)\n tilt_speed = -tilt_speed\nend\naction(\"/command/ptzf.cgi?ContinuousPanTiltZoom=#{pan_speed.to_s(16)},#{tilt_speed.to_s(16)},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = ((pan_speed != 0) || (tilt_speed != 0))\n if !@moving\n query_status\n end\n @moving\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"Implement Moveable interface","summary":"

Implement Moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L194"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\ncase position\nwhen MoveablePosition::Up, MoveablePosition::Down, MoveablePosition::Left, MoveablePosition::Right\n if @invert_controls && (position.up? || position.down?)\n position = position.up? ? MoveablePosition::Down : MoveablePosition::Up\n end\n action(\"/command/ptzf.cgi?Move=#{position.to_s.downcase},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = true\n end\nwhen MoveablePosition::In\n zoom(ZoomDirection::In)\nwhen MoveablePosition::Out\n zoom(ZoomDirection::Out)\nelse\n raise(\"unsupported direction: #{position}\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"@pantilt_speed = -100..100\nself[:pan_speed] = self[:tilt_speed] = {min: -100, max: 100, stop: 0}\nself[:has_discrete_zoom] = true\nschedule.every(60.seconds) do\n query_status\nend\nschedule.in(5.seconds) do\n query_status\n info?\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"self[:invert_controls] = @invert_controls = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Int32)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Int32))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32,zoom:Int32|Nil=nil):Nil-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"args_string":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","args_html":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L227"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"in_range(@pan_range, pan)\nin_range(@tilt_range, tilt)\nif zoom\n in_range(@zoom_range, zoom)\n action(\"/command/ptzf.cgi?AbsolutePTZF=#{pan.to_s(16)},#{tilt.to_s(16)},#{zoom.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n self[:zoom] = @zoom_raw = zoom.not_nil!\n end\nelse\n action(\"/command/ptzf.cgi?AbsolutePanTilt=#{pan.to_s(16)},#{tilt.to_s(16)},#{@max_speed.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n end\nend\n"}},{"html_id":"query_status(priority:Int32=0)-instance-method","name":"query_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L93"},"def":{"name":"query_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=ptzf\", priority: priority) do |response|\n response.each do |key, value|\n case key\n when \"AbsolutePTZF\"\n parts = value.split(\",\")\n self[:pan] = @pan = twos_complement(parts[0].to_i(16))\n self[:tilt] = @tilt = twos_complement(parts[1].to_i(16))\n @zoom_raw = parts[2].to_i(16)\n when \"PanMovementRange\"\n parts = value.split(\",\")\n pan_min = twos_complement(parts[0].to_i(16))\n pan_max = twos_complement(parts[1].to_i(16))\n @pan_range = pan_min..pan_max\n self[:pan_range] = {min: pan_min, max: pan_max}\n when \"TiltMovementRange\"\n parts = value.split(\",\")\n tilt_min = twos_complement(parts[0].to_i(16))\n tilt_max = twos_complement(parts[1].to_i(16))\n @tilt_range = tilt_min..tilt_max\n self[:tilt_range] = {min: tilt_min, max: tilt_max}\n when \"ZoomMovementRange\"\n parts = value.split(\",\")\n zoom_min = parts[0].to_i(16)\n zoom_max = parts[1].to_i(16)\n @zoom_range = zoom_min..zoom_max\n self[:zoom_range] = {min: zoom_min, max: zoom_max}\n when \"PtzfStatus\"\n parts = (value.split(\",\")).map do |state|\n Movement.parse(state)\n end[0..2]\n self[:moving] = @moving = parts.includes?(Movement::Moving)\n when \"PanTiltMaxVelocity\"\n @max_speed = value.to_i(16)\n end\n end\n self[:zoom] = @zoom_raw.not_nil!.to_f * (100.0 / @zoom_range.end.to_f)\n response\nend"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L308"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(**preset)\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L325"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L317"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {pan: @pan, tilt: @tilt, zoom: @zoom_raw}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"Implement Stoppable interface","summary":"

Implement Stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L178"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i + 1\naction(\"/command/ptzf.cgi?Move=stop,motor,image#{index}\", priority: 999, name: \"moving\", clear_queue: emergency) do\n if @zooming\n zoom(ZoomDirection::Stop)\n end\n self[:moving] = @moving = false\n query_status\nend\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L287"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nif direction.stop?\n action(\"/command/ptzf.cgi?Move=stop,zoom,image#{index}\", priority: 999, name: \"zooming\") do\n self[:zooming] = @zooming = false\n end\nelse\n action(\"/command/ptzf.cgi?Move=#{direction.out? ? \"wide\" : \"near\"},0,image#{index}\", name: \"zooming\") do\n self[:zooming] = @zooming = true\n end\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L272"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nposition = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_range.end.to_f).to_i\naction(\"/command/ptzf.cgi?AbsoluteZoom=#{zoom_value.to_s(16)}\", name: \"zooming\") do\n @zoom_raw = zoom_value\n self[:zoom] = @zoom = position\nend\n"}}],"macros":[{"html_id":"in_range(range,value)-macro","name":"in_range","abstract":false,"args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(range, value)","args_html":"(range, value)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L218"},"def":{"name":"in_range","args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":" \n{{ value }}\n = if \n{{ range }}\n.includes? \n{{ value }}\n\n \n{{ value }}\n\n \nelse\n \n{{ value }}\n < \n{{ range }}\n.begin ? \n{{ range }}\n.begin : \n{{ range }}\n.end\n \nend\n \n{{ value }}\n = twos_complement(\n{{ value }}\n)\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/CGI/Movement","path":"Sony/Camera/CGI/Movement.html","kind":"enum","full_name":"Sony::Camera::CGI::Movement","name":"Movement","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L25"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Idle","name":"Idle","value":"0"},{"id":"Moving","name":"Moving","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Sony/Camera/CGI","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI"},"instance_methods":[{"html_id":"idle?-instance-method","name":"idle?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L26"},"def":{"name":"idle?","visibility":"Public","body":"self == Idle"}},{"html_id":"moving?-instance-method","name":"moving?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L27"},"def":{"name":"moving?","visibility":"Public","body":"self == Moving"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L28"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA","path":"Sony/Camera/VISCA.html","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","doc":"clear the interface","summary":"

clear the interface

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L67"},"def":{"name":"connected","visibility":"Public","body":"reset_sequence_number\nsend_cmd(Bytes[0, 1], name: :if_clear, priority: 98)\n"}},{"html_id":"encode_position(value:UInt16):String-instance-method","name":"encode_position","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"args_string":"(value : UInt16) : String","args_html":"(value : UInt16) : String","location":{"filename":"src/sony/camera/visca.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L124"},"def":{"name":"encode_position","args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"return_type":"String","visibility":"Public","body":"io = IO::Memory.new\nio.write_bytes(value, IO::ByteFormat::BigEndian)\nbytes = io.to_slice.hexstring.rjust(4, '0')\n\"0#{bytes[0]}0#{bytes[1]}0#{bytes[2]}0#{bytes[3]}\"\n"}},{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L85"},"def":{"name":"home","visibility":"Public","body":"send_cmd(Bytes[6, 4], name: :pantilt)"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L89"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan_neg, pan_value, pan_zero = joyspeed(pan_speed, @max_pan_tilt_speed)\ntilt_neg, tilt_value, tilt_zero = joyspeed(tilt_speed, @max_pan_tilt_speed)\npan_direction = pan_zero ? \"03\" : (pan_neg ? \"01\" : \"02\")\ntilt_direction = tilt_zero ? \"03\" : (tilt_neg ? \"02\" : \"01\")\nbytes = \"0601#{pan_value}#{tilt_value}#{pan_direction}#{tilt_direction}\"\nresp = send_cmd(bytes.hexbytes, name: :joystick)\nif pan_zero && tilt_zero\n spawn do\n resp.get\n schedule.in(1.seconds) do\n pantilt?\n end\n end\nend\nresp\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L172"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","doc":"we want to tokenize the stream, ensure we only process a single packet at a time\nand that we have the complete message","summary":"

we want to tokenize the stream, ensure we only process a single packet at a time and that we have the complete message

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n if bytes.size < 4\n next 0\n end\n ((IO::Memory.new(bytes[2..3])).read_bytes(UInt16, IO::ByteFormat::BigEndian)).to_i + 8\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@presets = (setting?(Presets, :camera_presets)) || @presets\n@max_pan_tilt_speed = (setting?(UInt8, :max_pan_tilt_speed)) || 15_u8\n@zoom_speed = (setting?(UInt8, :zoom_speed)) || 3_u8\n@zoom_max = (setting?(UInt16, :zoom_max)) || 16384_u16\n@camera_address = 128_u8 | ((setting?(UInt8, :camera_no)) || 1_u8)\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan_pos:UInt16-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L39"},"def":{"name":"pan_pos","return_type":"UInt16","visibility":"Public","body":"@pan_pos"}},{"html_id":"pantilt(pan:UInt16,tilt:UInt16,speed:UInt8)-instance-method","name":"pantilt","doc":"moves to an absolute position","summary":"

moves to an absolute position

","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"args_string":"(pan : UInt16, tilt : UInt16, speed : UInt8)","args_html":"(pan : UInt16, tilt : UInt16, speed : UInt8)","location":{"filename":"src/sony/camera/visca.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L138"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"visibility":"Public","body":"speed = speed.clamp(0_u8, @max_pan_tilt_speed)\nbytes = \"0602#{Bytes[speed].hexstring.rjust(2, '0')}00#{encode_position(pan)}#{encode_position(tilt)}\"\nsend_cmd(bytes.hexbytes, name: :pantilt)\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L221"},"def":{"name":"pantilt?","visibility":"Public","body":"send_inq(Bytes[6, 18], name: :pantilt_query, priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/camera/visca.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L74"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"payload = state ? Bytes[4, 0, 2] : Bytes[4, 0, 3]\nsend_cmd(payload, name: :power)\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L79"},"def":{"name":"power?","visibility":"Public","body":"send_inq(Bytes[4, 0], name: :power_query)"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L144"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n pantilt(pan_pos, tilt_pos, @max_pan_tilt_speed)\n zoom_to(zoom_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task,sequence:UInt32|Nil=nil):Nil-instance-method","name":"received","doc":"process incoming data, tokenised so we know each data packet is exactly one message","summary":"

process incoming data, tokenised so we know each data packet is exactly one message

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"args_string":"(data, task, sequence : UInt32 | Nil = nil) : Nil","args_html":"(data, task, sequence : UInt32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/visca.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L336"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"Camera sent: 0x#{data.hexstring}\"\nend\nif sequence.nil?\n logger.info do\n \"unexpected packet received, ignoring as no sequence pending\"\n end\n return\nend\nio = IO::Memory.new(data)\npacket = io.read_bytes(Packet)\npayload = packet.payload\ncase packet.type\nwhen .device_control?\n case payload[-1]\n when 1_u8\n reset_sequence_number(directly: true)\n logger.info do\n \"sequence number error, resetting sequence\"\n end\n when 2_u8\n task.try(&.abort(\"bad request\"))\n end\n return\nwhen .device_reply?\n if task && (task.name == \"reset_sequence_number\")\n task.success\n else\n task.try(&.retry(\"sequence number reset, retrying task\"))\n end\n return\nwhen .reply?\n if sequence != packet.sequence\n logger.info do\n \"unexpected sequence number, ignoring\"\n end\n return\n end\nelse\n logger.info do\n \"unexpected packet type #{packet.type}, ignoring\"\n end\n return\nend\ncheck_command = payload[1] & 240_u8\ncase check_command\nwhen 64_u8\n logger.debug do\n \"ignoring command accepted message\"\n end\n return\nwhen 80_u8\n logger.debug do\n \"command complete message\"\n end\nwhen 96_u8\n case payload[2]\n when 2_u8\n task.try(&.abort(\"syntax error in request\"))\n when 3_u8\n schedule.in(50.milliseconds) do\n task.try(&.retry(\"camera busy\"))\n end\n when 4_u8\n task.try(&.abort(\"request was cancelled by the user\"))\n when 5_u8\n task.try(&.success)\n when 65_u8\n task.try(&.abort(\"request could not be performed\"))\n end\n return\nend\ncase task.try(&.name)\nwhen \"zoom_query\"\n @zoom_raw = zoom_value = decode_position(payload[2..5])\n self[:zoom] = @zoom_pos = zoom_value.to_f * (100.0 / @zoom_max.to_f)\nwhen \"pantilt_query\"\n @pan_pos = decode_position(payload[2..5])\n @tilt_pos = decode_position(payload[6..9])\nwhen \"zoom_to\"\n zoom?\nwhen \"pantilt\"\n pantilt?\nwhen \"power_query\"\n self[:power] = payload[-2] == 2_u8\nend\ntask.try(&.success)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L159"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"reset_sequence_number(directly:Bool=false)-instance-method","name":"reset_sequence_number","abstract":false,"args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"args_string":"(directly : Bool = false)","args_html":"(directly : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L320"},"def":{"name":"reset_sequence_number","args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"visibility":"Public","body":"packet = Packet.new\npacket.type = :device_control\npacket.sequence = @sequence = 1_u32\npacket.payload = Bytes[1_u8]\nif directly\n return transport.send(packet)\nend\nqueue(name: :reset_sequence_number, priority: 99) do |task|\n transport.send(packet, task) do |data|\n received(data, task, @sequence)\n end\nend\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L154"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"send_cmd(bytes:String)-instance-method","name":"send_cmd","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L259"},"def":{"name":"send_cmd","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_cmd(bytes.hexbytes)"}},{"html_id":"send_inq(bytes:String)-instance-method","name":"send_inq","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L287"},"def":{"name":"send_inq","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_inq(bytes.hexbytes)"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L227"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"zoom(:stop)"}},{"html_id":"tilt_pos:UInt16-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L38"},"def":{"name":"tilt_pos","return_type":"UInt16","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L203"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"speed_byte = case direction\nin .stop?\n schedule.in(500.milliseconds) do\n zoom?\n end\n 0_u8\nin .out?\n 32_u8 | @zoom_speed\nin .in?\n 48_u8 | @zoom_speed\nend\nsend_cmd(Bytes[4, 7, speed_byte], name: :zoom)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L217"},"def":{"name":"zoom?","visibility":"Public","body":"send_inq(Bytes[4, 71], name: :zoom_query, priority: 0)"}},{"html_id":"zoom_raw:UInt16-instance-method","name":"zoom_raw","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L36"},"def":{"name":"zoom_raw","return_type":"UInt16","visibility":"Public","body":"@zoom_raw"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L194"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_max.to_f).to_u16\nbytes = \"0447#{encode_position(zoom_value)}\"\nsend_cmd(bytes.hexbytes, name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet","path":"Sony/Camera/VISCA/Packet.html","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Sony::Camera::VISCA::Packet]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: Type}, {type: \"basic\", name: size, cls: UInt16, onlyif: nil, verify: nil, value: -> do\n payload.size.to_u16\nend}, {type: \"basic\", name: sequence, cls: UInt32, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: payload, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"},"doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L235"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"payload:Bytes-instance-method","name":"payload","abstract":false,"def":{"name":"payload","return_type":"Bytes","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:Bytes)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"args_string":"(payload : Bytes)","args_html":"(payload : Bytes)","def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"visibility":"Public","body":"@payload = payload"}},{"html_id":"sequence:UInt32-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt32","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt32)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"args_string":"(sequence : UInt32)","args_html":"(sequence : UInt32)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt16-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt16","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt16)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"args_string":"(size : UInt16)","args_html":"(size : UInt16)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Type)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"}],"args_string":"(type : Type)","args_html":"(type : Type)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Type"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet/Type","path":"Sony/Camera/VISCA/Packet/Type.html","kind":"enum","full_name":"Sony::Camera::VISCA::Packet::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L237"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"256_u16"},{"id":"Inquiry","name":"Inquiry","value":"272_u16"},{"id":"Reply","name":"Reply","value":"273_u16"},{"id":"DeviceSetting","name":"DeviceSetting","value":"288_u16","doc":"VISCA device setting","summary":"

VISCA device setting

"},{"id":"DeviceControl","name":"DeviceControl","value":"512_u16","doc":"reset: 0x01\nerror: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)","summary":"

reset: 0x01 error: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)

"},{"id":"DeviceReply","name":"DeviceReply","value":"513_u16","doc":"Acknowledge for reset","summary":"

Acknowledge for reset

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA/Packet","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L238"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"device_control?-instance-method","name":"device_control?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L246"},"def":{"name":"device_control?","visibility":"Public","body":"self == DeviceControl"}},{"html_id":"device_reply?-instance-method","name":"device_reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L249"},"def":{"name":"device_reply?","visibility":"Public","body":"self == DeviceReply"}},{"html_id":"device_setting?-instance-method","name":"device_setting?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L242"},"def":{"name":"device_setting?","visibility":"Public","body":"self == DeviceSetting"}},{"html_id":"inquiry?-instance-method","name":"inquiry?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L239"},"def":{"name":"inquiry?","visibility":"Public","body":"self == Inquiry"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L240"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA/Presets","path":"Sony/Camera/VISCA/Presets.html","kind":"alias","full_name":"Sony::Camera::VISCA::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/sony/camera/visca.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(UInt16, UInt16, Float64))","aliased_html":"Hash(String, {UInt16, UInt16, Float64})","const":false,"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"}}]}]},{"html_id":"drivers/Sony/Displays","path":"Sony/Displays.html","kind":"module","full_name":"Sony::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Displays/Bravia","path":"Sony/Displays/Bravia.html","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{ir_code: \"IRCC\", power: \"POWR\", volume: \"VOLU\", audio_mute: \"AMUT\", mute: \"PMUT\", channel: \"CHNN\", tv_input: \"ISRC\", input: \"INPT\", toggle_mute: \"TPMU\", pip: \"PIPI\", toggle_pip: \"TPIP\", position_pip: \"TPPP\", broadcast_address: \"BADR\", mac_address: \"MADR\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Displays","kind":"module","full_name":"Sony::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L102"},"def":{"name":"audio_mute?","visibility":"Public","body":"query(Command::AudioMute, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L57"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L126"},"def":{"name":"do_poll","visibility":"Public","body":"if self[:power]?\n input?\n mute?\n audio_mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L48"},"def":{"name":"input?","visibility":"Public","body":"query(Command::Input, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/displays/bravia.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L76"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"request(Command::Mute, state)\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L89"},"def":{"name":"mute?","visibility":"Public","body":"query(Command::Mute, priority: 0)"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/sony/displays/bravia.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L93"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::AudioMute, state)\naudio_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"self[:volume_min] = 0\nself[:volume_max] = 100\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/displays/bravia.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L67"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::Power, state)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L72"},"def":{"name":"power?","visibility":"Public","body":"query(Command::Power)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/displays/bravia.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L147"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"parsed_data = convert_binary(data[3..6])\ncmd = Command.from_response?(parsed_data)\nif cmd.nil?\n return task.try(&.abort(\"unrecognised command: #{parsed_data}\"))\nend\nparam = data[7..-1]\nif param.first? == MessageType::Error.value\n return task.try(&.abort(\"error\"))\nend\ncase MessageType.from_value?(data[2])\nwhen MessageType::Answer\n update_status(cmd, param)\n task.try(&.success)\nwhen MessageType::Notify\n update_status(cmd, param)\nelse\n logger.debug do\n \"Unhandled device response: #{begin\n data[2].chr\n rescue\n data[2]\n end}\"\n end\n task.try(&.abort(\"Unhandled device response\"))\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/displays/bravia.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching input to #{input}\"\nend\nrequest(Command::Input, input.to_param)\nself[:input] = input.to_s\ninput?\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L85"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L98"},"def":{"name":"unmute_audio","visibility":"Public","body":"mute_audio(false)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/sony/displays/bravia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L106"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"level = (level.to_f.clamp(0.0, 100.0)).round_away.to_i\nrequest(Command::Volume, level)\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L112"},"def":{"name":"volume?","visibility":"Public","body":"query(Command::Volume, priority: 0)"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L121"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L116"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sony/Displays/Bravia/Command","path":"Sony/Displays/Bravia/Command.html","kind":"enum","full_name":"Sony::Displays::Bravia::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IrCode","name":"IrCode","value":"0"},{"id":"Power","name":"Power","value":"1"},{"id":"Volume","name":"Volume","value":"2"},{"id":"AudioMute","name":"AudioMute","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Channel","name":"Channel","value":"5"},{"id":"TvInput","name":"TvInput","value":"6"},{"id":"Input","name":"Input","value":"7"},{"id":"ToggleMute","name":"ToggleMute","value":"8"},{"id":"Pip","name":"Pip","value":"9"},{"id":"TogglePip","name":"TogglePip","value":"10"},{"id":"PositionPip","name":"PositionPip","value":"11"},{"id":"BroadcastAddress","name":"BroadcastAddress","value":"12"},{"id":"MacAddress","name":"MacAddress","value":"13"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"class_methods":[{"html_id":"from_response?(message)-class-method","name":"from_response?","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"from_response?","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"case message\nwhen \"IRCC\"\n IrCode\nwhen \"POWR\"\n Power\nwhen \"VOLU\"\n Volume\nwhen \"AMUT\"\n AudioMute\nwhen \"PMUT\"\n Mute\nwhen \"CHNN\"\n Channel\nwhen \"ISRC\"\n TvInput\nwhen \"INPT\"\n Input\nwhen \"TPMU\"\n ToggleMute\nwhen \"PIPI\"\n Pip\nwhen \"TPIP\"\n TogglePip\nwhen \"TPPP\"\n PositionPip\nwhen \"BADR\"\n BroadcastAddress\nwhen \"MADR\"\n MacAddress\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"broadcast_address?-instance-method","name":"broadcast_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"broadcast_address?","visibility":"Public","body":"self == BroadcastAddress"}},{"html_id":"channel?-instance-method","name":"channel?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"channel?","visibility":"Public","body":"self == Channel"}},{"html_id":"function-instance-method","name":"function","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"function","visibility":"Public","body":"case self\nin IrCode\n \"IRCC\"\nin Power\n \"POWR\"\nin Volume\n \"VOLU\"\nin AudioMute\n \"AMUT\"\nin Mute\n \"PMUT\"\nin Channel\n \"CHNN\"\nin TvInput\n \"ISRC\"\nin Input\n \"INPT\"\nin ToggleMute\n \"TPMU\"\nin Pip\n \"PIPI\"\nin TogglePip\n \"TPIP\"\nin PositionPip\n \"TPPP\"\nin BroadcastAddress\n \"BADR\"\nin MacAddress\n \"MADR\"\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"ir_code?-instance-method","name":"ir_code?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"ir_code?","visibility":"Public","body":"self == IrCode"}},{"html_id":"mac_address?-instance-method","name":"mac_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"mac_address?","visibility":"Public","body":"self == MacAddress"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"position_pip?-instance-method","name":"position_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"position_pip?","visibility":"Public","body":"self == PositionPip"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"toggle_mute?-instance-method","name":"toggle_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_mute?","visibility":"Public","body":"self == ToggleMute"}},{"html_id":"toggle_pip?-instance-method","name":"toggle_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_pip?","visibility":"Public","body":"self == TogglePip"}},{"html_id":"tv_input?-instance-method","name":"tv_input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"tv_input?","visibility":"Public","body":"self == TvInput"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Sony/Displays/Bravia/Input","path":"Sony/Displays/Bravia/Input.html","kind":"enum","full_name":"Sony::Displays::Bravia::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L20"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Tv0","name":"Tv0","value":"0_u32"},{"id":"Hdmi0","name":"Hdmi0","value":"100000000_u32"},{"id":"Mirror0","name":"Mirror0","value":"500000000_u32"},{"id":"Vga0","name":"Vga0","value":"600000000_u32"},{"id":"Tv1","name":"Tv1","value":"1_u32"},{"id":"Hdmi1","name":"Hdmi1","value":"100000001_u32"},{"id":"Mirror1","name":"Mirror1","value":"500000001_u32"},{"id":"Vga1","name":"Vga1","value":"600000001_u32"},{"id":"Tv2","name":"Tv2","value":"2_u32"},{"id":"Hdmi2","name":"Hdmi2","value":"100000002_u32"},{"id":"Mirror2","name":"Mirror2","value":"500000002_u32"},{"id":"Vga2","name":"Vga2","value":"600000002_u32"},{"id":"Tv3","name":"Tv3","value":"3_u32"},{"id":"Hdmi3","name":"Hdmi3","value":"100000003_u32"},{"id":"Mirror3","name":"Mirror3","value":"500000003_u32"},{"id":"Vga3","name":"Vga3","value":"600000003_u32"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"constructors":[{"html_id":"from_param(value:String):self-class-method","name":"from_param","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String) : self","args_html":"(value : String) : self","location":{"filename":"src/sony/displays/bravia.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L28"},"def":{"name":"from_param","args":[{"name":"value","external_name":"value","restriction":"String"}],"return_type":"self","visibility":"Public","body":"begin\n from_value(UInt32.new(value))\nrescue\n raise(\"Unknown enum #{self} value: #{value}\")\nend"}}],"instance_methods":[{"html_id":"hdmi0?-instance-method","name":"hdmi0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi0?","visibility":"Public","body":"self == Hdmi0"}},{"html_id":"hdmi1?-instance-method","name":"hdmi1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi1?","visibility":"Public","body":"self == Hdmi1"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"mirror0?-instance-method","name":"mirror0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror0?","visibility":"Public","body":"self == Mirror0"}},{"html_id":"mirror1?-instance-method","name":"mirror1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror1?","visibility":"Public","body":"self == Mirror1"}},{"html_id":"mirror2?-instance-method","name":"mirror2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror2?","visibility":"Public","body":"self == Mirror2"}},{"html_id":"mirror3?-instance-method","name":"mirror3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror3?","visibility":"Public","body":"self == Mirror3"}},{"html_id":"to_param:String-instance-method","name":"to_param","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L34"},"def":{"name":"to_param","return_type":"String","visibility":"Public","body":"value.to_s.rjust(5, '0')"}},{"html_id":"tv0?-instance-method","name":"tv0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv0?","visibility":"Public","body":"self == Tv0"}},{"html_id":"tv1?-instance-method","name":"tv1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv1?","visibility":"Public","body":"self == Tv1"}},{"html_id":"tv2?-instance-method","name":"tv2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv2?","visibility":"Public","body":"self == Tv2"}},{"html_id":"tv3?-instance-method","name":"tv3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv3?","visibility":"Public","body":"self == Tv3"}},{"html_id":"vga0?-instance-method","name":"vga0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga0?","visibility":"Public","body":"self == Vga0"}},{"html_id":"vga1?-instance-method","name":"vga1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga1?","visibility":"Public","body":"self == Vga1"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga2?","visibility":"Public","body":"self == Vga2"}},{"html_id":"vga3?-instance-method","name":"vga3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga3?","visibility":"Public","body":"self == Vga3"}}]},{"html_id":"drivers/Sony/Displays/Bravia/MessageType","path":"Sony/Displays/Bravia/MessageType.html","kind":"enum","full_name":"Sony::Displays::Bravia::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Answer","name":"Answer","value":"65_u8"},{"id":"Control","name":"Control","value":"67_u8"},{"id":"Enquiry","name":"Enquiry","value":"69_u8"},{"id":"Notify","name":"Notify","value":"78_u8"},{"id":"Error","name":"Error","value":"70_u8"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L136"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"control?-instance-method","name":"control?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L137"},"def":{"name":"control?","visibility":"Public","body":"self == Control"}},{"html_id":"control_character-instance-method","name":"control_character","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L142"},"def":{"name":"control_character","visibility":"Public","body":"value.chr"}},{"html_id":"enquiry?-instance-method","name":"enquiry?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L138"},"def":{"name":"enquiry?","visibility":"Public","body":"self == Enquiry"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L140"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"notify?-instance-method","name":"notify?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L139"},"def":{"name":"notify?","visibility":"Public","body":"self == Notify"}}]}]}]},{"html_id":"drivers/Sony/Projector","path":"Sony/Projector.html","kind":"module","full_name":"Sony::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Projector/Fh","path":"Sony/Projector/Fh.html","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INPUTS_LOOKUP","name":"INPUTS_LOOKUP","value":"{\"hdmi1\" => Inputs::HDMI, \"dvi1\" => Inputs::DVI, \"video1\" => Inputs::Video, \"svideo1\" => Inputs::SVideo, \"rgb1\" => Inputs::RGB, \"hdbaset1\" => Inputs::HDBaseT, \"input_a\" => Inputs::InputA, \"input_b\" => Inputs::InputB, \"input_c\" => Inputs::InputC, \"input_d\" => Inputs::InputD, \"input_e\" => Inputs::InputE}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"brightness\", val.clamp(0, 100))"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness?","visibility":"Public","body":"get(\"brightness\")"}},{"html_id":"color(val:Int32)-instance-method","name":"color","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"color","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"color\", val.clamp(0, 100))"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"color?","visibility":"Public","body":"get(\"color\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L48"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"contrast\", val.clamp(0, 100))"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast?","visibility":"Public","body":"get(\"contrast\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(val:Int32)-instance-method","name":"hue","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"hue","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"hue\", val.clamp(0, 100))"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"hue?","visibility":"Public","body":"get(\"hue\")"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L99"},"def":{"name":"input?","visibility":"Public","body":"(get(\"input\")).get\nself[:input].as_s\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/fh.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L66"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"(set(\"blank\", state ? \"on\" : \"off\")).get\nself[:mute] = state\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L75"},"def":{"name":"mute?","visibility":"Public","body":"(get(\"blank\")).get\nself[:mute].as_bool\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L44"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/fh.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(set(\"power\", state ? \"on\" : \"off\")).get\nself[:power] = state\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L61"},"def":{"name":"power?","visibility":"Public","body":"get(\"power_status\")\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(response,task)-instance-method","name":"received","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(response, task)","args_html":"(response, task)","location":{"filename":"src/sony/projector/fh.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L120"},"def":{"name":"received","args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(response, task)"}},{"html_id":"sharpness(val:Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"sharpness\", val.clamp(0, 100))"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness?","visibility":"Public","body":"get(\"sharpness\")"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/sony/projector/fh.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L94"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"(set(\"input\", input.to_message)).get\nself[:input] = input.readable\n"}}],"types":[{"html_id":"drivers/Sony/Projector/Fh/Inputs","path":"Sony/Projector/Fh/Inputs.html","kind":"enum","full_name":"Sony::Projector::Fh::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"Video","name":"Video","value":"2"},{"id":"SVideo","name":"SVideo","value":"3"},{"id":"RGB","name":"RGB","value":"4"},{"id":"HDBaseT","name":"HDBaseT","value":"5"},{"id":"InputA","name":"InputA","value":"6"},{"id":"InputB","name":"InputB","value":"7"},{"id":"InputC","name":"InputC","value":"8"},{"id":"InputD","name":"InputD","value":"9"},{"id":"InputE","name":"InputE","value":"10"}],"namespace":{"html_id":"drivers/Sony/Projector/Fh","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L18"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L13"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L19"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L20"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L21"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L22"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"input_e?-instance-method","name":"input_e?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L23"},"def":{"name":"input_e?","visibility":"Public","body":"self == InputE"}},{"html_id":"readable:String-instance-method","name":"readable","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L34"},"def":{"name":"readable","return_type":"String","visibility":"Public","body":"to_s.downcase"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L17"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L16"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"to_message:String-instance-method","name":"to_message","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L25"},"def":{"name":"to_message","return_type":"String","visibility":"Public","body":"case self\nin HDMI, DVI, Video, SVideo, RGB, HDBaseT\n to_s.downcase + \"1\"\nin InputA, InputB, InputC, InputD, InputE\n to_s.underscore\nend"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L15"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Sony/Projector/PjTalk","path":"Sony/Projector/PjTalk.html","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CATEGORY","name":"ERROR_CATEGORY","value":"{1_u8 => :item_error, 2_u8 => :community_error, 16_u8 => :request_error, 32_u8 => :network_error, 240_u8 => :comms_error, 241_u8 => :ram_error}"},{"id":"ERRORS","name":"ERRORS","value":"{item_error: {1_u8 => \"Invalid Item\", 2_u8 => \"Invalid Item Request\", 3_u8 => \"Invalid Length\", 4_u8 => \"Invalid Data\", 17_u8 => \"Short Data\", 128_u8 => \"Not Applicable Item\"}, community_error: {1_u8 => \"Different Community\"}, request_error: {1_u8 => \"Invalid Version\", 2_u8 => \"Invalid Category\", 3_u8 => \"Invalid Request\", 17_u8 => \"Short Header\", 18_u8 => \"Short Community\", 19_u8 => \"Short Command\"}, network_error: {1_u8 => \"Timeout\"}, comms_error: {1_u8 => \"Timeout\", 16_u8 => \"Check Sum Error\", 32_u8 => \"Framing Error\", 48_u8 => \"Parity Error\", 64_u8 => \"Over Run Error\", 80_u8 => \"Other Comm Error\", 240_u8 => \"Unknown Response\"}, ram_error: {16_u8 => \"Read Error\", 32_u8 => \"Write Error\"}, unknown: {} of UInt8 => String}"},{"id":"METHODS","name":"METHODS","value":"[:contrast, :brightness, :color, :hue, :sharpness]"},{"id":"PJTALK_HEADER","name":"PJTALK_HEADER","value":"Bytes[2, 10]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(:get, :brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"color?","visibility":"Public","body":"do_send(:get, :color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(:get, :contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L177"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n input?\n mute?\n do_send(:get, :error_status, priority: 0)\n lamp_time?\nend"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"hue?","visibility":"Public","body":"do_send(:get, :hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L93"},"def":{"name":"input?","visibility":"Public","body":"do_send(:get, :input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L97"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(:get, :lamp_timer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L101"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(:set, :mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L110"},"def":{"name":"mute?","visibility":"Public","body":"do_send(:get, :mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.to_slice\n bytes.size < 10 ? -1 : 10 + bytes[9]\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@community = (setting?(String, :community)) || \"SONY\""}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L47"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:set, :power_on, name: :power)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:set, :power_off, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L61"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(:get, :power_status, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L191"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\nresponse_status = ResponseStatus.from_value(data[6])\npjt_command = Command.from_bytes(data[7..8])\npjt_length = data[9]\npjt_data = pjt_length > 0 ? data[10..-1] : Bytes.new(0)\nif response_status.no_good?\n category = ERROR_CATEGORY[pjt_data[0]]? || (:unknown)\n message = ERRORS[category][pjt_data[1]]? || \"unknown: category #{pjt_data[1].to_s(16)}, reason #{pjt_data[1].to_s(16)}\"\n self[:last_error] = \"#{category}: #{message}\"\n logger.debug do\n \"Command #{pjt_command} failed with #{category}: #{message}\"\n end\n return task.try(&.abort)\nend\ncase pjt_command\nwhen .power_on?\n self[:power] = true\nwhen .power_off?\n self[:power] = false\nwhen .lamp_timer?\n self[:lamp_usage] = (pjt_data[-2].to_u16 << 8) + pjt_data[-1]\nwhen .power_status?\n case pjt_data[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\nwhen .mute?\n self[:mute] = pjt_data[-1] == 1\nwhen .input?\n self[:input] = Input.from_bytes(pjt_data)\nwhen .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[pjt_command.to_s.downcase] = pjt_data[-1]\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(:get, :sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L86"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(:set, :input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/PjTalk/Command","path":"Sony/Projector/PjTalk/Command.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L130"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L148"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L138"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L139"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L137"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L135"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L140"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L133"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L142"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L134"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L132"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L131"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L136"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L141"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L144"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/CommandType","path":"Sony/Projector/PjTalk/CommandType.html","kind":"enum","full_name":"Sony::Projector::PjTalk::CommandType","name":"CommandType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L153"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L155"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L154"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/Input","path":"Sony/Projector/PjTalk/Input.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L66"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L79"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L67"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L68"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L69"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L70"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L71"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L73"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L75"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L72"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/ResponseStatus","path":"Sony/Projector/PjTalk/ResponseStatus.html","kind":"enum","full_name":"Sony::Projector::PjTalk::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"NoGood","name":"NoGood","value":"0_u8"},{"id":"Okay","name":"Okay","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"no_good?-instance-method","name":"no_good?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L187"},"def":{"name":"no_good?","visibility":"Public","body":"self == NoGood"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L188"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Sony/Projector/SerialControl","path":"Sony/Projector/SerialControl.html","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"154_u8"},{"id":"ERRORS","name":"ERRORS","value":"{0 => \"No Error\", 1 => \"Lamp Error\", 2 => \"Fan Error\", 4 => \"Cover Error\", 8 => \"Temperature Error\", 16 => \"D5V Error\", 32 => \"Power Error\", 64 => \"Warning Error\", 128 => \"NVM Data ERROR\"}"},{"id":"INDICATOR","name":"INDICATOR","value":"169_u8"},{"id":"METHODS","name":"METHODS","value":"[\"Contrast\", \"Brightness\", \"Color\", \"Hue\", \"Sharpness\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(Type::Get, Command::Brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"color?","visibility":"Public","body":"do_send(Type::Get, Command::Color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(Type::Get, Command::Contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"hue?","visibility":"Public","body":"do_send(Type::Get, Command::Hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"do_send(Type::Get, Command::Input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L81"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(Type::Get, Command::LampTimer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L85"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(Type::Set, Command::Mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L94"},"def":{"name":"mute?","visibility":"Public","body":"do_send(Type::Get, Command::Mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[DELIMITER])"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L30"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(Type::Set, Command::PowerOn, name: :power)\n do_send(Type::Set, Command::PowerOn, name: :power, delay: 3.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(Type::Set, Command::PowerOff, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L45"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(Type::Get, Command::PowerStatus, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L177"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\ncmd = data[1..2]\ntype = data[3]\nresp = data[4..5]\nchecksum = data[1..5].reduce do |a, b|\n a = a | b\nend\nif data[6] == checksum\nelse\n return task.try(&.abort(\"Checksum should be 0x#{checksum.to_s(base: 16, upcase: true)}\"))\nend\nif type == 3\n if cmd == Bytes[0, 0]\n return task.try(&.success)\n else\n return task.try(&.abort(\"Command failed with 0x#{cmd.join(&.to_s(base: 16, upcase: true))}\"))\n end\nelse\n case command = Command.from_bytes(cmd)\n when .power_on?\n self[:power] = true\n when .power_off?\n self[:power] = false\n when .lamp_timer?\n self[:lamp_usage] = (resp[-2].to_u16 << 8) + resp[-1]\n when .power_status?\n case resp[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\n when .mute?\n self[:mute] = resp[-1] == 1\n when .input?\n self[:input] = Input.from_bytes(resp)\n when .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[command.to_s.downcase] = resp[-1]\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(Type::Get, Command::Sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L70"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(Type::Set, Command::Input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/SerialControl/Command","path":"Sony/Projector/SerialControl/Command.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L153"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L143"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L144"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L142"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L140"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L145"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L138"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L147"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L139"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L137"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L136"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L141"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L146"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L149"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Input","path":"Sony/Projector/SerialControl/Input.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L50"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L63"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L51"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L52"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L53"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L54"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L55"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L57"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L59"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L56"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Type","path":"Sony/Projector/SerialControl/Type.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L158"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L160"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L159"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]}]}]}]},{"html_id":"drivers/Steinel","path":"Steinel.html","kind":"module","full_name":"Steinel","name":"Steinel","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Steinel/HPD2","path":"Steinel/HPD2.html","kind":"class","full_name":"Steinel::HPD2","name":"HPD2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{illuminance: SensorType::Illuminance, temperature: SensorType::Temperature, humidity: SensorType::Humidity, presence: SensorType::Presence, people: SensorType::PeopleCount, illuminance_zones: SensorType::Illuminance, presence_zones: SensorType::Presence, people_zones: SensorType::PeopleCount}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Steinel","kind":"module","full_name":"Steinel","name":"Steinel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L98"},"def":{"name":"get_status","visibility":"Public","body":"response = get(\"/api/sensorstatus.php\")\nlogger.debug do\n \"received #{response.body}\"\nend\nif response.success?\n status = SensorStatus.from_json(response.body.not_nil!)\n time = Time.utc.to_unix\n mod_id = module_id\n humidity = Interface::Sensor::Detail.new(SensorType::Humidity, status.humidity.to_f, time, @mac, \"humidity\", \"Humidity\", module_id: mod_id, binding: \"humidity\")\n self[:humidity] = status.humidity.to_f\n temperature = Interface::Sensor::Detail.new(SensorType::Temperature, status.temperature.to_f, time, @mac, \"temperature\", \"Temperature\", module_id: mod_id, binding: \"temperature\", unit: \"Cel\")\n self[:temperature] = status.temperature.to_f\n pres = status.person_presence.zero? ? 0.0 : 1.0\n presence = Interface::Sensor::Detail.new(SensorType::Presence, pres, time, @mac, \"presence\", \"Person Presence\", module_id: mod_id, binding: \"presence\")\n self[:presence] = pres\n people = Interface::Sensor::Detail.new(SensorType::PeopleCount, status.detected_persons.to_f, time, @mac, \"people\", \"Detected Persons\", module_id: mod_id, binding: \"people\")\n self[:people] = status.detected_persons\n illuminance = Interface::Sensor::Detail.new(SensorType::Illuminance, status.global_illuminance_lux, time, @mac, \"illuminance\", \"Illuminance\", module_id: mod_id, binding: \"illuminance\", unit: \"lx\")\n self[:illuminance] = status.global_illuminance_lux\n self[:presence_zones] = status.person_presence_zone.map do |value|\n value.zero? ? 0.0 : 1.0\n end\n presence_zones = status.person_presence_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Presence, value.zero? ? 0.0 : 1.0, time, @mac, \"presence-#{index}\", \"Person Presence in Zone#{index}\")\n end\n self[:people_zones] = status.detected_persons_zone\n people_zones = status.detected_persons_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::PeopleCount, value.to_f, time, @mac, \"people-#{index}\", \"Detected People in Zone#{index}\")\n end\n self[:illuminance_zones] = status.lux_zone\n illuminance_zones = status.lux_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Illuminance, value, time, @mac, \"illuminance-#{index}\", \"Illuminance in Zone#{index}\", unit: \"lx\")\n end\n @state = {humidity: humidity, temperature: temperature, presence: presence, people: people, illuminance: illuminance, presence_zones: presence_zones, people_zones: people_zones, illuminance_zones: illuminance_zones}\n status\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nschedule.every(5.seconds) do\n get_status\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/steinel/hpd2.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L38"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n case id\n when \"humidity\"\n state[:humidity]\n when \"temperature\"\n state[:temperature]\n when \"presence\"\n state[:presence]\n when \"people\"\n state[:people]\n when \"illuminance\"\n state[:illuminance]\n end\n else\n if index = index_str.to_i?\n case id\n when \"presence\"\n state[:presence_zones][index]?\n when \"people\"\n state[:people_zones][index]?\n when \"illuminance\"\n state[:illuminance_zones][index]?\n end\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/steinel/hpd2.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L83"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return state.values.to_a.flatten\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Interface::Sensor::Detail | Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << state[key]\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"state:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))-instance-method","name":"state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L22"},"def":{"name":"state","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail))","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"Steinel::HPD2#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))|Nil-instance-method","name":"state?","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L22"},"def":{"name":"state?","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail)) | ::Nil","visibility":"Public","body":"@state"}}],"types":[{"html_id":"drivers/Steinel/HPD2/SensorStatus","path":"Steinel/HPD2/SensorStatus.html","kind":"class","full_name":"Steinel::HPD2::SensorStatus","name":"SensorStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L151"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/steinel/hpd2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L152"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_version:String-instance-method","name":"app_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version","return_type":"String","visibility":"Public","body":"@app_version"}},{"html_id":"app_version=(app_version:String)-instance-method","name":"app_version=","abstract":false,"args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"args_string":"(app_version : String)","args_html":"(app_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version=","args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"visibility":"Public","body":"@app_version = app_version"}},{"html_id":"arm_sensor_cpu_usage:String-instance-method","name":"arm_sensor_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage","return_type":"String","visibility":"Public","body":"@arm_sensor_cpu_usage"}},{"html_id":"arm_sensor_cpu_usage=(arm_sensor_cpu_usage:String)-instance-method","name":"arm_sensor_cpu_usage=","abstract":false,"args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"args_string":"(arm_sensor_cpu_usage : String)","args_html":"(arm_sensor_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage=","args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@arm_sensor_cpu_usage = arm_sensor_cpu_usage"}},{"html_id":"average_fps5:Float64-instance-method","name":"average_fps5","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5","return_type":"Float64","visibility":"Public","body":"@average_fps5"}},{"html_id":"average_fps50:Float64-instance-method","name":"average_fps50","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50","return_type":"Float64","visibility":"Public","body":"@average_fps50"}},{"html_id":"average_fps50=(average_fps50:Float64)-instance-method","name":"average_fps50=","abstract":false,"args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"args_string":"(average_fps50 : Float64)","args_html":"(average_fps50 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50=","args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"visibility":"Public","body":"@average_fps50 = average_fps50"}},{"html_id":"average_fps5=(average_fps5:Float64)-instance-method","name":"average_fps5=","abstract":false,"args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"args_string":"(average_fps5 : Float64)","args_html":"(average_fps5 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5=","args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"visibility":"Public","body":"@average_fps5 = average_fps5"}},{"html_id":"detected_persons:Int32-instance-method","name":"detected_persons","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons","return_type":"Int32","visibility":"Public","body":"@detected_persons"}},{"html_id":"detected_persons=(detected_persons:Int32)-instance-method","name":"detected_persons=","abstract":false,"args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"args_string":"(detected_persons : Int32)","args_html":"(detected_persons : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons=","args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"visibility":"Public","body":"@detected_persons = detected_persons"}},{"html_id":"detected_persons_zone:Array(Int32)-instance-method","name":"detected_persons_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone","return_type":"Array(Int32)","visibility":"Public","body":"@detected_persons_zone"}},{"html_id":"detected_persons_zone=(detected_persons_zone:Array(Int32))-instance-method","name":"detected_persons_zone=","abstract":false,"args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"args_string":"(detected_persons_zone : Array(Int32))","args_html":"(detected_persons_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone=","args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@detected_persons_zone = detected_persons_zone"}},{"html_id":"detection_zones_present:Int32-instance-method","name":"detection_zones_present","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present","return_type":"Int32","visibility":"Public","body":"@detection_zones_present"}},{"html_id":"detection_zones_present=(detection_zones_present:Int32)-instance-method","name":"detection_zones_present=","abstract":false,"args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"args_string":"(detection_zones_present : Int32)","args_html":"(detection_zones_present : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present=","args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"visibility":"Public","body":"@detection_zones_present = detection_zones_present"}},{"html_id":"final:String-instance-method","name":"final","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L237"},"def":{"name":"final","return_type":"String","visibility":"Public","body":"@final"}},{"html_id":"final=(final:String)-instance-method","name":"final=","abstract":false,"args":[{"name":"final","external_name":"final","restriction":"String"}],"args_string":"(final : String)","args_html":"(final : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L237"},"def":{"name":"final=","args":[{"name":"final","external_name":"final","restriction":"String"}],"visibility":"Public","body":"@final = final"}},{"html_id":"fpga_version:String-instance-method","name":"fpga_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version","return_type":"String","visibility":"Public","body":"@fpga_version"}},{"html_id":"fpga_version=(fpga_version:String)-instance-method","name":"fpga_version=","abstract":false,"args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"args_string":"(fpga_version : String)","args_html":"(fpga_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version=","args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"visibility":"Public","body":"@fpga_version = fpga_version"}},{"html_id":"frame_processing_time_ms:Int32-instance-method","name":"frame_processing_time_ms","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms","return_type":"Int32","visibility":"Public","body":"@frame_processing_time_ms"}},{"html_id":"frame_processing_time_ms=(frame_processing_time_ms:Int32)-instance-method","name":"frame_processing_time_ms=","abstract":false,"args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"args_string":"(frame_processing_time_ms : Int32)","args_html":"(frame_processing_time_ms : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms=","args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"visibility":"Public","body":"@frame_processing_time_ms = frame_processing_time_ms"}},{"html_id":"git_revision:String-instance-method","name":"git_revision","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision","return_type":"String","visibility":"Public","body":"@git_revision"}},{"html_id":"git_revision=(git_revision:String)-instance-method","name":"git_revision=","abstract":false,"args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"args_string":"(git_revision : String)","args_html":"(git_revision : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision=","args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"visibility":"Public","body":"@git_revision = git_revision"}},{"html_id":"global_illuminance_lux:Float64-instance-method","name":"global_illuminance_lux","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux","return_type":"Float64","visibility":"Public","body":"@global_illuminance_lux"}},{"html_id":"global_illuminance_lux=(global_illuminance_lux:Float64)-instance-method","name":"global_illuminance_lux=","abstract":false,"args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"args_string":"(global_illuminance_lux : Float64)","args_html":"(global_illuminance_lux : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux=","args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"visibility":"Public","body":"@global_illuminance_lux = global_illuminance_lux"}},{"html_id":"global_light_value:Int32-instance-method","name":"global_light_value","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value","return_type":"Int32","visibility":"Public","body":"@global_light_value"}},{"html_id":"global_light_value=(global_light_value:Int32)-instance-method","name":"global_light_value=","abstract":false,"args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"args_string":"(global_light_value : Int32)","args_html":"(global_light_value : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value=","args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"visibility":"Public","body":"@global_light_value = global_light_value"}},{"html_id":"humidity:String-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity","return_type":"String","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:String)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"args_string":"(humidity : String)","args_html":"(humidity : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"ir_led_on:Int32-instance-method","name":"ir_led_on","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on","return_type":"Int32","visibility":"Public","body":"@ir_led_on"}},{"html_id":"ir_led_on=(ir_led_on:Int32)-instance-method","name":"ir_led_on=","abstract":false,"args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"args_string":"(ir_led_on : Int32)","args_html":"(ir_led_on : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on=","args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"visibility":"Public","body":"@ir_led_on = ir_led_on"}},{"html_id":"knx_address:String-instance-method","name":"knx_address","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address","return_type":"String","visibility":"Public","body":"@knx_address"}},{"html_id":"knx_address=(knx_address:String)-instance-method","name":"knx_address=","abstract":false,"args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"args_string":"(knx_address : String)","args_html":"(knx_address : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address=","args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"visibility":"Public","body":"@knx_address = knx_address"}},{"html_id":"knx_detected:String-instance-method","name":"knx_detected","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected","return_type":"String","visibility":"Public","body":"@knx_detected"}},{"html_id":"knx_detected=(knx_detected:String)-instance-method","name":"knx_detected=","abstract":false,"args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"args_string":"(knx_detected : String)","args_html":"(knx_detected : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected=","args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"visibility":"Public","body":"@knx_detected = knx_detected"}},{"html_id":"knx_led_state:String-instance-method","name":"knx_led_state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state","return_type":"String","visibility":"Public","body":"@knx_led_state"}},{"html_id":"knx_led_state=(knx_led_state:String)-instance-method","name":"knx_led_state=","abstract":false,"args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"args_string":"(knx_led_state : String)","args_html":"(knx_led_state : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state=","args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"visibility":"Public","body":"@knx_led_state = knx_led_state"}},{"html_id":"knx_program_mode:String-instance-method","name":"knx_program_mode","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode","return_type":"String","visibility":"Public","body":"@knx_program_mode"}},{"html_id":"knx_program_mode=(knx_program_mode:String)-instance-method","name":"knx_program_mode=","abstract":false,"args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"args_string":"(knx_program_mode : String)","args_html":"(knx_program_mode : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode=","args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"visibility":"Public","body":"@knx_program_mode = knx_program_mode"}},{"html_id":"knx_sap_number:String-instance-method","name":"knx_sap_number","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number","return_type":"String","visibility":"Public","body":"@knx_sap_number"}},{"html_id":"knx_sap_number=(knx_sap_number:String)-instance-method","name":"knx_sap_number=","abstract":false,"args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"args_string":"(knx_sap_number : String)","args_html":"(knx_sap_number : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number=","args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"visibility":"Public","body":"@knx_sap_number = knx_sap_number"}},{"html_id":"knx_version:String-instance-method","name":"knx_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version","return_type":"String","visibility":"Public","body":"@knx_version"}},{"html_id":"knx_version=(knx_version:String)-instance-method","name":"knx_version=","abstract":false,"args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"args_string":"(knx_version : String)","args_html":"(knx_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version=","args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"visibility":"Public","body":"@knx_version = knx_version"}},{"html_id":"lux_zone:Array(Float64)-instance-method","name":"lux_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone","return_type":"Array(Float64)","visibility":"Public","body":"@lux_zone"}},{"html_id":"lux_zone=(lux_zone:Array(Float64))-instance-method","name":"lux_zone=","abstract":false,"args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"args_string":"(lux_zone : Array(Float64))","args_html":"(lux_zone : Array(Float64))","location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone=","args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"visibility":"Public","body":"@lux_zone = lux_zone"}},{"html_id":"model_name:String-instance-method","name":"model_name","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name","return_type":"String","visibility":"Public","body":"@model_name"}},{"html_id":"model_name=(model_name:String)-instance-method","name":"model_name=","abstract":false,"args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"args_string":"(model_name : String)","args_html":"(model_name : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name=","args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"visibility":"Public","body":"@model_name = model_name"}},{"html_id":"person_presence:Int32-instance-method","name":"person_presence","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence","return_type":"Int32","visibility":"Public","body":"@person_presence"}},{"html_id":"person_presence=(person_presence:Int32)-instance-method","name":"person_presence=","abstract":false,"args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"args_string":"(person_presence : Int32)","args_html":"(person_presence : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence=","args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"visibility":"Public","body":"@person_presence = person_presence"}},{"html_id":"person_presence_zone:Array(Int32)-instance-method","name":"person_presence_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone","return_type":"Array(Int32)","visibility":"Public","body":"@person_presence_zone"}},{"html_id":"person_presence_zone=(person_presence_zone:Array(Int32))-instance-method","name":"person_presence_zone=","abstract":false,"args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"args_string":"(person_presence_zone : Array(Int32))","args_html":"(person_presence_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone=","args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@person_presence_zone = person_presence_zone"}},{"html_id":"running_time:String-instance-method","name":"running_time","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time","return_type":"String","visibility":"Public","body":"@running_time"}},{"html_id":"running_time=(running_time:String)-instance-method","name":"running_time=","abstract":false,"args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"args_string":"(running_time : String)","args_html":"(running_time : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time=","args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"visibility":"Public","body":"@running_time = running_time"}},{"html_id":"temperature:String-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature","return_type":"String","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:String)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"args_string":"(temperature : String)","args_html":"(temperature : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"uptime:String-instance-method","name":"uptime","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime","return_type":"String","visibility":"Public","body":"@uptime"}},{"html_id":"uptime=(uptime:String)-instance-method","name":"uptime=","abstract":false,"args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"args_string":"(uptime : String)","args_html":"(uptime : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime=","args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"visibility":"Public","body":"@uptime = uptime"}},{"html_id":"web_server_cpu_usage:String-instance-method","name":"web_server_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage","return_type":"String","visibility":"Public","body":"@web_server_cpu_usage"}},{"html_id":"web_server_cpu_usage=(web_server_cpu_usage:String)-instance-method","name":"web_server_cpu_usage=","abstract":false,"args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"args_string":"(web_server_cpu_usage : String)","args_html":"(web_server_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage=","args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@web_server_cpu_usage = web_server_cpu_usage"}}]},{"html_id":"drivers/Steinel/HPD2/SensorType","path":"Steinel/HPD2/SensorType.html","kind":"alias","full_name":"Steinel::HPD2::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"}}]}]},{"html_id":"drivers/Stripe","path":"Stripe.html","kind":"module","full_name":"Stripe","name":"Stripe","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Stripe/API","path":"Stripe/API.html","kind":"class","full_name":"Stripe::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Stripe","kind":"module","full_name":"Stripe","name":"Stripe"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_payment_method(type:String,billing_details:Hash(String,String)|Nil=nil,metadata:Hash(String,String)|Nil=nil,acss_debit:Hash(String,String)|Nil=nil,affirm:Hash(String,String)|Nil=nil,afterpay_clearpay:Hash(String,String)|Nil=nil,alipay:Hash(String,String)|Nil=nil,au_becs_debit:Hash(String,String)|Nil=nil,bacs_debit:Hash(String,String)|Nil=nil,bancontact:Hash(String,String)|Nil=nil,blik:Hash(String,String)|Nil=nil,boleto:Hash(String,String)|Nil=nil,card:Hash(String,String)|Nil=nil,customer_balance:Hash(String,String)|Nil=nil,eps:Hash(String,String)|Nil=nil,fpx:Hash(String,String)|Nil=nil,giropay:Hash(String,String)|Nil=nil,ideal:Hash(String,String)|Nil=nil,interac_present:Hash(String,String)|Nil=nil,klarna:Hash(String,String)|Nil=nil,konbini:Hash(String,String)|Nil=nil,link:Hash(String,String)|Nil=nil,oxxo:Hash(String,String)|Nil=nil,p24:Hash(String,String)|Nil=nil,paynow:Hash(String,String)|Nil=nil,promptpay:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,sepa_debit:Hash(String,String)|Nil=nil,sofort:Hash(String,String)|Nil=nil,us_bank_account:Hash(String,String)|Nil=nil,wechat_pay:Hash(String,String)|Nil=nil)-instance-method","name":"add_payment_method","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","args_html":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L22"},"def":{"name":"add_payment_method","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"payment_method = @client.not_nil!.payment_methods.create(type, billing_details, metadata, acss_debit, affirm, afterpay_clearpay, alipay, au_becs_debit, bacs_debit, bancontact, blik, boleto, card, customer_balance, eps, fpx, giropay, ideal, interac_present, klarna, konbini, link, oxxo, p24, paynow, promptpay, radar_options, sepa_debit, sofort, us_bank_account, wechat_pay)\nself[\"payment_method\"] = payment_method\n"}},{"html_id":"cancel_payment_intent(id:String,cancellation_reason:String|Nil=nil)-instance-method","name":"cancel_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"args_string":"(id : String, cancellation_reason : String | Nil = nil)","args_html":"(id : String, cancellation_reason : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L79"},"def":{"name":"cancel_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client.not_nil!.payment_intents.cancel(id: id, cancellation_reason: cancellation_reason)\nself[\"payment_intent\"] = nil\n"}},{"html_id":"confirm_payment_intent(id:String,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,capture_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"confirm_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L74"},"def":{"name":"confirm_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.confirm(id: id, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, capture_method: capture_method, error_on_requires_action: error_on_requires_action, mandate: mandate, mandate_data: mandate_data, off_session: off_session, payment_method_data: payment_method_data, payment_method_options: payment_method_options, payment_method_types: payment_method_types, radar_options: radar_options, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"create_customer(account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"create_customer","abstract":false,"args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L96"},"def":{"name":"create_customer","args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.create(account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}},{"html_id":"create_payment_intent(amount:Int32,currency:String,automatic_payment_methods:Hash(String,String)|Nil=nil,confirm:Bool|Nil=nil,customer:String|Nil=nil,description:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,statement_descriptor:String|Nil=nil,statement_descriptor_suffix:String|Nil=nil,application_fee_amount:Int32|Nil=nil,capture_method:String|Nil=nil,confrimation_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,on_behalf_of:String|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,transfer_data:Hash(String,String)|Nil=nil,transfer_group:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"create_payment_intent","abstract":false,"args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L69"},"def":{"name":"create_payment_intent","args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.create(amount: amount, currency: currency, automatic_payment_methods: automatic_payment_methods, confirm: confirm, customer: customer, description: description, metadata: metadata, off_session: off_session, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, statement_descriptor: statement_descriptor, statement_descriptor_suffix: statement_descriptor_suffix, application_fee_amount: application_fee_amount, capture_method: capture_method, confrimation_method: confrimation_method, error_on_requires_action: error_on_requires_action, mandate_data: mandate_data, on_behalf_of: on_behalf_of, payment_method_data: payment_method_data, payment_method_types: payment_method_types, payment_method_options: payment_method_options, radar_options: radar_options, return_url: return_url, transfer_data: transfer_data, transfer_group: transfer_group, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"get_customer(id:String)-instance-method","name":"get_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/stripe/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L84"},"def":{"name":"get_customer","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"self[\"customer\"] = @client.not_nil!.customers.get(id)"}},{"html_id":"get_product_prices(active:Bool|Nil=nil,currency:String|Nil=nil,product:String|Nil=nil,type:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,lookup_keys:Array(String)|Nil=nil,recurring:Hash(String,String)|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"get_product_prices","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","args_html":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L64"},"def":{"name":"get_product_prices","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"product_prices = @client.not_nil!.prices.list(active: active, currency: currency, product: product, type: type, created: created, ending_before: ending_before, limit: limit, lookup_keys: lookup_keys, recurring: recurring, starting_after: starting_after)\nself[\"product_prices\"] = product_prices\n"}},{"html_id":"list_customers(email:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_customers","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L88"},"def":{"name":"list_customers","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.list(email: email, created: created, ending_before: ending_before, limit: limit, starting_after: starting_after)"}},{"html_id":"list_payment_methods(type:String,customer:String|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_payment_methods","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L59"},"def":{"name":"list_payment_methods","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"payment_methods = @client.not_nil!.payment_methods.list(type: type, customer: customer, ending_before: ending_before, limit: limit, starting_after: starting_after)\nself[\"payment_methods\"] = payment_methods\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/stripe/api.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L15"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\napi_key = setting(String, :api_key)\n@client = Stripetease::Client.new(base_url: host_name, api_key: api_key)\n"}},{"html_id":"search_customers(query:String,limit:Int32|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"search_customers","abstract":false,"args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","args_html":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L92"},"def":{"name":"search_customers","args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.search(query: query, limit: limit, page: page)"}},{"html_id":"update_customer(id:String,customer:String|Nil=nil,account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"update_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L101"},"def":{"name":"update_customer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.update(id: id, customer: customer, account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}}],"types":[{"html_id":"drivers/Stripe/API/Client","path":"Stripe/API/Client.html","kind":"alias","full_name":"Stripe::API::Client","name":"Client","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Stripetease::Client","aliased_html":"Stripetease::Client","const":false,"namespace":{"html_id":"drivers/Stripe/API","kind":"class","full_name":"Stripe::API","name":"API"}}]}]},{"html_id":"drivers/TvOne","path":"TvOne.html","kind":"module","full_name":"TvOne","name":"TvOne","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TvOne/CorioMaster","path":"TvOne/CorioMaster.html","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TvOne","kind":"module","full_name":"TvOne","name":"TvOne"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L37"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(30.seconds) do\n if @ready\n else\n disconnect\n end\nend\nschedule.every(1.minute) do\n do_poll\nend\nspawn do\n init_connection\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:ready] = @ready = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L62"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"polling device\"\nend\nquery(\"Preset.Take\", expose_as: :preset)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"preset(id:UInt32)-instance-method","name":"preset","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/tv_one/corio_master.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L67"},"def":{"name":"preset","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"(set(\"Preset.Take\", id)).get\nself[:preset] = id\nif wins = @window_cache[id]?\n logger.debug do\n \"loading cached window state\"\n end\n self[:windows] = wins\nend\nspawn do\n windows = query_windows\n logger.debug do\n \"window cache for preset #{id} updated\"\n end\n self[:windows] = @window_cache[id] = windows\nend\nid\n"}},{"html_id":"preset_list-instance-method","name":"preset_list","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L125"},"def":{"name":"preset_list","visibility":"Public","body":"query_preset_list"}},{"html_id":"query_windows-instance-method","name":"query_windows","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L121"},"def":{"name":"query_windows","visibility":"Public","body":"deep_query(\"Windows\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/tv_one/corio_master.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L197"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received => #{data}\"\nend\nif !@ready\n if data =~ (/Interface Ready/i)\n configure_tokenizer\n self[:ready] = @ready = true\n end\n return\nend\nbody = data.lines\ncaptures = ((/!(\\w+)\\W*(.*)$/).match(body.pop)).try(&.captures)\nif captures\nelse\n return task.try(&.abort(\"\"))\nend\ntype = captures[0].as(String)\nmessage = (captures[1].as(String)).downcase\nrequest = task.try do |__arg3|\n __arg3.request_payload.try() do |__arg4|\n (__arg4.strip.downcase.split(\" \"))[0]\n end\nend\ncase type\nwhen \"Done\"\n if request && (request == message)\n response = parse_response(body, request)\n task.try(&.success(response))\n end\nwhen \"Info\"\n logger.info do\n \"#{request} => #{message}\"\n end\n task.try(&.success)\nwhen \"Error\"\n logger.error do\n message\n end\n task.try(&.abort)\nwhen \"Event\"\n logger.info do\n \"unhandled event: #{message}\"\n end\nelse\n logger.error do\n \"unhandled response: #{data}\"\n end\n task.try(&.abort)\nend\n"}},{"html_id":"switch(map:Hash(String,Array(UInt32)))-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"args_string":"(map : Hash(String, Array(UInt32)))","args_html":"(map : Hash(String, Array(UInt32)))","location":{"filename":"src/tv_one/corio_master.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L91"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"visibility":"Public","body":"results = map.flat_map do |slot, windows|\n windows.map do |id|\n window(id, \"Input\", slot)\n end\nend\nspawn do\n results.each(&.get)\n if state = status?(Hash(String, Hash(String, JSON::Any)), :windows)\n map.each do |slot, windows|\n value = JSON::Any.new(slot)\n windows.each do |id|\n if win = state[\"window#{id}\"]?\n win[\"input\"] = value\n end\n end\n end\n self[\"windows\"] = state\n end\nend\nnil\n"}},{"html_id":"sync_state-instance-method","name":"sync_state","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L52"},"def":{"name":"sync_state","visibility":"Public","body":"query(\"Preset.Take\", expose_as: :preset)\nquery_preset_list(expose_as: :presets)\ndeep_query(\"Windows\", expose_as: :windows)\ndeep_query(\"Canvases\", expose_as: :canvases)\ndeep_query(\"Layouts\", expose_as: :layouts)\nquery(\"CORIOmax.Serial_Number\", expose_as: :serial_number)\nquery(\"CORIOmax.Software_Version\", expose_as: :firmware)\n"}},{"html_id":"window(id:UInt32,property:String,value:Int64|Bool|Nil|String)-instance-method","name":"window","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"args_string":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","args_html":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","location":{"filename":"src/tv_one/corio_master.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L117"},"def":{"name":"window","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"visibility":"Public","body":"set(\"Window#{id}.#{property}\", value)"}}],"types":[{"html_id":"drivers/TvOne/CorioMaster/PresetList","path":"TvOne/CorioMaster/PresetList.html","kind":"alias","full_name":"TvOne::CorioMaster::PresetList","name":"PresetList","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, NamedTuple(name: String, canvas: String, time: Int64))","aliased_html":"Hash(Int32, {name: String, canvas: String, time: Int64})","const":false,"namespace":{"html_id":"drivers/TvOne/CorioMaster","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster"}}]}]},{"html_id":"drivers/TwentyFiveLivePro","path":"TwentyFiveLivePro.html","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L4"},{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L4"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L3"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L3"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TwentyFiveLivePro/API","path":"TwentyFiveLivePro/API.html","kind":"class","full_name":"TwentyFiveLivePro::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"availability(id:Int32,start_date:String,end_date:String,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"availability","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L93"},"def":{"name":"availability","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nbody = {\"spaces\" => [{\"spaceId\" => id, \"dates\" => {\"startDt\" => start_date, \"endDt\" => end_date}}]}\nresponse = post(\"/external/spaceAvailability.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"}, body: body.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Availability.from_json(response.body)\n"}},{"html_id":"get_event_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_event_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L256"},"def":{"name":"get_event_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/event/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::EventDetail.from_json(response.body)\n"}},{"html_id":"get_organization_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_organization_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L180"},"def":{"name":"get_organization_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/organization/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::OrganizationDetail.from_json(response.body)\n"}},{"html_id":"get_resource_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_resource_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L119"},"def":{"name":"get_resource_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/resource/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ResourceDetail.from_json(response.body)\n"}},{"html_id":"get_space_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_space_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L32"},"def":{"name":"get_space_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/space/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::SpaceDetail.from_json(response.body)\n"}},{"html_id":"list_events(space_id:Int32=1,page:Int32=1,items_per_page:Int32=100,since:String|Nil=nil,paginate:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","args_html":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L270"},"def":{"name":"list_events","args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"events = [] of Models::Event\nloop do\n params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if since\n form.add(\"created_since\", since)\n end\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/event/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nevents\n"}},{"html_id":"list_organizations(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_organizations","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L194"},"def":{"name":"list_organizations","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"organizations = [] of Models::Organization\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/organization/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\norganizations\n"}},{"html_id":"list_reservations(space_id:Int32,start_date:String,end_date:String)-instance-method","name":"list_reservations","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(space_id : Int32, start_date : String, end_date : String)","args_html":"(space_id : Int32, start_date : String, end_date : String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L241"},"def":{"name":"list_reservations","args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"start_dt\", start_date)\n form.add(\"end_dt\", end_date)\nend\nresponse = get(\"/reservations.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Reservations.from_json(response.body)\n"}},{"html_id":"list_resources(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_resources","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L133"},"def":{"name":"list_resources","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"resources = [] of Models::Resource\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/resource/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nresources\n"}},{"html_id":"list_spaces(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_spaces","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L46"},"def":{"name":"list_spaces","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"spaces = [] of Models::Space\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/space/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nspaces\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]},{"html_id":"drivers/TwentyFiveLivePro/Date","path":"TwentyFiveLivePro/Date.html","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L13"},"def":{"name":"duration","visibility":"Public","body":"end_date - start_date"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","path":"TwentyFiveLivePro/Date/Converter.html","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Date","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L24"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_rfc3339(value.read_string)"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L20"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_rfc3339)"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models","path":"TwentyFiveLivePro/Models.html","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L5"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L4"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L4"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"instance_methods":[{"html_id":"reservations:Reservations-instance-method","name":"reservations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations","return_type":"Reservations","visibility":"Public","body":"@reservations"}},{"html_id":"reservations=(reservations:Reservations)-instance-method","name":"reservations=","abstract":false,"args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"args_string":"(reservations : Reservations)","args_html":"(reservations : Reservations)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations=","args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"visibility":"Public","body":"@reservations = reservations"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Attribute","path":"TwentyFiveLivePro/Models/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","path":"TwentyFiveLivePro/Models/Availability.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","path":"TwentyFiveLivePro/Models/Availability/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:String-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id","return_type":"String","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:String)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"args_string":"(request_id : String)","args_html":"(request_id : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","path":"TwentyFiveLivePro/Models/Availability/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data/Space","path":"TwentyFiveLivePro/Models/Availability/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"available=(available:Bool)-instance-method","name":"available=","abstract":false,"args":[{"name":"available","external_name":"available","restriction":"Bool"}],"args_string":"(available : Bool)","args_html":"(available : Bool)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available=","args":[{"name":"available","external_name":"available","restriction":"Bool"}],"visibility":"Public","body":"@available = available"}},{"html_id":"conflict_type:Int64|Nil-instance-method","name":"conflict_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conflict_type"}},{"html_id":"conflict_type=(conflict_type:Int64|Nil)-instance-method","name":"conflict_type=","abstract":false,"args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"args_string":"(conflict_type : Int64 | Nil)","args_html":"(conflict_type : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type=","args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conflict_type = conflict_type"}},{"html_id":"dates:Array(Hash(String,JSON::Any))-instance-method","name":"dates","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates","return_type":"Array(Hash(String, JSON::Any))","visibility":"Public","body":"@dates"}},{"html_id":"dates=(dates:Array(Hash(String,JSON::Any)))-instance-method","name":"dates=","abstract":false,"args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"args_string":"(dates : Array(Hash(String, JSON::Any)))","args_html":"(dates : Array(Hash(String, JSON::Any)))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates=","args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"visibility":"Public","body":"@dates = dates"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_types:Array(Expanded::Conflict)|Nil-instance-method","name":"conflict_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types","return_type":"Array(Expanded::Conflict) | ::Nil","visibility":"Public","body":"@conflict_types"}},{"html_id":"conflict_types=(conflict_types:Array(Expanded::Conflict)|Nil)-instance-method","name":"conflict_types=","abstract":false,"args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"args_string":"(conflict_types : Array(Expanded::Conflict) | Nil)","args_html":"(conflict_types : Array(Expanded::Conflict) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types=","args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"visibility":"Public","body":"@conflict_types = conflict_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Category","path":"TwentyFiveLivePro/Models/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"inherit_code:Int64|Nil-instance-method","name":"inherit_code","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code","return_type":"Int64 | ::Nil","visibility":"Public","body":"@inherit_code"}},{"html_id":"inherit_code=(inherit_code:Int64|Nil)-instance-method","name":"inherit_code=","abstract":false,"args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"args_string":"(inherit_code : Int64 | Nil)","args_html":"(inherit_code : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code=","args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@inherit_code = inherit_code"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Event","path":"TwentyFiveLivePro/Models/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","path":"TwentyFiveLivePro/Models/EventDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","path":"TwentyFiveLivePro/Models/EventDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"args_string":"(id : Int64 | Nil)","args_html":"(id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Event)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items","return_type":"Array(Event)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Event))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"args_string":"(items : Array(Event))","args_html":"(items : Array(Event))","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"priority:Int64-instance-method","name":"priority","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority","return_type":"Int64","visibility":"Public","body":"@priority"}},{"html_id":"priority=(priority:Int64)-instance-method","name":"priority=","abstract":false,"args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"args_string":"(priority : Int64)","args_html":"(priority : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority=","args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"visibility":"Public","body":"@priority = priority"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"event_types:Array(Expanded::EventType)|Nil-instance-method","name":"event_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types","return_type":"Array(Expanded::EventType) | ::Nil","visibility":"Public","body":"@event_types"}},{"html_id":"event_types=(event_types:Array(Expanded::EventType)|Nil)-instance-method","name":"event_types=","abstract":false,"args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"args_string":"(event_types : Array(Expanded::EventType) | Nil)","args_html":"(event_types : Array(Expanded::EventType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types=","args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"visibility":"Public","body":"@event_types = event_types"}},{"html_id":"organizations:Array(Expanded::Organization)|Nil-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations","return_type":"Array(Expanded::Organization) | ::Nil","visibility":"Public","body":"@organizations"}},{"html_id":"organizations=(organizations:Array(Expanded::Organization)|Nil)-instance-method","name":"organizations=","abstract":false,"args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"args_string":"(organizations : Array(Expanded::Organization) | Nil)","args_html":"(organizations : Array(Expanded::Organization) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations=","args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"visibility":"Public","body":"@organizations = organizations"}},{"html_id":"parent_nodes:Array(Expanded::ParentNode)|Nil-instance-method","name":"parent_nodes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes","return_type":"Array(Expanded::ParentNode) | ::Nil","visibility":"Public","body":"@parent_nodes"}},{"html_id":"parent_nodes=(parent_nodes:Array(Expanded::ParentNode)|Nil)-instance-method","name":"parent_nodes=","abstract":false,"args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"args_string":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","args_html":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes=","args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"visibility":"Public","body":"@parent_nodes = parent_nodes"}},{"html_id":"resources:Array(Expanded::Resource)|Nil-instance-method","name":"resources","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources","return_type":"Array(Expanded::Resource) | ::Nil","visibility":"Public","body":"@resources"}},{"html_id":"resources=(resources:Array(Expanded::Resource)|Nil)-instance-method","name":"resources=","abstract":false,"args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"args_string":"(resources : Array(Expanded::Resource) | Nil)","args_html":"(resources : Array(Expanded::Resource) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources=","args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"visibility":"Public","body":"@resources = resources"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"spaces:Array(Expanded::Space)|Nil-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces","return_type":"Array(Expanded::Space) | ::Nil","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Expanded::Space)|Nil)-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"args_string":"(spaces : Array(Expanded::Space) | Nil)","args_html":"(spaces : Array(Expanded::Space) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"states:Array(Expanded::State)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states","return_type":"Array(Expanded::State) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"states=(states:Array(Expanded::State)|Nil)-instance-method","name":"states=","abstract":false,"args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"args_string":"(states : Array(Expanded::State) | Nil)","args_html":"(states : Array(Expanded::State) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states=","args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"visibility":"Public","body":"@states = states"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","path":"TwentyFiveLivePro/Models/Expanded.html","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Attribute","path":"TwentyFiveLivePro/Models/Expanded/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}},{"html_id":"attribute_name:String-instance-method","name":"attribute_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name","return_type":"String","visibility":"Public","body":"@attribute_name"}},{"html_id":"attribute_name=(attribute_name:String)-instance-method","name":"attribute_name=","abstract":false,"args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"args_string":"(attribute_name : String)","args_html":"(attribute_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name=","args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"visibility":"Public","body":"@attribute_name = attribute_name"}},{"html_id":"attribute_type:String|Nil-instance-method","name":"attribute_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type","return_type":"String | ::Nil","visibility":"Public","body":"@attribute_type"}},{"html_id":"attribute_type=(attribute_type:String|Nil)-instance-method","name":"attribute_type=","abstract":false,"args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"args_string":"(attribute_type : String | Nil)","args_html":"(attribute_type : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type=","args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attribute_type = attribute_type"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Category","path":"TwentyFiveLivePro/Models/Expanded/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"category_name:String-instance-method","name":"category_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name","return_type":"String","visibility":"Public","body":"@category_name"}},{"html_id":"category_name=(category_name:String)-instance-method","name":"category_name=","abstract":false,"args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"args_string":"(category_name : String)","args_html":"(category_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name=","args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"visibility":"Public","body":"@category_name = category_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Conflict","path":"TwentyFiveLivePro/Models/Expanded/Conflict.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_type_description:String-instance-method","name":"conflict_type_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description","return_type":"String","visibility":"Public","body":"@conflict_type_description"}},{"html_id":"conflict_type_description=(conflict_type_description:String)-instance-method","name":"conflict_type_description=","abstract":false,"args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"args_string":"(conflict_type_description : String)","args_html":"(conflict_type_description : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description=","args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"visibility":"Public","body":"@conflict_type_description = conflict_type_description"}},{"html_id":"conflict_type_id:Int64-instance-method","name":"conflict_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id","return_type":"Int64","visibility":"Public","body":"@conflict_type_id"}},{"html_id":"conflict_type_id=(conflict_type_id:Int64)-instance-method","name":"conflict_type_id=","abstract":false,"args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"args_string":"(conflict_type_id : Int64)","args_html":"(conflict_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id=","args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"visibility":"Public","body":"@conflict_type_id = conflict_type_id"}},{"html_id":"conflict_type_name:String-instance-method","name":"conflict_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name","return_type":"String","visibility":"Public","body":"@conflict_type_name"}},{"html_id":"conflict_type_name=(conflict_type_name:String)-instance-method","name":"conflict_type_name=","abstract":false,"args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"args_string":"(conflict_type_name : String)","args_html":"(conflict_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name=","args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"visibility":"Public","body":"@conflict_type_name = conflict_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Contact","path":"TwentyFiveLivePro/Models/Expanded/Contact.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64|Nil-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64|Nil)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"args_string":"(contact_id : Int64 | Nil)","args_html":"(contact_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"etag:String|Nil-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag","return_type":"String | ::Nil","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String|Nil)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"args_string":"(etag : String | Nil)","args_html":"(etag : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"family_name:String|Nil-instance-method","name":"family_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name","return_type":"String | ::Nil","visibility":"Public","body":"@family_name"}},{"html_id":"family_name=(family_name:String|Nil)-instance-method","name":"family_name=","abstract":false,"args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"args_string":"(family_name : String | Nil)","args_html":"(family_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name=","args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family_name = family_name"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/EventType","path":"TwentyFiveLivePro/Models/Expanded/EventType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::EventType","name":"EventType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"type_id:Int64-instance-method","name":"type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id","return_type":"Int64","visibility":"Public","body":"@type_id"}},{"html_id":"type_id=(type_id:Int64)-instance-method","name":"type_id=","abstract":false,"args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"args_string":"(type_id : Int64)","args_html":"(type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id=","args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"visibility":"Public","body":"@type_id = type_id"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Feature","path":"TwentyFiveLivePro/Models/Expanded/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"feature_name:String-instance-method","name":"feature_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name","return_type":"String","visibility":"Public","body":"@feature_name"}},{"html_id":"feature_name=(feature_name:String)-instance-method","name":"feature_name=","abstract":false,"args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"args_string":"(feature_name : String)","args_html":"(feature_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name=","args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"visibility":"Public","body":"@feature_name = feature_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Layout","path":"TwentyFiveLivePro/Models/Expanded/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name","return_type":"String","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"args_string":"(layout_name : String)","args_html":"(layout_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"visibility":"Public","body":"@layout_name = layout_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Organization","path":"TwentyFiveLivePro/Models/Expanded/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/OrganizationType","path":"TwentyFiveLivePro/Models/Expanded/OrganizationType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::OrganizationType","name":"OrganizationType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"organization_type_name:String-instance-method","name":"organization_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name","return_type":"String","visibility":"Public","body":"@organization_type_name"}},{"html_id":"organization_type_name=(organization_type_name:String)-instance-method","name":"organization_type_name=","abstract":false,"args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"args_string":"(organization_type_name : String)","args_html":"(organization_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name=","args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"visibility":"Public","body":"@organization_type_name = organization_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/ParentNode","path":"TwentyFiveLivePro/Models/Expanded/ParentNode.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::ParentNode","name":"ParentNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_dt:String-instance-method","name":"end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt","return_type":"String","visibility":"Public","body":"@end_dt"}},{"html_id":"end_dt=(end_dt:String)-instance-method","name":"end_dt=","abstract":false,"args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"args_string":"(end_dt : String)","args_html":"(end_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt=","args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"visibility":"Public","body":"@end_dt = end_dt"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"locator:String-instance-method","name":"locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator","return_type":"String","visibility":"Public","body":"@locator"}},{"html_id":"locator=(locator:String)-instance-method","name":"locator=","abstract":false,"args":[{"name":"locator","external_name":"locator","restriction":"String"}],"args_string":"(locator : String)","args_html":"(locator : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator=","args":[{"name":"locator","external_name":"locator","restriction":"String"}],"visibility":"Public","body":"@locator = locator"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}},{"html_id":"start_dt:String-instance-method","name":"start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt","return_type":"String","visibility":"Public","body":"@start_dt"}},{"html_id":"start_dt=(start_dt:String)-instance-method","name":"start_dt=","abstract":false,"args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"args_string":"(start_dt : String)","args_html":"(start_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt=","args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"visibility":"Public","body":"@start_dt = start_dt"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Resource","path":"TwentyFiveLivePro/Models/Expanded/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"resource_id:Int64-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id","return_type":"Int64","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:Int64)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"args_string":"(resource_id : Int64)","args_html":"(resource_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Role","path":"TwentyFiveLivePro/Models/Expanded/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}},{"html_id":"role_name:String-instance-method","name":"role_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name","return_type":"String","visibility":"Public","body":"@role_name"}},{"html_id":"role_name=(role_name:String)-instance-method","name":"role_name=","abstract":false,"args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"args_string":"(role_name : String)","args_html":"(role_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name=","args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"visibility":"Public","body":"@role_name = role_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Space","path":"TwentyFiveLivePro/Models/Expanded/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name","return_type":"String","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"args_string":"(space_formal_name : String)","args_html":"(space_formal_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/State","path":"TwentyFiveLivePro/Models/Expanded/State.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"state:Int64-instance-method","name":"state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state","return_type":"Int64","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int64)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int64"}],"args_string":"(state : Int64)","args_html":"(state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int64"}],"visibility":"Public","body":"@state = state"}},{"html_id":"state_name:String-instance-method","name":"state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name","return_type":"String","visibility":"Public","body":"@state_name"}},{"html_id":"state_name=(state_name:String)-instance-method","name":"state_name=","abstract":false,"args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"args_string":"(state_name : String)","args_html":"(state_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name=","args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"visibility":"Public","body":"@state_name = state_name"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Feature","path":"TwentyFiveLivePro/Models/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"quantity:Int64-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity","return_type":"Int64","visibility":"Public","body":"@quantity"}},{"html_id":"quantity=(quantity:Int64)-instance-method","name":"quantity=","abstract":false,"args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"args_string":"(quantity : Int64)","args_html":"(quantity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity=","args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"visibility":"Public","body":"@quantity = quantity"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Layout","path":"TwentyFiveLivePro/Models/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default_layout:Bool-instance-method","name":"default_layout","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout","return_type":"Bool","visibility":"Public","body":"@default_layout"}},{"html_id":"default_layout=(default_layout:Bool)-instance-method","name":"default_layout=","abstract":false,"args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"args_string":"(default_layout : Bool)","args_html":"(default_layout : Bool)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout=","args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"visibility":"Public","body":"@default_layout = default_layout"}},{"html_id":"layout_capacity:Int64-instance-method","name":"layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity","return_type":"Int64","visibility":"Public","body":"@layout_capacity"}},{"html_id":"layout_capacity=(layout_capacity:Int64)-instance-method","name":"layout_capacity=","abstract":false,"args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"args_string":"(layout_capacity : Int64)","args_html":"(layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity=","args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@layout_capacity = layout_capacity"}},{"html_id":"layout_diagram_id:Int64|Nil-instance-method","name":"layout_diagram_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_diagram_id"}},{"html_id":"layout_diagram_id=(layout_diagram_id:Int64|Nil)-instance-method","name":"layout_diagram_id=","abstract":false,"args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_diagram_id : Int64 | Nil)","args_html":"(layout_diagram_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id=","args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_diagram_id = layout_diagram_id"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_photo_id:Int64|Nil-instance-method","name":"layout_photo_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_photo_id"}},{"html_id":"layout_photo_id=(layout_photo_id:Int64|Nil)-instance-method","name":"layout_photo_id=","abstract":false,"args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_photo_id : Int64 | Nil)","args_html":"(layout_photo_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id=","args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_photo_id = layout_photo_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Organization","path":"TwentyFiveLivePro/Models/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String|Nil-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title","return_type":"String | ::Nil","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String|Nil)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"args_string":"(organization_title : String | Nil)","args_html":"(organization_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64|Nil-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64|Nil)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"args_string":"(organization_type_id : Int64 | Nil)","args_html":"(organization_type_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","path":"TwentyFiveLivePro/Models/OrganizationDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Organization)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items","return_type":"Array(Organization)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Organization))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"args_string":"(items : Array(Organization))","args_html":"(items : Array(Organization))","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title","return_type":"String","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"args_string":"(organization_title : String)","args_html":"(organization_title : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_categories:Array(Expanded::Category)|Nil-instance-method","name":"organization_categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@organization_categories"}},{"html_id":"organization_categories=(organization_categories:Array(Expanded::Category)|Nil)-instance-method","name":"organization_categories=","abstract":false,"args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(organization_categories : Array(Expanded::Category) | Nil)","args_html":"(organization_categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories=","args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@organization_categories = organization_categories"}},{"html_id":"organization_types:Array(Expanded::OrganizationType)|Nil-instance-method","name":"organization_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types","return_type":"Array(Expanded::OrganizationType) | ::Nil","visibility":"Public","body":"@organization_types"}},{"html_id":"organization_types=(organization_types:Array(Expanded::OrganizationType)|Nil)-instance-method","name":"organization_types=","abstract":false,"args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"args_string":"(organization_types : Array(Expanded::OrganizationType) | Nil)","args_html":"(organization_types : Array(Expanded::OrganizationType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types=","args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"visibility":"Public","body":"@organization_types = organization_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","path":"TwentyFiveLivePro/Models/PaginatedResponse.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_item_count:Int64-instance-method","name":"current_item_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count","return_type":"Int64","visibility":"Public","body":"@current_item_count"}},{"html_id":"current_item_count=(current_item_count:Int64)-instance-method","name":"current_item_count=","abstract":false,"args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"args_string":"(current_item_count : Int64)","args_html":"(current_item_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count=","args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"visibility":"Public","body":"@current_item_count = current_item_count"}},{"html_id":"items_per_page:Int64-instance-method","name":"items_per_page","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page","return_type":"Int64","visibility":"Public","body":"@items_per_page"}},{"html_id":"items_per_page=(items_per_page:Int64)-instance-method","name":"items_per_page=","abstract":false,"args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"args_string":"(items_per_page : Int64)","args_html":"(items_per_page : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page=","args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"visibility":"Public","body":"@items_per_page = items_per_page"}},{"html_id":"page_index:Int64-instance-method","name":"page_index","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index","return_type":"Int64","visibility":"Public","body":"@page_index"}},{"html_id":"page_index=(page_index:Int64)-instance-method","name":"page_index=","abstract":false,"args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"args_string":"(page_index : Int64)","args_html":"(page_index : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index=","args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"visibility":"Public","body":"@page_index = page_index"}},{"html_id":"paginate_key:Int64-instance-method","name":"paginate_key","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key","return_type":"Int64","visibility":"Public","body":"@paginate_key"}},{"html_id":"paginate_key=(paginate_key:Int64)-instance-method","name":"paginate_key=","abstract":false,"args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"args_string":"(paginate_key : Int64)","args_html":"(paginate_key : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key=","args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"visibility":"Public","body":"@paginate_key = paginate_key"}},{"html_id":"paging_link_template:String-instance-method","name":"paging_link_template","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template","return_type":"String","visibility":"Public","body":"@paging_link_template"}},{"html_id":"paging_link_template=(paging_link_template:String)-instance-method","name":"paging_link_template=","abstract":false,"args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"args_string":"(paging_link_template : String)","args_html":"(paging_link_template : String)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template=","args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"visibility":"Public","body":"@paging_link_template = paging_link_template"}},{"html_id":"total_items:Int64-instance-method","name":"total_items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items","return_type":"Int64","visibility":"Public","body":"@total_items"}},{"html_id":"total_items=(total_items:Int64)-instance-method","name":"total_items=","abstract":false,"args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"args_string":"(total_items : Int64)","args_html":"(total_items : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items=","args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"visibility":"Public","body":"@total_items = total_items"}},{"html_id":"total_pages:Int64-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages","return_type":"Int64","visibility":"Public","body":"@total_pages"}},{"html_id":"total_pages=(total_pages:Int64)-instance-method","name":"total_pages=","abstract":false,"args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"args_string":"(total_pages : Int64)","args_html":"(total_pages : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages=","args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"visibility":"Public","body":"@total_pages = total_pages"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","path":"TwentyFiveLivePro/Models/Reservations.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"engine:String|Nil-instance-method","name":"engine","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine","return_type":"String | ::Nil","visibility":"Public","body":"@engine"}},{"html_id":"engine=(engine:String|Nil)-instance-method","name":"engine=","abstract":false,"args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"args_string":"(engine : String | Nil)","args_html":"(engine : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine=","args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"visibility":"Public","body":"@engine = engine"}},{"html_id":"reservation:Array(Data)-instance-method","name":"reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation","return_type":"Array(Data)","visibility":"Public","body":"@reservation"}},{"html_id":"reservation=(reservation:Array(Data))-instance-method","name":"reservation=","abstract":false,"args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"args_string":"(reservation : Array(Data))","args_html":"(reservation : Array(Data))","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation=","args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"visibility":"Public","body":"@reservation = reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","path":"TwentyFiveLivePro/Models/Reservations/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_end_dt:Date-instance-method","name":"event_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt","return_type":"Date","visibility":"Public","body":"@event_end_dt"}},{"html_id":"event_end_dt=(event_end_dt:Date)-instance-method","name":"event_end_dt=","abstract":false,"args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"args_string":"(event_end_dt : Date)","args_html":"(event_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt=","args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"visibility":"Public","body":"@event_end_dt = event_end_dt"}},{"html_id":"event_id:Int64-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id","return_type":"Int64","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:Int64)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"args_string":"(event_id : Int64)","args_html":"(event_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_locator:String|Nil-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator","return_type":"String | ::Nil","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String|Nil)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"args_string":"(event_locator : String | Nil)","args_html":"(event_locator : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"event_name:String|Nil-instance-method","name":"event_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_name"}},{"html_id":"event_name=(event_name:String|Nil)-instance-method","name":"event_name=","abstract":false,"args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"args_string":"(event_name : String | Nil)","args_html":"(event_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name=","args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_name = event_name"}},{"html_id":"event_start_dt:Date-instance-method","name":"event_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt","return_type":"Date","visibility":"Public","body":"@event_start_dt"}},{"html_id":"event_start_dt=(event_start_dt:Date)-instance-method","name":"event_start_dt=","abstract":false,"args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"args_string":"(event_start_dt : Date)","args_html":"(event_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt=","args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"visibility":"Public","body":"@event_start_dt = event_start_dt"}},{"html_id":"event_title:String|Nil-instance-method","name":"event_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title","return_type":"String | ::Nil","visibility":"Public","body":"@event_title"}},{"html_id":"event_title=(event_title:String|Nil)-instance-method","name":"event_title=","abstract":false,"args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"args_string":"(event_title : String | Nil)","args_html":"(event_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title=","args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_title = event_title"}},{"html_id":"event_type_class:String|Nil-instance-method","name":"event_type_class","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_class"}},{"html_id":"event_type_class=(event_type_class:String|Nil)-instance-method","name":"event_type_class=","abstract":false,"args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"args_string":"(event_type_class : String | Nil)","args_html":"(event_type_class : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class=","args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_class = event_type_class"}},{"html_id":"event_type_name:String|Nil-instance-method","name":"event_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_name"}},{"html_id":"event_type_name=(event_type_name:String|Nil)-instance-method","name":"event_type_name=","abstract":false,"args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"args_string":"(event_type_name : String | Nil)","args_html":"(event_type_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name=","args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_name = event_type_name"}},{"html_id":"expected_count:Int64-instance-method","name":"expected_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count","return_type":"Int64","visibility":"Public","body":"@expected_count"}},{"html_id":"expected_count=(expected_count:Int64)-instance-method","name":"expected_count=","abstract":false,"args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"args_string":"(expected_count : Int64)","args_html":"(expected_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count=","args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"visibility":"Public","body":"@expected_count = expected_count"}},{"html_id":"last_mod_dt:Date-instance-method","name":"last_mod_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt","return_type":"Date","visibility":"Public","body":"@last_mod_dt"}},{"html_id":"last_mod_dt=(last_mod_dt:Date)-instance-method","name":"last_mod_dt=","abstract":false,"args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"args_string":"(last_mod_dt : Date)","args_html":"(last_mod_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt=","args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"visibility":"Public","body":"@last_mod_dt = last_mod_dt"}},{"html_id":"last_mod_user:String|Nil-instance-method","name":"last_mod_user","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user","return_type":"String | ::Nil","visibility":"Public","body":"@last_mod_user"}},{"html_id":"last_mod_user=(last_mod_user:String|Nil)-instance-method","name":"last_mod_user=","abstract":false,"args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"args_string":"(last_mod_user : String | Nil)","args_html":"(last_mod_user : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user=","args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_mod_user = last_mod_user"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String|Nil-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name","return_type":"String | ::Nil","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String|Nil)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"args_string":"(organization_name : String | Nil)","args_html":"(organization_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"post_event_dt:Date-instance-method","name":"post_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt","return_type":"Date","visibility":"Public","body":"@post_event_dt"}},{"html_id":"post_event_dt=(post_event_dt:Date)-instance-method","name":"post_event_dt=","abstract":false,"args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"args_string":"(post_event_dt : Date)","args_html":"(post_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt=","args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"visibility":"Public","body":"@post_event_dt = post_event_dt"}},{"html_id":"pre_event_dt:Date-instance-method","name":"pre_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt","return_type":"Date","visibility":"Public","body":"@pre_event_dt"}},{"html_id":"pre_event_dt=(pre_event_dt:Date)-instance-method","name":"pre_event_dt=","abstract":false,"args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"args_string":"(pre_event_dt : Date)","args_html":"(pre_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt=","args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"visibility":"Public","body":"@pre_event_dt = pre_event_dt"}},{"html_id":"profile_description:String-instance-method","name":"profile_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description","return_type":"String","visibility":"Public","body":"@profile_description"}},{"html_id":"profile_description=(profile_description:String)-instance-method","name":"profile_description=","abstract":false,"args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"args_string":"(profile_description : String)","args_html":"(profile_description : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description=","args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"visibility":"Public","body":"@profile_description = profile_description"}},{"html_id":"profile_id:Int64-instance-method","name":"profile_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id","return_type":"Int64","visibility":"Public","body":"@profile_id"}},{"html_id":"profile_id=(profile_id:Int64)-instance-method","name":"profile_id=","abstract":false,"args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"args_string":"(profile_id : Int64)","args_html":"(profile_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id=","args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"visibility":"Public","body":"@profile_id = profile_id"}},{"html_id":"profile_name:String|Nil-instance-method","name":"profile_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name","return_type":"String | ::Nil","visibility":"Public","body":"@profile_name"}},{"html_id":"profile_name=(profile_name:String|Nil)-instance-method","name":"profile_name=","abstract":false,"args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"args_string":"(profile_name : String | Nil)","args_html":"(profile_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name=","args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@profile_name = profile_name"}},{"html_id":"registered_count:Int64-instance-method","name":"registered_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count","return_type":"Int64","visibility":"Public","body":"@registered_count"}},{"html_id":"registered_count=(registered_count:Int64)-instance-method","name":"registered_count=","abstract":false,"args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"args_string":"(registered_count : Int64)","args_html":"(registered_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count=","args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"visibility":"Public","body":"@registered_count = registered_count"}},{"html_id":"registration_label:String|Nil-instance-method","name":"registration_label","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label","return_type":"String | ::Nil","visibility":"Public","body":"@registration_label"}},{"html_id":"registration_label=(registration_label:String|Nil)-instance-method","name":"registration_label=","abstract":false,"args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"args_string":"(registration_label : String | Nil)","args_html":"(registration_label : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label=","args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"visibility":"Public","body":"@registration_label = registration_label"}},{"html_id":"registration_url:String-instance-method","name":"registration_url","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url","return_type":"String","visibility":"Public","body":"@registration_url"}},{"html_id":"registration_url=(registration_url:String)-instance-method","name":"registration_url=","abstract":false,"args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"args_string":"(registration_url : String)","args_html":"(registration_url : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url=","args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"visibility":"Public","body":"@registration_url = registration_url"}},{"html_id":"reservation_comment_id:String|Nil-instance-method","name":"reservation_comment_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comment_id"}},{"html_id":"reservation_comment_id=(reservation_comment_id:String|Nil)-instance-method","name":"reservation_comment_id=","abstract":false,"args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"args_string":"(reservation_comment_id : String | Nil)","args_html":"(reservation_comment_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id=","args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comment_id = reservation_comment_id"}},{"html_id":"reservation_comments:String|Nil-instance-method","name":"reservation_comments","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comments"}},{"html_id":"reservation_comments=(reservation_comments:String|Nil)-instance-method","name":"reservation_comments=","abstract":false,"args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"args_string":"(reservation_comments : String | Nil)","args_html":"(reservation_comments : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments=","args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comments = reservation_comments"}},{"html_id":"reservation_end_dt:Date-instance-method","name":"reservation_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt","return_type":"Date","visibility":"Public","body":"@reservation_end_dt"}},{"html_id":"reservation_end_dt=(reservation_end_dt:Date)-instance-method","name":"reservation_end_dt=","abstract":false,"args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"args_string":"(reservation_end_dt : Date)","args_html":"(reservation_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt=","args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_end_dt = reservation_end_dt"}},{"html_id":"reservation_id:Int64-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id","return_type":"Int64","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:Int64)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"args_string":"(reservation_id : Int64)","args_html":"(reservation_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"reservation_start_dt:Date-instance-method","name":"reservation_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt","return_type":"Date","visibility":"Public","body":"@reservation_start_dt"}},{"html_id":"reservation_start_dt=(reservation_start_dt:Date)-instance-method","name":"reservation_start_dt=","abstract":false,"args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"args_string":"(reservation_start_dt : Date)","args_html":"(reservation_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt=","args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_start_dt = reservation_start_dt"}},{"html_id":"reservation_state:Int64-instance-method","name":"reservation_state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state","return_type":"Int64","visibility":"Public","body":"@reservation_state"}},{"html_id":"reservation_state=(reservation_state:Int64)-instance-method","name":"reservation_state=","abstract":false,"args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"args_string":"(reservation_state : Int64)","args_html":"(reservation_state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state=","args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"visibility":"Public","body":"@reservation_state = reservation_state"}},{"html_id":"reservation_state_name:String|Nil-instance-method","name":"reservation_state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_state_name"}},{"html_id":"reservation_state_name=(reservation_state_name:String|Nil)-instance-method","name":"reservation_state_name=","abstract":false,"args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"args_string":"(reservation_state_name : String | Nil)","args_html":"(reservation_state_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name=","args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_state_name = reservation_state_name"}},{"html_id":"space_reservation:Space-instance-method","name":"space_reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation","return_type":"Space","visibility":"Public","body":"@space_reservation"}},{"html_id":"space_reservation=(space_reservation:Space)-instance-method","name":"space_reservation=","abstract":false,"args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"args_string":"(space_reservation : Space)","args_html":"(space_reservation : Space)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation=","args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"visibility":"Public","body":"@space_reservation = space_reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data/Space","path":"TwentyFiveLivePro/Models/Reservations/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual_count:String|Nil-instance-method","name":"actual_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count","return_type":"String | ::Nil","visibility":"Public","body":"@actual_count"}},{"html_id":"actual_count=(actual_count:String|Nil)-instance-method","name":"actual_count=","abstract":false,"args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"args_string":"(actual_count : String | Nil)","args_html":"(actual_count : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count=","args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"visibility":"Public","body":"@actual_count = actual_count"}},{"html_id":"default_layout_capacity:String|Nil-instance-method","name":"default_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity","return_type":"String | ::Nil","visibility":"Public","body":"@default_layout_capacity"}},{"html_id":"default_layout_capacity=(default_layout_capacity:String|Nil)-instance-method","name":"default_layout_capacity=","abstract":false,"args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"args_string":"(default_layout_capacity : String | Nil)","args_html":"(default_layout_capacity : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity=","args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default_layout_capacity = default_layout_capacity"}},{"html_id":"formal_name:String|Nil-instance-method","name":"formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@formal_name"}},{"html_id":"formal_name=(formal_name:String|Nil)-instance-method","name":"formal_name=","abstract":false,"args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"args_string":"(formal_name : String | Nil)","args_html":"(formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name=","args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@formal_name = formal_name"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String|Nil-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name","return_type":"String | ::Nil","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String|Nil)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"args_string":"(layout_name : String | Nil)","args_html":"(layout_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@layout_name = layout_name"}},{"html_id":"selected_layout_capacity:Int64-instance-method","name":"selected_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity","return_type":"Int64","visibility":"Public","body":"@selected_layout_capacity"}},{"html_id":"selected_layout_capacity=(selected_layout_capacity:Int64)-instance-method","name":"selected_layout_capacity=","abstract":false,"args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"args_string":"(selected_layout_capacity : Int64)","args_html":"(selected_layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity=","args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@selected_layout_capacity = selected_layout_capacity"}},{"html_id":"shared:String|Nil-instance-method","name":"shared","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared","return_type":"String | ::Nil","visibility":"Public","body":"@shared"}},{"html_id":"shared=(shared:String|Nil)-instance-method","name":"shared=","abstract":false,"args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"args_string":"(shared : String | Nil)","args_html":"(shared : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared=","args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"visibility":"Public","body":"@shared = shared"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_instruction_id:String|Nil-instance-method","name":"space_instruction_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_instruction_id"}},{"html_id":"space_instruction_id=(space_instruction_id:String|Nil)-instance-method","name":"space_instruction_id=","abstract":false,"args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"args_string":"(space_instruction_id : String | Nil)","args_html":"(space_instruction_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id=","args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instruction_id = space_instruction_id"}},{"html_id":"space_instructions:String|Nil-instance-method","name":"space_instructions","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions","return_type":"String | ::Nil","visibility":"Public","body":"@space_instructions"}},{"html_id":"space_instructions=(space_instructions:String|Nil)-instance-method","name":"space_instructions=","abstract":false,"args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"args_string":"(space_instructions : String | Nil)","args_html":"(space_instructions : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions=","args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instructions = space_instructions"}},{"html_id":"space_name:String|Nil-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String|Nil)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"args_string":"(space_name : String | Nil)","args_html":"(space_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_name = space_name"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Resource","path":"TwentyFiveLivePro/Models/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","path":"TwentyFiveLivePro/Models/ResourceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","path":"TwentyFiveLivePro/Models/ResourceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Resource)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items","return_type":"Array(Resource)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Resource))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"args_string":"(items : Array(Resource))","args_html":"(items : Array(Resource))","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Role","path":"TwentyFiveLivePro/Models/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id","return_type":"Int64","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"args_string":"(contact_id : Int64)","args_html":"(contact_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Space","path":"TwentyFiveLivePro/Models/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","path":"TwentyFiveLivePro/Models/SpaceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","path":"TwentyFiveLivePro/Models/SpaceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Space)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items","return_type":"Array(Space)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Space))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"args_string":"(items : Array(Space))","args_html":"(items : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"args_string":"(attributes : Array(Attribute) | Nil)","args_html":"(attributes : Array(Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"args_string":"(categories : Array(Category) | Nil)","args_html":"(categories : Array(Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"features:Array(Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features","return_type":"Array(Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"args_string":"(features : Array(Feature) | Nil)","args_html":"(features : Array(Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"layouts:Array(Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts","return_type":"Array(Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"args_string":"(layouts : Array(Layout) | Nil)","args_html":"(layouts : Array(Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"roles:Array(Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"args_string":"(roles : Array(Role) | Nil)","args_html":"(roles : Array(Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"features:Array(Expanded::Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features","return_type":"Array(Expanded::Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Expanded::Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"args_string":"(features : Array(Expanded::Feature) | Nil)","args_html":"(features : Array(Expanded::Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"layouts:Array(Expanded::Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts","return_type":"Array(Expanded::Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Expanded::Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"args_string":"(layouts : Array(Expanded::Layout) | Nil)","args_html":"(layouts : Array(Expanded::Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}}]}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/RoomSchedule","path":"TwentyFiveLivePro/RoomSchedule.html","kind":"class","full_name":"TwentyFiveLivePro::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L32"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local\n todays_events = fetch_events(today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y%m%d\"))\n todays_events.sort_by() do |__arg1|\n __arg1.date.duration\n end.reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.date.start_date\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by? do |__arg2|\n __arg2.date.start_date\n end\n previous_event = past_events.max_by? do |__arg3|\n __arg3.date.end_date\n end\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String,since:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"args_string":"(start_date : String, end_date : String, since : String)","args_html":"(start_date : String, end_date : String, since : String)","location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L76"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"visibility":"Public","body":"relevant_events = [] of Models::Event\nevents = Array(Models::Event).from_json((twenty_five_live_pro.list_events(1, 100, since, nil)).get.not_nil!.to_json)\nevents.each do |event|\n details = Models::EventDetail.from_json((twenty_five_live_pro.get_event_details(event.id, [\"all\"], [\"all\"])).get.not_nil!.to_json)\n if expanded_info = details.content.expanded_info\n if spaces = expanded_info.spaces\n if spaces.empty?\n next\n end\n if @space_id == spaces.first.space_id\n if event_data = details.content.data\n if event_items = event_data.items\n if event_items.empty?\n next\n end\n event_items.each do |event_item|\n if date = event_item.date\n if (date.start_date.to_rfc3339.includes?(start_date)) && (date.end_date.to_rfc3339.includes?(start_date))\n relevant_events.push(Models::Event.from_json(event_item.to_json))\n end\n end\n end\n end\n end\n end\n end\n end\nend\nrelevant_events\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@space_id = setting(String, :twenty_five_live_pro_space_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/UbiPark","path":"UbiPark.html","kind":"module","full_name":"UbiPark","name":"UbiPark","abstract":false,"locations":[{"filename":"src/ubipark/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/UbiPark/API","path":"UbiPark/API.html","kind":"class","full_name":"UbiPark::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ubipark/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/UbiPark","kind":"module","full_name":"UbiPark","name":"UbiPark"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"list_products(car_park_id:Int32|Nil,tenant_id:Int32|Nil)-instance-method","name":"list_products","abstract":false,"args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","args_html":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L84"},"def":{"name":"list_products","args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif car_park_id.nil?\nelse\n query.push(\"carParkID=#{car_park_id}\")\nend\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/productList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_reasons(tenant_id:Int32|Nil)-instance-method","name":"list_reasons","abstract":false,"args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(tenant_id : Int32 | Nil)","args_html":"(tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L105"},"def":{"name":"list_reasons","args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/reasonList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_userpermits(max_records:Int32,offset:Int32,from_last_modified_time:String,car_park_id:Int32,user_id:Int32)-instance-method","name":"list_userpermits","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","location":{"filename":"src/ubipark/api.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L57"},"def":{"name":"list_userpermits","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time, \"carParkId\" => car_park_id, \"userId\" => user_id}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/userpermit/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_users(max_records:Int32,offset:Int32,from_last_modified_time:String)-instance-method","name":"list_users","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","location":{"filename":"src/ubipark/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L37"},"def":{"name":"list_users","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/user/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"make_payment(payment_id:String,promise_pay_card_name:String,user_id:String,tenant_id:Int32,product_id:String,from_date:String,to_date:String,amount:Float64)-instance-method","name":"make_payment","abstract":false,"args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"args_string":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","args_html":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","location":{"filename":"src/ubipark/api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L125"},"def":{"name":"make_payment","args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"visibility":"Public","body":"if amount < 0\n raise(\"amount can't be less than zero\")\nend\nbody = {\"paymentID\" => payment_id, \"promisePayCardName\" => promise_pay_card_name, \"userID\" => user_id, \"tenantID\" => tenant_id, \"productID\" => product_id, \"fromDate\" => from_date, \"toDate\" => to_date, \"amount\" => (\"%.2f\" % amount).to_f64}.to_json\nresponse = post(\"/api/payment/makepayment\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@tenant_id = setting(Int32, :tenant_id)\n@api_version = setting(String, :api_version)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]}]},{"html_id":"drivers/Union","path":"Union.html","kind":"struct","full_name":"Union(*T)","name":"Union","abstract":false,"superclass":{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},"ancestors":[{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"lib/http-params-serializable/src/http-params-serializable/ext/union.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/http-params-serializable/src/http-params-serializable/ext/union.cr#L2"},{"filename":"src/place/router/settings.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"FIXME: submit as PR to crystal standard lib to support this neatly","summary":"

FIXME submit as PR to crystal standard lib to support this neatly

","class_methods":[{"html_id":"from_json_object_key?(key:String)-class-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L171"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"{% for t in T %}\n instance = {{ t }}.from_json_object_key? key\n return instance unless instance.nil?\n {% end %}\nraise(JSON::ParseException.new(\"Couldn't parse #{self} from #{key}\", 176, 0))\n"}}]},{"html_id":"drivers/Vecos","path":"Vecos.html","kind":"module","full_name":"Vecos","name":"Vecos","abstract":false,"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L3"},{"filename":"src/vecos/releezme/booking.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L3"},{"filename":"src/vecos/releezme/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L3"},{"filename":"src/vecos/releezme/locker.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L3"},{"filename":"src/vecos/releezme/locker_bank.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L3"},{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L4"},{"filename":"src/vecos/releezme/locker_group.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L3"},{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L3"},{"filename":"src/vecos/releezme/locker_users.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L3"},{"filename":"src/vecos/releezme/paging.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L3"},{"filename":"src/vecos/releezme/section.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Vecos/Allocation","path":"Vecos/Allocation.html","kind":"struct","full_name":"Vecos::Allocation","name":"Allocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/allocation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_by_locker_action_on_release?:Bool-instance-method","name":"allocated_by_locker_action_on_release?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L33"},"def":{"name":"allocated_by_locker_action_on_release?","return_type":"Bool","visibility":"Public","body":"@allocated_by_locker_action_on_release"}},{"html_id":"allocated_for_package?:Bool-instance-method","name":"allocated_for_package?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L30"},"def":{"name":"allocated_for_package?","return_type":"Bool","visibility":"Public","body":"@allocated_for_package"}},{"html_id":"dynamically_allocated?:Bool-instance-method","name":"dynamically_allocated?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L18"},"def":{"name":"dynamically_allocated?","return_type":"Bool","visibility":"Public","body":"@dynamically_allocated"}},{"html_id":"expiring:Time-instance-method","name":"expiring","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L24"},"def":{"name":"expiring","return_type":"Time","visibility":"Public","body":"@expiring"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L12"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"self_releasable?:Bool-instance-method","name":"self_releasable?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L15"},"def":{"name":"self_releasable?","return_type":"Bool","visibility":"Public","body":"@self_releasable"}},{"html_id":"shared_to_user?:Bool-instance-method","name":"shared_to_user?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L27"},"def":{"name":"shared_to_user?","return_type":"Bool","visibility":"Public","body":"@shared_to_user"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L21"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"This is the internal user_id - not the user email etc","summary":"

This is the internal user_id - not the user email etc

","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L9"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Booking","path":"Vecos/Booking.html","kind":"struct","full_name":"Vecos::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/booking.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/booking.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L26"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L20"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L17"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L11"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L23"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}}]},{"html_id":"drivers/Vecos/Location","path":"Vecos/Location.html","kind":"struct","full_name":"Vecos::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/location.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:String|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L14"},"def":{"name":"time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Vecos/Locker","path":"Vecos/Locker.html","kind":"struct","full_name":"Vecos::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocked:Bool-instance-method","name":"blocked","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L20"},"def":{"name":"blocked","return_type":"Bool","visibility":"Public","body":"@blocked"}},{"html_id":"door_number:Int32-instance-method","name":"door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L35"},"def":{"name":"door_number","return_type":"Int32","visibility":"Public","body":"@door_number"}},{"html_id":"door_number_prefix:String-instance-method","name":"door_number_prefix","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L32"},"def":{"name":"door_number_prefix","return_type":"String","visibility":"Public","body":"@door_number_prefix"}},{"html_id":"dynamic_allocated:Bool|Nil-instance-method","name":"dynamic_allocated","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L41"},"def":{"name":"dynamic_allocated","return_type":"Bool | ::Nil","visibility":"Public","body":"@dynamic_allocated"}},{"html_id":"expires_date_time_utc:Time|Nil-instance-method","name":"expires_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L62"},"def":{"name":"expires_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@expires_date_time_utc"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L29"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_detected:Bool-instance-method","name":"is_detected","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L26"},"def":{"name":"is_detected","return_type":"Bool","visibility":"Public","body":"@is_detected"}},{"html_id":"is_shareable:Bool|Nil-instance-method","name":"is_shareable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L56"},"def":{"name":"is_shareable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shareable"}},{"html_id":"is_shared:Bool|Nil-instance-method","name":"is_shared","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L53"},"def":{"name":"is_shared","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shared"}},{"html_id":"is_usable:Bool-instance-method","name":"is_usable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L23"},"def":{"name":"is_usable","return_type":"Bool","visibility":"Public","body":"@is_usable"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_brick_id:String-instance-method","name":"locker_brick_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L17"},"def":{"name":"locker_brick_id","return_type":"String","visibility":"Public","body":"@locker_brick_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L11"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"number_of_allocations:Int32|Nil-instance-method","name":"number_of_allocations","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L47"},"def":{"name":"number_of_allocations","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_allocations"}},{"html_id":"number_of_digits_for_door_number:Int32-instance-method","name":"number_of_digits_for_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L68"},"def":{"name":"number_of_digits_for_door_number","return_type":"Int32","visibility":"Public","body":"@number_of_digits_for_door_number"}},{"html_id":"open_time:Int32-instance-method","name":"open_time","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L44"},"def":{"name":"open_time","return_type":"Int32","visibility":"Public","body":"@open_time"}},{"html_id":"self_release_allowed:Bool|Nil-instance-method","name":"self_release_allowed","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L38"},"def":{"name":"self_release_allowed","return_type":"Bool | ::Nil","visibility":"Public","body":"@self_release_allowed"}},{"html_id":"sequence_number:Int32-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L59"},"def":{"name":"sequence_number","return_type":"Int32","visibility":"Public","body":"@sequence_number"}},{"html_id":"shared_to_user:Bool|Nil-instance-method","name":"shared_to_user","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L50"},"def":{"name":"shared_to_user","return_type":"Bool | ::Nil","visibility":"Public","body":"@shared_to_user"}},{"html_id":"start_date_time_utc:Time|Nil-instance-method","name":"start_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L65"},"def":{"name":"start_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@start_date_time_utc"}}]},{"html_id":"drivers/Vecos/LockerBank","path":"Vecos/LockerBank.html","kind":"struct","full_name":"Vecos::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L29"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L17"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"published:Bool-instance-method","name":"published","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L20"},"def":{"name":"published","return_type":"Bool","visibility":"Public","body":"@published"}},{"html_id":"random_allocation:Bool|Nil-instance-method","name":"random_allocation","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L23"},"def":{"name":"random_allocation","return_type":"Bool | ::Nil","visibility":"Public","body":"@random_allocation"}},{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L14"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}},{"html_id":"service_mode:Bool-instance-method","name":"service_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L26"},"def":{"name":"service_mode","return_type":"Bool","visibility":"Public","body":"@service_mode"}}]},{"html_id":"drivers/Vecos/LockerBankAndLockerGroup","path":"Vecos/LockerBankAndLockerGroup.html","kind":"struct","full_name":"Vecos::LockerBankAndLockerGroup","name":"LockerBankAndLockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"locker_bank:LockerBank-instance-method","name":"locker_bank","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L9"},"def":{"name":"locker_bank","return_type":"LockerBank","visibility":"Public","body":"@locker_bank"}},{"html_id":"locker_group:LockerGroup-instance-method","name":"locker_group","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L12"},"def":{"name":"locker_group","return_type":"LockerGroup","visibility":"Public","body":"@locker_group"}}]},{"html_id":"drivers/Vecos/LockerGroup","path":"Vecos/LockerGroup.html","kind":"struct","full_name":"Vecos::LockerGroup","name":"LockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"lock_mode:Int32-instance-method","name":"lock_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L14"},"def":{"name":"lock_mode","return_type":"Int32","visibility":"Public","body":"@lock_mode"}},{"html_id":"locker_booking_feature_enabled:Bool-instance-method","name":"locker_booking_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L17"},"def":{"name":"locker_booking_feature_enabled","return_type":"Bool","visibility":"Public","body":"@locker_booking_feature_enabled"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"postal_service_feature_enabled:Bool-instance-method","name":"postal_service_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L20"},"def":{"name":"postal_service_feature_enabled","return_type":"Bool","visibility":"Public","body":"@postal_service_feature_enabled"}}]},{"html_id":"drivers/Vecos/LockerGroupStatus","path":"Vecos/LockerGroupStatus.html","kind":"struct","full_name":"Vecos::LockerGroupStatus","name":"LockerGroupStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_dynamic_lockers:Int32-instance-method","name":"allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L26"},"def":{"name":"allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_dynamic_lockers"}},{"html_id":"allocated_static_lockers:Int32-instance-method","name":"allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L38"},"def":{"name":"allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_static_lockers"}},{"html_id":"available_dynamic_lockers:Int32-instance-method","name":"available_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L23"},"def":{"name":"available_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@available_dynamic_lockers"}},{"html_id":"available_static_lockers:Int32-instance-method","name":"available_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L35"},"def":{"name":"available_static_lockers","return_type":"Int32","visibility":"Public","body":"@available_static_lockers"}},{"html_id":"blocked_allocated_dynamic_lockers:Int32-instance-method","name":"blocked_allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L29"},"def":{"name":"blocked_allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_dynamic_lockers"}},{"html_id":"blocked_allocated_static_lockers:Int32-instance-method","name":"blocked_allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L41"},"def":{"name":"blocked_allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_static_lockers"}},{"html_id":"blocked_unallocated_dynamic_lockers:Int32-instance-method","name":"blocked_unallocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L32"},"def":{"name":"blocked_unallocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_dynamic_lockers"}},{"html_id":"blocked_unallocated_static_lockers:Int32-instance-method","name":"blocked_unallocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L44"},"def":{"name":"blocked_unallocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_static_lockers"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L8"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_group_name:String-instance-method","name":"locker_group_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L11"},"def":{"name":"locker_group_name","return_type":"String","visibility":"Public","body":"@locker_group_name"}},{"html_id":"public_lockers:Int32-instance-method","name":"public_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L20"},"def":{"name":"public_lockers","return_type":"Int32","visibility":"Public","body":"@public_lockers"}},{"html_id":"unusable_lockers:Int32-instance-method","name":"unusable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L17"},"def":{"name":"unusable_lockers","return_type":"Int32","visibility":"Public","body":"@unusable_lockers"}},{"html_id":"usable_lockers:Int32-instance-method","name":"usable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L14"},"def":{"name":"usable_lockers","return_type":"Int32","visibility":"Public","body":"@usable_lockers"}}]},{"html_id":"drivers/Vecos/LockerUsers","path":"Vecos/LockerUsers.html","kind":"struct","full_name":"Vecos::LockerUsers","name":"LockerUsers","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_users.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L17"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L11"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L14"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L20"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Paging","path":"Vecos/Paging.html","kind":"struct","full_name":"Vecos::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/paging.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/paging.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"first_item_on_page:Int32-instance-method","name":"first_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L8"},"def":{"name":"first_item_on_page","return_type":"Int32","visibility":"Public","body":"@first_item_on_page"}},{"html_id":"has_next_page:Bool-instance-method","name":"has_next_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L11"},"def":{"name":"has_next_page","return_type":"Bool","visibility":"Public","body":"@has_next_page"}},{"html_id":"has_previous_page:Bool-instance-method","name":"has_previous_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L14"},"def":{"name":"has_previous_page","return_type":"Bool","visibility":"Public","body":"@has_previous_page"}},{"html_id":"is_first_page:Bool-instance-method","name":"is_first_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L17"},"def":{"name":"is_first_page","return_type":"Bool","visibility":"Public","body":"@is_first_page"}},{"html_id":"is_last_page:Bool-instance-method","name":"is_last_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L20"},"def":{"name":"is_last_page","return_type":"Bool","visibility":"Public","body":"@is_last_page"}},{"html_id":"last_item_on_page:Int32-instance-method","name":"last_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L23"},"def":{"name":"last_item_on_page","return_type":"Int32","visibility":"Public","body":"@last_item_on_page"}},{"html_id":"page_count:Int32-instance-method","name":"page_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L26"},"def":{"name":"page_count","return_type":"Int32","visibility":"Public","body":"@page_count"}},{"html_id":"page_number:Int32-instance-method","name":"page_number","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L29"},"def":{"name":"page_number","return_type":"Int32","visibility":"Public","body":"@page_number"}},{"html_id":"page_size:Int32-instance-method","name":"page_size","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L32"},"def":{"name":"page_size","return_type":"Int32","visibility":"Public","body":"@page_size"}},{"html_id":"total_item_count:Int32-instance-method","name":"total_item_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L35"},"def":{"name":"total_item_count","return_type":"Int32","visibility":"Public","body":"@total_item_count"}}]},{"html_id":"drivers/Vecos/Releezme","path":"Vecos/Releezme.html","kind":"class","full_name":"Vecos::Releezme","name":"Releezme","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bank(bank_id:String)-instance-method","name":"bank","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L170"},"def":{"name":"bank","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"LockerBank.from_json(fetch_item(\"/api/lockerbanks/#{bank_id}\"))"}},{"html_id":"bank_group_lockers_available(bank_id:String,group_id:String)-instance-method","name":"bank_group_lockers_available","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String)","args_html":"(bank_id : String, group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L183"},"def":{"name":"bank_group_lockers_available","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/#{group_id}/availablelockers?pageSize=200\")"}},{"html_id":"bank_groups(bank_id:String)-instance-method","name":"bank_groups","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L174"},"def":{"name":"bank_groups","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockergroups?pageSize=200\")"}},{"html_id":"bank_locker_allocations(bank_id:String)-instance-method","name":"bank_locker_allocations","doc":"NOTE:: Only accessible to System Control Clients","summary":"

NOTE : Only accessible to System Control Clients

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L188"},"def":{"name":"bank_locker_allocations","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/allocations?pageSize=200\")"}},{"html_id":"bank_lockers(bank_id:String)-instance-method","name":"bank_lockers","doc":"returns all the lockers in the bank without paging (but paging json is included)","summary":"

returns all the lockers in the bank without paging (but paging json is included)

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L179"},"def":{"name":"bank_lockers","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockers?pageSize=200\")"}},{"html_id":"banks-instance-method","name":"banks","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L166"},"def":{"name":"banks","visibility":"Public","body":"fetch_pages(\"/api/lockerbanks?pageSize=200\")"}},{"html_id":"bearer_token:String-instance-method","name":"bearer_token","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L106"},"def":{"name":"bearer_token","visibility":"Public","body":"@bearer_token"}},{"html_id":"book_locker(starting:Int64,ending:Int64,user_id:String,locker_id:String|Nil=nil,group_id:String|Nil=nil,bank_id:String|Nil=nil,timezone:String=\"UTC\")-instance-method","name":"book_locker","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"args_string":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = \"UTC\")","args_html":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = "UTC")","location":{"filename":"src/vecos/releezme.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L244"},"def":{"name":"book_locker","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"tz = Time::Location.load(timezone)\nresponse = post(\"/api/bookings\", body: {\"StartDateTimeUtc\" => ((Time.unix(starting)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"EndDateTimeUtc\" => ((Time.unix(ending)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"LockerGroupId\" => group_id, \"LockerBankId\" => bank_id, \"LockerId\" => locker_id, \"ExternalUserId\" => user_id}.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"bookings(user_id:String)-instance-method","name":"bookings","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L212"},"def":{"name":"bookings","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings?#{params}\")\n"}},{"html_id":"bookings_availability(user_id:String,starting:Int64,ending:Int64,section_id:String|Nil=nil,location_id:String|Nil=nil,bank_id:String|Nil=nil,group_id:String|Nil=nil,locker_id:String|Nil=nil)-instance-method","name":"bookings_availability","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","args_html":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L220"},"def":{"name":"bookings_availability","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"startDateTimeUtc\", (Time.unix(starting)).to_rfc3339)\n form.add(\"endDateTimeUtc\", (Time.unix(ending)).to_rfc3339)\n if section_id.presence\n form.add(\"sectionId\", section_id.as(String))\n end\n if location_id.presence\n form.add(\"locationId\", location_id.as(String))\n end\n if bank_id.presence\n form.add(\"lockerBankId\", bank_id.as(String))\n end\n if bank_id.presence && group_id.presence\n form.add(\"lockerBankId\", group_id.as(String))\n end\n if locker_id.presence\n form.add(\"lockerId\", locker_id.as(String))\n end\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings/availability?#{params}\")\n"}},{"html_id":"can_allocate_locker?(user_id:String):String-instance-method","name":"can_allocate_locker?","doc":"check if a user can be allocated a new locker","summary":"

check if a user can be allocated a new locker

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L274"},"def":{"name":"can_allocate_locker?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = get(\"/api/lockers/canallocate?#{params}\")\nresponse.body\n"}},{"html_id":"can_share_locker_with?(locker_id:String,owner_id:String,search:String)-instance-method","name":"can_share_locker_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, search : String)","args_html":"(locker_id : String, owner_id : String, search : String)","location":{"filename":"src/vecos/releezme.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L339"},"def":{"name":"can_share_locker_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"searchString\", search)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"companies-instance-method","name":"companies","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L114"},"def":{"name":"companies","visibility":"Public","body":"(JSON.parse(fetch_item(\"/api/companies\")))[\"Companies\"]"}},{"html_id":"fetch_item(location:String):String-instance-method","name":"fetch_item","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L97"},"def":{"name":"fetch_item","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get(location)\nif response.status_code == 401\n @expires = 1.minute.ago\nend\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nresponse.body\n"}},{"html_id":"fetch_pages(location:String):Array(JSON::Any)-instance-method","name":"fetch_pages","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : Array(JSON::Any)","args_html":"(location : String) : Array(JSON::Any)","location":{"filename":"src/vecos/releezme.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L71"},"def":{"name":"fetch_pages","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"Array(JSON::Any)","visibility":"Public","body":"append = location.includes?('?') ? '&' : '?'\nnext_page = \"#{location}#{append}pageNumber=#{1}\"\ndata = [] of JSON::Any\nloop do\n response = get(next_page)\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = (JSON.parse(response.body)).as_h\n pages = if has_paging = payload.delete(\"Paging\")\n Paging.from_json(has_paging.to_json)\n end\n data.concat(payload[payload.keys.first].as_a)\n if pages && pages.has_next_page\n else\n break\n end\n next_page = \"#{location}#{append}pageNumber=#{pages.page_number + 1}\"\nend\ndata\n"}},{"html_id":"group(group_id:String)-instance-method","name":"group","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L200"},"def":{"name":"group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"Array(LockerGroup).from_json(fetch_item(\"/api/lockergroups/#{group_id}\"))"}},{"html_id":"group_locker_banks(group_id:String)-instance-method","name":"group_locker_banks","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L204"},"def":{"name":"group_locker_banks","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockergroups/#{group_id}/lockerbanks?pageSize=200\")"}},{"html_id":"groups-instance-method","name":"groups","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L196"},"def":{"name":"groups","visibility":"Public","body":"fetch_pages(\"/api/lockergroups?pageSize=200\")"}},{"html_id":"location(location_id:String)-instance-method","name":"location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L127"},"def":{"name":"location","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"Location.from_json(fetch_item(\"/api/locations/#{location_id}\"))"}},{"html_id":"location_sections(location_id:String)-instance-method","name":"location_sections","doc":"typically these are floors in the building","summary":"

typically these are floors in the building

","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L132"},"def":{"name":"location_sections","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/locations/#{location_id}/sections?pageSize=200\")"}},{"html_id":"locations-instance-method","name":"locations","doc":"typically these are buildings","summary":"

typically these are buildings

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L123"},"def":{"name":"locations","visibility":"Public","body":"fetch_pages(\"/api/locations?pageSize=200\")"}},{"html_id":"locker_allocate(locker_id:String,user_id:String)-instance-method","name":"locker_allocate","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, user_id : String)","args_html":"(locker_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L282"},"def":{"name":"locker_allocate","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_allocate_random(bank_id:String,group_id:String,user_id:String)-instance-method","name":"locker_allocate_random","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String, user_id : String)","args_html":"(bank_id : String, group_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L291"},"def":{"name":"locker_allocate_random","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"lockerBankId\", bank_id)\n form.add(\"lockerGroupId\", group_id)\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_release(locker_id:String,user_id:String|Nil=nil):Nil-instance-method","name":"locker_release","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, user_id : String | Nil = nil) : Nil","args_html":"(locker_id : String, user_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L302"},"def":{"name":"locker_release","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"params = URI::Params.build do |form|\n if user_id.presence\n form.add(\"externalUserId\", user_id)\n end\nend\nresponse = post(\"/api/lockers/#{locker_id}/release?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"locker_shared_with?(locker_id:String,owner_id:String)-instance-method","name":"locker_shared_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String)","args_html":"(locker_id : String, owner_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L347"},"def":{"name":"locker_shared_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"locker_unlock(locker_id:String,pin_code:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, pin_code : String | Nil = nil)","args_html":"(locker_id : String, pin_code : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L310"},"def":{"name":"locker_unlock","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"pin_route = pin_code ? nil : \"/withoutpincode\"\nresponse = post(\"/api/lockers/#{locker_id}/pincode/unlock#{pin_route}\", body: pin_code)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String)-instance-method","name":"lockers_allocated_to","doc":"the lockers that are currently allocated to the specified user\nthe user ID is typically email - defined by the client","summary":"

the lockers that are currently allocated to the specified user the user ID is typically email - defined by the client

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L265"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/lockers/allocated?#{params}\")\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"client_id = setting(String, :client_id)\nclient_secret = setting(String, :client_secret)\nusername = setting(String, :username)\npassword = setting(String, :password)\nreleezme_authentication_domain = setting(String, :releezme_authentication_domain)\ntransport.before_request do |req|\n access_token = get_access_token(client_id, client_secret, username, password, releezme_authentication_domain)\n req.headers[\"Authorization\"] = access_token\n req.headers[\"Content-Type\"] = \"application/json\"\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"section(section_id:String)-instance-method","name":"section","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L145"},"def":{"name":"section","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"Section.from_json(fetch_item(\"/api/locations/#{section_id}\"))"}},{"html_id":"section_banks_allocatable(section_id:String,user_id:String)-instance-method","name":"section_banks_allocatable","doc":"banks and groups in the banks that the user can allocate to themselves","summary":"

banks and groups in the banks that the user can allocate to themselves

","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(section_id : String, user_id : String)","args_html":"(section_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L154"},"def":{"name":"section_banks_allocatable","args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/sections/#{section_id}/lockerbanklockergroups/allocatable?#{params}\")\n"}},{"html_id":"section_locker_banks(section_id:String)-instance-method","name":"section_locker_banks","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L149"},"def":{"name":"section_locker_banks","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/sections/#{section_id}/lockerbanks?pageSize=200\")"}},{"html_id":"sections-instance-method","name":"sections","doc":"all floors from all buildings in one request","summary":"

all floors from all buildings in one request

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L141"},"def":{"name":"sections","visibility":"Public","body":"fetch_pages(\"/api/sections?pageSize=200\")"}},{"html_id":"share_locker_with(locker_id:String,owner_id:String,user_id:String):Bool-instance-method","name":"share_locker_with","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, user_id : String) : Bool","args_html":"(locker_id : String, owner_id : String, user_id : String) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L320"},"def":{"name":"share_locker_with","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"sharedUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/share?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"unshare_locker(locker_id:String,owner_id:String,shared_with_internal_id:String|Nil=nil):Bool-instance-method","name":"unshare_locker","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","args_html":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L330"},"def":{"name":"unshare_locker","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/unshare/#{shared_with_internal_id}?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations","path":"Vecos/ReleezmeLocations.html","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L68"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L271"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of lockers on this level","summary":"

array of lockers on this level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L277"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for lockers in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nreleexme_section_id = @floor_mappings[zone_id]\nbanks = Array(Vecos::LockerBank).from_json((releezme.section_locker_banks(releexme_section_id)).get.to_json)\nif @door_number_lookup && @last_mapped < 3.hour.ago\n @last_mapped = Time.utc\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n self[locker.full_door_number.downcase] = locker.id\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nelse\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L60"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L258"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"releezme incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/vecos/releezme_locations.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L132"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"user_id = get_user_key(user_id)\nlocker_id = locker_id ? lookup_id(locker_id.to_s) : nil\nif expires_at\n timezone = system.timezone || \"UTC\"\n booking = if locker_id\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, locker_id, timezone: timezone)).get\n else\n group_id = get_group_id(user_id, bank_id)\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, group_id: group_id, bank_id: bank_id, timezone: timezone)).get\n end\n PlaceLocker.new(Vecos::Booking.from_json(booking.to_json))\nelse\n if locker_id\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate(locker_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n else\n group_id = get_group_id(user_id, bank_id)\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate_random(bank_id, group_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n end\nend\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L169"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\nif owner_id\n owner_id = get_user_key(owner_id)\nend\n(releezme.locker_release(locker_id, owner_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L190"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.share_locker_with(locker_id, get_user_key(owner_id), get_user_key(share_with))).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L225"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nshared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\nshared_with.map do |user|\n user.email || user.user_id\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L237"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.locker_unlock(locker_id, pin_code)).get\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L201"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nif shared_with_id\n shared_with_external_id = get_user_key(shared_with_id)\n shared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\n shared_user = shared_with.find do |user|\n user.user_id == shared_with_external_id\n end\n if shared_user\n else\n return\n end\n shared_with_id = shared_user.id\nend\n(releezme.unshare_locker(locker_id, owner_id, shared_with_id)).get\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L183"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"user_id = get_user_key(user_id)\nlockers = Array(Vecos::Locker).from_json((releezme.lockers_allocated_to(user_id)).get.to_json)\nlockers.map do |locker|\n PlaceLocker.new(locker, true)\nend\n"}},{"html_id":"lookup_id(locker_id:String):String-instance-method","name":"lookup_id","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"args_string":"(locker_id : String) : String","args_html":"(locker_id : String) : String","location":{"filename":"src/vecos/releezme_locations.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L70"},"def":{"name":"lookup_id","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if @door_number_lookup\n (status?(String, locker_id.downcase)) || locker_id\nelse\n locker_id\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L265"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@door_number_lookup = (setting?(Bool, :door_number_lookup)) || false\n@user_id_key = (setting?(String, :user_id_key)) || \"email\"\n@floor_mappings = (setting(Hash(String, Mapping), :vecos_floor_mappings)).transform_values(&.section_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\nif @door_number_lookup\n schedule.clear\n schedule.in((rand(10)).seconds) do\n @floor_mappings.each_key do |zone_id|\n device_locations(zone_id)\n end\n end\nend\n"}}],"types":[{"html_id":"drivers/Vecos/ReleezmeLocations/Mapping","path":"Vecos/ReleezmeLocations/Mapping.html","kind":"struct","full_name":"Vecos::ReleezmeLocations::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L56"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations/PlaceLocker","path":"Vecos/ReleezmeLocations/PlaceLocker.html","kind":"alias","full_name":"Vecos::ReleezmeLocations::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"}}]},{"html_id":"drivers/Vecos/Section","path":"Vecos/Section.html","kind":"struct","full_name":"Vecos::Section","name":"Section","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/section.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/section.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L14"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Vergesense","path":"Vergesense.html","kind":"module","full_name":"Vergesense","name":"Vergesense","abstract":false,"locations":[{"filename":"src/vergesense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Vergesense Data Models","summary":"

Vergesense Data Models

","types":[{"html_id":"drivers/Vergesense/Building","path":"Vergesense/Building.html","kind":"struct","full_name":"Vergesense::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L10"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"address=(address:String|Nil)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"args_string":"(address : String | Nil)","args_html":"(address : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L10"},"def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@address = address"}},{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L8"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Vergesense/BuildingWithFloors","path":"Vergesense/BuildingWithFloors.html","kind":"struct","full_name":"Vergesense::BuildingWithFloors","name":"BuildingWithFloors","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L17"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"floors=(floors:Array(Floor))-instance-method","name":"floors=","abstract":false,"args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"args_string":"(floors : Array(Floor))","args_html":"(floors : Array(Floor))","location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L17"},"def":{"name":"floors=","args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"visibility":"Public","body":"@floors = floors"}}]},{"html_id":"drivers/Vergesense/Environment","path":"Vergesense/Environment.html","kind":"struct","full_name":"Vergesense::Environment","name":"Environment","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"humidity:Sensor-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L43"},"def":{"name":"humidity","return_type":"Sensor","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:Sensor)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"args_string":"(humidity : Sensor)","args_html":"(humidity : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L43"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"iaq:Sensor|Nil-instance-method","name":"iaq","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L44"},"def":{"name":"iaq","return_type":"Sensor | ::Nil","visibility":"Public","body":"@iaq"}},{"html_id":"iaq=(iaq:Sensor|Nil)-instance-method","name":"iaq=","abstract":false,"args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"args_string":"(iaq : Sensor | Nil)","args_html":"(iaq : Sensor | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L44"},"def":{"name":"iaq=","args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"visibility":"Public","body":"@iaq = iaq"}},{"html_id":"sensor:String-instance-method","name":"sensor","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L40"},"def":{"name":"sensor","return_type":"String","visibility":"Public","body":"@sensor"}},{"html_id":"sensor=(sensor:String)-instance-method","name":"sensor=","abstract":false,"args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"args_string":"(sensor : String)","args_html":"(sensor : String)","location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L40"},"def":{"name":"sensor=","args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"visibility":"Public","body":"@sensor = sensor"}},{"html_id":"temperature:Sensor-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L45"},"def":{"name":"temperature","return_type":"Sensor","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Sensor)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"args_string":"(temperature : Sensor)","args_html":"(temperature : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L45"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L41"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L41"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/Floor","path":"Vergesense/Floor.html","kind":"struct","full_name":"Vergesense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L25"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L25"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"floor_ref_id:String-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id","return_type":"String","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"args_string":"(floor_ref_id : String)","args_html":"(floor_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L27"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L27"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/Vergesense/Geometry","path":"Vergesense/Geometry.html","kind":"struct","full_name":"Vergesense::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"coordinates:Array(Array(Array(Float64)))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L95"},"def":{"name":"coordinates","return_type":"Array(Array(Array(Float64)))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Array(Array(Float64))))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"args_string":"(coordinates : Array(Array(Array(Float64))))","args_html":"(coordinates : Array(Array(Array(Float64))))","location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L95"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L94"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L94"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Vergesense/LocationService","path":"Vergesense/LocationService.html","kind":"class","full_name":"Vergesense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L89"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L94"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfloor = @occupancy_mappings[zone_id]?\nif floor\nelse\n return [] of Nil\nend\ndesk_types = @desk_space_types\nfloor.spaces.compact_map do |space|\n loc_type = space.space_type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n people_count = space.people.try(&.count)\n if @return_empty_spaces || (people_count && people_count > 0)\n if env = space.environment\n humidity = env.humidity.value\n temperature = env.temperature.value\n iaq = env.iaq.try(&.value)\n end\n {location: loc_type, at_location: people_count || 0, map_id: space.name, level: zone_id, building: @building_mappings[zone_id]?, capacity: space.capacity, vergesense_space_id: space.ref_id, vergesense_space_type: space.space_type, area_humidity: humidity, area_temperature: temperature, area_air_quality: iaq, signs_of_life: space.signs_of_life}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L79"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vergesense/location_service.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L84"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/location_service.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@notify_updates = (setting?(Bool, :notify_updates)) || false\n@desk_space_types = (setting?(Array(String), :desk_space_types)) || [\"desk\"]\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.values.map do |z|\n level = z[:level_id]\n @building_mappings[level] = z[:building_id]\n level\nend\nbind_floor_status\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L137"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id\n else\n return nil\n end\n zone_id, _, space_id = mac.rpartition('-')\n if zone_id.empty? || space_id.empty?\n return nil\n end\n floor = @occupancy_mappings[zone_id]?\n if floor\n else\n return nil\n end\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return nil\n end\n case id\n when \"people\"\n build_sensor_details(zone_id, floor, floor_space, :people_count)\n when \"presence\"\n build_sensor_details(zone_id, floor, floor_space, :presence)\n when \"humidity\"\n build_sensor_details(zone_id, floor, floor_space, :humidity)\n when \"temp\"\n build_sensor_details(zone_id, floor, floor_space, :temperature)\n when \"air\"\n build_sensor_details(zone_id, floor, floor_space, :air_quality)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/vergesense/location_service.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L171"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n level_zone, _, space_id = mac.rpartition('-')\n if (zone_id && (zone_id != level_zone)) || space_id.empty?\n return NO_MATCH\n end\n zone_id = level_zone\nend\nif zone_id && !(@occupancy_mappings.has_key?(zone_id))\n return NO_MATCH\nend\nif space_id\n floor = @occupancy_mappings[zone_id]\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return NO_MATCH\n end\n spaces = [{zone_id, floor, floor_space}]\nelse\n if zone_id\n floor = @occupancy_mappings[zone_id]\n spaces = floor.spaces.map do |space|\n {zone_id, floor, space}\n end\n else\n spaces = @occupancy_mappings.flat_map do |__temp_1103|\n zone, floor = __temp_1103\n floor.spaces.map do |space|\n {zone, floor, space}\n end\n end\n end\nend\nif sensor_type\n spaces.compact_map do |__temp_1104|\n zone, floor, space = __temp_1104\n build_sensor_details(zone.not_nil!, floor, space, sensor_type)\n end\nelse\n spaces.flat_map do |__temp_1105|\n zone, floor, space = __temp_1105\n space_sensors(zone.not_nil!, floor, space)\n end.compact\nend\n"}}]},{"html_id":"drivers/Vergesense/MqttExport","path":"Vergesense/MqttExport.html","kind":"class","full_name":"Vergesense::MqttExport","name":"MqttExport","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/mqtt_export.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L42"},"def":{"name":"inspect_state","visibility":"Public","body":"{vergesense_subscriptions: @subscriptions, people_counts: @previous_counts}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@mqtt_root_topic = (setting(String, :mqtt_root_topic)) || \"/t/root-topic\"\n@floors_to_export = (setting(Array(String), :floors_to_export)) || ([] of String)\n@debug = (setting(Bool, :debug)) || false\nsubscriptions.clear\n@subscriptions = 0\n@floors_to_export.each do |floor|\n system.subscribe(:Vergesense_1, floor) do |_subscription, vergesense_floor_json|\n vergesense_to_mqtt(Floor.from_json(vergesense_floor_json))\n end\n @subscriptions = @subscriptions + 1\nend\n"}}]},{"html_id":"drivers/Vergesense/People","path":"Vergesense/People.html","kind":"struct","full_name":"Vergesense::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L98"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L99"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:UInt32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L101"},"def":{"name":"count","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"count=(count:UInt32|Nil)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"args_string":"(count : UInt32 | Nil)","args_html":"(count : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L101"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@count = count"}}]},{"html_id":"drivers/Vergesense/Report","path":"Vergesense/Report.html","kind":"struct","full_name":"Vergesense::Report","name":"Report","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person_count:Int32|Nil-instance-method","name":"person_count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L52"},"def":{"name":"person_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@person_count"}},{"html_id":"person_count=(person_count:Int32|Nil)-instance-method","name":"person_count=","abstract":false,"args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"args_string":"(person_count : Int32 | Nil)","args_html":"(person_count : Int32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L52"},"def":{"name":"person_count=","args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@person_count = person_count"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L51"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L51"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/RoomSensor","path":"Vergesense/RoomSensor.html","kind":"class","full_name":"Vergesense::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @floor_name).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#floor_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_name?:String|Nil-instance-method","name":"floor_name?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name?","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsystem.subscribe(:Vergesense, 1, \"init_complete\") do |_sub, value|\n if value == \"true\"\n subscribe_to_sensor\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/vergesense/room_sensor.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L96"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"verg-#{@space_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nwhen \"humidity\"\n build_sensor_details(:humidity)\nwhen \"temperature\"\n build_sensor_details(:temperature)\nwhen \"air_quality\"\n build_sensor_details(:air_quality)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/vergesense/room_sensor.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L77"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"verg-#{@space_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"space:Space-instance-method","name":"space","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:Space|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space?","return_type":"Space | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/Vergesense/Sensor","path":"Vergesense/Sensor.html","kind":"struct","full_name":"Vergesense::Sensor","name":"Sensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"units:String-instance-method","name":"units","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L33"},"def":{"name":"units","return_type":"String","visibility":"Public","body":"@units"}},{"html_id":"units=(units:String)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"String"}],"args_string":"(units : String)","args_html":"(units : String)","location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L33"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"String"}],"visibility":"Public","body":"@units = units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L34"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Float64)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64"}],"args_string":"(value : Float64)","args_html":"(value : Float64)","location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L34"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Float64"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Vergesense/Space","path":"Vergesense/Space.html","kind":"class","full_name":"Vergesense::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String|Nil-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String|Nil)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"args_string":"(building_ref_id : String | Nil)","args_html":"(building_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L64"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L64"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"environment:Environment|Nil-instance-method","name":"environment","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L69"},"def":{"name":"environment","return_type":"Environment | ::Nil","visibility":"Public","body":"@environment"}},{"html_id":"environment=(environment:Environment|Nil)-instance-method","name":"environment=","abstract":false,"args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"args_string":"(environment : Environment | Nil)","args_html":"(environment : Environment | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L69"},"def":{"name":"environment=","args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"visibility":"Public","body":"@environment = environment"}},{"html_id":"floor_key-instance-method","name":"floor_key","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L82"},"def":{"name":"floor_key","visibility":"Public","body":"\"#{building_ref_id}-#{floor_ref_id}\".strip"}},{"html_id":"floor_ref_id:String|Nil-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String|Nil)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"args_string":"(floor_ref_id : String | Nil)","args_html":"(floor_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"last_reports:Array(Report)|Nil-instance-method","name":"last_reports","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L68"},"def":{"name":"last_reports","return_type":"Array(Report) | ::Nil","visibility":"Public","body":"@last_reports"}},{"html_id":"last_reports=(last_reports:Array(Report)|Nil)-instance-method","name":"last_reports=","abstract":false,"args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"args_string":"(last_reports : Array(Report) | Nil)","args_html":"(last_reports : Array(Report) | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L68"},"def":{"name":"last_reports=","args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"visibility":"Public","body":"@last_reports = last_reports"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"motion_detected:Bool|Nil-instance-method","name":"motion_detected","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected","return_type":"Bool | ::Nil","visibility":"Public","body":"@motion_detected"}},{"html_id":"motion_detected=(motion_detected:Bool|Nil)-instance-method","name":"motion_detected=","abstract":false,"args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"args_string":"(motion_detected : Bool | Nil)","args_html":"(motion_detected : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected=","args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@motion_detected = motion_detected"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L63"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L63"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"people:People|Nil-instance-method","name":"people","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L67"},"def":{"name":"people","return_type":"People | ::Nil","visibility":"Public","body":"@people"}},{"html_id":"people=(people:People|Nil)-instance-method","name":"people=","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"args_string":"(people : People | Nil)","args_html":"(people : People | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L67"},"def":{"name":"people=","args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"visibility":"Public","body":"@people = people"}},{"html_id":"ref_id-instance-method","name":"ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L86"},"def":{"name":"ref_id","visibility":"Public","body":"(self.space_ref_id || self.floor_ref_id) || self.space_type"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"signs_of_life?:Bool|Nil-instance-method","name":"signs_of_life?","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L73"},"def":{"name":"signs_of_life?","return_type":"Bool | ::Nil","visibility":"Public","body":"if report = last_reports.try(&.first?)\n if report.timestamp >= 2.hours.ago\n report.signs_of_life\n end\nend"}},{"html_id":"space_ref_id:String|Nil-instance-method","name":"space_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_ref_id"}},{"html_id":"space_ref_id=(space_ref_id:String|Nil)-instance-method","name":"space_ref_id=","abstract":false,"args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"args_string":"(space_ref_id : String | Nil)","args_html":"(space_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id=","args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_ref_id = space_ref_id"}},{"html_id":"space_type:String|Nil-instance-method","name":"space_type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L62"},"def":{"name":"space_type","return_type":"String | ::Nil","visibility":"Public","body":"@space_type"}},{"html_id":"space_type=(space_type:String|Nil)-instance-method","name":"space_type=","abstract":false,"args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"args_string":"(space_type : String | Nil)","args_html":"(space_type : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L62"},"def":{"name":"space_type=","args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_type = space_type"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L70"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time|Nil)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"args_string":"(timestamp : Time | Nil)","args_html":"(timestamp : Time | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L70"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/VergesenseAPI","path":"Vergesense/VergesenseAPI.html","kind":"class","full_name":"Vergesense::VergesenseAPI","name":"VergesenseAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/vergesense_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_key(space_id:String)-instance-method","name":"floor_key","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L85"},"def":{"name":"floor_key","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@spaces[space_id]"}},{"html_id":"init_sync-instance-method","name":"init_sync","doc":"Performs initial sync by loading buildings / floors / spaces","summary":"

Performs initial sync by loading buildings / floors / spaces

","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L45"},"def":{"name":"init_sync","visibility":"Public","body":"begin\n @sync_lock.synchronize do\n init_buildings\n if @buildings\n init_floors\n init_spaces\n init_floors_status\n self[\"init_complete\"] = true\n end\n end\nrescue e\n logger.error do\n \"failed to perform vergesense API sync\\n#{e.inspect_with_backtrace}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.in(200.milliseconds) do\n init_sync\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :vergesense_api_key)\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@poll_every = (setting?(Int32, :poll_every)).try(&.seconds)\nschedule.clear\nif poll_time = @poll_every\n schedule.every(poll_time) do\n init_sync\n end\nend\n"}},{"html_id":"space_report_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"space_report_api","doc":"Webhook endpoint for space_report API, expects version 2","summary":"

Webhook endpoint for space_report API, expects version 2

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L65"},"def":{"name":"space_report_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"space_report API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nbegin\n remote_space = Space.from_json(body)\n logger.debug do\n \"parsed vergesense payload\"\n end\n update_floor_space(remote_space)\n update_single_floor_status(remote_space.floor_key, @floors[remote_space.floor_key]?)\nrescue e\n logger.error do\n \"failed to parse vergesense space_report API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]}]},{"html_id":"drivers/Whispir","path":"Whispir.html","kind":"module","full_name":"Whispir","name":"Whispir","abstract":false,"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Whispir/Messages","path":"Whispir/Messages.html","kind":"class","full_name":"Whispir::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/Whispir","kind":"module","full_name":"Whispir","name":"Whispir"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/whispir/messages.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/whispir/messages.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L29"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponse = post(\"/messages?apikey=#{@api_key}\", body: {to: phone_numbers.join(\";\"), subject: \"PlaceOS Notification\", body: message}.to_json, headers: {\"Content-Type\" => \"application/vnd.whispir.message-v1+json\", \"Accept\" => \"application/vnd.whispir.message-v1+json\", \"x-api-key\" => @api_key})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nlocation = response.headers[\"Location\"]?\nlogger.debug do\n \"message sent: #{location}\"\nend\nlocation\n"}}]}]},{"html_id":"drivers/Wiegand","path":"Wiegand.html","kind":"module","full_name":"Wiegand","name":"Wiegand","abstract":false,"locations":[{"filename":"src/wiegand/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Wiegand/Base","path":"Wiegand/Base.html","kind":"class","full_name":"Wiegand::Base","name":"Base","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Wiegand/Wiegand26","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26"},{"html_id":"drivers/Wiegand/Wiegand35","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"doc":"Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb","summary":"

Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb

","class_methods":[{"html_id":"count_1s(int:UInt32|UInt64)-class-method","name":"count_1s","abstract":false,"args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"args_string":"(int : UInt32 | UInt64)","args_html":"(int : UInt32 | UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L14"},"def":{"name":"count_1s","args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"visibility":"Public","body":"((int.to_s(2)).gsub(\"0\", \"\")).size"}}],"constructors":[{"html_id":"new(wiegand:UInt64,facility:UInt32,card_number:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","args_html":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L8"},"def":{"name":"new","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(wiegand, facility, card_number)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"card_number:UInt32-instance-method","name":"card_number","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L6"},"def":{"name":"card_number","return_type":"UInt32","visibility":"Public","body":"@card_number"}},{"html_id":"card_number=(card_number:UInt32)-instance-method","name":"card_number=","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(card_number : UInt32)","args_html":"(card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L6"},"def":{"name":"card_number=","args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"@card_number = card_number"}},{"html_id":"facility:UInt32-instance-method","name":"facility","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L5"},"def":{"name":"facility","return_type":"UInt32","visibility":"Public","body":"@facility"}},{"html_id":"facility=(facility:UInt32)-instance-method","name":"facility=","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"args_string":"(facility : UInt32)","args_html":"(facility : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L5"},"def":{"name":"facility=","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"visibility":"Public","body":"@facility = facility"}},{"html_id":"wiegand:UInt64-instance-method","name":"wiegand","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L4"},"def":{"name":"wiegand","return_type":"UInt64","visibility":"Public","body":"@wiegand"}},{"html_id":"wiegand=(wiegand:UInt64)-instance-method","name":"wiegand=","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L4"},"def":{"name":"wiegand=","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"@wiegand = wiegand"}}]},{"html_id":"drivers/Wiegand/Wiegand26","path":"Wiegand/Wiegand26.html","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"131070"},{"id":"CARD_PAR_MASK","name":"CARD_PAR_MASK","value":"131071"},{"id":"FAC_PAR_MASK","name":"FAC_PAR_MASK","value":"66977792"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"33423360"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-class-method","name":"from_components","doc":"Convert components to wiegand 26 card data","summary":"

Convert components to wiegand 26 card data

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L44"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = 0\nwiegand = wiegand + (card_number << 1)\nif (count_1s(card_number)).odd?\n wiegand = wiegand + (FAC_PAR_MASK ^ FACILITY_MASK)\nend\nwiegand = wiegand + (facility << 17)\nif (count_1s(facility)).even?\n wiegand = wiegand + 1\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_wiegand(wiegand:UInt64)-instance-method","name":"from_wiegand","doc":"Convert wiegand 26 card data to components\n\nHex card data: 0x21a6616\nCard Number: 13067\nCard Facility Code: 13","summary":"

Convert wiegand 26 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L30"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"card_number = (wiegand & CARD_MASK) >> 1\ncard_1s = count_1s(wiegand & CARD_PAR_MASK)\nfacility = (wiegand & FACILITY_MASK) >> 17\nfacility_1s = count_1s(wiegand & FAC_PAR_MASK)\nparity_passed = card_1s.odd? && facility_1s.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}]},{"html_id":"drivers/Wiegand/Wiegand35","path":"Wiegand/Wiegand35.html","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L59"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"4194300"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"17175674880_i64"},{"id":"PAR_EVEN_MASK","name":"PAR_EVEN_MASK","value":"14725602156_i64"},{"id":"PAR_ODD_MASK","name":"PAR_ODD_MASK","value":"7362801078_i64"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_wiegand(wiegand)-class-method","name":"from_wiegand","doc":"Convert wiegand 35 card data to components\n\n1 + 12 + 20 + 2\n1 + facility + card num + 2","summary":"

Convert wiegand 35 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"args_string":"(wiegand)","args_html":"(wiegand)","location":{"filename":"src/wiegand/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L89"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"visibility":"Public","body":"str = ((wiegand.to_s(2)).rjust(35, '0')).reverse\ndata = str.to_i(2)\neven_count = (count_1s(data & PAR_EVEN_MASK)) + (str[0] == '1' ? 1 : 0)\nodd_count = count_1s(data & PAR_ODD_MASK)\nparity_passed = odd_count.odd? && even_count.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nfacility = (data & FACILITY_MASK) >> 22\ncard_number = (data & CARD_MASK) >> 2\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-instance-method","name":"from_components","doc":"Outputs the HEX code of what is written to the swipe card\n\nHex card data: 0x06F20107F\nCard Number: 2540\nCard Facility Code: 4033","summary":"

Outputs the HEX code of what is written to the swipe card

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L70"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = (facility << 22) + (card_number << 2)\neven_count = count_1s(wiegand & PAR_EVEN_MASK)\nodd_count = count_1s(wiegand & PAR_ODD_MASK)\nif even_count.odd?\n wiegand = wiegand + (1 << 34)\nend\nif odd_count.even?\n wiegand = wiegand + 2\nend\nwiegand = ((wiegand.to_s(2)).rjust(35, '0')).reverse.to_i(2)\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}]}]},{"html_id":"drivers/WilliamsAV","path":"WilliamsAV.html","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV","abstract":false,"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM","path":"WilliamsAV/WaveCastFM.html","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TYPES","name":"TYPES","value":"{Command::TDU8_REBOOT => Type::TT_U8, Command::TDU8_RESTORE_DEFAULTS => Type::TT_U8, Command::TDU8_VU_METER_VALUE => Type::TT_U8, Command::TDU8_INPUT_GAIN => Type::TT_U8, Command::TDU8_INPUT_SOURCE => Type::TT_U8, Command::TDU8_PRESET => Type::TT_U8, Command::TDU8_HIGH_PASS => Type::TT_U8, Command::TDU8_LOW_PASS => Type::TT_U8, Command::TDU8_COMPRESSION => Type::TT_U8, Command::TDU8_USE_DHCP => Type::TT_U8, Command::TDU8_AUDIO_TX_MODE => Type::TT_U8, Command::TDU8_TTL => Type::TT_U8, Command::TDU8_SECURE_MODE => Type::TT_U8, Command::TDU8_PANEL_LOCK => Type::TT_U8, Command::TDU32_RF_TIMEOUT => Type::TT_U32, Command::TDU8_RF_CHANNEL => Type::TT_U8, Command::TDU8_RF_17_CHANNEL_MODE => Type::TT_U8, Command::TDU8_RF_POWER => Type::TT_U8, Command::TDSTR_SERVER_NAME => Type::TT_STRING, Command::TDSTR_STATIC_IP_ADDR => Type::TT_STRING, Command::TDSTR_STATIC_SUBNET_MASK => Type::TT_STRING, Command::TDSTR_STATIC_GATEWAY_ADDR => Type::TT_STRING, Command::TDSTR_MULTICAST_ADDR => Type::TT_STRING, Command::TDSTR_JOIN_CODE => Type::TT_STRING}"}],"namespace":{"html_id":"drivers/WilliamsAV","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel_number:Int32|Nil-instance-method","name":"channel_number","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L34"},"def":{"name":"channel_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@channel_number"}},{"html_id":"channel_offset-instance-method","name":"channel_offset","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L26"},"def":{"name":"channel_offset","visibility":"Public","body":"(3000 * (@channel_number || 0)) + (rand(750))"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L30"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(channel_offset.milliseconds) do\n query_state\nend"}},{"html_id":"enable_join_code(state:Bool)-instance-method","name":"enable_join_code","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L186"},"def":{"name":"enable_join_code","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_SECURE_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"input_gain(value:UInt8)-instance-method","name":"input_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L223"},"def":{"name":"input_gain","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 50_u8)\nwrite(Command::TDU8_INPUT_GAIN, value)\n"}},{"html_id":"input_source(value:InputSource)-instance-method","name":"input_source","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"args_string":"(value : InputSource)","args_html":"(value : InputSource)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L238"},"def":{"name":"input_source","args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"visibility":"Public","body":"write(Command::TDU8_INPUT_SOURCE, value.to_u8)"}},{"html_id":"lock_front_panel(state:Bool)-instance-method","name":"lock_front_panel","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L266"},"def":{"name":"lock_front_panel","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_PANEL_LOCK, state ? 1_u8 : 0_u8)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@channel_number = setting?(Int32, :channel_number)\nschedule.clear\nschedule.cron(\"* * * * *\") do\n connected\nend\n"}},{"html_id":"preset(value:Preset)-instance-method","name":"preset","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Preset"}],"args_string":"(value : Preset)","args_html":"(value : Preset)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L250"},"def":{"name":"preset","args":[{"name":"value","external_name":"value","restriction":"Preset"}],"visibility":"Public","body":"write(Command::TDU8_PRESET, value.to_u8)"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L99"},"def":{"name":"query_state","visibility":"Public","body":"if channel = channel_number\n body_data = URI::Params.build do |form|\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end.to_s\n logger.debug do\n \"switching current channel to: #{channel}\"\n end\n response = post(\"/TBL-WRITE\", body: body_data)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\nend\nresponse = get(\"/TBL-READ?All\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\ncount = 0\n(response.body.split('\\n')).each do |line|\n if line.presence\n else\n next\n end\n parts = (line.split(\",\")).map!(&.strip)\n begin\n type = Type.parse(parts[0])\n command = (Command.parse?(parts[1])) || parts[1]\n value_raw = parts[2]\n value = case type\n in Type::TT_FLOAT\n value_raw.to_f\n in Type::TT_U8, Type::TT_U32, Type::TT_S8, Type::TT_S32\n value_raw.to_i\n in Type::TT_STRING\n value_raw\n end\n set_status(command, value)\n count = count + 1\n rescue error\n raise(\"error parsing response line\\n#{error.inspect_with_backtrace}\")\n end\nend\n\"#{count} values updated\"\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L207"},"def":{"name":"reboot","visibility":"Public","body":"write(Command::TDU8_REBOOT, 1_u8)"}},{"html_id":"restore_defaults-instance-method","name":"restore_defaults","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L212"},"def":{"name":"restore_defaults","visibility":"Public","body":"write(Command::TDU8_RESTORE_DEFAULTS, 1_u8)"}},{"html_id":"set_join_code(pin:String)-instance-method","name":"set_join_code","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L191"},"def":{"name":"set_join_code","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_JOIN_CODE, pin)"}},{"html_id":"set_multicast_address(ip_address:String)-instance-method","name":"set_multicast_address","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L271"},"def":{"name":"set_multicast_address","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_MULTICAST_ADDR, ip_address)"}},{"html_id":"set_random_join_code(size:Int32=4)-instance-method","name":"set_random_join_code","doc":"creates a numeric pin size digits long","summary":"

creates a numeric pin size digits long

","abstract":false,"args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"args_string":"(size : Int32 = 4)","args_html":"(size : Int32 = 4)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L197"},"def":{"name":"set_random_join_code","args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"visibility":"Public","body":"pin = String.build do |str|\n size.times do\n (rand(9)).to_s(str)\n end\nend\nset_join_code(pin)\n"}},{"html_id":"set_ttl(value:UInt8)-instance-method","name":"set_ttl","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L260"},"def":{"name":"set_ttl","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 30_u8)\nwrite(Command::TDU8_TTL, value)\n"}},{"html_id":"set_vu_meter(value:UInt8,overload:Bool=false)-instance-method","name":"set_vu_meter","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"args_string":"(value : UInt8, overload : Bool = false)","args_html":"(value : UInt8, overload : Bool = false)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L217"},"def":{"name":"set_vu_meter","args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"visibility":"Public","body":"if overload\nelse\n value = value.clamp(0_u8, 9_u8)\nend\nwrite(Command::TDU8_VU_METER_VALUE, value)\n"}},{"html_id":"transmit_multicast(state:Bool)-instance-method","name":"transmit_multicast","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L255"},"def":{"name":"transmit_multicast","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_AUDIO_TX_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"write(command:Command,value:UInt8|UInt32|String)-instance-method","name":"write","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"args_string":"(command : Command, value : UInt8 | UInt32 | String)","args_html":"(command : Command, value : UInt8 | UInt32 | String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L165"},"def":{"name":"write","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"visibility":"Public","body":"body_data = URI::Params.build do |form|\n if channel = channel_number\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end\n form.add(\"type\", TYPES[command].to_s)\n form.add(\"id\", command.to_s)\n form.add(\"value\", value.to_s)\nend.to_s\nlogger.debug do\n \"updating setting: #{body_data}\"\nend\nresponse = post(\"/TBL-WRITE\", body: body_data)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nset_status(command, value)\n"}}],"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM/Command","path":"WilliamsAV/WaveCastFM/Command.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TDU8_REBOOT","name":"TDU8_REBOOT","value":"0"},{"id":"TDU8_RESTORE_DEFAULTS","name":"TDU8_RESTORE_DEFAULTS","value":"1"},{"id":"TDU8_VU_METER_VALUE","name":"TDU8_VU_METER_VALUE","value":"2"},{"id":"TDU8_INPUT_GAIN","name":"TDU8_INPUT_GAIN","value":"3"},{"id":"TDU8_INPUT_SOURCE","name":"TDU8_INPUT_SOURCE","value":"4"},{"id":"TDU8_PRESET","name":"TDU8_PRESET","value":"5"},{"id":"TDU8_HIGH_PASS","name":"TDU8_HIGH_PASS","value":"6"},{"id":"TDU8_LOW_PASS","name":"TDU8_LOW_PASS","value":"7"},{"id":"TDU8_COMPRESSION","name":"TDU8_COMPRESSION","value":"8"},{"id":"TDU8_USE_DHCP","name":"TDU8_USE_DHCP","value":"9"},{"id":"TDU8_AUDIO_TX_MODE","name":"TDU8_AUDIO_TX_MODE","value":"10"},{"id":"TDU8_TTL","name":"TDU8_TTL","value":"11"},{"id":"TDU8_SECURE_MODE","name":"TDU8_SECURE_MODE","value":"12"},{"id":"TDU8_PANEL_LOCK","name":"TDU8_PANEL_LOCK","value":"13"},{"id":"TDU32_RF_TIMEOUT","name":"TDU32_RF_TIMEOUT","value":"14"},{"id":"TDU8_RF_CHANNEL","name":"TDU8_RF_CHANNEL","value":"15"},{"id":"TDU8_RF_17_CHANNEL_MODE","name":"TDU8_RF_17_CHANNEL_MODE","value":"16"},{"id":"TDU8_RF_POWER","name":"TDU8_RF_POWER","value":"17"},{"id":"TDSTR_SERVER_NAME","name":"TDSTR_SERVER_NAME","value":"18"},{"id":"TDSTR_STATIC_IP_ADDR","name":"TDSTR_STATIC_IP_ADDR","value":"19"},{"id":"TDSTR_STATIC_SUBNET_MASK","name":"TDSTR_STATIC_SUBNET_MASK","value":"20"},{"id":"TDSTR_STATIC_GATEWAY_ADDR","name":"TDSTR_STATIC_GATEWAY_ADDR","value":"21"},{"id":"TDSTR_MULTICAST_ADDR","name":"TDSTR_MULTICAST_ADDR","value":"22"},{"id":"TDSTR_JOIN_CODE","name":"TDSTR_JOIN_CODE","value":"23"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tdstr_join_code?-instance-method","name":"tdstr_join_code?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L60"},"def":{"name":"tdstr_join_code?","visibility":"Public","body":"self == TDSTR_JOIN_CODE"}},{"html_id":"tdstr_multicast_addr?-instance-method","name":"tdstr_multicast_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L59"},"def":{"name":"tdstr_multicast_addr?","visibility":"Public","body":"self == TDSTR_MULTICAST_ADDR"}},{"html_id":"tdstr_server_name?-instance-method","name":"tdstr_server_name?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L55"},"def":{"name":"tdstr_server_name?","visibility":"Public","body":"self == TDSTR_SERVER_NAME"}},{"html_id":"tdstr_static_gateway_addr?-instance-method","name":"tdstr_static_gateway_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L58"},"def":{"name":"tdstr_static_gateway_addr?","visibility":"Public","body":"self == TDSTR_STATIC_GATEWAY_ADDR"}},{"html_id":"tdstr_static_ip_addr?-instance-method","name":"tdstr_static_ip_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L56"},"def":{"name":"tdstr_static_ip_addr?","visibility":"Public","body":"self == TDSTR_STATIC_IP_ADDR"}},{"html_id":"tdstr_static_subnet_mask?-instance-method","name":"tdstr_static_subnet_mask?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L57"},"def":{"name":"tdstr_static_subnet_mask?","visibility":"Public","body":"self == TDSTR_STATIC_SUBNET_MASK"}},{"html_id":"tdu32_rf_timeout?-instance-method","name":"tdu32_rf_timeout?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L51"},"def":{"name":"tdu32_rf_timeout?","visibility":"Public","body":"self == TDU32_RF_TIMEOUT"}},{"html_id":"tdu8_audio_tx_mode?-instance-method","name":"tdu8_audio_tx_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L47"},"def":{"name":"tdu8_audio_tx_mode?","visibility":"Public","body":"self == TDU8_AUDIO_TX_MODE"}},{"html_id":"tdu8_compression?-instance-method","name":"tdu8_compression?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L45"},"def":{"name":"tdu8_compression?","visibility":"Public","body":"self == TDU8_COMPRESSION"}},{"html_id":"tdu8_high_pass?-instance-method","name":"tdu8_high_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L43"},"def":{"name":"tdu8_high_pass?","visibility":"Public","body":"self == TDU8_HIGH_PASS"}},{"html_id":"tdu8_input_gain?-instance-method","name":"tdu8_input_gain?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L40"},"def":{"name":"tdu8_input_gain?","visibility":"Public","body":"self == TDU8_INPUT_GAIN"}},{"html_id":"tdu8_input_source?-instance-method","name":"tdu8_input_source?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L41"},"def":{"name":"tdu8_input_source?","visibility":"Public","body":"self == TDU8_INPUT_SOURCE"}},{"html_id":"tdu8_low_pass?-instance-method","name":"tdu8_low_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L44"},"def":{"name":"tdu8_low_pass?","visibility":"Public","body":"self == TDU8_LOW_PASS"}},{"html_id":"tdu8_panel_lock?-instance-method","name":"tdu8_panel_lock?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L50"},"def":{"name":"tdu8_panel_lock?","visibility":"Public","body":"self == TDU8_PANEL_LOCK"}},{"html_id":"tdu8_preset?-instance-method","name":"tdu8_preset?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L42"},"def":{"name":"tdu8_preset?","visibility":"Public","body":"self == TDU8_PRESET"}},{"html_id":"tdu8_reboot?-instance-method","name":"tdu8_reboot?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L37"},"def":{"name":"tdu8_reboot?","visibility":"Public","body":"self == TDU8_REBOOT"}},{"html_id":"tdu8_restore_defaults?-instance-method","name":"tdu8_restore_defaults?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L38"},"def":{"name":"tdu8_restore_defaults?","visibility":"Public","body":"self == TDU8_RESTORE_DEFAULTS"}},{"html_id":"tdu8_rf_17_channel_mode?-instance-method","name":"tdu8_rf_17_channel_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L53"},"def":{"name":"tdu8_rf_17_channel_mode?","visibility":"Public","body":"self == TDU8_RF_17_CHANNEL_MODE"}},{"html_id":"tdu8_rf_channel?-instance-method","name":"tdu8_rf_channel?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L52"},"def":{"name":"tdu8_rf_channel?","visibility":"Public","body":"self == TDU8_RF_CHANNEL"}},{"html_id":"tdu8_rf_power?-instance-method","name":"tdu8_rf_power?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L54"},"def":{"name":"tdu8_rf_power?","visibility":"Public","body":"self == TDU8_RF_POWER"}},{"html_id":"tdu8_secure_mode?-instance-method","name":"tdu8_secure_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L49"},"def":{"name":"tdu8_secure_mode?","visibility":"Public","body":"self == TDU8_SECURE_MODE"}},{"html_id":"tdu8_ttl?-instance-method","name":"tdu8_ttl?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L48"},"def":{"name":"tdu8_ttl?","visibility":"Public","body":"self == TDU8_TTL"}},{"html_id":"tdu8_use_dhcp?-instance-method","name":"tdu8_use_dhcp?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L46"},"def":{"name":"tdu8_use_dhcp?","visibility":"Public","body":"self == TDU8_USE_DHCP"}},{"html_id":"tdu8_vu_meter_value?-instance-method","name":"tdu8_vu_meter_value?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L39"},"def":{"name":"tdu8_vu_meter_value?","visibility":"Public","body":"self == TDU8_VU_METER_VALUE"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/InputSource","path":"WilliamsAV/WaveCastFM/InputSource.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::InputSource","name":"InputSource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"AnalogLineIn","name":"AnalogLineIn","value":"1"},{"id":"Mic","name":"Mic","value":"2"},{"id":"PhantomMic","name":"PhantomMic","value":"3"},{"id":"AES","name":"AES","value":"4"},{"id":"S_PDIF","name":"S_PDIF","value":"5"},{"id":"TestTone","name":"TestTone","value":"6"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"aes?-instance-method","name":"aes?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L232"},"def":{"name":"aes?","visibility":"Public","body":"self == AES"}},{"html_id":"analog_line_in?-instance-method","name":"analog_line_in?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L229"},"def":{"name":"analog_line_in?","visibility":"Public","body":"self == AnalogLineIn"}},{"html_id":"mic?-instance-method","name":"mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L230"},"def":{"name":"mic?","visibility":"Public","body":"self == Mic"}},{"html_id":"phantom_mic?-instance-method","name":"phantom_mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L231"},"def":{"name":"phantom_mic?","visibility":"Public","body":"self == PhantomMic"}},{"html_id":"s_pdif?-instance-method","name":"s_pdif?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L233"},"def":{"name":"s_pdif?","visibility":"Public","body":"self == S_PDIF"}},{"html_id":"test_tone?-instance-method","name":"test_tone?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L234"},"def":{"name":"test_tone?","visibility":"Public","body":"self == TestTone"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Preset","path":"WilliamsAV/WaveCastFM/Preset.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Preset","name":"Preset","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L242"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Voice","name":"Voice","value":"1"},{"id":"Music","name":"Music","value":"2"},{"id":"HearingAssist","name":"HearingAssist","value":"3"},{"id":"Custom","name":"Custom","value":"4"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"custom?-instance-method","name":"custom?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L246"},"def":{"name":"custom?","visibility":"Public","body":"self == Custom"}},{"html_id":"hearing_assist?-instance-method","name":"hearing_assist?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L245"},"def":{"name":"hearing_assist?","visibility":"Public","body":"self == HearingAssist"}},{"html_id":"music?-instance-method","name":"music?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L244"},"def":{"name":"music?","visibility":"Public","body":"self == Music"}},{"html_id":"voice?-instance-method","name":"voice?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L243"},"def":{"name":"voice?","visibility":"Public","body":"self == Voice"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Type","path":"WilliamsAV/WaveCastFM/Type.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L63"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TT_FLOAT","name":"TT_FLOAT","value":"0"},{"id":"TT_U8","name":"TT_U8","value":"1"},{"id":"TT_U32","name":"TT_U32","value":"2"},{"id":"TT_S8","name":"TT_S8","value":"3"},{"id":"TT_S32","name":"TT_S32","value":"4"},{"id":"TT_STRING","name":"TT_STRING","value":"5"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tt_float?-instance-method","name":"tt_float?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L64"},"def":{"name":"tt_float?","visibility":"Public","body":"self == TT_FLOAT"}},{"html_id":"tt_s32?-instance-method","name":"tt_s32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L68"},"def":{"name":"tt_s32?","visibility":"Public","body":"self == TT_S32"}},{"html_id":"tt_s8?-instance-method","name":"tt_s8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L67"},"def":{"name":"tt_s8?","visibility":"Public","body":"self == TT_S8"}},{"html_id":"tt_string?-instance-method","name":"tt_string?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L69"},"def":{"name":"tt_string?","visibility":"Public","body":"self == TT_STRING"}},{"html_id":"tt_u32?-instance-method","name":"tt_u32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L66"},"def":{"name":"tt_u32?","visibility":"Public","body":"self == TT_U32"}},{"html_id":"tt_u8?-instance-method","name":"tt_u8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L65"},"def":{"name":"tt_u8?","visibility":"Public","body":"self == TT_U8"}}]}]}]},{"html_id":"drivers/Winmate","path":"Winmate.html","kind":"module","full_name":"Winmate","name":"Winmate","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Winmate/LedLightBar","path":"Winmate/LedLightBar.html","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COLOUR_LOOKUP","name":"COLOUR_LOOKUP","value":"{16 => Led::Red, 17 => Led::Green, 18 => Led::Blue}"},{"id":"COLOURS","name":"COLOURS","value":"{Led::Red => 16_u8, Led::Green => 17_u8, Led::Blue => 18_u8}"},{"id":"COMMANDS","name":"COMMANDS","value":"{set: 97_u8, get: 96_u8}"},{"id":"DEFAULT_COLOURS","name":"DEFAULT_COLOURS","value":"{\"red\" => {red: 255_u8, green: 0_u8, blue: 0_u8}, \"green\" => {red: 0_u8, green: 255_u8, blue: 0_u8}, \"blue\" => {red: 0_u8, green: 0_u8, blue: 255_u8}, \"orange\" => {red: 200_u8, green: 0_u8, blue: 0_u8}, \"off\" => {red: 0_u8, green: 0_u8, blue: 0_u8}}"}],"namespace":{"html_id":"drivers/Winmate","kind":"module","full_name":"Winmate","name":"Winmate"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"colour(colour:String)-instance-method","name":"colour","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"String"}],"args_string":"(colour : String)","args_html":"(colour : String)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L72"},"def":{"name":"colour","args":[{"name":"colour","external_name":"colour","restriction":"String"}],"visibility":"Public","body":"colours = @colours[colour]\nself[:colour_name] = colour\ncolours.each do |component, intensity|\n led = Led.parse(component.to_s)\n set(led, intensity)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L53"},"def":{"name":"connected","visibility":"Public","body":"@buffer = String.new\ntransport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n bytes[0].to_i\nend\ndo_poll\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Polling Winmate LED\"\n end\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L68"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L121"},"def":{"name":"do_poll","visibility":"Public","body":"query(:red, priority: 0)\nquery(:green, priority: 0)\nquery(:blue, priority: 0)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"colours = (setting?(Colours, :colours)) || Colours.new\n@colours = colours.merge(DEFAULT_COLOURS)\n"}},{"html_id":"query(led:Led,**options)-instance-method","name":"query","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"}],"args_string":"(led : Led, **options)","args_html":"(led : Led, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L104"},"def":{"name":"query","args":[{"name":"led","external_name":"led","restriction":"Led"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(**options.merge({command: :get, colour: led}))"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L127"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received: #{bytes.hexstring}\"\nend\nif check_checksum(bytes)\nelse\n logger.warn do\n \"Error processing response. Possibly incorrect baud rate configured\"\n end\n return task.try(&.abort)\nend\nindicator = bytes[1]\ncolour = COLOUR_LOOKUP[indicator]?\nif colour\n self[colour.to_s.downcase] = bytes[2]\n task.try(&.success(bytes[2]))\nelse\n if indicator == 12\n else\n return task.try(&.abort)\n end\n task.try(&.success)\nend\n"}},{"html_id":"set(led:Led,value:UInt8,**options)-instance-method","name":"set","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(led : Led, value : UInt8, **options)","args_html":"(led : Led, value : UInt8, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L111"},"def":{"name":"set","args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[led.to_s.downcase] = value\ndo_send(**options.merge({command: :set, colour: led, value: value}))\n"}}],"types":[{"html_id":"drivers/Winmate/LedLightBar/Colours","path":"Winmate/LedLightBar/Colours.html","kind":"alias","full_name":"Winmate::LedLightBar::Colours","name":"Colours","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, NamedTuple(red: UInt8, green: UInt8, blue: UInt8))","aliased_html":"Hash(String, {red: UInt8, green: UInt8, blue: UInt8})","const":false,"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"}},{"html_id":"drivers/Winmate/LedLightBar/Led","path":"Winmate/LedLightBar/Led.html","kind":"enum","full_name":"Winmate::LedLightBar::Led","name":"Led","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L84"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L83"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L82"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]}]}]},{"html_id":"drivers/Xovis","path":"Xovis.html","kind":"module","full_name":"Xovis","name":"Xovis","abstract":false,"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Xovis/SensorAPI","path":"Xovis/SensorAPI.html","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"line-counts\" => SensorType::QueueSize, \"zone-occupancy-counts\" => SensorType::PeopleCount, \"zone-in-out-counts\" => SensorType::Counter}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Xovis","kind":"module","full_name":"Xovis","name":"Xovis"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capacity_data-instance-method","name":"capacity_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L146"},"def":{"name":"capacity_data","visibility":"Public","body":"response = get(\"/api/info/persistence\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlast_checked = Time.utc.to_unix\n{\"line\", \"zone-occupancy\", \"zone-in-out\"}.each do |count_name|\n xml_key_name = \"//count-#{count_name}-storage\"\n if count_data = (document.xpath_nodes(xml_key_name)).first?\n count_type = (count_name.split(\"-\", 2))[0]\n capacity = xpath_text(document, \"#{xml_key_name}/capacity\", &.to_i)\n key = \"#{count_name}-counts\"\n @state[key] = self[key] = (document.xpath_nodes(\"#{xml_key_name}/count-#{count_type}s/count-#{count_type}\")).map_with_index do |zone, index|\n attrs = {} of String => String | Int32 | Int64 | Nil\n zone.children.each do |child|\n content = child.text.strip\n attrs[child.name] = case child.name\n when \"entry-count\"\n content.to_i\n when \"first-entry\", \"last-entry\"\n content.empty? ? nil : (Time.parse!(content, \"%Y-%m-%dT%H:%M:%S%z\")).to_unix\n when \"text\"\n next\n else\n content\n end\n end\n last_entry = attrs[\"last-entry\"].as(Int64 | ::Nil)\n sensor = case count_name\n when \"line\"\n SensorDetail.new(SensorType::QueueSize, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"line-#{index}\", attrs[\"name\"].as(String))\n when \"zone-occupancy\"\n SensorDetail.new(SensorType::PeopleCount, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-occupancy-#{index}\", \"Occupancy #{attrs[\"name\"].as(String)}\")\n when \"zone-in-out\"\n SensorDetail.new(SensorType::Counter, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-in-out-#{index}\", \"In Out #{attrs[\"name\"].as(String)}\")\n else\n next\n end\n sensor.capacity = capacity\n sensor.last_entry = last_entry\n sensor.first_entry = attrs[\"first-entry\"].as(Int64 | ::Nil)\n sensor\n end.compact\n end\nend\ntrue\n"}},{"html_id":"count_data-instance-method","name":"count_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L126"},"def":{"name":"count_data","visibility":"Public","body":"response = get(\"/api/count-data\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlines = {} of String => NamedTuple(name: String, id: String, type: String, sensor: String, data: Hash(String, String | Int32 | Float32))\nlines_xml = document.xpath_nodes(\"//lines/line\")\nself[:lines] = lines_xml.map do |line|\n attrs = {} of String => String | Hash(String, Int32)\n counts = {} of String => Int32\n line.attributes.each do |attr|\n attrs[attr.name] = attr.content\n end\n line.children.each do |child|\n if child.name == \"text\"\n next\n end\n counts[child.name] = child.text.to_i\n end\n attrs[\"counts\"] = counts\n attrs\nend\n"}},{"html_id":"device_status-instance-method","name":"device_status","doc":"Combined `/info` and `/info/status`","summary":"

Combined /info and /info/status

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L198"},"def":{"name":"device_status","visibility":"Public","body":"response = get(\"/api/info/sensor-status\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nparse_type_info(document, \"version\")\nparse_type_info(document, \"temperature\")\nif sensor = parse_text_info(document, \"sensor\")\n @mac = sensor[\"serial-number\"]? || @mac\nend\nparse_text_info(document, \"illumination\")\nparse_text_info(document, \"configuration\")\nparse_text_info(document, \"operation\")\ntrue\n"}},{"html_id":"get_logs-instance-method","name":"get_logs","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L105"},"def":{"name":"get_logs","visibility":"Public","body":"response = get(\"/api/info/log\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining logs: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_token-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L98"},"def":{"name":"get_token","visibility":"Public","body":"response = get(\"/api/auth/token\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"is_alive?-instance-method","name":"is_alive?","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L118"},"def":{"name":"is_alive?","visibility":"Public","body":"begin\n response = get(\"/api/info/alive\", headers: {\"Accept\" => \"text/xml\"})\n check_success(response)\n true\nrescue\n false\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 15).seconds\n@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nquery_capacity = setting?(Bool, :query_capacity)\nquery_counts = setting?(Bool, :query_counts)\nschedule.clear\nschedule.every(@poll_rate) do\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\nschedule.every(5.minutes) do\n device_status\nend\nschedule.in(@poll_rate / 3) do\n device_status\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\n"}},{"html_id":"reset_count-instance-method","name":"reset_count","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L112"},"def":{"name":"reset_count","visibility":"Public","body":"response = get(\"/api/count-data/reset\", headers: {\"Accept\" => \"text/xml\"})\ncheck_success(response)\ntrue\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/xovis/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L54"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n return nil\n end\n index = index_str.to_i\n if sensors = @state[\"#{sensor}-counts\"]?\n sensors[index]?\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/xovis/sensor_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L81"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return @state.values.flatten.map do |__arg0|\n __arg0.as(Interface::Sensor::Detail)\n end\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << @state[key].map do |__arg1|\n __arg1.as(Interface::Sensor::Detail)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}}],"types":[{"html_id":"drivers/Xovis/SensorAPI/SensorDetail","path":"Xovis/SensorAPI/SensorDetail.html","kind":"class","full_name":"Xovis::SensorAPI::SensorDetail","name":"SensorDetail","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Xovis/SensorAPI","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"args_string":"(capacity : Int32 | Nil)","args_html":"(capacity : Int32 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"first_entry:Int64|Nil-instance-method","name":"first_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@first_entry"}},{"html_id":"first_entry=(first_entry:Int64|Nil)-instance-method","name":"first_entry=","abstract":false,"args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"args_string":"(first_entry : Int64 | Nil)","args_html":"(first_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry=","args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@first_entry = first_entry"}},{"html_id":"last_entry:Int64|Nil-instance-method","name":"last_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_entry"}},{"html_id":"last_entry=(last_entry:Int64|Nil)-instance-method","name":"last_entry=","abstract":false,"args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"args_string":"(last_entry : Int64 | Nil)","args_html":"(last_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry=","args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_entry = last_entry"}}]}]}]},{"html_id":"drivers/XYSense","path":"XYSense.html","kind":"module","full_name":"XYSense","name":"XYSense","abstract":false,"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/XYSense/LocationService","path":"XYSense/LocationService.html","kind":"class","full_name":"XYSense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/XYSense","kind":"module","full_name":"XYSense","name":"XYSense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/xy_sense/location_service.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L187"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L192"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\n@occupancy_mappings[zone_id].compact_map do |space_name, space|\n capacity = space.details.capacity\n if capacity == 1\n if space.headcount > 0\n else\n next\n end\n if location.presence && (location != \"desk\")\n next\n end\n {location: :desk, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n else\n if location.presence && (location != \"area\")\n next\n end\n {location: :area, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n end\nend\n"}},{"html_id":"floor_subscriptions-instance-method","name":"floor_subscriptions","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L134"},"def":{"name":"floor_subscriptions","visibility":"Public","body":"@floor_subscriptions.keys"}},{"html_id":"level_state_change(zone_id:String,spaces:Array(Occupancy))-instance-method","name":"level_state_change","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"args_string":"(zone_id : String, spaces : Array(Occupancy))","args_html":"(zone_id : String, spaces : Array(Occupancy))","location":{"filename":"src/xy_sense/location_service.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L157"},"def":{"name":"level_state_change","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"visibility":"Public","body":"begin\n area_occupancy = {} of String => Occupancy\n spaces.each do |space|\n space.details = @space_details[space.space_id]\n space_name = space.details.name\n if space_name\n else\n logger.warn do\n \"missing space name for id #{space.details.id}\"\n end\n next\n end\n area_occupancy[space_name] = space\n end\n @occupancy_mappings[zone_id] = area_occupancy\n area_manager.update_available({zone_id})\nrescue error\n logger.error(exception: error) do\n \"error updating level #{zone_id} space changes\"\n end\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L177"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L182"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@floor_mappings = setting(Hash(String, NamedTuple(zone_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.map do |_, detail|\n detail[:zone_id]\nend\nschedule.clear\nschedule.every(30.minutes) do\n sync_floor_states\nend\n"}},{"html_id":"sync_floor_states-instance-method","name":"sync_floor_states","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L138"},"def":{"name":"sync_floor_states","visibility":"Public","body":"logger.debug do\n \"-- updating space details...\"\nend\ndetails = update_space_details\nlogger.debug do\n \"-- details:\\n#{details}\"\nend\nlogger.debug do\n \"-- grabbing floor details...\"\nend\nxy = xy_sense\n@change_lock.synchronize do\n floor_subscriptions.each do |zone_id|\n level_state_change(zone_id, xy.status(Array(Occupancy), zone_id))\n end\nend\nlogger.debug do\n \"-- floor states synced!\"\nend\n@occupancy_mappings\n"}},{"html_id":"update_space_details-instance-method","name":"update_space_details","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L79"},"def":{"name":"update_space_details","visibility":"Public","body":"@change_lock.synchronize do\n floors = xy_sense.status(Hash(String, FloorDetails), :floors)\n space_details = {} of String => SpaceDetails\n floors.each do |floor_id, floor|\n mapping = @floor_mappings[floor_id]?\n if mapping\n else\n next\n end\n floor.spaces.each do |space|\n space_details[space.id] = space\n end\n end\n @space_details = space_details\nend"}}],"types":[{"html_id":"drivers/XYSense/LocationService/FloorDetails","path":"XYSense/LocationService/FloorDetails.html","kind":"class","full_name":"XYSense::LocationService::FloorDetails","name":"FloorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"doc":"===================================\nBindings into xy-sense data\n===================================","summary":"

=================================== Bindings into xy-sense data ===================================

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"floor_name=(floor_name:String)-instance-method","name":"floor_name=","abstract":false,"args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"args_string":"(floor_name : String)","args_html":"(floor_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name=","args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"visibility":"Public","body":"@floor_name = floor_name"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_name:String-instance-method","name":"location_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name","return_type":"String","visibility":"Public","body":"@location_name"}},{"html_id":"location_name=(location_name:String)-instance-method","name":"location_name=","abstract":false,"args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"args_string":"(location_name : String)","args_html":"(location_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name=","args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"visibility":"Public","body":"@location_name = location_name"}},{"html_id":"spaces:Array(SpaceDetails)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces","return_type":"Array(SpaceDetails)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(SpaceDetails))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"args_string":"(spaces : Array(SpaceDetails))","args_html":"(spaces : Array(SpaceDetails))","location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/XYSense/LocationService/Occupancy","path":"XYSense/LocationService/Occupancy.html","kind":"class","full_name":"XYSense::LocationService::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L61"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"collected:Time-instance-method","name":"collected","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected","return_type":"Time","visibility":"Public","body":"@collected"}},{"html_id":"collected=(collected:Time)-instance-method","name":"collected=","abstract":false,"args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"args_string":"(collected : Time)","args_html":"(collected : Time)","location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected=","args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"visibility":"Public","body":"@collected = collected"}},{"html_id":"details:SpaceDetails-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"SpaceDetails","visibility":"Public","body":"if (__temp_1 = @details).nil?\n ::raise(::NilAssertionError.new(\"XYSense::LocationService::Occupancy#details cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"details=(details:SpaceDetails)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"args_string":"(details : SpaceDetails)","args_html":"(details : SpaceDetails)","location":{"filename":"src/xy_sense/location_service.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L71"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"visibility":"Public","body":"@details = details"}},{"html_id":"details?:SpaceDetails|Nil-instance-method","name":"details?","abstract":false,"def":{"name":"details?","return_type":"SpaceDetails | ::Nil","visibility":"Public","body":"@details"}},{"html_id":"headcount:Int32-instance-method","name":"headcount","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount","return_type":"Int32","visibility":"Public","body":"@headcount"}},{"html_id":"headcount=(headcount:Int32)-instance-method","name":"headcount=","abstract":false,"args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"args_string":"(headcount : Int32)","args_html":"(headcount : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount=","args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"visibility":"Public","body":"@headcount = headcount"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:String)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L63"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L63"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/XYSense/LocationService/SpaceDetails","path":"XYSense/LocationService/SpaceDetails.html","kind":"class","full_name":"XYSense::LocationService::SpaceDetails","name":"SpaceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L57"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"category=(category:String)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"String"}],"args_string":"(category : String)","args_html":"(category : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L57"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"String"}],"visibility":"Public","body":"@category = category"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L54"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L54"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L55"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L55"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]}]}]},{"html_id":"drivers/Zencontrol","path":"Zencontrol.html","kind":"module","full_name":"Zencontrol","name":"Zencontrol","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI","path":"Zencontrol/AdvancedTPI.html","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CODES","name":"ERROR_CODES","value":"{1_u8 => \"The checksum check failed\", 2_u8 => \"A short on the DALI line was detected\", 3_u8 => \"A receive error occured\", 4_u8 => \"The command in the request is unrecognised\", 176_u8 => \"The command requested relies on a paid feature that hasn't been purchsed\", 177_u8 => \"Invalid arguments supplied for the given command in the re quest\", 178_u8 => \"The command couldn't be processed\", 179_u8 => \"The queue or buffer that's required to process the command in the request\\n is full or broken\", 180_u8 => \"The command in the request may stream multiple responses back, but this\\n feature isn't available for some reason\", 181_u8 => \"The DALI related request couldn't be processed due to an error\", 182_u8 => \"There are an insufficient number of the required resource remaining service\\n the request\", 183_u8 => \"An unexpected result occurred\"}"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L61"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L103"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(170_u8, area_id.to_u8)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L81"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(173_u8, area_id.to_u8)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n bytes.size < 3 ? 0 : (bytes[2].to_i + 4)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :api_version)) || 4_u8"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L187"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\nio = IO::Memory.new(data)\nresponse = io.read_bytes(ResponseFrame)\ncase response.type\nwhen .okay?, .no_answer?\nwhen .answer?\n if (request = task.try(&.request_payload)) && (request.sequence == response.sequence)\n case request.command\n when 173_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[area.to_s] = response.bytes[0]\n when 170_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[(area.append(\"level\")).to_s] = response.bytes[0]\n else\n logger.debug do\n \"unknown answer for #{request.command.to_s(16)}\\n - req: #{request.to_slice.hexstring}\\n - resp: #{response.to_slice.hexstring}\"\n end\n end\n end\nwhen .error?\n error_code = response.bytes[0]\n error_message = ERROR_CODES[error_code]?\n logger.error do\n \"request failed with code #{error_code}, message: #{error_message}\"\n end\n return task.try(&.abort(error_message))\nend\nif request = task.try(&.request_payload)\n if request.sequence == response.sequence\n return task.try(&.success)\n else\n return\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L89"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u32\nbasic_request(162_u8, area_id.to_u8, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L70"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nself[area.to_s] = scene\nbasic_request(161_u8, area_id.to_u8, scene)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L55"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI/Area","path":"Zencontrol/AdvancedTPI/Area.html","kind":"alias","full_name":"Zencontrol::AdvancedTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"}},{"html_id":"drivers/Zencontrol/AdvancedTPI/BasicRequest","path":"Zencontrol/AdvancedTPI/BasicRequest.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::BasicRequest","name":"BasicRequest","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::BasicRequest]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: version, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: command, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: address, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bitfield\", name: 28, cls: Zencontrol::AdvancedTPI::BasicRequest, onlyif: nil, verify: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n (((((version ^ sequence) ^ command) ^ address) ^ ((data >> 16) & 255).to_u8) ^ ((data >> 8) & 255).to_u8) ^ (data & 255).to_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L114"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"address:UInt8-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"UInt8","visibility":"Public","body":"@address"}},{"html_id":"address=(address:UInt8)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8)","args_html":"(address : UInt8)","def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"visibility":"Public","body":"@address = address"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"command:UInt8-instance-method","name":"command","abstract":false,"def":{"name":"command","return_type":"UInt8","visibility":"Public","body":"@command"}},{"html_id":"command=(command:UInt8)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"args_string":"(command : UInt8)","args_html":"(command : UInt8)","def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"visibility":"Public","body":"@command = command"}},{"html_id":"data:UInt32-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"UInt32","visibility":"Public","body":"@data"}},{"html_id":"data=(data:UInt32)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"args_string":"(data : UInt32)","args_html":"(data : UInt32)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"visibility":"Public","body":"@data = data"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"version:UInt8-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"UInt8","visibility":"Public","body":"@version"}},{"html_id":"version=(version:UInt8)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"args_string":"(version : UInt8)","args_html":"(version : UInt8)","def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"visibility":"Public","body":"@version = version"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseFrame","path":"Zencontrol/AdvancedTPI/ResponseFrame.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::ResponseFrame","name":"ResponseFrame","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::ResponseFrame]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: ResponseType}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: size, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: bytes, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: -> do\n sum = (type.to_u8 ^ sequence) ^ size\n checksum == (bytes.reduce(sum) do |acc, i|\n i ^ acc\n end)\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L175"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bytes:Bytes-instance-method","name":"bytes","abstract":false,"def":{"name":"bytes","return_type":"Bytes","visibility":"Public","body":"@bytes"}},{"html_id":"bytes=(bytes:Bytes)-instance-method","name":"bytes=","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"args_string":"(bytes : Bytes)","args_html":"(bytes : Bytes)","def":{"name":"bytes=","args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"visibility":"Public","body":"@bytes = bytes"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt8-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt8","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt8)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"args_string":"(size : UInt8)","args_html":"(size : UInt8)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:ResponseType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"ResponseType","visibility":"Public","body":"@type"}},{"html_id":"type=(type:ResponseType)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"args_string":"(type : ResponseType)","args_html":"(type : ResponseType)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_response_frame(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_response_frame","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_response_frame","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::ResponseFrame = Zencontrol::AdvancedTPI::ResponseFrame.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseType","path":"Zencontrol/AdvancedTPI/ResponseType.html","kind":"enum","full_name":"Zencontrol::AdvancedTPI::ResponseType","name":"ResponseType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L167"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Okay","name":"Okay","value":"160"},{"id":"Answer","name":"Answer","value":"161"},{"id":"NoAnswer","name":"NoAnswer","value":"162"},{"id":"Error","name":"Error","value":"163"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L169"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L171"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"no_answer?-instance-method","name":"no_answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L170"},"def":{"name":"no_answer?","visibility":"Public","body":"self == NoAnswer"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L168"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Zencontrol/ClassicTPI","path":"Zencontrol/ClassicTPI.html","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BROADCAST","name":"BROADCAST","value":"Bytes[255, 255, 255, 255, 255, 255]"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L52"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L88"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[(area.append(\"level\")).to_s]?\nend"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L70"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[area.to_s]?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L34"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :version)) || 1_u8\ncontroller = setting?(String, :controller_id)\nif controller\n @controller = (controller.rjust(12, '0')).hexbytes\nelse\n @controller = BROADCAST\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L101"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L76"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u8\narea_id = ((area.id.as(UInt32)).clamp(0, 127)).to_u8\nself[(area.append(\"level\")).to_s] = level\ndo_send(area_id, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L61"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nscene = (scene.clamp(0, 15)) + 16\narea_id = ((area.id.as(UInt32)).clamp(0, 127)) + 128\nself[area.to_s] = scene\ndo_send(area_id.to_u8, scene.to_u8)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L46"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/ClassicTPI/Area","path":"Zencontrol/ClassicTPI/Area.html","kind":"alias","full_name":"Zencontrol::ClassicTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/ClassicTPI","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI"}}]}]}]}} \ No newline at end of file +{"repository_name":"drivers","body":"# PlaceOS Drivers\n\n[![CI](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml/badge.svg)](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml)\n\nManage and test [PlaceOS](https://place.technology) drivers.\n\n## Development\n\n### `harness`\n\n`harness` is a helper for easing development of PlaceOS Drivers.\n\n```\nUsage: ./harness [-h|--help] [command]\n\nHelper script for interfacing with the PlaceOS Driver spec runner\n\nCommand:\n report check all drivers' compilation status\n up starts the harness\n down stops the harness\n build builds drivers and uploads them to S3\n format formats driver code\n help display this message\n```\n\nTo spin up the test harness, clone the repository and run...\n\n```shell-session\n$ ./harness up\n```\n\nPoint a browser to [localhost:8085](http://localhost:8085), and you're good to go.\n\nWhen the environment is not in use, remember to run...\n\n```shell-session\n$ ./harness down\n```\n\nBefore committing, please run...\n\n```shell-session\n$ ./harness format\n```\n\n## Documentation\n\n- [Existing Driver Docs](https://placeos.github.io/drivers/)\n- [Writing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver)\n- [Testing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver/testing-drivers)\n- [Sending Emails](docs/guide-event-emails.md)\n- [Environment Setup](docs/setup.md)\n- [Runtime Debugging](docs/runtime-debugging.md)\n- [Directory Structure](docs/directory_structure.md)\n- [PlaceOS Spec Runner HTTP API](docs/http-api.md)\n\n## Contributing\n\n1. [Fork it](https://github.com/PlaceOS/drivers/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","program":{"html_id":"drivers/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"}],"locations":[],"repository_name":"drivers","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"CAPTURE_STATUS","name":"CAPTURE_STATUS","value":"\" \\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n 2014-02-12T15:30:00.000Z\\n 3000\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n \\n John Doe\\n \\n \\n
\\n \\n Some other capture\\n 2014-02-13T15:30:00.000Z\\n 1500\\n
Some other capture
\\n \\n \\n Steve\\n \\n \\n
\\n
\""},{"id":"DEFAULT_PASSWORD_EXCLUDE","name":"DEFAULT_PASSWORD_EXCLUDE","value":"\"0Oo1Il`'\\\\/\""},{"id":"DEFAULT_PASSWORD_LENGTH","name":"DEFAULT_PASSWORD_LENGTH","value":"6","doc":"Password defaults","summary":"

Password defaults

"},{"id":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","name":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","name":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","name":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","value":"0"},{"id":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","name":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","value":"0"},{"id":"DESK_LOC","name":"DESK_LOC","value":"{\"location\" => \"desk\", \"at_location\" => true, \"map_id\" => \"desk-4-1006\", \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"},{"id":"EXAMPLE_COLOCATION","name":"EXAMPLE_COLOCATION","value":"\"[\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1b\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 7662\\n }\\n ]\\n },\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1e\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 2386\\n }\\n ]\\n }\\n ]\""},{"id":"EXAMPLE_RESPONSE","name":"EXAMPLE_RESPONSE","value":"\"{\\\"content\\\": #{EXAMPLE_COLOCATION}}\""},{"id":"PASSWORD_LOWERCASE_CHARACTERS","name":"PASSWORD_LOWERCASE_CHARACTERS","value":"('a'..'z').to_a"},{"id":"PASSWORD_NUMBER_CHARACTERS","name":"PASSWORD_NUMBER_CHARACTERS","value":"('0'..'9').to_a"},{"id":"PASSWORD_SYMBOL_CHARACTERS","name":"PASSWORD_SYMBOL_CHARACTERS","value":"['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '-', '=', '{', '}', '[', ']', '|', '\\\\', ':', ';', '\"', '\\'', '<', '>', ',', '.', '?', '/', '`', '~']"},{"id":"PASSWORD_UPPERCASE_CHARACTERS","name":"PASSWORD_UPPERCASE_CHARACTERS","value":"('A'..'Z').to_a"},{"id":"RAW_GUEST_RESPONSE","name":"RAW_GUEST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Guest\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": false,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RAW_HASH_RESPONSE","name":"RAW_HASH_RESPONSE","value":"\"{\\n \\\"host\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJCWXpoYmV4W\\\",\\n \\\"short\\\": \\\"abc1234\\\"\\n }],\\n \\\"guest\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJaVVJsejNsb1\\\",\\n \\\"short\\\": \\\"def1234\\\"\\n }],\\n \\\"baseUrl\\\": \\\"https://somedomain.com/chat/\\\"\\n}\""},{"id":"RAW_HOST_RESPONSE","name":"RAW_HOST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Host\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": true,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RETVAL","name":"RETVAL","value":"\"{\\n \\\"space_id\\\":\\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"host_token\\\":\\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"guest_token\\\":\\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"host_url\\\": \\\"https://somedomain.com/chat/abc1234\\\",\\n \\\"guest_url\\\": \\\"https://somedomain.com/chat/def1234\\\"\\n}\""},{"id":"SPACES_RESPONSE","name":"SPACES_RESPONSE","value":"[{\"id\" => 96978, \"location\" => {\"id\" => 775, \"scalingFactor\" => nil, \"raw\" => true, \"policy\" => true}, \"name\" => \"WS7-01\", \"srf\" => {\"x\" => 91, \"y\" => 2169, \"z\" => 0}, \"marker\" => {\"type\" => \"CIRCLE\", \"data\" => \"20\"}, \"category\" => {\"id\" => 297, \"name\" => \"Assigned Desks\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => true, \"iconUrl\" => nil, \"colorScheme\" => \"#ffb3b3\", \"orderingIndex\" => 113}, \"sensingPolicyId\" => 247, \"department\" => {\"id\" => 498, \"name\" => \"Sales\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => nil}, \"subCategory\" => {\"id\" => 194, \"name\" => \"None\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => 194}, \"device\" => {\"id\" => 2016090160, \"displayName\" => \"1609010160\", \"updatedAt\" => nil, \"floorId\" => nil, \"shape\" => nil, \"coord\" => nil, \"blessId\" => 1609010160, \"blessQr\" => nil, \"accessedAt\" => \"2021-03-11T08:06:01.000+0000\", \"installedOn\" => nil, \"licenseeId\" => nil, \"hardware\" => nil, \"network\" => nil, \"itemId\" => nil}, \"markerUniqueId\" => \"K_2493713878097_18542\", \"live\" => false, \"capacity\" => 1, \"counter\" => \"NO_COUNTER\", \"serial\" => 1, \"locationId\" => 775, \"counted\" => true}].to_json"},{"id":"SYSTEM_STATUS","name":"SYSTEM_STATUS","value":"\" \\n 2014-02-12T15:02:19.037Z\\n \\n 3.0\\n \\n \\n Audio Only (Podcast). Balanced between file size & quality\\n Display Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n DualDisplay (Podcast/Vodcast/EchoPlayer). Optimized for file size & bandwidth\\n Dual Video (Podcast/Vodcast/EchoPlayer) -Balance between file size & quality\\n Dual Video (Podcast/Vodcast/EchoPlayer) -High Quality\\n Video Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n media\\n 2014-02-12T23:00:00.000Z\\n 3000\\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n John Doe\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n archive\\n \\n \\n \\n balanced\\n stereo\\n -6\\n 44100\\n 0\\n false\\n \\n \\n 1\\n dvi\\n 50\\n 50\\n 50\\n 10.0\\n 960\\n 720\\n true\\n true\\n \\n \\n 2\\n composite\\n 50\\n 50\\n 50\\n 29.97\\n 704\\n 480\\n true\\n false\\n ntsc\\n \\n \\n audio\\n aac\\n true\\n \\n 128000\\n lc\\n \\n \\n \\n graphics1\\n h264\\n \\n vbr\\n 736000\\n 1104000\\n base\\n 50\\n \\n \\n \\n graphics2\\n h264\\n \\n vbr\\n 1056000\\n 1584000\\n base\\n 150\\n \\n \\n \\n audio-archive\\n \\n file\\n audio.aac\\n \\n \\n \\n graphics1-archive\\n \\n file\\n display.h264\\n \\n \\n \\n graphics2-archive\\n \\n file\\n video.h264\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\""},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"WIRELESS_LOC","name":"WIRELESS_LOC","value":"{\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => 16.764784482481577, \"y\" => 25.435735950388988, \"lng\" => 55.274935030154325, \"lat\" => 25.201036346211698, \"variance\" => 7.944837533996209, \"last_seen\" => 1601526474, \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"}],"included_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"extended_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"class_methods":[{"html_id":"create_request(mode:String,device_name:String,modbus_device:String,md5:String,file_time:String,file_descriptor:String,file_name:String,file:String|Nil)-class-method","name":"create_request","doc":"Some of these fields may not be present in every request but\nhaving them there doesn't hurt anything so why bother removing them","summary":"

Some of these fields may not be present in every request but having them there doesn't hurt anything so why bother removing them

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"args_string":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","args_html":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","location":{"filename":"src/leviton/acquisuite_spec.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite_spec.cr#L87"},"def":{"name":"create_request","args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"visibility":"Public","body":"if file.nil?\n file = \"fileplaceholder\"\nend\n\"--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODE\\\"\\n\\n#{mode}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICENAME\\\"\\n\\n#{device_name}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICE\\\"\\n\\n#{modbus_device}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MD5CHECKSUM\\\"\\n\\n#{md5}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"FILETIME\\\"\\n\\n#{file_time}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"#{file_descriptor}\\\"; filename=\\\"#{file_name}\\\"\\nContent-Type: application/octet-stream;\\n\\n#{file}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY--\\n\"\n"}},{"html_id":"generate_password(length:Int32|Nil=DEFAULT_PASSWORD_LENGTH,exclude:String|Nil=DEFAULT_PASSWORD_EXCLUDE,minimum_lowercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_LOWERCASE,minimum_uppercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_UPPERCASE,minimum_numbers:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_NUMBERS,minimum_symbols:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_SYMBOLS):String-class-method","name":"generate_password","abstract":false,"args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"args_string":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","args_html":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","location":{"filename":"src/place/password_generator_helper.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/password_generator_helper.cr#L14"},"def":{"name":"generate_password","args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"return_type":"String","visibility":"Public","body":"length || (length = DEFAULT_PASSWORD_LENGTH)\nexclude || (exclude = DEFAULT_PASSWORD_EXCLUDE)\nminimum_lowercase || (minimum_lowercase = DEFAULT_PASSWORD_MINIMUM_LOWERCASE)\nminimum_uppercase || (minimum_uppercase = DEFAULT_PASSWORD_MINIMUM_UPPERCASE)\nminimum_numbers || (minimum_numbers = DEFAULT_PASSWORD_MINIMUM_NUMBERS)\nminimum_symbols || (minimum_symbols = DEFAULT_PASSWORD_MINIMUM_SYMBOLS)\nminimums = ((minimum_lowercase + minimum_uppercase) + minimum_numbers) + minimum_symbols\nif length < minimums\n length = minimums\nend\ncharacters = [] of Char\nif minimum_lowercase > 0\n characters = PASSWORD_LOWERCASE_CHARACTERS\nend\nif minimum_uppercase > 0\n characters = characters + PASSWORD_UPPERCASE_CHARACTERS\nend\nif minimum_numbers > 0\n characters = characters + PASSWORD_NUMBER_CHARACTERS\nend\nif minimum_symbols > 0\n characters = characters + PASSWORD_SYMBOL_CHARACTERS\nend\ncharacters = characters - exclude.chars\nif characters.empty?\n characters = (PASSWORD_LOWERCASE_CHARACTERS + PASSWORD_NUMBER_CHARACTERS) - DEFAULT_PASSWORD_EXCLUDE.chars\nend\npassword = [] of Char\nminimum_lowercase.times do\n password << (PASSWORD_LOWERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_uppercase.times do\n password << (PASSWORD_UPPERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_numbers.times do\n password << (PASSWORD_NUMBER_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_symbols.times do\n password << (PASSWORD_SYMBOL_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\n(length - minimums).times do\n password << characters.sample(random: Random::Secure)\nend\npassword.shuffle(random: Random::Secure).join\n"}}],"types":[{"html_id":"drivers/AmberTech","path":"AmberTech.html","kind":"module","full_name":"AmberTech","name":"AmberTech","abstract":false,"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AmberTech/Devices","path":"AmberTech/Devices.html","kind":"class","full_name":"AmberTech::Devices","name":"Devices","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_ip:String-instance-method","name":"current_ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L37"},"def":{"name":"current_ip","return_type":"String","visibility":"Public","body":"@current_ip"}},{"html_id":"device_info:Array(DevInfo)-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L34"},"def":{"name":"device_info","return_type":"Array(DevInfo)","visibility":"Public","body":"@device_info"}}]},{"html_id":"drivers/AmberTech/DevInfo","path":"AmberTech/DevInfo.html","kind":"class","full_name":"AmberTech::DevInfo","name":"DevInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L16"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L17"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"ip_gateway:String-instance-method","name":"ip_gateway","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L23"},"def":{"name":"ip_gateway","return_type":"String","visibility":"Public","body":"@ip_gateway"}},{"html_id":"ip_subnet:String-instance-method","name":"ip_subnet","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L20"},"def":{"name":"ip_subnet","return_type":"String","visibility":"Public","body":"@ip_subnet"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"pass:String|Nil-instance-method","name":"pass","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L25"},"def":{"name":"pass","return_type":"String | ::Nil","visibility":"Public","body":"@pass"}},{"html_id":"pass2:String|Nil-instance-method","name":"pass2","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L26"},"def":{"name":"pass2","return_type":"String | ::Nil","visibility":"Public","body":"@pass2"}},{"html_id":"status:Status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L27"},"def":{"name":"status","return_type":"Status","visibility":"Public","body":"@status"}},{"html_id":"ver:String-instance-method","name":"ver","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L15"},"def":{"name":"ver","return_type":"String","visibility":"Public","body":"@ver"}}]},{"html_id":"drivers/AmberTech/Grandview","path":"AmberTech/Grandview.html","kind":"class","full_name":"AmberTech::Grandview","name":"Grandview","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L109"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:down)"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L113"},"def":{"name":"down?","visibility":"Public","body":"{\"closed\", \"closing\"}.includes?(self[\"status\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moveable interface","summary":"

moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L30"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"command = case position\nwhen .up?, .close?, .in?\n \"/Close.js?a=100\"\nwhen .down?, .open?, .out?\n \"/Open.js?a=100\"\nelse\n raise(\"unsupported move option: #{position}\")\nend\nqueue(name: \"move\") do |task|\n response = get(command, headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 2.seconds\nschedule.every(1.minute) do\n status\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L59"},"def":{"name":"status","visibility":"Public","body":"if queue.online\n queue(name: \"status\", priority: 0) do |task|\n response = perform_status_request\n if response.success?\n task.success(parse_status(response))\n else\n task.abort(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n end\nelse\n response = perform_status_request\n if response.success?\n parse_status(response)\n end\nend"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"stoppable interface","summary":"

stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/amber_tech/grandview.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L49"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"queue(name: \"stop\", priority: 999, clear_queue: emergency) do |task|\n response = get(\"/Stop.js?a=100\", headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","doc":"compatibility with Screen Technics","summary":"

compatibility with Screen Technics

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L101"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:up)"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L105"},"def":{"name":"up?","visibility":"Public","body":"{\"opened\", \"opening\"}.includes?(self[\"status\"]?)"}}]},{"html_id":"drivers/AmberTech/Status","path":"AmberTech/Status.html","kind":"enum","full_name":"AmberTech::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stop","name":"Stop","value":"0"},{"id":"Opening","name":"Opening","value":"1"},{"id":"Opened","name":"Opened","value":"2"},{"id":"Closing","name":"Closing","value":"3"},{"id":"Closed","name":"Closed","value":"4"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L9"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"closing?-instance-method","name":"closing?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L8"},"def":{"name":"closing?","visibility":"Public","body":"self == Closing"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == Opened"}},{"html_id":"opening?-instance-method","name":"opening?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L6"},"def":{"name":"opening?","visibility":"Public","body":"self == Opening"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L5"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/AmberTech/StatusResp","path":"AmberTech/StatusResp.html","kind":"class","full_name":"AmberTech::StatusResp","name":"StatusResp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:Status|String-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L43"},"def":{"name":"status","return_type":"Status | String","visibility":"Public","body":"@status"}}]}]},{"html_id":"drivers/Amx","path":"Amx.html","kind":"module","full_name":"Amx","name":"Amx","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Amx/Svsi","path":"Amx/Svsi.html","kind":"module","full_name":"Amx::Svsi","name":"Svsi","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Amx","kind":"module","full_name":"Amx","name":"Amx"},"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","path":"Amx/Svsi/NSeriesDecoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"OutputModes","name":"OutputModes","value":"[\"auto\", \"1080p59.94\", \"1080p60\", \"720p60\", \"4K30\", \"4K25\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L41"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L49"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L208"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"live(state:Bool=true)-instance-method","name":"live","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L86"},"def":{"name":"live","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? do_send(Command::Live) : local(self[:playlist].as_i)"}},{"html_id":"local(playlist:Int32=0)-instance-method","name":"local","abstract":false,"args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"args_string":"(playlist : Int32 = 0)","args_html":"(playlist : Int32 = 0)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L90"},"def":{"name":"local","args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Local, playlist)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L72"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\n do_send(Command::Mute, name: :mute)\n do_send(Command::SetAudio, 0)\nelse\n do_send(Command::SetAudio, @previous_stream || 0)\n do_send(Command::Unmute, name: :mute)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L37"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"output_resolution(mode:String)-instance-method","name":"output_resolution","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L108"},"def":{"name":"output_resolution","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if OutputModes.includes?(mode)\nelse\n logger.error do\n \"\\\"#{mode}\\\" is not a valid resolution\"\n end\n return\nend\ndo_send(Command::ModeSet, mode)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L174"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nprop, value = data.split(':')\ncase Response.from_mapped_value?(prop.downcase)\nin Response::Stream\n self[:video] = @stream = value.to_i\nin Response::StreamAudio\n stream_id = value.to_i\n self[:audio_actual] = stream_id\n self[:audio] = stream_id == 0 ? (@mute ? 0 : @stream) : stream_id\nin Response::Name\n self[:device_name] = value\nin Response::Playmode\n self[:local_playback] = value == \"local\"\nin Response::Playlist\n self[:playlist] = value.to_i\nin Response::Mute\n self[:mute] = @mute = value == \"1\"\nin Response::ScalerBypass\n self[:scaler_active] = value != \"no\"\nin Response::Mode\n self[:output_res] = value\nin Response::InputRes\n self[:input_res] = value\nin Nil\n raise(\"Unexpected response: #{prop}\")\nend\ntask.try(&.success)\n"}},{"html_id":"scaler(state:Bool)-instance-method","name":"scaler","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L94"},"def":{"name":"scaler","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"action = state ? Command::ScalerEnable : Command::ScalerDisable\ndo_send(action, name: :scaler)\n"}},{"html_id":"switch_audio(stream_id:Int32)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L62"},"def":{"name":"switch_audio","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"@previous_stream = stream_id\nunmute\n"}},{"html_id":"switch_kvm(ip_address:String,video_follow:Bool=true)-instance-method","name":"switch_kvm","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"args_string":"(ip_address : String, video_follow : Bool = true)","args_html":"(ip_address : String, video_follow : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L67"},"def":{"name":"switch_kvm","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"visibility":"Public","body":"host = \"#{ip_address},#{video_follow ? 1 : 0}\"\ndo_send(Command::SwitchKVM, host)\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L53"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"switch_video(input)\nswitch_audio(0)\n"}},{"html_id":"switch_video(stream_id:Int32)-instance-method","name":"switch_video","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L58"},"def":{"name":"switch_video","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Set, stream_id)"}},{"html_id":"videowall(width:Int32,height:Int32,x_pos:Int32,y_pos:Int32,scale:VideowallScalingMode=VideowallScalingMode::Auto)-instance-method","name":"videowall","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"args_string":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","args_html":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L116"},"def":{"name":"videowall","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"if width > 1 && height > 1\n videowall_size(width, height)\n videowall_position(x_pos, y_pos)\n videowall_scaling(scale)\n videowall_enable\nelse\n videowall_disable\nend"}},{"html_id":"videowall_disable-instance-method","name":"videowall_disable","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L138"},"def":{"name":"videowall_disable","visibility":"Public","body":"videowall_enable(false)"}},{"html_id":"videowall_enable(state:Bool=true)-instance-method","name":"videowall_enable","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L133"},"def":{"name":"videowall_enable","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? \"on\" : \"off\"\ndo_send(Command::SetSettings, \"wallEnable\", state)\n"}},{"html_id":"videowall_position(x:Int32,y:Int32)-instance-method","name":"videowall_position","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L147"},"def":{"name":"videowall_position","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallMonPosV\", x)\ndo_send(Command::SetSettings, \"wallMonPosH\", y)\n"}},{"html_id":"videowall_scaling(scaling_mode:VideowallScalingMode)-instance-method","name":"videowall_scaling","abstract":false,"args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"args_string":"(scaling_mode : VideowallScalingMode)","args_html":"(scaling_mode : VideowallScalingMode)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L158"},"def":{"name":"videowall_scaling","args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallStretch\", scaling_mode)"}},{"html_id":"videowall_size(width:Int32,height:Int32)-instance-method","name":"videowall_size","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32)","args_html":"(width : Int32, height : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L142"},"def":{"name":"videowall_size","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallHorMons\", width)\ndo_send(Command::SetSettings, \"wallVerMons\", height)\n"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Command","path":"Amx/Svsi/NSeriesDecoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"Set","name":"Set","value":"1"},{"id":"SetSettings","name":"SetSettings","value":"2"},{"id":"SwitchKVM","name":"SwitchKVM","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Unmute","name":"Unmute","value":"5"},{"id":"SetAudio","name":"SetAudio","value":"6"},{"id":"Live","name":"Live","value":"7"},{"id":"Local","name":"Local","value":"8"},{"id":"ScalerEnable","name":"ScalerEnable","value":"9"},{"id":"ScalerDisable","name":"ScalerDisable","value":"10"},{"id":"ModeSet","name":"ModeSet","value":"11"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mode_set?-instance-method","name":"mode_set?","abstract":false,"def":{"name":"mode_set?","visibility":"Public","body":"self == ModeSet"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"scaler_disable?-instance-method","name":"scaler_disable?","abstract":false,"def":{"name":"scaler_disable?","visibility":"Public","body":"self == ScalerDisable"}},{"html_id":"scaler_enable?-instance-method","name":"scaler_enable?","abstract":false,"def":{"name":"scaler_enable?","visibility":"Public","body":"self == ScalerEnable"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"def":{"name":"set?","visibility":"Public","body":"self == Set"}},{"html_id":"set_audio?-instance-method","name":"set_audio?","abstract":false,"def":{"name":"set_audio?","visibility":"Public","body":"self == SetAudio"}},{"html_id":"set_settings?-instance-method","name":"set_settings?","abstract":false,"def":{"name":"set_settings?","visibility":"Public","body":"self == SetSettings"}},{"html_id":"switch_kvm?-instance-method","name":"switch_kvm?","abstract":false,"def":{"name":"switch_kvm?","visibility":"Public","body":"self == SwitchKVM"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Response","path":"Amx/Svsi/NSeriesDecoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stream","name":"Stream","value":"0"},{"id":"StreamAudio","name":"StreamAudio","value":"1"},{"id":"Name","name":"Name","value":"2"},{"id":"Playmode","name":"Playmode","value":"3"},{"id":"Playlist","name":"Playlist","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"ScalerBypass","name":"ScalerBypass","value":"6"},{"id":"Mode","name":"Mode","value":"7"},{"id":"InputRes","name":"InputRes","value":"8"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"input_res?-instance-method","name":"input_res?","abstract":false,"def":{"name":"input_res?","visibility":"Public","body":"self == InputRes"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playlist?-instance-method","name":"playlist?","abstract":false,"def":{"name":"playlist?","visibility":"Public","body":"self == Playlist"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"scaler_bypass?-instance-method","name":"scaler_bypass?","abstract":false,"def":{"name":"scaler_bypass?","visibility":"Public","body":"self == ScalerBypass"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}},{"html_id":"stream_audio?-instance-method","name":"stream_audio?","abstract":false,"def":{"name":"stream_audio?","visibility":"Public","body":"self == StreamAudio"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/VideowallScalingMode","path":"Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::VideowallScalingMode","name":"VideowallScalingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L152"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Fit","name":"Fit","value":"1"},{"id":"Stretch","name":"Stretch","value":"2"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L153"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"fit?-instance-method","name":"fit?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L154"},"def":{"name":"fit?","visibility":"Public","body":"self == Fit"}},{"html_id":"stretch?-instance-method","name":"stretch?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L155"},"def":{"name":"stretch?","visibility":"Public","body":"self == Stretch"}}]}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","path":"Amx/Svsi/NSeriesEncoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L8"},{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CommonCommands","name":"CommonCommands","value":"[:monitor, :monitornotify, :live, :local, :serial, :readresponse, :sendir, :sendirraw, :audioon, :audiooff, :enablehdmiaudio, :disablehdmiaudio, :autohdmiaudio, :record, :dsrecord, :dvrswitch1, :dvrswitch2, :mpeg, :mpegall, :deletempegfile, :play, :stop, :pause, :unpause, :fastforward, :rewind, :deletefile, :stepforward, :stepreverse, :stoprecord, :recordhold, :recordrelease, :playhold, :playrelease, :deleteallplaylist, :deleteallmpegs, :remotecopy, :wpswitch, :wpaudioin, :wpactive, :wpinactive, :wpaudioon, :wpaudiooff, :wpmodeon, :wpmodeoff, :wparrange, :wpbackground, :wpcrop, :wppriority, :wpbordon, :wpbordoff, :wppreset, :atrswitch, :atrmute, :atrunmute, :atrtxmute, :atrtxunmute, :atrhpvol, :atrlovol, :atrlovolup, :atrlovoldown, :atrhpvolup, :atrhpvoldown, :openrelay, :closerelay, :videowall, :script, :goto, :tcpclient, :udpclient, :reboot, :gc_serial, :gc_openrelay, :gc_closerelay, :gc_ir]"},{"id":"Modes","name":"Modes","value":"(1..8).map(&.to_s)"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"atrhpvol(ip_address:String,*args,**options)-instance-method","name":"atrhpvol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvol\", ip_address, *args, **options)"}},{"html_id":"atrhpvoldown(ip_address:String,*args,**options)-instance-method","name":"atrhpvoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvoldown\", ip_address, *args, **options)"}},{"html_id":"atrhpvolup(ip_address:String,*args,**options)-instance-method","name":"atrhpvolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvolup\", ip_address, *args, **options)"}},{"html_id":"atrlovol(ip_address:String,*args,**options)-instance-method","name":"atrlovol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovol\", ip_address, *args, **options)"}},{"html_id":"atrlovoldown(ip_address:String,*args,**options)-instance-method","name":"atrlovoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovoldown\", ip_address, *args, **options)"}},{"html_id":"atrlovolup(ip_address:String,*args,**options)-instance-method","name":"atrlovolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovolup\", ip_address, *args, **options)"}},{"html_id":"atrmute(ip_address:String,*args,**options)-instance-method","name":"atrmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrmute\", ip_address, *args, **options)"}},{"html_id":"atrswitch(ip_address:String,*args,**options)-instance-method","name":"atrswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrswitch\", ip_address, *args, **options)"}},{"html_id":"atrtxmute(ip_address:String,*args,**options)-instance-method","name":"atrtxmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxmute\", ip_address, *args, **options)"}},{"html_id":"atrtxunmute(ip_address:String,*args,**options)-instance-method","name":"atrtxunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxunmute\", ip_address, *args, **options)"}},{"html_id":"atrunmute(ip_address:String,*args,**options)-instance-method","name":"atrunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrunmute\", ip_address, *args, **options)"}},{"html_id":"audiofollow(output:InOut,*args,**options)-instance-method","name":"audiofollow","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"audiofollow","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiofollow\", get_output(output), *args, **options)"}},{"html_id":"audiooff(ip_address:String,*args,**options)-instance-method","name":"audiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiooff\", ip_address, *args, **options)"}},{"html_id":"audioon(ip_address:String,*args,**options)-instance-method","name":"audioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audioon\", ip_address, *args, **options)"}},{"html_id":"autocc(input:InOut,*args,**options)-instance-method","name":"autocc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"autocc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autocc\", get_input(input), *args, **options)"}},{"html_id":"autohdmiaudio(ip_address:String,*args,**options)-instance-method","name":"autohdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"autohdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autohdmiaudio\", ip_address, *args, **options)"}},{"html_id":"closerelay(ip_address:String,*args,**options)-instance-method","name":"closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"closerelay\", ip_address, *args, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"@lookup.each_key do |ip_address|\n monitor(ip_address, priority: 0)\n monitornotify(ip_address, priority: 0)\nend\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Maintaining Connection --\"\n end\n monitornotify(@list.first, priority: 0)\nend\n"}},{"html_id":"cropref(output:InOut,*args,**options)-instance-method","name":"cropref","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"cropref","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"cropref\", get_output(output), *args, **options)"}},{"html_id":"deleteallmpegs(ip_address:String,*args,**options)-instance-method","name":"deleteallmpegs","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallmpegs","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallmpegs\", ip_address, *args, **options)"}},{"html_id":"deleteallplaylist(ip_address:String,*args,**options)-instance-method","name":"deleteallplaylist","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallplaylist","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallplaylist\", ip_address, *args, **options)"}},{"html_id":"deletefile(ip_address:String,*args,**options)-instance-method","name":"deletefile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletefile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletefile\", ip_address, *args, **options)"}},{"html_id":"deletempegfile(ip_address:String,*args,**options)-instance-method","name":"deletempegfile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletempegfile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletempegfile\", ip_address, *args, **options)"}},{"html_id":"disablecc(input:InOut,*args,**options)-instance-method","name":"disablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"disablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablecc\", get_input(input), *args, **options)"}},{"html_id":"disablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"disablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"disablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L48"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L111"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"do_send(*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L201"},"def":{"name":"do_send","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"cmd = args.join(' ')\nlogger.debug do\n \"sending #{cmd}\"\nend\nsend(\"#{cmd}\\r\\n\", **options)\n"}},{"html_id":"dsrecord(ip_address:String,*args,**options)-instance-method","name":"dsrecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dsrecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dsrecord\", ip_address, *args, **options)"}},{"html_id":"dvioff(output:InOut,*args,**options)-instance-method","name":"dvioff","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvioff","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvioff\", get_output(output), *args, **options)"}},{"html_id":"dvion(output:InOut,*args,**options)-instance-method","name":"dvion","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvion","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvion\", get_output(output), *args, **options)"}},{"html_id":"dvrswitch1(ip_address:String,*args,**options)-instance-method","name":"dvrswitch1","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch1","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch1\", ip_address, *args, **options)"}},{"html_id":"dvrswitch2(ip_address:String,*args,**options)-instance-method","name":"dvrswitch2","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch2","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch2\", ip_address, *args, **options)"}},{"html_id":"enablecc(input:InOut,*args,**options)-instance-method","name":"enablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"enablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablecc\", get_input(input), *args, **options)"}},{"html_id":"enablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"enablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"enablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"fastforward(ip_address:String,*args,**options)-instance-method","name":"fastforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"fastforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"fastforward\", ip_address, *args, **options)"}},{"html_id":"gc_closerelay(ip_address:String,*args,**options)-instance-method","name":"gc_closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_closerelay\", ip_address, *args, **options)"}},{"html_id":"gc_ir(ip_address:String,*args,**options)-instance-method","name":"gc_ir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_ir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_ir\", ip_address, *args, **options)"}},{"html_id":"gc_openrelay(ip_address:String,*args,**options)-instance-method","name":"gc_openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_openrelay\", ip_address, *args, **options)"}},{"html_id":"gc_serial(ip_address:String,*args,**options)-instance-method","name":"gc_serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_serial\", ip_address, *args, **options)"}},{"html_id":"getStatus(output:InOut,*args,**options)-instance-method","name":"getStatus","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"getStatus","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"getStatus\", get_output(output), *args, **options)"}},{"html_id":"goto(ip_address:String,*args,**options)-instance-method","name":"goto","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"goto","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"goto\", ip_address, *args, **options)"}},{"html_id":"live(ip_address:String,*args,**options)-instance-method","name":"live","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"live","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"live\", ip_address, *args, **options)"}},{"html_id":"local(ip_address:String,*args,**options)-instance-method","name":"local","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"local","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"local\", ip_address, *args, **options)"}},{"html_id":"media_source(mode:String)-instance-method","name":"media_source","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L58"},"def":{"name":"media_source","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if mode == \"live\"\n do_send(Command::Live)\nelse\n if Modes.includes?(mode)\n do_send(Command::Local, mode)\n else\n raise(\"invalid mode #{mode}\")\n end\nend"}},{"html_id":"modeoff(input:InOut,*args,**options)-instance-method","name":"modeoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"modeoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"modeoff\", get_input(input), *args, **options)"}},{"html_id":"monitor(ip_address:String,*args,**options)-instance-method","name":"monitor","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitor","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitor\", ip_address, *args, **options)"}},{"html_id":"monitornotify(ip_address:String,*args,**options)-instance-method","name":"monitornotify","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitornotify","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitornotify\", ip_address, *args, **options)"}},{"html_id":"mpeg(ip_address:String,*args,**options)-instance-method","name":"mpeg","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpeg","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpeg\", ip_address, *args, **options)"}},{"html_id":"mpegall(ip_address:String,*args,**options)-instance-method","name":"mpegall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpegall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpegall\", ip_address, *args, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L155"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"address = index.is_a?(Int32) && (val = @encoders[index]? || @decoders[index]?) ? val : index.as(String)\nif state\n if layer.audio_video? || layer.video?\n dvioff(address)\n end\n if layer.audio_video? || layer.audio?\n audiooff(address)\n end\nelse\n if layer.audio_video? || layer.video?\n dvion(address)\n end\n if layer.audio_video? || layer.audio?\n audioon(address)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = (setting?(Hash(String, String), :inputs)) || ({} of String => String)\n@outputs = (setting?(Hash(String, String), :outputs)) || ({} of String => String)\n@encoders = @inputs.keys\n@decoders = @outputs.keys\n@lookup = @inputs.merge(@outputs)\n@list = @encoders + @decoders\n"}},{"html_id":"openrelay(ip_address:String,*args,**options)-instance-method","name":"openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"openrelay\", ip_address, *args, **options)"}},{"html_id":"pause(ip_address:String,*args,**options)-instance-method","name":"pause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"pause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"pause\", ip_address, *args, **options)"}},{"html_id":"play(ip_address:String,*args,**options)-instance-method","name":"play","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"play","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"play\", ip_address, *args, **options)"}},{"html_id":"playhold(ip_address:String,*args,**options)-instance-method","name":"playhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playhold\", ip_address, *args, **options)"}},{"html_id":"playrelease(ip_address:String,*args,**options)-instance-method","name":"playrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playrelease\", ip_address, *args, **options)"}},{"html_id":"readresponse(ip_address:String,*args,**options)-instance-method","name":"readresponse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"readresponse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"readresponse\", ip_address, *args, **options)"}},{"html_id":"reboot(ip_address:String,*args,**options)-instance-method","name":"reboot","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"reboot","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"reboot\", ip_address, *args, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L170"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nresp = data.split(':')\ncase resp.size\nwhen 13\n self[resp[0]] = {communications: resp[1] == \"1\", dvioff: resp[2] == \"1\", scaler: resp[3] == \"1\", source_detected: resp[4] == \"1\", mode: resp[5], audio_enabled: resp[6] == \"1\", video_stream: resp[7].to_i, audio_stream: resp[8] == \"follow video\" ? resp[8] : resp[8].to_i, playlist: resp[9], colorspace: resp[10], hdmiaudio: resp[11], resolution: resp[12]}\nwhen 10\n self[resp[0]] = resp\nelse\n logger.warn do\n \"unknown response type: #{resp}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"record(ip_address:String,*args,**options)-instance-method","name":"record","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"record","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"record\", ip_address, *args, **options)"}},{"html_id":"recordhold(ip_address:String,*args,**options)-instance-method","name":"recordhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordhold\", ip_address, *args, **options)"}},{"html_id":"recordrelease(ip_address:String,*args,**options)-instance-method","name":"recordrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordrelease\", ip_address, *args, **options)"}},{"html_id":"remotecopy(ip_address:String,*args,**options)-instance-method","name":"remotecopy","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"remotecopy","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"remotecopy\", ip_address, *args, **options)"}},{"html_id":"rewind(ip_address:String,*args,**options)-instance-method","name":"rewind","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"rewind","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"rewind\", ip_address, *args, **options)"}},{"html_id":"script(ip_address:String,*args,**options)-instance-method","name":"script","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"script","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"script\", ip_address, *args, **options)"}},{"html_id":"sendir(ip_address:String,*args,**options)-instance-method","name":"sendir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendir\", ip_address, *args, **options)"}},{"html_id":"sendirraw(ip_address:String,*args,**options)-instance-method","name":"sendirraw","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendirraw","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendirraw\", ip_address, *args, **options)"}},{"html_id":"serial(ip_address:String,*args,**options)-instance-method","name":"serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"serial\", ip_address, *args, **options)"}},{"html_id":"serialhex(ip_address:String,wait_time:Int32=1,*data,**options)-instance-method","name":"serialhex","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"args_string":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","args_html":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L85"},"def":{"name":"serialhex","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":2,"visibility":"Public","body":"do_send(\"serialhex\", wait_time, ip_address, *data, **options)"}},{"html_id":"stepforward(ip_address:String,*args,**options)-instance-method","name":"stepforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepforward\", ip_address, *args, **options)"}},{"html_id":"stepreverse(ip_address:String,*args,**options)-instance-method","name":"stepreverse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepreverse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepreverse\", ip_address, *args, **options)"}},{"html_id":"stop(ip_address:String,*args,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stop\", ip_address, *args, **options)"}},{"html_id":"stoprecord(ip_address:String,*args,**options)-instance-method","name":"stoprecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stoprecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stoprecord\", ip_address, *args, **options)"}},{"html_id":"switch(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L103"},"def":{"name":"switch","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n dvion(output_actual, **options)\n audioon(output_actual, **options)\n audiofollow(output_actual, **options)\n self[\"video#{output_actual}\"] = input_actual\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switch, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n output_actual = get_output(o)\n dvioff(output_actual, **options)\n audiooff(output_actual, **options)\n end\n end\nend"}},{"html_id":"switch_audio(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L131"},"def":{"name":"switch_audio","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n audioon(input_actual, **options)\n audioon(output_actual, **options)\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switchaudio, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n audiooff(get_output(o), **options)\n end\n end\nend"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L52"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::VideoSource, input, **options)"}},{"html_id":"tcpclient(ip_address:String,*args,**options)-instance-method","name":"tcpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"tcpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"tcpclient\", ip_address, *args, **options)"}},{"html_id":"udpclient(ip_address:String,*args,**options)-instance-method","name":"udpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"udpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"udpclient\", ip_address, *args, **options)"}},{"html_id":"uncompressedoff(input:InOut,*args,**options)-instance-method","name":"uncompressedoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"uncompressedoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"uncompressedoff\", get_input(input), *args, **options)"}},{"html_id":"unpause(ip_address:String,*args,**options)-instance-method","name":"unpause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"unpause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"unpause\", ip_address, *args, **options)"}},{"html_id":"videowall(ip_address:String,*args,**options)-instance-method","name":"videowall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"videowall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"videowall\", ip_address, *args, **options)"}},{"html_id":"volume(output:InOut,*args,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"volume","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"volume\", get_output(output), *args, **options)"}},{"html_id":"wpactive(ip_address:String,*args,**options)-instance-method","name":"wpactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpactive\", ip_address, *args, **options)"}},{"html_id":"wparrange(ip_address:String,*args,**options)-instance-method","name":"wparrange","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wparrange","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wparrange\", ip_address, *args, **options)"}},{"html_id":"wpaudioin(ip_address:String,*args,**options)-instance-method","name":"wpaudioin","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioin","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioin\", ip_address, *args, **options)"}},{"html_id":"wpaudiooff(ip_address:String,*args,**options)-instance-method","name":"wpaudiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudiooff\", ip_address, *args, **options)"}},{"html_id":"wpaudioon(ip_address:String,*args,**options)-instance-method","name":"wpaudioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioon\", ip_address, *args, **options)"}},{"html_id":"wpbackground(ip_address:String,*args,**options)-instance-method","name":"wpbackground","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbackground","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbackground\", ip_address, *args, **options)"}},{"html_id":"wpbordoff(ip_address:String,*args,**options)-instance-method","name":"wpbordoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordoff\", ip_address, *args, **options)"}},{"html_id":"wpbordon(ip_address:String,*args,**options)-instance-method","name":"wpbordon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordon\", ip_address, *args, **options)"}},{"html_id":"wpcrop(ip_address:String,*args,**options)-instance-method","name":"wpcrop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpcrop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpcrop\", ip_address, *args, **options)"}},{"html_id":"wpinactive(ip_address:String,*args,**options)-instance-method","name":"wpinactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpinactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpinactive\", ip_address, *args, **options)"}},{"html_id":"wpmodeoff(ip_address:String,*args,**options)-instance-method","name":"wpmodeoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeoff\", ip_address, *args, **options)"}},{"html_id":"wpmodeon(ip_address:String,*args,**options)-instance-method","name":"wpmodeon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeon\", ip_address, *args, **options)"}},{"html_id":"wppreset(ip_address:String,*args,**options)-instance-method","name":"wppreset","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppreset","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppreset\", ip_address, *args, **options)"}},{"html_id":"wppriority(ip_address:String,*args,**options)-instance-method","name":"wppriority","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppriority","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppriority\", ip_address, *args, **options)"}},{"html_id":"wpswitch(ip_address:String,*args,**options)-instance-method","name":"wpswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpswitch\", ip_address, *args, **options)"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Command","path":"Amx/Svsi/NSeriesEncoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"VideoSource","name":"VideoSource","value":"1"},{"id":"Live","name":"Live","value":"2"},{"id":"Local","name":"Local","value":"3"},{"id":"Disable","name":"Disable","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"Unmute","name":"Unmute","value":"6"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"disable?-instance-method","name":"disable?","abstract":false,"def":{"name":"disable?","visibility":"Public","body":"self == Disable"}},{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}},{"html_id":"video_source?-instance-method","name":"video_source?","abstract":false,"def":{"name":"video_source?","visibility":"Public","body":"self == VideoSource"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/InOut","path":"Amx/Svsi/NSeriesEncoder/InOut.html","kind":"alias","full_name":"Amx::Svsi::NSeriesEncoder::InOut","name":"InOut","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Int32 | String)","aliased_html":"Int32 | String","const":false,"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"}},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Input","path":"Amx/Svsi/NSeriesEncoder/Input.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmionly","name":"Hdmionly","value":"0"},{"id":"Vgaonly","name":"Vgaonly","value":"1"},{"id":"Hdmivga","name":"Hdmivga","value":"2"},{"id":"Vgahdmi","name":"Vgahdmi","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"hdmionly?-instance-method","name":"hdmionly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L12"},"def":{"name":"hdmionly?","visibility":"Public","body":"self == Hdmionly"}},{"html_id":"hdmivga?-instance-method","name":"hdmivga?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L14"},"def":{"name":"hdmivga?","visibility":"Public","body":"self == Hdmivga"}},{"html_id":"vgahdmi?-instance-method","name":"vgahdmi?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L15"},"def":{"name":"vgahdmi?","visibility":"Public","body":"self == Vgahdmi"}},{"html_id":"vgaonly?-instance-method","name":"vgaonly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L13"},"def":{"name":"vgaonly?","visibility":"Public","body":"self == Vgaonly"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Response","path":"Amx/Svsi/NSeriesEncoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L82"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Name","name":"Name","value":"0"},{"id":"Stream","name":"Stream","value":"1"},{"id":"Playmode","name":"Playmode","value":"2"},{"id":"Mute","name":"Mute","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L86"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L83"},"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L85"},"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L84"},"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}}]}]},{"html_id":"drivers/Amx/Svsi/VirtualSwitcher","path":"Amx/Svsi/VirtualSwitcher.html","kind":"class","full_name":"Amx::Svsi::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L22"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nconnect(map) do |mod, stream|\n if layer.all? || layer.audio?\n mod.switch_audio(stream)\n end\n if layer.all? || layer.video?\n mod.switch_video(stream)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L18"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"decoders.each(&.switch_to(input))"}}]}]}]},{"html_id":"drivers/Ashrae","path":"Ashrae.html","kind":"module","full_name":"Ashrae","name":"Ashrae","abstract":false,"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Ashrae/BACnet","path":"Ashrae/BACnet.html","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L157"},"def":{"name":"connected","visibility":"Public","body":"bbmd_ip = setting?(String, :bbmd_ip)\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"device(device_id:UInt32)-instance-method","name":"device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L205"},"def":{"name":"device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device_details((get_device(device_id)).not_nil!)"}},{"html_id":"devices-instance-method","name":"devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L209"},"def":{"name":"devices","visibility":"Public","body":"device_registry.devices.map do |device|\n device_details(device)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L55"},"def":{"name":"on_load","visibility":"Public","body":"server = UDPSocket.new\nserver.bind(\"0.0.0.0\", 47808)\nserver.write_timeout = 200.milliseconds\n@udp_server = server\nqueue.timeout = 2.seconds\nclient = ::BACnet::Client::IPv4.new(0, 2.seconds)\nclient.on_transmit do |message, address|\n if address.address == Socket::IPAddress::BROADCAST\n if @bbmd_forwarding.size == 4\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::ForwardedNPDU\n message.data_link.address.ip1 = @bbmd_forwarding[0]\n message.data_link.address.ip2 = @bbmd_forwarding[1]\n message.data_link.address.ip3 = @bbmd_forwarding[2]\n message.data_link.address.ip4 = @bbmd_forwarding[3]\n message.data_link.address.port = 47808_u16\n end\n logger.debug do\n \"sending broadcase message #{message.inspect}\"\n end\n devices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\n devices.each do |dev|\n begin\n server.send(message, to: dev.address)\n rescue error\n logger.warn(exception: error) do\n \"error sending message to #{dev.address}\"\n end\n end\n end\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::DistributeBroadcastToNetwork\n payload = DispatchProtocol.new\n payload.message = DispatchProtocol::MessageType::WRITE\n payload.ip_address = @bbmd_ip.address\n payload.id_or_port = @bbmd_ip.port.to_u64\n payload.data = message.to_slice\n transport.send(payload.to_slice)\n else\n server.send(message, to: address)\n end\nend\n@bacnet_client = client\nregistry = ::BACnet::Client::DeviceRegistry.new(client, logger)\nregistry.on_new_device do |device|\n new_device_found(device)\nend\n@device_registry = registry\nspawn do\n process_data(server, client)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L128"},"def":{"name":"on_unload","visibility":"Public","body":"udp_server.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L132"},"def":{"name":"on_update","visibility":"Public","body":"bbmd_ip = (setting?(String, :bbmd_ip)) || \"\"\nbbmd_forwarding = (setting?(String, :bbmd_forwarding)) || \"\"\n@bbmd_forwarding = (bbmd_forwarding.strip.split(\".\")).select(&.presence).map(&.to_u8)\nif bbmd_ip.presence\n @bbmd_ip = Socket::IPAddress.new(bbmd_ip, 47808)\nend\n@verbose_debug = (setting?(Bool, :verbose_debug)) || false\nschedule.clear\nschedule.in(5.seconds) do\n query_known_devices\nend\npoll_period = (setting?(UInt32, :poll_period)) || 3\nschedule.every(poll_period.minutes) do\n logger.debug do\n \"--- Polling all known bacnet devices\"\n end\n keys = @mutex.synchronize do\n @devices.keys\n end\n keys.each do |device_id|\n poll_device(device_id)\n end\nend\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"packets_processed:UInt64-instance-method","name":"packets_processed","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L153"},"def":{"name":"packets_processed","visibility":"Public","body":"@packets_processed"}},{"html_id":"perform_discovery:Nil-instance-method","name":"perform_discovery","doc":"Performs a WhoIs discovery against the BACnet network","summary":"

Performs a WhoIs discovery against the BACnet network

","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L258"},"def":{"name":"perform_discovery","return_type":"Nil","visibility":"Public","body":"bacnet_client.who_is"}},{"html_id":"poll_device(device_id:UInt32)-instance-method","name":"poll_device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L232"},"def":{"name":"poll_device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device = get_device(device_id)\nif device\nelse\n return false\nend\nclient = bacnet_client\nobjects = @mutex.synchronize do\n device.objects.dup\nend\nobjects.each do |obj|\n if obj.object_type.in?(::BACnet::Client::DeviceRegistry::OBJECTS_WITH_VALUES)\n else\n next\n end\n name = object_binding(device_id, obj)\n queue(name: name, priority: 0, timeout: 500.milliseconds) do |task|\n spawn_action(task) do\n obj.sync_value(client)\n self[name] = object_value(obj)\n end\n end\n Fiber.yield\nend\ntrue\n"}},{"html_id":"query_known_devices-instance-method","name":"query_known_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L213"},"def":{"name":"query_known_devices","visibility":"Public","body":"sent = [] of UInt32\n@seen_devices.each_value do |info|\n sent << info.id.not_nil!\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\nend\ndevices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\ndevices.each do |info|\n if id = info.id\n if id.in?(sent)\n next\n end\n sent << id\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\n end\nend\n\"inspected #{sent.size} devices\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/ashrae/bacnet.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L406"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"protocol = (IO::Memory.new(data)).read_bytes(DispatchProtocol)\nlogger.debug do\n \"received message: #{protocol.message} #{protocol.ip_address}:#{protocol.id_or_port} (size #{protocol.data_size})\"\nend\nif protocol.message.received?\n message = (IO::Memory.new(protocol.data)).read_bytes(::BACnet::Message::IPv4)\n if @verbose_debug\n logger.debug do\n \"dispatch sent:\\n#{message.inspect}\"\n end\n end\n bacnet_client.received(message, @bbmd_ip)\n app = message.application\n is_iam = false\n is_cov = case app\n when ::BACnet::ConfirmedRequest\n app.service.cov_notification?\n when ::BACnet::UnconfirmedRequest\n is_iam = app.service.i_am?\n app.service.cov_notification?\n else\n false\n end\n network = message.network\n if network && is_cov\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n if network.source_specifier\n addr = network.source_address\n net = network.source.network\n end\n device = message.objects.find do |obj|\n obj.tag == 1\n end.not_nil!.to_object_id.instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, net, addr)\n end\n if network && is_iam\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n details = ::BACnet::Client::Message::IAm.parse(message)\n device = details[:object_id].instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, details[:network], details[:address])\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_seen_devices-instance-method","name":"save_seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L631"},"def":{"name":"save_seen_devices","visibility":"Public","body":"define_setting(:known_devices, @seen_devices.values)"}},{"html_id":"seen_devices:Hash(UInt32,Ashrae::DeviceAddress)-instance-method","name":"seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L463"},"def":{"name":"seen_devices","visibility":"Public","body":"@seen_devices"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/ashrae/bacnet.cr","line_number":601,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L601"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ndevice_id = mac.to_u32?\nif device_id\nelse\n return nil\nend\ndevice = get_device(device_id)\nif device\nelse\n return nil\nend\nobj_type_string, instance_id_string = id.split('[', 2)\ninstance_id = instance_id_string.rchop.to_u32?\nif instance_id\nelse\n return nil\nend\nobject_type = ObjectType.parse?(obj_type_string)\nif object_type\nelse\n return nil\nend\nobject = get_object_details(device_id, instance_id, object_type)\nif object.changed < 1.minutes.ago\n begin\n object.sync_value(bacnet_client)\n rescue error\n logger.warn(exception: error) do\n \"failed to obtain latest value for sensor at #{mac}.#{id}\"\n end\n end\nend\nto_sensor(device_id, device, object)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/ashrae/bacnet.cr","line_number":577,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L577"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n if mac\n device_id = mac.to_u32?\n if device_id\n else\n return NO_MATCH\n end\n device = get_device(device_id)\n if device\n else\n return NO_MATCH\n end\n return device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n matches = @mutex.synchronize do\n @devices.map do |__temp_100|\n device_id, device = __temp_100\n device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"update_value(device_id:UInt32,instance_id:UInt32,object_type:ObjectType)-instance-method","name":"update_value","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","args_html":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","location":{"filename":"src/ashrae/bacnet.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L264"},"def":{"name":"update_value","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"obj = get_object_details(device_id, instance_id, object_type)\nname = object_binding(device_id, obj)\nqueue(name: name, priority: 50) do |task|\n spawn_action(task) do\n obj.sync_value(bacnet_client)\n self[name] = object_value(obj)\n end\nend\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L29"},"def":{"name":"websocket_headers","visibility":"Public","body":"dispatcher_key = setting?(String, :dispatcher_key)\nHTTP::Headers {\"Authorization\" => \"Bearer #{dispatcher_key}\", \"X-Module-ID\" => module_id}\n"}},{"html_id":"write_binary(device_id:UInt32,instance_id:UInt32,value:Bool,object_type:ObjectType=ObjectType::BinaryValue)-instance-method","name":"write_binary","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L371"},"def":{"name":"write_binary","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"val = value ? 1 : 0\nobject = get_object_details(device_id, instance_id, object_type)\nval = ::BACnet::Object.new.set_value(val)\nval.short_tag = 9_u8\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, val, network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_double(device_id:UInt32,instance_id:UInt32,value:Float64,object_type:ObjectType=ObjectType::LargeAnalogValue)-instance-method","name":"write_double","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L299"},"def":{"name":"write_double","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_real(device_id:UInt32,instance_id:UInt32,value:Float32,object_type:ObjectType=ObjectType::AnalogValue)-instance-method","name":"write_real","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L281"},"def":{"name":"write_real","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_signed_int(device_id:UInt32,instance_id:UInt32,value:Int64,object_type:ObjectType=ObjectType::IntegerValue)-instance-method","name":"write_signed_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L335"},"def":{"name":"write_signed_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_string(device_id:UInt32,instance_id:UInt32,value:String,object_type:ObjectType=ObjectType::CharacterStringValue)-instance-method","name":"write_string","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L353"},"def":{"name":"write_string","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_unsigned_int(device_id:UInt32,instance_id:UInt32,value:UInt64,object_type:ObjectType=ObjectType::PositiveIntegerValue)-instance-method","name":"write_unsigned_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L317"},"def":{"name":"write_unsigned_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}}],"types":[{"html_id":"drivers/Ashrae/BACnet/DeviceInfo","path":"Ashrae/BACnet/DeviceInfo.html","kind":"alias","full_name":"Ashrae::BACnet::DeviceInfo","name":"DeviceInfo","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::Client::DeviceRegistry::DeviceInfo","aliased_html":"BACnet::Client::DeviceRegistry::DeviceInfo","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}},{"html_id":"drivers/Ashrae/BACnet/ObjectType","path":"Ashrae/BACnet/ObjectType.html","kind":"alias","full_name":"Ashrae::BACnet::ObjectType","name":"ObjectType","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L262"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::ObjectIdentifier::ObjectType","aliased_html":"BACnet::ObjectIdentifier::ObjectType","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}}]},{"html_id":"drivers/Ashrae/BACnetDataPoints","path":"Ashrae/BACnetDataPoints.html","kind":"class","full_name":"Ashrae::BACnetDataPoints","name":"BACnetDataPoints","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_datapoints.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_datapoints.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\npoints = setting(Hash(String, String), :points)\npoints.each do |__temp_167|\n key, status = __temp_167\n bacnet.subscribe(status) do |_sub, payload|\n self[key] = JSON.parse(payload)\n end\nend\n"}}]},{"html_id":"drivers/Ashrae/DeviceAddress","path":"Ashrae/DeviceAddress.html","kind":"class","full_name":"Ashrae::DeviceAddress","name":"DeviceAddress","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"constructors":[{"html_id":"new(ip:String,id:UInt32|Nil,net:UInt16|Nil,addr:Nil|String)-class-method","name":"new","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"args_string":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","args_html":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L8"},"def":{"name":"new","args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ip, id, net, addr)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"addr:String|Nil-instance-method","name":"addr","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L14"},"def":{"name":"addr","return_type":"String | ::Nil","visibility":"Public","body":"@addr"}},{"html_id":"address-instance-method","name":"address","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L16"},"def":{"name":"address","visibility":"Public","body":"Socket::IPAddress.new(@ip, 47808)"}},{"html_id":"id:UInt32|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L12"},"def":{"name":"id","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"identifier-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L20"},"def":{"name":"identifier","visibility":"Public","body":"::BACnet::ObjectIdentifier.new(:device, @id.not_nil!)"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L11"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"net:UInt16|Nil-instance-method","name":"net","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L13"},"def":{"name":"net","return_type":"UInt16 | ::Nil","visibility":"Public","body":"@net"}}]},{"html_id":"drivers/Ashrae/DispatchProtocol","path":"Ashrae/DispatchProtocol.html","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Ashrae::DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend}, {type: \"bytes\", name: data, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L26"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}}],"types":[{"html_id":"drivers/Ashrae/DispatchProtocol/MessageType","path":"Ashrae/DispatchProtocol/MessageType.html","kind":"enum","full_name":"Ashrae::DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L28"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0"},{"id":"CLOSED","name":"CLOSED","value":"1"},{"id":"RECEIVED","name":"RECEIVED","value":"2"},{"id":"WRITE","name":"WRITE","value":"3"},{"id":"CLOSE","name":"CLOSE","value":"4"}],"namespace":{"html_id":"drivers/Ashrae/DispatchProtocol","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L33"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L30"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L29"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L31"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L32"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]}]},{"html_id":"drivers/Aver","path":"Aver.html","kind":"module","full_name":"Aver","name":"Aver","abstract":false,"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Aver/Auth","path":"Aver/Auth.html","kind":"struct","full_name":"Aver::Auth","name":"Auth","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L14"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Aver/AxisSelect","path":"Aver/AxisSelect.html","kind":"enum","full_name":"Aver::AxisSelect","name":"AxisSelect","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pan","name":"Pan","value":"0"},{"id":"Tilt","name":"Tilt","value":"1"},{"id":"Zoom","name":"Zoom","value":"2"},{"id":"Focus","name":"Focus","value":"3"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L8"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L5"},"def":{"name":"pan?","visibility":"Public","body":"self == Pan"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L6"},"def":{"name":"tilt?","visibility":"Public","body":"self == Tilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L7"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Aver/Cam520Pro","path":"Aver/Cam520Pro.html","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"send(\"token:#{authenticate}\")\nschedule.clear\nschedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.minutes) do\n keep_alive\nend\npan?\ntilt?\nzoom?\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L67"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L129"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\nif pan_speed.abs >= tilt_speed.abs\n axis = AxisSelect::Pan\n stop = AxisSelect::Tilt\n dir = pan_speed >= 0.0 ? 0 : 1\n cmd = pan_speed.zero? ? 2 : 1\nelse\n stop = AxisSelect::Pan\n axis = AxisSelect::Tilt\n dir = tilt_speed >= 0.0 ? 0 : 1\n cmd = tilt_speed.zero? ? 2 : 1\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: stop.to_i, dir: dir, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: axis.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"keep_alive-instance-method","name":"keep_alive","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L95"},"def":{"name":"keep_alive","visibility":"Public","body":"send(\"alive\")"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L292"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L30"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.before_request do |request|\n logger.debug do\n \"performing request: #{request.method} #{request.path}\\n#{String.new((request.body.as(IO::Memory)).to_slice)}\"\n end\n if request.path != \"/login_name\"\n bearer = bearer_token.presence || authenticate\n request.headers[\"Authorization\"] = \"Bearer #{bearer}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\nif @username != \"spec\"\n device_host = URI.parse(config.uri.not_nil!)\n device_host.port = nil\n transport.http_uri_override = device_host\nend\n@zoom_max = setting(Int32, :zoom_max)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L219"},"def":{"name":"pan?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_p_s\"}.to_json)\n@pan_pos = parse(response, Int32)\n"}},{"html_id":"pan_direct(position:Int32)-instance-method","name":"pan_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L199"},"def":{"name":"pan_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_p\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"pan_pos:Int32-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L99"},"def":{"name":"pan_pos","return_type":"Int32","visibility":"Public","body":"@pan_pos"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy interface as no power command, camera is always on","summary":"

dummy interface as no power command, camera is always on

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/aver/cam520_pro.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L350"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L170"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n zoom_native(zoom_pos)\n pan_direct(pan_pos)\n tilt_direct(tilt_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task):Nil-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task) : Nil","args_html":"(data, task) : Nil","location":{"filename":"src/aver/cam520_pro.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"return_type":"Nil","visibility":"Public","body":"begin\n data = String.new(data)\n logger.debug do\n \"Camera sent: #{data}\"\n end\n payload = (Event.from_json(data)).data\n case payload\n in Option\n value = payload.value.to_i\n case payload.option\n in .ptz_ps?\n @pan_pos = value\n in .ptz_ts?\n @tilt_pos = value\n in .ptz_zs?\n @zoom_pos = value\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n end\n in Event\n raise(\"not possible\")\n end\nensure\n task.try(&.success)\nend"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L189"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L181"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan?\ntilt?\nzoom?\n@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/aver/cam520_pro.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L313"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"spawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Tilt.to_i, dir: 0, cmd: 2}.to_json)\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Pan.to_i, dir: 0, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: 0, cmd: 2}.to_json)\nparse(response, Nil)\n"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L228"},"def":{"name":"tilt?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_t_s\"}.to_json)\n@tilt_pos = parse(response, Int32)\n"}},{"html_id":"tilt_direct(position:Int32)-instance-method","name":"tilt_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L209"},"def":{"name":"tilt_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_t\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"tilt_pos:Int32-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L100"},"def":{"name":"tilt_pos","return_type":"Int32","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L246"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .stop?\n dir = 0\n cmd = 2\nin .out?\n dir = 1\n cmd = 1\nin .in?\n dir = 0\n cmd = 1\nend\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L279"},"def":{"name":"zoom?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_z_s\"}.to_json)\n@zoom_pos = value = parse(response, Int32)\nself[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n"}},{"html_id":"zoom_native(position:Int32)-instance-method","name":"zoom_native","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L269"},"def":{"name":"zoom_native","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_z\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"zoom_pos:Int32-instance-method","name":"zoom_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L101"},"def":{"name":"zoom_pos","return_type":"Int32","visibility":"Public","body":"@zoom_pos"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L240"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_native((percentage * @zoom_max.to_f).to_i)\n"}}],"macros":[{"html_id":"parse(response,klass=::Union(Nil,::Nil))-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"args_string":"(response, klass = ::Union(Nil, ::Nil))","args_html":"(response, klass = ::Union(Nil, ::Nil))","location":{"filename":"src/aver/cam520_pro.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L79"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"visibility":"Public","body":" check_success(\n{{ response }}\n)\n HttpResponse(\n{{ klass }}\n).from_json(\n{{ response }}\n.body.not_nil!).data\n \n"}}],"types":[{"html_id":"drivers/Aver/Cam520Pro/Presets","path":"Aver/Cam520Pro/Presets.html","kind":"alias","full_name":"Aver::Cam520Pro::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L167"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int32, Int32, Int32))","aliased_html":"Hash(String, {Int32, Int32, Int32})","const":false,"namespace":{"html_id":"drivers/Aver/Cam520Pro","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro"}}]},{"html_id":"drivers/Aver/Event","path":"Aver/Event.html","kind":"struct","full_name":"Aver::Event","name":"Event","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Aver/EventOption","kind":"struct","full_name":"Aver::EventOption","name":"EventOption"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"event\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'event' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'event'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"option\"\n EventOption.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'event' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L28"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]},{"html_id":"drivers/Aver/EventOption","path":"Aver/EventOption.html","kind":"struct","full_name":"Aver::EventOption","name":"EventOption","abstract":false,"superclass":{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Option-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L51"},"def":{"name":"data","return_type":"Option","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Aver/HttpResponse","path":"Aver/HttpResponse.html","kind":"struct","full_name":"Aver::HttpResponse(Data)","name":"HttpResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L20"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L22"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"msg:String-instance-method","name":"msg","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L21"},"def":{"name":"msg","return_type":"String","visibility":"Public","body":"@msg"}}]},{"html_id":"drivers/Aver/Option","path":"Aver/Option.html","kind":"struct","full_name":"Aver::Option","name":"Option","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"option:OptionType-instance-method","name":"option","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L44"},"def":{"name":"option","return_type":"OptionType","visibility":"Public","body":"@option"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L45"},"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Aver/OptionType","path":"Aver/OptionType.html","kind":"enum","full_name":"Aver::OptionType","name":"OptionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PtzPS","name":"PtzPS","value":"0"},{"id":"PtzTS","name":"PtzTS","value":"1"},{"id":"PtzZS","name":"PtzZS","value":"2"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"ptz_ps?-instance-method","name":"ptz_ps?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L36"},"def":{"name":"ptz_ps?","visibility":"Public","body":"self == PtzPS"}},{"html_id":"ptz_ts?-instance-method","name":"ptz_ts?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L37"},"def":{"name":"ptz_ts?","visibility":"Public","body":"self == PtzTS"}},{"html_id":"ptz_zs?-instance-method","name":"ptz_zs?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L38"},"def":{"name":"ptz_zs?","visibility":"Public","body":"self == PtzZS"}}]}]},{"html_id":"drivers/AWS","path":"AWS.html","kind":"module","full_name":"AWS","name":"AWS","abstract":false,"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AWS/SnsSms","path":"AWS/SnsSms.html","kind":"class","full_name":"AWS::SnsSms","name":"SnsSms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/AWS","kind":"module","full_name":"AWS","name":"AWS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"access_key = setting(String, :aws_access_key)\nsecret = setting(String, :aws_secret)\nuri_parts = (URI.parse(config.uri.not_nil!)).host.not_nil!.split('.')\nservice = uri_parts[0]\nregion = uri_parts[1]\n@signer = Awscr::Signer::Signers::V4.new(service, region, access_key, secret)\ntransport.before_request do |request|\n signer.sign(request)\nend\n"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/aws/sns_sms.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L36"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponses = phone_numbers.map do |number|\n params = URI::Params.build do |form|\n form.add(\"Action\", \"Publish\")\n form.add(\"PhoneNumber\", number)\n form.add(\"Message\", message)\n if source\n if source =~ (/^\\+?\\d{5,14}$/)\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.MM.SMS.OriginationNumber\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source)\n else\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.SNS.SMS.SenderID\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source.gsub(' ', '-'))\n end\n end\n end\n post(\"/?#{params}\", headers: HTTP::Headers {\"Accept\" => \"application/json\"})\nend\nresponses.each do |response|\n if response.success?\n else\n raise(\"request failed with #{response.status_code}: #{response.body}\")\n end\nend\nnil\n"}},{"html_id":"signer:Awscr::Signer::Signers::V4-instance-method","name":"signer","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L21"},"def":{"name":"signer","return_type":"Awscr::Signer::Signers::V4","visibility":"Public","body":"if (__temp_1 = @signer).nil?\n ::raise(::NilAssertionError.new(\"AWS::SnsSms#signer cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"signer?:Awscr::Signer::Signers::V4|Nil-instance-method","name":"signer?","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L21"},"def":{"name":"signer?","return_type":"Awscr::Signer::Signers::V4 | ::Nil","visibility":"Public","body":"@signer"}}]}]},{"html_id":"drivers/Biamp","path":"Biamp.html","kind":"module","full_name":"Biamp","name":"Biamp","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L3"},{"filename":"src/biamp/tesira.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Biamp/Nexia","path":"Biamp/Nexia.html","kind":"class","full_name":"Biamp::Nexia","name":"Nexia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/nexia.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L19"},"def":{"name":"connected","visibility":"Public","body":"send(Bytes[255, 254, 1], wait: false)\nschedule.every(60.seconds, true) do\n query_device_id\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(id:Int32,level:Float64|Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L78"},"def":{"name":"fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = get_range(type)\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = level_actual + range.begin.to_f\nsend(Command[:SETD, device_id, type.mapped_value, id, index, level_actual], name: \"fader_#{id}\")\n"}},{"html_id":"mixer(id:Int32,inouts:Hash(Int32,Array(Int32))|Array(Int32),mute:Bool=false,type:Mixer=Mixer::Matrix)-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"args_string":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","args_html":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","location":{"filename":"src/biamp/nexia.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L44"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"visibility":"Public","body":"value = mute ? 0 : 1\nif inouts.is_a?(Hash)\n inouts.each do |input, outputs|\n outputs.each do |output|\n send(Command[:SET, device_id, type.mapped_value, id, input, output, value])\n end\n end\nelse\n inouts.each do |input|\n send(Command[:SET, device_id, Mixer::Auto.mapped_value, id, input, value])\n end\nend\n"}},{"html_id":"mute(id:Int32,state:Bool=true,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L106"},"def":{"name":"mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"value = state ? 1 : 0\nsend(Command[:SETD, device_id, type.mapped_value, id, index, value], name: \"mute_#{id}\")\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 30.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\", \"\\xFF\\xFE\\u0001\")\n"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/biamp/nexia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L34"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"send(Command[:RECALL, 0, \"PRESET\", number], name: \"preset_#{number}\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L30"},"def":{"name":"query_device_id","visibility":"Public","body":"send(Command[:GETD, 0, \"DEVID\"])"}},{"html_id":"query_fader(id:Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"query_fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L90"},"def":{"name":"query_fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"query_mute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L115"},"def":{"name":"query_mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/nexia.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L119"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"case response = Response.parse(data)\nin Response::FullPath\n logger.debug do\n \"Device responded #{response.message}\"\n end\n result = process_full_path_response(response)\n task.try(&.success(result))\nin Response::OK\n logger.info do\n \"OK\"\n end\n task.try(&.success)\nin Response::Error\n logger.warn do\n \"Device error: #{data}\"\n end\n task.try(&.abort(response.message))\nin Response::Invalid\n logger.error do\n \"Invalid response structure\"\n end\n task.try(&.abort(response.data))\nend"}},{"html_id":"unmute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"unmute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L111"},"def":{"name":"unmute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"mute(id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Nexia/Faders","path":"Biamp/Nexia/Faders.html","kind":"enum","full_name":"Biamp::Nexia::Faders","name":"Faders","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"MatrixCrosspoint","name":"MatrixCrosspoint","value":"3"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"4"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"5"},{"id":"AutoIn","name":"AutoIn","value":"6"},{"id":"AutoOut","name":"AutoOut","value":"7"},{"id":"IoIn","name":"IoIn","value":"8"},{"id":"IoOut","name":"IoOut","value":"9"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_crosspoint?-instance-method","name":"matrix_crosspoint?","abstract":false,"def":{"name":"matrix_crosspoint?","visibility":"Public","body":"self == MatrixCrosspoint"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mixer","path":"Biamp/Nexia/Mixer.html","kind":"enum","full_name":"Biamp::Nexia::Mixer","name":"Mixer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Matrix","name":"Matrix","value":"0"},{"id":"Standard","name":"Standard","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mutes","path":"Biamp/Nexia/Mutes.html","kind":"enum","full_name":"Biamp::Nexia::Mutes","name":"Mutes","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"AutoIn","name":"AutoIn","value":"3"},{"id":"AutoOut","name":"AutoOut","value":"4"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"5"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"6"},{"id":"IoIn","name":"IoIn","value":"7"},{"id":"IoOut","name":"IoOut","value":"8"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]}]},{"html_id":"drivers/Biamp/NTP","path":"Biamp/NTP.html","kind":"module","full_name":"Biamp::NTP","name":"NTP","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"doc":"Biamp ATP/NTP protocol utilities.\nhttps://support.biamp.com/Audia-Nexia/Control/Audia-Nexia_Text_Protocol","summary":"

Biamp ATP/NTP protocol utilities.

","types":[{"html_id":"drivers/Biamp/NTP/Command","path":"Biamp/NTP/Command.html","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"constructors":[{"html_id":"new(type:Type,device:Int32,attribute:String,instance:Int32|Nil=nil,index_1:Int32|Nil=nil,index_2:Int32|Nil=nil,value:String|Int32|Float64|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"args_string":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","args_html":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, device, attribute, instance, index_1, index_2, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @device.clone, @attribute.clone, @instance.clone, @index_1.clone, @index_2.clone, @value.clone)"}},{"html_id":"copy_with(type_type=@type,device_device=@device,attribute_attribute=@attribute,instance_instance=@instance,index_1_index_1=@index_1,index_2_index_2=@index_2,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","args_html":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _device, _attribute, _instance, _index_1, _index_2, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"index_1:Int32|Nil-instance-method","name":"index_1","abstract":false,"def":{"name":"index_1","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_1"}},{"html_id":"index_2:Int32|Nil-instance-method","name":"index_2","abstract":false,"def":{"name":"index_2","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_2"}},{"html_id":"instance:Int32|Nil-instance-method","name":"instance","abstract":false,"def":{"name":"instance","return_type":"Int32 | ::Nil","visibility":"Public","body":"@instance"}},{"html_id":"to_io(io:IO,format=nil)-instance-method","name":"to_io","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"args_string":"(io : IO, format = nil)","args_html":"(io : IO, format = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L33"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"visibility":"Public","body":"io << type\n{device, attribute, instance, index_1, index_2, value}.each do |field|\n if field.nil?\n next\n end\n (io << ' ') << field\nend\nio << '\\n'\n"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"value:String|Int32|Float64|Nil-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String | Int32 | Float64 | Nil","visibility":"Public","body":"@value"}}],"macros":[{"html_id":"[](type,*params)-macro","name":"[]","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"args_string":"(type, *params)","args_html":"(type, *params)","location":{"filename":"src/biamp/ntp.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L12"},"def":{"name":"[]","args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"splat_index":1,"visibility":"Public","body":" \n{% if (type == (:GET)) || (type == (:GETD)) %}\n {{ @type.name }}.new({{ type }}, {{ params.splat }})\n {% else %}\n {{ @type.name }}.new({{ type }}, {{ params[0...-1].splat }}, value: {{ params[-1] }})\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Biamp/NTP/Command/Type","path":"Biamp/NTP/Command/Type.html","kind":"enum","full_name":"Biamp::NTP::Command::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L18"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SET","name":"SET","value":"0"},{"id":"SETD","name":"SETD","value":"1"},{"id":"GET","name":"GET","value":"2"},{"id":"GETD","name":"GETD","value":"3"},{"id":"INC","name":"INC","value":"4"},{"id":"INCD","name":"INCD","value":"5"},{"id":"DEC","name":"DEC","value":"6"},{"id":"DECD","name":"DECD","value":"7"},{"id":"RECALL","name":"RECALL","value":"8"},{"id":"DIAL","name":"DIAL","value":"9"}],"namespace":{"html_id":"drivers/Biamp/NTP/Command","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command"},"instance_methods":[{"html_id":"dec?-instance-method","name":"dec?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L27"},"def":{"name":"dec?","visibility":"Public","body":"self == DEC"}},{"html_id":"decd?-instance-method","name":"decd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L28"},"def":{"name":"decd?","visibility":"Public","body":"self == DECD"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L30"},"def":{"name":"dial?","visibility":"Public","body":"self == DIAL"}},{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L23"},"def":{"name":"get?","visibility":"Public","body":"self == GET"}},{"html_id":"getd?-instance-method","name":"getd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L24"},"def":{"name":"getd?","visibility":"Public","body":"self == GETD"}},{"html_id":"inc?-instance-method","name":"inc?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L25"},"def":{"name":"inc?","visibility":"Public","body":"self == INC"}},{"html_id":"incd?-instance-method","name":"incd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L26"},"def":{"name":"incd?","visibility":"Public","body":"self == INCD"}},{"html_id":"recall?-instance-method","name":"recall?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L29"},"def":{"name":"recall?","visibility":"Public","body":"self == RECALL"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L21"},"def":{"name":"set?","visibility":"Public","body":"self == SET"}},{"html_id":"setd?-instance-method","name":"setd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L22"},"def":{"name":"setd?","visibility":"Public","body":"self == SETD"}}]}]},{"html_id":"drivers/Biamp/NTP/Response","path":"Biamp/NTP/Response.html","kind":"module","full_name":"Biamp::NTP::Response","name":"Response","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"class_methods":[{"html_id":"parse(data:Bytes)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L55"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"case data[0]\nwhen '#'\n response = String.new(data)\n if response.includes?(\" -ERR\")\n Error.new(response)\n else\n fields = response[1..].split\n type = Command::Type.parse(fields[0])\n device = fields[1].to_i\n attribute = fields[2]\n params = fields[3..]\n value = type.getd? ? fields[-1] : fields[-2]\n FullPath.new(response, type, device, attribute, params, value)\n end\nwhen '+'\n OK.new\nwhen '-'\n Error.new(String.new(data))\nelse\n Invalid.new(data)\nend"}}],"types":[{"html_id":"drivers/Biamp/NTP/Response/Error","path":"Biamp/NTP/Response/Error.html","kind":"struct","full_name":"Biamp::NTP::Response::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"}],"args_string":"(message : String)","args_html":"(message : String)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone)"}},{"html_id":"copy_with(message_message=@message)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"args_string":"(message _message = @message)","args_html":"(message _message = @message)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"visibility":"Public","body":"self.class.new(_message)"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Biamp/NTP/Response/FullPath","path":"Biamp/NTP/Response/FullPath.html","kind":"struct","full_name":"Biamp::NTP::Response::FullPath","name":"FullPath","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String,type:Command::Type,device:Int32,attribute:String,params:Array(String),value:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","args_html":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message, type, device, attribute, params, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone, @type.clone, @device.clone, @attribute.clone, @params.clone, @value.clone)"}},{"html_id":"copy_with(message_message=@message,type_type=@type,device_device=@device,attribute_attribute=@attribute,params_params=@params,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","args_html":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_message, _type, _device, _attribute, _params, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"params:Array(String)-instance-method","name":"params","abstract":false,"def":{"name":"params","return_type":"Array(String)","visibility":"Public","body":"@params"}},{"html_id":"type:Command::Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Command::Type","visibility":"Public","body":"@type"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Biamp/NTP/Response/Invalid","path":"Biamp/NTP/Response/Invalid.html","kind":"struct","full_name":"Biamp::NTP::Response::Invalid","name":"Invalid","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(data:Bytes)-class-method","name":"new","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"new","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"_ = allocate\n_.initialize(data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@data.clone)"}},{"html_id":"copy_with(data_data=@data)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"args_string":"(data _data = @data)","args_html":"(data _data = @data)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"copy_with","args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"visibility":"Public","body":"self.class.new(_data)"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Biamp/NTP/Response/OK","path":"Biamp/NTP/Response/OK.html","kind":"struct","full_name":"Biamp::NTP::Response::OK","name":"OK","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"clone","visibility":"Public","body":"self.class.new()"}},{"html_id":"copy_with-instance-method","name":"copy_with","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"copy_with","visibility":"Public","body":"self.class.new()"}}]}]}]},{"html_id":"drivers/Biamp/Tesira","path":"Biamp/Tesira.html","kind":"class","full_name":"Biamp::Tesira","name":"Tesira","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/tesira.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"FADERS","name":"FADERS","value":"{\"fader\" => \"level\", \"matrix_in\" => \"inputLevel\", \"matrix_out\" => \"outputLevel\", \"matrix_crosspoint\" => \"crosspointLevel\", \"level\" => \"fader\", \"inputLevel\" => \"matrix_in\", \"outputLevel\" => \"matrix_out\", \"crosspointLevel\" => \"matrix_crosspoint\"}"},{"id":"MIXERS","name":"MIXERS","value":"{\"matrix\" => \"crosspointLevelState\", \"mixer\" => \"crosspoint\"}"},{"id":"MUTES","name":"MUTES","value":"{\"fader\" => \"mute\", \"matrix_in\" => \"inputMute\", \"matrix_out\" => \"outputMute\", \"mute\" => \"fader\", \"inputMute\" => \"matrix_in\", \"outputMute\" => \"matrix_out\"}"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"@telnet = telnet = Telnet.new do |telnet_response|\n transport.send(telnet_response)\nend\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\nif setting(Bool, :no_password)\n do_send((setting(String, :username)) || \"admin\", wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\nend\ndo_send(\"SESSION set verbose false\", priority: 96)\nschedule.clear\nschedule.every(60.seconds) do\n do_send(\"DEVICE get serialNumber\", priority: 95)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"transport.tokenizer = nil\nschedule.clear\n"}},{"html_id":"fader(fader_id:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L103"},"def":{"name":"fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader_type = FADERS[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, fader_type, i, level), priority: 30, name: \"fade_#{fad}_#{i}\")\n self[\"#{fader_type}_#{fad}_#{i}\"] = level\n end\nend\n"}},{"html_id":"faders(ids:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L118"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader(ids, level, index, type)"}},{"html_id":"get_aliases-instance-method","name":"get_aliases","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L66"},"def":{"name":"get_aliases","visibility":"Public","body":"do_send(\"SESSION get aliases\")"}},{"html_id":"mixer(id:String,inouts:Hash(Int32,Int32|Array(Int32))|Array(Int32),mute:Bool=false,type:String=\"matrix\")-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"args_string":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = \"matrix\")","args_html":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = "matrix")","location":{"filename":"src/biamp/tesira.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L75"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mixer_type = MIXERS[type] || type\nif inouts.is_a?(Hash)\n inouts.each do |input, outs|\n outputs = ensure_array(outs)\n outputs.each do |output|\n do_send(build(id, :set, mixer_type, input, output, mute), priority: 30, name: \"mixmute_#{input}_#{output}\")\n end\n end\nelse\n inouts.each do |input|\n do_send(build(id, :set, mixer_type, input, mute), priority: 30, name: \"mixmute_#{input}\")\n end\nend\n"}},{"html_id":"mute(fader_id:Ids,value:Bool=true,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L131"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, mute_type, i, value), priority: 30, name: \"mute_#{fad}_#{i}\")\n self[\"#{mute_type}_#{fad}_#{i}_mute\"] = value\n end\nend\n"}},{"html_id":"mutes(ids:Ids,muted:Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L145"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(ids, muted, index, type)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L21"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 30.milliseconds\n"}},{"html_id":"preset(number_or_name:String|Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"args_string":"(number_or_name : String | Int32)","args_html":"(number_or_name : String | Int32)","location":{"filename":"src/biamp/tesira.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L50"},"def":{"name":"preset","args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"visibility":"Public","body":"if number_or_name.is_a?(Int32)\n do_send(\"DEVICE recallPreset #{number_or_name}\", priority: 30, name: \"preset_#{number_or_name}\")\nelse\n do_send(build(:DEVICE, :recallPresetByName, number_or_name), priority: 30, name: \"preset_#{number_or_name}\")\nend"}},{"html_id":"query_fader(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L153"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fad_type = FADERS[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, fad_type, index))\n"}},{"html_id":"query_faders(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L162"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(ids, index, type)"}},{"html_id":"query_mute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L166"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, mute_type, index))\n"}},{"html_id":"query_mutes(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L175"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_mute(ids, index, type)"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L62"},"def":{"name":"reboot","visibility":"Public","body":"do_send(\"DEVICE reboot\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/tesira.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L179"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Tesira responded -> data: #{data}\"\nend\nresult = data.split(\" \")\nif result[0] == \"-\"\n task.try(&.abort)\nend\nif data =~ (/login:|server/i)\n transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nend\ntask.try(&.success)\n"}},{"html_id":"start_audio-instance-method","name":"start_audio","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L58"},"def":{"name":"start_audio","visibility":"Public","body":"do_send(\"DEVICE startAudio\")"}},{"html_id":"unmute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L149"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(fader_id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Tesira/Ids","path":"Biamp/Tesira/Ids.html","kind":"alias","full_name":"Biamp::Tesira::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}},{"html_id":"drivers/Biamp/Tesira/Num","path":"Biamp/Tesira/Num.html","kind":"alias","full_name":"Biamp::Tesira::Num","name":"Num","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}}]}]},{"html_id":"drivers/Bose","path":"Bose.html","kind":"module","full_name":"Bose","name":"Bose","abstract":false,"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Bose/ControlSpaceSerial","path":"Bose/ControlSpaceSerial.html","kind":"class","full_name":"Bose::ControlSpaceSerial","name":"ControlSpaceSerial","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Bose","kind":"module","full_name":"Bose","name":"Bose"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.debug do\n \"-- maintaining connection\"\n end\n do_send(\"GS\", priority: 99)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_parameter_group-instance-method","name":"get_parameter_group","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L41"},"def":{"name":"get_parameter_group","visibility":"Public","body":"do_send(\"GS\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[13])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/bose/control_space_serial.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L45"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).rchop\nlogger.debug do\n \"ControlSpace sent: #{data}\"\nend\nparts = data.split(\" \")\ncase parts[0]\nwhen \"S\"\n self[:parameter_group] = parts[1].to_i(16)\nend\ntask.try(&.success)\n"}},{"html_id":"set_parameter_group(id:UInt8)-instance-method","name":"set_parameter_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"args_string":"(id : UInt8)","args_html":"(id : UInt8)","location":{"filename":"src/bose/control_space_serial.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L36"},"def":{"name":"set_parameter_group","args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"visibility":"Public","body":"(do_send(\"SS #{(id.to_s(16)).upcase}\", wait: false, name: \"set_pgroup\")).get\nself[:parameter_group] = id\n"}}]}]},{"html_id":"drivers/Cisco","path":"Cisco.html","kind":"module","full_name":"Cisco","name":"Cisco","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L4"},{"filename":"src/cisco/webex/api/messages.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L1"},{"filename":"src/cisco/webex/api/people.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L1"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L1"},{"filename":"src/cisco/webex/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L1"},{"filename":"src/cisco/webex/command.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L1"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L1"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L1"},{"filename":"src/cisco/webex/constants.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L1"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L1"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L1"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L1"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L1"},{"filename":"src/cisco/webex/models/device.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L1"},{"filename":"src/cisco/webex/models/event.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L1"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L1"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L1"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L1"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L1"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L1"},{"filename":"src/cisco/webex/models/message.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L1"},{"filename":"src/cisco/webex/models/peek.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L1"},{"filename":"src/cisco/webex/models/person.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L1"},{"filename":"src/cisco/webex/models/room.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L1"},{"filename":"src/cisco/webex/session.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L1"},{"filename":"src/cisco/webex/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L1"},{"filename":"src/cisco/webex/utils.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint","path":"Cisco/CollaborationEndpoint.html","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"instance_methods":[{"html_id":"bind_feedback(path:String,status_key:String)-instance-method","name":"bind_feedback","doc":"Bind arbitary device feedback to a status variable.","summary":"

Bind arbitary device feedback to a status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L425"},"def":{"name":"bind_feedback","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"register_feedback(path) do |value_path, value|\n if value_path == path\n self[status_key] = value\n else\n key_path = value_path.sub(path, \"\")\n hash = @status_keys[status_key]\n hash[key_path] = value\n self[status_key] = hash\n end\nend"}},{"html_id":"bind_status(path:String,status_key:String)-instance-method","name":"bind_status","doc":"Bind device status to a module status variable.","summary":"

Bind device status to a module status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L439"},"def":{"name":"bind_status","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"bind_path = \"Status/#{path.tr(\" \", \"/\")}\"\nbind_feedback(\"/#{bind_path}\", status_key)\npayload = xstatus(path)\nif (payload.size == 1) && (payload.has_key?(bind_path))\n self[status_key] = payload[bind_path]\nelse\n self[status_key] = @status_keys[status_key] = payload.transform_keys do |key|\n key.sub(path, \"\")\n end\nend\npayload\n"}},{"html_id":"clear_event(path:String)-instance-method","name":"clear_event","doc":"Clear external event subscribtions for a specific device path.","summary":"

Clear external event subscribtions for a specific device path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L481"},"def":{"name":"clear_event","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Clearing event subscription for #{path}\"\nend\nunregister_feedback(path)\n"}},{"html_id":"clear_feedback_subscriptions(connected:Bool=true)-instance-method","name":"clear_feedback_subscriptions","abstract":false,"args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool = true)","args_html":"(connected : Bool = true)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L409"},"def":{"name":"clear_feedback_subscriptions","args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"Unsubscribing all feedback\"\nend\n@status_keys.clear\nfeedback.clear\n@feedback_paths.clear\nif connected\n do_send(XAPI.xfeedback(:deregister_all))\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"reset_connection_flags\nschedule.every(2.minutes) do\n ensure_feedback_registered\nend\nschedule.every(30.seconds) do\n if @last_received > 40.seconds.ago.to_unix\n heartbeat(timeout: 35)\n else\n disconnect\n end\nend\nschedule.in(10.seconds) do\n if @ready || @init_called\n else\n init_connection\n end\n schedule.in(15.seconds) do\n if !@ready || self[\"configuration\"]?.nil?\n disconnect\n end\n end\nend\nbegin\n transport.send(\"xPreferences OutputMode JSON\\n\")\nrescue\nend\nqueue.clear(abort_current: true)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L95"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nreset_connection_flags\nclear_feedback_subscriptions(false)\nqueue.clear(abort_current: true)\nself[:ready] = false\n"}},{"html_id":"ensure_feedback_registered-instance-method","name":"ensure_feedback_registered","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L107"},"def":{"name":"ensure_feedback_registered","visibility":"Public","body":"send(\"xPreferences OutputMode JSON\\n\", priority: 0, wait: false, name: \"output_json\")\nresults = @feedback_paths.map do |path|\n request = XAPI.xfeedback(:register, path)\n do_send(request, priority: 0, name: path)\nend\nspawn do\n success = 0\n results.each do |task|\n begin\n if task.get.state.success?\n success = success + 1\n end\n rescue\n end\n end\n logger.debug do\n \"FEEDBACK REGISTERED #{success}\"\n end\n if success > 0\n else\n disconnect\n end\nend\n@feedback_paths.size\n"}},{"html_id":"feedback_paths:Array(String)-instance-method","name":"feedback_paths","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L34"},"def":{"name":"feedback_paths","return_type":"Array(String)","visibility":"Public","body":"@feedback_paths"}},{"html_id":"generate_request_uuid-instance-method","name":"generate_request_uuid","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L103"},"def":{"name":"generate_request_uuid","visibility":"Public","body":"UUID.random.to_s"}},{"html_id":"on_event(path:String,mod_id:String,channel:String)-instance-method","name":"on_event","doc":"Subscribe another module to async device events.\nCallback methods must be of arity 1 and public.","summary":"

Subscribe another module to async device events.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"args_string":"(path : String, mod_id : String, channel : String)","args_html":"(path : String, mod_id : String, channel : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L471"},"def":{"name":"on_event","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Registering callback for #{path} to #{mod_id}/#{channel}\"\nend\nregister_feedback(path) do |event_path, value|\n event_json = {event_path => value}.to_json\n logger.debug do\n \"Publishing #{path} event to #{mod_id}/#{channel} with payload #{event_json}\"\n end\n publish(\"#{mod_id}/#{channel}\", event_json)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 80.milliseconds\nqueue.timeout = 3.seconds\n@peripheral_id = setting?(String, :peripheral_id)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L51"},"def":{"name":"on_update","visibility":"Public","body":"if @ignore_update\n @ignore_update = false\n return\nend\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\ndisconnect\n"}},{"html_id":"peripheral_id:String-instance-method","name":"peripheral_id","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L20"},"def":{"name":"peripheral_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @peripheral_id).nil?\n @peripheral_id = (begin\n uuid = generate_request_uuid\n @ignore_update = true\n define_setting(:peripheral_id, uuid)\n uuid\n end)\nelse\n __temp_1\nend"}},{"html_id":"push_config-instance-method","name":"push_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L455"},"def":{"name":"push_config","visibility":"Public","body":"if config = setting?(Config, :configuration)\n xconfigurations(config)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L332"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n @last_received = Time.utc.to_unix\n payload = String.new(data)\n logger.debug do\n \"<- #{payload}\"\n end\n if transport.tokenizer.nil? && (payload =~ XAPI::LOGIN_COMPLETE)\n queue.clear(abort_current: true)\n sleep(500.milliseconds)\n transport.send(\"xPreferences OutputMode JSON\\n\")\n logger.info do\n \"initializing connection\"\n end\n spawn do\n init_connection\n end\n return\n end\n response = XAPI.parse(payload)\n if task.nil?\n return feedback.notify(response)\n end\n if task.xapi_request_id == response[\"ResultId\"]?\n command_result = task.xapi_callback.try(&.call(response))\n if command_result.nil?\n feedback.notify(response)\n end\n command_result == (:abort) ? task.abort : task.success(command_result)\n else\n feedback.notify(response)\n end\nrescue error : JSON::ParseException\n payload = (String.new(data)).strip\n case payload\n when \"OK\"\n task.try(&.success(payload))\n when \"Command not recognized.\"\n logger.error do\n \"Command not recognized: `#{task.try(&.request_payload)}`\"\n end\n task.try(&.abort(payload))\n else\n logger.debug do\n \"Malformed device response: #{error}\\n#{payload}\"\n end\n task.try(&.abort(\"Malformed device response: #{error}\"))\n end\nend"}},{"html_id":"register_feedback(path:String,&update_handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"register_feedback","doc":"Subscribe to feedback from the device.","summary":"

Subscribe to feedback from the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L376"},"def":{"name":"register_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"update_handler","external_name":"update_handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"if !@ready\n if feedback.contains?(path)\n else\n @feedback_paths << path\n @feedback_paths.uniq!\n feedback.insert(path, &update_handler)\n end\n return true\nend\nlogger.debug do\n \"Subscribing to device feedback for #{path}\"\nend\nif feedback.contains?(path)\nelse\n @feedback_paths << path\n @feedback_paths.uniq!\n request = XAPI.xfeedback(:register, path)\n result = do_send(request, name: path)\nend\nfeedback.insert(path, &update_handler)\nresult.try(&.get) || true\n"}},{"html_id":"sync_config-instance-method","name":"sync_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L461"},"def":{"name":"sync_config","visibility":"Public","body":"bind_feedback(\"/Configuration\", \"configuration\")\nsend(\"xConfiguration *\\n\", wait: false)\n"}},{"html_id":"unregister_feedback(path:String)-instance-method","name":"unregister_feedback","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L401"},"def":{"name":"unregister_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"if path == \"/\"\n return clear_feedback_subscriptions\nend\nlogger.debug do\n \"Unsubscribing feedback for #{path}\"\nend\nfeedback.remove(path)\n@feedback_paths.delete(path)\ndo_send(XAPI.xfeedback(:deregister, path))\n"}},{"html_id":"xcommand(command:String,multiline_body:String|Nil=nil,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-instance-method","name":"xcommand","doc":"Execute an xCommand on the device.","summary":"

Execute an xCommand on the device.

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L140"},"def":{"name":"xcommand","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"request = XAPI.xcommand(command, **kwargs.merge({hash_args: hash_args}))\nname = if kwargs.empty?\n command\nelse\n if kwargs.size == 1\n \"#{command} #{kwargs.keys.to_a.first}\"\n end\nend\npriority = kwargs[:priority]? || queue.priority\ndo_send(request, multiline_body, name: name, priority: priority) do |response|\n result_key = (((command.split(' ')).last(2)).join(\"\")) + \"Result\"\n command_result = response[\"CommandResponse/#{result_key}/status\"]?\n failure_result = response[\"CommandResponse/Result/Reason\"]?\n result = command_result || failure_result\n if result\n if result == \"OK\"\n result\n else\n failure_result || (failure_result = response[\"CommandResponse/#{result_key}/Reason\"]?)\n logger.error do\n failure_result.inspect\n end\n :abort\n end\n else\n logger.warn do\n \"Unexpected response format\"\n end\n :abort\n end\nend\n"}},{"html_id":"xconfiguration(path:String,hash_args:Hash(String,JSONBasic)={}ofString=>JSONBasic,**kwargs)-instance-method","name":"xconfiguration","doc":"Apply a single configuration on the device.","summary":"

Apply a single configuration on the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"args_string":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L186"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"promises = hash_args.map do |setting, value|\n apply_configuration(path, setting, value)\nend\nkwargs.each do |setting, value|\n promise = apply_configuration(path, setting, value)\n promises << promise\nend\n(Promise.all(promises)).get.first\n"}},{"html_id":"xconfigurations(config:Config)-instance-method","name":"xconfigurations","doc":"Push a configuration settings to the device.","summary":"

Push a configuration settings to the device.

","abstract":false,"args":[{"name":"config","external_name":"config","restriction":"Config"}],"args_string":"(config : Config)","args_html":"(config : Config)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L135"},"def":{"name":"xconfigurations","args":[{"name":"config","external_name":"config","restriction":"Config"}],"visibility":"Public","body":"config.each do |path, settings|\n xconfiguration(path, settings)\nend"}},{"html_id":"xstatus(path:String)-instance-method","name":"xstatus","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L229"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"request = XAPI.xstatus(path)\npromise = Promise.new(Hash(String, Enumerable::JSONComplex))\ntask = do_send(request) do |response|\n prefix = \"Status/#{(XAPI.tokenize(path)).join('/')}\"\n results = {} of String => Enumerable::JSONComplex\n response.each do |key, value|\n if key.starts_with?(prefix)\n results[key] = value\n end\n end\n if !results.empty?\n promise.resolve(results)\n results\n else\n if error = response[\"Status/status\"]? || response[\"CommandResponse/Status/status\"]?\n reason = response[\"Status/Reason\"]? || response[\"CommandResponse/Status/Reason\"]?\n xpath = response[\"Status/XPath\"]? || response[\"CommandResponse/Status/XPath\"]?\n error_msg = \"#{reason} (#{xpath})\"\n promise.reject(RuntimeError.new(error_msg))\n logger.error do\n error_msg\n end\n :abort\n else\n results[prefix] = nil\n promise.resolve(results)\n results\n end\n end\nend\nspawn do\n task.get\n if task.state == (:abort)\n promise.reject(RuntimeError.new(\"failed to obtain status: #{path}\"))\n end\nend\npromise.get\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","path":"Cisco/CollaborationEndpoint/Cameras.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"camera_move(camera_id:Int32,pan:Interface::Camera::PanDirection|Nil=nil,pan_speed:Int32|Nil=nil,tilt:Interface::Camera::TiltDirection|Nil=nil,tilt_speed:Int32|Nil=nil,zoom:Interface::Zoomable::ZoomDirection|Nil=nil,zoom_speed:Int32|Nil=nil,focus:FocusDirection|Nil=nil)-instance-method","name":"camera_move","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"args_string":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","args_html":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L43"},"def":{"name":"camera_move","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif pan_speed\n if (1..15).includes?(pan_speed)\n else\n raise(ArgumentError.new(\"\\\"pan_speed\\\" must be within #{1..15}, was #{pan_speed}\"))\n end\nend\nif tilt_speed\n if (1..15).includes?(tilt_speed)\n else\n raise(ArgumentError.new(\"\\\"tilt_speed\\\" must be within #{1..15}, was #{tilt_speed}\"))\n end\nend\nif zoom_speed\n if (1..15).includes?(zoom_speed)\n else\n raise(ArgumentError.new(\"\\\"zoom_speed\\\" must be within #{1..15}, was #{zoom_speed}\"))\n end\nend\nxcommand(\"Camera Ramp\", camera_id: camera_id, pan: pan, pan_speed: pan_speed, tilt: tilt, tilt_speed: tilt_speed, zoom: zoom, zoom_speed: zoom_speed, focus: focus)\n"}},{"html_id":"camera_position_reset(camera_id:Int32,axis:CameraAxis|Nil=nil)-instance-method","name":"camera_position_reset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"args_string":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","args_html":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L40"},"def":{"name":"camera_position_reset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nxcommand(\"Camera PositionReset\", camera_id: camera_id, axis: axis)\n"}},{"html_id":"camera_preset(preset_id:Int32)-instance-method","name":"camera_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L16"},"def":{"name":"camera_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Activate\", preset_id: preset_id)\n"}},{"html_id":"camera_remove_preset(preset_id:Int32)-instance-method","name":"camera_remove_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L24"},"def":{"name":"camera_remove_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Remove\", preset_id: preset_id)\n"}},{"html_id":"camera_store_preset(camera_id:Int32,preset_id:Int32,name:String|Nil=nil,take_snapshot:Bool|Nil=nil,default_position:Bool|Nil=nil)-instance-method","name":"camera_store_preset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"args_string":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","args_html":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L18"},"def":{"name":"camera_store_preset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Store\", camera_id: camera_id, preset_id: preset_id, name: name, take_snapshot: take_snapshot, default_position: default_position)\n"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L107"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan_speed = pan_speed.clamp(-100.0, 100.0)\ntilt_speed = tilt_speed.clamp(-100.0, 100.0)\npan = if pan_speed.zero?\n pan_speed = nil\n PanDirection::Stop\nelse\n pan_speed.negative? ? PanDirection::Left : PanDirection::Right\nend\ntilt = if tilt_speed.zero?\n tilt_speed = nil\n TiltDirection::Stop\nelse\n tilt_speed.negative? ? TiltDirection::Down : TiltDirection::Up\nend\ncam = index.to_i\nif cam.zero?\n cam = 1\nend\nif pan_speed\n percentage = pan_speed.abs / 100.0\n pan_speed_actual = (percentage * 15.0).round.to_i\nend\nif tilt_speed\n percentage = tilt_speed.abs / 100.0\n tilt_speed_actual = (percentage * 15.0).round.to_i\nend\ncamera_move(camera_id: cam, pan: pan, pan_speed: pan_speed_actual, tilt: tilt, tilt_speed: tilt_speed_actual, zoom: ZoomDirection::Stop)\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L68"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncase position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0.0, tilt_speed: position.down? ? -50.0 : 50.0, index: cam)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -50.0 : 50.0, tilt_speed: 0.0, index: cam)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out, cam)\nend\n"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L148"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npreset = presets[position]?\nif preset\nelse\n raise(\"preset '#{position}' not found on camera #{index}\")\nend\ncamera_preset(preset_id: preset)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L179"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npresets.delete(name)\nif presets.empty?\n @presets.delete(cam)\nelse\n @presets[cam] = presets\nend\nsave_presets\ntrue\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L159"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\nin_use = @presets.values.flat_map(&.values)\nnext_available = ((1..35).to_a - in_use).first\npresets[name] = next_available\ncamera_store_preset(camera_id: cam, preset_id: next_available, name: name).get\n@presets[cam] = presets\nsave_presets\ntrue\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L56"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, pan: PanDirection::Stop, tilt: TiltDirection::Stop, zoom: ZoomDirection::Stop)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L96"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, zoom: direction, zoom_speed: 6)\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L92"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"raise(\"direct zoom unsupported on this camera\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/CameraAxis","path":"Cisco/CollaborationEndpoint/Cameras/CameraAxis.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::CameraAxis","name":"CameraAxis","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L27"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"0"},{"id":"Focus","name":"Focus","value":"1"},{"id":"PanTilt","name":"PanTilt","value":"2"},{"id":"Zoom","name":"Zoom","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L28"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L29"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan_tilt?-instance-method","name":"pan_tilt?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L30"},"def":{"name":"pan_tilt?","visibility":"Public","body":"self == PanTilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L31"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/FocusDirection","path":"Cisco/CollaborationEndpoint/Cameras/FocusDirection.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::FocusDirection","name":"FocusDirection","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L34"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Far","name":"Far","value":"0"},{"id":"Near","name":"Near","value":"1"},{"id":"Stop","name":"Stop","value":"2"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"far?-instance-method","name":"far?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L35"},"def":{"name":"far?","visibility":"Public","body":"self == Far"}},{"html_id":"near?-instance-method","name":"near?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L36"},"def":{"name":"near?","visibility":"Public","body":"self == Near"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L37"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/Interface","path":"Cisco/CollaborationEndpoint/Cameras/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Cameras::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Config","path":"Cisco/CollaborationEndpoint/Config.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Config","name":"Config","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L132"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","aliased_html":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Feedback","path":"Cisco/CollaborationEndpoint/Feedback.html","kind":"class","full_name":"Cisco::CollaborationEndpoint::Feedback","name":"Feedback","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L2"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clear-instance-method","name":"clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L44"},"def":{"name":"clear","visibility":"Public","body":"@callbacks = Hash(String, Array(Proc(String, Enumerable::JSONComplex, Nil))).new do |h, k|\n h[k] = [] of Proc(String, Enumerable::JSONComplex, Nil)\nend"}},{"html_id":"contains?(path:String)-instance-method","name":"contains?","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L23"},"def":{"name":"contains?","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"found = false\n@callbacks.each_key do |key|\n if path.starts_with?(key)\n found = true\n break\n end\nend\nfound\n"}},{"html_id":"insert(path:String,&handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"insert","doc":"Insert a response handler block to be notified of updates effecting the\nspecified feedback path.","summary":"

Insert a response handler block to be notified of updates effecting the specified feedback path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L18"},"def":{"name":"insert","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"handler","external_name":"handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"@callbacks[path] << handler\nself\n"}},{"html_id":"notify(path:String,value:Enumerable::JSONComplex)-instance-method","name":"notify","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"args_string":"(path : String, value : Enumerable::JSONComplex)","args_html":"(path : String, value : Enumerable::JSONComplex)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L34"},"def":{"name":"notify","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"visibility":"Public","body":"@callbacks.each do |key, callbacks|\n if path.starts_with?(key)\n callbacks.each(&.call(path, value))\n end\nend"}},{"html_id":"notify(payload:Hash(String,Enumerable::JSONComplex))-instance-method","name":"notify","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"args_string":"(payload : Hash(String, Enumerable::JSONComplex))","args_html":"(payload : Hash(String, Enumerable::JSONComplex))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L40"},"def":{"name":"notify","args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"visibility":"Public","body":"payload.each do |key, value|\n notify(\"/#{key}\", value)\nend"}},{"html_id":"remove(path:String)-instance-method","name":"remove","doc":"Nuke a subtree below the path","summary":"

Nuke a subtree below the path

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L9"},"def":{"name":"remove","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"remove = [] of String\n@callbacks.each_key do |key|\n if key.starts_with?(path)\n remove << key\n end\nend\nremove.each do |key|\n @callbacks.delete(key)\nend\nself\n"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/JSONBasic","path":"Cisco/CollaborationEndpoint/JSONBasic.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","path":"Cisco/CollaborationEndpoint/Powerable.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"half_wake-instance-method","name":"half_wake","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L14"},"def":{"name":"half_wake","visibility":"Public","body":"xcommand(\"Standby HalfWake\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? powerup : half_wake\nself[:power] = state\n"}},{"html_id":"power_state(state:Interface::Powerable::PowerState)-instance-method","name":"power_state","doc":"override this to implement `PowerState::FullOff` if it is available for the device","summary":"

override this to implement PowerState::FullOff if it is available for the device

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"args_string":"(state : Interface::Powerable::PowerState)","args_html":"(state : Interface::Powerable::PowerState)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L23"},"def":{"name":"power_state","args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"visibility":"Public","body":"case state\nin .on?\n power(true)\nin .off?\n power(false)\nin .full_off?\n standby\n self[:power] = false\nend\nself[:power_state] = state\n"}},{"html_id":"powerup-instance-method","name":"powerup","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L13"},"def":{"name":"powerup","visibility":"Public","body":"xcommand(\"Standby Deactivate\")"}},{"html_id":"reset_standby_timer(delay:Int32)-instance-method","name":"reset_standby_timer","abstract":false,"args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"args_string":"(delay : Int32)","args_html":"(delay : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L16"},"def":{"name":"reset_standby_timer","args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"visibility":"Public","body":"if (1..480).includes?(delay)\nelse\n raise(ArgumentError.new(\"delay must be within #{1..480}, was #{delay}\"))\nend\nxcommand(\"Standby ResetTimer\", delay: delay)\n"}},{"html_id":"standby-instance-method","name":"standby","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L15"},"def":{"name":"standby","visibility":"Public","body":"xcommand(\"Standby Activate\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/Interface","path":"Cisco/CollaborationEndpoint/Powerable/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Powerable::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/PowerOff","path":"Cisco/CollaborationEndpoint/Powerable/PowerOff.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Powerable::PowerOff","name":"PowerOff","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Restart","name":"Restart","value":"0"},{"id":"Shutdown","name":"Shutdown","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},"instance_methods":[{"html_id":"restart?-instance-method","name":"restart?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L37"},"def":{"name":"restart?","visibility":"Public","body":"self == Restart"}},{"html_id":"shutdown?-instance-method","name":"shutdown?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L38"},"def":{"name":"shutdown?","visibility":"Public","body":"self == Shutdown"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","path":"Cisco/CollaborationEndpoint/Presentation.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"presentation_start(presentation_source:Int32|Nil=nil,sending_mode:SendingMode|Nil=nil,connector_id:Int32|Nil=nil,instance:Int32|Nil=nil)-instance-method","name":"presentation_start","abstract":false,"args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"args_string":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","args_html":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L24"},"def":{"name":"presentation_start","args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if presentation_source\n if (1..2).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..2}, was #{presentation_source}\"))\n end\nend\nif connector_id\n if (1..2).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..2}, was #{connector_id}\"))\n end\nend\nif instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nxcommand(\"Presentation Start\", presentation_source: presentation_source, sending_mode: sending_mode, connector_id: connector_id, instance: instance)\n"}},{"html_id":"presentation_stop(instance:Int32|Nil=nil,presentation_source:Int32|Nil=nil)-instance-method","name":"presentation_stop","abstract":false,"args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"args_string":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","args_html":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L29"},"def":{"name":"presentation_stop","args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nif presentation_source\n if (1..4).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..4}, was #{presentation_source}\"))\n end\nend\nxcommand(\"Presentation Stop\", instance: instance, presentation_source: presentation_source)\n"}},{"html_id":"send_presentation_to(remote:Bool)-instance-method","name":"send_presentation_to","abstract":false,"args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"args_string":"(remote : Bool)","args_html":"(remote : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L51"},"def":{"name":"send_presentation_to","args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"visibility":"Public","body":"@sending_mode = remote ? SendingMode::LocalRemote : SendingMode::LocalOnly\nself[:present_to_remote] = remote\nif input = @presenting_input\n presentation_start(presentation_source: input, sending_mode: @sending_mode)\nend\n"}},{"html_id":"switch_to(input:PresentationInputs)-instance-method","name":"switch_to","doc":"Provide compatabilty with the router module for activating presentation.","summary":"

Provide compatabilty with the router module for activating presentation.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"args_string":"(input : PresentationInputs)","args_html":"(input : PresentationInputs)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L34"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"visibility":"Public","body":"if input.none?\n @presenting_input = nil\n presentation_stop\nelse\n source = input.to_s[5..-1].to_i\n @presenting_input = source\n presentation_start(presentation_source: source, sending_mode: @sending_mode)\nend\nself[:presenting_input] = @presenting_input\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/PresentationInputs","path":"Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::PresentationInputs","name":"PresentationInputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"},{"id":"Input3","name":"Input3","value":"3"},{"id":"Input4","name":"Input4","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"input3?-instance-method","name":"input3?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L9"},"def":{"name":"input3?","visibility":"Public","body":"self == Input3"}},{"html_id":"input4?-instance-method","name":"input4?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L10"},"def":{"name":"input4?","visibility":"Public","body":"self == Input4"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/SendingMode","path":"Cisco/CollaborationEndpoint/Presentation/SendingMode.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::SendingMode","name":"SendingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LocalRemote","name":"LocalRemote","value":"0"},{"id":"LocalOnly","name":"LocalOnly","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"local_only?-instance-method","name":"local_only?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L18"},"def":{"name":"local_only?","visibility":"Public","body":"self == LocalOnly"}},{"html_id":"local_remote?-instance-method","name":"local_remote?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L17"},"def":{"name":"local_remote?","visibility":"Public","body":"self == LocalRemote"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presets","path":"Cisco/CollaborationEndpoint/Presets.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Hash(String, Int32))","aliased_html":"Hash(Int32, Hash(String, Int32))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"Camera idx => Preset name => Preset id","summary":"

Camera idx => Preset name => Preset id

"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Toogle","path":"Cisco/CollaborationEndpoint/Toogle.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L15"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"used by many of the commands","summary":"

used by many of the commands

","instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L17"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L16"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","path":"Cisco/CollaborationEndpoint/UIExtensions.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"msg_alert(text:String,title:String|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"msg_alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L7"},"def":{"name":"msg_alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message Alert Display\", text: text, title: title, duration: duration)\n"}},{"html_id":"msg_alert_clear-instance-method","name":"msg_alert_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L6"},"def":{"name":"msg_alert_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"msg_prompt(text:String,options:Array(JSON::Any::Type),title:String|Nil=nil,feedback_id:String|Nil=nil,duration:Int64|Nil=nil)-instance-method","name":"msg_prompt","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"args_string":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","args_html":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L14"},"def":{"name":"msg_prompt","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"option_map = {} of String => JSON::Any::Type\n(\"Option.1\"..\"Option.5\").each_with_index do |key, i|\n if i >= options.size\n break\n end\n option_map[key] = options[i]\nend\nxcommand(\"UserInterface Message Prompt Display\", hash_args: Hash(String, JSON::Any::Type) {\"text\" => text, \"title\" => title, \"feedback_id\" => feedback_id, \"duration\" => duration}.merge(option_map))\n"}},{"html_id":"msg_prompt_clear-instance-method","name":"msg_prompt_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L12"},"def":{"name":"msg_prompt_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Prompt Clear\")"}},{"html_id":"msg_text(text:String,feedback_id:String,title:String|Nil=nil,duration:Int32|Nil=nil,input_type:TextInputType|Nil=nil,keyboard_state:TextKeyboardState|Nil=nil,place_holder:String|Nil=nil,submit_text:String|Nil=nil)-instance-method","name":"msg_text","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"args_string":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","args_html":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L45"},"def":{"name":"msg_text","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message TextInput Display\", text: text, feedback_id: feedback_id, title: title, duration: duration, input_type: input_type, keyboard_state: keyboard_state, place_holder: place_holder, submit_text: submit_text)\n"}},{"html_id":"msg_text_clear-instance-method","name":"msg_text_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L44"},"def":{"name":"msg_text_clear","visibility":"Public","body":"xcommand(\"UserInterface Message TextInput Clear\")"}},{"html_id":"ui_extensions_clear-instance-method","name":"ui_extensions_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L73"},"def":{"name":"ui_extensions_clear","visibility":"Public","body":"xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"ui_extensions_deploy(id:String,xml_def:String)-instance-method","name":"ui_extensions_deploy","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L65"},"def":{"name":"ui_extensions_deploy","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface Extensions Set\", xml_def, config_id: id)"}},{"html_id":"ui_extensions_list-instance-method","name":"ui_extensions_list","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L69"},"def":{"name":"ui_extensions_list","visibility":"Public","body":"xcommand(\"UserInterface Extensions List\")"}},{"html_id":"ui_set_value(widget:String,value:JSON::Any::Type|Nil=nil)-instance-method","name":"ui_set_value","abstract":false,"args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"args_string":"(widget : String, value : JSON::Any::Type | Nil = nil)","args_html":"(widget : String, value : JSON::Any::Type | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L55"},"def":{"name":"ui_set_value","args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"visibility":"Public","body":"if value.nil?\n xcommand(\"UserInterface Extensions Widget UnsetValue\", widget_id: widget)\nelse\n xcommand(\"UserInterface Extensions Widget SetValue\", value: value, widget_id: widget)\nend"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextInputType","path":"Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextInputType","name":"TextInputType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L32"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SingleLine","name":"SingleLine","value":"0"},{"id":"Numeric","name":"Numeric","value":"1"},{"id":"Password","name":"Password","value":"2"},{"id":"PIN","name":"PIN","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"numeric?-instance-method","name":"numeric?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L34"},"def":{"name":"numeric?","visibility":"Public","body":"self == Numeric"}},{"html_id":"password?-instance-method","name":"password?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L35"},"def":{"name":"password?","visibility":"Public","body":"self == Password"}},{"html_id":"pin?-instance-method","name":"pin?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L36"},"def":{"name":"pin?","visibility":"Public","body":"self == PIN"}},{"html_id":"single_line?-instance-method","name":"single_line?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L33"},"def":{"name":"single_line?","visibility":"Public","body":"self == SingleLine"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState","path":"Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextKeyboardState","name":"TextKeyboardState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L39"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L41"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L40"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","path":"Cisco/CollaborationEndpoint/XAPI.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L3"},{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOL_OR","name":"BOOL_OR","value":"->(term : String) do\n ->(val : String) do\n val == term ? term : BOOLEAN.call(val)\n end\nend"},{"id":"BOOLEAN","name":"BOOLEAN","value":"->(val : String) do\n TRUTHY.includes?(val.downcase)\nend"},{"id":"COMMAND_RESPONSE","name":"COMMAND_RESPONSE","value":"Regex.union(INVALID_COMMAND, SUCCESS)"},{"id":"FALSEY","name":"FALSEY","value":"{\"false\", \"unavailable\", \"off\", \"inactive\"}"},{"id":"INVALID_COMMAND","name":"INVALID_COMMAND","value":"/(?<=Command not recognized\\.)[\\r\\n]+/","doc":"Regexp's for tokenizing the xAPI command and response structure.","summary":"

Regexp's for tokenizing the xAPI command and response structure.

"},{"id":"LOGIN_COMPLETE","name":"LOGIN_COMPLETE","value":"/Login successful/"},{"id":"PARSERS","name":"PARSERS","value":"{\"TTPAR_OnOff\" => BOOLEAN, \"TTPAR_OnOffAuto\" => BOOL_OR.call(\"Auto\"), \"TTPAR_OnOffCurrent\" => BOOL_OR.call(\"Current\"), \"TTPAR_MuteEnabled\" => BOOLEAN}"},{"id":"SUCCESS","name":"SUCCESS","value":"/(?<=OK)[\\r\\n]+/"},{"id":"TRUTHY","name":"TRUTHY","value":"{\"true\", \"available\", \"standby\", \"on\", \"active\"}"}],"including_types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"class_methods":[{"html_id":"create_action(__action__:ActionType,*args,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,priority:Int32|Nil=nil,**kwargs)-class-method","name":"create_action","doc":"Serialize an xAPI action into transmittable command.","summary":"

Serialize an xAPI action into transmittable command.

","abstract":false,"args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"args_string":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","args_html":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L45"},"def":{"name":"create_action","args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":1,"visibility":"Public","body":"[__action__.to_s.camelcase(lower: true), args.compact_map(&.to_s), hash_args.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend, kwargs.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend.to_a.compact!].flatten.join(\" \")"}},{"html_id":"parse(data:String)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L31"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"(JSON.parse(data)).as_h.flatten_xapi_json"}},{"html_id":"tokenize(path:String)-class-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L101"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split(/[\\s\\/\\\\]/)).reject(&.empty?)"}},{"html_id":"value_convert(value:String,valuespace:String|Nil=nil)-class-method","name":"value_convert","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"args_string":"(value : String, valuespace : String | Nil = nil)","args_html":"(value : String, valuespace : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L15"},"def":{"name":"value_convert","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"begin\n parser = PARSERS[valuespace]?\n if parser\n else\n return value.to_i64\n end\n parser.call(value)\nrescue\n check = value.downcase\n if check.in?(TRUTHY)\n true\n else\n if check.in?(FALSEY)\n false\n else\n value\n end\n end\nend"}},{"html_id":"xcommand(path:String,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-class-method","name":"xcommand","doc":"Serialize an xCommand into transmittable command.","summary":"

Serialize an xCommand into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L71"},"def":{"name":"xcommand","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"create_action(ActionType::XCommand, path, **kwargs.merge({hash_args: hash_args}))"}},{"html_id":"xconfiguration(path:String,setting:String,value:JSON::Any::Type)-class-method","name":"xconfiguration","doc":"Serialize an xConfiguration action into a transmittable command.","summary":"

Serialize an xConfiguration action into a transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"args_string":"(path : String, setting : String, value : JSON::Any::Type)","args_html":"(path : String, setting : String, value : JSON::Any::Type)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L80"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"visibility":"Public","body":"create_action(ActionType::XConfiguration, path, hash_args: {setting => value})"}},{"html_id":"xfeedback(action:FeedbackAction,path:String|Nil=nil)-class-method","name":"xfeedback","doc":"Serialize a xFeedback subscription request.","summary":"

Serialize a xFeedback subscription request.

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"args_string":"(action : FeedbackAction, path : String | Nil = nil)","args_html":"(action : FeedbackAction, path : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L92"},"def":{"name":"xfeedback","args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"visibility":"Public","body":"if path\n xpath = tokenize(path)\n create_action(ActionType::XFeedback, action, \"/#{xpath.join('/')}\")\nelse\n create_action(ActionType::XFeedback, action)\nend"}},{"html_id":"xstatus(path:String)-class-method","name":"xstatus","doc":"Serialize an xStatus request into transmittable command.","summary":"

Serialize an xStatus request into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L87"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"create_action(ActionType::XStatus, path)"}}],"macros":[{"html_id":"command(cmd_name,**params)-macro","name":"command","abstract":false,"args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"args_string":"(cmd_name, **params)","args_html":"(cmd_name, **params)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L106"},"def":{"name":"command","args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":" \n{% for cmd, name in cmd_name %}\n def {{ name.id }}(\n {% for param, klass in params %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {% if klass.is_a?(RangeLiteral) %}\n {{ param.id }} : Int32{% if optional %}? = nil{% end %},\n {% else %}\n {{ param.id }} : {{ klass }}{% if optional %}? = nil{% end %},\n {% end %}\n {% end %}\n )\n {% for param, klass in params %}\n {% if klass.is_a?(RangeLiteral) %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n {% if optional %} if {{ param.id }}{% end %}\n raise ArgumentError.new(\"#{ {{ param.stringify }} } must be within #{ {{ klass }} }, was #{ {{ param.id }} }\") unless ({{ klass }}).includes?({{ param.id }})\n {% if optional %}end{% end %}\n {% end %}\n {% end %}\n\n # send the command\n xcommand(\n {{ cmd }},\n {% for param, klass in params %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {{ param.id }}: {{ param.id }},\n {% end %}\n )\n end\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/ActionType","path":"Cisco/CollaborationEndpoint/XAPI/ActionType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::ActionType","name":"ActionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L29"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"XConfiguration","name":"XConfiguration","value":"0"},{"id":"XCommand","name":"XCommand","value":"1"},{"id":"XStatus","name":"XStatus","value":"2"},{"id":"XFeedback","name":"XFeedback","value":"3"},{"id":"XPreferences","name":"XPreferences","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"x_command?-instance-method","name":"x_command?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L31"},"def":{"name":"x_command?","visibility":"Public","body":"self == XCommand"}},{"html_id":"x_configuration?-instance-method","name":"x_configuration?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L30"},"def":{"name":"x_configuration?","visibility":"Public","body":"self == XConfiguration"}},{"html_id":"x_feedback?-instance-method","name":"x_feedback?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L33"},"def":{"name":"x_feedback?","visibility":"Public","body":"self == XFeedback"}},{"html_id":"x_preferences?-instance-method","name":"x_preferences?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L34"},"def":{"name":"x_preferences?","visibility":"Public","body":"self == XPreferences"}},{"html_id":"x_status?-instance-method","name":"x_status?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L32"},"def":{"name":"x_status?","visibility":"Public","body":"self == XStatus"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/FeedbackAction","path":"Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::FeedbackAction","name":"FeedbackAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L37"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Register","name":"Register","value":"0"},{"id":"Deregister","name":"Deregister","value":"1"},{"id":"DeregisterAll","name":"DeregisterAll","value":"2"},{"id":"List","name":"List","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"deregister?-instance-method","name":"deregister?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L39"},"def":{"name":"deregister?","visibility":"Public","body":"self == Deregister"}},{"html_id":"deregister_all?-instance-method","name":"deregister_all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L40"},"def":{"name":"deregister_all?","visibility":"Public","body":"self == DeregisterAll"}},{"html_id":"list?-instance-method","name":"list?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L41"},"def":{"name":"list?","visibility":"Public","body":"self == List"}},{"html_id":"register?-instance-method","name":"register?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L38"},"def":{"name":"register?","visibility":"Public","body":"self == Register"}}]}]}]},{"html_id":"drivers/Cisco/DNASpaces","path":"Cisco/DNASpaces.html","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L9"},{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IOT_SENSORS","name":"IOT_SENSORS","value":"{SensorType::Presence, SensorType::PeopleCount, SensorType::Humidity, SensorType::AirQuality, SensorType::SoundPressure, SensorType::Temperature}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate-instance-method","name":"activate","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L98"},"def":{"name":"activate","visibility":"Public","body":"if @activation_token.empty?\n return\nend\nresponse = get(\"/client/v1/partner/partnerPublicKey/\")\nif response.success?\nelse\n raise(\"failed to obtain partner public key, code #{response.status_code}\")\nend\nlogger.debug do\n \"public key requested: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: Array(ActivactionPublicKey)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining partner public key: #{payload[:message]}\")\nend\npublic_key = payload[:data][0].public_key\npayload, header = JWT.decode(@activation_token, public_key, JWT::Algorithm::RS256, @verify_activation_key)\napp_id = payload[\"appId\"].as_s\nref_id = payload[\"activationRefId\"].as_s\ntenant_id = payload[\"tenantId\"].as_i64.to_s\nresponse = post(\"/client/v1/partner/activateOnPremiseApp\", headers: {\"Content-Type\" => \"application/json\", \"Authorization\" => \"Bearer #{@activation_token}\"}, body: {appId: app_id, activationRefId: ref_id}.to_json)\nif response.success?\nelse\n raise(\"failed to obtain API key, code #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"application activated: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: NamedTuple(apiKey: String)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining API key: #{payload[:message]}\")\nend\napi_key = payload[:data][:apiKey]\nlogger.debug do\n \"saving API key: #{tenant_id}, #{api_key}\"\nend\ndefine_setting(:tenant_id, tenant_id)\ndefine_setting(:dna_spaces_api_key, api_key)\ndefine_setting(:dna_spaces_activation_key, \"\")\nlogger.debug do\n \"settings saved! Starting stream\"\nend\n@api_key = api_key\n@tenant_id = tenant_id\n@description_lock.synchronize do\n if !@streaming\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":530,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L530"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"if location = locate_mac(mac_address)\n {location: \"wireless\", assigned_to: format_username(location.raw_user_id), mac_address: format_mac(mac_address)}\nend"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L241"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago.to_unix\nremove_keys = [] of String\nlocations do |locs|\n locs.each do |mac, location|\n if location.last_seen < old\n remove_keys << mac\n end\n end\n remove_keys.each do |mac|\n locs.delete(mac)\n end\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L541"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of Nil\nend\nfloors = [] of String\nadjustments = {} of String => Tuple(Float64, Float64, Float64, Float64)\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n offset_x = (data[\"offset_x\"]? || 0.0).as(Float64)\n offset_y = (data[\"offset_y\"]? || 0.0).as(Float64)\n map_width = (data[\"map_width\"]? || -1.0).as(Float64)\n map_height = (data[\"map_height\"]? || -1.0).as(Float64)\n adjustments[floor_id] = {offset_x, offset_y, map_width, map_height}\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of Nil\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago.to_unix\nmatching = locations(&.compact_map do |mac, loc|\n if loc.last_seen < oldest_location\n too_old = too_old + 1\n next\n end\n if (floors & loc.location_mappings.values).empty?\n wrong_floor = wrong_floor + 1\n next\n end\n loc.device.mac_address = mac\n loc\nend)\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.map_id).flat_map do |map_id, locations|\n map_width = -1.0\n map_height = -1.0\n offset_x = 0.0\n offset_y = 0.0\n locations.first.location_mappings.each_value do |location_id|\n if level_data = adjustments[location_id]?\n offset_x, offset_y, map_width, map_height = level_data\n break\n end\n end\n if (map_width == -1.0) || (map_height == -1.0)\n if map_size = get_map_details(map_id)\n map_width = map_width > -1.0 ? map_width : (map_size.length - offset_x)\n map_height = map_height > -1.0 ? map_height : (map_size.width - offset_y)\n end\n end\n locations.compact_map do |loc|\n if loc.is_a?(WebexTelemetryUpdate)\n next\n end\n lat = loc.latitude\n lon = loc.longitude\n {location: :wireless, coordinates_from: \"top-left\", x: loc.x_pos - offset_x, y: loc.y_pos - offset_y, lon: lon, lat: lat, s2_cell_id: ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, mac: loc.device.mac_address, variance: loc.unc, last_seen: loc.last_seen, map_width: map_width, map_height: map_height, ssid: loc.ssid, manufacturer: loc.device.manufacturer, os: loc.device.os}\n end\nend\n"}},{"html_id":"devices(&)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L191"},"def":{"name":"devices","yields":1,"block_arity":1,"visibility":"Public","body":"@dev_lock.synchronize do\n yield @devices\nend"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":632,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L632"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L636"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_location_info(location_id:String)-instance-method","name":"get_location_info","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L165"},"def":{"name":"get_location_info","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/partners/v1/locations/#{location_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain location id #{location_id}, code #{response.status_code}\")\nend\nLocationInfo.from_json(response.body.not_nil!)\n"}},{"html_id":"get_map_details(map_id:String)-instance-method","name":"get_map_details","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L223"},"def":{"name":"get_map_details","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"map = @map_lock.synchronize do\n @map_details[map_id]?\nend\nif !map\n response = get(\"/api/partners/v1/maps/#{map_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\n if !response.success?\n message = \"failed to obtain map id #{map_id}, code #{response.status_code}\"\n logger.warn do\n message\n end\n return nil\n end\n map = (MapInfo.from_json(response.body.not_nil!)).dimension\n @map_lock.synchronize do\n @map_details[map_id] = map\n end\nend\nmap\n"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L213"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"MAC Locations: #{locations(&.keys)}\"\nend\n{tracking: locations(&.size), events_received: @events_received}\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L207"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"formatted_address = format_mac(address)\nlocations do |locs|\n locs[formatted_address]?\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"=============================\nLocatable interface\n=============================","summary":"

============================= Locatable interface =============================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L443"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"if macs = user_lookup(username.presence || email.presence.not_nil!)\n location_max_age = @max_location_age.ago.to_unix\n macs.compact_map do |mac|\n if location = locate_mac(mac)\n if location.is_a?(WebexTelemetryUpdate)\n next\n end\n if location.last_seen > location_max_age\n location.device.mac_address = mac\n location\n end\n end\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end.map do |location|\n lat = location.latitude\n lon = location.longitude\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"top-left\", \"x\" => location.x_pos, \"y\" => location.y_pos, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, \"mac\" => location.device.mac_address, \"variance\" => location.unc, \"last_seen\" => location.last_seen, \"dna_floor_id\" => location.map_id, \"ssid\" => location.ssid, \"manufacturer\" => location.device.manufacturer, \"os\" => location.device.os}\n map_width = 0.0\n map_height = 0.0\n offset_x = 0.0\n offset_y = 0.0\n location.location_mappings.each_value do |location_id|\n if level_data = @floorplan_mappings[location_id]?\n level_data.each do |key, value|\n case key\n when \"offset_x\"\n offset_x = value.as(Float64)\n loc[\"x\"] = location.x_pos - offset_x\n when \"offset_y\"\n offset_y = value.as(Float64)\n loc[\"y\"] = location.y_pos - offset_y\n when \"map_width\"\n map_width = value.as(Float64)\n when \"map_height\"\n map_height = value.as(Float64)\n else\n loc[key] = value\n end\n end\n break\n end\n end\n if map_width > 0.0 && map_height > 0.0\n loc[\"map_width\"] = map_width\n loc[\"map_height\"] = map_height\n else\n if map_size = get_map_details(location.map_id)\n loc[\"map_width\"] = map_width > 0.0 ? map_width : (map_size.length - offset_x)\n loc[\"map_height\"] = map_height > 0.0 ? map_height : (map_size.width - offset_y)\n end\n end\n loc\n end\nelse\n [] of Nil\nend"}},{"html_id":"locations(&)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L187"},"def":{"name":"locations","yields":1,"block_arity":1,"visibility":"Public","body":"@loc_lock.synchronize do\n yield @locations\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":525,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L525"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(user_lookup(username.presence || email.presence.not_nil!)).try(&.to_a) || ([] of String)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L48"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close\n@stream_active = false\nupdate_monitoring_status(running: false)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L65"},"def":{"name":"on_update","visibility":"Public","body":"@max_location_age = ((setting?(UInt32, :max_location_age)) || 10).minutes\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@debug_stream = (setting?(Bool, :debug_stream)) || false\n@verify_activation_key = (setting?(Bool, :verify_activation_key)) || false\nschedule.clear\nschedule.every(30.minutes) do\n cleanup_caches\nend\nschedule.every(5.minutes) do\n update_monitoring_status\nend\nschedule.in(5.seconds) do\n update_monitoring_status\nend\n@activation_token = (setting?(String, :dna_spaces_activation_key)) || \"\"\nif @activation_token.empty?\n @api_key = setting(String, :dna_spaces_api_key)\n @tenant_id = (setting(String | Int64, :tenant_id)).to_s\nelse\n @api_key = (setting?(String, :dna_spaces_api_key)) || \"\"\n @tenant_id = (setting?(String | Int64, :tenant_id)).try(&.to_s) || \"\"\n if @api_key.empty?\n schedule.in(5.seconds) do\n activate\n end\n end\nend\n@description_lock.synchronize do\n if !@streaming && !@api_key.empty?\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"seen_locations-instance-method","name":"seen_locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L177"},"def":{"name":"seen_locations","visibility":"Public","body":"@description_lock.synchronize do\n @location_descriptions.dup\nend"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L114"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nmac = format_mac(mac)\ndevice = devices do |dev|\n dev[mac]?\nend\nif device\nelse\n return nil\nend\nfilter = SensorType.parse(id)\ncase device\nin IotTelemetry, WebexTelemetryUpdate\n (to_sensors(nil, filter, device)).first?\nin DeviceLocationUpdate\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L85"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nfilter = type ? SensorType.parse(type) : nil\nif filter && !(filter.in?(IOT_SENSORS))\n return NO_MATCH\nend\nif mac\n mac = format_mac(mac)\n device = devices do |dev|\n dev[mac]?\n end\n if device\n else\n return NO_MATCH\n end\n return case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\ndevice_values = devices(&.values)\ndevice_values.flat_map do |device|\n case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\n"}},{"html_id":"update_monitoring_status(running:Bool=true):Nil-instance-method","name":"update_monitoring_status","doc":"This provides the DNA Spaces dashboard with stream consumption status","summary":"

This provides the DNA Spaces dashboard with stream consumption status

","abstract":false,"args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"args_string":"(running : Bool = true) : Nil","args_html":"(running : Bool = true) : Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L647"},"def":{"name":"update_monitoring_status","args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = put(\"/api/partners/v1/monitoring/status\", headers: {\"Content-Type\" => \"application/json\", \"X-API-KEY\" => @api_key}, body: {data: {overallStatus: {status: running ? \"up\" : \"down\", notices: [] of Nil}, instanceDetails: {ipAddress: \"\", instanceId: module_id}, cloudFirehose: {status: @stream_active ? \"connected\" : \"disconnected\", lastReceived: @last_received}, localFirehose: {status: \"disconnected\", lastReceived: 0}, subsystems: [] of Nil}}.to_json)\nif response.success?\nelse\n raise(\"failed to update status, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"user_lookup(&)-instance-method","name":"user_lookup","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L198"},"def":{"name":"user_lookup","yields":1,"block_arity":1,"visibility":"Public","body":"@user_loc.synchronize do\n yield @user_lookup\nend"}},{"html_id":"user_lookup(user_id:String)-instance-method","name":"user_lookup","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L202"},"def":{"name":"user_lookup","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"formatted_user = format_username(user_id)\nuser_lookup do |lookup|\n lookup[formatted_user]?\nend\n"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/ActivactionPublicKey","path":"Cisco/DNASpaces/ActivactionPublicKey.html","kind":"class","full_name":"Cisco::DNASpaces::ActivactionPublicKey","name":"ActivactionPublicKey","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"public_key-instance-method","name":"public_key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L11"},"def":{"name":"public_key","visibility":"Public","body":"\"-----BEGIN PUBLIC KEY-----\\n#{@public_key}\\n-----END PUBLIC KEY-----\\n\""}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L6"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivaction","path":"Cisco/DNASpaces/AppActivaction.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivaction","name":"AppActivaction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance_name:String-instance-method","name":"instance_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L20"},"def":{"name":"instance_name","return_type":"String","visibility":"Public","body":"@instance_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L13"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"reference_id:String-instance-method","name":"reference_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L17"},"def":{"name":"reference_id","return_type":"String","visibility":"Public","body":"@reference_id"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L10"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L7"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","path":"Cisco/DNASpaces/AppActivactionWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L109"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L110"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:AppActivaction-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L113"},"def":{"name":"payload","return_type":"AppActivaction","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/BlePayload","path":"Cisco/DNASpaces/BlePayload.html","kind":"class","full_name":"Cisco::DNASpaces::BlePayload","name":"BlePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data","return_type":"String","visibility":"Public","body":"@data"}},{"html_id":"data=(data:String)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"@data = data"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdate","path":"Cisco/DNASpaces/BleRssiUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdate","name":"BleRssiUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L48"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"notification:RssiNotification-instance-method","name":"notification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L47"},"def":{"name":"notification","return_type":"RssiNotification","visibility":"Public","body":"@notification"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","path":"Cisco/DNASpaces/BleRssiUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L123"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L123"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L124"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:BleRssiUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L127"},"def":{"name":"payload","return_type":"BleRssiUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Device","path":"Cisco/DNASpaces/Device.html","kind":"class","full_name":"Cisco::DNASpaces::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L7"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"email-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L16"},"def":{"name":"email","visibility":"Public","body":"@email.try(&.downcase)"}},{"html_id":"email_raw:String?-instance-method","name":"email_raw","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L20"},"def":{"name":"email_raw","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L27"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L24"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L30"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L42"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L13"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L43"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os_version:String|Nil-instance-method","name":"os_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L46"},"def":{"name":"os_version","return_type":"String | ::Nil","visibility":"Public","body":"@os_version"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L33"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L12"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L47"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCount","path":"Cisco/DNASpaces/DeviceCount.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCount","name":"DeviceCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"associated_count:Int32-instance-method","name":"associated_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L9"},"def":{"name":"associated_count","return_type":"Int32","visibility":"Public","body":"@associated_count"}},{"html_id":"estimated_capacity_percentage:Float64-instance-method","name":"estimated_capacity_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L21"},"def":{"name":"estimated_capacity_percentage","return_type":"Float64","visibility":"Public","body":"@estimated_capacity_percentage"}},{"html_id":"estimated_density:Float64-instance-method","name":"estimated_density","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L18"},"def":{"name":"estimated_density","return_type":"Float64","visibility":"Public","body":"@estimated_density"}},{"html_id":"estimated_probing_count:Int32-instance-method","name":"estimated_probing_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L12"},"def":{"name":"estimated_probing_count","return_type":"Int32","visibility":"Public","body":"@estimated_probing_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L6"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"probing_randomized_percentage:Float64-instance-method","name":"probing_randomized_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L15"},"def":{"name":"probing_randomized_percentage","return_type":"Float64","visibility":"Public","body":"@probing_randomized_percentage"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","path":"Cisco/DNASpaces/DeviceCountWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L116"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L117"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceCount-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L120"},"def":{"name":"payload","return_type":"DeviceCount","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntry","path":"Cisco/DNASpaces/DeviceEntry.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntry","name":"DeviceEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"days_sinc_last_visit:Int32-instance-method","name":"days_sinc_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L25"},"def":{"name":"days_sinc_last_visit","return_type":"Int32","visibility":"Public","body":"@days_sinc_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L22"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L16"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L13"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L19"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","path":"Cisco/DNASpaces/DeviceEntryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L53"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L54"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceEntry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L57"},"def":{"name":"payload","return_type":"DeviceEntry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExit","path":"Cisco/DNASpaces/DeviceExit.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExit","name":"DeviceExit","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L34"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L22"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L19"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L28"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L25"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L31"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L37"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L16"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","path":"Cisco/DNASpaces/DeviceExitWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L60"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L61"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceExit-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L64"},"def":{"name":"payload","return_type":"DeviceExit","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdate","path":"Cisco/DNASpaces/DeviceLocationUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdate","name":"DeviceLocationUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L33"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L21"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L38"},"def":{"name":"has_position?","visibility":"Public","body":"true"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L34"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L46"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L35"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L12"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L9"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L36"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"@unc"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L15"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L27"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L30"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","path":"Cisco/DNASpaces/DeviceLocationUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L82"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceLocationUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L85"},"def":{"name":"payload","return_type":"DeviceLocationUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresence","path":"Cisco/DNASpaces/DevicePresence.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresence","name":"DevicePresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_devices_count:Int32-instance-method","name":"active_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L50"},"def":{"name":"active_devices_count","return_type":"Int32","visibility":"Public","body":"@active_devices_count"}},{"html_id":"days_since_last_visit:Int32-instance-method","name":"days_since_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L23"},"def":{"name":"days_since_last_visit","return_type":"Int32","visibility":"Public","body":"@days_since_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L11"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L44"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L29"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L26"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_date_time:String-instance-method","name":"exit_date_time","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L35"},"def":{"name":"exit_date_time","return_type":"String","visibility":"Public","body":"@exit_date_time"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L32"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_devices_count:Int32-instance-method","name":"inactive_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L53"},"def":{"name":"inactive_devices_count","return_type":"Int32","visibility":"Public","body":"@inactive_devices_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L12"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L7"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L17"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L14"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L41"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L47"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L38"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L20"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L10"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","path":"Cisco/DNASpaces/DevicePresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L96"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DevicePresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L99"},"def":{"name":"payload","return_type":"DevicePresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Dimension","path":"Cisco/DNASpaces/Dimension.html","kind":"class","full_name":"Cisco::DNASpaces::Dimension","name":"Dimension","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L8"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L6"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"offset_x:Float64-instance-method","name":"offset_x","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L11"},"def":{"name":"offset_x","return_type":"Float64","visibility":"Public","body":"@offset_x"}},{"html_id":"offset_y:Float64-instance-method","name":"offset_y","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L14"},"def":{"name":"offset_y","return_type":"Float64","visibility":"Public","body":"@offset_y"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L7"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/Cisco/DNASpaces/Events","path":"Cisco/DNASpaces/Events.html","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper"},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive"},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper"},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is used to map the various events into a simpler data structure","summary":"

This is used to map the various events into a simpler data structure

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"event type hint","summary":"

event type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"eventType\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'eventType' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'eventType'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"KEEP_ALIVE\"\n KeepAlive.from_json(json)\nwhen \"DEVICE_ENTRY\"\n DeviceEntryWrapper.from_json(json)\nwhen \"DEVICE_EXIT\"\n DeviceExitWrapper.from_json(json)\nwhen \"PROFILE_UPDATE\"\n ProfileUpdateWrapper.from_json(json)\nwhen \"LOCATION_CHANGE\"\n LocationChangeWrapper.from_json(json)\nwhen \"DEVICE_LOCATION_UPDATE\"\n DeviceLocationUpdateWrapper.from_json(json)\nwhen \"TP_PEOPLE_COUNT_UPDATE\"\n PeopleCountUpdateWrapper.from_json(json)\nwhen \"DEVICE_PRESENCE\"\n DevicePresenceWrapper.from_json(json)\nwhen \"USER_PRESENCE\"\n UserPresenceWrapper.from_json(json)\nwhen \"APP_ACTIVATION\"\n AppActivactionWrapper.from_json(json)\nwhen \"DEVICE_COUNT\"\n DeviceCountWrapper.from_json(json)\nwhen \"BLE_RSSI_UPDATE\"\n BleRssiUpdateWrapper.from_json(json)\nwhen \"IOT_TELEMETRY\"\n IotTelemetryWrapper.from_json(json)\nwhen \"WEBEX_TELEMETRY\"\n WebexTelemetryUpdateWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'eventType' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L42"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"record_timestamp:Int64-instance-method","name":"record_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L33"},"def":{"name":"record_timestamp","return_type":"Int64","visibility":"Public","body":"@record_timestamp"}},{"html_id":"record_uid:String-instance-method","name":"record_uid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L30"},"def":{"name":"record_uid","return_type":"String","visibility":"Public","body":"@record_uid"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L36"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L39"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotDeviceInfo","path":"Cisco/DNASpaces/IotDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::IotDeviceInfo","name":"IotDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"device_name=(device_name:String)-instance-method","name":"device_name=","abstract":false,"args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"args_string":"(device_name : String)","args_html":"(device_name : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name=","args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"visibility":"Public","body":"@device_name = device_name"}},{"html_id":"firmware_version:String-instance-method","name":"firmware_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version","return_type":"String","visibility":"Public","body":"@firmware_version"}},{"html_id":"firmware_version=(firmware_version:String)-instance-method","name":"firmware_version=","abstract":false,"args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"args_string":"(firmware_version : String)","args_html":"(firmware_version : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version=","args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"visibility":"Public","body":"@firmware_version = firmware_version"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer","return_type":"String","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"args_string":"(manufacturer : String)","args_html":"(manufacturer : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L26"},"def":{"name":"os","visibility":"Public","body":"type"}},{"html_id":"raw_id:String-instance-method","name":"raw_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id","return_type":"String","visibility":"Public","body":"@raw_id"}},{"html_id":"raw_id=(raw_id:String)-instance-method","name":"raw_id=","abstract":false,"args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"args_string":"(raw_id : String)","args_html":"(raw_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id=","args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"visibility":"Public","body":"@raw_id = raw_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotPosition","path":"Cisco/DNASpaces/IotPosition.html","kind":"class","full_name":"Cisco::DNASpaces::IotPosition","name":"IotPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L32"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L44"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L45"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L46"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"time_located:Int64-instance-method","name":"time_located","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located","return_type":"Int64","visibility":"Public","body":"@time_located"}},{"html_id":"time_located=(time_located:Int64)-instance-method","name":"time_located=","abstract":false,"args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"args_string":"(time_located : Int64)","args_html":"(time_located : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located=","args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"visibility":"Public","body":"@time_located = time_located"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L38"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L41"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetry","path":"Cisco/DNASpaces/IotTelemetry.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetry","name":"IotTelemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_pressure-instance-method","name":"air_pressure","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L165"},"def":{"name":"air_pressure","visibility":"Public","body":"if pressure = @air_pressure_actual\n pressure[:pressure]\nend"}},{"html_id":"air_pressure_actual:NamedTuple(pressure:Float64)|Nil-instance-method","name":"air_pressure_actual","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L127"},"def":{"name":"air_pressure_actual","return_type":"NamedTuple(pressure: Float64) | ::Nil","visibility":"Public","body":"@air_pressure_actual"}},{"html_id":"air_quality-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L147"},"def":{"name":"air_quality","visibility":"Public","body":"if index = @air_quality_index\n index[:airQualityIndex]\nend"}},{"html_id":"air_quality_index:NamedTuple(airQualityIndex:Float64)|Nil-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L118"},"def":{"name":"air_quality_index","return_type":"NamedTuple(airQualityIndex: Float64) | ::Nil","visibility":"Public","body":"@air_quality_index"}},{"html_id":"ambient_noise-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L143"},"def":{"name":"ambient_noise","visibility":"Public","body":"tele_presence_data.try(&.ambient_noise)"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L177"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .humidity?\n \"#{mac}->humidity->humidityInPercentage\"\nwhen .air_quality?\n \"#{mac}->airQuality->airQualityIndex\"\nwhen .people_count?\n \"#{mac}->tpData->peopleCount\"\nwhen .temperature?\n \"#{mac}->temperature->temperatureInCelsius\"\nend"}},{"html_id":"confidence_factor(*args,**options)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.confidence_factor(*args, **options)"}},{"html_id":"confidence_factor(*args,**options,&)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.confidence_factor(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"detected_position:IotPosition|Nil-instance-method","name":"detected_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L98"},"def":{"name":"detected_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@detected_position"}},{"html_id":"device:IotDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L95"},"def":{"name":"device","return_type":"IotDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device_rtc:Int64-instance-method","name":"device_rtc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L106"},"def":{"name":"device_rtc","return_type":"Int64","visibility":"Public","body":"@device_rtc"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L204"},"def":{"name":"has_position?","visibility":"Public","body":"!!(@detected_position || @placed_position)"}},{"html_id":"humidity-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L159"},"def":{"name":"humidity","visibility":"Public","body":"if humidity = @humidity_percent\n humidity[:humidityInPercentage]\nend"}},{"html_id":"humidity_percent:NamedTuple(humidityInPercentage:Float64)|Nil-instance-method","name":"humidity_percent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L124"},"def":{"name":"humidity_percent","return_type":"NamedTuple(humidityInPercentage: Float64) | ::Nil","visibility":"Public","body":"@humidity_percent"}},{"html_id":"last_seen-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L228"},"def":{"name":"last_seen","visibility":"Public","body":"tele_presence_data.try(&.time_stamp) || (has_position? ? position.time_located : device_rtc)"}},{"html_id":"last_seen=(time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":""}],"args_string":"(time)","args_html":"(time)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L232"},"def":{"name":"last_seen=","args":[{"name":"time","external_name":"time","restriction":""}],"visibility":"Public","body":"if tele_data = tele_presence_data\n tele_data.time_stamp = time\nelse\n if has_position?\n position.time_located = time\n else\n @device_rtc = time\n end\nend\ntime\n"}},{"html_id":"latitude(*args,**options)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.latitude(*args, **options)"}},{"html_id":"latitude(*args,**options,&)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.latitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L103"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L194"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude(*args,**options)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.longitude(*args, **options)"}},{"html_id":"longitude(*args,**options,&)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.longitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id(*args,**options)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.map_id(*args, **options)"}},{"html_id":"map_id(*args,**options,&)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.map_id(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id=(id)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L220"},"def":{"name":"map_id=","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"position.map_id = id"}},{"html_id":"people_count-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L135"},"def":{"name":"people_count","visibility":"Public","body":"tele_presence_data.try(&.people_count)"}},{"html_id":"pir_trigger:NamedTuple(timestamp:Int64)|Nil-instance-method","name":"pir_trigger","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L130"},"def":{"name":"pir_trigger","return_type":"NamedTuple(timestamp: Int64) | ::Nil","visibility":"Public","body":"@pir_trigger"}},{"html_id":"pir_triggered-instance-method","name":"pir_triggered","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L171"},"def":{"name":"pir_triggered","visibility":"Public","body":"if pir_trigger = @pir_trigger\n pir_trigger[:timestamp]\nend"}},{"html_id":"placed_position:IotPosition|Nil-instance-method","name":"placed_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L101"},"def":{"name":"placed_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@placed_position"}},{"html_id":"position:IotPosition-instance-method","name":"position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L208"},"def":{"name":"position","return_type":"IotPosition","visibility":"Public","body":"(@detected_position || @placed_position).not_nil!"}},{"html_id":"presence-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L139"},"def":{"name":"presence","visibility":"Public","body":"tele_presence_data.try(&.presence)"}},{"html_id":"raw_header:Int64-instance-method","name":"raw_header","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L109"},"def":{"name":"raw_header","return_type":"Int64","visibility":"Public","body":"@raw_header"}},{"html_id":"raw_payload:String-instance-method","name":"raw_payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L112"},"def":{"name":"raw_payload","return_type":"String","visibility":"Public","body":"@raw_payload"}},{"html_id":"raw_user_id-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L243"},"def":{"name":"raw_user_id","visibility":"Public","body":"\"\""}},{"html_id":"sequence_num:Int64-instance-method","name":"sequence_num","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L115"},"def":{"name":"sequence_num","return_type":"Int64","visibility":"Public","body":"@sequence_num"}},{"html_id":"ssid-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L251"},"def":{"name":"ssid","visibility":"Public","body":"\"IoT\""}},{"html_id":"tele_presence_data:TpData|Nil-instance-method","name":"tele_presence_data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L133"},"def":{"name":"tele_presence_data","return_type":"TpData | ::Nil","visibility":"Public","body":"@tele_presence_data"}},{"html_id":"temperature-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L153"},"def":{"name":"temperature","visibility":"Public","body":"if temp = @temperature_celsius\n temp[:temperatureInCelsius]\nend"}},{"html_id":"temperature_celsius:NamedTuple(temperatureInCelsius:Float64)|Nil-instance-method","name":"temperature_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L121"},"def":{"name":"temperature_celsius","return_type":"NamedTuple(temperatureInCelsius: Float64) | ::Nil","visibility":"Public","body":"@temperature_celsius"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L247"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"3.0"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L224"},"def":{"name":"visit_id","visibility":"Public","body":"\"unknown for IoT\""}},{"html_id":"x_pos(*args,**options)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.x_pos(*args, **options)"}},{"html_id":"x_pos(*args,**options,&)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.x_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"y_pos(*args,**options)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.y_pos(*args, **options)"}},{"html_id":"y_pos(*args,**options,&)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.y_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","path":"Cisco/DNASpaces/IotTelemetryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L131"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:IotTelemetry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L134"},"def":{"name":"payload","return_type":"IotTelemetry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","path":"Cisco/DNASpaces/KeepAlive.html","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L46"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L48"},"def":{"name":"payload","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/Location","path":"Cisco/DNASpaces/Location.html","kind":"class","full_name":"Cisco::DNASpaces::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"descriptions(mappings={}ofString=>String)-instance-method","name":"descriptions","doc":"Maps location_ids to location names","summary":"

Maps location_ids to location names

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L25"},"def":{"name":"descriptions","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.descriptions(mappings))\nmappings[location_id] = name\nmappings\n"}},{"html_id":"details(mappings={}ofString=>String)-instance-method","name":"details","doc":"Maps tag names to location_ids","summary":"

Maps tag names to location_ids

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L18"},"def":{"name":"details","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.details(mappings))\ntags.each do |tag|\n mappings[tag] = location_id\nend\nmappings\n"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L7"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"parent:Location|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L15"},"def":{"name":"parent","return_type":"Location | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","doc":"TODO:: this might be better as an enum\nif there are only limited types","summary":"

TODO : this might be better as an enum if there are only limited types

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L13"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange","path":"Cisco/DNASpaces/LocationChange.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_type:String-instance-method","name":"change_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L7"},"def":{"name":"change_type","return_type":"String","visibility":"Public","body":"@change_type"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L8"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/LocationChange/LocationDetails","path":"Cisco/DNASpaces/LocationChange/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L25"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L22"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L24"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L27"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L28"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"metadata:Array(Metadata)-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L30"},"def":{"name":"metadata","return_type":"Array(Metadata)","visibility":"Public","body":"@metadata"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L23"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L21"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange/Metadata","path":"Cisco/DNASpaces/LocationChange/Metadata.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L13"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"values:Array(String)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L14"},"def":{"name":"values","return_type":"Array(String)","visibility":"Public","body":"@values"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","path":"Cisco/DNASpaces/LocationChangeWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L74"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L75"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:LocationChange-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L78"},"def":{"name":"payload","return_type":"LocationChange","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationDetails","path":"Cisco/DNASpaces/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L12"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L9"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L11"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L14"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L15"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L10"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L7"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationInfo","path":"Cisco/DNASpaces/LocationInfo.html","kind":"class","full_name":"Cisco::DNASpaces::LocationInfo","name":"LocationInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L156"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L157"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:LocationDetails-instance-method","name":"details","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L162"},"def":{"name":"details","return_type":"LocationDetails","visibility":"Public","body":"@details"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L159"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}]},{"html_id":"drivers/Cisco/DNASpaces/MapInfo","path":"Cisco/DNASpaces/MapInfo.html","kind":"class","full_name":"Cisco::DNASpaces::MapInfo","name":"MapInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dimension:Cisco::DNASpaces::Dimension-instance-method","name":"dimension","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L29"},"def":{"name":"dimension","return_type":"Cisco::DNASpaces::Dimension","visibility":"Public","body":"@dimension"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L21"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_height:Float64-instance-method","name":"image_height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L27"},"def":{"name":"image_height","return_type":"Float64","visibility":"Public","body":"@image_height"}},{"html_id":"image_width:Float64-instance-method","name":"image_width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L24"},"def":{"name":"image_width","return_type":"Float64","visibility":"Public","body":"@image_width"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdate","path":"Cisco/DNASpaces/PeopleCountUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdate","name":"PeopleCountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is triggered from telepresence devices","summary":"

This is triggered from telepresence devices

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L25"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L19"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L22"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L9"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L13"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L10"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L28"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L16"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L31"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"tp_device_id:String-instance-method","name":"tp_device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L8"},"def":{"name":"tp_device_id","return_type":"String","visibility":"Public","body":"@tp_device_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","path":"Cisco/DNASpaces/PeopleCountUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L88"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L89"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:PeopleCountUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L92"},"def":{"name":"payload","return_type":"PeopleCountUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","path":"Cisco/DNASpaces/ProfileUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L68"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:Device-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L71"},"def":{"name":"payload","return_type":"Device","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiMeasurement","path":"Cisco/DNASpaces/RssiMeasurement.html","kind":"class","full_name":"Cisco::DNASpaces::RssiMeasurement","name":"RssiMeasurement","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"antenna_id:Int32-instance-method","name":"antenna_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id","return_type":"Int32","visibility":"Public","body":"@antenna_id"}},{"html_id":"antenna_id=(antenna_id:Int32)-instance-method","name":"antenna_id=","abstract":false,"args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"args_string":"(antenna_id : Int32)","args_html":"(antenna_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id=","args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"visibility":"Public","body":"@antenna_id = antenna_id"}},{"html_id":"band_id:Int32-instance-method","name":"band_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id","return_type":"Int32","visibility":"Public","body":"@band_id"}},{"html_id":"band_id=(band_id:Int32)-instance-method","name":"band_id=","abstract":false,"args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"args_string":"(band_id : Int32)","args_html":"(band_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id=","args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"visibility":"Public","body":"@band_id = band_id"}},{"html_id":"if_slot_id:Int32-instance-method","name":"if_slot_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id","return_type":"Int32","visibility":"Public","body":"@if_slot_id"}},{"html_id":"if_slot_id=(if_slot_id:Int32)-instance-method","name":"if_slot_id=","abstract":false,"args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"args_string":"(if_slot_id : Int32)","args_html":"(if_slot_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id=","args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"visibility":"Public","body":"@if_slot_id = if_slot_id"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiNotification","path":"Cisco/DNASpaces/RssiNotification.html","kind":"class","full_name":"Cisco::DNASpaces::RssiNotification","name":"RssiNotification","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"measurements:Array(RssiMeasurement)-instance-method","name":"measurements","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements","return_type":"Array(RssiMeasurement)","visibility":"Public","body":"@measurements"}},{"html_id":"measurements=(measurements:Array(RssiMeasurement))-instance-method","name":"measurements=","abstract":false,"args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"args_string":"(measurements : Array(RssiMeasurement))","args_html":"(measurements : Array(RssiMeasurement))","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements=","args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"visibility":"Public","body":"@measurements = measurements"}},{"html_id":"payload:BlePayload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload","return_type":"BlePayload","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:BlePayload)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"args_string":"(payload : BlePayload)","args_html":"(payload : BlePayload)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"visibility":"Public","body":"@payload = payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/TpData","path":"Cisco/DNASpaces/TpData.html","kind":"class","full_name":"Cisco::DNASpaces::TpData","name":"TpData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"active_calls=(active_calls:Int32)-instance-method","name":"active_calls=","abstract":false,"args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"args_string":"(active_calls : Int32)","args_html":"(active_calls : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls=","args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"visibility":"Public","body":"@active_calls = active_calls"}},{"html_id":"air_quality_index:Float64-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index","return_type":"Float64","visibility":"Public","body":"@air_quality_index"}},{"html_id":"air_quality_index=(air_quality_index:Float64)-instance-method","name":"air_quality_index=","abstract":false,"args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"args_string":"(air_quality_index : Float64)","args_html":"(air_quality_index : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index=","args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"visibility":"Public","body":"@air_quality_index = air_quality_index"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_noise=(ambient_noise:Int32)-instance-method","name":"ambient_noise=","abstract":false,"args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"args_string":"(ambient_noise : Int32)","args_html":"(ambient_noise : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise=","args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"visibility":"Public","body":"@ambient_noise = ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"dryness_score=(dryness_score:Int32)-instance-method","name":"dryness_score=","abstract":false,"args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"args_string":"(dryness_score : Int32)","args_html":"(dryness_score : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score=","args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"visibility":"Public","body":"@dryness_score = dryness_score"}},{"html_id":"humidity_in_percentage:Float64-instance-method","name":"humidity_in_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage","return_type":"Float64","visibility":"Public","body":"@humidity_in_percentage"}},{"html_id":"humidity_in_percentage=(humidity_in_percentage:Float64)-instance-method","name":"humidity_in_percentage=","abstract":false,"args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"args_string":"(humidity_in_percentage : Float64)","args_html":"(humidity_in_percentage : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage=","args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"visibility":"Public","body":"@humidity_in_percentage = humidity_in_percentage"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"people_count=(people_count:Int32)-instance-method","name":"people_count=","abstract":false,"args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"args_string":"(people_count : Int32)","args_html":"(people_count : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count=","args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"visibility":"Public","body":"@people_count = people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L88"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"presentation_state=(presentation_state:Int32)-instance-method","name":"presentation_state=","abstract":false,"args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"args_string":"(presentation_state : Int32)","args_html":"(presentation_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state=","args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"visibility":"Public","body":"@presentation_state = presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"standby_state=(standby_state:Int32)-instance-method","name":"standby_state=","abstract":false,"args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"args_string":"(standby_state : Int32)","args_html":"(standby_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state=","args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"visibility":"Public","body":"@standby_state = standby_state"}},{"html_id":"temperature_in_celsius:Float64-instance-method","name":"temperature_in_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius","return_type":"Float64","visibility":"Public","body":"@temperature_in_celsius"}},{"html_id":"temperature_in_celsius=(temperature_in_celsius:Float64)-instance-method","name":"temperature_in_celsius=","abstract":false,"args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"args_string":"(temperature_in_celsius : Float64)","args_html":"(temperature_in_celsius : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius=","args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"visibility":"Public","body":"@temperature_in_celsius = temperature_in_celsius"}},{"html_id":"time_stamp:Int64-instance-method","name":"time_stamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp","return_type":"Int64","visibility":"Public","body":"@time_stamp"}},{"html_id":"time_stamp=(time_stamp:Int64)-instance-method","name":"time_stamp=","abstract":false,"args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"args_string":"(time_stamp : Int64)","args_html":"(time_stamp : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp=","args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"visibility":"Public","body":"@time_stamp = time_stamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence","path":"Cisco/DNASpaces/UserPresence.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_users_count:UserCount-instance-method","name":"active_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L79"},"def":{"name":"active_users_count","return_type":"UserCount","visibility":"Public","body":"@active_users_count"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L64"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L61"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L70"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L67"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_users_count:UserCount-instance-method","name":"inactive_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L82"},"def":{"name":"inactive_users_count","return_type":"UserCount","visibility":"Public","body":"@inactive_users_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L52"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L46"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L55"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L76"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L51"},"def":{"name":"user","return_type":"User","visibility":"Public","body":"@user"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L73"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L58"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L49"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/UserPresence/User","path":"Cisco/DNASpaces/UserPresence/User.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L13"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L16"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L20"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L17"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L23"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L15"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L26"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L14"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence/UserCount","path":"Cisco/DNASpaces/UserPresence/UserCount.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::UserCount","name":"UserCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"total_users:Int64-instance-method","name":"total_users","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L42"},"def":{"name":"total_users","return_type":"Int64","visibility":"Public","body":"@total_users"}},{"html_id":"users_with_user_id:Int64-instance-method","name":"users_with_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L36"},"def":{"name":"users_with_user_id","return_type":"Int64","visibility":"Public","body":"@users_with_user_id"}},{"html_id":"users_without_user_id:Int64-instance-method","name":"users_without_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L39"},"def":{"name":"users_without_user_id","return_type":"Int64","visibility":"Public","body":"@users_without_user_id"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","path":"Cisco/DNASpaces/UserPresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L102"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L103"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:UserPresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L106"},"def":{"name":"payload","return_type":"UserPresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexDeviceInfo","path":"Cisco/DNASpaces/WebexDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::WebexDeviceInfo","name":"WebexDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html","summary":"

https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L22"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L15"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L34"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"serial_number:String-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L25"},"def":{"name":"serial_number","return_type":"String","visibility":"Public","body":"@serial_number"}},{"html_id":"software_version:String-instance-method","name":"software_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L28"},"def":{"name":"software_version","return_type":"String","visibility":"Public","body":"@software_version"}},{"html_id":"type:String-instance-method","name":"type","doc":"these fields are named to be compatible with the IoT field names","summary":"

these fields are named to be compatible with the IoT field names

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L19"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"workspace_id:String-instance-method","name":"workspace_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L31"},"def":{"name":"workspace_id","return_type":"String","visibility":"Public","body":"@workspace_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetry","path":"Cisco/DNASpaces/WebexTelemetry.html","kind":"struct","full_name":"Cisco::DNASpaces::WebexTelemetry","name":"WebexTelemetry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L49"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"@air_quality"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L55"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_temp:Float64|Nil-instance-method","name":"ambient_temp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L52"},"def":{"name":"ambient_temp","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_temp"}},{"html_id":"count:Int32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L43"},"def":{"name":"count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"presence:Bool|Nil-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L40"},"def":{"name":"presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@presence"}},{"html_id":"relative_humidity:Float64|Nil-instance-method","name":"relative_humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L58"},"def":{"name":"relative_humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"@relative_humidity"}},{"html_id":"sound_level:Float64|Nil-instance-method","name":"sound_level","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L46"},"def":{"name":"sound_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@sound_level"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdate","path":"Cisco/DNASpaces/WebexTelemetryUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdate","name":"WebexTelemetryUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L61"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L62"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L83"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @air_quality).nil?\n @air_quality = (telemetries.compact_map(&.air_quality).first?)\nelse\n __temp_1\nend"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L91"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @ambient_noise).nil?\n @ambient_noise = (telemetries.compact_map(&.ambient_noise).first?)\nelse\n __temp_1\nend"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L128"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .presence?\n \"#{mac}->presence\"\nwhen .humidity?\n \"#{mac}->humidity\"\nwhen .air_quality?\n \"#{mac}->air_quality\"\nwhen .people_count?\n \"#{mac}->people_count\"\nwhen .temperature?\n \"#{mac}->temperature\"\nwhen .sound_pressure?\n \"#{mac}->ambient_noise\"\nend"}},{"html_id":"device:WebexDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device","return_type":"WebexDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device=(device:WebexDeviceInfo)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"args_string":"(device : WebexDeviceInfo)","args_html":"(device : WebexDeviceInfo)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"visibility":"Public","body":"@device = device"}},{"html_id":"humidity:Float64|Nil-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L79"},"def":{"name":"humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @humidity).nil?\n @humidity = (telemetries.compact_map(&.relative_humidity).first?)\nelse\n __temp_1\nend"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @last_seen).nil?\n @last_seen = (Time.utc.to_unix_ms)\nelse\n __temp_1\nend"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L165"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L71"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @people_count).nil?\n @people_count = (telemetries.compact_map(&.count).first? || 0)\nelse\n __temp_1\nend"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L75"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @presence).nil?\n @presence = (telemetries.compact_map(&.presence).first? || (people_count > 0))\nelse\n __temp_1\nend"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L157"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"telemetries:Array(WebexTelemetry)-instance-method","name":"telemetries","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries","return_type":"Array(WebexTelemetry)","visibility":"Public","body":"if (__temp_1 = @telemetries).nil?\n @telemetries = ([] of WebexTelemetry)\nelse\n __temp_1\nend"}},{"html_id":"telemetries=(telemetries:Array(WebexTelemetry))-instance-method","name":"telemetries=","abstract":false,"args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"args_string":"(telemetries : Array(WebexTelemetry))","args_html":"(telemetries : Array(WebexTelemetry))","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries=","args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"visibility":"Public","body":"@telemetries = telemetries"}},{"html_id":"temperature:Float64|Nil-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L87"},"def":{"name":"temperature","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @temperature).nil?\n @temperature = (telemetries.compact_map(&.ambient_temp).first?)\nelse\n __temp_1\nend"}},{"html_id":"update_telemetry-instance-method","name":"update_telemetry","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L95"},"def":{"name":"update_telemetry","visibility":"Public","body":"telemetries.each do |telemetry|\n if !telemetry.presence.nil?\n @presence = telemetry.presence\n next\n end\n if count = telemetry.count\n @people_count = count\n next\n end\n if float = telemetry.relative_humidity\n @humidity = float\n next\n end\n if float = telemetry.air_quality\n @air_quality = float\n next\n end\n if float = telemetry.ambient_temp\n @temperature = float\n next\n end\n if float = telemetry.ambient_noise\n @ambient_noise = float\n end\nend"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L153"},"def":{"name":"visit_id","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","path":"Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L137"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L138"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:WebexTelemetryUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L141"},"def":{"name":"payload","return_type":"WebexTelemetryUpdate","visibility":"Public","body":"@payload"}}]}]},{"html_id":"drivers/Cisco/Ise","path":"Cisco/Ise.html","kind":"module","full_name":"Cisco::Ise","name":"Ise","abstract":false,"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Ise/Guests","path":"Cisco/Ise/Guests.html","kind":"class","full_name":"Cisco::Ise::Guests","name":"Guests","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/vnd.com.cisco.ise.identity.guestuser.2.0+xml\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest(event_start:Int64,attendee_email:String,attendee_name:String,company_name:String|Nil=nil,phone_number:String=\"0123456789\",sms_service_provider:String|Nil=nil,guest_type:String|Nil=nil,portal_id:String|Nil=nil)-instance-method","name":"create_guest","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"args_string":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = \"0123456789\", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","args_html":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = "0123456789", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L49"},"def":{"name":"create_guest","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"guest_names = attendee_name.split\nfirst_name_index_end = guest_names.size > 1 ? -2 : -1\nfirst_name = guest_names[0..first_name_index_end].join(' ')\nlast_name = guest_names[-1]\nusername = genererate_username(first_name, last_name)\nif setting?(Bool, :test)\n return {\"username\" => username, \"password\" => UUID.random.to_s[0..3]}.merge(@custom_data)\nend\nsms_service_provider || (sms_service_provider = @sms_service_provider)\nguest_type || (guest_type = @guest_type)\nportal_id || (portal_id = @portal_id)\ntime_object = (Time.unix(event_start)).in(@timezone)\nfrom_date = time_object.at_beginning_of_day.to_s(TIME_FORMAT)\nto_date = time_object.at_end_of_day.to_s(TIME_FORMAT)\ncompany_name || (company_name = ((attendee_email.split('@'))[1].split('.'))[0].capitalize)\nxml_string = \"\\n \"\nif @location\n xml_string = xml_string + \"\\n \"\nend\nxml_string = xml_string + \"\\n \\n #{from_date}\"\nif @location\n xml_string = xml_string + \"\\n #{@location}\"\nend\nxml_string = xml_string + \"\\n #{to_date}\\n 1\\n \\n \\n #{company_name}\\n #{attendee_email}\\n #{first_name}\\n #{last_name}\\n English\\n #{phone_number}\"\nif sms_service_provider\n xml_string = xml_string + \"\\n #{sms_service_provider}\"\nend\nxml_string = xml_string + \"\\n #{username}\\n \\n #{guest_type}\\n #{portal_id}\\n \"\nresponse = post(\"/guestuser/\", body: xml_string, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\nguest_id = (response.headers[\"Location\"].split('/')).last\n(guest_crendentials(guest_id)).merge(@custom_data)\n"}},{"html_id":"guest_crendentials(id:String)-instance-method","name":"guest_crendentials","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L136"},"def":{"name":"guest_crendentials","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/guestuser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nparsed_body = XML.parse(response.body)\nguest_user = parsed_body.first_element_child.not_nil!\nguest_info = guest_user.children.find do |c|\n c.name == \"guestInfo\"\nend.not_nil!\n{\"username\" => guest_info.children.find do |c|\n c.name == \"userName\"\nend.not_nil!.content, \"password\" => guest_info.children.find do |c|\n c.name == \"password\"\nend.not_nil!.content}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@basic_auth = \"Basic #{Base64.strict_encode(\"#{setting?(String, :username)}:#{setting?(String, :password)}\")}\"\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@location = setting?(String, :location)\n@sms_service_provider = setting?(String, :sms_service_provider)\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, JSON::Any::Type), :custom_data)) || ({} of String => JSON::Any::Type)\n"}},{"html_id":"test2-instance-method","name":"test2","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L160"},"def":{"name":"test2","visibility":"Public","body":"xml_string = \"\\n\\n\\n08/06/2014 23:22\\n08/07/2014 23:22\\n1\\n\\n\\nNew Company\\njohn@example.com\\nJohn\\nDoe\\nEnglish\\n9999998877\\nGlobal Default\\nautoguestuser1\\n\\nDaily\\nsponsor\\nportal101\\ninterview\\n\"\ntest_xml(xml_string)\n"}},{"html_id":"test_json(json:String)-instance-method","name":"test_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L186"},"def":{"name":"test_json","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: json, headers: {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"test_xml(xml_string:String)-instance-method","name":"test_xml","abstract":false,"args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"args_string":"(xml_string : String)","args_html":"(xml_string : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L151"},"def":{"name":"test_xml","args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: (XML.parse(xml_string)).to_s, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}}]},{"html_id":"drivers/Cisco/Ise/Models","path":"Cisco/Ise/Models.html","kind":"module","full_name":"Cisco::Ise::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"types":[{"html_id":"drivers/Cisco/Ise/Models/InternalUser","path":"Cisco/Ise/Models/InternalUser.html","kind":"class","full_name":"Cisco::Ise::Models::InternalUser","name":"InternalUser","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Ise/Models","kind":"module","full_name":"Cisco::Ise::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_password:Bool-instance-method","name":"change_password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password","return_type":"Bool","visibility":"Public","body":"@change_password"}},{"html_id":"change_password=(change_password:Bool)-instance-method","name":"change_password=","abstract":false,"args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"args_string":"(change_password : Bool)","args_html":"(change_password : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password=","args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"visibility":"Public","body":"@change_password = change_password"}},{"html_id":"custom_attributes:Hash(String,String)-instance-method","name":"custom_attributes","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes","return_type":"Hash(String, String)","visibility":"Public","body":"@custom_attributes"}},{"html_id":"custom_attributes=(custom_attributes:Hash(String,String))-instance-method","name":"custom_attributes=","abstract":false,"args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"args_string":"(custom_attributes : Hash(String, String))","args_html":"(custom_attributes : Hash(String, String))","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes=","args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@custom_attributes = custom_attributes"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"enabled=(enabled:Bool)-instance-method","name":"enabled=","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"args_string":"(enabled : Bool)","args_html":"(enabled : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled=","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"visibility":"Public","body":"@enabled = enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"identity_groups:String|Nil-instance-method","name":"identity_groups","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups","return_type":"String | ::Nil","visibility":"Public","body":"@identity_groups"}},{"html_id":"identity_groups=(identity_groups:String|Nil)-instance-method","name":"identity_groups=","abstract":false,"args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"args_string":"(identity_groups : String | Nil)","args_html":"(identity_groups : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups=","args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"visibility":"Public","body":"@identity_groups = identity_groups"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"password:String|Nil-instance-method","name":"password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password","return_type":"String | ::Nil","visibility":"Public","body":"@password"}},{"html_id":"password=(password:String|Nil)-instance-method","name":"password=","abstract":false,"args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(password : String | Nil)","args_html":"(password : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password=","args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"@password = password"}},{"html_id":"password_store:String-instance-method","name":"password_store","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store","return_type":"String","visibility":"Public","body":"@password_store"}},{"html_id":"password_store=(password_store:String)-instance-method","name":"password_store=","abstract":false,"args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"args_string":"(password_store : String)","args_html":"(password_store : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store=","args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"visibility":"Public","body":"@password_store = password_store"}}]}]},{"html_id":"drivers/Cisco/Ise/NetworkAccess","path":"Cisco/Ise/NetworkAccess.html","kind":"class","full_name":"Cisco::Ise::NetworkAccess","name":"NetworkAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/network_access.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/json\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_internal_user(email:String,name:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,password:String|Nil=nil,identity_groups:Array(String)=[]ofString)-instance-method","name":"create_internal_user","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","args_html":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L75"},"def":{"name":"create_internal_user","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"name || (name = email)\npassword || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = Models::InternalUser.from_json({name: name, email: email, password: password, firstName: first_name, lastName: last_name, description: description, identityGroups: identity_groups.join(\",\")}.to_json)\nif @debug\n logger.debug do\n \"Creating Internal User: #{internal_user.to_json}\"\n end\nend\nresponse = post(\"/internaluser/\", body: {\"InternalUser\" => internal_user}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"Failed to create internal user, code #{response.status_code}\\n#{response.body}\")\nend\nuser = get_internal_user_by_name(name)\nuser.password = password\nuser\n"}},{"html_id":"get_internal_user_by_email(email:String)-instance-method","name":"get_internal_user_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L156"},"def":{"name":"get_internal_user_by_email","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/?filter=email.CONTAINS.#{email}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\nresources = parsed_body[\"SearchResult\"].as_h[\"resources\"].as_a\nif resources.empty?\n raise(\"returned body has no resources\")\nend\nget_internal_user_by_id(resources.first.as_h[\"id\"].to_s)\n"}},{"html_id":"get_internal_user_by_id(id:String)-instance-method","name":"get_internal_user_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L122"},"def":{"name":"get_internal_user_by_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by id, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"get_internal_user_by_name(name:String)-instance-method","name":"get_internal_user_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L139"},"def":{"name":"get_internal_user_by_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/name/#{name}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by name, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/network_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L49"},"def":{"name":"on_update","visibility":"Public","body":"username = setting?(String, :username)\npassword = setting?(String, :password)\n@basic_auth = [\"Basic\", Base64.strict_encode([username, password].join(\":\"))].join(\" \")\n@debug = (setting?(Bool, :debug)) || false\n@test_mode = (setting?(Bool, :test)) || false\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@sms_service_provider = setting?(String, :sms_service_provider)\n@password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, String), :custom_data)) || ({} of String => String)\nif @debug\n logger.debug do\n \"Basic auth details: #{@basic_auth}\"\n end\nend\n"}},{"html_id":"update_internal_user_identity_groups_by_email(email:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, identity_groups : Array(String))","args_html":"(email : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L258"},"def":{"name":"update_internal_user_identity_groups_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_email(email)\nupdate_internal_user_identity_groups_by_id(internal_user.id.to_s, identity_groups)\n"}},{"html_id":"update_internal_user_identity_groups_by_id(id:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(id : String, identity_groups : Array(String))","args_html":"(id : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L232"},"def":{"name":"update_internal_user_identity_groups_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_id(id)\nresponse = put(\"/internaluser/#{internal_user.id}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_identity_groups_by_name(name:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(name : String, identity_groups : Array(String))","args_html":"(name : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L246"},"def":{"name":"update_internal_user_identity_groups_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"response = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_email(email:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(email : String, password : String | Nil = nil)","args_html":"(email : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L218"},"def":{"name":"update_internal_user_password_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = get_internal_user_by_email(email)\nupdate_internal_user_password_by_id(internal_user.id.to_s, password)\n"}},{"html_id":"update_internal_user_password_by_id(id:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(id : String, password : String | Nil = nil)","args_html":"(id : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L176"},"def":{"name":"update_internal_user_password_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/#{id}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_name(name:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(name : String, password : String | Nil = nil)","args_html":"(name : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L197"},"def":{"name":"update_internal_user_password_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}}]}]},{"html_id":"drivers/Cisco/Meraki","path":"Cisco/Meraki.html","kind":"module","full_name":"Cisco::Meraki","name":"Meraki","abstract":false,"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L6"},{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L4"},{"filename":"src/cisco/meraki/scanning_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"\"%FT%T%z\""}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"doc":"Meraki MQTT Data Models","summary":"

Meraki MQTT Data Models

","types":[{"html_id":"drivers/Cisco/Meraki/AlertType","path":"Cisco/Meraki/AlertType.html","kind":"enum","full_name":"Cisco::Meraki::AlertType","name":"AlertType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L365"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PortConnected","name":"PortConnected","value":"0"},{"id":"PortDisconnected","name":"PortDisconnected","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"port_connected?-instance-method","name":"port_connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L366"},"def":{"name":"port_connected?","visibility":"Public","body":"self == PortConnected"}},{"html_id":"port_disconnected?-instance-method","name":"port_disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L367"},"def":{"name":"port_disconnected?","visibility":"Public","body":"self == PortDisconnected"}}]},{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","path":"Cisco/Meraki/CameraAnalytics.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601_MS","name":"ISO8601_MS","value":"\"%FT%T.%3N%z\""}],"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ts:Time-instance-method","name":"ts","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts","return_type":"Time","visibility":"Public","body":"@ts"}},{"html_id":"ts=(ts:Time)-instance-method","name":"ts=","abstract":false,"args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"args_string":"(ts : Time)","args_html":"(ts : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts=","args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"visibility":"Public","body":"@ts = ts"}},{"html_id":"zones:Hash(Int64,PeopleCount)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones","return_type":"Hash(Int64, PeopleCount)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Hash(Int64,PeopleCount))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"args_string":"(zones : Hash(Int64, PeopleCount))","args_html":"(zones : Hash(Int64, PeopleCount))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"visibility":"Public","body":"@zones = zones"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraAnalytics/PeopleCount","path":"Cisco/Meraki/CameraAnalytics/PeopleCount.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics::PeopleCount","name":"PeopleCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person:Int32-instance-method","name":"person","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person","return_type":"Int32","visibility":"Public","body":"@person"}},{"html_id":"person=(person:Int32)-instance-method","name":"person=","abstract":false,"args":[{"name":"person","external_name":"person","restriction":"Int32"}],"args_string":"(person : Int32)","args_html":"(person : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person=","args":[{"name":"person","external_name":"person","restriction":"Int32"}],"visibility":"Public","body":"@person = person"}}]}]},{"html_id":"drivers/Cisco/Meraki/CameraZone","path":"Cisco/Meraki/CameraZone.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L302"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L303"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"distance:Float64-instance-method","name":"distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance","return_type":"Float64","visibility":"Public","body":"@distance"}},{"html_id":"distance=(distance:Float64)-instance-method","name":"distance=","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"args_string":"(distance : Float64)","args_html":"(distance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance=","args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"visibility":"Public","body":"@distance = distance"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L315"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"label:String-instance-method","name":"label","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L317"},"def":{"name":"label","return_type":"String","visibility":"Public","body":"@label"}},{"html_id":"mid_point-instance-method","name":"mid_point","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L325"},"def":{"name":"mid_point","visibility":"Public","body":"mid_x = (region.x0.to_f64 + region.x1.to_f64) / 2.0\nmid_y = (region.y0.to_f64 + region.y1.to_f64) / 2.0\n{mid_x, mid_y}\n"}},{"html_id":"region:Region-instance-method","name":"region","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L320"},"def":{"name":"region","return_type":"Region","visibility":"Public","body":"@region"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L316"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L331"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @x).nil?\n @x = (begin\n xpos, @y = mid_point\n xpos\n end)\nelse\n __temp_1\nend"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L336"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @y).nil?\n @y = (begin\n @x, ypos = mid_point\n ypos\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraZone/Region","path":"Cisco/Meraki/CameraZone/Region.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone::Region","name":"Region","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L305"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraZone","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L306"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x0:String-instance-method","name":"x0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L308"},"def":{"name":"x0","return_type":"String","visibility":"Public","body":"@x0"}},{"html_id":"x1:String-instance-method","name":"x1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L310"},"def":{"name":"x1","return_type":"String","visibility":"Public","body":"@x1"}},{"html_id":"y0:String-instance-method","name":"y0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L309"},"def":{"name":"y0","return_type":"String","visibility":"Public","body":"@y0"}},{"html_id":"y1:String-instance-method","name":"y1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L311"},"def":{"name":"y1","return_type":"String","visibility":"Public","body":"@y1"}}]}]},{"html_id":"drivers/Cisco/Meraki/CaptivePortal","path":"Cisco/Meraki/CaptivePortal.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"JSON_HEADERS","name":"JSON_HEADERS","value":"{\"Content-Type\" => \"application/json\"}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"challenge(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"challenge","doc":"Webhook for providing guest access","summary":"

Webhook for providing guest access

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L94"},"def":{"name":"challenge","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"guest access attempt: #{method},\\nheaders #{headers},\\nbody #{body}\"\n end\n challenge = ChallengePayload.from_json(body)\n check_code = challenge.code\n guest_codes = generate_guest_data(challenge.email, Time.utc.to_unix, challenge.timezone)\n matched = (guest_codes.scan(/.{#{@code_length}}/)).count do |code|\n code[0] == check_code\n end > 0\n if matched\n challenge.expires = @access_duration.from_now\n @guests[format_mac(challenge.client_mac)] = challenge\n @granted = @granted + 1_u64\n self[:granted_access] = @granted\n redirect_url = \"#{challenge.base_grant_url}?duration=#{@access_duration.to_i}&continue_url=#{challenge.user_continue || @success_url}\"\n response = {redirect_to: redirect_url}.to_json\n logger.debug do\n \"successful joined network #{challenge.inspect}\"\n end\n {HTTP::Status::OK, JSON_HEADERS, response}\n else\n @denied = @denied + 1_u64\n self[:denied_access] = @denied\n logger.debug do\n \"failed wifi access attempt by #{challenge.inspect}\"\n end\n {HTTP::Status::NOT_ACCEPTABLE, JSON_HEADERS, \"{}\"}\n end\nrescue error\n @errors = @errors + 1_u64\n self[:errors] = @errors\n last_error = error.inspect_with_backtrace\n self[:last_error] = last_error\n logger.error do\n \"failed to parse wifi challenge payload\\n#{error}\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR, EMPTY_HEADERS, nil}\nend"}},{"html_id":"generate_guest_data(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_data","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L58"},"def":{"name":"generate_guest_data","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_zone = time_zone.presence ? Time::Location.load(time_zone.not_nil!) : @default_timezone\ndate = ((Time.unix(time)).in(time_zone)).to_s(@date_format)\nguest_string = \"#{email.downcase}-#{date}-#{@wifi_secret}\"\n((OpenSSL::Digest.new(\"SHA256\")).update(guest_string)).final.hexstring\n"}},{"html_id":"generate_guest_token(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_token","doc":"Splits the SHA256 into code length and then randomly selects one","summary":"

Splits the SHA256 into code length and then randomly selects one

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L67"},"def":{"name":"generate_guest_token","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"(((generate_guest_data(email, time, time_zone)).scan(/.{#{@code_length}}/)).sample(1))[0][0]"}},{"html_id":"guests:Hash(String,Cisco::Meraki::CaptivePortal::ChallengePayload)-instance-method","name":"guests","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L49"},"def":{"name":"guests","visibility":"Public","body":"@guests"}},{"html_id":"lookup(mac:String)-instance-method","name":"lookup","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L54"},"def":{"name":"lookup","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@guests[format_mac(mac)]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@wifi_secret = (setting?(String, :wifi_secret)) || \"anything really\"\n@date_format = (setting?(String, :date_format)) || \"%Y%m%d\"\n@success_url = (setting?(String, :success_url)) || \"https://place.technology/\"\n@access_duration = ((setting?(Int32, :access_duration)) || 12).hours\n@code_length = (setting?(Int32, :code_length)) || 4\ntime_zone = (setting?(String, :default_timezone)).presence\nif time_zone\n @default_timezone = Time::Location.load(time_zone)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CaptivePortal/ChallengePayload","path":"Cisco/Meraki/CaptivePortal/ChallengePayload.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal::ChallengePayload","name":"ChallengePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CaptivePortal","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"base_grant_url:String-instance-method","name":"base_grant_url","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url","return_type":"String","visibility":"Public","body":"@base_grant_url"}},{"html_id":"base_grant_url=(base_grant_url:String)-instance-method","name":"base_grant_url=","abstract":false,"args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"args_string":"(base_grant_url : String)","args_html":"(base_grant_url : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url=","args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"visibility":"Public","body":"@base_grant_url = base_grant_url"}},{"html_id":"client_ip:String-instance-method","name":"client_ip","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip","return_type":"String","visibility":"Public","body":"@client_ip"}},{"html_id":"client_ip=(client_ip:String)-instance-method","name":"client_ip=","abstract":false,"args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"args_string":"(client_ip : String)","args_html":"(client_ip : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip=","args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"visibility":"Public","body":"@client_ip = client_ip"}},{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"code:String-instance-method","name":"code","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code","return_type":"String","visibility":"Public","body":"@code"}},{"html_id":"code=(code:String)-instance-method","name":"code=","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"}],"args_string":"(code : String)","args_html":"(code : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"String"}],"visibility":"Public","body":"@code = code"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expires:Time|Nil-instance-method","name":"expires","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires","return_type":"Time | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time|Nil)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"args_string":"(expires : Time | Nil)","args_html":"(expires : Time | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@expires = expires"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_continue:String|Nil-instance-method","name":"user_continue","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue","return_type":"String | ::Nil","visibility":"Public","body":"@user_continue"}},{"html_id":"user_continue=(user_continue:String|Nil)-instance-method","name":"user_continue=","abstract":false,"args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"args_string":"(user_continue : String | Nil)","args_html":"(user_continue : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue=","args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user_continue = user_continue"}}]}]},{"html_id":"drivers/Cisco/Meraki/Client","path":"Cisco/Meraki/Client.html","kind":"class","full_name":"Cisco::Meraki::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"first_seen:String-instance-method","name":"first_seen","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen","return_type":"String","visibility":"Public","body":"@first_seen"}},{"html_id":"first_seen=(first_seen:String)-instance-method","name":"first_seen=","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"args_string":"(first_seen : String)","args_html":"(first_seen : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen=","args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"visibility":"Public","body":"@first_seen = first_seen"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"ip:String|Nil-instance-method","name":"ip","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip","return_type":"String | ::Nil","visibility":"Public","body":"@ip"}},{"html_id":"ip6:String|Nil-instance-method","name":"ip6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6","return_type":"String | ::Nil","visibility":"Public","body":"@ip6"}},{"html_id":"ip6=(ip6:String|Nil)-instance-method","name":"ip6=","abstract":false,"args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"args_string":"(ip6 : String | Nil)","args_html":"(ip6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6=","args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6 = ip6"}},{"html_id":"ip6_local:String|Nil-instance-method","name":"ip6_local","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local","return_type":"String | ::Nil","visibility":"Public","body":"@ip6_local"}},{"html_id":"ip6_local=(ip6_local:String|Nil)-instance-method","name":"ip6_local=","abstract":false,"args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"args_string":"(ip6_local : String | Nil)","args_html":"(ip6_local : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local=","args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6_local = ip6_local"}},{"html_id":"ip=(ip:String|Nil)-instance-method","name":"ip=","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"args_string":"(ip : String | Nil)","args_html":"(ip : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip=","args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip = ip"}},{"html_id":"last_seen:Time-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen","return_type":"Time","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"args_string":"(last_seen : Time)","args_html":"(last_seen : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"recent_device_mac:String|Nil-instance-method","name":"recent_device_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_mac"}},{"html_id":"recent_device_mac=(recent_device_mac:String|Nil)-instance-method","name":"recent_device_mac=","abstract":false,"args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"args_string":"(recent_device_mac : String | Nil)","args_html":"(recent_device_mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac=","args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_mac = recent_device_mac"}},{"html_id":"recent_device_serial:String|Nil-instance-method","name":"recent_device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_serial"}},{"html_id":"recent_device_serial=(recent_device_serial:String|Nil)-instance-method","name":"recent_device_serial=","abstract":false,"args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"args_string":"(recent_device_serial : String | Nil)","args_html":"(recent_device_serial : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial=","args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_serial = recent_device_serial"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}},{"html_id":"switch_port:Int32-instance-method","name":"switch_port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L151"},"def":{"name":"switch_port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @switch_port).nil?\n @switch_port = ((@switchport.as(String)).to_i)\nelse\n __temp_1\nend"}},{"html_id":"switchport:String|Nil-instance-method","name":"switchport","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport","return_type":"String | ::Nil","visibility":"Public","body":"@switchport"}},{"html_id":"switchport=(switchport:String|Nil)-instance-method","name":"switchport=","abstract":false,"args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"args_string":"(switchport : String | Nil)","args_html":"(switchport : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport=","args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"visibility":"Public","body":"@switchport = switchport"}},{"html_id":"time_added:Time-instance-method","name":"time_added","abstract":false,"def":{"name":"time_added","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_added).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::Client#time_added cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_added=(time_added:Time)-instance-method","name":"time_added=","abstract":false,"args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"args_string":"(time_added : Time)","args_html":"(time_added : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L148"},"def":{"name":"time_added=","args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"visibility":"Public","body":"@time_added = time_added"}},{"html_id":"time_added?:Time|Nil-instance-method","name":"time_added?","abstract":false,"def":{"name":"time_added?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_added"}},{"html_id":"user:String|Nil-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"vlan:String|Nil-instance-method","name":"vlan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan","return_type":"String | ::Nil","visibility":"Public","body":"@vlan"}},{"html_id":"vlan=(vlan:String|Nil)-instance-method","name":"vlan=","abstract":false,"args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"args_string":"(vlan : String | Nil)","args_html":"(vlan : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan=","args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"visibility":"Public","body":"@vlan = vlan"}}]},{"html_id":"drivers/Cisco/Meraki/ConnectionType","path":"Cisco/Meraki/ConnectionType.html","kind":"enum","full_name":"Cisco::Meraki::ConnectionType","name":"ConnectionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":360,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L360"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Wired","name":"Wired","value":"0"},{"id":"Wireless","name":"Wireless","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"wired?-instance-method","name":"wired?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L361"},"def":{"name":"wired?","visibility":"Public","body":"self == Wired"}},{"html_id":"wireless?-instance-method","name":"wireless?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L362"},"def":{"name":"wireless?","visibility":"Public","body":"self == Wireless"}}]},{"html_id":"drivers/Cisco/Meraki/CountType","path":"Cisco/Meraki/CountType.html","kind":"enum","full_name":"Cisco::Meraki::CountType","name":"CountType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"People","name":"People","value":"0"},{"id":"Vehicles","name":"Vehicles","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"people?-instance-method","name":"people?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L44"},"def":{"name":"people?","visibility":"Public","body":"self == People"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L46"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicles?-instance-method","name":"vehicles?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L45"},"def":{"name":"vehicles?","visibility":"Public","body":"self == Vehicles"}}]},{"html_id":"drivers/Cisco/Meraki/Crossing","path":"Cisco/Meraki/Crossing.html","kind":"struct","full_name":"Cisco::Meraki::Crossing","name":"Crossing","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event:CrossingEvent-instance-method","name":"event","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L95"},"def":{"name":"event","return_type":"CrossingEvent","visibility":"Public","body":"@event"}},{"html_id":"label:String|Nil-instance-method","name":"label","doc":"getter object_id : Int64","summary":"

getter object_id : Int64

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L94"},"def":{"name":"label","return_type":"String | ::Nil","visibility":"Public","body":"@label"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L92"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"type:CrossingObject-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L96"},"def":{"name":"type","return_type":"CrossingObject","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingEvent","path":"Cisco/Meraki/CrossingEvent.html","kind":"enum","full_name":"Cisco::Meraki::CrossingEvent","name":"CrossingEvent","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossingIn","name":"CrossingIn","value":"0"},{"id":"CrossingOut","name":"CrossingOut","value":"1"},{"id":"Expired","name":"Expired","value":"2"},{"id":"Appeared","name":"Appeared","value":"3"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"appeared?-instance-method","name":"appeared?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L85"},"def":{"name":"appeared?","visibility":"Public","body":"self == Appeared"}},{"html_id":"crossing_in?-instance-method","name":"crossing_in?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L82"},"def":{"name":"crossing_in?","visibility":"Public","body":"self == CrossingIn"}},{"html_id":"crossing_out?-instance-method","name":"crossing_out?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L83"},"def":{"name":"crossing_out?","visibility":"Public","body":"self == CrossingOut"}},{"html_id":"expired?-instance-method","name":"expired?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L84"},"def":{"name":"expired?","visibility":"Public","body":"self == Expired"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingObject","path":"Cisco/Meraki/CrossingObject.html","kind":"enum","full_name":"Cisco::Meraki::CrossingObject","name":"CrossingObject","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Person","name":"Person","value":"0"},{"id":"Vehicle","name":"Vehicle","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"person?-instance-method","name":"person?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L76"},"def":{"name":"person?","visibility":"Public","body":"self == Person"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L78"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicle?-instance-method","name":"vehicle?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L77"},"def":{"name":"vehicle?","visibility":"Public","body":"self == Vehicle"}}]},{"html_id":"drivers/Cisco/Meraki/Dashboard","path":"Cisco/Meraki/Dashboard.html","kind":"class","full_name":"Cisco::Meraki::Dashboard","name":"Dashboard","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/dashboard.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK.to_i, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch(location:String)-instance-method","name":"fetch","doc":"Perform fetch with the required API request limits in place","summary":"

Perform fetch with the required API request limits in place

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L69"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"req(location, &.body)"}},{"html_id":"fetch_all(location:String)-instance-method","name":"fetch_all","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L74"},"def":{"name":"fetch_all","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"responses = [] of String\nreq_all_pages(location) do |response|\n responses << response.body\nend\nresponses\n"}},{"html_id":"get_zones(camera_serial:String)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"args_string":"(camera_serial : String)","args_html":"(camera_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L183"},"def":{"name":"get_zones","args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{camera_serial}/camera/analytics/zones\") do |response|\n Array(CameraZone).from_json(response.body)\nend"}},{"html_id":"networks(organization_id:String)-instance-method","name":"networks","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L142"},"def":{"name":"networks","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"nets = [] of Network\nreq_all_pages(\"/api/v1/organizations/#{organization_id}/networks?perPage=1000\") do |response|\n nets.concat(Array(Network).from_json(response.body))\nend\nnets\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L38"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@scanning_validator = (setting?(String, :meraki_validator)) || \"\"\n@scanning_secret = (setting?(String, :meraki_secret)) || \"\"\n@api_key = (setting?(String, :meraki_api_key)) || \"\"\n@scanning_api_filter = (setting?(MessageType, :scanning_api_filter)) || MessageType::WiFi\n@rate_limit = (setting?(Int32, :rate_limit)) || 4\n@wait_time = 1.second / @rate_limit\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n"}},{"html_id":"organizations-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L135"},"def":{"name":"organizations","visibility":"Public","body":"req(\"/api/v1/organizations?perPage=1000\") do |response|\n Array(Organization).from_json(response.body)\nend"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil,statuses:String=\"Online\")-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = \"Online\")","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = "Online")","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L151"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"perPage\", \"1000\")\n form.add(\"timespan\", timespan.to_s)\n form.add(\"statuses[]\", statuses)\n if connection\n form.add(\"recentDeviceConnections[]\", connection.to_s)\n end\nend\nclients = [] of Client\nreq_all_pages(\"/api/v1/networks/#{network_id}/clients?#{params}\") do |response|\n clients.concat(Array(Client).from_json(response.body))\nend\nif device_serial\n clients.select! do |client|\n client.recent_device_serial == device_serial\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nelse\n clients.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nend\n"}},{"html_id":"port_status(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"port_status","doc":"a webhook for obtaining changes in port status","summary":"

a webhook for obtaining changes in port status

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L228"},"def":{"name":"port_status","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Webhook Alert received: #{method},\\nheaders #{headers},\\nbody #{body}\"\nend\nself[:port_update] = WebhookAlert.from_json(body)\nSUCCESS_RESPONSE\n"}},{"html_id":"ports_statuses(device_serial:String)-instance-method","name":"ports_statuses","abstract":false,"args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"args_string":"(device_serial : String)","args_html":"(device_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L177"},"def":{"name":"ports_statuses","args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{device_serial}/switch/ports/statuses\") do |response|\n Array(PortStatusResponse).from_json(response.body)\nend"}},{"html_id":"scanning_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"scanning_api","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L190"},"def":{"name":"scanning_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nif method == \"GET\"\n return {HTTP::Status::OK.to_i, EMPTY_HEADERS, @scanning_validator}\nend\nif !(body.starts_with?(\"{\\\"version\\\":\\\"3.0\\\"\"))\n logger.warn do\n \"unknown scanning API message received:\\n#{body[0..96]}\"\n end\n return SUCCESS_RESPONSE\nend\nbegin\n seen = DevicesSeen.from_json(body)\n logger.debug do\n \"parsed meraki payload\"\n end\n if !@scanning_api_filter.none? && (seen.message_type != @scanning_api_filter)\n logger.debug do\n \"ignoring message type: #{seen.message_type}\"\n end\n return SUCCESS_RESPONSE\n end\n if seen.secret == @scanning_secret\n else\n raise(\"secret mismatch, sent: #{seen.secret}\")\n end\n self[seen.data.network_id] = seen.data.observations\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]},{"html_id":"drivers/Cisco/Meraki/Data","path":"Cisco/Meraki/Data.html","kind":"class","full_name":"Cisco::Meraki::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L276"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L277"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"network_id=(network_id:String)-instance-method","name":"network_id=","abstract":false,"args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"args_string":"(network_id : String)","args_html":"(network_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id=","args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"visibility":"Public","body":"@network_id = network_id"}},{"html_id":"observations:Array(Observation)-instance-method","name":"observations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations","return_type":"Array(Observation)","visibility":"Public","body":"@observations"}},{"html_id":"observations=(observations:Array(Observation))-instance-method","name":"observations=","abstract":false,"args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"args_string":"(observations : Array(Observation))","args_html":"(observations : Array(Observation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations=","args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"visibility":"Public","body":"@observations = observations"}}]},{"html_id":"drivers/Cisco/Meraki/DeskMappings","path":"Cisco/Meraki/DeskMappings.html","kind":"struct","full_name":"Cisco::Meraki::DeskMappings","name":"DeskMappings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L343"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L346"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"ports:Hash(Int32,String)-instance-method","name":"ports","doc":"port_id => desk_id","summary":"

port_id => desk_id

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L349"},"def":{"name":"ports","return_type":"Hash(Int32, String)","visibility":"Public","body":"@ports"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L345"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}}]},{"html_id":"drivers/Cisco/Meraki/DetectedDesks","path":"Cisco/Meraki/DetectedDesks.html","kind":"class","full_name":"Cisco::Meraki::DetectedDesks","name":"DetectedDesks","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api_version:Int32-instance-method","name":"api_version","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L17"},"def":{"name":"api_version","return_type":"Int32","visibility":"Public","body":"@api_version"}},{"html_id":"desks:Array(Tuple(Float64,Float64,Float64,Float64,Float64,Float64,Float64))-instance-method","name":"desks","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L26"},"def":{"name":"desks","return_type":"Array(Tuple(Float64, Float64, Float64, Float64, Float64, Float64, Float64))","visibility":"Public","body":"@desks"}},{"html_id":"time_string:String|Nil-instance-method","name":"time_string","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L24"},"def":{"name":"time_string","return_type":"String | ::Nil","visibility":"Public","body":"@time_string"}},{"html_id":"time_unix:Int64|Nil-instance-method","name":"time_unix","doc":"Time in milliseconds v3,","summary":"

Time in milliseconds v3,

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L21"},"def":{"name":"time_unix","return_type":"Int64 | ::Nil","visibility":"Public","body":"@time_unix"}}]},{"html_id":"drivers/Cisco/Meraki/DeviceLocation","path":"Cisco/Meraki/DeviceLocation.html","kind":"class","full_name":"Cisco::Meraki::DeviceLocation","name":"DeviceLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L162"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"calculate_location(floor:FloorPlan,device:NetworkDevice,time:Time):DeviceLocation-class-method","name":"calculate_location","abstract":false,"args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","args_html":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L173"},"def":{"name":"calculate_location","args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"return_type":"DeviceLocation","visibility":"Public","body":"distance = Geo.calculate_xy(floor.top_left, floor.bottom_left, floor.bottom_right, device, floor.to_distance)\nDeviceLocation.new(distance.x, distance.y, device.lng, device.lat, 25_f64, floor.id, floor.name, time)\n"}},{"html_id":"new(x:Float64|String|Nil,y:Float64|String|Nil,lng:Float64|Nil,lat:Float64|Nil,variance:Float64,floor_plan_id:Nil|String,floor_plan_name:Nil|String,time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"args_string":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","args_html":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L165"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y, lng, lat, variance, floor_plan_id, floor_plan_name, time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L163"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client:Client|Nil-instance-method","name":"client","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client","return_type":"Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"client=(client:Client|Nil)-instance-method","name":"client=","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"args_string":"(client : Client | Nil)","args_html":"(client : Client | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client=","args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"visibility":"Public","body":"@client = client"}},{"html_id":"floor_plan:FloorPlanLocation|Nil-instance-method","name":"floor_plan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan","return_type":"FloorPlanLocation | ::Nil","visibility":"Public","body":"@floor_plan"}},{"html_id":"floor_plan=(floor_plan:FloorPlanLocation|Nil)-instance-method","name":"floor_plan=","abstract":false,"args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"args_string":"(floor_plan : FloorPlanLocation | Nil)","args_html":"(floor_plan : FloorPlanLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan=","args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"visibility":"Public","body":"@floor_plan = floor_plan"}},{"html_id":"floor_plan_id-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L237"},"def":{"name":"floor_plan_id","visibility":"Public","body":"wifi_floor_plan_id || floor_plan.try(&.id)"}},{"html_id":"floor_plan_name-instance-method","name":"floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L241"},"def":{"name":"floor_plan_name","visibility":"Public","body":"wifi_floor_plan_name || floor_plan.try(&.name)"}},{"html_id":"get_x:Float64|Nil-instance-method","name":"get_x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L221"},"def":{"name":"get_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = x || floor_plan.try(&.x)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"get_y:Float64|Nil-instance-method","name":"get_y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L229"},"def":{"name":"get_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = y || floor_plan.try(&.y)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64|Nil)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"args_string":"(lat : Float64 | Nil)","args_html":"(lat : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64|Nil)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"args_string":"(lng : Float64 | Nil)","args_html":"(lng : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"nearest_ap_tags:Array(String)-instance-method","name":"nearest_ap_tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @nearest_ap_tags).nil?\n @nearest_ap_tags = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"nearest_ap_tags=(nearest_ap_tags:Array(String))-instance-method","name":"nearest_ap_tags=","abstract":false,"args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"args_string":"(nearest_ap_tags : Array(String))","args_html":"(nearest_ap_tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags=","args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"visibility":"Public","body":"@nearest_ap_tags = nearest_ap_tags"}},{"html_id":"rssi_records:Array(RSSI)-instance-method","name":"rssi_records","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records","return_type":"Array(RSSI)","visibility":"Public","body":"@rssi_records"}},{"html_id":"rssi_records=(rssi_records:Array(RSSI))-instance-method","name":"rssi_records=","abstract":false,"args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"args_string":"(rssi_records : Array(RSSI))","args_html":"(rssi_records : Array(RSSI))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records=","args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"visibility":"Public","body":"@rssi_records = rssi_records"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}},{"html_id":"variance:Float64-instance-method","name":"variance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance","return_type":"Float64","visibility":"Public","body":"@variance"}},{"html_id":"variance=(variance:Float64)-instance-method","name":"variance=","abstract":false,"args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"args_string":"(variance : Float64)","args_html":"(variance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance=","args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"visibility":"Public","body":"@variance = variance"}},{"html_id":"wifi_floor_plan_id:String|Nil-instance-method","name":"wifi_floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_id=(wifi_floor_plan_id:String|Nil)-instance-method","name":"wifi_floor_plan_id=","abstract":false,"args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_id : String | Nil)","args_html":"(wifi_floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id=","args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_id = wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_name:String|Nil-instance-method","name":"wifi_floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_name"}},{"html_id":"wifi_floor_plan_name=(wifi_floor_plan_name:String|Nil)-instance-method","name":"wifi_floor_plan_name=","abstract":false,"args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_name : String | Nil)","args_html":"(wifi_floor_plan_name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name=","args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_name = wifi_floor_plan_name"}},{"html_id":"x:Float64|String|Nil-instance-method","name":"x","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x","return_type":"Float64 | String | Nil","visibility":"Public","body":"@x"}},{"html_id":"x!-instance-method","name":"x!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L213"},"def":{"name":"x!","visibility":"Public","body":"get_x.not_nil!"}},{"html_id":"x=(x:Float64|String|Nil)-instance-method","name":"x=","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"args_string":"(x : Float64 | String | Nil)","args_html":"(x : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|String|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y","return_type":"Float64 | String | Nil","visibility":"Public","body":"@y"}},{"html_id":"y!-instance-method","name":"y!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L217"},"def":{"name":"y!","visibility":"Public","body":"get_y.not_nil!"}},{"html_id":"y=(y:Float64|String|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"args_string":"(y : Float64 | String | Nil)","args_html":"(y : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/DevicesSeen","path":"Cisco/Meraki/DevicesSeen.html","kind":"class","full_name":"Cisco::Meraki::DevicesSeen","name":"DevicesSeen","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L290"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L291"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"secret:String-instance-method","name":"secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret","return_type":"String","visibility":"Public","body":"@secret"}},{"html_id":"secret=(secret:String)-instance-method","name":"secret=","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String"}],"args_string":"(secret : String)","args_html":"(secret : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret=","args":[{"name":"secret","external_name":"secret","restriction":"String"}],"visibility":"Public","body":"@secret = secret"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}},{"html_id":"version=(version:String)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"String"}],"args_string":"(version : String)","args_html":"(version : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"String"}],"visibility":"Public","body":"@version = version"}}]},{"html_id":"drivers/Cisco/Meraki/Entrances","path":"Cisco/Meraki/Entrances.html","kind":"class","full_name":"Cisco::Meraki::Entrances","name":"Entrances","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L72"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n @count = ((counts[:person] || counts[:vehicle]) || 0)\nelse\n __temp_1\nend"}},{"html_id":"count_type:CountType-instance-method","name":"count_type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L61"},"def":{"name":"count_type","return_type":"CountType","visibility":"Public","body":"if (__temp_1 = @count_type).nil?\n @count_type = (if counts[:person]\n CountType::People\n else\n if counts[:vehicle]\n CountType::Vehicles\n else\n CountType::Unknown\n end\n end)\nelse\n __temp_1\nend"}},{"html_id":"counts:NamedTuple(person:Int32|Nil,vehicle:Int32|Nil)-instance-method","name":"counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L55"},"def":{"name":"counts","return_type":"NamedTuple(person: Int32 | ::Nil, vehicle: Int32 | ::Nil)","visibility":"Public","body":"@counts"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L53"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Cisco/Meraki/FloorMapping","path":"Cisco/Meraki/FloorMapping.html","kind":"class","full_name":"Cisco::Meraki::FloorMapping","name":"FloorMapping","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:String|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L10"},"def":{"name":"building_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"camera_serials:Array(String)-instance-method","name":"camera_serials","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L8"},"def":{"name":"camera_serials","return_type":"Array(String)","visibility":"Public","body":"@camera_serials"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L9"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlan","path":"Cisco/Meraki/FloorPlan.html","kind":"class","full_name":"Cisco::Meraki::FloorPlan","name":"FloorPlan","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_left:Geo::Point-instance-method","name":"bottom_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left","return_type":"Geo::Point","visibility":"Public","body":"@bottom_left"}},{"html_id":"bottom_left=(bottom_left:Geo::Point)-instance-method","name":"bottom_left=","abstract":false,"args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"args_string":"(bottom_left : Geo::Point)","args_html":"(bottom_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left=","args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_left = bottom_left"}},{"html_id":"bottom_right:Geo::Point-instance-method","name":"bottom_right","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right","return_type":"Geo::Point","visibility":"Public","body":"@bottom_right"}},{"html_id":"bottom_right=(bottom_right:Geo::Point)-instance-method","name":"bottom_right=","abstract":false,"args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"args_string":"(bottom_right : Geo::Point)","args_html":"(bottom_right : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right=","args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_right = bottom_right"}},{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Float64)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Float64"}],"args_string":"(height : Float64)","args_html":"(height : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Float64"}],"visibility":"Public","body":"@height = height"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"to_distance-instance-method","name":"to_distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L74"},"def":{"name":"to_distance","visibility":"Public","body":"Geo::Distance.new(width, height)"}},{"html_id":"top_left:Geo::Point-instance-method","name":"top_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left","return_type":"Geo::Point","visibility":"Public","body":"@top_left"}},{"html_id":"top_left=(top_left:Geo::Point)-instance-method","name":"top_left=","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"args_string":"(top_left : Geo::Point)","args_html":"(top_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left=","args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@top_left = top_left"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlanLocation","path":"Cisco/Meraki/FloorPlanLocation.html","kind":"class","full_name":"Cisco::Meraki::FloorPlanLocation","name":"FloorPlanLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo","path":"Cisco/Meraki/Geo.html","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo","abstract":false,"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EarthRadiusApprox","name":"EarthRadiusApprox","value":"6371000.7900","doc":"radius in meters, approx as we're using a perfect sphere the same volume as the earth","summary":"

radius in meters, approx as we're using a perfect sphere the same volume as the earth

"},{"id":"Radians","name":"Radians","value":"Math::PI / 180_f64"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"calculate_xy(top_left:Point,bottom_left:Point,bottom_right:Point,position,distance:Distance)-class-method","name":"calculate_xy","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"args_string":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","args_html":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L29"},"def":{"name":"calculate_xy","args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"visibility":"Public","body":"y_base = geo_distance(top_left, bottom_left)\na = geo_distance(top_left, position)\nc = geo_distance(bottom_left, position)\nx_raw = triangle_height(a, y_base, c)\nx_base = geo_distance(bottom_left, bottom_right)\na = geo_distance(bottom_left, position)\nc = geo_distance(bottom_right, position)\ny_raw = triangle_height(a, x_base, c)\npercentage_height = y_raw / y_base\npercentage_width = x_raw / x_base\nDistance.new(distance.x * percentage_width, distance.y * percentage_height)\n"}},{"html_id":"geo_distance(start:Point,ending)-class-method","name":"geo_distance","doc":"https://www.movable-type.co.uk/scripts/latlong.html\nreturns the distance in meters","summary":"

https://www.movable-type.co.uk/scripts/latlong.html returns the distance in meters

","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"args_string":"(start : Point, ending)","args_html":"(start : Point, ending)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L54"},"def":{"name":"geo_distance","args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"visibility":"Public","body":"lat_diff = (ending.lat - start.lat) * Radians\nlng_diff = (ending.lng - start.lng) * Radians\nstart_lat_radian = start.lat * Radians\nend_lng_radian = ending.lng * Radians\na = ((Math.sin(lat_diff / 2_f64)) * (Math.sin(lat_diff / 2_f64))) + ((((Math.cos(start_lat_radian)) * (Math.cos(end_lng_radian))) * (Math.sin(lng_diff / 2_f64))) * (Math.sin(lng_diff / 2_f64)))\nc = 2_f64 * (Math.atan2(Math.sqrt(a), Math.sqrt(1_f64 - a)))\nEarthRadiusApprox * c\n"}},{"html_id":"triangle_height(a:Float64,base:Float64,c:Float64)-class-method","name":"triangle_height","doc":"https://www.omnicalculator.com/math/triangle-height","summary":"

https://www.omnicalculator.com/math/triangle-height

","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"args_string":"(a : Float64, base : Float64, c : Float64)","args_html":"(a : Float64, base : Float64, c : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L70"},"def":{"name":"triangle_height","args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"visibility":"Public","body":"(0.5 * (Math.sqrt(((((a + base) + c) * ((base + c) - a)) * ((a - base) + c)) * ((a + base) - c)))) / base"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Geo/Distance","path":"Cisco/Meraki/Geo/Distance.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Distance","name":"Distance","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L22"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo/Point","path":"Cisco/Meraki/Geo/Point.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(lat:Float64,lng:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"args_string":"(lat : Float64, lng : Float64)","args_html":"(lat : Float64, lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L12"},"def":{"name":"new","args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lat, lng)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]}]},{"html_id":"drivers/Cisco/Meraki/LatestRecord","path":"Cisco/Meraki/LatestRecord.html","kind":"class","full_name":"Cisco::Meraki::LatestRecord","name":"LatestRecord","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"nearest_ap_mac:String-instance-method","name":"nearest_ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac","return_type":"String","visibility":"Public","body":"@nearest_ap_mac"}},{"html_id":"nearest_ap_mac=(nearest_ap_mac:String)-instance-method","name":"nearest_ap_mac=","abstract":false,"args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"args_string":"(nearest_ap_mac : String)","args_html":"(nearest_ap_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac=","args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"visibility":"Public","body":"@nearest_ap_mac = nearest_ap_mac"}},{"html_id":"nearest_ap_rssi:Int32-instance-method","name":"nearest_ap_rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi","return_type":"Int32","visibility":"Public","body":"@nearest_ap_rssi"}},{"html_id":"nearest_ap_rssi=(nearest_ap_rssi:Int32)-instance-method","name":"nearest_ap_rssi=","abstract":false,"args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"args_string":"(nearest_ap_rssi : Int32)","args_html":"(nearest_ap_rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi=","args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"visibility":"Public","body":"@nearest_ap_rssi = nearest_ap_rssi"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations","path":"Cisco/Meraki/Locations.html","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L94"},"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"camera_analytics(serial:String)-instance-method","name":"camera_analytics","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":711,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L711"},"def":{"name":"camera_analytics","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{serial}/camera/analytics/live\") do |response|\n CameraAnalytics.from_json(response)\nend"}},{"html_id":"cameras:Array(Cisco::Meraki::NetworkDevice)-instance-method","name":"cameras","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":726,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L726"},"def":{"name":"cameras","visibility":"Public","body":"@cameras"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L418"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = user_mac_mappings(&.[]?(lookup))\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L638"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing IP and location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago\nremove_keys = [] of String\n@ip_lookup.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_lookup.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => MAC mappings\"\nend\nremove_keys.clear\n@ip_usernames.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_usernames.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => Username mappings\"\nend\nremove_keys.clear\n@client_details.each do |mac, client|\n if client.time_added < old\n remove_keys << mac\n end\nend\nremove_keys.each do |mac|\n @client_details.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} client details\"\nend\nremove_keys.clear\n@locations.each do |mac, location|\n if location.time < old\n if client = @client_details[mac]?\n if client.time_added < old\n remove_keys << mac\n end\n else\n remove_keys << mac\n end\n end\nend\nremove_keys.each do |mac|\n @locations.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\n"}},{"html_id":"desk_details:Hash(String,DetectedDesks)-instance-method","name":"desk_details","doc":"serial => desks detected","summary":"

serial => desks detected

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L221"},"def":{"name":"desk_details","return_type":"Hash(String, DetectedDesks)","visibility":"Public","body":"@desk_details"}},{"html_id":"desk_locations(zone_id:String)-instance-method","name":"desk_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1260"},"def":{"name":"desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"serials = @zone_lookup[zone_id]? || ([] of String)\nreturn_empty_spaces = @return_empty_spaces\nexpiry_time = desk_data_expiry_time\nserials.compact_map do |serial|\n desks = @desk_mappings[serial]?\n if desks\n else\n next\n end\n if desk_details[serial]?\n else\n next\n end\n floor = @floor_lookup[serial]\n illumination = lux[serial]?\n desks.compact_map do |desk|\n desk_id = desk.label\n occupied = is_occupied?(desk_id, expiry_time)\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: desk_id, level: floor.level_id, building: floor.building_id, capacity: 1, area_lux: illumination, merakimv: serial}\n end\nend.flatten\n"}},{"html_id":"desk_mappings:Hash(String,Array(CameraZone))-instance-method","name":"desk_mappings","doc":"Camera serial => [desk location]","summary":"

Camera serial => [desk location]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1258"},"def":{"name":"desk_mappings","return_type":"Hash(String, Array(CameraZone))","visibility":"Public","body":"@desk_mappings"}},{"html_id":"desk_occupancy:Hash(String,Array(Tuple(Int64,Bool)))-instance-method","name":"desk_occupancy","doc":"=================\nCamera Desk data:\n=================\ndesk_id => [{time, occupied}]","summary":"

================= Camera Desk data: ================= desk_id => [{time, occupied}]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1195"},"def":{"name":"desk_occupancy","return_type":"Hash(String, Array(Tuple(Int64, Bool)))","visibility":"Public","body":"@desk_occupancy"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L510"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\ncase location.presence\nwhen \"wireless\"\n wireless_locations(zone_id)\nwhen \"desk\"\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(cam_locs[0]) | typeof(desk_locs[0])).new(cam_locs.size + desk_locs.size)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nwhen nil\n wireless_locs = wireless_locations(zone_id)\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(wireless_locs[0]) | typeof(cam_locs[0]) | typeof(desk_locs[0])).new((wireless_locs.size + cam_locs.size) + desk_locs.size)\n combind.concat(wireless_locs)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nelse\n [] of String\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":935,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L935"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L400"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"hostname_ownership(hostname:String,username:String|Nil):Nil-instance-method","name":"hostname_ownership","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(hostname : String, username : String | Nil) : Nil","args_html":"(hostname : String, username : String | Nil) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1006,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1006"},"def":{"name":"hostname_ownership","args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"macs = @mac_hostnames.compact_map do |__temp_192|\n mac, host = __temp_192\n host == hostname ? mac : nil\nend\nif username && username.presence\n user_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(mac, username, storage)\n end\n end\nelse\n macs.each do |mac|\n @mac_hostnames.delete(mac)\n end\nend\n"}},{"html_id":"inspect_foorplans:Hash(String,Cisco::Meraki::FloorPlan)-instance-method","name":"inspect_foorplans","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L269"},"def":{"name":"inspect_foorplans","visibility":"Public","body":"@floorplan_sizes"}},{"html_id":"inspect_network_devices:Hash(String,Cisco::Meraki::NetworkDevice)-instance-method","name":"inspect_network_devices","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L274"},"def":{"name":"inspect_network_devices","visibility":"Public","body":"@network_devices"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L279"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"IP Mappings: #{@ip_lookup.keys}\\n\\nMAC Locations: #{@locations.keys}\\n\\nClient Details: #{@client_details.keys}\"\nend\n{ip_mappings: @ip_lookup.size, tracking: @locations.size, client_details: @client_details.size}\n"}},{"html_id":"ip_username_mappings(ip_map:Array(Tuple(String,String,String,String|Nil))):Nil-instance-method","name":"ip_username_mappings","abstract":false,"args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"args_string":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","args_html":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":943,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L943"},"def":{"name":"ip_username_mappings","args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"return_type":"Nil","visibility":"Public","body":"now = Time.utc\nuser_mac_mappings do |storage|\n ip_map.each do |__temp_191|\n ip, username, domain, hostname = __temp_191\n username = format_username(username)\n @ip_usernames[ip] = Lookup.new(now, username)\n if lookup = @ip_lookup[ip]?\n map_user_mac(lookup.mac, username, storage)\n end\n end\nend\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L264"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@locations[format_mac(address)]?"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"returns locations based on most recently seen\nversus most accurate location","summary":"

returns locations based on most recently seen versus most accurate location

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L431"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n location_max_age = @max_location_age.ago\n (Array(String).from_json(macs)).compact_map do |mac|\n if location = locate_mac(mac)\n client = @client_details[mac]?\n if @regex_filter_device_os\n if client && client.os\n if (/#{@regex_filter_device_os}/).match(client.os.not_nil!)\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS does not match regex filter\"\n end\n next\n end\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS is UNKNOWN\"\n end\n next\n end\n end\n location.client = client\n location.mac = mac\n if client && client.time_added > location_max_age\n location\n else\n if location.time > location_max_age\n location\n end\n end\n end\n end.sort! do |a, b|\n b.time <=> a.time\n end.map do |location|\n lat = location.lat\n lon = location.lng\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => location.x, \"y\" => location.y, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, \"mac\" => location.mac, \"variance\" => location.variance, \"last_seen\" => location.time.to_unix, \"meraki_floor_id\" => location.floor_plan_id, \"meraki_floor_name\" => location.floor_plan_name}\n if level_data = @floorplan_mappings[location.floor_plan_id]?\n level_data.each do |k, v|\n loc[k] = v\n end\n end\n if map_size = @floorplan_sizes[location.floor_plan_id]?\n loc[\"map_width\"] = map_size.width\n loc[\"map_height\"] = map_size.height\n end\n if client = location.client\n if client.manufacturer\n loc[\"manufacturer\"] = client.manufacturer\n end\n if client.os\n loc[\"os\"] = client.os\n end\n if client.ssid\n loc[\"ssid\"] = client.ssid\n end\n end\n loc\n end\nelse\n [] of Nil\nend\n"}},{"html_id":"locateable-instance-method","name":"locateable","doc":"Returns the list of users who can be located","summary":"

Returns the list of users who can be located

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L288"},"def":{"name":"locateable","visibility":"Public","body":"too_old = @max_location_age.ago\n@client_details.compact_map do |mac, client|\n location = @locations[mac]?\n if location && ((location.time > too_old) || (client.time_added > too_old))\n client.user\n end\nend\n"}},{"html_id":"lookup_ip(address:String)-instance-method","name":"lookup_ip","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L260"},"def":{"name":"lookup_ip","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@ip_lookup[address.downcase]?"}},{"html_id":"lux:Hash(String,Float64)-instance-method","name":"lux","doc":"serial => lux","summary":"

serial => lux

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L224"},"def":{"name":"lux","return_type":"Hash(String, Float64)","visibility":"Public","body":"@lux"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":958,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L958"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"mac_hostnames:Hash(String,String)-instance-method","name":"mac_hostnames","doc":"User lookup helpers using device hostnames","summary":"

User lookup helpers using device hostnames

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":981,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L981"},"def":{"name":"mac_hostnames","return_type":"Hash(String, String)","visibility":"Public","body":"@mac_hostnames"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L409"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"map_users_to_macs(network_id:String|Nil=nil)-instance-method","name":"map_users_to_macs","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L310"},"def":{"name":"map_users_to_macs","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"mapping users to device MACs\"\nend\nclients = poll_clients(network_id)\nnew_devices = 0\nupdated_dev = 0\nnow = Time.utc\nlogger.debug do\n \"mapping found #{clients.size} devices\"\nend\nuser_mac_mappings do |storage|\n clients.each do |client|\n user_mac = format_mac(client.mac)\n client.time_added = now\n if hostname = client.description\n @mac_hostnames[user_mac] = hostname\n end\n user_id = client.user\n if user_id\n @ignore_usernames.each do |name|\n if user_id.starts_with?(name)\n client.user = user_id = nil\n break\n end\n end\n end\n if user_id.nil?\n if known_id = storage[user_mac]?\n client.user = known_id\n end\n end\n @client_details[user_mac] = client\n if user_id\n else\n next\n end\n was_update, was_new = map_user_mac(user_mac, user_id, storage)\n if was_update\n updated_dev = updated_dev + 1\n end\n if was_new\n new_devices = new_devices + 1\n end\n end\nend\nlogger.debug do\n \"mapping assigned #{new_devices} new devices, #{updated_dev} user updated\"\nend\nnil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L84"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@default_network = (setting?(String, :default_network_id)) || \"\"\n@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@acceptable_confidence = (setting?(Float64, :acceptable_confidence)) || 5.0\n@maximum_uncertainty = (setting?(Float64, :maximum_uncertainty)) || 25.0\n@override_min_variance = (setting?(Float64, :override_min_variance)) || 0.0\n@regex_filter_device_os = setting?(String, :regex_filter_device_os)\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\n@confidence_time = @max_location_age / 3\n@drift_location_age = @max_location_age - @confidence_time\n@time_multiplier = 1.0 / (@drift_location_age.to_i - @confidence_time.to_i).to_f64\n@confidence_multiplier = 1.0 / (@maximum_uncertainty.to_i - @acceptable_confidence.to_i).to_f64\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\ndisable_username_lookup = (setting?(Bool, :disable_username_lookup)) || false\nschedule.clear\ninit_wired_port_mappings\nif @default_network.presence\n schedule.every(59.seconds) do\n update_sensor_cache\n end\n if disable_username_lookup\n else\n schedule.every(2.minutes) do\n map_users_to_macs\n end\n end\n schedule.every(29.minutes) do\n sync_floorplan_sizes\n end\n schedule.in(30.milliseconds) do\n sync_floorplan_sizes\n update_sensor_cache\n end\nend\nschedule.every(30.minutes) do\n cleanup_caches\nend\nsubscriptions.clear\nif @default_network.presence\n dashboard.subscribe(@default_network) do |_subscription, new_value|\n parse_new_locations(new_value)\n end\nend\nzones = config.control_system.not_nil!.zones\nspawn do\n find_building(zones)\nend\nif system.exists?(:MerakiMQTT)\n mqtt_module = system[:MerakiMQTT]\n mqtt_module.subscribe(:floor_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @floor_lookup = Hash(String, FloorMapping).from_json(new_value)\n if @zone_lookup.empty?\n else\n update_desk_mappings\n end\n end\n mqtt_module.subscribe(:zone_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @zone_lookup = Hash(String, Array(String)).from_json(new_value)\n if @floor_lookup.empty?\n else\n update_desk_mappings\n end\n end\n schedule.every(10.minutes) do\n update_desk_mappings\n end\n mqtt_module.subscribe(:camera_updated) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n _time, camera_serial = Tuple(Int64, String).from_json(new_value)\n if @desk_mappings.has_key?(camera_serial)\n check_camera_status(mqtt_module, camera_serial)\n end\n end\nend\n"}},{"html_id":"parse_new_locations(payload:String):Nil-instance-method","name":"parse_new_locations","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(payload : String) : Nil","args_html":"(payload : String) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":763,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L763"},"def":{"name":"parse_new_locations","args":[{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"if @debug_payload\n logger.debug do\n payload\n end\nend\nlocations_updated = 0\nbegin\n observations = Array(Observation).from_json(payload)\n logger.debug do\n \"parsed meraki payload\"\n end\n ignore_older = @max_location_age.ago.in(Time::Location::UTC)\n drift_older = @drift_location_age.ago.in(Time::Location::UTC)\n current_time = Time.utc\n observations.each do |observation|\n client_mac = format_mac(observation.client_mac)\n existing = @locations[client_mac]?\n if @debug_webhook\n logger.debug do\n \"parsing new observation for #{client_mac}\"\n end\n end\n if @regex_filter_device_os\n client = @client_details[format_mac(observation.client_mac)]?\n if client.nil? || (/#{@regex_filter_device_os}/).match(client.os || \"\").nil?\n if @debug_webhook\n logger.debug do\n \"FILTERED OUT #{client_mac}: OS \\\"#{observation.os}\\\" did not match \\\"#{@regex_filter_device_os}\\\"\"\n end\n end\n next\n end\n end\n location = parse(existing, ignore_older, drift_older, observation)\n if location\n @locations[client_mac] = location\n locations_updated = locations_updated + 1\n end\n update_ipv4(observation.ipv4, client_mac, current_time)\n update_ipv6(observation.ipv6.try(&.downcase), client_mac, current_time)\n end\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{payload}\"\n end\nend\nlogger.debug do\n \"updated #{locations_updated} locations\"\nend\n"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil)-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L297"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nArray(Client).from_json((dashboard.poll_clients(network_id, timespan, connection, device_serial)).get.to_json)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1163"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ncam_state = @camera_analytics[format_mac(mac)]?\nif cam_state\nelse\n return nil\nend\narea_str, _, sensor_type = id.rpartition('-')\nfilter = case sensor_type\nwhen \"people\"\n SensorType::PeopleCount\nwhen \"presence\"\n SensorType::Presence\nelse\n return nil\nend\narea_id = area_str.to_i64?\nif area_id\nelse\n return nil\nend\nzone_count = cam_state[:details].zones[area_id]?.try(&.person)\nif zone_count\nelse\n return nil\nend\n(to_sensors(nil, filter, **cam_state)).find do |sensor|\n sensor.id == id\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1148"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && !(type.in?({\"Presence\", \"PeopleCount\"}))\n return NO_MATCH\nend\nfilter = type ? SensorType.parse(type) : nil\nif mac\n cam_state = @camera_analytics[format_mac(mac)]?\n if cam_state\n else\n return NO_MATCH\n end\n return to_sensors(zone_id, filter, **cam_state)\nend\n@camera_analytics.values.flat_map do |cam_data|\n to_sensors(zone_id, filter, **cam_data)\nend\n"}},{"html_id":"sync_floorplan_sizes(network_id:String|Nil=nil)-instance-method","name":"sync_floorplan_sizes","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L676"},"def":{"name":"sync_floorplan_sizes","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"syncing floor plan sizes for network #{network_id}\"\nend\nfloor_plans = {} of String => FloorPlan\nreq_all(\"/api/v1/networks/#{network_id}/floorPlans?perPage=1000\") do |response|\n (Array(FloorPlan).from_json(response)).each do |plan|\n floor_plans[plan.id] = plan\n end\n nil\nend\n@floorplan_sizes = floor_plans\nnetwork_devices = {} of String => NetworkDevice\ncameras = [] of NetworkDevice\nreq_all(\"/api/v1/networks/#{network_id}/devices?perPage=1000\") do |response|\n (Array(NetworkDevice).from_json(response)).each do |device|\n if device.firmware.starts_with?(\"cam\")\n cameras << device\n end\n if device.floor_plan_id\n else\n next\n end\n network_devices[format_mac(device.mac)] = device\n end\n nil\nend\n@network_devices = network_devices\n@cameras = cameras\n{floor_plans, network_devices}\n"}},{"html_id":"update_desk_mappings-instance-method","name":"update_desk_mappings","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1297"},"def":{"name":"update_desk_mappings","visibility":"Public","body":"desk_mappings = Hash(String, Array(CameraZone)).new\n@floor_lookup.keys.each do |serial|\n begin\n desk_mappings[serial] = (Array(CameraZone).from_json((dashboard.get_zones(serial)).get.to_json)).reject!() do |__arg7|\n __arg7.id == \"0\"\n end\n rescue error\n logger.warn(exception: error) do\n \"fetching zones for camera: #{serial}\"\n end\n end\nend\n@desk_mappings = desk_mappings\nmqtt_module = system[:MerakiMQTT]\ndesk_mappings.keys.each do |camera_serial|\n check_camera_status(mqtt_module, camera_serial)\nend\n"}},{"html_id":"update_sensor_cache-instance-method","name":"update_sensor_cache","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":728,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L728"},"def":{"name":"update_sensor_cache","visibility":"Public","body":"analytics = {} of String => CamAnalytics\ncameras.each do |cam|\n begin\n mappings = @floorplan_mappings[cam.floor_plan_id]?\n counts = camera_analytics(cam.serial)\n mac = format_mac(cam.mac)\n if mappings\n analytics[mac] = {camera: cam, details: counts, building: mappings[\"building\"]?.as(String | ::Nil), level: mappings[\"level\"]?.as(String | ::Nil)}\n else\n analytics[mac] = {camera: cam, details: counts, building: nil.as(String | ::Nil), level: nil.as(String | ::Nil)}\n end\n counts.zones.each do |area_id, count|\n self[\"people-#{mac}-#{area_id}\"] = count.person\n self[\"presence-#{mac}-#{area_id}\"] = count.person > 0\n end\n rescue error\n logger.debug(exception: error) do\n \"failed to obtain analytics for #{cam.name} (serial: #{cam.serial})\"\n end\n end\nend\n@camera_analytics = analytics\n"}},{"html_id":"wired_desk_locations(zone_id:String)-instance-method","name":"wired_desk_locations","doc":"grabs the wired desk data for a level","summary":"

grabs the wired desk data for a level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1064"},"def":{"name":"wired_desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"return_empty_spaces = @return_empty_spaces\nserials = if zone_id == @building_zone\n @level_serials.values.flatten\nelse\n @level_serials[zone_id]? || ([] of String)\nend\nserials.compact_map do |serial|\n ports = @port_status[serial]?\n if ports\n else\n next\n end\n ports.map do |__temp_193|\n port_num, port = __temp_193\n occupied = port.status.connected? ? 1 : 0\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: port.desk_id, level: port.level_id, building: @building_zone, capacity: 1, mac: port.mac, port: port_num, switch: port.switch_serial}\n end\nend.flatten\n"}},{"html_id":"wireless_locations(zone_id:String)-instance-method","name":"wireless_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":534,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L534"},"def":{"name":"wireless_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"floors = [] of String\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of String\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago\nmatching = @locations.compact_map do |mac, loc|\n client = @client_details[mac]?\n loc.client = client\n if loc.time < oldest_location\n if client\n if client.time_added < oldest_location\n too_old = too_old + 1\n next\n end\n else\n too_old = too_old + 1\n next\n end\n end\n if !(floors.includes?(loc.floor_plan_id))\n wrong_floor = wrong_floor + 1\n next\n end\n loc.mac = mac\n loc\nend\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.floor_plan_id).flat_map do |floor_id, locations|\n map_width = -1.0\n map_height = -1.0\n if map_size = @floorplan_sizes[floor_id]?\n map_width = map_size.width\n map_height = map_size.height\n else\n if mappings = @floorplan_mappings[floor_id]?\n map_width = (mappings[\"width\"]? || map_width).as(Float64)\n map_height = (mappings[\"height\"]? || map_width).as(Float64)\n end\n end\n locations.compact_map do |loc|\n lat = loc.lat\n lon = loc.lng\n if client = @client_details[loc.mac]?\n manufacturer = client.manufacturer\n os = client.os\n ssid = client.ssid\n end\n if (x = loc.x) && (y = loc.y)\n if x.is_a?(Float64) && y.is_a?(Float64)\n if (loc.x.as(Float64)).nan? || (loc.y.as(Float64)).nan?\n logger.warn do\n \"ignoring bad location for #{loc.mac}, NaN\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, unexpected value #{loc.x.inspect}\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, no coordinates provided\"\n end\n next\n end\n {location: :wireless, coordinates_from: \"bottom-left\", x: loc.x, y: loc.y, lon: lon, lat: lat, s2_cell_id: lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, mac: loc.mac, variance: loc.variance, last_seen: loc.time.to_unix, map_width: map_width, map_height: map_height, manufacturer: manufacturer, os: os, ssid: ssid}\n end\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Locations/CamAnalytics","path":"Cisco/Meraki/Locations/CamAnalytics.html","kind":"alias","full_name":"Cisco::Meraki::Locations::CamAnalytics","name":"CamAnalytics","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":717,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L717"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String | Nil, level: String | Nil)","aliased_html":"{camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String?, level: String?}","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}},{"html_id":"drivers/Cisco/Meraki/Locations/Lookup","path":"Cisco/Meraki/Locations/Lookup.html","kind":"struct","full_name":"Cisco::Meraki::Locations::Lookup","name":"Lookup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"},"constructors":[{"html_id":"new(time:Time,mac:String)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"args_string":"(time : Time, mac : String)","args_html":"(time : Time, mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L252"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time, mac)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations/WiredDesks","path":"Cisco/Meraki/Locations/WiredDesks.html","kind":"alias","full_name":"Cisco::Meraki::Locations::WiredDesks","name":"WiredDesks","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(Int32, String))","aliased_html":"Hash(String, Hash(Int32, String))","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}}]},{"html_id":"drivers/Cisco/Meraki/LuxLevel","path":"Cisco/Meraki/LuxLevel.html","kind":"class","full_name":"Cisco::Meraki::LuxLevel","name":"LuxLevel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lux:Float64-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L40"},"def":{"name":"lux","return_type":"Float64","visibility":"Public","body":"@lux"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","doc":"Not actually provided for this message, but here for testing","summary":"

Not actually provided for this message, but here for testing

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L38"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @timestamp).nil?\n @timestamp = (Time.utc.to_unix)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/MessageType","path":"Cisco/Meraki/MessageType.html","kind":"enum","full_name":"Cisco::Meraki::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L284"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"WiFi","name":"WiFi","value":"1"},{"id":"Bluetooth","name":"Bluetooth","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"bluetooth?-instance-method","name":"bluetooth?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L287"},"def":{"name":"bluetooth?","visibility":"Public","body":"self == Bluetooth"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L285"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"wi_fi?-instance-method","name":"wi_fi?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L286"},"def":{"name":"wi_fi?","visibility":"Public","body":"self == WiFi"}}]},{"html_id":"drivers/Cisco/Meraki/MQTT","path":"Cisco/Meraki/MQTT.html","kind":"class","full_name":"Cisco::Meraki::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LUX_ID","name":"LUX_ID","value":"\"lux\""},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SUBS","name":"SUBS","value":"{\"/merakimv/+/net.meraki.detector\", \"/merakimv/+/light\", \"/merakimv/+/0\", \"/merakimv/+/crossing/+\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L149"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\nend\n"}},{"html_id":"crossing_people:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_people","doc":"Serial => count","summary":"

Serial => count

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L192"},"def":{"name":"crossing_people","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_people).nil?\n @crossing_people = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"crossing_vehicle:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_vehicle","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L196"},"def":{"name":"crossing_vehicle","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_vehicle).nil?\n @crossing_vehicle = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L163"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"lux:Hash(String,Tuple(Float64,Int64))-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L200"},"def":{"name":"lux","return_type":"Hash(String, Tuple(Float64, Int64))","visibility":"Public","body":"@lux"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L80"},"def":{"name":"on_load","visibility":"Public","body":"@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L85"},"def":{"name":"on_unload","visibility":"Public","body":""}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\nzone_lookup = Hash(String, Array(String)).new do |h, k|\n h[k] = [] of String\nend\nfloor_lookup = {} of String => FloorMapping\nfloor_mappings = (setting?(Array(FloorMapping), :floor_mappings)) || ([] of FloorMapping)\nfloor_mappings.each do |mapping|\n mapping.camera_serials.each do |serial|\n zone_lookup[mapping.level_id] << serial\n if mapping.building_id\n zone_lookup[mapping.building_id.not_nil!] << serial\n end\n floor_lookup[serial] = mapping\n end\nend\nself[:floor_lookup] = @floor_lookup = floor_lookup\nself[:zone_lookup] = zone_lookup\nexisting = @subs\n@subs = SUBS.to_a\n@line_crossing = line_crossing_combined = (setting?(Hash(String, Array(String)), :line_crossing_combined)) || ({} of String => Array(String))\nline_crossing_mapping = {} of String => String\nline_crossing_combined.each do |name, serials|\n serials.each do |serial|\n line_crossing_mapping[serial] = name\n end\nend\n@crossing_lookup = line_crossing_mapping\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif !(setting?(Bool, :disable_line_crossing_reset))\n time_zone = (setting?(String, :timezone)).presence || \"America/New_York\"\n tz = Time::Location.load(time_zone)\n schedule.cron(\"30 3 * * *\", tz) do\n crossing_people.each_key do |key|\n self[\"camera_mvx-#{key}_person\"] = 0\n end\n crossing_people.clear\n crossing_vehicle.each_key do |key|\n self[\"camera_mvx-#{key}_vehicle\"] = 0\n end\n crossing_vehicle.clear\n end\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n client.unsubscribe(sub)\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"people_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L179"},"def":{"name":"people_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @people_counts).nil?\n @people_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L168"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\n@mqtt.not_nil!.ping\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L173"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L254"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif id == \"lux\"\n (add_lux_values([] of Detail, mac)).first?\nelse\n if id.starts_with?(\"zone\")\n zone, count_type = id.split('_', 2)\n zone = zone[4..-1]\n sensor_type = SensorType::PeopleCount\n lookup = case count_type\n when \"people\"\n people_counts\n when \"vehicles\"\n sensor_type = SensorType::Counter\n vehicle_counts\n end\n if lookup\n if counts = lookup[mac]?\n if count = counts[zone]?\n to_sensor(sensor_type, mac, \"zone#{zone}_#{count_type}\", count[0], count[1])\n end\n end\n end\n else\n nil\n end\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L291"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n serial_filter = nil\n if zone_id && !@floor_lookup.empty?\n serial_filter = [] of String\n @floor_lookup.each do |serial, floor|\n if {floor.level_id, floor.building_id}.includes?(zone_id)\n serial_filter << serial\n end\n end\n end\n sensors = [] of Detail\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n case filter\n when nil\n add_lux_values(sensors, mac, serial_filter)\n add_people_counts(sensors, mac, serial_filter)\n add_vehicle_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .people_count?\n add_people_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n when .counter?\n add_vehicle_counts(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .illuminance?\n add_lux_values(sensors, mac, serial_filter)\n else\n sensors\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"vehicle_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"vehicle_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L185"},"def":{"name":"vehicle_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @vehicle_counts).nil?\n @vehicle_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/Network","path":"Cisco/Meraki/Network.html","kind":"class","full_name":"Cisco::Meraki::Network","name":"Network","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"enrollment_string:String|Nil-instance-method","name":"enrollment_string","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string","return_type":"String | ::Nil","visibility":"Public","body":"@enrollment_string"}},{"html_id":"enrollment_string=(enrollment_string:String|Nil)-instance-method","name":"enrollment_string=","abstract":false,"args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"args_string":"(enrollment_string : String | Nil)","args_html":"(enrollment_string : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string=","args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"@enrollment_string = enrollment_string"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"organization_id:String-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id","return_type":"String","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:String)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"product_types:Array(String)-instance-method","name":"product_types","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types","return_type":"Array(String)","visibility":"Public","body":"@product_types"}},{"html_id":"product_types=(product_types:Array(String))-instance-method","name":"product_types=","abstract":false,"args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"args_string":"(product_types : Array(String))","args_html":"(product_types : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types=","args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"visibility":"Public","body":"@product_types = product_types"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"time_zone=(time_zone:String)-instance-method","name":"time_zone=","abstract":false,"args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"args_string":"(time_zone : String)","args_html":"(time_zone : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone=","args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"visibility":"Public","body":"@time_zone = time_zone"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/NetworkDevice","path":"Cisco/Meraki/NetworkDevice.html","kind":"class","full_name":"Cisco::Meraki::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"floor_plan_id:String|Nil-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_plan_id"}},{"html_id":"floor_plan_id=(floor_plan_id:String|Nil)-instance-method","name":"floor_plan_id=","abstract":false,"args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(floor_plan_id : String | Nil)","args_html":"(floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id=","args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_plan_id = floor_plan_id"}},{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"location:DeviceLocation|Nil-instance-method","name":"location","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location","return_type":"DeviceLocation | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:DeviceLocation|Nil)-instance-method","name":"location=","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"args_string":"(location : DeviceLocation | Nil)","args_html":"(location : DeviceLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"model:String-instance-method","name":"model","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:String)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"@serial = serial"}}]},{"html_id":"drivers/Cisco/Meraki/Observation","path":"Cisco/Meraki/Observation.html","kind":"class","full_name":"Cisco::Meraki::Observation","name":"Observation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L259"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L260"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"ipv4:String|Nil-instance-method","name":"ipv4","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4","return_type":"String | ::Nil","visibility":"Public","body":"@ipv4"}},{"html_id":"ipv4=(ipv4:String|Nil)-instance-method","name":"ipv4=","abstract":false,"args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"args_string":"(ipv4 : String | Nil)","args_html":"(ipv4 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4=","args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv4 = ipv4"}},{"html_id":"ipv6:String|Nil-instance-method","name":"ipv6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6","return_type":"String | ::Nil","visibility":"Public","body":"@ipv6"}},{"html_id":"ipv6=(ipv6:String|Nil)-instance-method","name":"ipv6=","abstract":false,"args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"args_string":"(ipv6 : String | Nil)","args_html":"(ipv6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6=","args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv6 = ipv6"}},{"html_id":"latest_record:LatestRecord-instance-method","name":"latest_record","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record","return_type":"LatestRecord","visibility":"Public","body":"@latest_record"}},{"html_id":"latest_record=(latest_record:LatestRecord)-instance-method","name":"latest_record=","abstract":false,"args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"args_string":"(latest_record : LatestRecord)","args_html":"(latest_record : LatestRecord)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record=","args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"visibility":"Public","body":"@latest_record = latest_record"}},{"html_id":"locations:Array(DeviceLocation)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations","return_type":"Array(DeviceLocation)","visibility":"Public","body":"@locations"}},{"html_id":"locations=(locations:Array(DeviceLocation))-instance-method","name":"locations=","abstract":false,"args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"args_string":"(locations : Array(DeviceLocation))","args_html":"(locations : Array(DeviceLocation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations=","args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"visibility":"Public","body":"@locations = locations"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}}]},{"html_id":"drivers/Cisco/Meraki/Organization","path":"Cisco/Meraki/Organization.html","kind":"class","full_name":"Cisco::Meraki::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api:NamedTuple(enabled:Bool)-instance-method","name":"api","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api","return_type":"NamedTuple(enabled: Bool)","visibility":"Public","body":"@api"}},{"html_id":"api=(api:NamedTuple(enabled:Bool))-instance-method","name":"api=","abstract":false,"args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"args_string":"(api : NamedTuple(enabled: Bool))","args_html":"(api : NamedTuple(enabled: Bool))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api=","args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"visibility":"Public","body":"@api = api"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/PortState","path":"Cisco/Meraki/PortState.html","kind":"enum","full_name":"Cisco::Meraki::PortState","name":"PortState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L400"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Connected","name":"Connected","value":"0"},{"id":"Disconnected","name":"Disconnected","value":"1"},{"id":"Disabled","name":"Disabled","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"connected?-instance-method","name":"connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L401"},"def":{"name":"connected?","visibility":"Public","body":"self == Connected"}},{"html_id":"disabled?-instance-method","name":"disabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L403"},"def":{"name":"disabled?","visibility":"Public","body":"self == Disabled"}},{"html_id":"disconnected?-instance-method","name":"disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L402"},"def":{"name":"disconnected?","visibility":"Public","body":"self == Disconnected"}}]},{"html_id":"drivers/Cisco/Meraki/PortStatusResponse","path":"Cisco/Meraki/PortStatusResponse.html","kind":"class","full_name":"Cisco::Meraki::PortStatusResponse","name":"PortStatusResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_id:String-instance-method","name":"desk_id","abstract":false,"def":{"name":"desk_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @desk_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#desk_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"desk_id=(desk_id:String)-instance-method","name":"desk_id=","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String)","args_html":"(desk_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":428,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L428"},"def":{"name":"desk_id=","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"visibility":"Public","body":"@desk_id = desk_id"}},{"html_id":"desk_id?:String|Nil-instance-method","name":"desk_id?","abstract":false,"def":{"name":"desk_id?","return_type":"String | ::Nil","visibility":"Public","body":"@desk_id"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L415"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_uplink?:Bool-instance-method","name":"is_uplink?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L419"},"def":{"name":"is_uplink?","return_type":"Bool","visibility":"Public","body":"@is_uplink"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#level_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"level_id=(level_id:String)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String)","args_html":"(level_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L431"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_id?:String|Nil-instance-method","name":"level_id?","abstract":false,"def":{"name":"level_id?","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"port:Int32-instance-method","name":"port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L413"},"def":{"name":"port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @port).nil?\n @port = (port_id.to_i)\nelse\n __temp_1\nend"}},{"html_id":"port_id:String-instance-method","name":"port_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L410"},"def":{"name":"port_id","return_type":"String","visibility":"Public","body":"@port_id"}},{"html_id":"status:PortState-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L416"},"def":{"name":"status","return_type":"PortState","visibility":"Public","body":"@status"}},{"html_id":"switch_serial:String-instance-method","name":"switch_serial","abstract":false,"def":{"name":"switch_serial","return_type":"String","visibility":"Public","body":"if (__temp_1 = @switch_serial).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#switch_serial cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"switch_serial=(switch_serial:String)-instance-method","name":"switch_serial=","abstract":false,"args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"args_string":"(switch_serial : String)","args_html":"(switch_serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L422"},"def":{"name":"switch_serial=","args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"visibility":"Public","body":"@switch_serial = switch_serial"}},{"html_id":"switch_serial?:String|Nil-instance-method","name":"switch_serial?","abstract":false,"def":{"name":"switch_serial?","return_type":"String | ::Nil","visibility":"Public","body":"@switch_serial"}}]},{"html_id":"drivers/Cisco/Meraki/RSSI","path":"Cisco/Meraki/RSSI.html","kind":"class","full_name":"Cisco::Meraki::RSSI","name":"RSSI","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L154"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L155"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}}]},{"html_id":"drivers/Cisco/Meraki/WebhookAlert","path":"Cisco/Meraki/WebhookAlert.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alert_data:PortData-instance-method","name":"alert_data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L387"},"def":{"name":"alert_data","return_type":"PortData","visibility":"Public","body":"@alert_data"}},{"html_id":"alert_type:AlertType-instance-method","name":"alert_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":384,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L384"},"def":{"name":"alert_type","return_type":"AlertType","visibility":"Public","body":"@alert_type"}},{"html_id":"device_serial:String-instance-method","name":"device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L390"},"def":{"name":"device_serial","return_type":"String","visibility":"Public","body":"@device_serial"}},{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":381,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L381"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L395"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"alert_data.port_num"}},{"html_id":"shared_secret:String-instance-method","name":"shared_secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L393"},"def":{"name":"shared_secret","return_type":"String","visibility":"Public","body":"@shared_secret"}}],"types":[{"html_id":"drivers/Cisco/Meraki/WebhookAlert/PortData","path":"Cisco/Meraki/WebhookAlert/PortData.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert::PortData","name":"PortData","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L373"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/WebhookAlert","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L374"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L377"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"@port_num"}}]}]},{"html_id":"drivers/Cisco/Meraki/ZoneDetails","path":"Cisco/Meraki/ZoneDetails.html","kind":"struct","full_name":"Cisco::Meraki::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":352,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L352"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L353"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Cisco/RoomKit","path":"Cisco/RoomKit.html","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L45"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}],"instance_methods":[{"html_id":"autofocus_diagnostics_start(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_start","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L248"},"def":{"name":"autofocus_diagnostics_start","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Start\", camera_id: camera_id)\n"}},{"html_id":"autofocus_diagnostics_stop(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_stop","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L252"},"def":{"name":"autofocus_diagnostics_stop","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Stop\", camera_id: camera_id)\n"}},{"html_id":"bookings(days:Int32|Nil=nil,day_offset:Int32|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L163"},"def":{"name":"bookings","args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if days\n if (1..365).includes?(days)\n else\n raise(ArgumentError.new(\"\\\"days\\\" must be within #{1..365}, was #{days}\"))\n end\nend\nif day_offset\n if (0..365).includes?(day_offset)\n else\n raise(ArgumentError.new(\"\\\"day_offset\\\" must be within #{0..365}, was #{day_offset}\"))\n end\nend\nxcommand(\"Bookings List\", days: days, day_offset: day_offset, limit: limit, offset: offset)\n"}},{"html_id":"call_accept(call_id:Int32|Nil=nil)-instance-method","name":"call_accept","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L169"},"def":{"name":"call_accept","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Accept\", call_id: call_id)"}},{"html_id":"call_place_on_hold(call_id:Int32|Nil=nil)-instance-method","name":"call_place_on_hold","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L172"},"def":{"name":"call_place_on_hold","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Hold\", call_id: call_id)"}},{"html_id":"call_reject(call_id:Int32|Nil=nil)-instance-method","name":"call_reject","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L170"},"def":{"name":"call_reject","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Reject\", call_id: call_id)"}},{"html_id":"call_resume(call_id:Int32|Nil=nil)-instance-method","name":"call_resume","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L173"},"def":{"name":"call_resume","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Resume\", call_id: call_id)"}},{"html_id":"camera_select(connector_id:Int32|Nil=nil,layout:VideoLayout|Nil=nil,source_id:Int32|Nil=nil)-instance-method","name":"camera_select","abstract":false,"args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"args_string":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","args_html":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L202"},"def":{"name":"camera_select","args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if connector_id\n if (1..3).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..3}, was #{connector_id}\"))\n end\nend\nif source_id\n if (1..3).includes?(source_id)\n else\n raise(ArgumentError.new(\"\\\"source_id\\\" must be within #{1..3}, was #{source_id}\"))\n end\nend\nxcommand(\"Video Input SetMainVideoSource\", connector_id: connector_id, layout: layout, source_id: source_id)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L60"},"def":{"name":"connected","visibility":"Public","body":"super()\nschedule.in(40.seconds) do\n if self[\"calls\"]?.nil?\n disconnect\n end\nend\n"}},{"html_id":"dial(number:String,protocol:DialProtocol|Nil=nil,call_rate:Int32|Nil=nil,call_type:CallType|Nil=nil)-instance-method","name":"dial","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"args_string":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","args_html":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L191"},"def":{"name":"dial","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"visibility":"Public","body":"if call_rate\n if (64..6000).includes?(call_rate)\n else\n raise(ArgumentError.new(\"\\\"call_rate\\\" must be within #{64..6000}, was #{call_rate}\"))\n end\nend\nxcommand(\"Dial\", number: number, protocol: protocol, call_rate: call_rate, call_type: call_type)\n"}},{"html_id":"dtmf_send(d_t_m_f_string:String,call_id:Int32|Nil=nil)-instance-method","name":"dtmf_send","abstract":false,"args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","args_html":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L175"},"def":{"name":"dtmf_send","args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if call_id\n if (0..65534).includes?(call_id)\n else\n raise(ArgumentError.new(\"\\\"call_id\\\" must be within #{0..65534}, was #{call_id}\"))\n end\nend\nxcommand(\"Call DTMFSend\", d_t_m_f_string: d_t_m_f_string, call_id: call_id)\n"}},{"html_id":"hangup(call_id:Int32|Nil=nil)-instance-method","name":"hangup","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L171"},"def":{"name":"hangup","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Disconnect\", call_id: call_id)"}},{"html_id":"mic_mute(state:Bool=true)-instance-method","name":"mic_mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L298"},"def":{"name":"mic_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? mic_mute_on : mic_mute_off"}},{"html_id":"mic_mute_off-instance-method","name":"mic_mute_off","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L121"},"def":{"name":"mic_mute_off","visibility":"Public","body":"xcommand(\"Audio Microphones Unmute\")"}},{"html_id":"mic_mute_on-instance-method","name":"mic_mute_on","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L120"},"def":{"name":"mic_mute_on","visibility":"Public","body":"xcommand(\"Audio Microphones Mute\")"}},{"html_id":"mic_mute_toggle-instance-method","name":"mic_mute_toggle","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L122"},"def":{"name":"mic_mute_toggle","visibility":"Public","body":"xcommand(\"Audio Microphones ToggleMute\")"}},{"html_id":"phonebook_search(search_string:String,phonebook_type:PhonebookType|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"phonebook_search","abstract":false,"args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L276"},"def":{"name":"phonebook_search","args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Phonebook Search\", search_string: search_string, phonebook_type: phonebook_type, limit: limit, offset: offset)"}},{"html_id":"play_sound(sound:Sound,loop:Toogle|Nil=nil)-instance-method","name":"play_sound","abstract":false,"args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"args_string":"(sound : Sound, loop : Toogle | Nil = nil)","args_html":"(sound : Sound, loop : Toogle | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L158"},"def":{"name":"play_sound","args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"visibility":"Public","body":"xcommand(\"Audio Sound Play\", sound: sound, loop: loop)"}},{"html_id":"presentation_mode(value:PresentationMode)-instance-method","name":"presentation_mode","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"args_string":"(value : PresentationMode)","args_html":"(value : PresentationMode)","location":{"filename":"src/cisco/room_kit.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L302"},"def":{"name":"presentation_mode","args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"visibility":"Public","body":"case value\nin .remote?\n presentation_start(sending_mode: :LocalRemote)\nin .local?\n @presentation_mode = PresentationMode::Local\n presentation_start(sending_mode: :LocalOnly)\nin .none?\n @presentation_mode = PresentationMode::None\n presentation_stop\nend"}},{"html_id":"reboot(action:PowerOff|Nil=nil)-instance-method","name":"reboot","abstract":false,"args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"args_string":"(action : PowerOff | Nil = nil)","args_html":"(action : PowerOff | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L288"},"def":{"name":"reboot","args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"visibility":"Public","body":"xcommand(\"SystemUnit Boot\", action: action)"}},{"html_id":"selfview(mode:Toogle|Nil=nil,full_screen_mode:Toogle|Nil=nil,p_i_p_position:PiPPosition|Nil=nil,on_monitor_role:MonitorRole|Nil=nil)-instance-method","name":"selfview","abstract":false,"args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"args_string":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","args_html":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L241"},"def":{"name":"selfview","args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Selfview Set\", mode: mode, full_screen_mode: full_screen_mode, p_i_p_position: p_i_p_position, on_monitor_role: on_monitor_role)"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/room_kit.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L340"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == config.ip\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/room_kit.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L322"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"show_camera_pip(visible:Bool)-instance-method","name":"show_camera_pip","abstract":false,"args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"args_string":"(visible : Bool)","args_html":"(visible : Bool)","location":{"filename":"src/cisco/room_kit.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L293"},"def":{"name":"show_camera_pip","args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"visibility":"Public","body":"mode = visible ? Toogle::On : Toogle::Off\nselfview(mode: mode)\n"}},{"html_id":"speaker_track(state:Bool=true)-instance-method","name":"speaker_track","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L267"},"def":{"name":"speaker_track","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? speaker_track_activate : speaker_track_deactivate"}},{"html_id":"speaker_track_activate-instance-method","name":"speaker_track_activate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L262"},"def":{"name":"speaker_track_activate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Activate\")"}},{"html_id":"speaker_track_deactivate-instance-method","name":"speaker_track_deactivate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L265"},"def":{"name":"speaker_track_deactivate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Deactivate\")"}},{"html_id":"speaker_track_diagnostics_start-instance-method","name":"speaker_track_diagnostics_start","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L256"},"def":{"name":"speaker_track_diagnostics_start","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Start\")"}},{"html_id":"speaker_track_diagnostics_stop-instance-method","name":"speaker_track_diagnostics_stop","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L259"},"def":{"name":"speaker_track_diagnostics_stop","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Stop\")"}},{"html_id":"stop_sound-instance-method","name":"stop_sound","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L161"},"def":{"name":"stop_sound","visibility":"Public","body":"xcommand(\"Audio Sound Stop\")"}},{"html_id":"video_layout(layout_family:LayoutFamily,target:LayoutTarget|Nil=nil)-instance-method","name":"video_layout","abstract":false,"args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"args_string":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","args_html":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L220"},"def":{"name":"video_layout","args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Layout LayoutFamily Set\", layout_family: layout_family, target: target)"}},{"html_id":"webview_clear-instance-method","name":"webview_clear","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L285"},"def":{"name":"webview_clear","visibility":"Public","body":"xcommand(\"UserInterface WebView Clear\")"}},{"html_id":"webview_display(url:String)-instance-method","name":"webview_display","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/room_kit.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L282"},"def":{"name":"webview_display","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface WebView Display\", url: url)"}}],"types":[{"html_id":"drivers/Cisco/RoomKit/CallType","path":"Cisco/RoomKit/CallType.html","kind":"enum","full_name":"Cisco::RoomKit::CallType","name":"CallType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L187"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L188"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Cisco/RoomKit/DialProtocol","path":"Cisco/RoomKit/DialProtocol.html","kind":"enum","full_name":"Cisco::RoomKit::DialProtocol","name":"DialProtocol","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L179"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"H320","name":"H320","value":"0"},{"id":"H323","name":"H323","value":"1"},{"id":"Sip","name":"Sip","value":"2"},{"id":"Spark","name":"Spark","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"h320?-instance-method","name":"h320?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L180"},"def":{"name":"h320?","visibility":"Public","body":"self == H320"}},{"html_id":"h323?-instance-method","name":"h323?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L181"},"def":{"name":"h323?","visibility":"Public","body":"self == H323"}},{"html_id":"sip?-instance-method","name":"sip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L182"},"def":{"name":"sip?","visibility":"Public","body":"self == Sip"}},{"html_id":"spark?-instance-method","name":"spark?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L183"},"def":{"name":"spark?","visibility":"Public","body":"self == Spark"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutFamily","path":"Cisco/RoomKit/LayoutFamily.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutFamily","name":"LayoutFamily","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L207"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Equal","name":"Equal","value":"1"},{"id":"Overlay","name":"Overlay","value":"2"},{"id":"Prominent","name":"Prominent","value":"3"},{"id":"Single","name":"Single","value":"4"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L208"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L209"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L210"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"prominent?-instance-method","name":"prominent?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L211"},"def":{"name":"prominent?","visibility":"Public","body":"self == Prominent"}},{"html_id":"single?-instance-method","name":"single?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L212"},"def":{"name":"single?","visibility":"Public","body":"self == Single"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutTarget","path":"Cisco/RoomKit/LayoutTarget.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutTarget","name":"LayoutTarget","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L215"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Local","name":"Local","value":"0"},{"id":"Remote","name":"Remote","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L216"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L217"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/MonitorRole","path":"Cisco/RoomKit/MonitorRole.html","kind":"enum","full_name":"Cisco::RoomKit::MonitorRole","name":"MonitorRole","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L234"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"First","name":"First","value":"0"},{"id":"Second","name":"Second","value":"1"},{"id":"Third","name":"Third","value":"2"},{"id":"Fourth","name":"Fourth","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"first?-instance-method","name":"first?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L235"},"def":{"name":"first?","visibility":"Public","body":"self == First"}},{"html_id":"fourth?-instance-method","name":"fourth?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L238"},"def":{"name":"fourth?","visibility":"Public","body":"self == Fourth"}},{"html_id":"second?-instance-method","name":"second?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L236"},"def":{"name":"second?","visibility":"Public","body":"self == Second"}},{"html_id":"third?-instance-method","name":"third?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L237"},"def":{"name":"third?","visibility":"Public","body":"self == Third"}}]},{"html_id":"drivers/Cisco/RoomKit/PhonebookType","path":"Cisco/RoomKit/PhonebookType.html","kind":"enum","full_name":"Cisco::RoomKit::PhonebookType","name":"PhonebookType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L271"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Corporate","name":"Corporate","value":"0"},{"id":"Local","name":"Local","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"corporate?-instance-method","name":"corporate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L272"},"def":{"name":"corporate?","visibility":"Public","body":"self == Corporate"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L273"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}}]},{"html_id":"drivers/Cisco/RoomKit/PiPPosition","path":"Cisco/RoomKit/PiPPosition.html","kind":"enum","full_name":"Cisco::RoomKit::PiPPosition","name":"PiPPosition","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L224"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CenterLeft","name":"CenterLeft","value":"0"},{"id":"CenterRight","name":"CenterRight","value":"1"},{"id":"LowerLeft","name":"LowerLeft","value":"2"},{"id":"LowerRight","name":"LowerRight","value":"3"},{"id":"UpperCenter","name":"UpperCenter","value":"4"},{"id":"UpperLeft","name":"UpperLeft","value":"5"},{"id":"UpperRight","name":"UpperRight","value":"6"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"center_left?-instance-method","name":"center_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L225"},"def":{"name":"center_left?","visibility":"Public","body":"self == CenterLeft"}},{"html_id":"center_right?-instance-method","name":"center_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L226"},"def":{"name":"center_right?","visibility":"Public","body":"self == CenterRight"}},{"html_id":"lower_left?-instance-method","name":"lower_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L227"},"def":{"name":"lower_left?","visibility":"Public","body":"self == LowerLeft"}},{"html_id":"lower_right?-instance-method","name":"lower_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L228"},"def":{"name":"lower_right?","visibility":"Public","body":"self == LowerRight"}},{"html_id":"upper_center?-instance-method","name":"upper_center?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L229"},"def":{"name":"upper_center?","visibility":"Public","body":"self == UpperCenter"}},{"html_id":"upper_left?-instance-method","name":"upper_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L230"},"def":{"name":"upper_left?","visibility":"Public","body":"self == UpperLeft"}},{"html_id":"upper_right?-instance-method","name":"upper_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L231"},"def":{"name":"upper_right?","visibility":"Public","body":"self == UpperRight"}}]},{"html_id":"drivers/Cisco/RoomKit/PresentationMode","path":"Cisco/RoomKit/PresentationMode.html","kind":"enum","full_name":"Cisco::RoomKit::PresentationMode","name":"PresentationMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L51"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Local","name":"Local","value":"1"},{"id":"Remote","name":"Remote","value":"2"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L53"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L52"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L54"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/Sound","path":"Cisco/RoomKit/Sound.html","kind":"enum","full_name":"Cisco::RoomKit::Sound","name":"Sound","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L133"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Alert","name":"Alert","value":"0"},{"id":"Bump","name":"Bump","value":"1"},{"id":"Busy","name":"Busy","value":"2"},{"id":"CallDisconnect","name":"CallDisconnect","value":"3"},{"id":"CallInitiate","name":"CallInitiate","value":"4"},{"id":"CallWaiting","name":"CallWaiting","value":"5"},{"id":"Dial","name":"Dial","value":"6"},{"id":"KeyInput","name":"KeyInput","value":"7"},{"id":"KeyInputDelete","name":"KeyInputDelete","value":"8"},{"id":"KeyTone","name":"KeyTone","value":"9"},{"id":"Nav","name":"Nav","value":"10"},{"id":"NavBack","name":"NavBack","value":"11"},{"id":"Notification","name":"Notification","value":"12"},{"id":"OK","name":"OK","value":"13"},{"id":"PresentationConnect","name":"PresentationConnect","value":"14"},{"id":"Ringing","name":"Ringing","value":"15"},{"id":"SignIn","name":"SignIn","value":"16"},{"id":"SpecialInfo","name":"SpecialInfo","value":"17"},{"id":"TelephoneCall","name":"TelephoneCall","value":"18"},{"id":"VideoCall","name":"VideoCall","value":"19"},{"id":"VolumeAdjust","name":"VolumeAdjust","value":"20"},{"id":"WakeUp","name":"WakeUp","value":"21"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"alert?-instance-method","name":"alert?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L134"},"def":{"name":"alert?","visibility":"Public","body":"self == Alert"}},{"html_id":"bump?-instance-method","name":"bump?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L135"},"def":{"name":"bump?","visibility":"Public","body":"self == Bump"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L136"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"call_disconnect?-instance-method","name":"call_disconnect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L137"},"def":{"name":"call_disconnect?","visibility":"Public","body":"self == CallDisconnect"}},{"html_id":"call_initiate?-instance-method","name":"call_initiate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L138"},"def":{"name":"call_initiate?","visibility":"Public","body":"self == CallInitiate"}},{"html_id":"call_waiting?-instance-method","name":"call_waiting?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L139"},"def":{"name":"call_waiting?","visibility":"Public","body":"self == CallWaiting"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L140"},"def":{"name":"dial?","visibility":"Public","body":"self == Dial"}},{"html_id":"key_input?-instance-method","name":"key_input?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L141"},"def":{"name":"key_input?","visibility":"Public","body":"self == KeyInput"}},{"html_id":"key_input_delete?-instance-method","name":"key_input_delete?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L142"},"def":{"name":"key_input_delete?","visibility":"Public","body":"self == KeyInputDelete"}},{"html_id":"key_tone?-instance-method","name":"key_tone?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L143"},"def":{"name":"key_tone?","visibility":"Public","body":"self == KeyTone"}},{"html_id":"nav?-instance-method","name":"nav?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L144"},"def":{"name":"nav?","visibility":"Public","body":"self == Nav"}},{"html_id":"nav_back?-instance-method","name":"nav_back?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L145"},"def":{"name":"nav_back?","visibility":"Public","body":"self == NavBack"}},{"html_id":"notification?-instance-method","name":"notification?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L146"},"def":{"name":"notification?","visibility":"Public","body":"self == Notification"}},{"html_id":"ok?-instance-method","name":"ok?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L147"},"def":{"name":"ok?","visibility":"Public","body":"self == OK"}},{"html_id":"presentation_connect?-instance-method","name":"presentation_connect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L148"},"def":{"name":"presentation_connect?","visibility":"Public","body":"self == PresentationConnect"}},{"html_id":"ringing?-instance-method","name":"ringing?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L149"},"def":{"name":"ringing?","visibility":"Public","body":"self == Ringing"}},{"html_id":"sign_in?-instance-method","name":"sign_in?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L150"},"def":{"name":"sign_in?","visibility":"Public","body":"self == SignIn"}},{"html_id":"special_info?-instance-method","name":"special_info?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L151"},"def":{"name":"special_info?","visibility":"Public","body":"self == SpecialInfo"}},{"html_id":"telephone_call?-instance-method","name":"telephone_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L152"},"def":{"name":"telephone_call?","visibility":"Public","body":"self == TelephoneCall"}},{"html_id":"video_call?-instance-method","name":"video_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L153"},"def":{"name":"video_call?","visibility":"Public","body":"self == VideoCall"}},{"html_id":"volume_adjust?-instance-method","name":"volume_adjust?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L154"},"def":{"name":"volume_adjust?","visibility":"Public","body":"self == VolumeAdjust"}},{"html_id":"wake_up?-instance-method","name":"wake_up?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L155"},"def":{"name":"wake_up?","visibility":"Public","body":"self == WakeUp"}}]},{"html_id":"drivers/Cisco/RoomKit/Toogle","path":"Cisco/RoomKit/Toogle.html","kind":"enum","full_name":"Cisco::RoomKit::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L130"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L129"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/RoomKit/VideoLayout","path":"Cisco/RoomKit/VideoLayout.html","kind":"enum","full_name":"Cisco::RoomKit::VideoLayout","name":"VideoLayout","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L197"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"PIP","name":"PIP","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L198"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L199"},"def":{"name":"pip?","visibility":"Public","body":"self == PIP"}}]}]},{"html_id":"drivers/Cisco/RoomOS","path":"Cisco/RoomOS.html","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_os.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_os.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_os.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_os.cr#L38"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}]},{"html_id":"drivers/Cisco/SpacesRoom","path":"Cisco/SpacesRoom.html","kind":"class","full_name":"Cisco::SpacesRoom","name":"SpacesRoom","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/spaces_room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality, SensorType::SoundPressure}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L19"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :cisco_spaces_system)).presence || config.control_system.not_nil!.id\n@module_name = (setting?(String, :cisco_spaces_module)).presence || \"Cisco_Spaces\"\n@room_id = setting(String, :space_room_id)\n"}},{"html_id":"room_id:String-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L20"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/spaces_room.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L52"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == @room_id\nelse\n return nil\nend\n::Union(Interface::Sensor::Detail, ::Nil).from_json((cisco_spaces.sensors(@room_id, id)).get.to_json)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/spaces_room.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L39"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @room_id)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nArray(Interface::Sensor::Detail).from_json((cisco_spaces.sensors(type, @room_id, zone_id)).get.to_json)\n"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L18"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Cisco/Switch","path":"Cisco/Switch.html","kind":"module","full_name":"Cisco::Switch","name":"Switch","abstract":false,"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Switch/SnoopingCatalyst","path":"Cisco/Switch/SnoopingCatalyst.html","kind":"class","full_name":"Cisco::Switch::SnoopingCatalyst","name":"SnoopingCatalyst","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Switch","kind":"module","full_name":"Cisco::Switch","name":"Switch"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(1.second) do\n query_connected_devices\nend\nschedule.every(1.minute) do\n query_connected_devices\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nqueue.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\n\", \"--More--\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@ignore_macs = ::Set.new(((setting?(Hash(String, String), :ignore_macs)) || ({} of String => String)).values)\nself[:name] = @switch_name = setting?(String, :switch_name)\nself[:ip_address] = config.ip.not_nil!.downcase\nself[:building] = setting?(String, :building)\nself[:level] = setting?(String, :level)\nself[:last_successful_query]? || (self[:last_successful_query] = 0)\n"}},{"html_id":"query_connected_devices-instance-method","name":"query_connected_devices","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L87"},"def":{"name":"query_connected_devices","visibility":"Public","body":"begin\n if @querying_devices\n return\n end\n @querying_devices = true\n logger.debug do\n \"Querying for connected devices\"\n end\n query_interface_status.get\n sleep(3.seconds)\n query_mac_addresses.get\n sleep(3.seconds)\n query_snooping_bindings.get\n sleep(2.seconds)\n nil\nensure\n @querying_devices = false\nend"}},{"html_id":"query_interface_status-instance-method","name":"query_interface_status","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L71"},"def":{"name":"query_interface_status","visibility":"Public","body":"do_send(\"show interfaces status\")"}},{"html_id":"query_mac_addresses-instance-method","name":"query_mac_addresses","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L75"},"def":{"name":"query_mac_addresses","visibility":"Public","body":"@interface_macs.clear\ndo_send(\"show mac address-table\")\n"}},{"html_id":"query_snooping_bindings-instance-method","name":"query_snooping_bindings","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L80"},"def":{"name":"query_snooping_bindings","visibility":"Public","body":"@snooping.clear\ndo_send(\"show ip dhcp snooping binding\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Switch sent: #{data}\"\nend\nif @hostname.nil?\n parts = data.split(\">\")\n if parts.size == 2\n self[:hostname] = @hostname = parts[0]\n return task.try(&.success)\n end\nend\ncase data\nwhen /More/\n send(\" \", priority: 99, retries: 0)\n return task.try(&.success)\nwhen /STATIC|DYNAMIC/\n parts = (data.split(/\\s+/)).reject(&.empty?)\n mac = format(parts[1])\n interface = normalise(parts[-1])\n if mac && interface\n @interface_macs[interface] = mac\n end\n return :success\nwhen /%LINK/\n interface = normalise(((data.split(\",\"))[0].split(/\\s/))[-1])\n if data =~ (/Up:/)\n logger.debug do\n \"Notify Up: #{interface}\"\n end\n @check_interface << interface\n else\n if data =~ (/Down:/)\n logger.debug do\n \"Notify Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\n end\n self[:interfaces] = @check_interface\n return task.try(&.success)\nwhen .starts_with?(\"Total number\")\n logger.debug do\n \"Processing #{@snooping.size} bindings\"\n end\n checked = Set(String).new\n devices = {} of String => NamedTuple(mac: String, ip: String)\n state_changed = false\n @snooping.each do |mac, ip, interface|\n if @check_interface.includes?(interface)\n else\n next\n end\n if @interface_macs[interface]? == mac\n else\n next\n end\n if checked.includes?(interface)\n next\n end\n checked << interface\n iface = @devices[interface]? || {mac: \"\", ip: \"\"}\n if (iface[:ip] != ip) || (iface[:mac] != mac)\n logger.debug do\n \"New connection on #{interface} with #{ip}: #{mac}\"\n end\n devices[interface] = {mac: mac, ip: ip}\n state_changed = true\n else\n devices[interface] = iface\n end\n end\n if state_changed\n @devices = devices\n self[:devices] = devices\n end\n if @check_interface != checked\n @check_interface = checked\n self[:interfaces] = checked\n end\n self[:last_successful_query] = Time.utc.to_unix\n return task.try(&.success)\nend\nentries = (data.split(/\\s+/)).reject(&.empty?)\ncase entries\nwhen .includes?(\"connected\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n else\n logger.debug do\n \"Interface Up: #{interface}\"\n end\n @check_interface << interface\n end\nwhen .includes?(\"notconnect\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n logger.debug do\n \"Interface Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\nelse\n if entries.size > 2\n interface = normalise(entries[-1])\n if @check_interface.includes?(interface)\n mac = entries[0]\n if mac =~ (/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/)\n mac = format(mac)\n ip = entries[1]\n if @ignore_macs.includes?(mac[0..5])\n else\n @snooping << {mac, ip, interface}\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"run(command:String)-instance-method","name":"run","doc":"Don't want the every day user using this method","summary":"

Don't want the every day user using this method

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L67"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"do_send(command)"}}]}]},{"html_id":"drivers/Cisco/UIExtender","path":"Cisco/UIExtender.html","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IGNORE_METHODS","name":"IGNORE_METHODS","value":"[\"on_load\", \"on_unload\", \"on_update\"] of ::String","doc":"Build a list of all callback methods that have been defined.\n\nCallback methods are denoted being single arity and beginning with `on_`.","summary":"

Build a list of all callback methods that have been defined.

"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"alert(text:String,title:String=\"\",duration:Int32=0)-instance-method","name":"alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"args_string":"(text : String, title : String = \"\", duration : Int32 = 0)","args_html":"(text : String, title : String = "", duration : Int32 = 0)","location":{"filename":"src/cisco/ui_extender.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L200"},"def":{"name":"alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Display\", hash_args: {Text: text, Title: title, Duration: duration})"}},{"html_id":"clear_alert-instance-method","name":"clear_alert","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L211"},"def":{"name":"clear_alert","visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"clear_extensions-instance-method","name":"clear_extensions","doc":"Clear any deployed UI extensions.","summary":"

Clear any deployed UI extensions.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L75"},"def":{"name":"clear_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"close_panel-instance-method","name":"close_panel","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L82"},"def":{"name":"close_panel","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Panel Close\")"}},{"html_id":"deploy_extensions(id:String,xml_def:String)-instance-method","name":"deploy_extensions","doc":"Push a UI definition build with the in-room control editor to the device.","summary":"

Push a UI definition build with the in-room control editor to the device.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L65"},"def":{"name":"deploy_extensions","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Set\", xml_def, {\"config_id\" => id})"}},{"html_id":"highlight(id:String,state:Bool=true,momentary:Bool=false,time:Int32=500)-instance-method","name":"highlight","doc":"Set the highlight state for a button widget.","summary":"

Set the highlight state for a button widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"args_string":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","args_html":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","location":{"filename":"src/cisco/ui_extender.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L145"},"def":{"name":"highlight","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"visibility":"Public","body":"value = state ? \"active\" : \"inactive\"\nif momentary\n schedule.in(time.milliseconds) do\n highlight(id, !state)\n nil\n end\nend\nset(id, value)\n"}},{"html_id":"label(id:String,value:String|Bool|Nil)-instance-method","name":"label","doc":"Set the text label used on text or spinner widget.","summary":"

Set the text label used on text or spinner widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L152"},"def":{"name":"label","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"link_widget(id:String,bindings:Binding)-instance-method","name":"link_widget","doc":"Wire up a widget based on a binding target.","summary":"

Wire up a widget based on a binding target.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"args_string":"(id : String, bindings : Binding)","args_html":"(id : String, bindings : Binding)","location":{"filename":"src/cisco/ui_extender.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L328"},"def":{"name":"link_widget","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"visibility":"Public","body":"logger.debug do\n \"setting up bindings for #{id}\"\nend\nbinding = case bindings\nin String\n (([\"clicked\", \"changed\", \"status\"] of ::String).product([bindings])).to_h\nin Hash(String, Hash(String, Hash(String, Array(String)) | String) | String)\n bindings\nend\nbinding.each do |type, target|\n if type == \"status\"\n case target\n in String\n mod, state = target.split(\".\")\n link_feedback(id, mod, state)\n in Hash(String, String | Hash(String, Array(String)))\n mod, state = target.first\n link_feedback(id, mod, state.as(String))\n end\n else\n handler = build_handler(target)\n if handler\n @event_handlers[{id, type}] = handler\n else\n logger.warn do\n \"invalid #{type} binding for #{id}\"\n end\n end\n end\nend\n"}},{"html_id":"list_extensions-instance-method","name":"list_extensions","doc":"Retrieve the extensions currently loaded.","summary":"

Retrieve the extensions currently loaded.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L70"},"def":{"name":"list_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions List\")"}},{"html_id":"on_extensions_widget_action(event:Hash(String,JSON::Any))-instance-method","name":"on_extensions_widget_action","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"args_string":"(event : Hash(String, JSON::Any))","args_html":"(event : Hash(String, JSON::Any))","location":{"filename":"src/cisco/ui_extender.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L159"},"def":{"name":"on_extensions_widget_action","args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"logger.debug do\n \"received widget action update #{event}\"\nend\ncurrent_key = event.keys.first\ncase current_key\nwhen \"/Event/UserInterface/Extensions/Widget/Action/WidgetId\"\n @action_merged[\"WidgetId\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action\", \"/Event/UserInterface/Extensions/Widget/Action/Value\"\n @action_merged[\"Value\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action/Type\"\n @action_merged[\"Type\"] = event[current_key]\nelse\n logger.debug do\n \"ignoring key #{current_key} processing widget_action event\"\n end\nend\nlogger.debug do\n \"current action state: #{@action_merged}\"\nend\nif @action_merged.size == 3\nelse\n return\nend\nid, value, type = @action_merged.values_at(\"WidgetId\", \"Value\", \"Type\")\n@action_merged = {} of String => JSON::Any\nlogger.debug do\n \"#{id} #{type} = #{value}\"\nend\nid = id.as_s\ntype = type.as_s\nif [\"\", \"increment\", \"decrement\"].includes?(value.raw)\nelse\n self[id] = value\nend\nbegin\n handler = @event_handlers.fetch([id, type], nil)\n handler.try(&.call(value))\nrescue e\n logger.error(exception: e) do\n \"error in binding for #{id}.#{type}\"\n end\nend\nself[:__event_stream] = {id: id, type: type, value: value}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"on_update(true)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L27"},"def":{"name":"on_unload","visibility":"Public","body":"clear_extensions\nunbind\n"}},{"html_id":"on_update(loading=false)-instance-method","name":"on_update","abstract":false,"args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"args_string":"(loading = false)","args_html":"(loading = false)","location":{"filename":"src/cisco/ui_extender.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L37"},"def":{"name":"on_update","args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"visibility":"Public","body":"if loading\nelse\n begin\n clear_events\n rescue\n end\nend\ncodec_mod = (setting?(String, :codec)) || \"VidConf_1\"\nif system.exists?(codec_mod)\nelse\n logger.warn do\n \"could not find codec #{codec_mod}\"\n end\n return\nend\nui_layout = setting?(String, :cisco_ui_layout)\nbindings = (setting?(Bindings, :cisco_ui_bindings)) || ({} of String => Binding)\nbind(codec_mod) do\n if ui_layout\n deploy_extensions(\"PlaceOS\", ui_layout)\n end\n bindings.each do |id, config|\n link_widget(id, config)\n end\nend\n"}},{"html_id":"set(id:String,value:String|Bool|Nil)-instance-method","name":"set","doc":"Set the value of a widget.","summary":"

Set the value of a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L119"},"def":{"name":"set","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"switch(id:String,state:Bool|Nil=nil)-instance-method","name":"switch","doc":"Set the state of a switch widget.","summary":"

Set the state of a switch widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"args_string":"(id : String, state : Bool | Nil = nil)","args_html":"(id : String, state : Bool | Nil = nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L138"},"def":{"name":"switch","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if state.nil?\n state = !(status?(Bool, id))\nend\nvalue = state ? \"on\" : \"off\"\nset(id, value)\n"}},{"html_id":"sync_widget_state-instance-method","name":"sync_widget_state","doc":"Push the current module state to the device.","summary":"

Push the current module state to the device.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L262"},"def":{"name":"sync_widget_state","visibility":"Public","body":"@__status__.each do |key, value|\n if key == \"connected\"\n next\n end\n if key =~ (/^__.*/)\n next\n end\n case value\n when .starts_with?(\"\\\"\")\n set(key, String.from_json(value))\n when \"true\", \"false\"\n set(key, value == \"true\")\n end\nend"}},{"html_id":"unset(id:String)-instance-method","name":"unset","doc":"Clear the value associated with a widget.","summary":"

Clear the value associated with a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L124"},"def":{"name":"unset","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"clearing #{id}\"\nend\nupdate = codec.xcommand(\"UserInterface Extensions Widget UnsetValue\", hash_args: {WidgetId: id})\nPromise.defer do\n update.get\n self[id] = nil\n nil.as(String | Nil)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/UIExtender/Binding","path":"Cisco/UIExtender/Binding.html","kind":"alias","full_name":"Cisco::UIExtender::Binding","name":"Binding","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"}},{"html_id":"drivers/Cisco/UIExtender/Bindings","path":"Cisco/UIExtender/Bindings.html","kind":"alias","full_name":"Cisco::UIExtender::Bindings","name":"Bindings","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"},"doc":"id => binding","summary":"

id => binding

"}]},{"html_id":"drivers/Cisco/Webex","path":"Cisco/Webex.html","kind":"module","full_name":"Cisco::Webex","name":"Webex","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L2"},{"filename":"src/cisco/webex/api/people.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L2"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L2"},{"filename":"src/cisco/webex/client.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L2"},{"filename":"src/cisco/webex/command.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L2"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L2"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L2"},{"filename":"src/cisco/webex/constants.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L2"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L2"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L2"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L2"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L2"},{"filename":"src/cisco/webex/models/device.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L2"},{"filename":"src/cisco/webex/models/event.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L2"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L2"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L2"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L2"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L2"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L2"},{"filename":"src/cisco/webex/models/message.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L2"},{"filename":"src/cisco/webex/models/peek.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L2"},{"filename":"src/cisco/webex/models/person.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L2"},{"filename":"src/cisco/webex/models/room.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L2"},{"filename":"src/cisco/webex/session.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L2"},{"filename":"src/cisco/webex/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L2"},{"filename":"src/cisco/webex/utils.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Webex/Api","path":"Cisco/Webex/Api.html","kind":"module","full_name":"Cisco::Webex::Api","name":"Api","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L3"},{"filename":"src/cisco/webex/api/people.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L3"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Api/Messages","path":"Cisco/Webex/Api/Messages.html","kind":"class","full_name":"Cisco::Webex::Api::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/People","path":"Cisco/Webex/Api/People.html","kind":"class","full_name":"Cisco::Webex::Api::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/people.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/people.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"me:Models::Person-instance-method","name":"me","abstract":false,"location":{"filename":"src/cisco/webex/api/people.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L8"},"def":{"name":"me","return_type":"Models::Person","visibility":"Public","body":"response = @session.get([Constants::PEOPLE_ENDPOINT, \"/\", \"me\"].join(\"\"))\nModels::Person.from_json(response.body)\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/Rooms","path":"Cisco/Webex/Api/Rooms.html","kind":"class","full_name":"Cisco::Webex::Api::Rooms","name":"Rooms","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/rooms.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]}]},{"html_id":"drivers/Cisco/Webex/Client","path":"Cisco/Webex/Client.html","kind":"class","full_name":"Cisco::Webex::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/client.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(name:String,access_token:String,emails:String,session:Session,commands:Array(Command))-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"args_string":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","args_html":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L10"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, access_token, emails, session, commands)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"keywords:Hash(String,Command)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords","return_type":"Hash(String, Command)","visibility":"Public","body":"@keywords"}},{"html_id":"keywords=(keywords:Hash(String,Command))-instance-method","name":"keywords=","abstract":false,"args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"args_string":"(keywords : Hash(String, Command))","args_html":"(keywords : Hash(String, Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords=","args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"visibility":"Public","body":"@keywords = keywords"}},{"html_id":"messages:Cisco::Webex::Api::Messages-instance-method","name":"messages","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L31"},"def":{"name":"messages","visibility":"Public","body":"@messages"}},{"html_id":"people:Cisco::Webex::Api::People-instance-method","name":"people","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L27"},"def":{"name":"people","visibility":"Public","body":"@people"}},{"html_id":"rooms:Cisco::Webex::Api::Rooms-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L23"},"def":{"name":"rooms","visibility":"Public","body":"@rooms"}},{"html_id":"run:Void-instance-method","name":"run","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L124"},"def":{"name":"run","return_type":"Void","visibility":"Public","body":"device = device()\n@socket = socket = HTTP::WebSocket.new(URI.parse(device.websocket_url))\nsocket.on_message do |message|\n process_incoming_websocket_message(socket, message)\nend\nsocket.on_binary do |binary|\n process_incoming_websocket_message(socket, String.new(binary))\nend\nmessage = {\"id\" => UUID.random.to_s, \"type\" => \"authorization\", \"trackingId\" => [\"webex\", \"-\", UUID.random.to_s].join(\"\"), \"data\" => {\"token\" => [\"Bearer\", @access_token].join(\" \")}}\nsocket.send(message.to_json)\nsocket.run\n"}},{"html_id":"socket:HTTP::WebSocket|Nil-instance-method","name":"socket","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L8"},"def":{"name":"socket","return_type":"HTTP::WebSocket | ::Nil","visibility":"Public","body":"@socket"}},{"html_id":"socket=(socket:HTTP::WebSocket|Nil)-instance-method","name":"socket=","abstract":false,"args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"args_string":"(socket : HTTP::WebSocket | Nil)","args_html":"(socket : HTTP::WebSocket | Nil)","location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L8"},"def":{"name":"socket=","args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"visibility":"Public","body":"@socket = socket"}},{"html_id":"stop:Void-instance-method","name":"stop","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L148"},"def":{"name":"stop","return_type":"Void","visibility":"Public","body":"@socket.close"}}]},{"html_id":"drivers/Cisco/Webex/Command","path":"Cisco/Webex/Command.html","kind":"class","full_name":"Cisco::Webex::Command","name":"Command","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/command.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo"},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L5"},"def":{"name":"description","return_type":"String","visibility":"Public","body":""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":true,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L6"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":""}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L4"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":""}}]},{"html_id":"drivers/Cisco/Webex/Commands","path":"Cisco/Webex/Commands.html","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands","abstract":false,"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L3"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","path":"Cisco/Webex/Commands/Echo.html","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply replies your message!\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => message.text}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"echo\"]"}}]},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","path":"Cisco/Webex/Commands/Greeting.html","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/greeting.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply responds to hello, hi, how are you, etc.\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => \"👋\"}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"hello\", \"hi\"]"}}]}]},{"html_id":"drivers/Cisco/Webex/Constants","path":"Cisco/Webex/Constants.html","kind":"module","full_name":"Cisco::Webex::Constants","name":"Constants","abstract":false,"locations":[{"filename":"src/cisco/webex/constants.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_BASE_URL","name":"DEFAULT_BASE_URL","value":"\"https://webexapis.com/v1/\""},{"id":"DEFAULT_DEVICE_URL","name":"DEFAULT_DEVICE_URL","value":"\"https://wdm-a.wbx2.com/wdm/api/v1/\""},{"id":"DEFAULT_SINGLE_REQUEST_TIMEOUT","name":"DEFAULT_SINGLE_REQUEST_TIMEOUT","value":"60"},{"id":"DEFAULT_WAIT_ON_RATE_LIMIT","name":"DEFAULT_WAIT_ON_RATE_LIMIT","value":"true"},{"id":"DEVICE","name":"DEVICE","value":"{\"deviceType\" => \"DESKTOP\", \"localizedModel\" => \"crystal\", \"model\" => \"crystal\", \"name\" => UUID.random.to_s, \"systemName\" => \"webex-bot-client\", \"systemVersion\" => VERSION}"},{"id":"MESSAGES_ENDPOINT","name":"MESSAGES_ENDPOINT","value":"\"messages\""},{"id":"PEOPLE_ENDPOINT","name":"PEOPLE_ENDPOINT","value":"\"people\""},{"id":"ROOMS_ENDPOINT","name":"ROOMS_ENDPOINT","value":"\"rooms\""},{"id":"STATUS_CODES","name":"STATUS_CODES","value":"{200 => \"Successful request with body content.\", 204 => \"Successful request without body content.\", 400 => \"The request was invalid or cannot be otherwise served.\", 401 => \"Authentication credentials were missing or incorrect.\", 403 => \"The request is understood, but it has been refused or access is not allowed.\", 404 => \"The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.\", 405 => \"The request was made to a resource using an HTTP request method that is not supported.\", 409 => \"The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.\", 410 => \"The requested resource is no longer available.\", 415 => \"The request was made to a resource without specifying a media type or used a media type that is not supported.\", 423 => \"The requested resource is temporarily unavailable. A `Retry-After` header may be present that specifies how many seconds you need to wait before attempting the request again.\", 429 => \"Too many requests have been sent in a given amount of time and the request has been rate limited. A `Retry-After` header should be present that specifies how many seconds you need to wait before a successful request can be made.\", 500 => \"Something went wrong on the server. If the issue persists, feel free to contact the Webex Developer Support team (https://developer.webex.com/support).\", 502 => \"The server received an invalid response from an upstream server while processing the request. Try again later.\", 503 => \"Server is overloaded with requests. Try again later.\"}"},{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/drivers/drivers/src/cisco/webex\\\"`).chomp.stringify.downcase }}"},{"id":"WEBEX_TEAMS_DATETIME_FORMAT","name":"WEBEX_TEAMS_DATETIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%fZ\""}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"}},{"html_id":"drivers/Cisco/Webex/Exceptions","path":"Cisco/Webex/Exceptions.html","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions","abstract":false,"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L3"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L3"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L3"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Exceptions/Argument","path":"Cisco/Webex/Exceptions/Argument.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/Method","path":"Cisco/Webex/Exceptions/Method.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Method","name":"Method","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/method.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/RateLimit","path":"Cisco/Webex/Exceptions/RateLimit.html","kind":"class","full_name":"Cisco::Webex::Exceptions::RateLimit","name":"RateLimit","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/StatusCode","path":"Cisco/Webex/Exceptions/StatusCode.html","kind":"class","full_name":"Cisco::Webex::Exceptions::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect","path":"Cisco/Webex/InstantConnect.html","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest_bearer(user_id:String,display_name:String,expiry:Int64|Nil=nil)-instance-method","name":"create_guest_bearer","doc":"Cisco docs on the subject:\n* Guest JWT: https://developer.webex.com/docs/guest-issuer\n* Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/","summary":"

Cisco docs on the subject: * Guest JWT: https://developer.webex.com/docs/guest-issuer * Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","args_html":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L34"},"def":{"name":"create_guest_bearer","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"expires_at = expiry || 12.hours.from_now.to_unix\nJWT.encode({sub: user_id, name: display_name, iss: @webex_guest_issuer, iat: 3.minutes.ago.to_unix, exp: expires_at}, Base64.decode_string(@webex_guest_secret), :hs256)\n"}},{"html_id":"create_meeting(room_id:String)-instance-method","name":"create_meeting","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L45"},"def":{"name":"create_meeting","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"expiry = 24.hours.from_now.to_unix\nrequest = {aud: @jwt_audience, provideShortUrls: true, jwt: {sub: room_id, exp: expiry}}.to_json\nget_meeting_details(get_hash(request))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@webex_guest_issuer = (setting?(String, :webex_guest_issuer)) || \"\"\n@webex_guest_secret = (setting?(String, :webex_guest_secret)) || \"\"\n@audience_setting = (setting?(String, :jwt_audience)) || \"a4d886b0-979f-4e2c-a958-3e8c14605e51\"\n@bot_access_token = setting(String, :bot_access_token)\n"}}],"types":[{"html_id":"drivers/Cisco/Webex/InstantConnect/JoseEncryptResponse","path":"Cisco/Webex/InstantConnect/JoseEncryptResponse.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::JoseEncryptResponse","name":"JoseEncryptResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L84"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L85"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L91"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"guest:Array(MeetingDetails)-instance-method","name":"guest","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L88"},"def":{"name":"guest","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@guest"}},{"html_id":"host:Array(MeetingDetails)-instance-method","name":"host","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L87"},"def":{"name":"host","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@host"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect/MeetingDetails","path":"Cisco/Webex/InstantConnect/MeetingDetails.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::MeetingDetails","name":"MeetingDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cipher:String-instance-method","name":"cipher","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L97"},"def":{"name":"cipher","return_type":"String","visibility":"Public","body":"@cipher"}},{"html_id":"short:String-instance-method","name":"short","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L98"},"def":{"name":"short","return_type":"String","visibility":"Public","body":"@short"}}]}]},{"html_id":"drivers/Cisco/Webex/Models","path":"Cisco/Webex/Models.html","kind":"module","full_name":"Cisco::Webex::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L3"},{"filename":"src/cisco/webex/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L3"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L3"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L3"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L3"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L3"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L3"},{"filename":"src/cisco/webex/models/message.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L3"},{"filename":"src/cisco/webex/models/peek.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L3"},{"filename":"src/cisco/webex/models/person.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L3"},{"filename":"src/cisco/webex/models/room.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Device","path":"Cisco/Webex/Models/Device.html","kind":"class","full_name":"Cisco::Webex::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"websocket_url:String-instance-method","name":"websocket_url","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url","return_type":"String","visibility":"Public","body":"@websocket_url"}},{"html_id":"websocket_url=(websocket_url:String)-instance-method","name":"websocket_url=","abstract":false,"args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"args_string":"(websocket_url : String)","args_html":"(websocket_url : String)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url=","args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"visibility":"Public","body":"@websocket_url = websocket_url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Event","path":"Cisco/Webex/Models/Event.html","kind":"class","full_name":"Cisco::Webex::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data","return_type":"Events::Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"args_string":"(data : Events::Data)","args_html":"(data : Events::Data)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"filter_message:Bool-instance-method","name":"filter_message","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message","return_type":"Bool","visibility":"Public","body":"@filter_message"}},{"html_id":"filter_message=(filter_message:Bool)-instance-method","name":"filter_message=","abstract":false,"args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"args_string":"(filter_message : Bool)","args_html":"(filter_message : Bool)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message=","args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"visibility":"Public","body":"@filter_message = filter_message"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sequence_number:Int64-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number","return_type":"Int64","visibility":"Public","body":"@sequence_number"}},{"html_id":"sequence_number=(sequence_number:Int64)-instance-method","name":"sequence_number=","abstract":false,"args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"args_string":"(sequence_number : Int64)","args_html":"(sequence_number : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number=","args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"visibility":"Public","body":"@sequence_number = sequence_number"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}},{"html_id":"tracking_id=(tracking_id:String)-instance-method","name":"tracking_id=","abstract":false,"args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"args_string":"(tracking_id : String)","args_html":"(tracking_id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id=","args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"visibility":"Public","body":"@tracking_id = tracking_id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events","path":"Cisco/Webex/Models/Events.html","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events","abstract":false,"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L4"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L4"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L4"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L4"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Events/Activity","path":"Cisco/Webex/Models/Events/Activity.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Activity","name":"Activity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actor:Actor-instance-method","name":"actor","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor","return_type":"Actor","visibility":"Public","body":"@actor"}},{"html_id":"actor=(actor:Actor)-instance-method","name":"actor=","abstract":false,"args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"args_string":"(actor : Actor)","args_html":"(actor : Actor)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor=","args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"visibility":"Public","body":"@actor = actor"}},{"html_id":"client_temp_id:String|Nil-instance-method","name":"client_temp_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id","return_type":"String | ::Nil","visibility":"Public","body":"@client_temp_id"}},{"html_id":"client_temp_id=(client_temp_id:String|Nil)-instance-method","name":"client_temp_id=","abstract":false,"args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"args_string":"(client_temp_id : String | Nil)","args_html":"(client_temp_id : String | Nil)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id=","args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client_temp_id = client_temp_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"target:Target-instance-method","name":"target","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target","return_type":"Target","visibility":"Public","body":"@target"}},{"html_id":"target=(target:Target)-instance-method","name":"target=","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target)","args_html":"(target : Target)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target=","args":[{"name":"target","external_name":"target","restriction":"Target"}],"visibility":"Public","body":"@target = target"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"verb:String-instance-method","name":"verb","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb","return_type":"String","visibility":"Public","body":"@verb"}},{"html_id":"verb=(verb:String)-instance-method","name":"verb=","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"}],"args_string":"(verb : String)","args_html":"(verb : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb=","args":[{"name":"verb","external_name":"verb","restriction":"String"}],"visibility":"Public","body":"@verb = verb"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Actor","path":"Cisco/Webex/Models/Events/Actor.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Actor","name":"Actor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/actor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"entry_uuid:String-instance-method","name":"entry_uuid","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid","return_type":"String","visibility":"Public","body":"@entry_uuid"}},{"html_id":"entry_uuid=(entry_uuid:String)-instance-method","name":"entry_uuid=","abstract":false,"args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"args_string":"(entry_uuid : String)","args_html":"(entry_uuid : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid=","args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"visibility":"Public","body":"@entry_uuid = entry_uuid"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"organisation_id:String-instance-method","name":"organisation_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id","return_type":"String","visibility":"Public","body":"@organisation_id"}},{"html_id":"organisation_id=(organisation_id:String)-instance-method","name":"organisation_id=","abstract":false,"args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"args_string":"(organisation_id : String)","args_html":"(organisation_id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id=","args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"visibility":"Public","body":"@organisation_id = organisation_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Data","path":"Cisco/Webex/Models/Events/Data.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/data.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activity:Activity-instance-method","name":"activity","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity","return_type":"Activity","visibility":"Public","body":"@activity"}},{"html_id":"activity=(activity:Activity)-instance-method","name":"activity=","abstract":false,"args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"args_string":"(activity : Activity)","args_html":"(activity : Activity)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity=","args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"visibility":"Public","body":"@activity = activity"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Target","path":"Cisco/Webex/Models/Events/Target.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Target","name":"Target","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/target.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Type","path":"Cisco/Webex/Models/Events/Type.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Type","name":"Type","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]}]},{"html_id":"drivers/Cisco/Webex/Models/Message","path":"Cisco/Webex/Models/Message.html","kind":"class","full_name":"Cisco::Webex::Models::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/message.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Array(String)|Nil-instance-method","name":"attachments","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@attachments"}},{"html_id":"attachments=(attachments:Array(String)|Nil)-instance-method","name":"attachments=","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"args_string":"(attachments : Array(String) | Nil)","args_html":"(attachments : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments=","args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@attachments = attachments"}},{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"files:Array(String)|Nil-instance-method","name":"files","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@files"}},{"html_id":"files=(files:Array(String)|Nil)-instance-method","name":"files=","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"args_string":"(files : Array(String) | Nil)","args_html":"(files : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files=","args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@files = files"}},{"html_id":"html:String|Nil-instance-method","name":"html","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html","return_type":"String | ::Nil","visibility":"Public","body":"@html"}},{"html_id":"html=(html:String|Nil)-instance-method","name":"html=","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"args_string":"(html : String | Nil)","args_html":"(html : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html=","args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"visibility":"Public","body":"@html = html"}},{"html_id":"id:String-instance-method","name":"id","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"markdown:String|Nil-instance-method","name":"markdown","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown","return_type":"String | ::Nil","visibility":"Public","body":"@markdown"}},{"html_id":"markdown=(markdown:String|Nil)-instance-method","name":"markdown=","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"args_string":"(markdown : String | Nil)","args_html":"(markdown : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown=","args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"visibility":"Public","body":"@markdown = markdown"}},{"html_id":"mentioned_groups:Array(String)|Nil-instance-method","name":"mentioned_groups","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_groups"}},{"html_id":"mentioned_groups=(mentioned_groups:Array(String)|Nil)-instance-method","name":"mentioned_groups=","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_groups : Array(String) | Nil)","args_html":"(mentioned_groups : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups=","args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_groups = mentioned_groups"}},{"html_id":"mentioned_people:Array(String)|Nil-instance-method","name":"mentioned_people","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_people"}},{"html_id":"mentioned_people=(mentioned_people:Array(String)|Nil)-instance-method","name":"mentioned_people=","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_people : Array(String) | Nil)","args_html":"(mentioned_people : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people=","args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_people = mentioned_people"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"person_email:String-instance-method","name":"person_email","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email","return_type":"String","visibility":"Public","body":"@person_email"}},{"html_id":"person_email=(person_email:String)-instance-method","name":"person_email=","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"args_string":"(person_email : String)","args_html":"(person_email : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email=","args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"visibility":"Public","body":"@person_email = person_email"}},{"html_id":"person_id:String-instance-method","name":"person_id","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id","return_type":"String","visibility":"Public","body":"@person_id"}},{"html_id":"person_id=(person_id:String)-instance-method","name":"person_id=","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"args_string":"(person_id : String)","args_html":"(person_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id=","args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"visibility":"Public","body":"@person_id = person_id"}},{"html_id":"room_id:String-instance-method","name":"room_id","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"room_id=(room_id:String)-instance-method","name":"room_id=","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id=","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"@room_id = room_id"}},{"html_id":"room_type:String-instance-method","name":"room_type","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"room_type=(room_type:String)-instance-method","name":"room_type=","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"args_string":"(room_type : String)","args_html":"(room_type : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type=","args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"visibility":"Public","body":"@room_type = room_type"}},{"html_id":"text:String-instance-method","name":"text","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}},{"html_id":"text=(text:String)-instance-method","name":"text=","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text=","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"@text = text"}},{"html_id":"to_person_email:String|Nil-instance-method","name":"to_person_email","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_email"}},{"html_id":"to_person_email=(to_person_email:String|Nil)-instance-method","name":"to_person_email=","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"args_string":"(to_person_email : String | Nil)","args_html":"(to_person_email : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email=","args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_email = to_person_email"}},{"html_id":"to_person_id:String|Nil-instance-method","name":"to_person_id","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_id"}},{"html_id":"to_person_id=(to_person_id:String|Nil)-instance-method","name":"to_person_id=","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"args_string":"(to_person_id : String | Nil)","args_html":"(to_person_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id=","args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_id = to_person_id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/Cisco/Webex/Models/Peek","path":"Cisco/Webex/Models/Peek.html","kind":"class","full_name":"Cisco::Webex::Models::Peek","name":"Peek","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/peek.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Type-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data","return_type":"Events::Type","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Type)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"args_string":"(data : Events::Type)","args_html":"(data : Events::Type)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"visibility":"Public","body":"@data = data"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Person","path":"Cisco/Webex/Models/Person.html","kind":"class","full_name":"Cisco::Webex::Models::Person","name":"Person","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/person.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Room","path":"Cisco/Webex/Models/Room.html","kind":"class","full_name":"Cisco::Webex::Models::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"creator_id:String-instance-method","name":"creator_id","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id","return_type":"String","visibility":"Public","body":"@creator_id"}},{"html_id":"creator_id=(creator_id:String)-instance-method","name":"creator_id=","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"args_string":"(creator_id : String)","args_html":"(creator_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id=","args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"visibility":"Public","body":"@creator_id = creator_id"}},{"html_id":"id:String-instance-method","name":"id","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"is_locked:Bool-instance-method","name":"is_locked","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked","return_type":"Bool","visibility":"Public","body":"@is_locked"}},{"html_id":"is_locked=(is_locked:Bool)-instance-method","name":"is_locked=","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"args_string":"(is_locked : Bool)","args_html":"(is_locked : Bool)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked=","args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"visibility":"Public","body":"@is_locked = is_locked"}},{"html_id":"last_activity:String-instance-method","name":"last_activity","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity","return_type":"String","visibility":"Public","body":"@last_activity"}},{"html_id":"last_activity=(last_activity:String)-instance-method","name":"last_activity=","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"args_string":"(last_activity : String)","args_html":"(last_activity : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity=","args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"visibility":"Public","body":"@last_activity = last_activity"}},{"html_id":"owner_id:String-instance-method","name":"owner_id","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id","return_type":"String","visibility":"Public","body":"@owner_id"}},{"html_id":"owner_id=(owner_id:String)-instance-method","name":"owner_id=","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(owner_id : String)","args_html":"(owner_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id=","args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"@owner_id = owner_id"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"team_id=(team_id:String|Nil)-instance-method","name":"team_id=","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(team_id : String | Nil)","args_html":"(team_id : String | Nil)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id=","args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@team_id = team_id"}},{"html_id":"title:String-instance-method","name":"title","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","doc":"The room type.","summary":"

The room type.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","doc":"The room type.","summary":"

The room type.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Cisco/Webex/Session","path":"Cisco/Webex/Session.html","kind":"class","full_name":"Cisco::Webex::Session","name":"Session","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/session.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(access_token:String)-class-method","name":"new","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L13"},"def":{"name":"new","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"base_url=(base_url:String)-instance-method","name":"base_url=","abstract":false,"args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"args_string":"(base_url : String)","args_html":"(base_url : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url=","args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"visibility":"Public","body":"@base_url = base_url"}},{"html_id":"delete(url:String,**kwargs):Halite::Response-instance-method","name":"delete","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L76"},"def":{"name":"delete","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"DELETE\", url, **kwargs)"}},{"html_id":"get(url:String,**kwargs):Halite::Response-instance-method","name":"get","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L61"},"def":{"name":"get","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"GET\", url, **kwargs)"}},{"html_id":"post(url:String,**kwargs):Halite::Response-instance-method","name":"post","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L66"},"def":{"name":"post","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"POST\", url, **kwargs)"}},{"html_id":"put(url:String,**kwargs):Halite::Response-instance-method","name":"put","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L71"},"def":{"name":"put","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"PUT\", url, **kwargs)"}},{"html_id":"request(method:String,url:String,**kwargs):Halite::Response-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(method : String, url : String, **kwargs) : Halite::Response","args_html":"(method : String, url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L16"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"absolute_url = ((URI.parse(base_url)).resolve(url)).to_s\n@client.headers({\"Authorization\" => [\"Bearer\", @access_token].join(\" \")})\n@client.headers({\"Content-Type\" => \"application/json;charset=utf-8\"})\n@client.timeout(single_request_timeout)\nloop do\n case method\n when \"GET\"\n response = @client.get(absolute_url, **kwargs)\n when \"POST\"\n response = @client.post(absolute_url, **kwargs)\n when \"PUT\"\n response = @client.put(absolute_url, **kwargs)\n when \"DELETE\"\n response = @client.delete(absolute_url, **kwargs)\n else\n raise(Exceptions::Method.new(\"The request-method type is invalid.\"))\n end\n begin\n status_code = StatusCode.new(response.status_code)\n if response.status_code == 429\n raise(Exceptions::RateLimit.new(status_code.message))\n end\n if !status_code.valid?\n raise(Exceptions::StatusCode.new(status_code.message))\n end\n return response\n rescue e : Exceptions::StatusCode\n Log.error(exception: e) do\n end\n rescue e : Exceptions::RateLimit\n Log.error(exception: e) do\n end\n retry_after = (response.headers[\"Retry-After\"]? || \"15\").to_i * 1000\n sleep(retry_after)\n end\nend\n"}},{"html_id":"single_request_timeout:Int32-instance-method","name":"single_request_timeout","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout","return_type":"Int32","visibility":"Public","body":"@single_request_timeout"}},{"html_id":"single_request_timeout=(single_request_timeout:Int32)-instance-method","name":"single_request_timeout=","abstract":false,"args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"args_string":"(single_request_timeout : Int32)","args_html":"(single_request_timeout : Int32)","location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout=","args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"visibility":"Public","body":"@single_request_timeout = single_request_timeout"}},{"html_id":"user_agent:String-instance-method","name":"user_agent","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent","return_type":"String","visibility":"Public","body":"@user_agent"}},{"html_id":"user_agent=(user_agent:String)-instance-method","name":"user_agent=","abstract":false,"args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"args_string":"(user_agent : String)","args_html":"(user_agent : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent=","args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"visibility":"Public","body":"@user_agent = user_agent"}},{"html_id":"wait_on_rate_limit:Bool-instance-method","name":"wait_on_rate_limit","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit","return_type":"Bool","visibility":"Public","body":"@wait_on_rate_limit"}},{"html_id":"wait_on_rate_limit=(wait_on_rate_limit:Bool)-instance-method","name":"wait_on_rate_limit=","abstract":false,"args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"args_string":"(wait_on_rate_limit : Bool)","args_html":"(wait_on_rate_limit : Bool)","location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit=","args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"visibility":"Public","body":"@wait_on_rate_limit = wait_on_rate_limit"}}]},{"html_id":"drivers/Cisco/Webex/StatusCode","path":"Cisco/Webex/StatusCode.html","kind":"class","full_name":"Cisco::Webex::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(code:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/cisco/webex/status_code.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L6"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L18"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"Constants::STATUS_CODES[@code]"}},{"html_id":"valid?:Bool-instance-method","name":"valid?","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L9"},"def":{"name":"valid?","return_type":"Bool","visibility":"Public","body":"case @code\nwhen 200, 204\n true\nelse\n false\nend"}}]},{"html_id":"drivers/Cisco/Webex/Utils","path":"Cisco/Webex/Utils.html","kind":"module","full_name":"Cisco::Webex::Utils","name":"Utils","abstract":false,"locations":[{"filename":"src/cisco/webex/utils.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"hash_from_items_with_values(**kwargs)-class-method","name":"hash_from_items_with_values","abstract":false,"location":{"filename":"src/cisco/webex/utils.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L4"},"def":{"name":"hash_from_items_with_values","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"kwargs = kwargs.map do |k, v|\n if (v != nil) && (v != \"\")\n {\"#{k}\" => v}\n end\nend\nkwargs.reject!(nil)\nkwargs = kwargs.reduce do |acc, i|\n acc.try(&.merge(i.not_nil!))\nend\nkwargs\n"}},{"html_id":"named_tuple_from_hash(hash)-class-method","name":"named_tuple_from_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":""}],"args_string":"(hash)","args_html":"(hash)","location":{"filename":"src/cisco/webex/utils.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L17"},"def":{"name":"named_tuple_from_hash","args":[{"name":"hash","external_name":"hash","restriction":""}],"visibility":"Public","body":"named_tuple = NamedTuple.new(roomId: String, text: String)\nnamed_tuple.from(hash)\n"}}]}]}]},{"html_id":"drivers/Clipsal","path":"Clipsal.html","kind":"module","full_name":"Clipsal","name":"Clipsal","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Clipsal/CBus","path":"Clipsal/CBus.html","kind":"class","full_name":"Clipsal::CBus","name":"CBus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"},{"id":"RAMP_RATES","name":"RAMP_RATES","value":"{(...2000_u32) => 0_u8, (2000_u32...6000_u32) => 1_u8, (6000_u32...10000_u32) => 2_u8, (10000_u32...15000_u32) => 3_u8, (15000_u32...25000_u32) => 4_u8, (25000_u32...35000_u32) => 5_u8, (35000_u32...50000_u32) => 6_u8, (50000_u32...75000_u32) => 7_u8, (75000_u32...105000_u32) => 8_u8, (105000_u32...150000_u32) => 9_u8, (150000_u32...240000_u32) => 10_u8, (240000_u32...360000_u32) => 11_u8, (360000_u32...510000_u32) => 12_u8, (510000_u32...720000_u32) => 13_u8, (720000_u32...960000_u32) => 14_u8, (960000_u32...) => 15_u8}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Clipsal","kind":"module","full_name":"Clipsal","name":"Clipsal"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"send(\"|||\\r\", priority: 99)\nschedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n send(\"|||\\r\", priority: 0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L35"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L116"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 56)\nself[Area.new(group.to_u32, append: \"level\")]?\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L60"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 202)\nself[Area.new(group.to_u32)]?\n"}},{"html_id":"lookup_ramp_rate(fade_time:UInt32):UInt8-instance-method","name":"lookup_ramp_rate","abstract":false,"args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(fade_time : UInt32) : UInt8","args_html":"(fade_time : UInt32) : UInt8","location":{"filename":"src/clipsal/c_bus.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L84"},"def":{"name":"lookup_ramp_rate","args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"return_type":"UInt8","visibility":"Public","body":"range = RAMP_RATES.keys.find(&.includes?(fade_time))\nrate = RAMP_RATES[range]\n((rate & 15_u8) << 3) | 2_u8\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@trigger_groups = (setting?(Array(UInt8), :trigger_groups)) || [202_u8]"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/clipsal/c_bus.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L121"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"payload = String.new(data)\nlogger.debug do\n \"CBus sent: #{payload}\"\nend\ndata = payload[1..-2].hexbytes\nif !(check_checksum(data))\n return task.try(&.abort(\"CBus checksum failed\"))\nend\nif data[0] != 5\n logger.debug do\n \"was not a Point -> MultiPoint response: type 0x#{data[0].to_s(16)}\"\n end\n return\nend\napplication = data[1]\ncommands = data[3..-2].to_a\nwhile commands.size > 0\n current = commands.shift\n case application\n when .in?(@trigger_groups)\n area = if application == 202_u8\n Area.new(commands.shift.to_u32)\n else\n Area.new(commands.shift.to_u32, channel: application.to_u32)\n end\n case current\n when 2\n self[area] = commands.shift\n when 1\n self[area] = 0\n when 121\n self[area] = 255\n when 9\n logger.debug do\n \"trigger kill request: grp 0x#{commands[0].to_s(16)}\"\n end\n else\n logger.debug do\n \"unknown trigger group request 0x#{current.to_s(16)}\"\n end\n break\n end\n when 48..95\n case current\n when 1\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 0.0\n when 121\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 100.0\n when 2\n group = commands.shift\n value = commands.shift\n area = Area.new(group.to_u32, append: \"blind\")\n if value == 255\n self[area] = :up\n else\n if value == 5\n self[area] = :stopped\n end\n end\n when 26\n group = commands.shift\n value = commands.shift\n if value == 0\n self[Area.new(group.to_u32, append: \"blind\")] = :down\n end\n when 9\n logger.debug do\n \"terminate ramp request: grp 0x#{commands[0].to_s(16)}\"\n end\n commands.shift\n else\n if ((current & 133) == 0) && commands.size > 1\n logger.debug do\n \"ramp request: grp 0x#{commands[0].to_s(16)} - level 0x#{commands[1].to_s(16)}\"\n end\n commands.shift(2)\n else\n logger.debug do\n \"unknown lighting request 0x#{current.to_s(16)}\"\n end\n break\n end\n end\n else\n logger.debug do\n \"unknown application request app 0x#{application.to_s(16)}\"\n end\n break\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L94"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 56)\nlevel = level.clamp(0.0, 100.0)\nlevel_byte = (level * LEVEL_PERCENTAGE).to_u8\ngroup = (group & 255).to_u8\nrate = lookup_ramp_rate(fade_time)\nstop_f = cmd_string(Bytes[5, 56, 0, 9, group])\ncommand = stop_f + (cmd_string(Bytes[5, application, 0, rate, group, level_byte]))\nself[\"#{area}_level\"] = level\nsend(command, name: \"level_#{application}_#{group}\")\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L50"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 202)\naction = scene & 255\ncommand = Bytes[5, application, 0, 2, group, action.to_u8]\nself[area] = action\ndo_send(command)\n"}},{"html_id":"stop_fading(group:UInt8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"args_string":"(group : UInt8)","args_html":"(group : UInt8)","location":{"filename":"src/clipsal/c_bus.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L111"},"def":{"name":"stop_fading","args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[5, 56, 0, 9, group])"}}],"types":[{"html_id":"drivers/Clipsal/CBus/Area","path":"Clipsal/CBus/Area.html","kind":"alias","full_name":"Clipsal::CBus::Area","name":"Area","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Clipsal/CBus","kind":"class","full_name":"Clipsal::CBus","name":"CBus"}}]}]},{"html_id":"drivers/Company3M","path":"Company3M.html","kind":"module","full_name":"Company3M","name":"Company3M","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Company3M/Displays","path":"Company3M/Displays.html","kind":"module","full_name":"Company3M::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Company3M","kind":"module","full_name":"Company3M","name":"Company3M"},"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay","path":"Company3M/Displays/WallDisplay.html","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Company3M/Displays","kind":"module","full_name":"Company3M::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L111"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:brightness, value)\n"}},{"html_id":"colour_temp(value:ColourTemp)-instance-method","name":"colour_temp","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"args_string":"(value : ColourTemp)","args_html":"(value : ColourTemp)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L132"},"def":{"name":"colour_temp","args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"visibility":"Public","body":"set(:colour_temp, value)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L50"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L116"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:contrast, value)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L54"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L58"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"Polling device for connectivity heartbeat\"\nend\ntarget = @power_target\nif target.nil?\nelse\n power(target, priority: 0)\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L84"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"set(:audio_mute, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@monitor_id = (setting?(MonitorID, :monitor_id)) || MonitorID::All"}},{"html_id":"power(state:Bool,**options)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool, **options)","args_html":"(state : Bool, **options)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L72"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if state != @power_target\n self[:power_target] = @power_target = state\nend\nset(:power, state, **options)\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L144"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"response = begin\n parse_response(bytes)\nrescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse 3M packet\"\n end\n return task.try(&.abort)\nend\nif response.success?\nelse\n logger.warn do\n \"Device error: #{response.inspect}\"\n end\n return task.try(&.abort)\nend\nlogger.debug do\n \"Device response received: #{response.inspect}\"\nend\nself[response.command.to_s.underscore] = response.value\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:Int32|Float64)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L121"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:sharpness, value)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L92"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"set(:input, input)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L105"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"percentage = (in_range(level)) / 100.0\nadjusted = (percentage * 30.0).round_away.to_i\nset(:volume, adjusted)\n"}}],"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay/ColourTemp","path":"Company3M/Displays/WallDisplay/ColourTemp.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ColourTemp","name":"ColourTemp","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L126"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"K9300","name":"K9300","value":"0"},{"id":"K6500","name":"K6500","value":"1"},{"id":"User","name":"User","value":"2"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"k6500?-instance-method","name":"k6500?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L128"},"def":{"name":"k6500?","visibility":"Public","body":"self == K6500"}},{"html_id":"k9300?-instance-method","name":"k9300?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L127"},"def":{"name":"k9300?","visibility":"Public","body":"self == K9300"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L129"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Command","path":"Company3M/Displays/WallDisplay/Command.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Brightness","name":"Brightness","value":"272_u16"},{"id":"Contrast","name":"Contrast","value":"274_u16"},{"id":"Sharpness","name":"Sharpness","value":"396_u16"},{"id":"ColourTemp","name":"ColourTemp","value":"596_u16"},{"id":"Volume","name":"Volume","value":"98_u16"},{"id":"AudioMute","name":"AudioMute","value":"141_u16"},{"id":"Input","name":"Input","value":"715_u16"},{"id":"Power","name":"Power","value":"3_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L191"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L186"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"colour_temp?-instance-method","name":"colour_temp?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L189"},"def":{"name":"colour_temp?","visibility":"Public","body":"self == ColourTemp"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L187"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L192"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L193"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L188"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L190"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Input","path":"Company3M/Displays/WallDisplay/Input.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"2"},{"id":"DisplayPort","name":"DisplayPort","value":"3"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L15"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L14"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageSender","path":"Company3M/Displays/WallDisplay/MessageSender.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageSender","name":"MessageSender","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L176"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PC","name":"PC","value":"48"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"pc?-instance-method","name":"pc?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L177"},"def":{"name":"pc?","visibility":"Public","body":"self == PC"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageType","path":"Company3M/Displays/WallDisplay/MessageType.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L180"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"69_u8"},{"id":"Reply","name":"Reply","value":"70_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L181"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L182"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MonitorID","path":"Company3M/Displays/WallDisplay/MonitorID.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MonitorID","name":"MonitorID","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L163"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"42_u8"},{"id":"A","name":"A","value":"65_u8"},{"id":"B","name":"B","value":"66_u8"},{"id":"C","name":"C","value":"67_u8"},{"id":"D","name":"D","value":"68_u8"},{"id":"E","name":"E","value":"69_u8"},{"id":"F","name":"F","value":"70_u8"},{"id":"G","name":"G","value":"71_u8"},{"id":"H","name":"H","value":"72_u8"},{"id":"I","name":"I","value":"73_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"a?-instance-method","name":"a?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L165"},"def":{"name":"a?","visibility":"Public","body":"self == A"}},{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L164"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"b?-instance-method","name":"b?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L166"},"def":{"name":"b?","visibility":"Public","body":"self == B"}},{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L167"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"d?-instance-method","name":"d?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L168"},"def":{"name":"d?","visibility":"Public","body":"self == D"}},{"html_id":"e?-instance-method","name":"e?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L169"},"def":{"name":"e?","visibility":"Public","body":"self == E"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L170"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"g?-instance-method","name":"g?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L171"},"def":{"name":"g?","visibility":"Public","body":"self == G"}},{"html_id":"h?-instance-method","name":"h?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L172"},"def":{"name":"h?","visibility":"Public","body":"self == H"}},{"html_id":"i?-instance-method","name":"i?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L173"},"def":{"name":"i?","visibility":"Public","body":"self == I"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/RequestPacket","path":"Company3M/Displays/WallDisplay/RequestPacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::RequestPacket","name":"RequestPacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::RequestPacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 1_u8\nend}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 48_u8\nend}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: sender, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: -> do\n (10.to_s(16)).upcase.rjust(2, '0')\nend, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: set_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 3_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L202"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"command=(command:Command)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"}],"args_string":"(command : Command)","args_html":"(command : Command)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L217"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"Command"}],"visibility":"Public","body":"code = (command.value.to_s(16)).upcase.rjust(4, '0')\nself.op_code_page = code[0..1]\nself.op_code = code[2..3]\ncommand\n"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"sender:MessageSender-instance-method","name":"sender","abstract":false,"def":{"name":"sender","return_type":"MessageSender","visibility":"Public","body":"@sender"}},{"html_id":"sender=(sender:MessageSender)-instance-method","name":"sender=","abstract":false,"args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"args_string":"(sender : MessageSender)","args_html":"(sender : MessageSender)","def":{"name":"sender=","args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"visibility":"Public","body":"@sender = sender"}},{"html_id":"set_value:String-instance-method","name":"set_value","abstract":false,"def":{"name":"set_value","return_type":"String","visibility":"Public","body":"@set_value"}},{"html_id":"set_value=(set_value:String)-instance-method","name":"set_value=","abstract":false,"args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"args_string":"(set_value : String)","args_html":"(set_value : String)","def":{"name":"set_value=","args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"visibility":"Public","body":"@set_value = set_value"}},{"html_id":"value=(val:Int32)-instance-method","name":"value=","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L224"},"def":{"name":"value=","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"self.set_value = (val.to_s(16)).upcase.rjust(4, '0')"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResponsePacket","path":"Company3M/Displays/WallDisplay/ResponsePacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::ResponsePacket","name":"ResponsePacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::ResponsePacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"enum\", name: receiver, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"enum\", name: result_code, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: ResultCode}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: reply_type, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: max_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"string\", name: current_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: bcc, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: delimiter, cls: UInt8, onlyif: nil, verify: nil, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L230"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bcc:UInt8-instance-method","name":"bcc","abstract":false,"def":{"name":"bcc","return_type":"UInt8","visibility":"Public","body":"@bcc"}},{"html_id":"bcc=(bcc:UInt8)-instance-method","name":"bcc=","abstract":false,"args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"args_string":"(bcc : UInt8)","args_html":"(bcc : UInt8)","def":{"name":"bcc=","args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"visibility":"Public","body":"@bcc = bcc"}},{"html_id":"command:Command-instance-method","name":"command","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L250"},"def":{"name":"command","return_type":"Command","visibility":"Public","body":"if (__temp_1 = @command).nil?\n @command = (Command.from_value(\"#{op_code_page}#{op_code}\".to_i(16)))\nelse\n __temp_1\nend"}},{"html_id":"current_value:String-instance-method","name":"current_value","abstract":false,"def":{"name":"current_value","return_type":"String","visibility":"Public","body":"@current_value"}},{"html_id":"current_value=(current_value:String)-instance-method","name":"current_value=","abstract":false,"args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"args_string":"(current_value : String)","args_html":"(current_value : String)","def":{"name":"current_value=","args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"visibility":"Public","body":"@current_value = current_value"}},{"html_id":"delimiter:UInt8-instance-method","name":"delimiter","abstract":false,"def":{"name":"delimiter","return_type":"UInt8","visibility":"Public","body":"@delimiter"}},{"html_id":"delimiter=(delimiter:UInt8)-instance-method","name":"delimiter=","abstract":false,"args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"args_string":"(delimiter : UInt8)","args_html":"(delimiter : UInt8)","def":{"name":"delimiter=","args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"visibility":"Public","body":"@delimiter = delimiter"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"max_value:String-instance-method","name":"max_value","abstract":false,"def":{"name":"max_value","return_type":"String","visibility":"Public","body":"@max_value"}},{"html_id":"max_value=(max_value:String)-instance-method","name":"max_value=","abstract":false,"args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"args_string":"(max_value : String)","args_html":"(max_value : String)","def":{"name":"max_value=","args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"visibility":"Public","body":"@max_value = max_value"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"receiver:MessageSender-instance-method","name":"receiver","abstract":false,"def":{"name":"receiver","return_type":"MessageSender","visibility":"Public","body":"@receiver"}},{"html_id":"receiver=(receiver:MessageSender)-instance-method","name":"receiver=","abstract":false,"args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"args_string":"(receiver : MessageSender)","args_html":"(receiver : MessageSender)","def":{"name":"receiver=","args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"visibility":"Public","body":"@receiver = receiver"}},{"html_id":"reply_type:String-instance-method","name":"reply_type","abstract":false,"def":{"name":"reply_type","return_type":"String","visibility":"Public","body":"@reply_type"}},{"html_id":"reply_type=(reply_type:String)-instance-method","name":"reply_type=","abstract":false,"args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"args_string":"(reply_type : String)","args_html":"(reply_type : String)","def":{"name":"reply_type=","args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"visibility":"Public","body":"@reply_type = reply_type"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"result_code:ResultCode-instance-method","name":"result_code","abstract":false,"def":{"name":"result_code","return_type":"ResultCode","visibility":"Public","body":"@result_code"}},{"html_id":"result_code=(result_code:ResultCode)-instance-method","name":"result_code=","abstract":false,"args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"args_string":"(result_code : ResultCode)","args_html":"(result_code : ResultCode)","def":{"name":"result_code=","args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"visibility":"Public","body":"@result_code = result_code"}},{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L254"},"def":{"name":"success?","visibility":"Public","body":"self.result_code.success?"}},{"html_id":"value-instance-method","name":"value","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L258"},"def":{"name":"value","visibility":"Public","body":"raw_val = self.current_value.to_i(16)\ncase self.command\nin .brightness?, .contrast?, .sharpness?\n raw_val\nin .volume?\n (raw_val / 30.0) * 100.0\nin .audio_mute?, .power?\n raw_val == 1\nin .colour_temp?\n ColourTemp.from_value(raw_val)\nin .input?\n Input.from_value(raw_val)\nend\n"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResultCode","path":"Company3M/Displays/WallDisplay/ResultCode.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ResultCode","name":"ResultCode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L196"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Success","name":"Success","value":"12336_u16"},{"id":"Unsupported","name":"Unsupported","value":"12337_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L197"},"def":{"name":"success?","visibility":"Public","body":"self == Success"}},{"html_id":"unsupported?-instance-method","name":"unsupported?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L198"},"def":{"name":"unsupported?","visibility":"Public","body":"self == Unsupported"}}]}]}]}]},{"html_id":"drivers/Crestron","path":"Crestron.html","kind":"module","full_name":"Crestron","name":"Crestron","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Crestron/AspectRatio","path":"Crestron/AspectRatio.html","kind":"enum","full_name":"Crestron::AspectRatio","name":"AspectRatio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MaintainAspectRatio","name":"MaintainAspectRatio","value":"0"},{"id":"StretchToFit","name":"StretchToFit","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"maintain_aspect_ratio?-instance-method","name":"maintain_aspect_ratio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L12"},"def":{"name":"maintain_aspect_ratio?","visibility":"Public","body":"self == MaintainAspectRatio"}},{"html_id":"stretch_to_fit?-instance-method","name":"stretch_to_fit?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L13"},"def":{"name":"stretch_to_fit?","visibility":"Public","body":"self == StretchToFit"}}]},{"html_id":"drivers/Crestron/CresNext","path":"Crestron/CresNext.html","kind":"class","full_name":"Crestron::CresNext","name":"CresNext","abstract":true,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/cres_next.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"}],"subclasses":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Parent module for Crestron DM NVX devices.","summary":"

Parent module for Crestron DM NVX devices.

","instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(10.minutes) do\n maintain_session\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"maintain_session-instance-method","name":"maintain_session","doc":"========================================\nHTTP for updates and session maintenance\n========================================","summary":"

======================================== HTTP for updates and session maintenance ========================================

","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L96"},"def":{"name":"maintain_session","visibility":"Public","body":"response = get(\"/Device/DeviceInfo\")\nif response.success?\nelse\n return logout\nend\nlogger.debug do\n \"Maintaining Session:\\n#{response.body}\"\nend\n"}},{"html_id":"manual_send(payload:JSON::Any)-instance-method","name":"manual_send","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(payload : JSON::Any)","args_html":"(payload : JSON::Any)","location":{"filename":"src/crestron/cres_next.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L82"},"def":{"name":"manual_send","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"data = payload.to_json\nlogger.debug do\n \"Sending: #{data}\"\nend\nsend(data, wait: false)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/cres_next.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L88"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\n"}},{"html_id":"tokenize(path:String)-instance-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/crestron/cres_next.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L33"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split('/')).reject(&.empty?)"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L15"},"def":{"name":"websocket_headers","visibility":"Public","body":"authenticate\nheaders = HTTP::Headers.new\ntransport.cookies.add_request_headers(headers)\nif @xsrf_token.empty?\nelse\n headers[\"CREST-XSRF-TOKEN\"] = @xsrf_token\nend\nheaders[\"User-Agent\"] = \"advanced-rest-client\"\nheaders\n"}}]},{"html_id":"drivers/Crestron/CresNextAuth","path":"Crestron/CresNextAuth.html","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth","abstract":false,"locations":[{"filename":"src/crestron/cres_next_auth.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/OccupancySensor","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"authenticate-instance-method","name":"authenticate","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L6"},"def":{"name":"authenticate","visibility":"Public","body":"logger.debug do\n \"Authenticating\"\nend\nuri = URI.parse(config.uri.not_nil!)\nhost = uri.host\nresponse = post(\"/userlogin.html\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Referer\" => \"https://#{host}/userlogin.html\", \"Origin\" => \"https://#{host}\"}, body: URI::Params.build do |form|\n form.add(\"login\", setting(String, :username))\n form.add(\"passwd\", setting(String, :password))\nend)\ncase response.status_code\nwhen 200, 302\n auth_cookies = [\"AuthByPasswd\", \"iv\", \"tag\", \"userid\", \"userstr\"] of ::String\n if (auth_cookies - response.cookies.to_h.keys).empty?\n @xsrf_token = response.headers[\"CREST-XSRF-TOKEN\"]? || \"\"\n logger.debug do\n \"Authenticated\"\n end\n else\n error = \"Device did not return all auth information\"\n end\nwhen 403\n error = \"Invalid credentials\"\nelse\n error = \"Unexpected response (HTTP #{response.status})\"\nend\nif error\n logger.error do\n error\n end\n raise(error)\nend\n"}},{"html_id":"logout-instance-method","name":"logout","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L43"},"def":{"name":"logout","visibility":"Public","body":"begin\n response = post(\"/logout\")\n case response.status\n when 302\n logger.debug do\n \"Logout successful\"\n end\n true\n else\n logger.warn do\n \"Unexpected response (HTTP #{response.status})\"\n end\n false\n end\nensure\n @xsrf_token = \"\"\n transport.cookies.clear\n schedule.clear\n disconnect\nend"}}]},{"html_id":"drivers/Crestron/Fusion","path":"Crestron/Fusion.html","kind":"class","full_name":"Crestron::Fusion","name":"Fusion","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/fusion.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_room(room_id:String)-instance-method","name":"delete_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L128"},"def":{"name":"delete_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"DELETE\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_action(action_id:String)-instance-method","name":"get_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"args_string":"(action_id : String)","args_html":"(action_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L61"},"def":{"name":"get_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/actions/#{action_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_actions(name:String|Nil,room_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_actions","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L51"},"def":{"name":"get_actions","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif room_id\n params[\"room\"] = room_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/actions\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_alerts(node_ids:Array(String)|Nil=nil,room_ids:Array(String)|Nil=nil,start_time:String|Nil=nil,end_time:String|Nil=nil,severity:Int32|Nil=nil,active_alerts:Bool=true)-instance-method","name":"get_alerts","doc":"Severity should be in the range 1-4","summary":"

Severity should be in the range 1-4

","abstract":false,"args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"args_string":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","args_html":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","location":{"filename":"src/crestron/fusion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L86"},"def":{"name":"get_alerts","args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"visibility":"Public","body":"params = URI::Params.new\nif node_ids\n params[\"nodes\"] = node_ids.join(',')\nend\nif room_ids\n params[\"rooms\"] = room_ids.join(',')\nend\nif start_time\n params[\"start\"] = start_time\nend\nif end_time\n params[\"end\"] = end_time\nend\nif severity\n params[\"severity\"] = severity.to_s\nend\nif active_alerts\n params[\"activeAlerts\"] = active_alerts.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_room(room_id:String)-instance-method","name":"get_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L118"},"def":{"name":"get_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_rooms(name:String|Nil,node_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_rooms","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L108"},"def":{"name":"get_rooms","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif node_id\n params[\"node\"] = node_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_value(symbol_id:String,attribute_id:String)-instance-method","name":"get_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String)","args_html":"(symbol_id : String, attribute_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L142"},"def":{"name":"get_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}/#{attribute_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_values(symbol_id:String)-instance-method","name":"get_signal_values","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"args_string":"(symbol_id : String)","args_html":"(symbol_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L137"},"def":{"name":"get_signal_values","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/fusion.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@security_level = setting(Int32, :security_level)\n@user_id = setting(String, :user_id)\n@api_pass_code = setting(String, :api_pass_code)\n@content_type = \"application/\" + (setting(String, :content_type))\n"}},{"html_id":"post_room(room_xml_or_json:String)-instance-method","name":"post_room","abstract":false,"args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_xml_or_json : String)","args_html":"(room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L103"},"def":{"name":"post_room","args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"POST\", \"/rooms\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_room(room_id:String,room_xml_or_json:String)-instance-method","name":"put_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_id : String, room_xml_or_json : String)","args_html":"(room_id : String, room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L123"},"def":{"name":"put_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"PUT\", \"/rooms/#{room_id}\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_signal_value(symbol_id:String,attribute_id:String,value:String)-instance-method","name":"put_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String, value : String)","args_html":"(symbol_id : String, attribute_id : String, value : String)","location":{"filename":"src/crestron/fusion.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L147"},"def":{"name":"put_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.new\nparams[\"value\"] = value\nresponse = perform_request(\"PUT\", \"/signalvalues/#{symbol_id}/#{attribute_id}\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"send_action(action_id:String|Nil,room_id:String|Nil=nil,node_id:String|Nil=nil)-instance-method","name":"send_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"args_string":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","args_html":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L66"},"def":{"name":"send_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif room_id\n params[\"room\"] = room_id\nend\nif node_id\n params[\"node\"] = node_id\nend\npath = if (id = action_id) && !id.empty?\n \"/actions/#{id}\"\nelse\n \"/actions\"\nend\nresponse = perform_request(\"POST\", path, params)\nJSON.parse(response.body)\n"}}]},{"html_id":"drivers/Crestron/NvxAddressManager","path":"Crestron/NvxAddressManager.html","kind":"class","full_name":"Crestron::NvxAddressManager","name":"NvxAddressManager","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_address_manager.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MULTICAST_ADDRESSES","name":"MULTICAST_ADDRESSES","value":"::IPAddress::IPv4.new(\"224.0.0.0/4\")","doc":"https://github.com/Sija/ipaddress.cr","summary":"

https://github.com/Sija/ipaddress.cr

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"addr = setting(String, :base_address)\nbase_addr = ::IPAddress::IPv4.new(addr)\n@base_address = base_addr.to_u32\nif MULTICAST_ADDRESSES.includes?(base_addr)\nelse\n logger.warn do\n \"#{addr} is not a valid multicast address\"\n end\nend\n@block_size = setting(Int32, :block_size)\n"}},{"html_id":"readdress_streams-instance-method","name":"readdress_streams","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L38"},"def":{"name":"readdress_streams","visibility":"Public","body":"logger.debug do\n \"readdressing devices\"\nend\naddress_pairs = encoders.zip(addresses)\ninteractions = address_pairs.map_with_index(1) do |__temp_230, idx|\n mod, ip_u32 = __temp_230\n ip = ::IPAddress::IPv4.parse_u32(ip_u32)\n logger.debug do\n \"setting encoder #{idx} to #{ip}\"\n end\n mod.multicast_address(ip.to_s)\nend\nfailed = 0\ninteractions.each do |request|\n begin\n request.get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"addressing NVX devices\"\n end\n end\nend\nif failed == 0\nelse\n raise(\"#{failed} failed to set stream address\")\nend\ninteractions.size\n"}}]},{"html_id":"drivers/Crestron/NvxRx","path":"Crestron/NvxRx.html","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(mode:AspectRatio)-instance-method","name":"aspect_ratio","doc":"aspect ratio defined in nvx_rx_models","summary":"

aspect ratio defined in nvx_rx_models

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"args_string":"(mode : AspectRatio)","args_html":"(mode : AspectRatio)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L100"},"def":{"name":"aspect_ratio","args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"visibility":"Public","body":"logger.debug do\n \"setting output aspect ratio mode: #{mode}\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{AspectRatioMode: mode}]}], name: :aspect_ratio)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"super()\naudio_follows_video = setting?(Bool, :audio_follows_video)\n@audio_follows_video = audio_follows_video.nil? ? true : audio_follows_video\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Receiver\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Receiver\"\nend\nquery(\"/XioSubscription/Subscriptions\") do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\nend\nschedule.every(1.hour) do\n query(\"/XioSubscription/Subscriptions\", priority: 5) do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\n end\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L85"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L81"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"switch_layer(map.keys.first, layer)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L59"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}}],"types":[{"html_id":"drivers/Crestron/NvxRx/Input","path":"Crestron/NvxRx/Input.html","kind":"alias","full_name":"Crestron::NvxRx::Input","name":"Input","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/Output","path":"Crestron/NvxRx/Output.html","kind":"alias","full_name":"Crestron::NvxRx::Output","name":"Output","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Int32","aliased_html":"Int32","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/SourceType","path":"Crestron/NvxRx/SourceType.html","kind":"enum","full_name":"Crestron::NvxRx::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L229"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L230"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Crestron/NvxScalerControl","path":"Crestron/NvxScalerControl.html","kind":"class","full_name":"Crestron::NvxScalerControl","name":"NvxScalerControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_scaler_control.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_scaler_control.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SCALE_TO_FIT_BOUNDS","name":"SCALE_TO_FIT_BOUNDS","value":"((16 / 9) * 0.95)..((16 / 9) * 1.05)","doc":"Window of aspect ratio's to detect as 16:9 - allows for +/-5% for\nslightly off-shape windows","summary":"

Window of aspect ratio's to detect as 16:9 - allows for +/-5% for slightly off-shape windows

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_scaler_control.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_scaler_control.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@links = (setting?(Hash(String, String), :link_scalers)) || ({} of String => String)"}}]},{"html_id":"drivers/Crestron/NvxTx","path":"Crestron/NvxTx.html","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L21"},"def":{"name":"connected","visibility":"Public","body":"super()\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Transmitter\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Transmitter\"\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"emulate_input_sync(state:Bool=true,idx:Int32=1)-instance-method","name":"emulate_input_sync","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"args_string":"(state : Bool = true, idx : Int32 = 1)","args_html":"(state : Bool = true, idx : Int32 = 1)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L66"},"def":{"name":"emulate_input_sync","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"self[\"input_#{idx}_sync\"] = state"}},{"html_id":"multicast_address(address:String)-instance-method","name":"multicast_address","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L61"},"def":{"name":"multicast_address","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"setting multicast address to #{address}\"\nend\nupdate(\"/StreamTransmit/Streams\", [{MulticastAddress: address}], name: :multicast_address)\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L47"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nupdate(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\nif raw_json.includes?(\"AudioVideoInputOutput\")\nelse\n return\nend\npayload = JSON.parse(raw_json)\nif av_inputs = (payload.dig?(\"Device\", \"AudioVideoInputOutput\", \"Inputs\")).try(&.as_a?)\n av_inputs.each do |input|\n name = input[\"Name\"]?.try(&.as_s) || \"\"\n idx = case name\n when /input(\\d+)/\n $~[1].to_i.succ\n when /input-(\\d+)/\n $~[1].to_i\n else\n 1\n end\n sync = (input.dig?(\"Ports\", 0, \"IsSyncDetected\")).try(&.as_bool?)\n if sync.nil?\n else\n self[\"input_#{idx}_sync\"] = sync\n end\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L37"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching to #{input}\"\nend\n(update(\"/DeviceSpecific\", {VideoSource: input, AudioSource: \"AudioFollowsVideo\"}, name: :switch)).get\nupdate_source_info\n"}}],"types":[{"html_id":"drivers/Crestron/NvxTx/Input","path":"Crestron/NvxTx/Input.html","kind":"enum","full_name":"Crestron::NvxTx::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"}],"namespace":{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]}]},{"html_id":"drivers/Crestron/OccupancySensor","path":"Crestron/OccupancySensor.html","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/occupancy_sensor.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L36"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nauthenticate\npoll_device_state\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false"}},{"html_id":"get_sensor_details-instance-method","name":"get_sensor_details","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L126"},"def":{"name":"get_sensor_details","visibility":"Public","body":"Detail.new(type: :presence, value: @occupied ? 1.0 : 0.0, last_seen: @connected ? Time.utc.to_unix : @last_update, mac: @mac, id: nil, name: @name, module_id: module_id, binding: \"presence\", status: @connected ? Status::Normal : Status::Fault)"}},{"html_id":"last_update:Int64-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L26"},"def":{"name":"last_update","return_type":"Int64","visibility":"Public","body":"@last_update"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.hour) do\n poll_device_state\nend\n"}},{"html_id":"poll_counter:UInt64-instance-method","name":"poll_counter","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L27"},"def":{"name":"poll_counter","return_type":"UInt64","visibility":"Public","body":"@poll_counter"}},{"html_id":"poll_device_state:Nil-instance-method","name":"poll_device_state","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L47"},"def":{"name":"poll_device_state","return_type":"Nil","visibility":"Public","body":"response = get(\"/Device\")\nif response.success?\nelse\n raise(\"unexpected response code: #{response.status_code}\")\nend\npayload = JSON.parse(response.body)\n@last_update = Time.utc.to_unix\nself[:occupied] = @occupied = (payload.dig(\"Device\", \"OccupancySensor\", \"IsRoomOccupied\")).as_bool\nself[:presence] = @occupied ? 1.0 : 0.0\nself[:mac] = @mac = format_mac((payload.dig(\"Device\", \"DeviceInfo\", \"MacAddress\")).as_s)\nself[:name] = @name = (payload.dig(\"Device\", \"DeviceInfo\", \"Name\")).as_s?\n@poll_counter = @poll_counter + 1\nif @long_polling\nelse\n long_poll\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L120"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif @mac == mac\nelse\n return nil\nend\nget_sensor_details\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L108"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @mac)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\n[get_sensor_details]\n"}}]},{"html_id":"drivers/Crestron/Receiver","path":"Crestron/Receiver.html","kind":"module","full_name":"Crestron::Receiver","name":"Receiver","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"}},{"html_id":"drivers/Crestron/SourceType","path":"Crestron/SourceType.html","kind":"enum","full_name":"Crestron::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L17"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L18"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Crestron/Transmitter","path":"Crestron/Transmitter.html","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Interface for enumerating devices","summary":"

Interface for enumerating devices

"},{"html_id":"drivers/Crestron/VirtualSwitcher","path":"Crestron/VirtualSwitcher.html","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_OUTPUT","name":"DUMMY_OUTPUT","value":"[] of Int32"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"available_inputs-instance-method","name":"available_inputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L112"},"def":{"name":"available_inputs","visibility":"Public","body":"encoder_name_map.keys"}},{"html_id":"available_outputs-instance-method","name":"available_outputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L116"},"def":{"name":"available_outputs","visibility":"Public","body":"decoder_name_map.keys"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"only support muting the outputs, no unmuting","summary":"

only support muting the outputs, no unmuting

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L89"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n SwitchLayer::Audio\nin MuteLayer::Video\n SwitchLayer::Video\nin MuteLayer::AudioVideo\n SwitchLayer::All\nend\nswitch({\"none\" => [index]}, switch_layer)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@audio = setting?(AudioSink, :audio_sink)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy to supress errors in routing","summary":"

dummy to supress errors in routing

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L42"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"receivers-instance-method","name":"receivers","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L58"},"def":{"name":"receivers","visibility":"Public","body":"system.implementing(Crestron::Receiver)"}},{"html_id":"switch(map:Hash(Input,Array(Output|Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L140"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.video?) || layer.audio?\nelse\n return\nend\nlogger.debug do\n \"switching #{layer}: #{map}\"\nend\nconnect(map, layer) do |mod, __temp_231|\n video, audio = __temp_231\n case layer\n in .all?\n switch_audio_to(audio)\n mod.switch_to(video)\n in .audio?\n switch_audio_to(audio)\n in .video?\n inp = case video\n in JSON::Any\n video.as_s? || video.as_i\n in String\n video\n end\n mod.switch({inp => DUMMY_OUTPUT}, layer)\n in .data?, .data2?\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L103"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"stream = get_streams(input)\nif stream\nelse\n return\nend\nswitch_audio_to(stream[1])\nreceivers.switch_to(stream[0])\n"}},{"html_id":"transmitters-instance-method","name":"transmitters","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L54"},"def":{"name":"transmitters","visibility":"Public","body":"system.implementing(Crestron::Transmitter)"}}],"types":[{"html_id":"drivers/Crestron/VirtualSwitcher/AudioSink","path":"Crestron/VirtualSwitcher/AudioSink.html","kind":"class","full_name":"Crestron::VirtualSwitcher::AudioSink","name":"AudioSink","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Crestron/VirtualSwitcher","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L31"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L30"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L29"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L32"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]}]}]},{"html_id":"drivers/Delta","path":"Delta.html","kind":"module","full_name":"Delta","name":"Delta","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L3"},{"filename":"src/delta/models/generic_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L3"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L3"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L3"},{"filename":"src/delta/models/list_sites_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L3"},{"filename":"src/delta/models/local_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L3"},{"filename":"src/delta/models/object.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L3"},{"filename":"src/delta/models/property_identifier.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L3"},{"filename":"src/delta/models/reference.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L3"},{"filename":"src/delta/models/value_property.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Delta/API","path":"Delta/API.html","kind":"class","full_name":"Delta::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_object_value(site_name:String,device_number:String|UInt32,object_type:String,instance:String|UInt32)-instance-method","name":"get_object_value","doc":"get value of property from object through instance","summary":"

get value of property from object through instance

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L103"},"def":{"name":"get_object_value","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"visibility":"Public","body":"path = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}/#{object_type},#{instance}\")\nresponse = fetch(path)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ValueProperty.from_json(response.body)\n"}},{"html_id":"list_device_objects(site_name:String,device_number:String|UInt32)-instance-method","name":"list_device_objects","doc":"list objects from device resource","summary":"

list objects from device resource

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L77"},"def":{"name":"list_device_objects","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"visibility":"Public","body":"skip = 0\nobjects = [] of Models::Object\npath = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListObjectsByDeviceNumber.from_json(response.body)\n body.json_unmapped.each do |key, obj|\n value = obj.as_h\n object_type, instance = key.split(',', 2)\n objects.push(Models::Object.new(object_type, instance, base: value[\"$base\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\nobjects\n"}},{"html_id":"list_devices(site_name:String)-instance-method","name":"list_devices","doc":"list devices for site","summary":"

list devices for site

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"args_string":"(site_name : String)","args_html":"(site_name : String)","location":{"filename":"src/delta/api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L49"},"def":{"name":"list_devices","args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"visibility":"Public","body":"skip = 0\ndevices = [] of Models::Device\npath = URI.encode_path(\"/api/.bacnet/#{site_name}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListDevicesBySiteNameResponse.from_json(response.body)\n body.json_unmapped.keys.each do |key|\n value = body.json_unmapped[key].as_h\n devices.push(Models::Device.new(id: key.to_u32, base: value[\"$base\"].to_s, node_type: value[\"nodeType\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\ndevices\n"}},{"html_id":"list_sites-instance-method","name":"list_sites","doc":"list all sites","summary":"

list all sites

","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L43"},"def":{"name":"list_sites","visibility":"Public","body":"response = Models::ListSitesResponse.from_json((fetch(\"/api/.bacnet\")).body)\nresponse.json_unmapped.keys\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":"@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n@debug = (setting?(Bool, :debug)) || false\n"}}]},{"html_id":"drivers/Delta/Models","path":"Delta/Models.html","kind":"module","full_name":"Delta::Models","name":"Models","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L4"},{"filename":"src/delta/models/generic_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L4"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L4"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L4"},{"filename":"src/delta/models/list_sites_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L4"},{"filename":"src/delta/models/local_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L4"},{"filename":"src/delta/models/object.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L4"},{"filename":"src/delta/models/property_identifier.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L4"},{"filename":"src/delta/models/reference.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L4"},{"filename":"src/delta/models/value_property.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"types":[{"html_id":"drivers/Delta/Models/Device","path":"Delta/Models/Device.html","kind":"struct","full_name":"Delta::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(id:UInt32,base:String,node_type:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(id : UInt32, base : String, node_type : String, display_name : String)","args_html":"(id : UInt32, base : String, node_type : String, display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L20"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, base, node_type, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/device.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L18"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L18"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:UInt32-instance-method","name":"id","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L9"},"def":{"name":"id","return_type":"UInt32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:UInt32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L15"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L15"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/GenericValue","path":"Delta/Models/GenericValue.html","kind":"struct","full_name":"Delta::Models::GenericValue","name":"GenericValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/generic_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/generic_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/ListDevicesBySiteNameResponse","path":"Delta/Models/ListDevicesBySiteNameResponse.html","kind":"struct","full_name":"Delta::Models::ListDevicesBySiteNameResponse","name":"ListDevicesBySiteNameResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"collection:String|Nil-instance-method","name":"collection","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection","return_type":"String | ::Nil","visibility":"Public","body":"@collection"}},{"html_id":"collection=(collection:String|Nil)-instance-method","name":"collection=","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"args_string":"(collection : String | Nil)","args_html":"(collection : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection=","args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"visibility":"Public","body":"@collection = collection"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}}]},{"html_id":"drivers/Delta/Models/ListObjectsByDeviceNumber","path":"Delta/Models/ListObjectsByDeviceNumber.html","kind":"struct","full_name":"Delta::Models::ListObjectsByDeviceNumber","name":"ListObjectsByDeviceNumber","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/ListSitesResponse","path":"Delta/Models/ListSitesResponse.html","kind":"struct","full_name":"Delta::Models::ListSitesResponse","name":"ListSitesResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_sites_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/LocalValue","path":"Delta/Models/LocalValue.html","kind":"struct","full_name":"Delta::Models::LocalValue","name":"LocalValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/local_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/local_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"real:GenericValue-instance-method","name":"real","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L12"},"def":{"name":"real","return_type":"GenericValue","visibility":"Public","body":"@real"}},{"html_id":"real=(real:GenericValue)-instance-method","name":"real=","abstract":false,"args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"args_string":"(real : GenericValue)","args_html":"(real : GenericValue)","location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L12"},"def":{"name":"real=","args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"visibility":"Public","body":"@real = real"}}]},{"html_id":"drivers/Delta/Models/Object","path":"Delta/Models/Object.html","kind":"struct","full_name":"Delta::Models::Object","name":"Object","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/object.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(object_type:String,instance:String,base:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(object_type : String, instance : String, base : String, display_name : String)","args_html":"(object_type : String, instance : String, base : String, display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L17"},"def":{"name":"new","args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object_type, instance, base, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/object.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"instance:UInt32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L9"},"def":{"name":"instance","return_type":"UInt32","visibility":"Public","body":"@instance"}},{"html_id":"instance=(instance:UInt32)-instance-method","name":"instance=","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"args_string":"(instance : UInt32)","args_html":"(instance : UInt32)","location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L9"},"def":{"name":"instance=","args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"visibility":"Public","body":"@instance = instance"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L8"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L8"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}}]},{"html_id":"drivers/Delta/Models/PropertyIdentifier","path":"Delta/Models/PropertyIdentifier.html","kind":"struct","full_name":"Delta::Models::PropertyIdentifier","name":"PropertyIdentifier","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/property_identifier.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/Reference","path":"Delta/Models/Reference.html","kind":"struct","full_name":"Delta::Models::Reference","name":"Reference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/reference.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/reference.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"device_identifier:GenericValue-instance-method","name":"device_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier","return_type":"GenericValue","visibility":"Public","body":"@device_identifier"}},{"html_id":"device_identifier=(device_identifier:GenericValue)-instance-method","name":"device_identifier=","abstract":false,"args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"args_string":"(device_identifier : GenericValue)","args_html":"(device_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier=","args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@device_identifier = device_identifier"}},{"html_id":"object_identifier:GenericValue-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier","return_type":"GenericValue","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"args_string":"(object_identifier : GenericValue)","args_html":"(object_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"property_identifier:PropertyIdentifier-instance-method","name":"property_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier","return_type":"PropertyIdentifier","visibility":"Public","body":"@property_identifier"}},{"html_id":"property_identifier=(property_identifier:PropertyIdentifier)-instance-method","name":"property_identifier=","abstract":false,"args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"args_string":"(property_identifier : PropertyIdentifier)","args_html":"(property_identifier : PropertyIdentifier)","location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier=","args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"visibility":"Public","body":"@property_identifier = property_identifier"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L12"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L12"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Delta/Models/ValueProperty","path":"Delta/Models/ValueProperty.html","kind":"struct","full_name":"Delta::Models::ValueProperty","name":"ValueProperty","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/value_property.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/value_property.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"cov_increment:GenericValue|Nil-instance-method","name":"cov_increment","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@cov_increment"}},{"html_id":"cov_increment=(cov_increment:GenericValue|Nil)-instance-method","name":"cov_increment=","abstract":false,"args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"args_string":"(cov_increment : GenericValue | Nil)","args_html":"(cov_increment : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment=","args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@cov_increment = cov_increment"}},{"html_id":"description:GenericValue|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L73"},"def":{"name":"description","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:GenericValue|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"args_string":"(description : GenericValue | Nil)","args_html":"(description : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L73"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"event_state:GenericValue|Nil-instance-method","name":"event_state","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@event_state"}},{"html_id":"event_state=(event_state:GenericValue|Nil)-instance-method","name":"event_state=","abstract":false,"args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"args_string":"(event_state : GenericValue | Nil)","args_html":"(event_state : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state=","args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@event_state = event_state"}},{"html_id":"exchange_flags:GenericValue|Nil-instance-method","name":"exchange_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_flags"}},{"html_id":"exchange_flags=(exchange_flags:GenericValue|Nil)-instance-method","name":"exchange_flags=","abstract":false,"args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_flags : GenericValue | Nil)","args_html":"(exchange_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags=","args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_flags = exchange_flags"}},{"html_id":"exchange_type:GenericValue|Nil-instance-method","name":"exchange_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_type"}},{"html_id":"exchange_type=(exchange_type:GenericValue|Nil)-instance-method","name":"exchange_type=","abstract":false,"args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_type : GenericValue | Nil)","args_html":"(exchange_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type=","args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_type = exchange_type"}},{"html_id":"last_error:GenericValue|Nil-instance-method","name":"last_error","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_error"}},{"html_id":"last_error=(last_error:GenericValue|Nil)-instance-method","name":"last_error=","abstract":false,"args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"args_string":"(last_error : GenericValue | Nil)","args_html":"(last_error : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error=","args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_error = last_error"}},{"html_id":"last_sent:GenericValue|Nil-instance-method","name":"last_sent","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_sent"}},{"html_id":"last_sent=(last_sent:GenericValue|Nil)-instance-method","name":"last_sent=","abstract":false,"args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"args_string":"(last_sent : GenericValue | Nil)","args_html":"(last_sent : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent=","args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_sent = last_sent"}},{"html_id":"local_flags:LocalValue|Nil-instance-method","name":"local_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags","return_type":"LocalValue | ::Nil","visibility":"Public","body":"@local_flags"}},{"html_id":"local_flags=(local_flags:GenericValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(local_flags : GenericValue | Nil)","args_html":"(local_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L37"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_flags=(local_flags:LocalValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"args_string":"(local_flags : LocalValue | Nil)","args_html":"(local_flags : LocalValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_ref:Reference|Nil-instance-method","name":"local_ref","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref","return_type":"Reference | ::Nil","visibility":"Public","body":"@local_ref"}},{"html_id":"local_ref=(local_ref:Reference|Nil)-instance-method","name":"local_ref=","abstract":false,"args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"args_string":"(local_ref : Reference | Nil)","args_html":"(local_ref : Reference | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref=","args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"visibility":"Public","body":"@local_ref = local_ref"}},{"html_id":"object_identifier:GenericValue|Nil-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue|Nil)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"args_string":"(object_identifier : GenericValue | Nil)","args_html":"(object_identifier : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"object_name:GenericValue|Nil-instance-method","name":"object_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_name"}},{"html_id":"object_name=(object_name:GenericValue|Nil)-instance-method","name":"object_name=","abstract":false,"args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"args_string":"(object_name : GenericValue | Nil)","args_html":"(object_name : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name=","args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_name = object_name"}},{"html_id":"object_type:GenericValue|Nil-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:GenericValue|Nil)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"args_string":"(object_type : GenericValue | Nil)","args_html":"(object_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"out_of_service:GenericValue|Nil-instance-method","name":"out_of_service","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@out_of_service"}},{"html_id":"out_of_service=(out_of_service:GenericValue|Nil)-instance-method","name":"out_of_service=","abstract":false,"args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"args_string":"(out_of_service : GenericValue | Nil)","args_html":"(out_of_service : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service=","args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@out_of_service = out_of_service"}},{"html_id":"present_value:GenericValue|Nil-instance-method","name":"present_value","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@present_value"}},{"html_id":"present_value=(present_value:GenericValue|Nil)-instance-method","name":"present_value=","abstract":false,"args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"args_string":"(present_value : GenericValue | Nil)","args_html":"(present_value : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value=","args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@present_value = present_value"}},{"html_id":"reliability:GenericValue|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:GenericValue|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"args_string":"(reliability : GenericValue | Nil)","args_html":"(reliability : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"send_frequency:GenericValue|Nil-instance-method","name":"send_frequency","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@send_frequency"}},{"html_id":"send_frequency=(send_frequency:GenericValue|Nil)-instance-method","name":"send_frequency=","abstract":false,"args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"args_string":"(send_frequency : GenericValue | Nil)","args_html":"(send_frequency : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency=","args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@send_frequency = send_frequency"}},{"html_id":"status_flags:GenericValue|Nil-instance-method","name":"status_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@status_flags"}},{"html_id":"status_flags=(status_flags:GenericValue|Nil)-instance-method","name":"status_flags=","abstract":false,"args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(status_flags : GenericValue | Nil)","args_html":"(status_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags=","args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@status_flags = status_flags"}},{"html_id":"subscribers:Hash(String,JSON::Any)|Nil-instance-method","name":"subscribers","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@subscribers"}},{"html_id":"subscribers=(subscribers:Hash(String,JSON::Any)|Nil)-instance-method","name":"subscribers=","abstract":false,"args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(subscribers : Hash(String, JSON::Any) | Nil)","args_html":"(subscribers : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers=","args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@subscribers = subscribers"}},{"html_id":"units:GenericValue|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L70"},"def":{"name":"units","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"units=(units:GenericValue|Nil)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"args_string":"(units : GenericValue | Nil)","args_html":"(units : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L70"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@units = units"}}]}]},{"html_id":"drivers/Delta/UNOnext","path":"Delta/UNOnext.html","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"NO_OBJECTS","name":"NO_OBJECTS","value":"[] of Models::Object"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{0 => SensorType::Temperature, 1 => SensorType::Humidity, 2 => SensorType::AirQuality, 4 => SensorType::PPM, 5 => SensorType::Illuminance}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Detail))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L44"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Detail))","visibility":"Public","body":"@cached_data"}},{"html_id":"manager_mappings:Array(ManMap)-instance-method","name":"manager_mappings","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L43"},"def":{"name":"manager_mappings","return_type":"Array(ManMap)","visibility":"Public","body":"@manager_mappings"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@manager_mappings = setting(Array(ManMap), :manager_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Detail)).new do |hash, key|\n hash[key] = [] of Detail\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/delta/uno_next.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L49"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"unonext-\"))\n else\n return nil\n end\n device_id = (mac.lchop(\"unonext-\")).to_u32?\n index = id.to_u32?\n if device_id && index\n else\n return nil\n end\n build_sensor_details(device_id, index)\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/delta/uno_next.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L73"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.values.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"unonext-\")\n else\n return NO_MATCH\n end\nend\nresult = if zone_id\n cached_data[zone_id]? || ([] of Detail)\nelse\n manager_mappings.flat_map do |man_map|\n cached_data[man_map.level_zone]? || ([] of Detail)\n end\nend\nif sensor_type && mac\n result.reject! do |details|\n (details.type != sensor_type) || (details.mac != mac)\n end\nelse\n if sensor_type\n result.reject! do |details|\n details.type != sensor_type\n end\n else\n if mac\n result.reject! do |details|\n details.mac != mac\n end\n end\n end\nend\nresult\n"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L42"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}}],"types":[{"html_id":"drivers/Delta/UNOnext/ManMap","path":"Delta/UNOnext/ManMap.html","kind":"struct","full_name":"Delta::UNOnext::ManMap","name":"ManMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/UNOnext","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,managers:Array(UInt32))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"args_string":"(building_zone : String, level_zone : String, managers : Array(UInt32))","args_html":"(building_zone : String, level_zone : String, managers : Array(UInt32))","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, managers)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/uno_next.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @managers.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,managers_managers=@managers)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _managers)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"managers:Array(UInt32)-instance-method","name":"managers","abstract":false,"def":{"name":"managers","return_type":"Array(UInt32)","visibility":"Public","body":"@managers"}}]}]},{"html_id":"drivers/Delta/ZenPIRLocation","path":"Delta/ZenPIRLocation.html","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Location))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L53"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Location))","visibility":"Public","body":"@cached_data"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/delta/zen_pir_location.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L68"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L73"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location.presence && (location != \"area\")\n return [] of Location\nend\n@cached_data[zone_id]? || ([] of Location)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L58"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L63"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@zen_id = setting(UInt32, :zen_id)\n@pir_mappings = setting(Array(PIRMap), :pir_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Location)).new do |hash, key|\n hash[key] = [] of Location\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"pir_mappings:Array(PIRMap)-instance-method","name":"pir_mappings","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L52"},"def":{"name":"pir_mappings","return_type":"Array(PIRMap)","visibility":"Public","body":"@pir_mappings"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L50"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}},{"html_id":"zen_id:UInt32-instance-method","name":"zen_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L51"},"def":{"name":"zen_id","return_type":"UInt32","visibility":"Public","body":"@zen_id"}}],"types":[{"html_id":"drivers/Delta/ZenPIRLocation/Location","path":"Delta/ZenPIRLocation/Location.html","kind":"struct","full_name":"Delta::ZenPIRLocation::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L83"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(level:String,map_id:String,area_id:String,capacity:Int32,at_location:Int32,zen_device_id:UInt32,zen_object_id:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"args_string":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","args_html":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L96"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, map_id, area_id, capacity, at_location, zen_device_id, zen_object_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L84"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"at_location:Int32-instance-method","name":"at_location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location","return_type":"Int32","visibility":"Public","body":"@at_location"}},{"html_id":"at_location=(at_location:Int32)-instance-method","name":"at_location=","abstract":false,"args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"args_string":"(at_location : Int32)","args_html":"(at_location : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location=","args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"visibility":"Public","body":"@at_location = at_location"}},{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(level : String)","args_html":"(level : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"@level = level"}},{"html_id":"location:Symbol-instance-method","name":"location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L86"},"def":{"name":"location","return_type":"Symbol","visibility":"Public","body":"@location"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"zen_device_id:UInt32-instance-method","name":"zen_device_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id","return_type":"UInt32","visibility":"Public","body":"@zen_device_id"}},{"html_id":"zen_device_id=(zen_device_id:UInt32)-instance-method","name":"zen_device_id=","abstract":false,"args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"args_string":"(zen_device_id : UInt32)","args_html":"(zen_device_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id=","args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_device_id = zen_device_id"}},{"html_id":"zen_object_id:UInt32-instance-method","name":"zen_object_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id","return_type":"UInt32","visibility":"Public","body":"@zen_object_id"}},{"html_id":"zen_object_id=(zen_object_id:UInt32)-instance-method","name":"zen_object_id=","abstract":false,"args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"args_string":"(zen_object_id : UInt32)","args_html":"(zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id=","args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_object_id = zen_object_id"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIR","path":"Delta/ZenPIRLocation/PIR.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIR","name":"PIR","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(pir:UInt32,map:String)-class-method","name":"new","abstract":false,"args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"args_string":"(pir : UInt32, map : String)","args_html":"(pir : UInt32, map : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"new","args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pir, map)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@pir.clone, @map.clone)"}},{"html_id":"copy_with(pir_pir=@pir,map_map=@map)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"args_string":"(pir _pir = @pir, map _map = @map)","args_html":"(pir _pir = @pir, map _map = @map)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"copy_with","args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"visibility":"Public","body":"self.class.new(_pir, _map)"}},{"html_id":"map:String-instance-method","name":"map","abstract":false,"def":{"name":"map","return_type":"String","visibility":"Public","body":"@map"}},{"html_id":"pir:UInt32-instance-method","name":"pir","abstract":false,"def":{"name":"pir","return_type":"UInt32","visibility":"Public","body":"@pir"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIRMap","path":"Delta/ZenPIRLocation/PIRMap.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIRMap","name":"PIRMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,pirs:Array(PIR))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"args_string":"(building_zone : String, level_zone : String, pirs : Array(PIR))","args_html":"(building_zone : String, level_zone : String, pirs : Array(PIR))","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, pirs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @pirs.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,pirs_pirs=@pirs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _pirs)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"pirs:Array(PIR)-instance-method","name":"pirs","abstract":false,"def":{"name":"pirs","return_type":"Array(PIR)","visibility":"Public","body":"@pirs"}}]}]}]},{"html_id":"drivers/Denon","path":"Denon.html","kind":"module","full_name":"Denon","name":"Denon","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"","summary":"","types":[{"html_id":"drivers/Denon/Amplifier","path":"Denon/Amplifier.html","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Denon","kind":"module","full_name":"Denon","name":"Denon"},"types":[{"html_id":"drivers/Denon/Amplifier/AvReceiver","path":"Denon/Amplifier/AvReceiver.html","kind":"class","full_name":"Denon::Amplifier::AvReceiver","name":"AvReceiver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power: :PW, power_query: :\"PW?\", mute: :MU, mute_query: :\"MU?\", volume: :MV, volume_query: :\"MV?\", input: :SI, input_query: :\"SI?\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"}],"namespace":{"html_id":"drivers/Denon/Amplifier","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L65"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.info do\n \"-- Polling Denon AVR\"\n end\n power?\n do_send(:input, priority: 0, name: :input)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L80"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"input(input:String=\"\")-instance-method","name":"input","doc":"Just here for documentation (there are many more)\n\nINPUTS = [:cd, :tuner, :dvd, :bd, :tv, :\"sat/cbl\", :dvr, :game, :game2, :\"v.aux\", :dock]","summary":"

Just here for documentation (there are many more)

","abstract":false,"args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"args_string":"(input : String = \"\")","args_html":"(input : String = "")","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L148"},"def":{"name":"input","args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"visibility":"Public","body":"status = input.upcase\nif status != self[:input]\n input = input.to_s.upcase\n do_send(:input, input, name: :input)\nend\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L156"},"def":{"name":"input?","visibility":"Public","body":"do_send(:input_query, priority: 0, name: :input_query)"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L104"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"req = state ? \"ON\" : \"OFF\"\nif self[:mute] == req\n return\nend\ndo_send(:mute, req, name: :mute)\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L99"},"def":{"name":"mute?","visibility":"Public","body":"self[:mute] = \"OFF\"\ndo_send(:mute_query, priority: 0, name: :mute_query)\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L110"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:volume_min] = 0\nself[:volume_max] = @volume_range.max\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L60"},"def":{"name":"on_update","visibility":"Public","body":"self[:max_waits] = 10\nself[:timeout] = 3000\n"}},{"html_id":"power(state:Bool=false)-instance-method","name":"power","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L84"},"def":{"name":"power","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state && ((self[:power] == \"OFF\") || (self[:power] == \"STANDBY\"))\n do_send(:power, \"ON\", delay: 3.milliseconds, name: :power)\nelse\n if !state && (self[:power] == \"ON\")\n do_send(:power, \"STANDBY\", delay: 3.milliseconds, name: :power)\n end\nend"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L93"},"def":{"name":"power?","visibility":"Public","body":"do_send(:power_query, priority: 0, name: :power_query)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.info do\n \"Denon sent #{data.inspect}\"\nend\nif task\nelse\n return\nend\ncmd = data[0..1]\nval = data[2..-2]\ncase cmd\nwhen \"PW\"\n self[:power] = val\nwhen \"SI\"\n self[:input] = val\nwhen \"MV\"\n vol_percent = ((val.to_f * 2) / @volume_range.end.to_f) * 100.0\n self[:volume] = vol_percent\nwhen \"MU\"\n self[:mute] = val\nelse\n return :ignore\nend\ntask.try(&.success)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L114"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L118"},"def":{"name":"unmute_audio","visibility":"Public","body":"unmute"}},{"html_id":"volume(level:Float64|Int32=0)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"args_string":"(level : Float64 | Int32 = 0)","args_html":"(level : Float64 | Int32 = 0)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L122"},"def":{"name":"volume","args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\nif self[:volume] == level\n return\nend\npercentage = level / 100.0\nvalue = (percentage * @volume_range.end.to_f).round_away.to_i\nstep = value % 2\nactual = value / 2\nreq = actual.to_s.rjust(2, '0')\nif step != 0\n req = req + \"5\"\nend\ndo_send(:volume, req, name: :volume)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L141"},"def":{"name":"volume?","visibility":"Public","body":"do_send(:volume_query, priority: 0, name: :volume_query)"}}]}]}]},{"html_id":"drivers/DigitalIO","path":"DigitalIO.html","kind":"class","full_name":"DigitalIO","name":"DigitalIO","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv_spec.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv_spec.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"ir(index:Int32,command:String)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String)","args_html":"(index : Int32, command : String)","location":{"filename":"src/global_cache/ir_tv_spec.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv_spec.cr#L6"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@called = @called + 1\nself[:call_count] = @called\nnil\n"}}]},{"html_id":"drivers/Digraph","path":"Digraph.html","kind":"alias","full_name":"Digraph","name":"Digraph","abstract":false,"locations":[{"filename":"src/place/router/digraph_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Digraph(N, E)","aliased_html":"Place::Router::Digraph(N, E)","const":false},{"html_id":"drivers/DispatchProtocol","path":"DispatchProtocol.html","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: typeof(MessageType::RECEIVED.value), onlyif: nil, verify: nil, value: nil, encoding: nil, enum_type: DispatchProtocol::MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil, endian: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend, endian: nil}, {type: \"bytes\", name: data, cls: Slice(UInt8), onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L4"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}],"types":[{"html_id":"drivers/DispatchProtocol/MessageType","path":"DispatchProtocol/MessageType.html","kind":"enum","full_name":"DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L6"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0_u8"},{"id":"CLOSED","name":"CLOSED","value":"1_u8"},{"id":"RECEIVED","name":"RECEIVED","value":"2_u8"},{"id":"WRITE","name":"WRITE","value":"3_u8"},{"id":"CLOSE","name":"CLOSE","value":"4_u8"}],"namespace":{"html_id":"drivers/DispatchProtocol","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L11"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L8"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L9"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L10"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]},{"html_id":"drivers/Echo360","path":"Echo360.html","kind":"module","full_name":"Echo360","name":"Echo360","abstract":false,"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Echo360/DeviceCapture","path":"Echo360/DeviceCapture.html","kind":"class","full_name":"Echo360::DeviceCapture","name":"DeviceCapture","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CHECK","name":"CHECK","value":"{\"next\", \"current\"}"},{"id":"STATUS_CMDS","name":"STATUS_CMDS","value":"{system_status: :system, capture_status: :captures, next: :next_capture, current: :current_capture, state: :monitoring}"}],"namespace":{"html_id":"drivers/Echo360","kind":"module","full_name":"Echo360","name":"Echo360"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"capture","doc":"This will auto-start a recording","summary":"

This will auto-start a recording

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L70"},"def":{"name":"capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/new_capture\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"capture_status-instance-method","name":"capture_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"capture_status","visibility":"Public","body":"response = get(\"/status/captures\")\nprocess_status(check(response))\n"}},{"html_id":"captures-instance-method","name":"captures","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L57"},"def":{"name":"captures","visibility":"Public","body":"response = get(\"/diagnostics/recovery/saved-content\")\nself[:captures] = (check(response))[\"captures\"][\"capture\"]\n"}},{"html_id":"current-instance-method","name":"current","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"current","visibility":"Public","body":"response = get(\"/status/current_capture\")\nprocess_status(check(response))\n"}},{"html_id":"extend(duration:Int32)-instance-method","name":"extend","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"args_string":"(duration : Int32)","args_html":"(duration : Int32)","location":{"filename":"src/echo360/device_capture.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L90"},"def":{"name":"extend","args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"duration\", duration.to_s)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"next-instance-method","name":"next","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"next","visibility":"Public","body":"response = get(\"/status/next_capture\")\nprocess_status(check(response))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(15.seconds) do\n logger.debug do\n \"-- Polling Capture\"\n end\n system_status\n capture_status\nend\n"}},{"html_id":"pause-instance-method","name":"pause","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L97"},"def":{"name":"pause","visibility":"Public","body":"response = post(\"/capture/pause\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L52"},"def":{"name":"reboot","visibility":"Public","body":"(post(\"/diagnostics/reboot\")).success?"}},{"html_id":"record-instance-method","name":"record","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L111"},"def":{"name":"record","visibility":"Public","body":"start"}},{"html_id":"restart_application-instance-method","name":"restart_application","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L47"},"def":{"name":"restart_application","visibility":"Public","body":"(post(\"/diagnostics/restart_all\")).success?"}},{"html_id":"resume-instance-method","name":"resume","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L107"},"def":{"name":"resume","visibility":"Public","body":"start"}},{"html_id":"start-instance-method","name":"start","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L102"},"def":{"name":"start","visibility":"Public","body":"response = post(\"/capture/record\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"state-instance-method","name":"state","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"state","visibility":"Public","body":"response = get(\"/status/monitoring\")\nprocess_status(check(response))\n"}},{"html_id":"stop-instance-method","name":"stop","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L115"},"def":{"name":"stop","visibility":"Public","body":"response = post(\"/capture/stop\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"system_status-instance-method","name":"system_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"system_status","visibility":"Public","body":"response = get(\"/status/system\")\nprocess_status(check(response))\n"}},{"html_id":"test_capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"test_capture","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L80"},"def":{"name":"test_capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"upload(id:String)-instance-method","name":"upload","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/echo360/device_capture.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L63"},"def":{"name":"upload","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/diagnostics/recovery/#{id}/upload\")\nif response.success?\nelse\n raise(\"upload request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}}]}]},{"html_id":"drivers/Embedia","path":"Embedia.html","kind":"module","full_name":"Embedia","name":"Embedia","abstract":false,"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Embedia/ControlPoint","path":"Embedia/ControlPoint.html","kind":"class","full_name":"Embedia::ControlPoint","name":"ControlPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{stop: 40, down: 78, up: 75, next_extent_preset: 79, previous_extent_preset: 80, close: 22, open: 26, next_tilt_preset: 7, previous_tilt_preset: 4, clear_override: 76}"}],"namespace":{"html_id":"drivers/Embedia","kind":"module","full_name":"Embedia","name":"Embedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_override(address:UInt8,**options)-instance-method","name":"clear_override","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"clear_override","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 76], **options)"}},{"html_id":"close(address:UInt8,**options)-instance-method","name":"close","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"close","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 22], **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"Maintaining connection\"\n end\n query_sensor(0)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"down(address:UInt8,**options)-instance-method","name":"down","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"down","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 78], **options)"}},{"html_id":"extent_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L54"},"def":{"name":"extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 29 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"extent_preset#{address}\")\n"}},{"html_id":"next_extent_preset(address:UInt8,**options)-instance-method","name":"next_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"next_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 79], **options)"}},{"html_id":"next_tilt_preset(address:UInt8,**options)-instance-method","name":"next_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"next_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 7], **options)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 200.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"open(address:UInt8,**options)-instance-method","name":"open","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"open","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 26], **options)"}},{"html_id":"previous_extent_preset(address:UInt8,**options)-instance-method","name":"previous_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"previous_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 80], **options)"}},{"html_id":"previous_tilt_preset(address:UInt8,**options)-instance-method","name":"previous_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"previous_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 4], **options)"}},{"html_id":"query_sensor(address:UInt8,**options)-instance-method","name":"query_sensor","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L64"},"def":{"name":"query_sensor","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 3, 0, 1, 0, 1], **options)"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/embedia/control_point.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L74"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n raw_data = (String.new(bytes)).strip\n data = raw_data[1..-3].hexbytes\n address = data[0]\n func = data[1]\n case func\n when 3\n \"sensor response #{raw_data} on address 0x#{address.to_s(16)}\"\n else\n \"sent #{raw_data} on address 0x#{address.to_s(16)}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stop(address:UInt8,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"stop","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 40], **options)"}},{"html_id":"tilt_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L59"},"def":{"name":"tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 57 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"tilt_preset#{address}\")\n"}},{"html_id":"up(address:UInt8,**options)-instance-method","name":"up","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"up","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 75], **options)"}}]}]},{"html_id":"drivers/Enumerable","path":"Enumerable.html","kind":"module","full_name":"Enumerable(T)","name":"Enumerable","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"The `Enumerable` mixin provides collection classes with several traversal, searching,\nfiltering and querying methods.\n\nIncluding types must provide an `each` method, which yields successive members\nof the collection.\n\nFor example:\n\n```\nclass Three\n include Enumerable(Int32)\n\n def each(&)\n yield 1\n yield 2\n yield 3\n end\nend\n\nthree = Three.new\nthree.to_a # => [1, 2, 3]\nthree.select &.odd? # => [1, 3]\nthree.all? { |x| x < 10 } # => true\n```\n\nNote that most search and filter methods traverse an Enumerable eagerly,\nproducing an `Array` as the result. For a lazy alternative refer to\nthe `Iterator` and `Iterable` modules.","summary":"

The Enumerable mixin provides collection classes with several traversal, searching, filtering and querying methods.

","instance_methods":[{"html_id":"flatten_xapi_json(parent_prefix:String|Nil=nil,delimiter:String=\"/\")-instance-method","name":"flatten_xapi_json","abstract":false,"args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"args_string":"(parent_prefix : String | Nil = nil, delimiter : String = \"/\")","args_html":"(parent_prefix : String | Nil = nil, delimiter : String = "/")","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L40"},"def":{"name":"flatten_xapi_json","args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"visibility":"Public","body":"res = {} of String => JSONComplex\nself.each_with_index do |elem, i|\n if elem.is_a?(Tuple)\n k, v = elem\n else\n k, v = i, elem\n if id = v.as_h?.try(&.delete(\"id\"))\n k = id\n end\n end\n key = parent_prefix ? \"#{parent_prefix}#{delimiter}#{k}\" : k.to_s\n raw = v.raw\n case raw\n in Array(JSON::Any)\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n in Hash(String, JSON::Any)\n value = raw[\"Value\"]?\n if value && value.as_h?.nil?\n valuespaceref = raw[\"valueSpaceRef\"]?.try do |__arg1|\n (__arg1.as_s.split('/')).last\n end\n res[key] = Cisco::CollaborationEndpoint::XAPI.value_convert(value.as_s, valuespaceref)\n else\n if id\n res[key] = raw.flatten_xapi_json(delimiter: delimiter)\n else\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n end\n end\n in JSONBasic\n res[key] = raw\n end\nend\nres\n"}}],"types":[{"html_id":"drivers/Enumerable/JSONBasic","path":"Enumerable/JSONBasic.html","kind":"alias","full_name":"Enumerable::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}},{"html_id":"drivers/Enumerable/JSONComplex","path":"Enumerable/JSONComplex.html","kind":"alias","full_name":"Enumerable::JSONComplex","name":"JSONComplex","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}}]},{"html_id":"drivers/Epson","path":"Epson.html","kind":"module","full_name":"Epson","name":"Epson","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Epson/Projector","path":"Epson/Projector.html","kind":"module","full_name":"Epson::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Epson","kind":"module","full_name":"Epson","name":"Epson"},"types":[{"html_id":"drivers/Epson/Projector/EscVp21","path":"Epson/Projector/EscVp21.html","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{power: \"PWR\", input: \"SOURCE\", volume: \"VOL\", av_mute: \"MUTE\", video_mute: \"MSEL\", error: \"ERR\", lamp: \"LAMP\"}"},{"id":"ERRORS","name":"ERRORS","value":"[\"00: no error\", \"01: fan error\", \"03: lamp failure at power on\", \"04: high internal temperature\", \"06: lamp error\", \"07: lamp cover door open\", \"08: cinema filter error\", \"09: capacitor is disconnected\", \"0A: auto iris error\", \"0B: subsystem error\", \"0C: low air flow error\", \"0D: air flow sensor error\", \"0E: ballast power supply error\", \"0F: shutter error\", \"10: peltiert cooling error\", \"11: pump cooling error\", \"12: static iris error\", \"13: power supply unit error\", \"14: exhaust shutter error\", \"15: obstacle detection error\", \"16: IF board discernment error\"]"},{"id":"RESPONSE","name":"RESPONSE","value":"COMMAND.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Epson/Projector","kind":"module","full_name":"Epson::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L33"},"def":{"name":"connected","visibility":"Public","body":"send(\"ESC/VP.net\\u0010\\u0003\\u0000\\u0000\\u0000\\u0000\")\nschedule.every(52.seconds, true) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L39"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L221"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 20) && @power_stable\n input?\n video_mute?\n volume?\nend\ndo_send(:lamp, priority: 20)\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L73"},"def":{"name":"input?","visibility":"Public","body":"(do_send(:input, priority: 0)).get\nself[:input]\n"}},{"html_id":"inspect_error-instance-method","name":"inspect_error","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L145"},"def":{"name":"inspect_error","visibility":"Public","body":"do_send(:error, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L98"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"case layer\nwhen .audio_video?\n do_send(:av_mute, state ? \"ON\" : \"OFF\", name: :mute)\n do_send(:av_mute, name: :\"mute?\", priority: 0)\nwhen .video?\n do_send(:video_mute, state ? \"ON\" : \"OFF\", name: :video_mute)\n video_mute?\nwhen .audio?\n val = state ? 0.0 : @unmute_volume\n volume(val)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:type] = :projector\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L43"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n @power_target = true\n logger.debug do\n \"-- epson Proj, requested to power on\"\n end\n do_send(:power, \"ON\", delay: 40.seconds, name: \"power\", priority: 99)\nelse\n @power_target = false\n logger.debug do\n \"-- epson Proj, requested to power off\"\n end\n do_send(:power, \"OFF\", delay: 10.seconds, name: \"power\", priority: 99)\nend\n@power_stable = false\nself[:power] = state\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L58"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power, **options)).get\n@power_actual || false\n"}},{"html_id":"power_actual:Bool|Nil-instance-method","name":"power_actual","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L22"},"def":{"name":"power_actual","return_type":"Bool | ::Nil","visibility":"Public","body":"@power_actual"}},{"html_id":"power_stable?:Bool-instance-method","name":"power_stable?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L23"},"def":{"name":"power_stable?","return_type":"Bool","visibility":"Public","body":"@power_stable"}},{"html_id":"power_target?:Bool-instance-method","name":"power_target?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L24"},"def":{"name":"power_target?","return_type":"Bool","visibility":"Public","body":"@power_target"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if data.size <= 2\n return task.try(&.success)\nend\ndata = String.new(data[1..-2])\nlogger.debug do\n \"epson Proj sent: #{data}\"\nend\ndata = data.split('=')\ncase RESPONSE[data[0]]\nwhen :error\n if data[1]?\n code = data[1].to_i(16)\n self[:last_error] = ERRORS[code]? || \"#{data[1]}: unknown error code #{code}\"\n return task.try(&.success(\"Epson PJ error was #{self[:last_error]}\"))\n else\n return task.try(&.abort(\"Epson PJ sent error response for #{task.not_nil!.name || \"unknown\"}\"))\n end\nwhen :power\n state = data[1].to_i\n @power_actual = powered = state < 3\n warming = state == 2\n cooling = state == 3\n if warming || cooling\n schedule.in(5.seconds) do\n power?(priority: 10)\n end\n else\n if !@power_stable\n if @power_actual == @power_target\n @power_stable = true\n else\n power(@power_target)\n end\n end\n end\n if @power_stable\n self[:power] = powered\n end\n self[:warming] = warming\n self[:cooling] = cooling\n if powered == @power_target\n if powered\n else\n self[:video_mute] = false\n end\n end\nwhen :av_mute\n self[:video_mute] = self[:audio_mute] = data[1] == \"ON\"\n self[:volume] = 0.0\nwhen :video_mute\n self[:video_mute] = data[1] == \"ON\"\nwhen :volume\n vol = data[1].to_i\n vol_percent = (vol.to_f / 255.0) * 100.0\n self[:volume] = vol_percent\n mute = vol == 0\n if mute\n self[:audio_mute] = mute\n end\n if mute\n else\n @unmute_volume || (@unmute_volume = vol_percent)\n end\nwhen :lamp\n self[:lamp_usage] = data[1].to_i\nwhen :input\n self[:input] = (Input.from_value(data[1].to_i(16))) || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L63"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- epson Proj, requested to switch to: #{input}\"\nend\ndo_send(:input, input.value.to_s(16), name: :input)\nself[:input] = input\nself[:video_mute] = false\ninput?\n"}},{"html_id":"video_mute?-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L116"},"def":{"name":"video_mute?","visibility":"Public","body":"(do_send(:video_mute, priority: 0)).get\n!!self[:video_mute]?.try(&.as_bool)\n"}},{"html_id":"volume(vol:Float64|Int32,**options)-instance-method","name":"volume","doc":"Volume commands are sent using the inpt command","summary":"

Volume commands are sent using the inpt command

","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"args_string":"(vol : Float64 | Int32, **options)","args_html":"(vol : Float64 | Int32, **options)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L79"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * 255.0).round_away.to_i\nif (mute = vol == 0.0) && self[:volume]?\n @unmute_volume = self[:volume].as_f\nend\ndo_send(:volume, vol_actual, **options, name: :volume)\nself[:volume] = vol\nself[:audio_mute] = mute\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L93"},"def":{"name":"volume?","visibility":"Public","body":"(do_send(:volume, priority: 0)).get\nself[:volume]?.try(&.as_f)\n"}}],"types":[{"html_id":"drivers/Epson/Projector/EscVp21/Input","path":"Epson/Projector/EscVp21/Input.html","kind":"enum","full_name":"Epson::Projector::EscVp21::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"48"},{"id":"HDBaseT","name":"HDBaseT","value":"128"}],"namespace":{"html_id":"drivers/Epson/Projector/EscVp21","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21"},"instance_methods":[{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L12"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L11"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}}]}]}]}]},{"html_id":"drivers/Exterity","path":"Exterity.html","kind":"module","full_name":"Exterity","name":"Exterity","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Exterity/AvediaPlayer","path":"Exterity/AvediaPlayer.html","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity","kind":"module","full_name":"Exterity","name":"Exterity"},"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R92xx","path":"Exterity/AvediaPlayer/R92xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R92xx","name":"R92xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L40"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.info do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L52"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L56"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L72"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L60"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L76"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.info do\n \"Exterity sent #{data}\"\nend\nif @ready\n if data =~ (/sh: .* not found/i)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 2.seconds, priority: 95)\n return :failure\n end\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Exterity Control Interface| Exit/i)\n logger.info do\n \"-- got the control interface message, we're READY now\"\n end\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n logger.info do\n \"-- got the login: prompt\"\n end\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\n do_send(\"6\", wait: false, delay: 2.seconds, priority: 96)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 200.milliseconds, priority: 95)\n schedule.in(20.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n else\n if logger.info do\n \"Somehow we got here #{data}\"\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L48"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L64"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L68"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}]},{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","path":"Exterity/AvediaPlayer/R93xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"},{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L39"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"channel_name(name:String)-instance-method","name":"channel_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L75"},"def":{"name":"channel_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(set(:currentChannel_name, name, name: :name)).get\ncurrent_channel_name\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"current_channel-instance-method","name":"current_channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L94"},"def":{"name":"current_channel","visibility":"Public","body":"get(:currentChannel)"}},{"html_id":"current_channel_name-instance-method","name":"current_channel_name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L98"},"def":{"name":"current_channel_name","visibility":"Public","body":"get(:currentChannel_name)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L51"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L55"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L71"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"channel_lookup = {} of String => ChannelDetail\nif channel_details = setting?(Array(ChannelDetail), :channel_details)\n self[:channel_details] = channel_details\n channel_details.each do |lookup|\n channel_lookup[lookup.channel] = lookup\n end\nelse\n self[:channel_details] = nil\nend\n@channel_lookup = channel_lookup\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L59"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L75"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Exterity sent #{data}\"\nend\nif @ready\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Terminal Control Interface/i)\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 2.seconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 2.seconds, priority: 97)\n schedule.in(5.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L47"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L63"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L67"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}],"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R93xx/ChannelDetail","path":"Exterity/AvediaPlayer/R93xx/ChannelDetail.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx::ChannelDetail","name":"ChannelDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L29"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L28"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L27"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]}]}]},{"html_id":"drivers/Extron","path":"Extron.html","kind":"module","full_name":"Extron","name":"Extron","abstract":false,"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Extron/Matrix","path":"Extron/Matrix.html","kind":"class","full_name":"Extron::Matrix","name":"Matrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/matrix.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MUTE_INPUT","name":"MUTE_INPUT","value":"0_u16"}],"included_modules":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute(state:Bool=true,group:Int32=2)-instance-method","name":"audio_mute","doc":"Sets the audio mute *state* on the specified *group*.\n\nNOTE: mute groups may differ from volume groups depending on device\nconfiguration. Default group (2) is program audio.","summary":"

Sets the audio mute state on the specified group.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"args_string":"(state : Bool = true, group : Int32 = 2)","args_html":"(state : Bool = true, group : Int32 = 2)","location":{"filename":"src/extron/matrix.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L212"},"def":{"name":"audio_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"device_state = state ? '1' : '0'\nsend(Command[\"\\eD\", group, '*', device_state, \"GRPM\\r\"], Response::GroupMute) do\n state\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n query_device_info\nend"}},{"html_id":"device_size-instance-method","name":"device_size","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L60"},"def":{"name":"device_size","visibility":"Public","body":"if (__temp_1 = @device_size).nil?\n @device_size = (begin\n empty = MatrixSize.new(0_u16, 0_u16)\n SwitcherInformation.new(empty, empty)\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nif config.role.ssh?\nelse\n @ready = false\n transport.tokenizer = nil\nend\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/extron/matrix.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L82"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"output = index.to_u16\nif output > 0\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n MatrixLayer::Aud\nin MuteLayer::Video\n MatrixLayer::Vid\nin MuteLayer::AudioVideo\n MatrixLayer::All\nend\nif state\n record_mute(output, switch_layer)\n switch_one(MUTE_INPUT, output, switch_layer)\nelse\n video_input = audio_input = MUTE_INPUT\n if switch_layer.all? || switch_layer.vid?\n video_input = (@muted_video.delete(output)) || MUTE_INPUT\n end\n if switch_layer.all? || switch_layer.aud?\n audio_input = (@muted_audio.delete(output)) || MUTE_INPUT\n end\n if audio_input > 0\n switch_one(audio_input, output, MatrixLayer::Aud)\n end\n if video_input > 0\n switch_one(video_input, output, MatrixLayer::Vid)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L29"},"def":{"name":"on_load","visibility":"Public","body":"if config.role.ssh?\n @ready = true\n transport.tokenizer = Tokenizer.new(DELIMITER)\nend\nqueue.delay = 200.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"inputs = (setting?(UInt16, :input_count)) || 8_u16\noutputs = (setting?(UInt16, :output_count)) || 1_u16\nio = MatrixSize.new(inputs, outputs)\n@device_size = SwitcherInformation.new(video: io, audio: io)\n"}},{"html_id":"query_device_info-instance-method","name":"query_device_info","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L65"},"def":{"name":"query_device_info","visibility":"Public","body":"send(Command['I'], Response::SwitcherInformation) do |info|\n video_io = MatrixSize.new(info.video.inputs, info.video.outputs)\n audio_io = MatrixSize.new(info.audio.inputs, info.audio.outputs)\n @device_size = SwitcherInformation.new(video: video_io, audio: audio_io)\n self[:video_matrix] = \"#{info.video.inputs}x#{info.video.outputs}\"\n self[:audio_matrix] = \"#{info.audio.inputs}x#{info.audio.outputs}\"\n info\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","doc":"Response callback for async responses.","summary":"

Response callback for async responses.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/matrix.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L240"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Ready #{@ready}, Received #{String.new(data)}\"\nend\nif !@ready\n payload = String.new(data)\n if payload =~ (/Copyright/i)\n if password = setting?(String, :password)\n send(\"#{password}\\r\", wait: false, priority: 99)\n end\n transport.tokenizer = Tokenizer.new(DELIMITER)\n @ready = true\n schedule.in(1.second) do\n query_device_info\n end\n end\n return\nend\ncase response = Response.parse(data, as: Response::Unsolicited)\nin Tie\n update_io(response)\nin Error, Response::ParseError\n logger.error do\n response\n end\n task.try(&.abort)\n return\nin Time\n query_device_info\nin String\n logger.info do\n response\n end\nin Nil\nend\ntask.try(&.success)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","doc":"Implementing switchable interface","summary":"

Implementing switchable interface

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/matrix.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L118"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"extron_layer = case layer\nin Nil, .all?\n MatrixLayer::All\nin .audio?\n MatrixLayer::Aud\nin .video?\n MatrixLayer::Vid\nin .data?, .data2?\n logger.debug do\n \"layer #{layer} not available on extron matrix\"\n end\n return\nend\nif (map.size == 1) && (map.first_value.size == 1)\n switch_one(map.first_key, map.first_value.first, extron_layer)\nelse\n switch_map(map, extron_layer)\nend\n"}},{"html_id":"switch_layer(input:Input,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_layer","doc":"Connect *input* to all outputs at the specified *layer*.","summary":"

Connect input to all outputs at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L154"},"def":{"name":"switch_layer","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio = {} of UInt16 => UInt16\nend\nif layer.all? || layer.aud?\n @muted_video = {} of UInt16 => UInt16\nend\nsend(Command[input, layer], Response::Switch, name: \"present-#{input}-#{layer}\", &->update_io(Switch))\n"}},{"html_id":"switch_map(map:SignalMap,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_map","doc":"Applies a `SignalMap` as a single operation. All included ties will take\nsimultaneously on the device.","summary":"

Applies a SignalMap as a single operation.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","args_html":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L162"},"def":{"name":"switch_map","args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if map.size == 1\n outp = map.first_value\n if outp.is_a?(Array)\n if outp.size == 1\n return switch_one(map.first_key, outp.first, layer)\n end\n else\n return switch_one(map.first_key, outp, layer)\n end\nend\nties = map.flat_map do |__temp_236|\n input, outputs = __temp_236\n if outputs.is_a?(Enumerable)\n outputs.each.map do |output|\n if layer.all? || layer.aud?\n @muted_audio.delete(output)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(output)\n end\n Tie.new(input, output, layer)\n end\n else\n if layer.all? || layer.aud?\n @muted_audio.delete(outputs)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(outputs)\n end\n Tie.new(input, outputs, layer)\n end\nend\nconflicts = ties - ties.uniq(&.output)\nif conflicts.empty?\nelse\n raise(ArgumentError.new(\"map contains conflicts for output(s) #{conflicts.join(\", \", &.output)}\"))\nend\nsend(Command[\"\\e+Q\", ties.map do |tie|\n [tie.input, '*', tie.output, tie.layer]\nend, '\\r'], Response::Qik) do\n ties.each(&->update_io(Tie))\nend\n"}},{"html_id":"switch_one(input:Input,output:Output,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_one","doc":"Connect a signal *input* to an *output* at the specified *layer*.\n\n`0` may be used as either an input or output to specify a disconnection at\nthe corresponding signal point. For example, to disconnect input 1 from all\noutputs is is currently feeding `switch(1, 0)`.","summary":"

Connect a signal input to an output at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L147"},"def":{"name":"switch_one","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio.delete(output)\nend\nif layer.all? || layer.vid?\n @muted_video.delete(output)\nend\nsend(Command[input, '*', output, layer], Response::Tie, name: \"switch-#{output}-#{layer}\", &->update_io(Tie))\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/extron/matrix.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L134"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}},{"html_id":"volume(level:Float64|Int32,group:Int32=1)-instance-method","name":"volume","doc":"Sets the audio volume *level* (0..100) on the specified mix *group*.","summary":"

Sets the audio volume level (0..100) on the specified mix group.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"args_string":"(level : Float64 | Int32, group : Int32 = 1)","args_html":"(level : Float64 | Int32, group : Int32 = 1)","location":{"filename":"src/extron/matrix.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L199"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\ndevice_level = (level * 10.0).round_away.to_i - 1000\nsend(Command[\"\\eD\", group, '*', device_level, \"GRPM\\r\"], Response::GroupVolume) do\n level\nend\n"}}],"types":[{"html_id":"drivers/Extron/Matrix/Outputs","path":"Extron/Matrix/Outputs.html","kind":"alias","full_name":"Extron::Matrix::Outputs","name":"Outputs","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(UInt16)","aliased_html":"Array(UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}},{"html_id":"drivers/Extron/Matrix/SignalMap","path":"Extron/Matrix/SignalMap.html","kind":"alias","full_name":"Extron::Matrix::SignalMap","name":"SignalMap","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L140"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(UInt16, Array(UInt16) | UInt16)","aliased_html":"Hash(UInt16, Array(UInt16) | UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}}]},{"html_id":"drivers/Extron/SIS","path":"Extron/SIS.html","kind":"module","full_name":"Extron::SIS","name":"SIS","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L9"},{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"SPECIAL_CHARS","name":"SPECIAL_CHARS","value":"\"+-,@=‘[]{}<>`“;:|?\".chars","doc":"Illegal characters for use in property names.","summary":"

Illegal characters for use in property names.

"},{"id":"SSH_PORT","name":"SSH_PORT","value":"22023"},{"id":"TELNET_PORT","name":"TELNET_PORT","value":"23"}],"including_types":[{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"doc":"Implementation, types and utilities for working with the Extron Simple\nInstruction Set (SIS) device control protocol.\n\nThis protocol is used for control of all Extron signal distribution,\nprocessing and general audio-visual products via SSH, telnet and serial\ncontrol.","summary":"

Implementation, types and utilities for working with the Extron Simple Instruction Set (SIS) device control protocol.

","types":[{"html_id":"drivers/Extron/SIS/Command","path":"Extron/SIS/Command.html","kind":"struct","full_name":"Extron::SIS::Command(*T)","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Structure for representing a SIS device command.\n\nCommands are composed from a set of *fields*. The contents and types of these\nare arbitrary, however they must be capable of serialising to an IO.","summary":"

Structure for representing a SIS device command.

","constructors":[{"html_id":"new(*fields:*T)-class-method","name":"new","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"args_string":"(*fields : *T)","args_html":"(*fields : *T)","location":{"filename":"src/extron/sis/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L6"},"def":{"name":"new","args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"splat_index":0,"visibility":"Public","body":"_ = Command(*T).allocate\n_.initialize(*fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_io(io:IO,format=IO::ByteFormat::SystemEndian)-instance-method","name":"to_io","doc":"Writes `self` to the passed *io*.","summary":"

Writes self to the passed io.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"args_string":"(io : IO, format = IO::ByteFormat::SystemEndian)","args_html":"(io : IO, format = IO::ByteFormat::SystemEndian)","location":{"filename":"src/extron/sis/command.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L18"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"visibility":"Public","body":"@fields.each.flatten.each do |field|\n if field.is_a?(Enum)\n io.write_byte(field.value)\n else\n io << field\n end\nend"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Serialises `self` in a format suitable for log messages.","summary":"

Serialises self in a format suitable for log messages.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/extron/sis/command.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L11"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << '‹'\nto_io(io)\nio << '›'\n"}}],"macros":[{"html_id":"[](*fields)-macro","name":"[]","doc":"Syntactical suger for `Command` definition. Provides the ability to express\ncommand fields in the same way as `Byte` objects and other similar\ncollections from the Crystal std lib.","summary":"

Syntactical suger for Command definition.

","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":""}],"args_string":"(*fields)","args_html":"(*fields)","location":{"filename":"src/extron/sis/command.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L31"},"def":{"name":"[]","args":[{"name":"fields","external_name":"fields","restriction":""}],"splat_index":0,"visibility":"Public","body":" Extron::SIS::Command.new(\n{{ *fields }}\n)\n \n"}}]},{"html_id":"drivers/Extron/SIS/Error","path":"Extron/SIS/Error.html","kind":"enum","full_name":"Extron::SIS::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"InvalidInput","name":"InvalidInput","value":"1"},{"id":"InvalidCommand","name":"InvalidCommand","value":"10"},{"id":"InvalidPresent","name":"InvalidPresent","value":"11"},{"id":"InvalidOutput","name":"InvalidOutput","value":"12"},{"id":"InvalidParameter","name":"InvalidParameter","value":"13"},{"id":"InvalidForConfig","name":"InvalidForConfig","value":"14"},{"id":"Timeout","name":"Timeout","value":"17"},{"id":"Busy","name":"Busy","value":"22"},{"id":"PrivilegesViolation","name":"PrivilegesViolation","value":"24"},{"id":"DeviceNotPresent","name":"DeviceNotPresent","value":"25"},{"id":"MaxConnectionsExceeded","name":"MaxConnectionsExceeded","value":"26"},{"id":"InvalidEventNumber","name":"InvalidEventNumber","value":"27"},{"id":"FileNotFound","name":"FileNotFound","value":"28"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Device error numbers","summary":"

Device error numbers

","instance_methods":[{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L30"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"device_not_present?-instance-method","name":"device_not_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L32"},"def":{"name":"device_not_present?","visibility":"Public","body":"self == DeviceNotPresent"}},{"html_id":"file_not_found?-instance-method","name":"file_not_found?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L35"},"def":{"name":"file_not_found?","visibility":"Public","body":"self == FileNotFound"}},{"html_id":"invalid_command?-instance-method","name":"invalid_command?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L24"},"def":{"name":"invalid_command?","visibility":"Public","body":"self == InvalidCommand"}},{"html_id":"invalid_event_number?-instance-method","name":"invalid_event_number?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L34"},"def":{"name":"invalid_event_number?","visibility":"Public","body":"self == InvalidEventNumber"}},{"html_id":"invalid_for_config?-instance-method","name":"invalid_for_config?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L28"},"def":{"name":"invalid_for_config?","visibility":"Public","body":"self == InvalidForConfig"}},{"html_id":"invalid_input?-instance-method","name":"invalid_input?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L23"},"def":{"name":"invalid_input?","visibility":"Public","body":"self == InvalidInput"}},{"html_id":"invalid_output?-instance-method","name":"invalid_output?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L26"},"def":{"name":"invalid_output?","visibility":"Public","body":"self == InvalidOutput"}},{"html_id":"invalid_parameter?-instance-method","name":"invalid_parameter?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L27"},"def":{"name":"invalid_parameter?","visibility":"Public","body":"self == InvalidParameter"}},{"html_id":"invalid_present?-instance-method","name":"invalid_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L25"},"def":{"name":"invalid_present?","visibility":"Public","body":"self == InvalidPresent"}},{"html_id":"max_connections_exceeded?-instance-method","name":"max_connections_exceeded?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L33"},"def":{"name":"max_connections_exceeded?","visibility":"Public","body":"self == MaxConnectionsExceeded"}},{"html_id":"privileges_violation?-instance-method","name":"privileges_violation?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L31"},"def":{"name":"privileges_violation?","visibility":"Public","body":"self == PrivilegesViolation"}},{"html_id":"retryable?-instance-method","name":"retryable?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L37"},"def":{"name":"retryable?","visibility":"Public","body":"timeout? || busy?"}},{"html_id":"timeout?-instance-method","name":"timeout?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L29"},"def":{"name":"timeout?","visibility":"Public","body":"self == Timeout"}}]},{"html_id":"drivers/Extron/SIS/Input","path":"Extron/SIS/Input.html","kind":"alias","full_name":"Extron::SIS::Input","name":"Input","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/MatrixLayer","path":"Extron/SIS/MatrixLayer.html","kind":"enum","full_name":"Extron::SIS::MatrixLayer","name":"MatrixLayer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L47"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"33_u8"},{"id":"Aud","name":"Aud","value":"36_u8"},{"id":"Vid","name":"Vid","value":"37_u8"},{"id":"RGB","name":"RGB","value":"38_u8"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Layers for targetting signal distribution operations.","summary":"

Layers for targetting signal distribution operations.

","instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L48"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"aud?-instance-method","name":"aud?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L49"},"def":{"name":"aud?","visibility":"Public","body":"self == Aud"}},{"html_id":"includes_audio?-instance-method","name":"includes_audio?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L57"},"def":{"name":"includes_audio?","visibility":"Public","body":"All || Aud"}},{"html_id":"includes_video?-instance-method","name":"includes_video?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L53"},"def":{"name":"includes_video?","visibility":"Public","body":"(All || Vid) || RGB"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L51"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"vid?-instance-method","name":"vid?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L50"},"def":{"name":"vid?","visibility":"Public","body":"self == Vid"}}]},{"html_id":"drivers/Extron/SIS/MatrixSize","path":"Extron/SIS/MatrixSize.html","kind":"struct","full_name":"Extron::SIS::MatrixSize","name":"MatrixSize","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a switching layer.","summary":"

IO capacity for a switching layer.

","constructors":[{"html_id":"new(inputs:Input,outputs:Output)-class-method","name":"new","abstract":false,"args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"args_string":"(inputs : Input, outputs : Output)","args_html":"(inputs : Input, outputs : Output)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"new","args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"visibility":"Public","body":"_ = allocate\n_.initialize(inputs, outputs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@inputs.clone, @outputs.clone)"}},{"html_id":"copy_with(inputs_inputs=@inputs,outputs_outputs=@outputs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"args_string":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","args_html":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"copy_with","args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"visibility":"Public","body":"self.class.new(_inputs, _outputs)"}},{"html_id":"inputs:Input-instance-method","name":"inputs","abstract":false,"def":{"name":"inputs","return_type":"Input","visibility":"Public","body":"@inputs"}},{"html_id":"outputs:Output-instance-method","name":"outputs","abstract":false,"def":{"name":"outputs","return_type":"Output","visibility":"Public","body":"@outputs"}}]},{"html_id":"drivers/Extron/SIS/Ok","path":"Extron/SIS/Ok.html","kind":"struct","full_name":"Extron::SIS::Ok","name":"Ok","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Symbolic type for representating a successfull interactions no useful data.","summary":"

Symbolic type for representating a successfull interactions no useful data.

","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"},"def":{"name":"initialize","visibility":"Public","body":""}}]},{"html_id":"drivers/Extron/SIS/Output","path":"Extron/SIS/Output.html","kind":"alias","full_name":"Extron::SIS::Output","name":"Output","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/Response","path":"Extron/SIS/Response.html","kind":"module","full_name":"Extron::SIS::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"locations":[{"filename":"src/extron/sis/response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Clock","name":"Clock","value":"Raw.map do |date|\n Time.parse_utc(date, \"%a, %d %b %Y %T\")\nend","doc":"Part of the copyright banner, but appears on a new line so will tokenize as\nas standalone message.","summary":"

Part of the copyright banner, but appears on a new line so will tokenize as as standalone message.

"},{"id":"Copyright","name":"Copyright","value":"((Parse.string(\"(c) Copyright\")) + Raw).map(&.join)","doc":"Copyright message shown on connect.","summary":"

Copyright message shown on connect.

"},{"id":"DeviceError","name":"DeviceError","value":"(Parse.char('E')) >> Parse.integer.map do |e|\n SIS::Error.new(e.to_i)\nend","doc":"Error codes returned from the device.","summary":"

Error codes returned from the device.

"},{"id":"Empty","name":"Empty","value":"(Parse.string(\"\\r\\n\")) >> (Parse.const(nil))"},{"id":"GroupMute","name":"GroupMute","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), state <= BoolField, Parse.const({state, group})})","doc":"Group audio mute update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group audio mute update / response.

"},{"id":"GroupVolume","name":"GroupVolume","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), (_) <= (Parse.char('-')), level <= (num(Int32)).map do |val|\n val * -1\nend, Parse.const({level, group})})","doc":"Group volume update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group volume update / response.

"},{"id":"MatrixSize","name":"MatrixSize","value":"Parse.do({inputs <= (num(Input)), (_) <= (Parse.char('X')), outputs <= (num(Output)), Parse.const(SIS::MatrixSize.new(inputs, outputs))})"},{"id":"Qik","name":"Qik","value":"(Parse.string(\"Qik\")) >> (Parse.const(Ok.new))","doc":"Quick response, occurs following quick tie, or switching interaction from\nthe device's front panel.","summary":"

Quick response, occurs following quick tie, or switching interaction from the device's front panel.

"},{"id":"Raw","name":"Raw","value":"(((Parse.char ^ Delimiter) * (0..)) << (Delimiter * (0..1))).map(&.join)","doc":"Parse a full command response as a String. Delimiter is optional as it may\nhave already been dropped by an upstream tokenizer.","summary":"

Parse a full command response as a String.

"},{"id":"Switch","name":"Switch","value":"Parse.do({input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Switch.new(input, layer))})","doc":"Broadcast or single output route update.","summary":"

Broadcast or single output route update.

"},{"id":"SwitcherInformation","name":"SwitcherInformation","value":"Parse.do({(_) <= (Parse.char('V')), video <= MatrixSize, (_) <= (Parse.char(' ')), (_) <= (Parse.char('A')), audio <= MatrixSize, Parse.const(SIS::SwitcherInformation.new(video, audio))})"},{"id":"Tie","name":"Tie","value":"Parse.do({output <= ((Parse.string(\"Out\")) >> (num(Output))), (_) <= (Parse.char(' ')), input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Tie.new(input, output, layer))})","doc":"Matrix signal route update.","summary":"

Matrix signal route update.

"},{"id":"Unsolicited","name":"Unsolicited","value":"(((DeviceError | Tie) | Copyright) | Clock) | Empty","doc":"Async messages that can be expected outside of a command -> response flow.","summary":"

Async messages that can be expected outside of a command -> response flow.

"}],"included_modules":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Parsers for responses and asynchronous messages originating from Extron SIS\ndevices.","summary":"

Parsers for responses and asynchronous messages originating from Extron SIS devices.

","class_methods":[{"html_id":"parse(data:String,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : String, as parser : Parser(T)) forall T","args_html":"(data : String, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L11"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"((parser | DeviceError) | \"unhandled device response\").parse(data)"}},{"html_id":"parse(data:Bytes,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : Bytes, as parser : Parser(T)) forall T","args_html":"(data : Bytes, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L16"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"parse(String.new(data), parser)"}}]},{"html_id":"drivers/Extron/SIS/Switch","path":"Extron/SIS/Switch.html","kind":"struct","full_name":"Extron::SIS::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a broadcast signal path, or single output switch.","summary":"

Struct for representing a broadcast signal path, or single output switch.

","constructors":[{"html_id":"new(input:Input,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer)","args_html":"(input : Input, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, layer _layer = @layer)","args_html":"(input _input = @input, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}}]},{"html_id":"drivers/Extron/SIS/SwitcherInformation","path":"Extron/SIS/SwitcherInformation.html","kind":"struct","full_name":"Extron::SIS::SwitcherInformation","name":"SwitcherInformation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a full device.","summary":"

IO capacity for a full device.

","constructors":[{"html_id":"new(video:MatrixSize,audio:MatrixSize)-class-method","name":"new","abstract":false,"args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"args_string":"(video : MatrixSize, audio : MatrixSize)","args_html":"(video : MatrixSize, audio : MatrixSize)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"new","args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"visibility":"Public","body":"_ = allocate\n_.initialize(video, audio)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"audio:MatrixSize-instance-method","name":"audio","abstract":false,"def":{"name":"audio","return_type":"MatrixSize","visibility":"Public","body":"@audio"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@video.clone, @audio.clone)"}},{"html_id":"copy_with(video_video=@video,audio_audio=@audio)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"args_string":"(video _video = @video, audio _audio = @audio)","args_html":"(video _video = @video, audio _audio = @audio)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"copy_with","args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"visibility":"Public","body":"self.class.new(_video, _audio)"}},{"html_id":"video:MatrixSize-instance-method","name":"video","abstract":false,"def":{"name":"video","return_type":"MatrixSize","visibility":"Public","body":"@video"}}]},{"html_id":"drivers/Extron/SIS/Tie","path":"Extron/SIS/Tie.html","kind":"struct","full_name":"Extron::SIS::Tie","name":"Tie","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a matrix signal path.","summary":"

Struct for representing a matrix signal path.

","constructors":[{"html_id":"new(input:Input,output:Output,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer)","args_html":"(input : Input, output : Output, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}},{"html_id":"output:Output-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Output","visibility":"Public","body":"@output"}}]}]},{"html_id":"drivers/Extron/UsbExtenderPlus","path":"Extron/UsbExtenderPlus.html","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus","abstract":false,"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"types":[{"html_id":"drivers/Extron/UsbExtenderPlus/Endpoint","path":"Extron/UsbExtenderPlus/Endpoint.html","kind":"class","full_name":"Extron::UsbExtenderPlus::Endpoint","name":"Endpoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"query_joins"}},{"html_id":"join(mac:String)-instance-method","name":"join","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L91"},"def":{"name":"join","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"mac = (mac.gsub(/\\-|\\:/, \"\")).downcase\nlogger.debug do\n \"joining with #{mac}\"\nend\n(send(\"2f03f4a2020000000302#{mac}\".hexbytes, delay: 600.milliseconds)).get\nquery_joins\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 300.milliseconds\nself[:joined_to] = @joined_to\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"self[:mac_address] = ((setting(String, :mac_address)).gsub(/\\-|\\:/, \"\")).downcase\nself[:ip] = config.ip\nself[:port] = config.port\nself[:location] = setting(String, :location)\nschedule.clear\nschedule.every(2.minutes) do\n logger.debug do\n \"-- polling extron USB device\"\n end\n if query_joins.success?\n if self[:connected]\n else\n set_connected_state(true)\n end\n end\nend\n"}},{"html_id":"query_joins-instance-method","name":"query_joins","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L50"},"def":{"name":"query_joins","visibility":"Public","body":"task = (send(\"2f03f4a2000000000300\".hexbytes)).get\nif !task.state.success?\n if self[:connected]\n set_connected_state(false)\n end\n logger.warn do\n \"Extron USB Device Probably Offline: #{config.ip}\\nJoin query failed.\"\n end\nend\ntask.state\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"resp = data.hexstring\nlogger.debug do\n \"Extron USB sent: #{resp}\"\nend\ncheck = resp[0..21]\nif (check == \"2f03f4a200000000030100\") || (check == \"2f03f4a200000000030101\")\n self[:is_host] = check[-1] == '0'\n macs = (resp[22..-1].scan(/.{12}/)).map(&.to_s)\n logger.debug do\n \"Extron USB joined with: #{macs}\"\n end\n self[:joined_to] = @joined_to = macs\nelse\n case resp\n when \"2f03f4a2010000000003\"\n logger.debug do\n \"Extron USB responded to UDP ping\"\n end\n when \"2f03f4a2020000000003\"\n logger.debug do\n \"join/unjoin success\"\n end\n when \"2f03f4a2020000000308\"\n logger.debug do\n \"join/unjoin might have failed..\"\n end\n else\n logger.info do\n \"Unknown response from extron: #{resp}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"unjoin(from:String|Int32)-instance-method","name":"unjoin","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"args_string":"(from : String | Int32)","args_html":"(from : String | Int32)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L74"},"def":{"name":"unjoin","args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"visibility":"Public","body":"mac = case from\nin Int32\n @joined_to[from]\nin String\n formatted = (from.gsub(/\\-|\\:/, \"\")).downcase\n if @joined_to.includes?(formatted)\n formatted\n end\nend\nif mac\n (send_unjoin(mac)).get\n query_joins\nelse\n logger.debug do\n \"not currently joined to #{from}\"\n end\nend\n"}},{"html_id":"unjoin_all-instance-method","name":"unjoin_all","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L59"},"def":{"name":"unjoin_all","visibility":"Public","body":"unjoins = [] of PlaceOS::Driver::Task\nif @joined_to.empty?\n logger.debug do\n \"nothing to unjoin from\"\n end\nend\n@joined_to.each do |mac|\n unjoins << (send_unjoin(mac))\nend\nunjoins.each(&.get)\nquery_joins\n"}}]},{"html_id":"drivers/Extron/UsbExtenderPlus/VirtualSwitcher","path":"Extron/UsbExtenderPlus/VirtualSwitcher.html","kind":"class","full_name":"Extron::UsbExtenderPlus::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_macs:Hash(String,Int32)-instance-method","name":"device_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L26"},"def":{"name":"device_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @device_macs).nil?\n @device_macs = (begin\n hash = {} of String => Int32\n devices.each_with_index do |device, index|\n hash[device.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"host_macs:Hash(String,Int32)-instance-method","name":"host_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L18"},"def":{"name":"host_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @host_macs).nil?\n @host_macs = (begin\n hash = {} of String => Int32\n hosts.each_with_index do |host, index|\n hash[host.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","doc":"lazily obtain host and device mac addresses","summary":"

lazily obtain host and device mac addresses

","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@host_macs = nil\n@device_macs = nil\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L54"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.data?) || layer.data2?\nelse\n return\nend\nmap.each do |host_idx, device_idxs|\n if host_idx == 0\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to 0\"\n end\n next\n end\n perform_unjoin(device)\n end\n next\n end\n host = hosts[host_idx - 1]?\n if host\n else\n logger.warn do\n \"host not found in switch USB_Host_#{host_idx} => #{device_idxs}\"\n end\n next\n end\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to USB_Host_#{host_idx}\"\n end\n next\n end\n perform_join(host, device)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"0 == unjoin, input is the host index","summary":"

0 == unjoin, input is the host index

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input == 0\n unjoin_all\nelse\n host = hosts[input - 1]\n host_mac = host.status(String, :mac_address)\n unjoin_all_devices\n unjoin_all_hosts\n devices.each do |device|\n perform_join(host, device)\n end\nend"}}]}]}]},{"html_id":"drivers/Floorsense","path":"Floorsense.html","kind":"module","full_name":"Floorsense","name":"Floorsense","abstract":false,"locations":[{"filename":"src/floorsense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Floorsense Data Models","summary":"

Floorsense Data Models

","types":[{"html_id":"drivers/Floorsense/AuthInfo","path":"Floorsense/AuthInfo.html","kind":"class","full_name":"Floorsense::AuthInfo","name":"AuthInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"sessionid:String-instance-method","name":"sessionid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L73"},"def":{"name":"sessionid","return_type":"String","visibility":"Public","body":"@sessionid"}},{"html_id":"sessionid=(sessionid:String)-instance-method","name":"sessionid=","abstract":false,"args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"args_string":"(sessionid : String)","args_html":"(sessionid : String)","location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L73"},"def":{"name":"sessionid=","args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"visibility":"Public","body":"@sessionid = sessionid"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L72"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L72"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/Floorsense/Booking","path":"Floorsense/Booking.html","kind":"class","full_name":"Floorsense::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L286"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L286"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L312"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L312"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L298"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L295"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String|Nil-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String|Nil)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"args_string":"(booked_by_email : String | Nil)","args_html":"(booked_by_email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_name:String|Nil-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String|Nil)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"args_string":"(booked_by_name : String | Nil)","args_html":"(booked_by_name : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L291"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L291"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L290"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L290"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L289"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L289"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L310"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L310"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"checked_in?-instance-method","name":"checked_in?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L345"},"def":{"name":"checked_in?","visibility":"Public","body":"!checked_in.nil? && checked_in.not_nil!"}},{"html_id":"checked_in_at:Int64|Nil-instance-method","name":"checked_in_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_in_at"}},{"html_id":"checked_in_at=(checked_in_at:Int64|Nil)-instance-method","name":"checked_in_at=","abstract":false,"args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_in_at : Int64 | Nil)","args_html":"(checked_in_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at=","args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_in_at = checked_in_at"}},{"html_id":"checked_out?-instance-method","name":"checked_out?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L341"},"def":{"name":"checked_out?","visibility":"Public","body":"!checked_out_at.nil?"}},{"html_id":"checked_out_at:Int64|Nil-instance-method","name":"checked_out_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_out_at"}},{"html_id":"checked_out_at=(checked_out_at:Int64|Nil)-instance-method","name":"checked_out_at=","abstract":false,"args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_out_at : Int64 | Nil)","args_html":"(checked_out_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at=","args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_out_at = checked_out_at"}},{"html_id":"deleted:Bool|Nil-instance-method","name":"deleted","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L305"},"def":{"name":"deleted","return_type":"Bool | ::Nil","visibility":"Public","body":"@deleted"}},{"html_id":"deleted=(deleted:Bool|Nil)-instance-method","name":"deleted=","abstract":false,"args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"args_string":"(deleted : Bool | Nil)","args_html":"(deleted : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L305"},"def":{"name":"deleted=","args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@deleted = deleted"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L349"},"def":{"name":"deleted?","visibility":"Public","body":"action == \"cancelled\""}},{"html_id":"deleted_at:Int64|Nil-instance-method","name":"deleted_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@deleted_at"}},{"html_id":"deleted_at=(deleted_at:Int64|Nil)-instance-method","name":"deleted_at=","abstract":false,"args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"args_string":"(deleted_at : Int64 | Nil)","args_html":"(deleted_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at=","args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@deleted_at = deleted_at"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L321"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L321"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"floor_id:String|Nil-instance-method","name":"floor_id","abstract":false,"def":{"name":"floor_id","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @floor_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::Booking#floor_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_id=(floor_id:String|Nil)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"args_string":"(floor_id : String | Nil)","args_html":"(floor_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L324"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_id?:String|Nil|Nil-instance-method","name":"floor_id?","abstract":false,"def":{"name":"floor_id?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floorsense_booking_id:String|Nil-instance-method","name":"floorsense_booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L331"},"def":{"name":"floorsense_booking_id","return_type":"String | ::Nil","visibility":"Public","body":"ext_data = extension_data\nif ext_data\nelse\n return\nend\next_data[\"floorsense_booking_id\"]?.try(&.as_s)\n"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L288"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L288"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L326"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"is_deleted?-instance-method","name":"is_deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L353"},"def":{"name":"is_deleted?","visibility":"Public","body":"!!deleted && !deleted_at.nil?"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L314"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L314"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L313"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L313"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L311"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L311"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L337"},"def":{"name":"released?","visibility":"Public","body":"checked_out? || booking_end <= Time.local.to_unix"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L296"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L296"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L292"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L292"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L303"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L303"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L302"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L302"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L304"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L304"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L308"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L308"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Floorsense/BookingsSync","path":"Floorsense/BookingsSync.html","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_floorsense_log:Nil-instance-method","name":"check_floorsense_log","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L198"},"def":{"name":"check_floorsense_log","return_type":"Nil","visibility":"Public","body":"last_event_id = @last_event_id\nif last_event_id.nil?\n recent = (floorsense.event_log({49, 50, 53})).get.as_a\n if !recent.empty?\n last = recent.last\n @last_event_id = last[\"eventid\"].as_i64\n @last_event_at = last[\"eventtime\"].as_i64\n end\n return\nend\nevents = Array(LogEntry).from_json(floorsense.event_log(codes: {49, 50, 53}, after: @last_event_at, limit: 500).get.to_json)\nevents.reject! do |event|\n event.eventid <= last_event_id\nend\nif events.empty?\n return\nend\nlogger.debug do\n \"parsing floorsense event log, #{events.size} new events\"\nend\n@last_event_id = events.last.eventid\nevents.each do |event|\n begin\n booking = BookingStatus.from_json((floorsense.get_booking(event.bkid)).get.to_json)\n floor_details = @floor_mappings[booking.planid.to_s]?\n if floor_details\n else\n next\n end\n booking_key = booking.key\n if booking_key\n else\n next\n end\n case event.code\n when 49\n if booking.booking_type != \"adhoc\"\n next\n end\n user_email = booking.user.not_nil!.email.try(&.downcase)\n if user_email.nil?\n logger.warn do\n \"no user email defined for floorsense user #{booking.user.not_nil!.name}\"\n end\n next\n end\n user = (staff_api.user(user_email)).get\n user_id = user[\"id\"]\n user_name = user[\"name\"]\n logger.debug do\n \"new floorsense booking found #{booking}\"\n end\n staff_api.create_booking(booking_start: booking.start, booking_end: booking.finish, time_zone: @time_zone.to_s, booking_type: @booking_type, asset_id: to_place_asset_id(booking_key), user_id: user_id, user_email: user_email, user_name: user_name, zones: [floor_details[:building_id]?, floor_details[:level_id]].compact, checked_in: true, extension_data: {floorsense_id: event.bkid}).get\n when 50\n if booking.released >= booking.finish || booking.released <= booking.start\n next\n end\n if place_booking = get_place_booking(booking, floor_details)\n staff_api.update_booking(booking_id: place_booking.id, booking_end: booking.released).get\n else\n logger.warn do\n \"no booking found for released booking #{booking.booking_id}\"\n end\n end\n when 51\n when 52\n when 53\n begin\n if desc = booking.desc\n place_booking = Booking.from_json((staff_api.get_booking(desc.to_i64)).get.to_json)\n staff_api.booking_check_in(place_booking.id, booking.confirmed)\n end\n rescue ArgumentError\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"while processing #{event.eventid}\\n#{event.inspect}\"\n end\n end\nend\n"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":599,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L599"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(placeos_user_id:String):String-instance-method","name":"get_floorsense_user","doc":"===================================\nSync Users\n===================================","summary":"

=================================== Sync Users ===================================

","abstract":false,"args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"args_string":"(placeos_user_id : String) : String","args_html":"(placeos_user_id : String) : String","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":550,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L550"},"def":{"name":"get_floorsense_user","args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"users = floorsense.user_list(description: placeos_user_id).get.as_a\nuser_id = users.first?.try() do |__arg5|\n __arg5[\"uid\"].as_s\nend\ncard_number = nil\nbegin\n place_user = (staff_api.user(placeos_user_id)).get\n name = place_user[\"name\"].as_s\n email = place_user[\"email\"].as_s\n card_number = place_user[\"card_number\"]?.try(&.as_s)\n user_id || (user_id = (floorsense.create_user(name, email, placeos_user_id)).get[\"uid\"].as_s)\nrescue error\n if user_id\n return user_id\n else\n raise(error)\n end\nend\nif (user_id && card_number) && !card_number.empty?\n ensure_card_synced(card_number, user_id)\nend\nuser_id.not_nil!\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L51"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking_changed(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L59"},"def":{"name":"on_update","visibility":"Public","body":"@key_prefix = (setting?(String, :key_prefix)) || \"\"\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@strip_leading_zero = (setting?(Bool, :strip_leading_zero)) || false\n@zero_padding_size = (setting?(Int32, :zero_padding_size)) || 7\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.in(@poll_rate / 2) do\n schedule.every(@poll_rate * 10) do\n sync_bookings\n end\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L616"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L345"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L349"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"@sync_lock.synchronize do\n do_sync_floor(zone)\nend"}},{"html_id":"to_floor_key(asset_id:String)-instance-method","name":"to_floor_key","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L98"},"def":{"name":"to_floor_key","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"if @key_prefix.presence\n asset_id = asset_id.lstrip(@key_prefix)\nend\nif @strip_leading_zero\n asset_id = asset_id.rjust(@zero_padding_size, '0')\nend\nasset_id\n"}},{"html_id":"to_place_asset_id(key:String)-instance-method","name":"to_place_asset_id","doc":"===================================\nDesk ID manipulation\n===================================","summary":"

=================================== Desk ID manipulation ===================================

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L93"},"def":{"name":"to_place_asset_id","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"if @strip_leading_zero\n key = key.lstrip('0')\nend\n\"#{@key_prefix}#{key}\"\n"}}],"types":[{"html_id":"drivers/Floorsense/BookingsSync/Booking","path":"Floorsense/BookingsSync/Booking.html","kind":"class","full_name":"Floorsense::BookingsSync::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense/BookingsSync","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L631"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L646"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":643,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L643"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":661,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L661"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]}]},{"html_id":"drivers/Floorsense/BookingStatus","path":"Floorsense/BookingStatus.html","kind":"class","full_name":"Floorsense::BookingStatus","name":"BookingStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L243"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L244"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L271"},"def":{"name":"active","return_type":"Bool","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool"}],"args_string":"(active : Bool)","args_html":"(active : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L271"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool"}],"visibility":"Public","body":"@active = active"}},{"html_id":"booking_id:String-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L253"},"def":{"name":"booking_id","return_type":"String","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:String)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L253"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L250"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L250"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L264"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L264"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confexpiry:Int64|Nil-instance-method","name":"confexpiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@confexpiry"}},{"html_id":"confexpiry=(confexpiry:Int64|Nil)-instance-method","name":"confexpiry=","abstract":false,"args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"args_string":"(confexpiry : Int64 | Nil)","args_html":"(confexpiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry=","args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@confexpiry = confexpiry"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L272"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L272"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"confmethod:Int32|Nil-instance-method","name":"confmethod","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L261"},"def":{"name":"confmethod","return_type":"Int32 | ::Nil","visibility":"Public","body":"@confmethod"}},{"html_id":"confmethod=(confmethod:Int32|Nil)-instance-method","name":"confmethod=","abstract":false,"args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"args_string":"(confmethod : Int32 | Nil)","args_html":"(confmethod : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L261"},"def":{"name":"confmethod=","args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@confmethod = confmethod"}},{"html_id":"conftime:Int64|Nil-instance-method","name":"conftime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L260"},"def":{"name":"conftime","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conftime"}},{"html_id":"conftime=(conftime:Int64|Nil)-instance-method","name":"conftime=","abstract":false,"args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"args_string":"(conftime : Int64 | Nil)","args_html":"(conftime : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L260"},"def":{"name":"conftime=","args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conftime = conftime"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L256"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L256"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L255"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L255"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L258"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L258"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L266"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L266"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L246"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L246"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @place_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::BookingStatus#place_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L279"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"place_id?:String|Nil-instance-method","name":"place_id?","abstract":false,"def":{"name":"place_id?","return_type":"String | ::Nil","visibility":"Public","body":"@place_id"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L265"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L265"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L273"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L273"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L270"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L270"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L269"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L269"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L257"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L257"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L247"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L247"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L276"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L276"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/Floorsense/ControllerInfo","path":"Floorsense/ControllerInfo.html","kind":"class","full_name":"Floorsense::ControllerInfo","name":"ControllerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L409"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L409"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"desks:Bool-instance-method","name":"desks","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L413"},"def":{"name":"desks","return_type":"Bool","visibility":"Public","body":"@desks"}},{"html_id":"desks=(desks:Bool)-instance-method","name":"desks=","abstract":false,"args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"args_string":"(desks : Bool)","args_html":"(desks : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L413"},"def":{"name":"desks=","args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"visibility":"Public","body":"@desks = desks"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L415"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L415"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location1:String-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L417"},"def":{"name":"location1","return_type":"String","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String"}],"args_string":"(location1 : String)","args_html":"(location1 : String)","location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L417"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L418"},"def":{"name":"location2","return_type":"String","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String"}],"args_string":"(location2 : String)","args_html":"(location2 : String)","location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L418"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L419"},"def":{"name":"location3","return_type":"String","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String"}],"args_string":"(location3 : String)","args_html":"(location3 : String)","location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L419"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"location4:String-instance-method","name":"location4","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L420"},"def":{"name":"location4","return_type":"String","visibility":"Public","body":"@location4"}},{"html_id":"location4=(location4:String)-instance-method","name":"location4=","abstract":false,"args":[{"name":"location4","external_name":"location4","restriction":"String"}],"args_string":"(location4 : String)","args_html":"(location4 : String)","location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L420"},"def":{"name":"location4=","args":[{"name":"location4","external_name":"location4","restriction":"String"}],"visibility":"Public","body":"@location4 = location4"}},{"html_id":"locations-instance-method","name":"locations","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L424"},"def":{"name":"locations","visibility":"Public","body":"{location1, location2, location3, location4}"}},{"html_id":"lockers:Bool-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L412"},"def":{"name":"lockers","return_type":"Bool","visibility":"Public","body":"@lockers"}},{"html_id":"lockers=(lockers:Bool)-instance-method","name":"lockers=","abstract":false,"args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"args_string":"(lockers : Bool)","args_html":"(lockers : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L412"},"def":{"name":"lockers=","args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"visibility":"Public","body":"@lockers = lockers"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L422"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"mode=(mode:String)-instance-method","name":"mode=","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L422"},"def":{"name":"mode=","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"@mode = mode"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L416"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L416"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"online:Bool-instance-method","name":"online","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L411"},"def":{"name":"online","return_type":"Bool","visibility":"Public","body":"@online"}},{"html_id":"online=(online:Bool)-instance-method","name":"online=","abstract":false,"args":[{"name":"online","external_name":"online","restriction":"Bool"}],"args_string":"(online : Bool)","args_html":"(online : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L411"},"def":{"name":"online=","args":[{"name":"online","external_name":"online","restriction":"Bool"}],"visibility":"Public","body":"@online = online"}}]},{"html_id":"drivers/Floorsense/CustomBookingsSync","path":"Floorsense/CustomBookingsSync.html","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","name":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"floorsense\""},{"id":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","name":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"smartalock\""}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L689"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"if foor_id = (locations.eui64_to_desk_id(id.downcase)).get.raw\n floor_desk_id = foor_id.as(String)\n place_id = floor_desk_id\n level_id = nil\n building = nil\n @desk_mapping_cache.each do |level, lookup|\n if meta = lookup[floor_desk_id]?\n level_id = level\n place_id = meta.place_id || floor_desk_id\n building = meta.building\n break\n end\n end\n if level_id\n {level: level_id, desk_id: place_id, building_id: building}\n end\nelse\n logger.warn do\n \"No desk found for #{id}\"\n end\nend"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L249"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n current.concat(bookings)\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L651"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nif @user_lookup == \"email\"\n placeos_staff_id = placeos_staff_id.downcase\n floorsense_users = floorsense.user_list(email: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg7|\n __arg7[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nelse\n floorsense_users = floorsense.user_list(description: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg8|\n __arg8[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L78"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n if (@zone_mappings.keys & (Booking.from_json(payload)).zones).empty?\n else\n booking_changed(Booking.from_json(payload))\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_lookup_key = (setting?(String, :floorsense_lookup_key)).presence || \"floorsensedeskid\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n@meta_ext_static = (setting?(Hash(String, String), :meta_ext_static)) || ({} of String => String)\ntime_zone = (setting?(String, :time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.every(@poll_rate * 10) do\n sync_bookings\nend\nschedule.in(1.seconds) do\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L266"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}, include_checked_out: true).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,building_id:String|Nil)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, building_id : String | Nil)","args_html":"(zone_id : String, building_id : String | Nil)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":927,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L927"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"desk_lookup = {} of String => DeskMeta\nbegin\n metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\n lookup_key = @floorsense_lookup_key\n metadata.each do |desk|\n desk = desk.as_h\n place_id = desk[\"id\"]?.try() do |__arg11|\n __arg11.as_s.presence\n end\n if place_id\n else\n next\n end\n floor_id = desk[lookup_key]?.try() do |__arg12|\n __arg12.as_s.presence\n end\n if floor_id\n else\n next\n end\n ext_data = {\"floorsense_id\" => JSON::Any.new(floor_id)}\n title = desk[\"name\"]?.try(&.as_s) || place_id\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk[meta_key]?\n ext_data[ext_key] = value\n end\n end\n @meta_ext_static.each do |key, value|\n ext_data[key] = JSON::Any.new(value)\n end\n ids = DeskMeta.new(place_id, floor_id, building_id, title, ext_data)\n desk_lookup[place_id] = ids\n desk_lookup[floor_id] = ids\n end\n desk_lookup\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain desk metadata for #{zone_id}\"\n end\n desk_lookup\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L193"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_busy:Hash(String,Bool)-instance-method","name":"sync_busy","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L197"},"def":{"name":"sync_busy","return_type":"Hash(String, Bool)","visibility":"Public","body":"@sync_busy"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L201"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"__temp_247 = zone\n@sync_queue[__temp_247] = @sync_queue[__temp_247] + 1\nif !@sync_busy[zone]\n spawn do\n queue_sync_floor(zone)\n end\n Fiber.yield\n :syncing\nelse\n :queued\nend\n"}},{"html_id":"sync_queue:Hash(String,Int32)-instance-method","name":"sync_queue","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L198"},"def":{"name":"sync_queue","return_type":"Hash(String, Int32)","visibility":"Public","body":"@sync_queue"}},{"html_id":"sync_times:Hash(String,Array(Float64))-instance-method","name":"sync_times","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L199"},"def":{"name":"sync_times","return_type":"Hash(String, Array(Float64))","visibility":"Public","body":"@sync_times"}}],"types":[{"html_id":"drivers/Floorsense/CustomBookingsSync/PlaceUser","path":"Floorsense/CustomBookingsSync/PlaceUser.html","kind":"alias","full_name":"Floorsense::CustomBookingsSync::PlaceUser","name":"PlaceUser","abstract":false,"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::User","aliased_html":"PlaceOS::Client::API::Models::User","const":false,"namespace":{"html_id":"drivers/Floorsense/CustomBookingsSync","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync"}}]},{"html_id":"drivers/Floorsense/DeskInfo","path":"Floorsense/DeskInfo.html","kind":"class","full_name":"Floorsense::DeskInfo","name":"DeskInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L176"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::DeskInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L189"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"desk_type:String|Nil-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L185"},"def":{"name":"desk_type","return_type":"String | ::Nil","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String|Nil)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"args_string":"(desk_type : String | Nil)","args_html":"(desk_type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L185"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskheight:Int32|Nil-instance-method","name":"deskheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L182"},"def":{"name":"deskheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@deskheight"}},{"html_id":"deskheight=(deskheight:Int32|Nil)-instance-method","name":"deskheight=","abstract":false,"args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"args_string":"(deskheight : Int32 | Nil)","args_html":"(deskheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L182"},"def":{"name":"deskheight=","args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@deskheight = deskheight"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L179"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L179"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L180"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L180"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L181"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L181"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L186"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L186"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}}]},{"html_id":"drivers/Floorsense/DeskMeta","path":"Floorsense/DeskMeta.html","kind":"struct","full_name":"Floorsense::DeskMeta","name":"DeskMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"doc":"Websocket payloads","summary":"

Websocket payloads

","constructors":[{"html_id":"new(place_id:String,floor_id:String,building:Nil|String,title:String,ext_data:Hash(String,JSON::Any))-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","args_html":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","location":{"filename":"src/floorsense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L9"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, floor_id, building, title, ext_data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L14"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"building=(building:String|Nil)-instance-method","name":"building=","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"args_string":"(building : String | Nil)","args_html":"(building : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L14"},"def":{"name":"building=","args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building = building"}},{"html_id":"ext_data:Hash(String,JSON::Any)-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L15"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@ext_data"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L13"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L13"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L12"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L12"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Floorsense/DeskStatus","path":"Floorsense/DeskStatus.html","kind":"class","full_name":"Floorsense::DeskStatus","name":"DeskStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L141"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L142"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L167"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L167"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"cached:Bool-instance-method","name":"cached","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L145"},"def":{"name":"cached","return_type":"Bool","visibility":"Public","body":"@cached"}},{"html_id":"cached=(cached:Bool)-instance-method","name":"cached=","abstract":false,"args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"args_string":"(cached : Bool)","args_html":"(cached : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L145"},"def":{"name":"cached=","args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"visibility":"Public","body":"@cached = cached"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L144"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L144"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L170"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L170"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L155"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Time)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Time"}],"args_string":"(created : Time)","args_html":"(created : Time)","location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L155"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Time"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desk_type:String-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L162"},"def":{"name":"desk_type","return_type":"String","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"args_string":"(desk_type : String)","args_html":"(desk_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L162"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskid:Int32-instance-method","name":"deskid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L149"},"def":{"name":"deskid","return_type":"Int32","visibility":"Public","body":"@deskid"}},{"html_id":"deskid=(deskid:Int32)-instance-method","name":"deskid=","abstract":false,"args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"args_string":"(deskid : Int32)","args_html":"(deskid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L149"},"def":{"name":"deskid=","args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"visibility":"Public","body":"@deskid = deskid"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L159"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L159"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"features:Int32-instance-method","name":"features","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L164"},"def":{"name":"features","return_type":"Int32","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Int32)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Int32"}],"args_string":"(features : Int32)","args_html":"(features : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L164"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Int32"}],"visibility":"Public","body":"@features = features"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L163"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L163"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"freq:String-instance-method","name":"freq","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L165"},"def":{"name":"freq","return_type":"String","visibility":"Public","body":"@freq"}},{"html_id":"freq=(freq:String)-instance-method","name":"freq=","abstract":false,"args":[{"name":"freq","external_name":"freq","restriction":"String"}],"args_string":"(freq : String)","args_html":"(freq : String)","location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L165"},"def":{"name":"freq=","args":[{"name":"freq","external_name":"freq","restriction":"String"}],"visibility":"Public","body":"@freq = freq"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L166"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L166"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:String-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L152"},"def":{"name":"hardware","return_type":"String","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:String)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"args_string":"(hardware : String)","args_html":"(hardware : String)","location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L152"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"hwfeat:Int32-instance-method","name":"hwfeat","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat","return_type":"Int32","visibility":"Public","body":"@hwfeat"}},{"html_id":"hwfeat=(hwfeat:Int32)-instance-method","name":"hwfeat=","abstract":false,"args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"args_string":"(hwfeat : Int32)","args_html":"(hwfeat : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat=","args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"visibility":"Public","body":"@hwfeat = hwfeat"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L156"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L156"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"netid:Int32-instance-method","name":"netid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L147"},"def":{"name":"netid","return_type":"Int32","visibility":"Public","body":"@netid"}},{"html_id":"netid=(netid:Int32)-instance-method","name":"netid=","abstract":false,"args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"args_string":"(netid : Int32)","args_html":"(netid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L147"},"def":{"name":"netid=","args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"visibility":"Public","body":"@netid = netid"}},{"html_id":"occupied:Bool-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L157"},"def":{"name":"occupied","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L157"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime","return_type":"Int32","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"args_string":"(occupiedtime : Int32)","args_html":"(occupiedtime : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L168"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L168"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L171"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L171"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reservable:Bool-instance-method","name":"reservable","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L146"},"def":{"name":"reservable","return_type":"Bool","visibility":"Public","body":"@reservable"}},{"html_id":"reservable=(reservable:Bool)-instance-method","name":"reservable=","abstract":false,"args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"args_string":"(reservable : Bool)","args_html":"(reservable : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L146"},"def":{"name":"reservable=","args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"visibility":"Public","body":"@reservable = reservable"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L169"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L169"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L148"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L148"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L158"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L158"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket","path":"Floorsense/DesksWebsocket.html","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate_booking(booking_id:String|Int64,controller_id:String|Int32|Int64|Nil=nil,key:String|Nil=nil,eui64:String|Nil=nil,userpresent:Bool|Nil=nil)-instance-method","name":"activate_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":648,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L648"},"def":{"name":"activate_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if key.nil?\n else\n form.add(\"key\", key.to_s)\n end\n if userpresent.nil?\n else\n form.add(\"userpresent\", userpresent.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"all_lockers-instance-method","name":"all_lockers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L295"},"def":{"name":"all_lockers","visibility":"Public","body":"if @locker_controllers.empty?\nelse\n return @locker_controllers.values\nend\nsync_locker_list.values\n"}},{"html_id":"at_location(controller_id:String|Int32|Int64,desk_key:String)-instance-method","name":"at_location","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(controller_id : String | Int32 | Int64, desk_key : String)","args_html":"(controller_id : String | Int32 | Int64, desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L964"},"def":{"name":"at_location","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/user-locate?cid=#{controller_id}&desk_key=#{desk_key}\", headers: default_headers)\nlogger.debug do\n \"at_location response: #{response.body}\"\nend\nusers = parse(response, Array(User))\nusers.first?\n"}},{"html_id":"bank_list(controller_id:String|Int32|Int64)-instance-method","name":"bank_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L251"},"def":{"name":"bank_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\nend\nresponse = get(\"/restapi/bank-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"bookings(plan_id:String,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"args_string":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","args_html":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L615"},"def":{"name":"bookings","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 15.minutes.from_now.to_unix)\nuri = \"/restapi/floorplan-booking?planid=#{plan_id}&start=#{period_start}&finish=#{period_end}\"\nresponse = get(uri, headers: default_headers)\nbookings_map = parse(response, Hash(String, Array(BookingStatus)))\nbookings_map.each do |_id, bookings|\n bookings.each do |booking|\n booking.user = get_user(booking.uid)\n end\nend\nbookings_map\n"}},{"html_id":"check_subscriptions-instance-method","name":"check_subscriptions","doc":"used to poll the websocket to check for liveliness","summary":"

used to poll the websocket to check for liveliness

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L95"},"def":{"name":"check_subscriptions","visibility":"Public","body":"ws_get(\"/restapi/subscribe\")"}},{"html_id":"clear_user_cache!-instance-method","name":"clear_user_cache!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":972,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L972"},"def":{"name":"clear_user_cache!","visibility":"Public","body":"@user_cache.clear"}},{"html_id":"confirm_booking(booking_id:String|Int64)-instance-method","name":"confirm_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L636"},"def":{"name":"confirm_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-confirm\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"method\", \"1\")\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"ws_post(\"/auth\", {user: \"kiosk\"}.to_json, priority: 99, name: \"auth\")"}},{"html_id":"controller_list(locker:Bool|Nil=nil,desks:Bool|Nil=nil)-instance-method","name":"controller_list","abstract":false,"args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"args_string":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","args_html":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L236"},"def":{"name":"controller_list","args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if locker\n form.add(\"locks\", \"true\")\n end\n if desks\n form.add(\"desks\", \"true\")\n end\nend\nresponse = get(\"/restapi/slave-list?#{query}\", headers: default_headers)\ncontrollers = parse(response, Array(ControllerInfo))\nmappings = {} of Int32 => ControllerInfo\ncontrollers.each do |ctrl|\n mappings[ctrl.controller_id] = ctrl\nend\nif locker.nil? && desks.nil?\n self[:controllers] = mappings\nend\n@controllers = mappings\n"}},{"html_id":"create_booking(user_id:String|Int64,plan_id:String|Int32,key:String,description:String|Nil=nil,starting:Int64|Nil=nil,ending:Int64|Nil=nil,time_zone:String|Nil=nil,booking_type:String=\"advance\")-instance-method","name":"create_booking","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"args_string":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = \"advance\")","args_html":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = "advance")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":688,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L688"},"def":{"name":"create_booking","args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"desks_on_plan = desks(plan_id)\ndesk = desks_on_plan.find() do |__arg5|\n __arg5.key == key\nend\nif desk\nelse\n raise(\"could not find desk #{key} on plan #{plan_id}\")\nend\nnow = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nstarting || (starting = now.at_beginning_of_day.to_unix)\nending || (ending = now.at_end_of_day.to_unix)\nresponse = post(\"/restapi/booking-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id.to_s)\n form.add(\"cid\", desk.cid.to_s)\n form.add(\"key\", key)\n form.add(\"bktype\", booking_type)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n form.add(\"start\", starting.to_s)\n form.add(\"finish\", ending.to_s)\n form.add(\"confexpiry\", ending.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"create_rfid(user_id:String,card_number:String,description:String|Nil=nil)-instance-method","name":"create_rfid","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(user_id : String, card_number : String, description : String | Nil = nil)","args_html":"(user_id : String, card_number : String, description : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":886,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L886"},"def":{"name":"create_rfid","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id)\n form.add(\"csn\", card_number)\n if description\n form.add(\"desc\", description.not_nil!)\n end\nend)\nparse(response, User) do |resp|\n resp || (JSON::Any.new(true))\nend\n"}},{"html_id":"create_user(name:String,email:String,description:String|Nil=nil,extid:String|Nil=nil,pin:String|Nil=nil,usertype:String=\"user\")-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"args_string":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = \"user\")","args_html":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = "user")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":860,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L860"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/user-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"name\", name)\n form.add(\"email\", email)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if pin\n form.add(\"pin\", pin.not_nil!)\n end\n if extid\n form.add(\"extid\", extid.not_nil!)\n end\n form.add(\"usertype\", \"user\")\nend)\nuser = parse(response, User)\n@user_cache[user.uid] = user\nuser\n"}},{"html_id":"default_headers-instance-method","name":"default_headers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L198"},"def":{"name":"default_headers","visibility":"Public","body":"{\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"delete_rfid(card_number:String)-instance-method","name":"delete_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":904,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L904"},"def":{"name":"delete_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-delete\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"csn\", card_number)\nend)\ncheck_success(response)\n"}},{"html_id":"desk_control(desk_key:String,led_state:LedState|Nil=nil,led_colour:LedColour|Nil=nil,desk_power:DeskPower|Nil=nil,desk_height:DeskHeight|Int32|Nil=nil,qi_mode:QiMode|Nil=nil,reboot:Bool=false,clean:Bool=false)-instance-method","name":"desk_control","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"args_string":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","args_html":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":790,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L790"},"def":{"name":"desk_control","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = post(\"/restapi/desk-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n form.add(\"key\", desk_key)\n if led_state\n form.add(\"led\", led_state.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour.to_s.downcase)\n end\n if desk_power\n form.add(\"desk-power\", desk_power.to_s.downcase)\n end\n if desk_height\n form.add(\"desk-height\", desk_height.to_s.downcase)\n end\n if qi_mode\n form.add(\"qi-mode\", qi_mode.to_s.downcase)\n end\n if reboot\n form.add(\"reboot\", \"true\")\n end\n if clean\n form.add(\"clean\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"desk_controllers:Hash(String,DeskInfo)-instance-method","name":"desk_controllers","doc":"Desk key => controller id","summary":"

Desk key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L45"},"def":{"name":"desk_controllers","return_type":"Hash(String, DeskInfo)","visibility":"Public","body":"@desk_controllers"}},{"html_id":"desk_info(desk_key:String)-instance-method","name":"desk_info","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":760,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L760"},"def":{"name":"desk_info","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = get(\"/restapi/desk-status?cid=#{controller_id}&key=#{desk_key}\", headers: default_headers)\ndesk_info = parse(response, DeskInfo)\ndesk_info\n"}},{"html_id":"desk_list(controller_id:String|Int32|Int64)-instance-method","name":"desk_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L755"},"def":{"name":"desk_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/desk-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(DeskInfo))\n"}},{"html_id":"desk_scan(eui64:String,key:String|Int64|Nil=nil,cid:String|Nil=nil,uid:String|Nil=nil)-instance-method","name":"desk_scan","doc":"More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a","summary":"

More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a

","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","args_html":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":669,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L669"},"def":{"name":"desk_scan","args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/desk-scan\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"eui64\", eui64.to_s)\n form.add(\"key\", key.to_s)\n if cid.nil?\n else\n form.add(\"cid\", cid.to_s)\n end\n if uid.nil?\n else\n form.add(\"uid\", uid.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"desks(plan_id:String|Int32)-instance-method","name":"desks","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"args_string":"(plan_id : String | Int32)","args_html":"(plan_id : String | Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":610,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L610"},"def":{"name":"desks","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"/restapi/floorplan-desk?planid=#{plan_id}\", headers: default_headers)\nparse(response, Array(DeskStatus))\n"}},{"html_id":"event_log(codes:Array(String|Int32),event_id:Int64|Nil=nil,after:Int64|Nil=nil,limit:Int32=1)-instance-method","name":"event_log","abstract":false,"args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"args_string":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","args_html":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":945,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L945"},"def":{"name":"event_log","args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"codes\", codes.join(\",\", &.to_s))\n if after\n form.add(\"after\", after.not_nil!.to_s)\n end\n if event_id\n form.add(\"event_id\", event_id.not_nil!.to_s)\n end\n form.add(\"limit\", limit.to_s)\nend\nresponse = get(\"/restapi/event-log?#{query}\", headers: default_headers)\nlogs = parse(response, Array(LogEntry))\nlogs.sort do |a, b|\n if a.eventtime == b.eventtime\n a.eventid <=> b.eventid\n else\n a.eventtime <=> b.eventtime\n end\nend\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L133"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floors-instance-method","name":"floors","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L605"},"def":{"name":"floors","visibility":"Public","body":"response = get(\"/restapi/floorplan-list\", headers: default_headers)\nparse(response, Array(Floor))\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L629"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/booking?bkid=#{booking_id}\", headers: default_headers)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"get_desk_height(desk_key:String):Int32|Nil-instance-method","name":"get_desk_height","doc":"return nil on unknown height","summary":"

return nil on unknown height

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Int32 | Nil","args_html":"(desk_key : String) : Int32 | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":830,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L830"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Int32 | ::Nil","visibility":"Public","body":"(desk_info(desk_key)).deskheight"}},{"html_id":"get_desk_power(desk_key:String):Bool|Nil-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Bool | Nil","args_html":"(desk_key : String) : Bool | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":848,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L848"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"get_locker_reservation(reservation_id:String)-instance-method","name":"get_locker_reservation","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L354"},"def":{"name":"get_locker_reservation","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if reservation_id\n form.add(\"resid\", reservation_id)\n end\nend\nresponse = get(\"/restapi/res?#{query}\", headers: default_headers)\nparse(response, LockerBooking)\n"}},{"html_id":"get_rfid(card_number:String)-instance-method","name":"get_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":916,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L916"},"def":{"name":"get_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/rfid?csn=#{card_number}\", headers: default_headers)\nparse(response, RFID)\n"}},{"html_id":"get_setting(key:String,user_id:String|Nil=nil)-instance-method","name":"get_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, user_id : String | Nil = nil)","args_html":"(key : String, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L275"},"def":{"name":"get_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"key\", key)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = get(\"/restapi/setting?#{query}\", headers: default_headers)\nparse(response, Setting)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L142"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/restapi/login\", body: \"username=#{URI.encode_www_form(@username)}&password=#{URI.encode_www_form(@password)}\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"})\ndata = response.body.not_nil!\nlogger.debug do\n \"received login response #{data}\"\nend\nif response.success?\n resp = Resp(AuthInfo).from_json(data)\n token = resp.info.not_nil!.token\n payload, _ = JWT.decode(token, verify: false, validate: false)\n @auth_expiry = (Time.unix(payload[\"exp\"].as_i64)) - 5.minutes\n @auth_token = \"Bearer #{token}\"\nelse\n case response.status_code\n when 401\n resp = Resp(AuthInfo).from_json(data)\n logger.warn do\n \"#{resp.message} (#{resp.code})\"\n end\n else\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":921,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L921"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"existing = @user_cache[user_id]?\nif existing\n return existing\nend\nresponse = get(\"/restapi/user?uid=#{user_id}\", headers: default_headers)\nuser = parse(response, User)\n@user_cache[user_id] = user\nuser\n"}},{"html_id":"locate(key:String,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locate","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":976,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L976"},"def":{"name":"locate","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"uri = if controller_id\n \"/restapi/user-locate?cid=#{controller_id}&key=#{URI.encode_www_form(key)}\"\nelse\n \"/restapi/user-locate?name=#{URI.encode_www_form(key)}\"\nend\nresponse = get(uri, headers: default_headers)\nparse(response, Array(UserLocation))\n"}},{"html_id":"locker(locker_key:String)-instance-method","name":"locker","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L305"},"def":{"name":"locker","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = get(\"/restapi/locker-status?cid=#{lock.controller_id}&bid=#{lock.bus_id}&lid=#{lock.locker_id}\", headers: default_headers)\nparse(response, LockerInfo)\n"}},{"html_id":"locker_change_pin(reservation_id:String,pin:Int32)-instance-method","name":"locker_change_pin","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"args_string":"(reservation_id : String, pin : Int32)","args_html":"(reservation_id : String, pin : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L416"},"def":{"name":"locker_change_pin","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/restapi/res\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"pin\", pin.to_s)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_control(locker_key:String,light:Bool|Nil=nil,led:LedState|Nil=nil,led_colour:String|Nil=nil,buzzer:String|Nil=nil,usb_charging:String|Nil=nil,detect:Bool|Nil=nil)-instance-method","name":"locker_control","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"args_string":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","args_html":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L323"},"def":{"name":"locker_control","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"bid\", lock.bus_id.to_s)\n form.add(\"lid\", lock.locker_id.to_s)\n if !light.nil?\n form.add(\"light\", light ? \"on\" : \"off\")\n end\n if led\n form.add(\"led\", led.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour)\n end\n if buzzer\n form.add(\"buzzer\", buzzer)\n end\n if usb_charging\n form.add(\"usbchg\", usb_charging)\n end\n if detect\n form.add(\"detect\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_controllers:Hash(String,LockerInfo)-instance-method","name":"locker_controllers","doc":"Locker key => controller id","summary":"

Locker key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L42"},"def":{"name":"locker_controllers","return_type":"Hash(String, LockerInfo)","visibility":"Public","body":"@locker_controllers"}},{"html_id":"locker_info(locker_key:String)-instance-method","name":"locker_info","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L311"},"def":{"name":"locker_info","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_controllers[locker_key]"}},{"html_id":"locker_release(reservation_id:String)-instance-method","name":"locker_release","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L403"},"def":{"name":"locker_release","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_reservation(locker_key:String|Nil,user_id:String,type:String|Nil=nil,duration:Int32|Nil=nil,restype:String=\"adhoc\",controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locker_reservation","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"args_string":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = \"adhoc\", controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = "adhoc", controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L363"},"def":{"name":"locker_reservation","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"visibility":"Public","body":"controller_id || (controller_id = @locker_controllers[locker_key].controller_id)\nresponse = post(\"/restapi/res-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n if locker_key.presence\n form.add(\"key\", locker_key.to_s)\n end\n form.add(\"uid\", user_id)\n if type\n form.add(\"type\", type)\n end\n if duration\n form.add(\"duration\", duration.to_s)\n end\n form.add(\"restype\", restype)\nend)\nparse(response, LockerBooking)\n"}},{"html_id":"locker_reservations(active:Bool|Nil=nil,user_id:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,shared:Bool|Nil=nil)-instance-method","name":"locker_reservations","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","args_html":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L390"},"def":{"name":"locker_reservations","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if user_id\n form.add(\"uid\", user_id)\n end\n if active\n form.add(\"active\", \"1\")\n end\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if shared\n form.add(\"shared\", \"1\")\n end\nend\nresponse = get(\"/restapi/res-list?#{query}\", headers: default_headers)\nparse(response, Array(LockerBooking))\n"}},{"html_id":"locker_share(reservation_id:String,user_id:String,duration:UInt32|Nil=nil)-instance-method","name":"locker_share","doc":"POST res-share","summary":"

POST res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"args_string":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","args_html":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L458"},"def":{"name":"locker_share","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-share\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\n if duration\n form.add(\"duration\", duration.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_shared?(reservation_id:String)-instance-method","name":"locker_shared?","doc":"GET res-share","summary":"

GET res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L452"},"def":{"name":"locker_shared?","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/res-share?resid=#{reservation_id}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"locker_unlock(locker_key:String,user_id:String|Nil=nil,pin:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","args_html":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L430"},"def":{"name":"locker_unlock","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-unlock\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"key\", locker_key)\n if user_id.presence\n form.add(\"uid\", user_id.to_s)\n end\n if pin.presence\n form.add(\"pin\", pin.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_unshare(reservation_id:String,user_id:String)-instance-method","name":"locker_unshare","doc":"POST res-unshare","summary":"

POST res-unshare

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(reservation_id : String, user_id : String)","args_html":"(reservation_id : String, user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":477,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L477"},"def":{"name":"locker_unshare","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\nend)\ncheck_success(response)\n"}},{"html_id":"lockers(controller_id:String|Int32|Int64)-instance-method","name":"lockers","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L300"},"def":{"name":"lockers","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/locker-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(LockerInfo))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L52"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@ws_username = (setting?(String, :ws_username)) || @username\n@ws_password = (setting?(String, :ws_password)) || @password\nif uri_override = setting?(String, :http_uri_override)\n transport.http_uri_override = URI.parse(uri_override)\nelse\n transport.http_uri_override = nil\nend\ntransport.before_request do |request|\n logger.debug do\n \"requesting: #{request.method} #{request.path}?#{request.query}\\n#{request.body}\"\n end\nend\nschedule.clear\nschedule.every(1.hour) do\n sync_locker_list\nend\nschedule.in(5.seconds) do\n sync_locker_list\nend\nschedule.every(1.minute) do\n check_subscriptions\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L99"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n string = (String.new(data)).rstrip\n logger.debug do\n \"websocket sent: #{string}\"\n end\n payload = Payload.from_json(string)\n case payload\n in Response\n if !payload.result\n logger.warn do\n \"task #{task.try(&.name)} failed..\"\n end\n return task.try(&.abort)\n end\n case task.try(&.name)\n when \"auth\"\n logger.debug do\n \"authentication success!\"\n end\n ws_post(\"/sub\", {mask: 255}.to_json, name: \"sub\")\n when \"sub\"\n logger.debug do\n \"subscribed to events\"\n end\n else\n logger.warn do\n \"unknown task: #{(task.try(&.name)).inspect}\"\n end\n end\n task.try(&.success)\n in Event\n self[\"event_#{payload.code}\"] = payload.info || payload.message\n in Payload\n logger.error do\n \"base class, this case will never occur\"\n end\n end\nrescue error\n logger.error(exception: error) do\n \"failed to parse: #{string.inspect}\"\n end\nend"}},{"html_id":"release_booking(booking_id:String|Int64)-instance-method","name":"release_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":727,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L727"},"def":{"name":"release_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build(&.add(\"bkid\", booking_id.to_s)))\ncheck_success(response)\n"}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","doc":"desk height is in mm","summary":"

desk height is in mm

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L826"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_control(desk_key, desk_height: desk_height)"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","doc":"desk_power on / off / nil == auto","summary":"

desk_power on / off / nil == auto

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":834,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L834"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"power = case desk_power\nwhen true\n DeskPower::On\nwhen false\n DeskPower::Off\nwhen nil\n DeskPower::Policy\nelse\n raise(\"unknown power state: #{desk_power}\")\nend\ndesk_control(desk_key, desk_power: power)\n"}},{"html_id":"set_setting(key:String,value:JSON::Any,user_id:String|Nil=nil)-instance-method","name":"set_setting","doc":"example keys: \"desk_height_sit\", \"desk_height_stand\"","summary":"

example keys: "desk_height_sit", "desk_height_stand"

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","args_html":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L285"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"body = URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"value\", value.to_json)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = post(\"/restapi/setting\", headers: default_headers, body: body)\nresponse.success?\n"}},{"html_id":"settings_list(group_id:Int32|Nil=nil,user_group_id:Int32|Nil=nil,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"settings_list","abstract":false,"args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L260"},"def":{"name":"settings_list","args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if group_id\n form.add(\"groupid\", group_id.to_s)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\nend\nresponse = get(\"/restapi/setting-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"sync_locker_list-instance-method","name":"sync_locker_list","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L205"},"def":{"name":"sync_locker_list","visibility":"Public","body":"lockers = {} of String => LockerInfo\ndesks = {} of String => DeskInfo\ncontroller_list.each do |controller_id, controller|\n if controller.lockers\n else\n next\n end\n begin\n (lockers(controller_id)).each do |locker|\n if locker.key\n else\n next\n end\n locker.controller_id = controller_id\n lockers[locker.key.not_nil!] = locker\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining locker list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\n begin\n (desk_list(controller_id)).each do |desk|\n if desk.key\n else\n next\n end\n desk.controller_id = controller_id\n desks[desk.key.not_nil!] = desk\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\nend\n@desk_controllers = desks\n@locker_controllers = lockers\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L137"},"def":{"name":"token_expired?","visibility":"Public","body":"now = Time.utc\n@auth_expiry < now\n"}},{"html_id":"update_booking(booking_id:String|Int64,privacy:Bool|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":737,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L737"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"privacy\", privacy.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"user_groups_list(in_use:Bool=true)-instance-method","name":"user_groups_list","abstract":false,"args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"args_string":"(in_use : Bool = true)","args_html":"(in_use : Bool = true)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":854,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L854"},"def":{"name":"user_groups_list","args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"visibility":"Public","body":"query = in_use ? \"inuse=1\" : \"\"\nresponse = get(\"/restapi/usergroup-list?#{query}\", headers: default_headers)\nparse(response, Array(UserGroup))\n"}},{"html_id":"user_list(email:String|Nil=nil,name:String|Nil=nil,description:String|Nil=nil,user_group_id:String|Int32|Nil=nil,limit:Int32=500,offset:Int32=0)-instance-method","name":"user_list","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","args_html":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":931,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L931"},"def":{"name":"user_list","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if email\n form.add(\"email\", email.not_nil!)\n end\n if name\n form.add(\"name\", name.not_nil!)\n end\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\n form.add(\"limit\", limit.to_s)\n form.add(\"offset\", offset.to_s)\nend\nresponse = get(\"/restapi/user-list?#{query}\", headers: default_headers)\nparse(response, Array(User))\n"}},{"html_id":"voucher(voucher_id:String,pin:String)-instance-method","name":"voucher","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L597"},"def":{"name":"voucher","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/voucher?vid=#{voucher_id}&pin=#{pin}\", headers: default_headers)\nparse(response, Voucher)\n"}},{"html_id":"voucher_activate(voucher_id:String,pin:String)-instance-method","name":"voucher_activate","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":582,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L582"},"def":{"name":"voucher_activate","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/voucher-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"vid\", voucher_id)\n form.add(\"pin\", pin)\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_create(template_key:String,user_name:String,user_email:String,user_id:String|Nil=nil,reservation_id:String|Nil=nil,locker_key:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,notes:String|Nil=nil,validfrom:Int64|Nil=nil,validto:Int64|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"voucher_create","abstract":false,"args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":547,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L547"},"def":{"name":"voucher_create","args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", template_key)\n form.add(\"name\", user_name)\n form.add(\"email\", user_email)\n if user_id.nil?\n else\n form.add(\"uid\", user_id)\n end\n if reservation_id.nil?\n else\n form.add(\"resid\", reservation_id.to_s)\n end\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if locker_key.nil?\n else\n form.add(\"key\", locker_key.to_s)\n end\n if notes.nil?\n else\n form.add(\"notes\", notes.to_s)\n end\n if validfrom.nil?\n else\n form.add(\"validfrom\", validfrom.to_s)\n end\n if validto.nil?\n else\n form.add(\"validto\", validto.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\nend)\nparse(response, NamedTuple(user: User, voucher: Voucher))\n"}},{"html_id":"voucher_template(key:String,subject:String,desc:String,bodyhtml:String,body:String,createuser:Bool|Nil=nil,email:Bool|Nil=nil,unlock:Bool|Nil=nil,createunlock:Bool|Nil=nil,createres:Bool|Nil=nil,release:Bool|Nil=nil,cardswipe:Bool|Nil=nil,maxuse:Int32|Nil=nil,duration:Int32|Nil=nil,validperiod:Int32|Nil=nil,restype:String|Nil=nil,activatemessage:String|Nil=nil,vouchermessage:String|Nil=nil)-instance-method","name":"voucher_template","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"args_string":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","args_html":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L498"},"def":{"name":"voucher_template","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"subject\", subject)\n form.add(\"desc\", desc)\n form.add(\"bodyhtml\", bodyhtml)\n form.add(\"body\", body)\n if createuser.nil?\n else\n form.add(\"createuser\", createuser.to_s)\n end\n if email.nil?\n else\n form.add(\"email\", email.to_s)\n end\n if unlock.nil?\n else\n form.add(\"unlock\", unlock.to_s)\n end\n if createunlock.nil?\n else\n form.add(\"createunlock\", createunlock.to_s)\n end\n if createres.nil?\n else\n form.add(\"createres\", createres.to_s)\n end\n if release.nil?\n else\n form.add(\"release\", release.to_s)\n end\n if cardswipe.nil?\n else\n form.add(\"cardswipe\", cardswipe.to_s)\n end\n if maxuse.nil?\n else\n form.add(\"maxuse\", maxuse.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\n if validperiod.nil?\n else\n form.add(\"validperiod\", validperiod.to_s)\n end\n if restype.nil?\n else\n form.add(\"restype\", restype.to_s)\n end\n if activatemessage.nil?\n else\n form.add(\"activatemessage\", activatemessage.to_s)\n end\n if vouchermessage.nil?\n else\n form.add(\"vouchermessage\", vouchermessage.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_templates-instance-method","name":"voucher_templates","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L493"},"def":{"name":"voucher_templates","visibility":"Public","body":"response = get(\"/restapi/voucher-template\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"ws_get(uri:String,**options)-instance-method","name":"ws_get","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String, **options)","args_html":"(uri : String, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L88"},"def":{"name":"ws_get","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"GET #{uri}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}},{"html_id":"ws_post(uri:String,body:String|Nil=nil,**options)-instance-method","name":"ws_post","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(uri : String, body : String | Nil = nil, **options)","args_html":"(uri : String, body : String | Nil = nil, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L81"},"def":{"name":"ws_post","args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"POST #{uri}\\r\\n#{body.presence ? body : \"{}\"}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}}],"macros":[{"html_id":"parse(response,klass,&modify)-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"args_string":"(response, klass, &modify)","args_html":"(response, klass, &modify)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L181"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"block_arg":{"name":"modify","external_name":"modify","restriction":""},"visibility":"Public","body":" check_success(\n{{ response }}\n)\n \n%resp_body\n = \n{{ response }}\n.body\n begin\n check_response Resp(\n{{ klass }}\n).from_json(\n%resp_body\n.not_nil!) \n{{ modify }}\n\n rescue \nerror\n begin\n response = Response.from_json(\n%resp_body\n)\n raise \"#{response.message} (#{response.code})\" unless response.result\n raise \"unexpected response type: #{\n%resp_body\n}\"\n rescue\n logger.debug \n{ \"failed to parse response: #{\n%resp_body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/Floorsense/DesksWebsocket/DeskHeight","path":"Floorsense/DesksWebsocket/DeskHeight.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskHeight","name":"DeskHeight","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":779,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L779"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sit","name":"Sit","value":"0"},{"id":"Stand","name":"Stand","value":"1"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"sit?-instance-method","name":"sit?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":780,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L780"},"def":{"name":"sit?","visibility":"Public","body":"self == Sit"}},{"html_id":"stand?-instance-method","name":"stand?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":781,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L781"},"def":{"name":"stand?","visibility":"Public","body":"self == Stand"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/DeskPower","path":"Floorsense/DesksWebsocket/DeskPower.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskPower","name":"DeskPower","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":773,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L773"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Policy","name":"Policy","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L775"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":774,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L774"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"policy?-instance-method","name":"policy?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":776,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L776"},"def":{"name":"policy?","visibility":"Public","body":"self == Policy"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedColour","path":"Floorsense/DesksWebsocket/LedColour.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedColour","name":"LedColour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":767,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L767"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":770,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L770"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":769,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L769"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L768"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedState","path":"Floorsense/DesksWebsocket/LedState.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedState","name":"LedState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Off","name":"Off","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Slow","name":"Slow","value":"2"},{"id":"Medium","name":"Medium","value":"3"},{"id":"Fast","name":"Fast","value":"4"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"fast?-instance-method","name":"fast?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L320"},"def":{"name":"fast?","visibility":"Public","body":"self == Fast"}},{"html_id":"medium?-instance-method","name":"medium?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L319"},"def":{"name":"medium?","visibility":"Public","body":"self == Medium"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L316"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L317"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"slow?-instance-method","name":"slow?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L318"},"def":{"name":"slow?","visibility":"Public","body":"self == Slow"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/QiMode","path":"Floorsense/DesksWebsocket/QiMode.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::QiMode","name":"QiMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L784"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":787,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L787"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":786,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L786"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":785,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L785"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]}]},{"html_id":"drivers/Floorsense/Event","path":"Floorsense/Event.html","kind":"class","full_name":"Floorsense::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L30"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"info:JSON::Any|Nil-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L32"},"def":{"name":"info","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L31"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L29"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/Floor","path":"Floorsense/Floor.html","kind":"class","full_name":"Floorsense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L229"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"imgheight:Int32|Nil-instance-method","name":"imgheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L236"},"def":{"name":"imgheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgheight"}},{"html_id":"imgheight=(imgheight:Int32|Nil)-instance-method","name":"imgheight=","abstract":false,"args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"args_string":"(imgheight : Int32 | Nil)","args_html":"(imgheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L236"},"def":{"name":"imgheight=","args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgheight = imgheight"}},{"html_id":"imgname:String|Nil-instance-method","name":"imgname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L234"},"def":{"name":"imgname","return_type":"String | ::Nil","visibility":"Public","body":"@imgname"}},{"html_id":"imgname=(imgname:String|Nil)-instance-method","name":"imgname=","abstract":false,"args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"args_string":"(imgname : String | Nil)","args_html":"(imgname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L234"},"def":{"name":"imgname=","args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@imgname = imgname"}},{"html_id":"imgwidth:Int32|Nil-instance-method","name":"imgwidth","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgwidth"}},{"html_id":"imgwidth=(imgwidth:Int32|Nil)-instance-method","name":"imgwidth=","abstract":false,"args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"args_string":"(imgwidth : Int32 | Nil)","args_html":"(imgwidth : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth=","args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgwidth = imgwidth"}},{"html_id":"location1:String|Nil-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L238"},"def":{"name":"location1","return_type":"String | ::Nil","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String|Nil)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"args_string":"(location1 : String | Nil)","args_html":"(location1 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L238"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String|Nil-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L239"},"def":{"name":"location2","return_type":"String | ::Nil","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String|Nil)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"args_string":"(location2 : String | Nil)","args_html":"(location2 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L239"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String|Nil-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L240"},"def":{"name":"location3","return_type":"String | ::Nil","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String|Nil)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"args_string":"(location3 : String | Nil)","args_html":"(location3 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L240"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L232"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L232"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L231"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L231"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}}]},{"html_id":"drivers/Floorsense/LocationService","path":"Floorsense/LocationService.html","kind":"class","full_name":"Floorsense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/location_service.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/location_service.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L150"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"cid=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n user = (floorsense.at_location(floor_mac[\"cid\"], floor_mac[\"key\"])).get\n {location: \"desk\", assigned_to: user[\"name\"].as_s, mac_address: mac_address}\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L163"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of Nil\nend\nbuilding = @building_mappings[zone_id]?\nraw_desks = (floorsense.desks(plan_id)).get.to_json\ndesks = (Array(DeskStatus).from_json(raw_desks)).compact_map do |desk|\n @eui64_to_desk_id[desk.eui64] = desk.key\n if desk.occupied\n {location: :desk, at_location: 1, map_id: desk.key, level: zone_id, building: building, capacity: 1, mac: \"cid=#{desk.cid}&key=#{desk.key}\", floorsense_status: desk.status, floorsense_desk_type: desk.desk_type}\n end\nend\ncurrent = [] of BookingStatus\nif @include_bookings\n raw_bookings = (floorsense.bookings(plan_id)).get.to_json\n (Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\n end\nend\ncurrent.map do |booking|\n {location: :booking, type: \"desk\", checked_in: booking.active, asset_id: booking.key, booking_id: booking.booking_id, building: building, level: zone_id, ends_at: booking.finish, mac: \"cid=#{booking.cid}&key=#{booking.key}\", staff_email: booking.user.try do |__arg2|\n __arg2.email.try(&.downcase)\n end, staff_name: booking.user.try(&.name)}\nend + desks\n"}},{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L57"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@eui64_to_desk_id[id]?"}},{"html_id":"get_desk_height_sit-instance-method","name":"get_desk_height_sit","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L113"},"def":{"name":"get_desk_height_sit","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_sit\", uid)).get[\"value\"]\n"}},{"html_id":"get_desk_height_stand-instance-method","name":"get_desk_height_stand","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L119"},"def":{"name":"get_desk_height_stand","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_stand\", uid)).get[\"value\"]\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/location_service.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L69"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_place_user_id:String-instance-method","name":"get_place_user_id","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L107"},"def":{"name":"get_place_user_id","return_type":"String","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"must be invoked by a user\")\nend\nuser_id\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L140"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/location_service.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L145"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"@include_bookings = (setting?(Bool, :include_bookings)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n"}},{"html_id":"set_desk_height_sit(value:UInt32)-instance-method","name":"set_desk_height_sit","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L125"},"def":{"name":"set_desk_height_sit","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_sit\", value, uid)\n"}},{"html_id":"set_desk_height_stand(value:UInt32)-instance-method","name":"set_desk_height_stand","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L131"},"def":{"name":"set_desk_height_stand","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_stand\", value, uid)\n"}}]},{"html_id":"drivers/Floorsense/LockerBooking","path":"Floorsense/LockerBooking.html","kind":"class","full_name":"Floorsense::LockerBooking","name":"LockerBooking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L110"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Int32-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L130"},"def":{"name":"active","return_type":"Int32","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Int32)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Int32"}],"args_string":"(active : Int32)","args_html":"(active : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L130"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Int32"}],"visibility":"Public","body":"@active = active"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L117"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L117"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L112"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L112"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L114"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L114"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L125"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L125"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"lastopened:Int64-instance-method","name":"lastopened","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L128"},"def":{"name":"lastopened","return_type":"Int64","visibility":"Public","body":"@lastopened"}},{"html_id":"lastopened=(lastopened:Int64)-instance-method","name":"lastopened=","abstract":false,"args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"args_string":"(lastopened : Int64)","args_html":"(lastopened : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L128"},"def":{"name":"lastopened=","args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"visibility":"Public","body":"@lastopened = lastopened"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L126"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L126"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L131"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L131"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L129"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L129"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L133"},"def":{"name":"released?","visibility":"Public","body":"self.active == 1"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L127"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L127"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L113"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L113"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L138"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L138"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L123"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L123"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Floorsense/LockerInfo","path":"Floorsense/LockerInfo.html","kind":"class","full_name":"Floorsense::LockerInfo","name":"LockerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bus_id:Int32-instance-method","name":"bus_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L82"},"def":{"name":"bus_id","return_type":"Int32","visibility":"Public","body":"@bus_id"}},{"html_id":"bus_id=(bus_id:Int32)-instance-method","name":"bus_id=","abstract":false,"args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"args_string":"(bus_id : Int32)","args_html":"(bus_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L82"},"def":{"name":"bus_id=","args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"visibility":"Public","body":"@bus_id = bus_id"}},{"html_id":"canid:Int32-instance-method","name":"canid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L79"},"def":{"name":"canid","return_type":"Int32","visibility":"Public","body":"@canid"}},{"html_id":"canid=(canid:Int32)-instance-method","name":"canid=","abstract":false,"args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"args_string":"(canid : Int32)","args_html":"(canid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L79"},"def":{"name":"canid=","args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"visibility":"Public","body":"@canid = canid"}},{"html_id":"closed:Bool|Nil-instance-method","name":"closed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L93"},"def":{"name":"closed","return_type":"Bool | ::Nil","visibility":"Public","body":"@closed"}},{"html_id":"closed=(closed:Bool|Nil)-instance-method","name":"closed=","abstract":false,"args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"args_string":"(closed : Bool | Nil)","args_html":"(closed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L93"},"def":{"name":"closed=","args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@closed = closed"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L91"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L91"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::LockerInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L106"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"disabled:Bool-instance-method","name":"disabled","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L90"},"def":{"name":"disabled","return_type":"Bool","visibility":"Public","body":"@disabled"}},{"html_id":"disabled=(disabled:Bool)-instance-method","name":"disabled=","abstract":false,"args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"args_string":"(disabled : Bool)","args_html":"(disabled : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L90"},"def":{"name":"disabled=","args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"visibility":"Public","body":"@disabled = disabled"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L89"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L89"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L98"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L98"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:Int32|Nil-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L99"},"def":{"name":"hardware","return_type":"Int32 | ::Nil","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:Int32|Nil)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"args_string":"(hardware : Int32 | Nil)","args_html":"(hardware : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L99"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L101"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L101"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"locker_id:Int32-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L85"},"def":{"name":"locker_id","return_type":"Int32","visibility":"Public","body":"@locker_id"}},{"html_id":"locker_id=(locker_id:Int32)-instance-method","name":"locker_id=","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"args_string":"(locker_id : Int32)","args_html":"(locker_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L85"},"def":{"name":"locker_id=","args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"visibility":"Public","body":"@locker_id = locker_id"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L87"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L87"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"resid:String|Nil-instance-method","name":"resid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L103"},"def":{"name":"resid","return_type":"String | ::Nil","visibility":"Public","body":"@resid"}},{"html_id":"resid=(resid:String|Nil)-instance-method","name":"resid=","abstract":false,"args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"args_string":"(resid : String | Nil)","args_html":"(resid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L103"},"def":{"name":"resid=","args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resid = resid"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L88"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L88"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L100"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L100"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L96"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L96"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}},{"html_id":"uid:String|Nil-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L97"},"def":{"name":"uid","return_type":"String | ::Nil","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String|Nil)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(uid : String | Nil)","args_html":"(uid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L97"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"usbcharger:Bool|Nil-instance-method","name":"usbcharger","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharger"}},{"html_id":"usbcharger=(usbcharger:Bool|Nil)-instance-method","name":"usbcharger=","abstract":false,"args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"args_string":"(usbcharger : Bool | Nil)","args_html":"(usbcharger : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger=","args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharger = usbcharger"}},{"html_id":"usbcharging:Bool|Nil-instance-method","name":"usbcharging","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharging"}},{"html_id":"usbcharging=(usbcharging:Bool|Nil)-instance-method","name":"usbcharging=","abstract":false,"args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"args_string":"(usbcharging : Bool | Nil)","args_html":"(usbcharging : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging=","args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharging = usbcharging"}},{"html_id":"usbcurrent:Int32|Nil-instance-method","name":"usbcurrent","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent","return_type":"Int32 | ::Nil","visibility":"Public","body":"@usbcurrent"}},{"html_id":"usbcurrent=(usbcurrent:Int32|Nil)-instance-method","name":"usbcurrent=","abstract":false,"args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"args_string":"(usbcurrent : Int32 | Nil)","args_html":"(usbcurrent : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent=","args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@usbcurrent = usbcurrent"}}]},{"html_id":"drivers/Floorsense/LockerLocationService","path":"Floorsense/LockerLocationService.html","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L382"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lc=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n controller_id = floor_mac[\"lc\"]\n locker_key = floor_mac[\"lk\"]\n reservations = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n if reservation = reservations.find do |booking|\n booking.key == locker_key\n end\n {location: \"locker\", assigned_to: get_user_email(reservation.user_id), mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"controllers:Hash(Int32,ControllerInfo)-instance-method","name":"controllers","doc":"Controller id => Controller info","summary":"

Controller id => Controller info

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L50"},"def":{"name":"controllers","return_type":"Hash(Int32, ControllerInfo)","visibility":"Public","body":"@controllers"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L412"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\ncontroller_list = @zone_mappings[zone_id]?\nif controller_list\nelse\n return [] of Nil\nend\nbuilding = @zone_building\ncontroller_list.flat_map do |controller_id|\n bookings = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n bookings.map do |booking|\n PlaceLocker.new(get_locker_bank(booking.key), booking, @zone_building, zone_id)\n end\nend\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L106"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nlogger.debug do\n \"found place id: #{placeos_staff_id}\"\nend\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nlogger.debug do\n \"found #{floorsense_users.size} matching floorsense users\"\nend\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_locker_bank(locker_key:String)-instance-method","name":"get_locker_bank","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L403"},"def":{"name":"get_locker_bank","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"if bank_id = @locker_key_to_bank[locker_key]?\n return bank_id\nend\nbank_id = (floorsense.locker_info(locker_key)).get[\"controller_id\"].as_i64\n@locker_key_to_bank[locker_key] = bank_id\n"}},{"html_id":"get_place_user_id(floorsense_id:String|Int64):String-instance-method","name":"get_place_user_id","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L148"},"def":{"name":"get_place_user_id","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nplace_lookup = case @floorsense_filter\nwhen \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\nelse\n floor_user[\"desc\"].as_s\nend\nif (place_lookup.starts_with?(\"user-\")) && !(place_lookup.includes?('@'))\n return place_lookup\nend\n(staff_api.user(place_lookup)).get[\"id\"].as_s\n"}},{"html_id":"get_user_email(floorsense_id:String|Int64):String-instance-method","name":"get_user_email","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L161"},"def":{"name":"get_user_email","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nbegin\n floor_user[\"email\"].as_s\nrescue\n place_lookup = case @floorsense_filter\n when \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\n else\n floor_user[\"desc\"].as_s\n end\n (staff_api.user(place_lookup)).get[\"email\"].as_s\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L370"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L192"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(user_id)\nif expires_at\n duration = (expires_at - Time.local.to_unix) // 60\nend\nbooking = LockerBooking.from_json(floorsense.locker_reservation(locker_key: locker_id, user_id: floorsense_user_id, duration: duration, controller_id: bank_id).get.to_json)\nlevel = nil\n@zone_mappings.each do |level_zone, controllers|\n if bank_id.in?(controllers)\n level = level_zone\n break\n end\nend\nPlaceLocker.new(bank_id, booking, @zone_building, level)\n"}},{"html_id":"locker_banks-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L88"},"def":{"name":"locker_banks","visibility":"Public","body":"banks = {} of Int32 => Array(JSON::Any)\n@controllers.each_key do |controller_id|\n if json = (begin\n (floorsense.bank_list(controller_id)).get\n rescue\n nil\n end)\n banks[controller_id] = json.as_a\n end\nend\nbanks\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L228"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nif place_id = owner_id.presence\n floorsense_user_id = get_floorsense_user(place_id)\nend\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_release(reservation.reservation_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L273"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(owner_id)\nshare_with = get_floorsense_user(share_with)\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_share(reservation.reservation_id, share_with)).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L324"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n return (floorsense.locker_shared?(reservation.reservation_id)).get.as_a.map do |shared_with|\n get_place_user_id(shared_with[\"uid\"].as_s)\n end\nend\n[] of String\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L347"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if owner_id.presence\n floorsense_user_id = get_floorsense_user(owner_id.to_s)\nend\nfloorsense.locker_unlock(locker_key: locker_id.to_s, user_id: floorsense_user_id, pin: pin_code)\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L293"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n res_id = reservation.reservation_id\n if shared_with = shared_with_id.presence\n shared_with_id = get_floorsense_user(shared_with)\n (floorsense.locker_unshare(res_id, shared_with_id)).get\n else\n (floorsense.locker_shared?(res_id)).get.as_a.map do |shared_with|\n (floorsense.locker_unshare(res_id, shared_with[\"uid\"].as_s)).get\n end\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L251"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(user_id)\n(Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id).get.to_json)).compact_map do |floor_booking|\n level = nil\n @zone_mappings.each do |level_zone, controllers|\n if floor_booking.controller_id.in?(controllers)\n level = level_zone\n break\n end\n end\n if level\n PlaceLocker.new(get_locker_bank(floor_booking.key), floor_booking, @zone_building, level)\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L375"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@building_location = setting(String, :locker_building_location)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :locker_floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n"}},{"html_id":"zone_building:String|Nil-instance-method","name":"zone_building","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L57"},"def":{"name":"zone_building","return_type":"String | ::Nil","visibility":"Public","body":"@zone_building"}},{"html_id":"zone_mappings:Hash(String,Array(Int32))-instance-method","name":"zone_mappings","doc":"level zone_id => controller ids","summary":"

level zone_id => controller ids

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L56"},"def":{"name":"zone_mappings","return_type":"Hash(String, Array(Int32))","visibility":"Public","body":"@zone_mappings"}}],"types":[{"html_id":"drivers/Floorsense/LockerLocationService/PlaceLocker","path":"Floorsense/LockerLocationService/PlaceLocker.html","kind":"alias","full_name":"Floorsense::LockerLocationService::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Floorsense/LockerLocationService","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService"}}]},{"html_id":"drivers/Floorsense/LogEntry","path":"Floorsense/LogEntry.html","kind":"class","full_name":"Floorsense::LogEntry","name":"LogEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L376"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L377"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","doc":"booking id","summary":"

booking id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L388"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","doc":"booking id","summary":"

booking id

","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L388"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"code:Int32-instance-method","name":"code","doc":"the event code","summary":"

the event code

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L385"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32)-instance-method","name":"code=","doc":"the event code","summary":"

the event code

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L385"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"@code = code"}},{"html_id":"eventid:Int64-instance-method","name":"eventid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L379"},"def":{"name":"eventid","return_type":"Int64","visibility":"Public","body":"@eventid"}},{"html_id":"eventid=(eventid:Int64)-instance-method","name":"eventid=","abstract":false,"args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"args_string":"(eventid : Int64)","args_html":"(eventid : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L379"},"def":{"name":"eventid=","args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"visibility":"Public","body":"@eventid = eventid"}},{"html_id":"eventtime:Int64-instance-method","name":"eventtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L394"},"def":{"name":"eventtime","return_type":"Int64","visibility":"Public","body":"@eventtime"}},{"html_id":"eventtime=(eventtime:Int64)-instance-method","name":"eventtime=","abstract":false,"args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"args_string":"(eventtime : Int64)","args_html":"(eventtime : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L394"},"def":{"name":"eventtime=","args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"visibility":"Public","body":"@eventtime = eventtime"}},{"html_id":"key:String-instance-method","name":"key","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L382"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L382"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}}]},{"html_id":"drivers/Floorsense/MobileCheckinLogic","path":"Floorsense/MobileCheckinLogic.html","kind":"class","full_name":"Floorsense::MobileCheckinLogic","name":"MobileCheckinLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_scanned(id:String,user_id:String,booking_minutes:Int32|Nil=nil)-instance-method","name":"eui64_scanned","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"args_string":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","args_html":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L31"},"def":{"name":"eui64_scanned","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"#{user_id} scanned mac #{id}\"\nend\ndesk_details = (booking_sync.eui64_to_desk_id(id)).get\nif desk_details.raw.nil?\n raise(\"could not find eui64 id: #{id}\")\nend\nlogger.debug do\n \"desk details found: #{desk_details.inspect}\"\nend\nlevel_zone = desk_details[\"level\"].as_s\nplace_desk = desk_details[\"desk_id\"].as_s\nbuilding_raw = desk_details[\"building_id\"]?.try(&.raw)\nbuild_zone = building_raw.try do |__arg2|\n __arg2.as(String)\nend\nlogger.debug do\n \"located #{place_desk} for #{user_id}\"\nend\nnow = Time.utc.to_unix\nbooking = staff_api.query_bookings(type: \"desk\", zones: [level_zone]).get.as_a.find do |book|\n ((book[\"asset_id\"].as_s == place_desk) && book[\"booking_start\"].as_i64 <= now) && book[\"booking_end\"].as_i64 > now\nend\nif booking\n owner_id = booking[\"user_id\"].as_s\n if owner_id == user_id\n checkin_out = !booking[\"checked_in\"].as_bool\n booking_id = booking[\"id\"].as_i64\n logger.debug do\n \"found existing booking #{booking_id} with current checked-in status #{!checkin_out}\"\n end\n if checkin_out\n (staff_api.booking_check_in(booking_id, true)).get.as_bool\n \"checked-in\"\n else\n now = 1.minute.ago.to_unix\n staff_api.update_booking(booking_id: booking_id, booking_end: now, checked_in: false).get\n \"checked-out\"\n end\n else\n logger.debug do\n \"#{user_id} scanned desk owned by #{owner_id}\"\n end\n \"forbidden\"\n end\nelse\n booking_period = booking_minutes.try(&.minutes) || @booking_period\n now = Time.local(@time_zone)\n future = booking_period ? (now + booking_period) : now.at_end_of_day\n user_details = (staff_api.user(user_id)).get\n zones = [level_zone]\n if build_zone\n zones.unshift(build_zone)\n end\n title = place_desk\n ext_data = {} of String => JSON::Any\n begin\n logger.debug do\n \"obtaining metadata for desk #{place_desk} on level #{level_zone}\"\n end\n if desk_details = placeos_desk_metadata(level_zone, place_desk)\n if bookable = desk_details[\"bookable\"]?\n if (bookable.as_s?.try(&.upcase) == \"FALSE\") || (bookable.as_bool? == false)\n return \"forbidden\"\n end\n end\n title = desk_details[\"name\"]?.try(&.as_s) || place_desk\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk_details[meta_key]?\n ext_data[ext_key] = value\n end\n end\n else\n logger.warn do\n \"desk details not found!\"\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk metadata\"\n end\n end\n logger.debug do\n \"creating new booking for #{user_id} on #{place_desk}\"\n end\n staff_api.create_booking(booking_type: \"desk\", asset_id: place_desk, user_id: user_id, user_email: user_details[\"email\"], user_name: user_details[\"name\"], zones: zones, booking_start: now.to_unix, booking_end: future.to_unix, checked_in: true, approved: true, title: title, time_zone: @time_zone.name, extension_data: ext_data).get\n \"adhoc\"\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"time_zone = (setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@booking_period = (setting?(Int32, :booking_period)).try(&.minutes)\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,asset_id:String)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(zone_id : String, asset_id : String)","args_html":"(zone_id : String, asset_id : String)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L133"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\nmetadata.each do |desk|\n place_id = desk[\"id\"]?.try(&.as_s)\n if place_id\n else\n next\n end\n if place_id == asset_id\n return desk.as_h\n end\nend\nnil\n"}}]},{"html_id":"drivers/Floorsense/Payload","path":"Floorsense/Payload.html","kind":"class","full_name":"Floorsense::Payload","name":"Payload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Floorsense/Event","kind":"class","full_name":"Floorsense::Event","name":"Event"},{"html_id":"drivers/Floorsense/Response","kind":"class","full_name":"Floorsense::Response","name":"Response"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"event\"\n Event.from_json(json)\nwhen \"response\"\n Response.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/Floorsense/Resp","path":"Floorsense/Resp.html","kind":"class","full_name":"Floorsense::Resp(T)","name":"Resp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L56"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32|Nil)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"args_string":"(code : Int32 | Nil)","args_html":"(code : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L56"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@code = code"}},{"html_id":"info:T|Nil-instance-method","name":"info","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L59"},"def":{"name":"info","return_type":"T | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"info=(info:T|Nil)-instance-method","name":"info=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"args_string":"(info : T | Nil)","args_html":"(info : T | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L59"},"def":{"name":"info=","args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"visibility":"Public","body":"@info = info"}},{"html_id":"message:String|Nil-instance-method","name":"message","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L55"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"message=(message:String|Nil)-instance-method","name":"message=","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(message : String | Nil)","args_html":"(message : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L55"},"def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"@message = message"}},{"html_id":"msg_type:String-instance-method","name":"msg_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L51"},"def":{"name":"msg_type","return_type":"String","visibility":"Public","body":"@msg_type"}},{"html_id":"msg_type=(msg_type:String)-instance-method","name":"msg_type=","abstract":false,"args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"args_string":"(msg_type : String)","args_html":"(msg_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L51"},"def":{"name":"msg_type=","args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"visibility":"Public","body":"@msg_type = msg_type"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L52"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"result=(result:Bool)-instance-method","name":"result=","abstract":false,"args":[{"name":"result","external_name":"result","restriction":"Bool"}],"args_string":"(result : Bool)","args_html":"(result : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L52"},"def":{"name":"result=","args":[{"name":"result","external_name":"result","restriction":"Bool"}],"visibility":"Public","body":"@result = result"}}]},{"html_id":"drivers/Floorsense/Response","path":"Floorsense/Response.html","kind":"class","full_name":"Floorsense::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L38"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"info-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L42"},"def":{"name":"info","visibility":"Public","body":"@info || (JSON.parse(\"{}\"))"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L39"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L37"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L36"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/RFID","path":"Floorsense/RFID.html","kind":"class","full_name":"Floorsense::RFID","name":"RFID","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L397"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L398"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"csn:String-instance-method","name":"csn","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L400"},"def":{"name":"csn","return_type":"String","visibility":"Public","body":"@csn"}},{"html_id":"csn=(csn:String)-instance-method","name":"csn=","abstract":false,"args":[{"name":"csn","external_name":"csn","restriction":"String"}],"args_string":"(csn : String)","args_html":"(csn : String)","location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L400"},"def":{"name":"csn=","args":[{"name":"csn","external_name":"csn","restriction":"String"}],"visibility":"Public","body":"@csn = csn"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L402"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L402"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L401"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L401"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Setting","path":"Floorsense/Setting.html","kind":"class","full_name":"Floorsense::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L66"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L66"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L65"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L65"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Floorsense/User","path":"Floorsense/User.html","kind":"class","full_name":"Floorsense::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L358"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L359"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L364"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L364"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L362"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L362"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expiry:Int64|Nil-instance-method","name":"expiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L366"},"def":{"name":"expiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"expiry=(expiry:Int64|Nil)-instance-method","name":"expiry=","abstract":false,"args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(expiry : Int64 | Nil)","args_html":"(expiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L366"},"def":{"name":"expiry=","args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@expiry = expiry"}},{"html_id":"extid:String|Nil-instance-method","name":"extid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L371"},"def":{"name":"extid","return_type":"String | ::Nil","visibility":"Public","body":"@extid"}},{"html_id":"extid=(extid:String|Nil)-instance-method","name":"extid=","abstract":false,"args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"args_string":"(extid : String | Nil)","args_html":"(extid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L371"},"def":{"name":"extid=","args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@extid = extid"}},{"html_id":"lastlogin:Int64|Nil-instance-method","name":"lastlogin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin","return_type":"Int64 | ::Nil","visibility":"Public","body":"@lastlogin"}},{"html_id":"lastlogin=(lastlogin:Int64|Nil)-instance-method","name":"lastlogin=","abstract":false,"args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"args_string":"(lastlogin : Int64 | Nil)","args_html":"(lastlogin : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin=","args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@lastlogin = lastlogin"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L363"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L363"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"pin:String|Nil-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L368"},"def":{"name":"pin","return_type":"String | ::Nil","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String|Nil)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(pin : String | Nil)","args_html":"(pin : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L368"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"privacy:Int32|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L373"},"def":{"name":"privacy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Int32|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"args_string":"(privacy : Int32 | Nil)","args_html":"(privacy : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L373"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reslimit:Int64|Nil-instance-method","name":"reslimit","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L367"},"def":{"name":"reslimit","return_type":"Int64 | ::Nil","visibility":"Public","body":"@reslimit"}},{"html_id":"reslimit=(reslimit:Int64|Nil)-instance-method","name":"reslimit=","abstract":false,"args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"args_string":"(reslimit : Int64 | Nil)","args_html":"(reslimit : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L367"},"def":{"name":"reslimit=","args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@reslimit = reslimit"}},{"html_id":"ugroupid:Int64|Nil-instance-method","name":"ugroupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ugroupid"}},{"html_id":"ugroupid=(ugroupid:Int64|Nil)-instance-method","name":"ugroupid=","abstract":false,"args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"args_string":"(ugroupid : Int64 | Nil)","args_html":"(ugroupid : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid=","args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ugroupid = ugroupid"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L361"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L361"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"uidtoken:String|Nil-instance-method","name":"uidtoken","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken","return_type":"String | ::Nil","visibility":"Public","body":"@uidtoken"}},{"html_id":"uidtoken=(uidtoken:String|Nil)-instance-method","name":"uidtoken=","abstract":false,"args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"args_string":"(uidtoken : String | Nil)","args_html":"(uidtoken : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken=","args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uidtoken = uidtoken"}},{"html_id":"usertype:String|Nil-instance-method","name":"usertype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L372"},"def":{"name":"usertype","return_type":"String | ::Nil","visibility":"Public","body":"@usertype"}},{"html_id":"usertype=(usertype:String|Nil)-instance-method","name":"usertype=","abstract":false,"args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"args_string":"(usertype : String | Nil)","args_html":"(usertype : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L372"},"def":{"name":"usertype=","args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usertype = usertype"}}]},{"html_id":"drivers/Floorsense/UserGroup","path":"Floorsense/UserGroup.html","kind":"class","full_name":"Floorsense::UserGroup","name":"UserGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L198"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L198"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L196"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L196"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L197"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L197"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Floorsense/UserLocation","path":"Floorsense/UserLocation.html","kind":"class","full_name":"Floorsense::UserLocation","name":"UserLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool|Nil-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L225"},"def":{"name":"active","return_type":"Bool | ::Nil","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool|Nil)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil)","args_html":"(active : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L225"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@active = active"}},{"html_id":"cid:Int32|Nil-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L220"},"def":{"name":"cid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32|Nil)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"args_string":"(cid : Int32 | Nil)","args_html":"(cid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L220"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool|Nil-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L224"},"def":{"name":"confirmed","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool|Nil)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"args_string":"(confirmed : Bool | Nil)","args_html":"(confirmed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L224"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"finish:Time|Nil-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L213"},"def":{"name":"finish","return_type":"Time | ::Nil","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Time|Nil)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"args_string":"(finish : Time | Nil)","args_html":"(finish : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L213"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"floorname:String|Nil-instance-method","name":"floorname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L219"},"def":{"name":"floorname","return_type":"String | ::Nil","visibility":"Public","body":"@floorname"}},{"html_id":"floorname=(floorname:String|Nil)-instance-method","name":"floorname=","abstract":false,"args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"args_string":"(floorname : String | Nil)","args_html":"(floorname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L219"},"def":{"name":"floorname=","args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floorname = floorname"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L217"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L217"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"groupname:String|Nil-instance-method","name":"groupname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L222"},"def":{"name":"groupname","return_type":"String | ::Nil","visibility":"Public","body":"@groupname"}},{"html_id":"groupname=(groupname:String|Nil)-instance-method","name":"groupname=","abstract":false,"args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"args_string":"(groupname : String | Nil)","args_html":"(groupname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L222"},"def":{"name":"groupname=","args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@groupname = groupname"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L218"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L218"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L204"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L204"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"occupied:Bool|Nil-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L216"},"def":{"name":"occupied","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool|Nil)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"args_string":"(occupied : Bool | Nil)","args_html":"(occupied : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L216"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32|Nil-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32|Nil)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"args_string":"(occupiedtime : Int32 | Nil)","args_html":"(occupiedtime : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L215"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L215"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L223"},"def":{"name":"privacy","return_type":"Bool | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(privacy : Bool | Nil)","args_html":"(privacy : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L223"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"start:Time|Nil-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L210"},"def":{"name":"start","return_type":"Time | ::Nil","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Time|Nil)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"args_string":"(start : Time | Nil)","args_html":"(start : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L210"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L205"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L205"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Voucher","path":"Floorsense/Voucher.html","kind":"class","full_name":"Floorsense::Voucher","name":"Voucher","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L429"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L430"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardswipe:Bool-instance-method","name":"cardswipe","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe","return_type":"Bool","visibility":"Public","body":"@cardswipe"}},{"html_id":"cardswipe=(cardswipe:Bool)-instance-method","name":"cardswipe=","abstract":false,"args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"args_string":"(cardswipe : Bool)","args_html":"(cardswipe : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe=","args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"visibility":"Public","body":"@cardswipe = cardswipe"}},{"html_id":"controller_id:String-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L442"},"def":{"name":"controller_id","return_type":"String","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:String)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"args_string":"(controller_id : String)","args_html":"(controller_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L442"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L448"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L448"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"duration:Int64-instance-method","name":"duration","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L450"},"def":{"name":"duration","return_type":"Int64","visibility":"Public","body":"@duration"}},{"html_id":"duration=(duration:Int64)-instance-method","name":"duration=","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"args_string":"(duration : Int64)","args_html":"(duration : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L450"},"def":{"name":"duration=","args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"visibility":"Public","body":"@duration = duration"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L433"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L433"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expired:Int64-instance-method","name":"expired","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L451"},"def":{"name":"expired","return_type":"Int64","visibility":"Public","body":"@expired"}},{"html_id":"expired=(expired:Int64)-instance-method","name":"expired=","abstract":false,"args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"args_string":"(expired : Int64)","args_html":"(expired : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L451"},"def":{"name":"expired=","args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"visibility":"Public","body":"@expired = expired"}},{"html_id":"lastuse:Int64-instance-method","name":"lastuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L432"},"def":{"name":"lastuse","return_type":"Int64","visibility":"Public","body":"@lastuse"}},{"html_id":"lastuse=(lastuse:Int64)-instance-method","name":"lastuse=","abstract":false,"args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"args_string":"(lastuse : Int64)","args_html":"(lastuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L432"},"def":{"name":"lastuse=","args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"visibility":"Public","body":"@lastuse = lastuse"}},{"html_id":"locker_key:String-instance-method","name":"locker_key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L439"},"def":{"name":"locker_key","return_type":"String","visibility":"Public","body":"@locker_key"}},{"html_id":"locker_key=(locker_key:String)-instance-method","name":"locker_key=","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L439"},"def":{"name":"locker_key=","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_key = locker_key"}},{"html_id":"maxuse:Int64-instance-method","name":"maxuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L453"},"def":{"name":"maxuse","return_type":"Int64","visibility":"Public","body":"@maxuse"}},{"html_id":"maxuse=(maxuse:Int64)-instance-method","name":"maxuse=","abstract":false,"args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"args_string":"(maxuse : Int64)","args_html":"(maxuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L453"},"def":{"name":"maxuse=","args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"visibility":"Public","body":"@maxuse = maxuse"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L461"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L461"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L462"},"def":{"name":"notes","return_type":"String","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String"}],"args_string":"(notes : String)","args_html":"(notes : String)","location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L462"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"notified:Int64-instance-method","name":"notified","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L455"},"def":{"name":"notified","return_type":"Int64","visibility":"Public","body":"@notified"}},{"html_id":"notified=(notified:Int64)-instance-method","name":"notified=","abstract":false,"args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"args_string":"(notified : Int64)","args_html":"(notified : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L455"},"def":{"name":"notified=","args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"visibility":"Public","body":"@notified = notified"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L447"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L447"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"release:Bool-instance-method","name":"release","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L449"},"def":{"name":"release","return_type":"Bool","visibility":"Public","body":"@release"}},{"html_id":"release=(release:Bool)-instance-method","name":"release=","abstract":false,"args":[{"name":"release","external_name":"release","restriction":"Bool"}],"args_string":"(release : Bool)","args_html":"(release : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L449"},"def":{"name":"release=","args":[{"name":"release","external_name":"release","restriction":"Bool"}],"visibility":"Public","body":"@release = release"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L454"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L454"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"template:String-instance-method","name":"template","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L460"},"def":{"name":"template","return_type":"String","visibility":"Public","body":"@template"}},{"html_id":"template=(template:String)-instance-method","name":"template=","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"}],"args_string":"(template : String)","args_html":"(template : String)","location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L460"},"def":{"name":"template=","args":[{"name":"template","external_name":"template","restriction":"String"}],"visibility":"Public","body":"@template = template"}},{"html_id":"unlock:Bool-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L459"},"def":{"name":"unlock","return_type":"Bool","visibility":"Public","body":"@unlock"}},{"html_id":"unlock=(unlock:Bool)-instance-method","name":"unlock=","abstract":false,"args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"args_string":"(unlock : Bool)","args_html":"(unlock : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L459"},"def":{"name":"unlock=","args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"visibility":"Public","body":"@unlock = unlock"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L467"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L467"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}},{"html_id":"usecount:Int64-instance-method","name":"usecount","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L452"},"def":{"name":"usecount","return_type":"Int64","visibility":"Public","body":"@usecount"}},{"html_id":"usecount=(usecount:Int64)-instance-method","name":"usecount=","abstract":false,"args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"args_string":"(usecount : Int64)","args_html":"(usecount : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L452"},"def":{"name":"usecount=","args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"visibility":"Public","body":"@usecount = usecount"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L466"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L466"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"validfrom:Int64-instance-method","name":"validfrom","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L456"},"def":{"name":"validfrom","return_type":"Int64","visibility":"Public","body":"@validfrom"}},{"html_id":"validfrom=(validfrom:Int64)-instance-method","name":"validfrom=","abstract":false,"args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"args_string":"(validfrom : Int64)","args_html":"(validfrom : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L456"},"def":{"name":"validfrom=","args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"visibility":"Public","body":"@validfrom = validfrom"}},{"html_id":"validto:Int64-instance-method","name":"validto","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L457"},"def":{"name":"validto","return_type":"Int64","visibility":"Public","body":"@validto"}},{"html_id":"validto=(validto:Int64)-instance-method","name":"validto=","abstract":false,"args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"args_string":"(validto : Int64)","args_html":"(validto : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L457"},"def":{"name":"validto=","args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"visibility":"Public","body":"@validto = validto"}},{"html_id":"voucher_id:String-instance-method","name":"voucher_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id","return_type":"String","visibility":"Public","body":"@voucher_id"}},{"html_id":"voucher_id=(voucher_id:String)-instance-method","name":"voucher_id=","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"args_string":"(voucher_id : String)","args_html":"(voucher_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id=","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"visibility":"Public","body":"@voucher_id = voucher_id"}}]}]},{"html_id":"drivers/Freespace","path":"Freespace.html","kind":"module","full_name":"Freespace","name":"Freespace","abstract":false,"locations":[{"filename":"src/freespace/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Freespace/Category","path":"Freespace/Category.html","kind":"class","full_name":"Freespace::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"color_scheme:String|Nil-instance-method","name":"color_scheme","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L75"},"def":{"name":"color_scheme","return_type":"String | ::Nil","visibility":"Public","body":"@color_scheme"}},{"html_id":"color_scheme=(color_scheme:String|Nil)-instance-method","name":"color_scheme=","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"args_string":"(color_scheme : String | Nil)","args_html":"(color_scheme : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L75"},"def":{"name":"color_scheme=","args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"visibility":"Public","body":"@color_scheme = color_scheme"}},{"html_id":"icon_url:String|Nil-instance-method","name":"icon_url","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L71"},"def":{"name":"icon_url","return_type":"String | ::Nil","visibility":"Public","body":"@icon_url"}},{"html_id":"icon_url=(icon_url:String|Nil)-instance-method","name":"icon_url=","abstract":false,"args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"args_string":"(icon_url : String | Nil)","args_html":"(icon_url : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L71"},"def":{"name":"icon_url=","args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@icon_url = icon_url"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L58"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L59"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L59"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"ordering_index:Int32|Nil-instance-method","name":"ordering_index","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L78"},"def":{"name":"ordering_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@ordering_index"}},{"html_id":"ordering_index=(ordering_index:Int32|Nil)-instance-method","name":"ordering_index=","abstract":false,"args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"args_string":"(ordering_index : Int32 | Nil)","args_html":"(ordering_index : Int32 | Nil)","location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L78"},"def":{"name":"ordering_index=","args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@ordering_index = ordering_index"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L62"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L62"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"show_in_analytics:Bool-instance-method","name":"show_in_analytics","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics","return_type":"Bool","visibility":"Public","body":"@show_in_analytics"}},{"html_id":"show_in_analytics=(show_in_analytics:Bool)-instance-method","name":"show_in_analytics=","abstract":false,"args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"args_string":"(show_in_analytics : Bool)","args_html":"(show_in_analytics : Bool)","location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics=","args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"visibility":"Public","body":"@show_in_analytics = show_in_analytics"}},{"html_id":"show_on_signage:Bool-instance-method","name":"show_on_signage","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage","return_type":"Bool","visibility":"Public","body":"@show_on_signage"}},{"html_id":"show_on_signage=(show_on_signage:Bool)-instance-method","name":"show_on_signage=","abstract":false,"args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"args_string":"(show_on_signage : Bool)","args_html":"(show_on_signage : Bool)","location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage=","args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"visibility":"Public","body":"@show_on_signage = show_on_signage"}}]},{"html_id":"drivers/Freespace/Device","path":"Freespace/Device.html","kind":"class","full_name":"Freespace::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L84"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L84"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L87"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L87"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Freespace/Location","path":"Freespace/Location.html","kind":"class","full_name":"Freespace::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L37"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L37"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"policy:Bool-instance-method","name":"policy","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L44"},"def":{"name":"policy","return_type":"Bool","visibility":"Public","body":"@policy"}},{"html_id":"policy=(policy:Bool)-instance-method","name":"policy=","abstract":false,"args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"args_string":"(policy : Bool)","args_html":"(policy : Bool)","location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L44"},"def":{"name":"policy=","args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"visibility":"Public","body":"@policy = policy"}},{"html_id":"raw:Bool-instance-method","name":"raw","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L43"},"def":{"name":"raw","return_type":"Bool","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:Bool)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"args_string":"(raw : Bool)","args_html":"(raw : Bool)","location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L43"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"visibility":"Public","body":"@raw = raw"}}]},{"html_id":"drivers/Freespace/SensorAPI","path":"Freespace/SensorAPI.html","kind":"class","full_name":"Freespace::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/sensor_api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/freespace/sensor_api.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L207"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"client:STOMP::Client-instance-method","name":"client","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L54"},"def":{"name":"client","return_type":"STOMP::Client","visibility":"Public","body":"if (__temp_1 = @client).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SensorAPI#client cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"client?:STOMP::Client|Nil-instance-method","name":"client?","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L54"},"def":{"name":"client?","return_type":"STOMP::Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L66"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nhostname = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\n@client = STOMP::Client.new(hostname)\nsend(client.stomp.to_s)\nschedule.clear\nschedule.in(5.seconds) do\n @auth_key = nil\nend\nschedule.every(10.seconds) do\n heart_beat\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L212"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nloctions = @zone_mappings[zone_id]?\nif loctions\nelse\n return [] of Nil\nend\nloctions.flat_map do |loc_id|\n location_id = loc_id.to_i64\n loc_details = @floor_mappings[loc_id]\n @space_state.values.compact_map do |activity|\n if ((activity.location_id != location_id) || (activity.state == 0)) || activity.capacity > 1\n next\n end\n {location: activity.capacity == 1 ? \"desk\" : \"area\", at_location: activity.state, map_id: activity.name, level: loc_details[:level_id], building: loc_details[:building_id], capacity: activity.capacity}\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L79"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n@spaces.clear\n@auth_key = @client = nil\n"}},{"html_id":"get_location(location_id:String|Int64):Array(Space)-instance-method","name":"get_location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"args_string":"(location_id : String | Int64) : Array(Space)","args_html":"(location_id : String | Int64) : Array(Space)","location":{"filename":"src/freespace/sensor_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L113"},"def":{"name":"get_location","args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"return_type":"Array(Space)","visibility":"Public","body":"response = http(\"POST\", \"/api/locations/#{location_id}/spaces\", headers: {\"X-Auth-Key\" => get_token, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nif response.success?\nelse\n raise(\"issue obtaining to location #{location_id}: status code #{response.status_code}\\n#{response.body}\")\nend\nspaces = Array(Space).from_json(response.body)\nspaces.each do |space|\n @spaces[space.id] = space\nend\nspaces\n"}},{"html_id":"get_token:String-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L135"},"def":{"name":"get_token","return_type":"String","visibility":"Public","body":"auth_key = @auth_key\nif auth_key\n return auth_key\nend\nresponse = http(\"POST\", \"/login\", headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"login response: #{response.body}\"\nend\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nschedule.in(5.seconds) do\n @auth_key = nil\nend\n@auth_key = response.headers[\"X-Auth-Key\"]\n"}},{"html_id":"heart_beat-instance-method","name":"heart_beat","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L86"},"def":{"name":"heart_beat","visibility":"Public","body":"send((client.send(\"/beat/#{Time.utc.to_unix}\")).to_s, wait: false, priority: 0)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L197"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/freespace/sensor_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L202"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_mappings.clear\n@floor_mappings.each do |location_id, details|\n @zone_mappings[details[:level_id]] << location_id\n @zone_mappings[details[:building_id]] << location_id\nend\nif @connected\n disconnect\nend\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/freespace/sensor_api.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L157"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"frame = STOMP::Frame.new(bytes)\ncase frame.command\nwhen .connected?\n client.negotiate(frame)\n @floor_mappings.keys.each do |location_id|\n begin\n subscribe_location(location_id)\n rescue error\n logger.error(exception: error) do\n \"failed to subscribe to #{location_id}, skipping\"\n end\n end\n end\nwhen .message?\n activity = SpaceActivity.from_json(frame.body_text)\n if space = @spaces[activity.space_id]?\n activity.location_id = space.location_id\n activity.capacity = space.capacity\n activity.name = space.name\n @space_state[activity.space_id] = activity\n self[\"space-#{activity.space_id}\"] = {location: space.location_id, name: space.name, capacity: space.capacity, count: activity.state, last_updated: activity.utc_epoch}\n self[\"last_change\"] = Time.utc.to_unix\n else\n logger.warn do\n \"unknown space id: #{activity.space_id}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"spaces_details:Hash(Int64,Freespace::Space)-instance-method","name":"spaces_details","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L103"},"def":{"name":"spaces_details","visibility":"Public","body":"@spaces"}},{"html_id":"spaces_state:Hash(Int64,Freespace::SpaceActivity)-instance-method","name":"spaces_state","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L108"},"def":{"name":"spaces_state","visibility":"Public","body":"@space_state"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","doc":"We need an API key to connect to the websocket","summary":"

We need an API key to connect to the websocket

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L48"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"X-Auth-Key\" => get_token}"}}]},{"html_id":"drivers/Freespace/Space","path":"Freespace/Space.html","kind":"class","full_name":"Freespace::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L92"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L93"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L115"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L115"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:Category-instance-method","name":"category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L105"},"def":{"name":"category","return_type":"Category","visibility":"Public","body":"@category"}},{"html_id":"category=(category:Category)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"Category"}],"args_string":"(category : Category)","args_html":"(category : Category)","location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L105"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"Category"}],"visibility":"Public","body":"@category = category"}},{"html_id":"counted:Bool-instance-method","name":"counted","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L124"},"def":{"name":"counted","return_type":"Bool","visibility":"Public","body":"@counted"}},{"html_id":"counted=(counted:Bool)-instance-method","name":"counted=","abstract":false,"args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"args_string":"(counted : Bool)","args_html":"(counted : Bool)","location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L124"},"def":{"name":"counted=","args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"visibility":"Public","body":"@counted = counted"}},{"html_id":"department:Category-instance-method","name":"department","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L106"},"def":{"name":"department","return_type":"Category","visibility":"Public","body":"@department"}},{"html_id":"department=(department:Category)-instance-method","name":"department=","abstract":false,"args":[{"name":"department","external_name":"department","restriction":"Category"}],"args_string":"(department : Category)","args_html":"(department : Category)","location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L106"},"def":{"name":"department=","args":[{"name":"department","external_name":"department","restriction":"Category"}],"visibility":"Public","body":"@department = department"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L110"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device=(device:Device)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Device"}],"args_string":"(device : Device)","args_html":"(device : Device)","location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L110"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"Device"}],"visibility":"Public","body":"@device = device"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L95"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"live:Bool-instance-method","name":"live","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L114"},"def":{"name":"live","return_type":"Bool","visibility":"Public","body":"@live"}},{"html_id":"live=(live:Bool)-instance-method","name":"live=","abstract":false,"args":[{"name":"live","external_name":"live","restriction":"Bool"}],"args_string":"(live : Bool)","args_html":"(live : Bool)","location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L114"},"def":{"name":"live=","args":[{"name":"live","external_name":"live","restriction":"Bool"}],"visibility":"Public","body":"@live = live"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L96"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L96"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L123"},"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L123"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"marker:Hash(String,JSON::Any)-instance-method","name":"marker","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L101"},"def":{"name":"marker","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@marker"}},{"html_id":"marker=(marker:Hash(String,JSON::Any))-instance-method","name":"marker=","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"args_string":"(marker : Hash(String, JSON::Any))","args_html":"(marker : Hash(String, JSON::Any))","location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L101"},"def":{"name":"marker=","args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@marker = marker"}},{"html_id":"marker_unique_id:String|Nil-instance-method","name":"marker_unique_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id","return_type":"String | ::Nil","visibility":"Public","body":"@marker_unique_id"}},{"html_id":"marker_unique_id=(marker_unique_id:String|Nil)-instance-method","name":"marker_unique_id=","abstract":false,"args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"args_string":"(marker_unique_id : String | Nil)","args_html":"(marker_unique_id : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id=","args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@marker_unique_id = marker_unique_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L97"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L97"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"sensing_policy_id:Int32-instance-method","name":"sensing_policy_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id","return_type":"Int32","visibility":"Public","body":"@sensing_policy_id"}},{"html_id":"sensing_policy_id=(sensing_policy_id:Int32)-instance-method","name":"sensing_policy_id=","abstract":false,"args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"args_string":"(sensing_policy_id : Int32)","args_html":"(sensing_policy_id : Int32)","location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id=","args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"visibility":"Public","body":"@sensing_policy_id = sensing_policy_id"}},{"html_id":"serial:Int32-instance-method","name":"serial","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L120"},"def":{"name":"serial","return_type":"Int32","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:Int32)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"args_string":"(serial : Int32)","args_html":"(serial : Int32)","location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L120"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"visibility":"Public","body":"@serial = serial"}},{"html_id":"srf:SRF-instance-method","name":"srf","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L98"},"def":{"name":"srf","return_type":"SRF","visibility":"Public","body":"@srf"}},{"html_id":"srf=(srf:SRF)-instance-method","name":"srf=","abstract":false,"args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"args_string":"(srf : SRF)","args_html":"(srf : SRF)","location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L98"},"def":{"name":"srf=","args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"visibility":"Public","body":"@srf = srf"}},{"html_id":"sub_category:Category-instance-method","name":"sub_category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L104"},"def":{"name":"sub_category","return_type":"Category","visibility":"Public","body":"@sub_category"}},{"html_id":"sub_category=(sub_category:Category)-instance-method","name":"sub_category=","abstract":false,"args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"args_string":"(sub_category : Category)","args_html":"(sub_category : Category)","location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L104"},"def":{"name":"sub_category=","args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"visibility":"Public","body":"@sub_category = sub_category"}}]},{"html_id":"drivers/Freespace/SpaceActivity","path":"Freespace/SpaceActivity.html","kind":"class","full_name":"Freespace::SpaceActivity","name":"SpaceActivity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @capacity).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#capacity cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L24"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"capacity?:Int32|Nil-instance-method","name":"capacity?","abstract":false,"def":{"name":"capacity?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L7"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L7"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @location_id).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#location_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L21"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_id?:Int64|Nil-instance-method","name":"location_id?","abstract":false,"def":{"name":"location_id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L27"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"presence?-instance-method","name":"presence?","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L16"},"def":{"name":"presence?","visibility":"Public","body":"@state > 0"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"state:Int32-instance-method","name":"state","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L14"},"def":{"name":"state","return_type":"Int32","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int32)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int32"}],"args_string":"(state : Int32)","args_html":"(state : Int32)","location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L14"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int32"}],"visibility":"Public","body":"@state = state"}},{"html_id":"utc_epoch:Int64-instance-method","name":"utc_epoch","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch","return_type":"Int64","visibility":"Public","body":"@utc_epoch"}},{"html_id":"utc_epoch=(utc_epoch:Int64)-instance-method","name":"utc_epoch=","abstract":false,"args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"args_string":"(utc_epoch : Int64)","args_html":"(utc_epoch : Int64)","location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch=","args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"visibility":"Public","body":"@utc_epoch = utc_epoch"}}]},{"html_id":"drivers/Freespace/SRF","path":"Freespace/SRF.html","kind":"class","full_name":"Freespace::SRF","name":"SRF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Int32-instance-method","name":"x","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L50"},"def":{"name":"x","return_type":"Int32","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Int32)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"}],"args_string":"(x : Int32)","args_html":"(x : Int32)","location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L50"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Int32"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Int32-instance-method","name":"y","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L51"},"def":{"name":"y","return_type":"Int32","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Int32)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(y : Int32)","args_html":"(y : Int32)","location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L51"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"@y = y"}},{"html_id":"z:Int32-instance-method","name":"z","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L52"},"def":{"name":"z","return_type":"Int32","visibility":"Public","body":"@z"}},{"html_id":"z=(z:Int32)-instance-method","name":"z=","abstract":false,"args":[{"name":"z","external_name":"z","restriction":"Int32"}],"args_string":"(z : Int32)","args_html":"(z : Int32)","location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L52"},"def":{"name":"z=","args":[{"name":"z","external_name":"z","restriction":"Int32"}],"visibility":"Public","body":"@z = z"}}]}]},{"html_id":"drivers/Gallagher","path":"Gallagher.html","kind":"module","full_name":"Gallagher","name":"Gallagher","abstract":false,"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Gallagher/AccessGroup","path":"Gallagher/AccessGroup.html","kind":"class","full_name":"Gallagher::AccessGroup","name":"AccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L185"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L186"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholders:NamedTuple(href:String)-instance-method","name":"cardholders","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@cardholders"}},{"html_id":"cardholders=(cardholders:NamedTuple(href:String))-instance-method","name":"cardholders=","abstract":false,"args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"args_string":"(cardholders : NamedTuple(href: String))","args_html":"(cardholders : NamedTuple(href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders=","args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"visibility":"Public","body":"@cardholders = cardholders"}},{"html_id":"children:Array(NamedTuple(href:String,name:String))|Nil-instance-method","name":"children","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children","return_type":"Array(NamedTuple(href: String, name: String)) | ::Nil","visibility":"Public","body":"@children"}},{"html_id":"children=(children:Array(NamedTuple(href:String,name:String))|Nil)-instance-method","name":"children=","abstract":false,"args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"args_string":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","args_html":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children=","args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"visibility":"Public","body":"@children = children"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(id:String,href:String)-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division","return_type":"NamedTuple(id: String, href: String)","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(id:String,href:String))-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"args_string":"(division : NamedTuple(id: String, href: String))","args_html":"(division : NamedTuple(id: String, href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"visibility":"Public","body":"@division = division"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent:NamedTuple(href:String|Nil,name:String)|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent","return_type":"NamedTuple(href: String | ::Nil, name: String) | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:NamedTuple(href:String|Nil,name:String)|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"args_string":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","args_html":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"visibility":"Public","body":"@parent = parent"}}]},{"html_id":"drivers/Gallagher/AccessGroupMembership","path":"Gallagher/AccessGroupMembership.html","kind":"class","full_name":"Gallagher::AccessGroupMembership","name":"AccessGroupMembership","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L213"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L214"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholder:NamedTuple(href:String,name:String)-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder","return_type":"NamedTuple(href: String, name: String)","visibility":"Public","body":"@cardholder"}},{"html_id":"cardholder=(cardholder:NamedTuple(href:String,name:String))-instance-method","name":"cardholder=","abstract":false,"args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"args_string":"(cardholder : NamedTuple(href: String, name: String))","args_html":"(cardholder : NamedTuple(href: String, name: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder=","args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"visibility":"Public","body":"@cardholder = cardholder"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Card","path":"Gallagher/Card.html","kind":"struct","full_name":"Gallagher::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(href:Nil|String,status:NamedTuple(value:String,type:Nil|String)|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"args_string":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","args_html":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L133"},"def":{"name":"new","args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(href, status)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ble_facility_id:Int64|Nil-instance-method","name":"ble_facility_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ble_facility_id"}},{"html_id":"ble_facility_id=(ble_facility_id:Int64|Nil)-instance-method","name":"ble_facility_id=","abstract":false,"args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"args_string":"(ble_facility_id : Int64 | Nil)","args_html":"(ble_facility_id : Int64 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id=","args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ble_facility_id = ble_facility_id"}},{"html_id":"card_serial_number:String|Nil-instance-method","name":"card_serial_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"card_serial_number=(card_serial_number:String|Nil)-instance-method","name":"card_serial_number=","abstract":false,"args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"args_string":"(card_serial_number : String | Nil)","args_html":"(card_serial_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number=","args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@card_serial_number = card_serial_number"}},{"html_id":"credential_class:String|Nil-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class","return_type":"String | ::Nil","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String|Nil)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"args_string":"(credential_class : String | Nil)","args_html":"(credential_class : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"credential_id:String|Nil-instance-method","name":"credential_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id","return_type":"String | ::Nil","visibility":"Public","body":"@credential_id"}},{"html_id":"credential_id=(credential_id:String|Nil)-instance-method","name":"credential_id=","abstract":false,"args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"args_string":"(credential_id : String | Nil)","args_html":"(credential_id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id=","args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_id = credential_id"}},{"html_id":"e2e_key:String|Nil-instance-method","name":"e2e_key","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key","return_type":"String | ::Nil","visibility":"Public","body":"@e2e_key"}},{"html_id":"e2e_key=(e2e_key:String|Nil)-instance-method","name":"e2e_key=","abstract":false,"args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"args_string":"(e2e_key : String | Nil)","args_html":"(e2e_key : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key=","args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@e2e_key = e2e_key"}},{"html_id":"facility_code:String|Nil-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code","return_type":"String | ::Nil","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String|Nil)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"args_string":"(facility_code : String | Nil)","args_html":"(facility_code : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"invitation:Invitation|Nil-instance-method","name":"invitation","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation","return_type":"Invitation | ::Nil","visibility":"Public","body":"@invitation"}},{"html_id":"invitation=(invitation:Invitation|Nil)-instance-method","name":"invitation=","abstract":false,"args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"args_string":"(invitation : Invitation | Nil)","args_html":"(invitation : Invitation | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation=","args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"visibility":"Public","body":"@invitation = invitation"}},{"html_id":"issue_level:Int32|Nil-instance-method","name":"issue_level","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_level"}},{"html_id":"issue_level=(issue_level:Int32|Nil)-instance-method","name":"issue_level=","abstract":false,"args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"args_string":"(issue_level : Int32 | Nil)","args_html":"(issue_level : Int32 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level=","args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@issue_level = issue_level"}},{"html_id":"number:String|Nil-instance-method","name":"number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number","return_type":"String | ::Nil","visibility":"Public","body":"@number"}},{"html_id":"number=(number:String|Nil)-instance-method","name":"number=","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(number : String | Nil)","args_html":"(number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number=","args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@number = number"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:NamedTuple(href:String|Nil,name:String|Nil)|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:NamedTuple(href:String|Nil,name:String|Nil)|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"args_string":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","args_html":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Cardholder","path":"Gallagher/Cardholder.html","kind":"class","full_name":"Gallagher::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(first_name:Nil|String,last_name:Nil|String,short_name:Nil|String,description:Nil|String,authorised:Bool|Nil,cards:Array(Gallagher::Card)|Hash(String,Array(Gallagher::Card))|Nil,access_groups:Array(Gallagher::CardholderAccessGroup)|Hash(String,Array(Gallagher::CardholderAccessGroup))|Nil,division:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"args_string":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","args_html":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(first_name, last_name, short_name, description, authorised, cards, access_groups, division)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil-instance-method","name":"access_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups","return_type":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil","visibility":"Public","body":"@access_groups"}},{"html_id":"access_groups=(access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil)-instance-method","name":"access_groups=","abstract":false,"args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"args_string":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","args_html":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups=","args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"visibility":"Public","body":"@access_groups = access_groups"}},{"html_id":"authorised:Bool|Nil-instance-method","name":"authorised","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised","return_type":"Bool | ::Nil","visibility":"Public","body":"@authorised"}},{"html_id":"authorised=(authorised:Bool|Nil)-instance-method","name":"authorised=","abstract":false,"args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"args_string":"(authorised : Bool | Nil)","args_html":"(authorised : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised=","args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@authorised = authorised"}},{"html_id":"cards:Array(Card)|Hash(String,Array(Card))|Nil-instance-method","name":"cards","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards","return_type":"Array(Card) | Hash(String, Array(Card)) | ::Nil","visibility":"Public","body":"@cards"}},{"html_id":"cards=(cards:Array(Card)|Hash(String,Array(Card))|Nil)-instance-method","name":"cards=","abstract":false,"args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"args_string":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","args_html":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards=","args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"visibility":"Public","body":"@cards = cards"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(href:String)|Nil-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(href:String)|Nil)-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(division : NamedTuple(href: String) | Nil)","args_html":"(division : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@division = division"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_accessed:Time|Nil-instance-method","name":"last_accessed","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed","return_type":"Time | ::Nil","visibility":"Public","body":"@last_accessed"}},{"html_id":"last_accessed=(last_accessed:Time|Nil)-instance-method","name":"last_accessed=","abstract":false,"args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"args_string":"(last_accessed : Time | Nil)","args_html":"(last_accessed : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed=","args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@last_accessed = last_accessed"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"usercode:String|Nil-instance-method","name":"usercode","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode","return_type":"String | ::Nil","visibility":"Public","body":"@usercode"}},{"html_id":"usercode=(usercode:String|Nil)-instance-method","name":"usercode=","abstract":false,"args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"args_string":"(usercode : String | Nil)","args_html":"(usercode : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode=","args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usercode = usercode"}}]},{"html_id":"drivers/Gallagher/CardholderAccessGroup","path":"Gallagher/CardholderAccessGroup.html","kind":"class","full_name":"Gallagher::CardholderAccessGroup","name":"CardholderAccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(access_group:NamedTuple(href:Nil|String,name:Nil|String),from:Time|Nil=nil,until__arg0:Time|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"args_string":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","args_html":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L181"},"def":{"name":"new","args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_group, from, __arg0)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"access_group:NamedTuple(href:String|Nil,name:String|Nil)-instance-method","name":"access_group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil)","visibility":"Public","body":"@access_group"}},{"html_id":"access_group=(access_group:NamedTuple(href:String|Nil,name:String|Nil))-instance-method","name":"access_group=","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"args_string":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","args_html":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group=","args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"visibility":"Public","body":"@access_group = access_group"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/CardType","path":"Gallagher/CardType.html","kind":"class","full_name":"Gallagher::CardType","name":"CardType","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_card_states:Array(String)-instance-method","name":"available_card_states","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states","return_type":"Array(String)","visibility":"Public","body":"@available_card_states"}},{"html_id":"available_card_states=(available_card_states:Array(String))-instance-method","name":"available_card_states=","abstract":false,"args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"args_string":"(available_card_states : Array(String))","args_html":"(available_card_states : Array(String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states=","args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"visibility":"Public","body":"@available_card_states = available_card_states"}},{"html_id":"credential_class:String-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class","return_type":"String","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"args_string":"(credential_class : String)","args_html":"(credential_class : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"facility_code:String-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code","return_type":"String","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"args_string":"(facility_code : String)","args_html":"(facility_code : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"maximum_number:String|Nil-instance-method","name":"maximum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number","return_type":"String | ::Nil","visibility":"Public","body":"@maximum_number"}},{"html_id":"maximum_number=(maximum_number:String|Nil)-instance-method","name":"maximum_number=","abstract":false,"args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"args_string":"(maximum_number : String | Nil)","args_html":"(maximum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number=","args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@maximum_number = maximum_number"}},{"html_id":"minimum_number:String|Nil-instance-method","name":"minimum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number","return_type":"String | ::Nil","visibility":"Public","body":"@minimum_number"}},{"html_id":"minimum_number=(minimum_number:String|Nil)-instance-method","name":"minimum_number=","abstract":false,"args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"args_string":"(minimum_number : String | Nil)","args_html":"(minimum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number=","args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@minimum_number = minimum_number"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/DoorDetails","path":"Gallagher/DoorDetails.html","kind":"class","full_name":"Gallagher::DoorDetails","name":"DoorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L38"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L36"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/Event","path":"Gallagher/Event.html","kind":"struct","full_name":"Gallagher::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L232"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L233"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card:Card|Nil-instance-method","name":"card","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L243"},"def":{"name":"card","return_type":"Card | ::Nil","visibility":"Public","body":"@card"}},{"html_id":"cardholder:IdName|Nil-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L244"},"def":{"name":"cardholder","return_type":"IdName | ::Nil","visibility":"Public","body":"@cardholder"}},{"html_id":"group:IdName-instance-method","name":"group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L235"},"def":{"name":"group","return_type":"IdName","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L239"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"matching_type?(types:Array(Int32)|Nil)-instance-method","name":"matching_type?","abstract":false,"args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"args_string":"(types : Array(Int32) | Nil)","args_html":"(types : Array(Int32) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L246"},"def":{"name":"matching_type?","args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"visibility":"Public","body":"if types\nelse\n return true\nend\ntypes.map(&.to_s).includes?(type.id)\n"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L241"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"source:IdName-instance-method","name":"source","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L237"},"def":{"name":"source","return_type":"IdName","visibility":"Public","body":"@source"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L240"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:IdName-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L236"},"def":{"name":"type","return_type":"IdName","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Gallagher/Events","path":"Gallagher/Events.html","kind":"struct","full_name":"Gallagher::Events","name":"Events","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L252"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L253"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(Event)-instance-method","name":"events","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L255"},"def":{"name":"events","return_type":"Array(Event)","visibility":"Public","body":"@events"}},{"html_id":"update_url-instance-method","name":"update_url","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L258"},"def":{"name":"update_url","visibility":"Public","body":"updates[:href]"}},{"html_id":"updates:NamedTuple(href:String)-instance-method","name":"updates","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L256"},"def":{"name":"updates","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@updates"}}]},{"html_id":"drivers/Gallagher/IdName","path":"Gallagher/IdName.html","kind":"struct","full_name":"Gallagher::IdName","name":"IdName","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L226"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L229"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Gallagher/Invitation","path":"Gallagher/Invitation.html","kind":"class","full_name":"Gallagher::Invitation","name":"Invitation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"mobile=(mobile:String|Nil)-instance-method","name":"mobile=","abstract":false,"args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"args_string":"(mobile : String | Nil)","args_html":"(mobile : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile=","args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mobile = mobile"}},{"html_id":"single_factor_only:Bool|Nil-instance-method","name":"single_factor_only","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@single_factor_only"}},{"html_id":"single_factor_only=(single_factor_only:Bool|Nil)-instance-method","name":"single_factor_only=","abstract":false,"args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"args_string":"(single_factor_only : Bool | Nil)","args_html":"(single_factor_only : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only=","args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@single_factor_only = single_factor_only"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"args_string":"(status : String | Nil)","args_html":"(status : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/Gallagher/PDF","path":"Gallagher/PDF.html","kind":"class","full_name":"Gallagher::PDF","name":"PDF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"doc":"Personal Data Field","summary":"

Personal Data Field

","constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L16"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default:String|Nil-instance-method","name":"default","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default","return_type":"String | ::Nil","visibility":"Public","body":"@default"}},{"html_id":"default=(default:String|Nil)-instance-method","name":"default=","abstract":false,"args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"args_string":"(default : String | Nil)","args_html":"(default : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default=","args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default = default"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"required:Bool|Nil-instance-method","name":"required","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required","return_type":"Bool | ::Nil","visibility":"Public","body":"@required"}},{"html_id":"required=(required:Bool|Nil)-instance-method","name":"required=","abstract":false,"args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"args_string":"(required : Bool | Nil)","args_html":"(required : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required=","args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@required = required"}},{"html_id":"server_display_name:String|Nil-instance-method","name":"server_display_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name","return_type":"String | ::Nil","visibility":"Public","body":"@server_display_name"}},{"html_id":"server_display_name=(server_display_name:String|Nil)-instance-method","name":"server_display_name=","abstract":false,"args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"args_string":"(server_display_name : String | Nil)","args_html":"(server_display_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name=","args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@server_display_name = server_display_name"}},{"html_id":"unique:Bool|Nil-instance-method","name":"unique","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique","return_type":"Bool | ::Nil","visibility":"Public","body":"@unique"}},{"html_id":"unique=(unique:Bool|Nil)-instance-method","name":"unique=","abstract":false,"args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"args_string":"(unique : Bool | Nil)","args_html":"(unique : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique=","args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@unique = unique"}}]},{"html_id":"drivers/Gallagher/RestAPI","path":"Gallagher/RestAPI.html","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"access_group_member?(group_id:String|Int32,cardholder_id:String|Int32):String|Nil-instance-method","name":"access_group_member?","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L402"},"def":{"name":"access_group_member?","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"String | ::Nil","visibility":"Public","body":"group_id = group_id.to_s\ndetails = (get_cardholder(cardholder_id)).access_groups\naccess_groups = case details\nin Array(CardholderAccessGroup)\n details\nin Hash(String, Array(CardholderAccessGroup))\n details.values.flatten\nin Nil\n return nil\nend\naccess = access_groups.find do |group|\n if href = group.access_group[:href]\n href.ends_with?(group_id)\n end\nend\naccess.try(&.href)\n"}},{"html_id":"access_groups_endpoint:String-instance-method","name":"access_groups_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L123"},"def":{"name":"access_groups_endpoint","return_type":"String","visibility":"Public","body":"@access_groups_endpoint"}},{"html_id":"access_zones_endpoint:String-instance-method","name":"access_zones_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L124"},"def":{"name":"access_zones_endpoint","return_type":"String","visibility":"Public","body":"@access_zones_endpoint"}},{"html_id":"add_access_group_member(group_id:String|Int32,cardholder_id:String|Int32,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"add_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L433"},"def":{"name":"add_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"if from_unix\n from_time = Time.unix(from_unix)\nend\nif until_unix\n until_time = Time.unix(until_unix)\nend\ngroup = CardholderAccessGroup.new({href: \"#{@uri_base}#{@access_groups_endpoint}/#{group_id}\".as(String | ::Nil), name: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, access_groups: [group])\n"}},{"html_id":"card_holder_id_lookup(email:String):String|Int64|Nil-instance-method","name":"card_holder_id_lookup","doc":"using an email address, lookup the security system id for a user","summary":"

using an email address, lookup the security system id for a user

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L653"},"def":{"name":"card_holder_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(query_cardholders(email, @unique_pdf_name)).first?.try(&.id)"}},{"html_id":"card_holder_lookup(id:String|Int64):CardHolderDetails-instance-method","name":"card_holder_lookup","doc":"given a card holder id, lookup the details of the card holder","summary":"

given a card holder id, lookup the details of the card holder

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : CardHolderDetails","args_html":"(id : String | Int64) : CardHolderDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L658"},"def":{"name":"card_holder_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"CardHolderDetails","visibility":"Public","body":"details = get_cardholder(id.to_s)\nfirst_name = details.first_name\nlast_name = details.last_name\nshort_name = details.short_name\nname = if first_name.presence\n \"#{first_name} #{last_name}\"\nelse\n short_name || \"\"\nend\nemail_key = \"@#{@unique_pdf_name}\"\nCardHolder.new(id, name, details.json_unmapped[email_key]?.try(&.as_s))\n"}},{"html_id":"card_types_endpoint:String-instance-method","name":"card_types_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L127"},"def":{"name":"card_types_endpoint","return_type":"String","visibility":"Public","body":"@card_types_endpoint"}},{"html_id":"cardholder_exists?(filter:String)-instance-method","name":"cardholder_exists?","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L366"},"def":{"name":"cardholder_exists?","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"!(query_cardholders(filter)).empty?"}},{"html_id":"cardholders_endpoint:String-instance-method","name":"cardholders_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L125"},"def":{"name":"cardholders_endpoint","return_type":"String","visibility":"Public","body":"@cardholders_endpoint"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L118"},"def":{"name":"connected","visibility":"Public","body":"query_endpoints"}},{"html_id":"create_cardholder(first_name:String,last_name:String,description:String=\"acardholder\",authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"create_cardholder","doc":"#\nCreate a new cardholder.\n@param first_name [String] The first name of the new cardholder. Either this or last name is required (but we should assume both are for most instances).\n@param last_name [String] The last name of the new cardholder. Either this or first name is required (but we should assume both are for most instances).\n@option options [String] :division The division to add the cardholder to. This is required when making the request to create the cardholder but if none is passed the `default_division` is used.\n@option options [Hash] :pdfs A hash containing all PDFs to add to the user in the form `{ some_pdf_name: some_pdf_value, another_pdf_name: another_pdf_value }`.\n@option options [Array] :cards An array of cards to be added to this cardholder which can include both virtual and physical cards.\n@option options [Array] :access_groups An array of access groups to add this cardholder to. These may include `from` and `until` fields to dictate temporary access.\n@option options [Array] :competencies An array of competencies to add this cardholder to.\n@return [Hash] The cardholder that was created.","summary":"

\n \n \nCreate a new cardholder.

","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(first_name : String, last_name : String, description : String = \"a cardholder\", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(first_name : String, last_name : String, description : String = "a cardholder", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L278"},"def":{"name":"create_cardholder","args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"short_name || (short_name = \"#{first_name} #{last_name}\")\nshort_name = short_name[0..15]\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, cards, access_groups, division_href || @default_division.not_nil!)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = post(@cardholders_endpoint, headers: @headers, body: payload)\nCardholder.from_json(process(response))\n"}},{"html_id":"delete_card(href:String)-instance-method","name":"delete_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L361"},"def":{"name":"delete_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = delete(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"failed to delete card #{href}\")\nend\n"}},{"html_id":"delete_href(href:String)-instance-method","name":"delete_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L527"},"def":{"name":"delete_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"delete_card(href)"}},{"html_id":"disable_card(href:String)-instance-method","name":"disable_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L354"},"def":{"name":"disable_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"uri = get_path(href)\ncardholder_id = (uri.split('/'))[-3]\ncard = Card.new(uri, {value: @disabled_card_value, type: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, update_cards: [card])\n"}},{"html_id":"divisions_endpoint:String-instance-method","name":"divisions_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L126"},"def":{"name":"divisions_endpoint","return_type":"String","visibility":"Public","body":"@divisions_endpoint"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":567,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L567"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"doors.map do |d|\n Door.new(d.id, d.name)\nend"}},{"html_id":"doors-instance-method","name":"doors","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":557,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L557"},"def":{"name":"doors","visibility":"Public","body":"response = get(@doors_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\n(NamedTuple(results: Array(DoorDetails)).from_json(response.body))[:results]\n"}},{"html_id":"doors_endpoint:String-instance-method","name":"doors_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L130"},"def":{"name":"doors_endpoint","return_type":"String","visibility":"Public","body":"@doors_endpoint"}},{"html_id":"events_endpoint:String-instance-method","name":"events_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L128"},"def":{"name":"events_endpoint","return_type":"String","visibility":"Public","body":"@events_endpoint"}},{"html_id":"free_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"free_zone","doc":"forces a zone to be free, that is doors are unlocked","summary":"

forces a zone to be free, that is doors are unlocked

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L464"},"def":{"name":"free_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/free\", headers: @headers)\nresponse.success?\n"}},{"html_id":"get_access_group(id:String)-instance-method","name":"get_access_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L377"},"def":{"name":"get_access_group","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"access group request failed with #{response.status_code}\\n#{response.body}\")\nend\nAccessGroup.from_json(response.body)\n"}},{"html_id":"get_access_group_members(id:String)-instance-method","name":"get_access_group_members","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L391"},"def":{"name":"get_access_group_members","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}/cardholders\", headers: @headers)\nif response.success?\nelse\n raise(\"access group members request failed with #{response.status_code}\\n#{response.body}\")\nend\njson = response.body\nbegin\n NamedTuple(cardholders: Array(NamedTuple(href: String | ::Nil, cardholder: NamedTuple(name: String, href: String | ::Nil)))).from_json(json)\nrescue error\n logger.warn(exception: error) do\n \"#get_access_group_members failed to parse:\\n#{json}\"\n end\nend\n"}},{"html_id":"get_access_groups(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_access_groups","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L383"},"def":{"name":"get_access_groups","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_groups_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"access groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(AccessGroup, response.body)\n"}},{"html_id":"get_base64_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_base64_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L230"},"def":{"name":"get_base64_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nBase64.strict_encode(response.body)\n"}},{"html_id":"get_card_type(id:String|Int32|Nil=nil)-instance-method","name":"get_card_type","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"args_string":"(id : String | Int32 | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L261"},"def":{"name":"get_card_type","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"visibility":"Public","body":"card = (id || @default_card_type) || (raise(\"no default card type provided\"))\nresponse = get(\"#{@card_types_endpoint}/#{card}\", headers: @headers)\nif response.success?\nelse\n raise(\"card type request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardType.from_json(response.body)\n"}},{"html_id":"get_cardholder(id:String|Int32)-instance-method","name":"get_cardholder","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"args_string":"(id : String | Int32)","args_html":"(id : String | Int32)","location":{"filename":"src/gallagher/rest_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L237"},"def":{"name":"get_cardholder","args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardholder.from_json(response.body)\n"}},{"html_id":"get_division(id:String)-instance-method","name":"get_division","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":440,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L440"},"def":{"name":"get_division","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@divisions_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"division request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_divisions(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_divisions","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":446,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L446"},"def":{"name":"get_divisions","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@divisions_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"divisions request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"get_event_groups-instance-method","name":"get_event_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L490"},"def":{"name":"get_event_groups","visibility":"Public","body":"response = get(\"#{@events_endpoint}/groups\", headers: @headers)\nif response.success?\nelse\n raise(\"event groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_events-instance-method","name":"get_events","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":484,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L484"},"def":{"name":"get_events","visibility":"Public","body":"response = get(@events_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"events request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_href(href:String)-instance-method","name":"get_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":521,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L521"},"def":{"name":"get_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = get(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"generic request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L224"},"def":{"name":"get_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_pdfs(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_pdfs","doc":"#\nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.\nThey will usually be for things like email address, employee ID or some other field specific to whoever is hosting the Gallagher instance.\nAllows retrieval of the PDFs used in the Gallagher instance, primarily so we can get the PDF's ID and use that to filter cardholders based on that PDF.\n\n@param name [String] The name of the PDF which we want to retrieve. This will only return one result (as the PDF names are unique).\n@return [Hash] A list of PDF results and a next link for pagination (we will generally have less than 100 PDFs so 'next' link will mostly be unused):\n@example An example response:\n {\n \"results\": [\n {\n \"name\": \"email\",\n \"id\": \"5516\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/5516\"\n },\n {\n \"name\": \"cellphone\",\n \"id\": \"9998\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/9998\",\n \"serverDisplayName\": \"Site B\"\n }\n ],\n \"next\": {\n \"href\": \"https://localhost:8904/api/personal_data_fields?pos=900&sort=id\"\n }\n }","summary":"

\n \n \nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.

","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L216"},"def":{"name":"get_pdfs","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@pdfs_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(PDF, response.body)\n"}},{"html_id":"get_zones(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L454"},"def":{"name":"get_zones","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_zones_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"zones request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L69"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nspawn do\n event_monitor\nend\nschedule.every(1.minutes) do\n query_endpoints\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L79"},"def":{"name":"on_unload","visibility":"Public","body":"@poll_events = false"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L91"},"def":{"name":"on_update","visibility":"Public","body":"uri = URI.parse(config.uri.not_nil!)\n@uri_base || (@uri_base = \"#{uri.scheme}://#{uri.host}\")\napi_key = setting(String, :api_key)\n@api_key = \"GGL-API-KEY #{api_key}\"\n@door_event_channel = (setting?(String, :door_event_channel)) || \"event\"\nnew_map = {} of String => EventMap\n((setting?(Array(EventMap), :event_mappings)) || ([] of EventMap)).each do |event|\n new_map[event.group.to_s] = event\nend\n@event_map = new_map\n@unique_pdf_name = setting(String, :unique_pdf_name)\n@default_division = setting?(String, :default_division_href)\n@default_facility_code = setting?(String, :default_facility_code)\n@default_card_type = setting?(String, :default_card_type_href)\n@default_access_group = setting?(String, :default_access_group_href)\n@disabled_card_value = (setting(::Union(String, ::Nil), :disabled_card_value)) || \"Disabled (manually)\"\n@headers = {\"Authorization\" => @api_key, \"Content-Type\" => \"application/json\"}\n"}},{"html_id":"pdfs_endpoint:String-instance-method","name":"pdfs_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L129"},"def":{"name":"pdfs_endpoint","return_type":"String","visibility":"Public","body":"@pdfs_endpoint"}},{"html_id":"query_card_types-instance-method","name":"query_card_types","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L255"},"def":{"name":"query_card_types","visibility":"Public","body":"response = get(@card_types_endpoint, {\"top\" => \"10000\"}, headers: @headers)\nif response.success?\nelse\n raise(\"card types request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(CardType, response.body)\n"}},{"html_id":"query_cardholders(filter:String,pdf_name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"query_cardholders","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","args_html":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L243"},"def":{"name":"query_cardholders","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"pdf_id = \"pdf_\" + (pdf_name ? (get_pdfs(pdf_name)).first.id : @fixed_pdf_id).not_nil!\nquery = {pdf_id => exact_match ? \"\\\"#{filter}\\\"\" : filter, \"top\" => \"10000\"}\nresponse = get(@cardholders_endpoint, query, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder query request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(Cardholder, response.body)\n"}},{"html_id":"query_endpoints-instance-method","name":"query_endpoints","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L138"},"def":{"name":"query_endpoints","visibility":"Public","body":"response = get(\"/api\", headers: @headers)\nif response.success?\nelse\n raise(\"endpoints request failed with #{response.status_code}\\n#{response.body}\")\nend\npayload = JSON.parse(response.body)\nlogger.debug do\n \"endpoints query returned:\\n#{payload.inspect}\"\nend\napi_version = SemanticVersion.parse((payload[\"version\"].as_s.split('.'))[0..2].join('.'))\nraw_uri = payload[\"features\"][\"cardholders\"][\"cardholders\"][\"href\"].as_s\nuri = URI.parse(raw_uri)\n@uri_base = \"#{uri.scheme}://#{uri.host}\"\n@cardholders_endpoint = get_path(raw_uri)\n@divisions_endpoint = @cardholders_endpoint.sub(\"cardholders\", \"divisions\")\n@access_groups_endpoint = get_path(payload[\"features\"][\"accessGroups\"][\"accessGroups\"][\"href\"].as_s)\n@access_zones_endpoint = get_path(payload[\"features\"][\"accessZones\"][\"accessZones\"][\"href\"].as_s)\n@events_endpoint = get_path(payload[\"features\"][\"events\"][\"events\"][\"href\"].as_s)\nbegin\n @doors_endpoint = get_path(payload[\"features\"][\"doors\"][\"doors\"][\"href\"].as_s)\nrescue error\n logger.debug(exception: error) do\n \"error locating doors feature URI\"\n end\nend\nif api_version >= (SemanticVersion.parse(\"8.10.0\"))\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"assign\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"personalDataFields\"][\"personalDataFields\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name}, @headers)\nelse\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"cardTypes\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"items\"][\"items\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name, \"type\" => \"33\"}, @headers)\nend\nif response.success?\n logger.debug do\n \"PDFS request returned:\\n#{response.body}\"\n end\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nresults = (JSON.parse(response.body))[\"results\"].as_a\nif results.empty?\nelse\n @fixed_pdf_id = results.first[\"id\"].as_s\nend\n"}},{"html_id":"remove_access_group_member(group_id:String|Int32,cardholder_id:String|Int32):Bool-instance-method","name":"remove_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","location":{"filename":"src/gallagher/rest_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L423"},"def":{"name":"remove_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"Bool","visibility":"Public","body":"if href = access_group_member?(group_id, cardholder_id)\n response = delete(get_path(href), headers: @headers)\n if response.success?\n else\n raise(\"remove access group member request failed with #{response.status_code}\\n#{response.body}\")\n end\n true\nelse\n false\nend"}},{"html_id":"remove_cardholder_access(id:String|Nil=nil,href:String|Nil=nil)-instance-method","name":"remove_cardholder_access","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil = nil, href : String | Nil = nil)","args_html":"(id : String | Nil = nil, href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L370"},"def":{"name":"remove_cardholder_access","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"update_cardholder(id, href, authorised: false)"}},{"html_id":"reset_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"reset_zone","doc":"returns the zone to it's default scheduled state, removing any overrides","summary":"

returns the zone to it's default scheduled state, removing any overrides

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L478"},"def":{"name":"reset_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/cancel\", headers: @headers)\nresponse.success?\n"}},{"html_id":"secure_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"secure_zone","doc":"forces a zone to be secure and require a swipe card to access","summary":"

forces a zone to be secure and require a swipe card to access

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L471"},"def":{"name":"secure_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/secure\", headers: @headers)\nresponse.success?\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":572,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L572"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@doors_endpoint}/#{door_id}/open\", headers: @headers)\nresponse.success?\n"}},{"html_id":"update_cardholder(id:String|Int32|Nil=nil,href:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,remove_cards:Array(Card)|Nil=nil,update_cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,remove_access_groups:Array(CardholderAccessGroup)|Nil=nil,update_access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"update_cardholder","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L305"},"def":{"name":"update_cardholder","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"url = href ? get_path(href) : \"#{@cardholders_endpoint}/#{id.not_nil!}\"\nif (cards || remove_cards) || update_cards\n card_updates = {} of String => Array(Card)\n if cards\n card_updates[\"add\"] = cards\n end\n if update_cards\n card_updates[\"update\"] = update_cards\n end\n if remove_cards\n card_updates[\"remove\"] = remove_cards.map do |card|\n Card.new(card.href, nil)\n end\n end\nend\nif (access_groups || remove_access_groups) || update_access_groups\n groups_update = {} of String => Array(CardholderAccessGroup)\n if access_groups\n groups_update[\"add\"] = access_groups\n end\n if update_access_groups\n groups_update[\"update\"] = update_access_groups\n end\n if remove_access_groups\n groups_update[\"remove\"] = remove_access_groups\n end\nend\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, card_updates, groups_update, division_href)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = patch(url, headers: @headers, body: payload)\nresult = process(response)\nresult.presence && (Cardholder.from_json(result))\n"}},{"html_id":"uri_base:String-instance-method","name":"uri_base","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base","return_type":"String","visibility":"Public","body":"if (__temp_1 = @uri_base).nil?\n ::raise(::NilAssertionError.new(\"Gallagher::RestAPI#uri_base cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"uri_base?:String|Nil-instance-method","name":"uri_base?","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base?","return_type":"String | ::Nil","visibility":"Public","body":"@uri_base"}},{"html_id":"zone_access_add_member(zone_id:String|Int64,card_holder_id:String|Int64,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"zone_access_add_member","doc":"add a member to the zone","summary":"

add a member to the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":692,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L692"},"def":{"name":"zone_access_add_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"add_access_group_member(zone_id.to_s, card_holder_id.to_s, from_unix, until_unix)"}},{"html_id":"zone_access_id_lookup(name:String,exact_match:Bool=true):String|Int64|Nil-instance-method","name":"zone_access_id_lookup","doc":"using a name, lookup the access zone id","summary":"

using a name, lookup the access zone id

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","args_html":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L674"},"def":{"name":"zone_access_id_lookup","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(get_access_groups(name, exact_match)).first?.try(&.id)"}},{"html_id":"zone_access_lookup(id:String|Int64):ZoneDetails-instance-method","name":"zone_access_lookup","doc":"given an access zone id, lookup the details of the zone","summary":"

given an access zone id, lookup the details of the zone

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : ZoneDetails","args_html":"(id : String | Int64) : ZoneDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":679,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L679"},"def":{"name":"zone_access_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"ZoneDetails","visibility":"Public","body":"details = get_access_group(id.to_s)\nZoneInfo.new(id, details.name, details.description)\n"}},{"html_id":"zone_access_member?(zone_id:String|Int64,card_holder_id:String|Int64):String|Int64|Nil-instance-method","name":"zone_access_member?","doc":"return the id that represents the access permission (truthy indicates access)","summary":"

return the id that represents the access permission (truthy indicates access)

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L686"},"def":{"name":"zone_access_member?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"access_group_member?(zone_id.to_s, card_holder_id.to_s)"}},{"html_id":"zone_access_remove_member(zone_id:String|Int64,card_holder_id:String|Int64)-instance-method","name":"zone_access_remove_member","doc":"remove a member from the zone","summary":"

remove a member from the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":698,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L698"},"def":{"name":"zone_access_remove_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"visibility":"Public","body":"remove_access_group_member(zone_id.to_s, card_holder_id.to_s)"}}],"macros":[{"html_id":"get_results(klass,response)-macro","name":"get_results","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"args_string":"(klass, response)","args_html":"(klass, response)","location":{"filename":"src/gallagher/rest_api.cr","line_number":496,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L496"},"def":{"name":"get_results","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%body\n = \n{{ response }}\n\n begin\n \n%results\n = Results(\n{{ klass }}\n).from_json \n%body\n\n \n%result_array\n = \n%results\n.results\n loop do\n \n%next_uri\n = \n%results\n.next_uri\n break unless \n%next_uri\n\n \n%body\n = get_raw(\n%next_uri\n[:href])\n \n%results\n = Results(\n{{ klass }}\n).from_json(\n%body\n)\n \n%result_array\n.concat \n%results\n.results\n \nend\n \n%result_array\n\n rescue \nerror\n logger.debug \n{ \"failed to parse response body:\\n#{\n%body\n}\\n\" }\n raise \nerror\n \nend\n \n"}}],"types":[{"html_id":"drivers/Gallagher/RestAPI/BadRequest","path":"Gallagher/RestAPI/BadRequest.html","kind":"class","full_name":"Gallagher::RestAPI::BadRequest","name":"BadRequest","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":555,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L555"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/CardHolder","path":"Gallagher/RestAPI/CardHolder.html","kind":"struct","full_name":"Gallagher::RestAPI::CardHolder","name":"CardHolder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L641"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,email)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"args_string":"(id, name, email)","args_html":"(id, name, email)","location":{"filename":"src/gallagher/rest_api.cr","line_number":642,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L642"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L641"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/Gallagher/RestAPI/CardHolderDetails","path":"Gallagher/RestAPI/CardHolderDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::CardHolderDetails","name":"CardHolderDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L638"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/Conflict","path":"Gallagher/RestAPI/Conflict.html","kind":"class","full_name":"Gallagher::RestAPI::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L551"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/EventMap","path":"Gallagher/RestAPI/EventMap.html","kind":"struct","full_name":"Gallagher::RestAPI::EventMap","name":"EventMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(group:Int32,types:Array(Int32)|Nil,action:Action)-class-method","name":"new","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"args_string":"(group : Int32, types : Array(Int32) | Nil, action : Action)","args_html":"(group : Int32, types : Array(Int32) | Nil, action : Action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"new","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"visibility":"Public","body":"_ = allocate\n_.initialize(group, types, action)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Action-instance-method","name":"action","abstract":false,"def":{"name":"action","return_type":"Action","visibility":"Public","body":"@action"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@group.clone, @types.clone, @action.clone)"}},{"html_id":"copy_with(group_group=@group,types_types=@types,action_action=@action)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"args_string":"(group _group = @group, types _types = @types, action _action = @action)","args_html":"(group _group = @group, types _types = @types, action _action = @action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"copy_with","args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"visibility":"Public","body":"self.class.new(_group, _types, _action)"}},{"html_id":"group:Int32-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"Int32","visibility":"Public","body":"@group"}},{"html_id":"types:Array(Int32)|Nil-instance-method","name":"types","abstract":false,"def":{"name":"types","return_type":"Array(Int32) | ::Nil","visibility":"Public","body":"@types"}}]},{"html_id":"drivers/Gallagher/RestAPI/NotFound","path":"Gallagher/RestAPI/NotFound.html","kind":"class","full_name":"Gallagher::RestAPI::NotFound","name":"NotFound","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":553,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L553"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneDetails","path":"Gallagher/RestAPI/ZoneDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::ZoneDetails","name":"ZoneDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L639"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneInfo","path":"Gallagher/RestAPI/ZoneInfo.html","kind":"struct","full_name":"Gallagher::RestAPI::ZoneInfo","name":"ZoneInfo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L646"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,description)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"args_string":"(id, name, description)","args_html":"(id, name, description)","location":{"filename":"src/gallagher/rest_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L647"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L646"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]}]},{"html_id":"drivers/Gallagher/Results","path":"Gallagher/Results.html","kind":"class","full_name":"Gallagher::Results(ResultType)","name":"Results","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_uri:NamedTuple(href:String)|Nil-instance-method","name":"next_uri","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@next_uri"}},{"html_id":"next_uri=(next_uri:NamedTuple(href:String)|Nil)-instance-method","name":"next_uri=","abstract":false,"args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(next_uri : NamedTuple(href: String) | Nil)","args_html":"(next_uri : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri=","args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@next_uri = next_uri"}},{"html_id":"results:Array(ResultType)-instance-method","name":"results","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results","return_type":"Array(ResultType)","visibility":"Public","body":"@results"}},{"html_id":"results=(results:Array(ResultType))-instance-method","name":"results=","abstract":false,"args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"args_string":"(results : Array(ResultType))","args_html":"(results : Array(ResultType))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results=","args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"visibility":"Public","body":"@results = results"}}]},{"html_id":"drivers/Gallagher/ZoneSchedule","path":"Gallagher/ZoneSchedule.html","kind":"class","full_name":"Gallagher::ZoneSchedule","name":"ZoneSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/zone_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L25"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_presence:Bool|Nil-instance-method","name":"last_presence","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L44"},"def":{"name":"last_presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@last_presence"}},{"html_id":"last_status:String|Nil-instance-method","name":"last_status","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L43"},"def":{"name":"last_status","return_type":"String | ::Nil","visibility":"Public","body":"@last_status"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :gallagher_system)).presence || config.control_system.not_nil!.id\n@state_mappings = setting(Hash(String, String), :state_mappings)\n@zone_id = (setting?(String | Int64, :zone_id)) || (setting(String | Int64, :door_zone_id))\n@presence_timeout = ((setting?(Int32, :presence_timeout)) || 30).minutes\n"}},{"html_id":"state_mappings:Hash(String,String)-instance-method","name":"state_mappings","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L29"},"def":{"name":"state_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@state_mappings"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L24"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zone_id:String|Int64-instance-method","name":"zone_id","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L28"},"def":{"name":"zone_id","return_type":"String | Int64","visibility":"Public","body":"@zone_id"}}]}]},{"html_id":"drivers/GlobalCache","path":"GlobalCache.html","kind":"module","full_name":"GlobalCache","name":"GlobalCache","abstract":false,"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GlobalCache/Gc100","path":"GlobalCache/Gc100.html","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"}],"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"@relay_config = {} of String => Hash(Int32, String)\n@port_config = {} of String => Tuple(String, Int32)\nschedule.clear\nschedule.every(10.seconds, true) do\n logger.debug do\n \"-- Polling GC100\"\n end\n if status?(Bool, :config_indexed)\n do_send(\"get_NET,0:1\", priority: 0, wait: false)\n else\n get_devices\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L41"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_devices-instance-method","name":"get_devices","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L45"},"def":{"name":"get_devices","visibility":"Public","body":"do_send(\"getdevices\")"}},{"html_id":"ir(index:Int32,command:String,**options)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String, **options)","args_html":"(index : Int32, command : String, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L60"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"sendir,1:#{index},#{command}\", **options)"}},{"html_id":"ir_status?(index:Int32,**options)-instance-method","name":"ir_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L89"},"def":{"name":"ir_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\nself[:num_relays] = 0\nself[:num_ir] = 0\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/global_cache/gc_100.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L98"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nlogger.debug do\n \"GlobalCache sent #{data}\"\nend\ndata = data.split(',')\ntask_name = task.try(&.name) || \"unknown\"\ncase data[0]\nwhen \"state\", \"statechange\"\n type, index = self[:port_config][data[1]]\n self[\"#{type}#{index}\"] = data[2] == \"1\"\nwhen \"device\"\n address = data[1]\n number, type = data[2].split(' ')\n type = type.downcase\n __temp_697 = type\n @relay_config[__temp_697]? || (@relay_config[__temp_697] = {} of Int32 => String)\n current = @relay_config[type].size\n (current..((current + number.to_i) - 1)).each_with_index(1) do |i, dev_index|\n port = \"#{address}:#{dev_index}\"\n @relay_config[type][i] = port\n @port_config[port] = {type, i}\n end\n return task.try(&.success)\nwhen \"endlistdevices\"\n if @relay_config[\"relay\"]?\n self[:num_relays] = @relay_config[\"relay\"].size\n end\n if @relay_config[\"relaysensor\"]?\n @relay_config[\"relaysensor\"][1] = \"1:2\"\n @relay_config[\"relaysensor\"][2] = \"1:3\"\n @relay_config[\"relaysensor\"][3] = \"1:4\"\n self[:num_relays] = @relay_config[\"relaysensor\"].size\n end\n if @relay_config[\"ir\"]?\n self[:num_ir] = @relay_config[\"ir\"].size\n end\n self[:relay_config] = @relay_config\n self[:port_config] = @port_config\n logger.debug do\n \"self[:relay_config] is #{self[:relay_config]}\"\n end\n logger.debug do\n \"self[:port_config] is #{self[:port_config]}\"\n end\n @relay_config = {} of String => Hash(Int32, String)\n @port_config = {} of String => Tuple(String, Int32)\n self[:config_indexed] = true\n return task.try(&.success)\nend\nif data.size == 1\n error = case (data[0].split(' '))[1].to_i\n when 1\n \"Command was missing the carriage return delimiter\"\n when 2\n \"Invalid module address when looking for version\"\n when 3\n \"Invalid module address\"\n when 4\n \"Invalid connector address\"\n when 5\n \"Connector address 1 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 6\n \"Connector address 2 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 7\n \"Connector address 3 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 8\n \"Offset is set to an even transition number, but should be set to an odd transition number in the IR command\"\n when 9\n \"Maximum number of transitions exceeded (256 total on/off transitions allowed)\"\n when 10\n \"Number of transitions in the IR command is not even (the same number of on and off transitions is required)\"\n when 11\n \"Contact closure command sent to a module that is not a relay\"\n when 12\n \"Missing carriage return. All commands must end with a carriage return\"\n when 13\n \"State was requested of an invalid connector address, or the connector is programmed as IR out and not sensor in.\"\n when 14\n \"Command sent to the unit is not supported by the GC-100\"\n when 15\n \"Maximum number of IR transitions exceeded\"\n when 16\n \"Invalid number of IR transitions (must be an even number)\"\n when 21\n \"Attempted to send an IR command to a non-IR module\"\n when 23\n \"Command sent is not supported by this type of module\"\n else\n \"Unknown error\"\n end\n return task.try(&.abort(\"GlobalCache error for command #{task_name}: #{error}\"))\nend\ntask.try(&.success)\n"}},{"html_id":"relay(state:Bool,index:Int32=0,**options)-instance-method","name":"relay","doc":"`**options` here will be passed to the `task` to allow for different priorities","summary":"

**options here will be passed to the task to allow for different priorities

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(state : Bool, index : Int32 = 0, **options)","args_html":"(state : Bool, index : Int32 = 0, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L49"},"def":{"name":"relay","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n relays = (self[:relay_config][\"relay\"]? || self[:relay_config][\"relaysensor\"]?).not_nil!.as_h\n logger.debug do\n \"relays = #{relays}\"\n end\n connector = relays[index.to_s]\n do_send(\"setstate,#{connector},#{state ? 1 : 0}\", **options)\nelse\n logger.warn do\n \"Attempted to set relay on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"relay_status?(index:Int32,**options)-instance-method","name":"relay_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L80"},"def":{"name":"relay_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n connector = self[:relay_config][\"relay\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"set_ir(index:Int32,mode:IrMode,**options)-instance-method","name":"set_ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"args_string":"(index : Int32, mode : IrMode, **options)","args_html":"(index : Int32, mode : IrMode, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L71"},"def":{"name":"set_ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"set_IR,#{connector},#{mode}\", **options)\nelse\n logger.warn do\n \"Attempted to set IR mode on GlobalCache that does not exist: #{index}\"\n end\nend"}}],"types":[{"html_id":"drivers/GlobalCache/Gc100/IrMode","path":"GlobalCache/Gc100/IrMode.html","kind":"enum","full_name":"GlobalCache::Gc100::IrMode","name":"IrMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L64"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IR","name":"IR","value":"0"},{"id":"SENSOR","name":"SENSOR","value":"1"},{"id":"SENSOR_NOTIFY","name":"SENSOR_NOTIFY","value":"2"},{"id":"IR_NOCARRIER","name":"IR_NOCARRIER","value":"3"}],"namespace":{"html_id":"drivers/GlobalCache/Gc100","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100"},"instance_methods":[{"html_id":"ir?-instance-method","name":"ir?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L65"},"def":{"name":"ir?","visibility":"Public","body":"self == IR"}},{"html_id":"ir_nocarrier?-instance-method","name":"ir_nocarrier?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L68"},"def":{"name":"ir_nocarrier?","visibility":"Public","body":"self == IR_NOCARRIER"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L66"},"def":{"name":"sensor?","visibility":"Public","body":"self == SENSOR"}},{"html_id":"sensor_notify?-instance-method","name":"sensor_notify?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L67"},"def":{"name":"sensor_notify?","visibility":"Public","body":"self == SENSOR_NOTIFY"}}]}]},{"html_id":"drivers/GlobalCache/IRTV","path":"GlobalCache/IRTV.html","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(id:String,ir_set:String=\"\",ir_index:Int32=0)-instance-method","name":"channel","doc":"Actually send the IR commands, via the globalcache","summary":"

Actually send the IR commands, via the globalcache

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"args_string":"(id : String, ir_set : String = \"\", ir_index : Int32 = 0)","args_html":"(id : String, ir_set : String = "", ir_index : Int32 = 0)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L146"},"def":{"name":"channel","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"visibility":"Public","body":"if ir_set.presence\nelse\n ir_set = @default_ir_set\nend\nif ir_index == 0\n ir_index = @default_ir_index\nend\nresult = @channel_lookup[id].ir_commands.map do |ir_command_name|\n (system[@globalcache].ir(ir_index, @ir_commands[ir_set][ir_command_name])).get\n sleep(500.milliseconds)\nend\nself[:current_channel] = id\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L119"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache = setting(String, :globalcache_module)\n@default_ir_set = setting(String, :default_ir_set)\n@default_ir_index = setting(Int32, :default_ir_index)\n@channels = setting(Array(Channel), :channel_details)\nupdated_channel_lookup = {} of String => Channel\n@channels.each do |channel|\n updated_channel_lookup[channel.channel] = channel\nend\n@channel_lookup = updated_channel_lookup\nglobalcache_ir_sets = setting(Hash(String, String), :globalcache_ir_sets)\nupdated_ir_commands = {} of String => Hash(String, String)\nglobalcache_ir_sets.each do |device, all_commands|\n updated_ir_commands[device] = parse_all_commands(all_commands)\nend\n@ir_commands = updated_ir_commands\nself[:channel_details] = @channels\nself[:ir_commands] = @ir_commands\n"}}],"types":[{"html_id":"drivers/GlobalCache/IRTV/Channel","path":"GlobalCache/IRTV/Channel.html","kind":"class","full_name":"GlobalCache::IRTV::Channel","name":"Channel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GlobalCache/IRTV","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L87"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L86"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"ir_commands:Array(String)-instance-method","name":"ir_commands","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L88"},"def":{"name":"ir_commands","return_type":"Array(String)","visibility":"Public","body":"@ir_commands"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L85"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/GlobalCache/ProjectorScreen","path":"GlobalCache/ProjectorScreen.html","kind":"class","full_name":"GlobalCache::ProjectorScreen","name":"ProjectorScreen","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down-instance-method","name":"down","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L50"},"def":{"name":"down","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_down)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache_module = (setting(String, :globalcache_module)) || \"DigitalIO_1\"\n@relay_method = (setting(String, :globalcache_relay_method)) || \"pulse\"\n@relay_index_down = (setting(Int32, :globalcache_relay_index_down)) || 0\n@relay_index_up = (setting(Int32, :globalcache_relay_index_up)) || 1\n@relay_pulse_milliseconds = (setting(Int32, :globalcache_relay_pulse_milliseconds)) || 1000\n"}},{"html_id":"up-instance-method","name":"up","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L39"},"def":{"name":"up","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_up)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}}]}]},{"html_id":"drivers/GoBright","path":"GoBright.html","kind":"module","full_name":"GoBright","name":"GoBright","abstract":false,"locations":[{"filename":"src/gobright/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GoBright/AccessToken","path":"GoBright/AccessToken.html","kind":"struct","full_name":"GoBright::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L195"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"expires_at:Time-instance-method","name":"expires_at","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L198"},"def":{"name":"expires_at","return_type":"Time","visibility":"Public","body":"expires_in.seconds.from_now"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L196"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}}]},{"html_id":"drivers/GoBright/Amenity","path":"GoBright/Amenity.html","kind":"struct","full_name":"GoBright::Amenity","name":"Amenity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_for_desk:Bool|Nil-instance-method","name":"available_for_desk","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L101"},"def":{"name":"available_for_desk","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_desk"}},{"html_id":"available_for_parking:Bool|Nil-instance-method","name":"available_for_parking","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L104"},"def":{"name":"available_for_parking","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_parking"}},{"html_id":"available_for_room:Bool|Nil-instance-method","name":"available_for_room","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L98"},"def":{"name":"available_for_room","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_room"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L93"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L94"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L92"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"order:Int32|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L95"},"def":{"name":"order","return_type":"Int32 | ::Nil","visibility":"Public","body":"@order"}}]},{"html_id":"drivers/GoBright/API","path":"GoBright/API.html","kind":"class","full_name":"GoBright::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings(starting:Int64,ending:Int64,location_id:String|Array(String)|Nil=nil,space_id:String|Array(String)|Nil=nil)-instance-method","name":"bookings","doc":"the list of booking occurances in the time period specified","summary":"

the list of booking occurances in the time period specified

","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","args_html":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L121"},"def":{"name":"bookings","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"1000\")\n form.add(\"include\", \"spaces,organizer,attendees\")\n form.add(\"start\", (Time.unix(starting)).to_rfc3339)\n form.add(\"end\", (Time.unix(ending)).to_rfc3339)\n if location_id\n location_ids = location_id.is_a?(Array) ? location_id : [location_id]\n location_ids.each do |loc|\n form.add(\"locationIds\", loc)\n end\n end\n if space_id\n space_ids = space_id.is_a?(Array) ? space_id : [space_id]\n space_ids.each do |space|\n form.add(\"spaceIds\", space)\n end\n end\nend\nArray(Occurrence).from_json(fetch(\"/api/v2.0/bookings/occurrences?#{params}\"))\n"}},{"html_id":"fetch(location:String):String-instance-method","name":"fetch","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/gobright/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L25"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"next_page = location\nappend = location.includes?('?') ? '&' : '?'\nString.build do |str|\n str << \"[\"\n loop do\n logger.debug do\n \"requesting: #{next_page}\"\n end\n response = get(next_page, headers: HTTP::Headers {\"Authorization\" => get_token, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = begin\n Response.from_json(response.body)\n rescue error : JSON::SerializableError\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(error)\n end\n if data = payload.data || payload.items\n str << data.strip[1..-2]\n end\n continuation = payload.paging.try(&.token)\n total_items = payload.paging.try(&.total)\n if continuation\n next_page = \"#{location}#{append}continuationToken=#{continuation}\"\n else\n if total_items\n uri = URI.parse(next_page)\n params = uri.query_params\n skip = params[\"pagingSkip\"]?.try(&.to_i) || 0\n taking = params[\"pagingTake\"]?.try(&.to_i) || 100\n if (skip + taking) >= total_items\n break\n end\n params[\"pagingSkip\"] = (skip + taking).to_s\n uri.query_params = params\n next_page = uri.to_s\n else\n break\n end\n end\n str << \",\"\n end\n str << \"]\"\nend\n"}},{"html_id":"live_occupancy(location:String,type:SpaceType|Nil=nil)-instance-method","name":"live_occupancy","doc":"the occupancy status of the spaces","summary":"

the occupancy status of the spaces

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"args_string":"(location : String, type : SpaceType | Nil = nil)","args_html":"(location : String, type : SpaceType | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L144"},"def":{"name":"live_occupancy","args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n form.add(\"filterLocationId\", location)\n if type\n form.add(\"filterSpaceType\", type.value.to_s)\n end\nend\nArray(Occupancy).from_json(fetch(\"/api/v2.0/occupancy/space/live?#{params}\"))\n"}},{"html_id":"locations-instance-method","name":"locations","doc":"the list of buildings, levels, areas etc","summary":"

the list of buildings, levels, areas etc

","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L84"},"def":{"name":"locations","visibility":"Public","body":"Array(Location).from_json(fetch(\"/api/v2.0/locations?pagingTake=100\"))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}},{"html_id":"spaces(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces","doc":"a list of spaces in the locations. rooms, desks and parking","summary":"

a list of spaces in the locations.

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L89"},"def":{"name":"spaces","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"LocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"SpaceTypes\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces?#{params}\"))\n"}},{"html_id":"spaces_state(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces_state","doc":"Paged list of state per space, filtered by location/spacetype","summary":"

Paged list of state per space, filtered by location/spacetype

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L105"},"def":{"name":"spaces_state","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"filterLocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"filterSpaceType\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces/state?#{params}\"))\n"}}]},{"html_id":"drivers/GoBright/ApprovalState","path":"GoBright/ApprovalState.html","kind":"enum","full_name":"GoBright::ApprovalState","name":"ApprovalState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L203"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Inactive","name":"Inactive","value":"0"},{"id":"NeedsApproval","name":"NeedsApproval","value":"1"},{"id":"Approved","name":"Approved","value":"2"},{"id":"Rejected","name":"Rejected","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"approved?-instance-method","name":"approved?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L206"},"def":{"name":"approved?","visibility":"Public","body":"self == Approved"}},{"html_id":"inactive?-instance-method","name":"inactive?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L204"},"def":{"name":"inactive?","visibility":"Public","body":"self == Inactive"}},{"html_id":"needs_approval?-instance-method","name":"needs_approval?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L205"},"def":{"name":"needs_approval?","visibility":"Public","body":"self == NeedsApproval"}},{"html_id":"rejected?-instance-method","name":"rejected?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L207"},"def":{"name":"rejected?","visibility":"Public","body":"self == Rejected"}}]},{"html_id":"drivers/GoBright/Attendee","path":"GoBright/Attendee.html","kind":"struct","full_name":"GoBright::Attendee","name":"Attendee","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L222"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"email_address=(email_address:String|Nil)-instance-method","name":"email_address=","abstract":false,"args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"args_string":"(email_address : String | Nil)","args_html":"(email_address : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L222"},"def":{"name":"email_address=","args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email_address = email_address"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L223"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L223"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/GoBright/BookingType","path":"GoBright/BookingType.html","kind":"enum","full_name":"GoBright::BookingType","name":"BookingType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L210"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"BookingOnRoom","name":"BookingOnRoom","value":"0"},{"id":"ServiceOnly","name":"ServiceOnly","value":"1"},{"id":"BookingOnDesk","name":"BookingOnDesk","value":"2"},{"id":"BookingAsTeam","name":"BookingAsTeam","value":"3"},{"id":"BookingOnParking","name":"BookingOnParking","value":"4"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"booking_as_team?-instance-method","name":"booking_as_team?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L214"},"def":{"name":"booking_as_team?","visibility":"Public","body":"self == BookingAsTeam"}},{"html_id":"booking_on_desk?-instance-method","name":"booking_on_desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L213"},"def":{"name":"booking_on_desk?","visibility":"Public","body":"self == BookingOnDesk"}},{"html_id":"booking_on_parking?-instance-method","name":"booking_on_parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L215"},"def":{"name":"booking_on_parking?","visibility":"Public","body":"self == BookingOnParking"}},{"html_id":"booking_on_room?-instance-method","name":"booking_on_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L211"},"def":{"name":"booking_on_room?","visibility":"Public","body":"self == BookingOnRoom"}},{"html_id":"service_only?-instance-method","name":"service_only?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L212"},"def":{"name":"service_only?","visibility":"Public","body":"self == ServiceOnly"}}]},{"html_id":"drivers/GoBright/DeskPeriod","path":"GoBright/DeskPeriod.html","kind":"struct","full_name":"GoBright::DeskPeriod","name":"DeskPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L67"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L64"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L55"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L61"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L58"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Location","path":"GoBright/Location.html","kind":"struct","full_name":"GoBright::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_desk_periods:DeskPeriod|Nil-instance-method","name":"booking_desk_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L142"},"def":{"name":"booking_desk_periods","return_type":"DeskPeriod | ::Nil","visibility":"Public","body":"@booking_desk_periods"}},{"html_id":"booking_parking_periods:ParkingPeriod|Nil-instance-method","name":"booking_parking_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L145"},"def":{"name":"booking_parking_periods","return_type":"ParkingPeriod | ::Nil","visibility":"Public","body":"@booking_parking_periods"}},{"html_id":"full_path:String|Nil-instance-method","name":"full_path","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L130"},"def":{"name":"full_path","return_type":"String | ::Nil","visibility":"Public","body":"@full_path"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L133"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L110"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_id:String|Nil-instance-method","name":"image_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L139"},"def":{"name":"image_id","return_type":"String | ::Nil","visibility":"Public","body":"@image_id"}},{"html_id":"level:Int64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L127"},"def":{"name":"level","return_type":"Int64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L118"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name_indented:String|Nil-instance-method","name":"name_indented","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L121"},"def":{"name":"name_indented","return_type":"String | ::Nil","visibility":"Public","body":"@name_indented"}},{"html_id":"old_id:Int64|Nil-instance-method","name":"old_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L113"},"def":{"name":"old_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@old_id"}},{"html_id":"order:Int64|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L124"},"def":{"name":"order","return_type":"Int64 | ::Nil","visibility":"Public","body":"@order"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L116"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"visitor_kiosk_enabled:Bool|Nil-instance-method","name":"visitor_kiosk_enabled","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L136"},"def":{"name":"visitor_kiosk_enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@visitor_kiosk_enabled"}}]},{"html_id":"drivers/GoBright/LocationService","path":"GoBright/LocationService.html","kind":"class","full_name":"GoBright::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCHES","name":"NO_MATCHES","value":"[] of String"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L72"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"cache_space_details-instance-method","name":"cache_space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L75"},"def":{"name":"cache_space_details","visibility":"Public","body":"space_details = {} of String => Space\n(Array(Space).from_json(gobright.spaces.get.to_json)).each do |space|\n space_details[space.id] = space\nend\n@space_details = space_details\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/gobright/location_service.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L126"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"checking ownership of: #{mac_address}\"\nend\nif mac_address.starts_with?(\"gobright-\")\nelse\n return\nend\nid = (mac_address.split(\"gobright-\"))[1]\n@cached_booking_data.each do |zone_id, lookup|\n if booking = lookup[id]?\n return {location: \"booking\", assigned_to: booking.organizer.try(&.email_address) || (booking.attendees.first.email_address.as(String)), mac_address: mac_address}\n end\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L143"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && !(location.in?({\"desk\", \"area\", \"booking\"}))\n return [] of Nil\nend\ngobright_location_id = @floor_mappings[zone_id]\nspaces = {} of String => Space\nspace_details.each_value do |space|\n if space.location_id == gobright_location_id\n else\n next\n end\n spaces[space.id] = space.dup\nend\noccupancy = Array(Occupancy).from_json((gobright.live_occupancy(gobright_location_id, @default_space_type)).get.to_json)\noccupancy.each do |details|\n space = spaces[details.id]?\n if space\n else\n next\n end\n space.occupied = details.occupied? || false\nend\ndesk_types = @desk_space_types\noccupancy_locs = spaces.values.compact_map do |space|\n loc_type = space.type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n if (occupied = space.occupied?) || @return_empty_spaces\n {location: loc_type, at_location: occupied ? 1 : 0, map_id: space.name, level: zone_id, building: building_id, capacity: space.capacity || 1, gobright_location_id: gobright_location_id, gobright_space_name: space.name, gobright_space_type: space.type, gobright_space_id: space.id}\n end\nend\nif location && (location != \"booking\")\n return spaces\nend\nbookings = Array(Occurrence).from_json((gobright.bookings(1.minutes.ago.to_unix, 10.minutes.from_now.to_unix, gobright_location_id)).get.to_json)\nlookup = {} of String => Occurrence\nbooking_locs = bookings.compact_map do |occurrence|\n space = nil\n occurrence.spaces.each do |details|\n space = spaces[details.id]?\n if space\n break\n end\n end\n if space\n else\n next\n end\n occurrence.zone_id = zone_id\n occurrence.matched_space = space\n lookup[occurrence.id] = occurrence\n map_booking(occurrence, space, zone_id)\nend\n@cached_booking_data[zone_id] = lookup\nbooking_locs.map() do |__arg6|\n __arg6.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend + occupancy_locs.map() do |__arg7|\n __arg7.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L64"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L59"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"if (__temp_1 = @level_details).nil?\n @level_details = (Hash(String, LevelCapacity).from_json(area_management.level_details.get.to_json))\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"NOTE:: we could keep track of current bookings and then use that information to assign ownership of a desk\nif the desks are being booked via the check-in/check-out\nthis would allow us to locate","summary":"

NOTE : we could keep track of current bookings and then use that information to assign ownership of a desk if the desks are being booked via the check-in/check-out this would allow us to locate

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L93"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for user #{email}\"\nend\nmatches = [] of Occurrence\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n else\n next\n end\n matches << booking\n end\nend\nmatches.compact_map do |booking|\n zone_id = booking.zone_id\n map_booking(booking, booking.matched_space, zone_id, level_details[zone_id]?.try(&.desk_mappings))\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/gobright/location_service.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L114"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"if email\nelse\n return NO_MATCHES\nend\nlogger.debug do\n \"checking if any bookings for email: #{email}\"\nend\nmatches = [] of String\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n matches << \"gobright-#{booking.id}\"\n end\n end\nend\nmatches\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@desk_space_types = (setting?(Array(SpaceType), :desk_space_types)) || [SpaceType::Desk]\n@default_space_type = (setting?(SpaceType, :default_space_type)) || nil\n@floor_mappings = (setting(Hash(String, Mapping), :gobright_floor_mappings)).transform_values(&.location_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\ntimezone = Time::Location.load(system.timezone.presence || \"Australia/Sydney\")\nschedule.clear\nschedule.cron((setting?(String, :space_cache_cron)) || \"0 5 * * *\", timezone) do\n cache_space_details\nend\nschedule.every(10.minutes) do\n @level_details = nil\nend\n"}},{"html_id":"space_details:Hash(String,Space)-instance-method","name":"space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L73"},"def":{"name":"space_details","return_type":"Hash(String, Space)","visibility":"Public","body":"if (__temp_1 = @space_details).nil?\n @space_details = (cache_space_details)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/GoBright/LocationService/LevelCapacity","path":"GoBright/LocationService/LevelCapacity.html","kind":"struct","full_name":"GoBright::LocationService::LevelCapacity","name":"LevelCapacity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_mappings:Hash(String,String)-instance-method","name":"desk_mappings","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L42"},"def":{"name":"desk_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@desk_mappings"}}]},{"html_id":"drivers/GoBright/LocationService/Mapping","path":"GoBright/LocationService/Mapping.html","kind":"struct","full_name":"GoBright::LocationService::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L36"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}}]}]},{"html_id":"drivers/GoBright/Metadata","path":"GoBright/Metadata.html","kind":"struct","full_name":"GoBright::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L11"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"status_code:Int32|Nil-instance-method","name":"status_code","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L8"},"def":{"name":"status_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status_code"}},{"html_id":"validation_errors:Array(Hash(String,String))|Nil-instance-method","name":"validation_errors","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L14"},"def":{"name":"validation_errors","return_type":"Array(Hash(String, String)) | ::Nil","visibility":"Public","body":"@validation_errors"}}]},{"html_id":"drivers/GoBright/Occupancy","path":"GoBright/Occupancy.html","kind":"struct","full_name":"GoBright::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L182"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L183"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L186"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"occupied?:Bool|Nil-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L189"},"def":{"name":"occupied?","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}}]},{"html_id":"drivers/GoBright/Occurrence","path":"GoBright/Occurrence.html","kind":"struct","full_name":"GoBright::Occurrence","name":"Occurrence","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L226"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L227"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approval_state:ApprovalState|Nil-instance-method","name":"approval_state","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L244"},"def":{"name":"approval_state","return_type":"ApprovalState | ::Nil","visibility":"Public","body":"@approval_state"}},{"html_id":"approval_state=(approval_state:ApprovalState|Nil)-instance-method","name":"approval_state=","abstract":false,"args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"args_string":"(approval_state : ApprovalState | Nil)","args_html":"(approval_state : ApprovalState | Nil)","location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L244"},"def":{"name":"approval_state=","args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"visibility":"Public","body":"@approval_state = approval_state"}},{"html_id":"attendee_amount:Int32|Nil-instance-method","name":"attendee_amount","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount","return_type":"Int32 | ::Nil","visibility":"Public","body":"@attendee_amount"}},{"html_id":"attendee_amount=(attendee_amount:Int32|Nil)-instance-method","name":"attendee_amount=","abstract":false,"args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"args_string":"(attendee_amount : Int32 | Nil)","args_html":"(attendee_amount : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount=","args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@attendee_amount = attendee_amount"}},{"html_id":"attendees:Array(Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L260"},"def":{"name":"attendees","return_type":"Array(Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"attendees=(attendees:Array(Attendee))-instance-method","name":"attendees=","abstract":false,"args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"args_string":"(attendees : Array(Attendee))","args_html":"(attendees : Array(Attendee))","location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L260"},"def":{"name":"attendees=","args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"visibility":"Public","body":"@attendees = attendees"}},{"html_id":"booking_type:BookingType-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L235"},"def":{"name":"booking_type","return_type":"BookingType","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:BookingType)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"args_string":"(booking_type : BookingType)","args_html":"(booking_type : BookingType)","location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L235"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"composed_id:String-instance-method","name":"composed_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L232"},"def":{"name":"composed_id","return_type":"String","visibility":"Public","body":"@composed_id"}},{"html_id":"composed_id=(composed_id:String)-instance-method","name":"composed_id=","abstract":false,"args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"args_string":"(composed_id : String)","args_html":"(composed_id : String)","location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L232"},"def":{"name":"composed_id=","args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"visibility":"Public","body":"@composed_id = composed_id"}},{"html_id":"confirmation_active:Bool|Nil-instance-method","name":"confirmation_active","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmation_active"}},{"html_id":"confirmation_active=(confirmation_active:Bool|Nil)-instance-method","name":"confirmation_active=","abstract":false,"args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"args_string":"(confirmation_active : Bool | Nil)","args_html":"(confirmation_active : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active=","args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmation_active = confirmation_active"}},{"html_id":"confirmation_window_end:String|Nil-instance-method","name":"confirmation_window_end","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_end"}},{"html_id":"confirmation_window_end=(confirmation_window_end:String|Nil)-instance-method","name":"confirmation_window_end=","abstract":false,"args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_end : String | Nil)","args_html":"(confirmation_window_end : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end=","args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_end = confirmation_window_end"}},{"html_id":"confirmation_window_start:String|Nil-instance-method","name":"confirmation_window_start","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_start"}},{"html_id":"confirmation_window_start=(confirmation_window_start:String|Nil)-instance-method","name":"confirmation_window_start=","abstract":false,"args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_start : String | Nil)","args_html":"(confirmation_window_start : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start=","args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_start = confirmation_window_start"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L256"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L256"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L229"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L229"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"intention_type:Int32|Nil-instance-method","name":"intention_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L238"},"def":{"name":"intention_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@intention_type"}},{"html_id":"intention_type=(intention_type:Int32|Nil)-instance-method","name":"intention_type=","abstract":false,"args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"args_string":"(intention_type : Int32 | Nil)","args_html":"(intention_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L238"},"def":{"name":"intention_type=","args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@intention_type = intention_type"}},{"html_id":"is_anonymously_booked:Bool|Nil-instance-method","name":"is_anonymously_booked","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_anonymously_booked"}},{"html_id":"is_anonymously_booked=(is_anonymously_booked:Bool|Nil)-instance-method","name":"is_anonymously_booked=","abstract":false,"args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"args_string":"(is_anonymously_booked : Bool | Nil)","args_html":"(is_anonymously_booked : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked=","args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_anonymously_booked = is_anonymously_booked"}},{"html_id":"license_plate:String|Nil-instance-method","name":"license_plate","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L250"},"def":{"name":"license_plate","return_type":"String | ::Nil","visibility":"Public","body":"@license_plate"}},{"html_id":"license_plate=(license_plate:String|Nil)-instance-method","name":"license_plate=","abstract":false,"args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"args_string":"(license_plate : String | Nil)","args_html":"(license_plate : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L250"},"def":{"name":"license_plate=","args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"visibility":"Public","body":"@license_plate = license_plate"}},{"html_id":"matched_space:Space-instance-method","name":"matched_space","abstract":false,"def":{"name":"matched_space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @matched_space).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#matched_space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"matched_space=(matched_space:Space)-instance-method","name":"matched_space=","abstract":false,"args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"args_string":"(matched_space : Space)","args_html":"(matched_space : Space)","location":{"filename":"src/gobright/models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L278"},"def":{"name":"matched_space=","args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"visibility":"Public","body":"@matched_space = matched_space"}},{"html_id":"matched_space?:Space|Nil-instance-method","name":"matched_space?","abstract":false,"def":{"name":"matched_space?","return_type":"Space | ::Nil","visibility":"Public","body":"@matched_space"}},{"html_id":"organizer:Attendee|Nil-instance-method","name":"organizer","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L258"},"def":{"name":"organizer","return_type":"Attendee | ::Nil","visibility":"Public","body":"@organizer"}},{"html_id":"organizer=(organizer:Attendee|Nil)-instance-method","name":"organizer=","abstract":false,"args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"args_string":"(organizer : Attendee | Nil)","args_html":"(organizer : Attendee | Nil)","location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L258"},"def":{"name":"organizer=","args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"visibility":"Public","body":"@organizer = organizer"}},{"html_id":"recurrence_type:Int32|Nil-instance-method","name":"recurrence_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@recurrence_type"}},{"html_id":"recurrence_type=(recurrence_type:Int32|Nil)-instance-method","name":"recurrence_type=","abstract":false,"args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"args_string":"(recurrence_type : Int32 | Nil)","args_html":"(recurrence_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type=","args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@recurrence_type = recurrence_type"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L259"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L259"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L253"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L253"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}},{"html_id":"subject:String|Nil-instance-method","name":"subject","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L257"},"def":{"name":"subject","return_type":"String | ::Nil","visibility":"Public","body":"@subject"}},{"html_id":"subject=(subject:String|Nil)-instance-method","name":"subject=","abstract":false,"args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"args_string":"(subject : String | Nil)","args_html":"(subject : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L257"},"def":{"name":"subject=","args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"visibility":"Public","body":"@subject = subject"}},{"html_id":"zone_id:String-instance-method","name":"zone_id","abstract":false,"def":{"name":"zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @zone_id).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#zone_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"zone_id=(zone_id:String)-instance-method","name":"zone_id=","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/gobright/models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L275"},"def":{"name":"zone_id=","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"@zone_id = zone_id"}},{"html_id":"zone_id?:String|Nil-instance-method","name":"zone_id?","abstract":false,"def":{"name":"zone_id?","return_type":"String | ::Nil","visibility":"Public","body":"@zone_id"}}]},{"html_id":"drivers/GoBright/Paging","path":"GoBright/Paging.html","kind":"struct","full_name":"GoBright::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L24"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"total:Int32|Nil-instance-method","name":"total","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L21"},"def":{"name":"total","return_type":"Int32 | ::Nil","visibility":"Public","body":"@total"}}]},{"html_id":"drivers/GoBright/ParkingPeriod","path":"GoBright/ParkingPeriod.html","kind":"struct","full_name":"GoBright::ParkingPeriod","name":"ParkingPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L70"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L71"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L86"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L83"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L74"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L80"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L77"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Response","path":"GoBright/Response.html","kind":"struct","full_name":"GoBright::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L34"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"items:String|Nil-instance-method","name":"items","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L37"},"def":{"name":"items","return_type":"String | ::Nil","visibility":"Public","body":"@items"}},{"html_id":"metadata:Metadata|Nil-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L31"},"def":{"name":"metadata","return_type":"Metadata | ::Nil","visibility":"Public","body":"@metadata"}},{"html_id":"paging:Paging|Nil-instance-method","name":"paging","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L40"},"def":{"name":"paging","return_type":"Paging | ::Nil","visibility":"Public","body":"@paging"}}]},{"html_id":"drivers/GoBright/Space","path":"GoBright/Space.html","kind":"class","full_name":"GoBright::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L156"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"amenities:Array(Amenity)-instance-method","name":"amenities","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L160"},"def":{"name":"amenities","return_type":"Array(Amenity)","visibility":"Public","body":"@amenities"}},{"html_id":"capacity:Int64|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L170"},"def":{"name":"capacity","return_type":"Int64 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L169"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L158"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"integration_external_id:String|Nil-instance-method","name":"integration_external_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L173"},"def":{"name":"integration_external_id","return_type":"String | ::Nil","visibility":"Public","body":"@integration_external_id"}},{"html_id":"is_bookable:Bool|Nil-instance-method","name":"is_bookable","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L176"},"def":{"name":"is_bookable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_bookable"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L166"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L159"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L179"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupied?:Bool-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L179"},"def":{"name":"occupied?","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"type:SpaceType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L163"},"def":{"name":"type","return_type":"SpaceType | ::Nil","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/GoBright/SpaceType","path":"GoBright/SpaceType.html","kind":"enum","full_name":"GoBright::SpaceType","name":"SpaceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L148"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Room","name":"Room","value":"0"},{"id":"Desk","name":"Desk","value":"1"},{"id":"CombinedRoom","name":"CombinedRoom","value":"2"},{"id":"Parking","name":"Parking","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"combined_room?-instance-method","name":"combined_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L151"},"def":{"name":"combined_room?","visibility":"Public","body":"self == CombinedRoom"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L150"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}},{"html_id":"parking?-instance-method","name":"parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L152"},"def":{"name":"parking?","visibility":"Public","body":"self == Parking"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L149"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}}]}]},{"html_id":"drivers/Halite","path":"Halite.html","kind":"module","full_name":"Halite","name":"Halite","abstract":false,"locations":[{"filename":"lib/halite/src/halite.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite.cr#L4"},{"filename":"lib/halite/src/halite/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/chainable.cr#L3"},{"filename":"lib/halite/src/halite/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/client.cr#L8"},{"filename":"lib/halite/src/halite/error.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/error.cr#L1"},{"filename":"lib/halite/src/halite/feature.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/feature.cr#L1"},{"filename":"lib/halite/src/halite/features/cache.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/features/cache.cr#L5"},{"filename":"lib/halite/src/halite/features/logging.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/features/logging.cr#L10"},{"filename":"lib/halite/src/halite/form_data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/form_data.cr#L4"},{"filename":"lib/halite/src/halite/header_link.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/header_link.cr#L1"},{"filename":"lib/halite/src/halite/mime_type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/mime_type.cr#L1"},{"filename":"lib/halite/src/halite/options.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options.cr#L4"},{"filename":"lib/halite/src/halite/options/follow.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options/follow.cr#L1"},{"filename":"lib/halite/src/halite/options/timeout.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options/timeout.cr#L1"},{"filename":"lib/halite/src/halite/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/rate_limit.cr#L1"},{"filename":"lib/halite/src/halite/redirector.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/redirector.cr#L1"},{"filename":"lib/halite/src/halite/request.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/request.cr#L1"},{"filename":"lib/halite/src/halite/response.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/response.cr#L1"},{"filename":"lib/quantum/src/quantum/extensions/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/quantum/src/quantum/extensions/client.cr#L1"},{"filename":"lib/sabo/src/sabo/ext/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/sabo/src/sabo/ext/client.cr#L1"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/stripetease/src/stripetease/extensions/chainable.cr#L1"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Halite/Chainable","kind":"module","full_name":"Halite::Chainable","name":"Chainable"},{"html_id":"drivers/Halite/FeatureRegister","kind":"module","full_name":"Halite::FeatureRegister","name":"FeatureRegister"}],"types":[{"html_id":"drivers/Halite/Chainable","path":"Halite/Chainable.html","kind":"module","full_name":"Halite::Chainable","name":"Chainable","abstract":false,"locations":[{"filename":"lib/halite/src/halite/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/chainable.cr#L4"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/stripetease/src/stripetease/extensions/chainable.cr#L2"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Halite","kind":"module","full_name":"Halite","name":"Halite"},"instance_methods":[{"html_id":"cookies(cookies:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"cookies","doc":"Make a request with the given cookies\n\n```\nHalite.cookies({\"private-token\", \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.cookies({private-token: \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given cookies

","abstract":false,"args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L189"},"def":{"name":"cookies","args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_cookies(cookies))"}},{"html_id":"headers(headers:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"headers","doc":"Make a request with the given headers\n\n```\nHalite.headers({\"Content-Type\", \"application/json\", \"Connection\": \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.headers({content_type: \"application/json\", connection: \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given headers

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L166"},"def":{"name":"headers","args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_headers(headers))"}}]}]},{"html_id":"drivers/Helvar","path":"Helvar.html","kind":"module","full_name":"Helvar","name":"Helvar","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Helvar/Net","path":"Helvar/Net.html","kind":"class","full_name":"Helvar::Net","name":"Net","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_METHODS","name":"CMD_METHODS","value":"{group_scene: 11, device_scene: 12, group_level: 13, device_level: 14, group_proportion: 15, device_proportion: 16, group_modify_proportion: 17, device_modify_proportion: 18, group_emergency_test: 19, device_emergency_test: 20, group_emergency_duration_test: 21, device_emergency_duration_test: 22, group_emergency_stop: 23, device_emergency_stop: 24, query_lamp_hours: 70, query_ballast_hours: 71, query_max_voltage: 72, query_min_voltage: 73, query_max_temp: 74, query_min_temp: 75, query_device_types_with_addresses: 100, query_clusters: 101, query_routers: 102, query_LSIB: 103, query_device_type: 104, query_description_group: 105, query_description_device: 106, query_workgroup_name: 107, query_workgroup_membership: 108, query_last_scene: 109, query_device_state: 110, query_device_disabled: 111, query_lamp_failure: 112, query_device_faulty: 113, query_missing: 114, query_emergency_battery_failure: 129, query_measurement: 150, query_inputs: 151, query_load: 152, query_power_consumption: 160, query_group_power_consumption: 161, query_group: 164, query_groups: 165, query_scene_names: 166, query_scene_info: 167, query_emergency_func_test_time: 170, query_emergency_func_test_state: 171, query_emergency_duration_time: 172, query_emergency_duration_state: 173, query_emergency_battery_charge: 174, query_emergency_battery_time: 175, query_emergency_total_lamp_time: 176, query_time: 185, query_longitude: 186, query_latitude: 187, query_time_zone: 188, query_daylight_savings: 189, query_software_version: 190, query_helvar_net: 191}"},{"id":"COMMANDS","name":"COMMANDS","value":"{\"group_scene\" => \"11\", \"device_scene\" => \"12\", \"group_level\" => \"13\", \"device_level\" => \"14\", \"group_proportion\" => \"15\", \"device_proportion\" => \"16\", \"group_modify_proportion\" => \"17\", \"device_modify_proportion\" => \"18\", \"group_emergency_test\" => \"19\", \"device_emergency_test\" => \"20\", \"group_emergency_duration_test\" => \"21\", \"device_emergency_duration_test\" => \"22\", \"group_emergency_stop\" => \"23\", \"device_emergency_stop\" => \"24\", \"query_lamp_hours\" => \"70\", \"query_ballast_hours\" => \"71\", \"query_max_voltage\" => \"72\", \"query_min_voltage\" => \"73\", \"query_max_temp\" => \"74\", \"query_min_temp\" => \"75\", \"query_device_types_with_addresses\" => \"100\", \"query_clusters\" => \"101\", \"query_routers\" => \"102\", \"query_LSIB\" => \"103\", \"query_device_type\" => \"104\", \"query_description_group\" => \"105\", \"query_description_device\" => \"106\", \"query_workgroup_name\" => \"107\", \"query_workgroup_membership\" => \"108\", \"query_last_scene\" => \"109\", \"query_device_state\" => \"110\", \"query_device_disabled\" => \"111\", \"query_lamp_failure\" => \"112\", \"query_device_faulty\" => \"113\", \"query_missing\" => \"114\", \"query_emergency_battery_failure\" => \"129\", \"query_measurement\" => \"150\", \"query_inputs\" => \"151\", \"query_load\" => \"152\", \"query_power_consumption\" => \"160\", \"query_group_power_consumption\" => \"161\", \"query_group\" => \"164\", \"query_groups\" => \"165\", \"query_scene_names\" => \"166\", \"query_scene_info\" => \"167\", \"query_emergency_func_test_time\" => \"170\", \"query_emergency_func_test_state\" => \"171\", \"query_emergency_duration_time\" => \"172\", \"query_emergency_duration_state\" => \"173\", \"query_emergency_battery_charge\" => \"174\", \"query_emergency_battery_time\" => \"175\", \"query_emergency_total_lamp_time\" => \"176\", \"query_time\" => \"185\", \"query_longitude\" => \"186\", \"query_latitude\" => \"187\", \"query_time_zone\" => \"188\", \"query_daylight_savings\" => \"189\", \"query_software_version\" => \"190\", \"query_helvar_net\" => \"191\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"0\" => \"success\", \"1\" => \"invalid group index parameter\", \"2\" => \"invalid cluster parameter\", \"3\" => \"invalid router\", \"4\" => \"invalid router subnet\", \"5\" => \"invalid device parameter\", \"6\" => \"invalid sub device parameter\", \"7\" => \"invalid block parameter\", \"8\" => \"invalid scene\", \"9\" => \"cluster does not exist\", \"10\" => \"router does not exist\", \"11\" => \"device does not exist\", \"12\" => \"property does not exist\", \"13\" => \"invalid RAW message size\", \"14\" => \"invalid messages type\", \"15\" => \"invalid message command\", \"16\" => \"missing ASCII terminator\", \"17\" => \"missing ASCII parameter\", \"18\" => \"incompatible version\"}"},{"id":"PARAMS","name":"PARAMS","value":"{\"V\" => :ver, \"Q\" => :seq, \"C\" => :cmd, \"A\" => :ack, \"@\" => :addr, \"F\" => :fade, \"T\" => :time, \"L\" => :level, \"G\" => :group, \"S\" => :scene, \"B\" => :block, \"N\" => :latitude, \"E\" => :longitude, \"Z\" => :time_zone, \"P\" => :proportion, \"D\" => :display_screen, \"Y\" => :daylight_savings, \"O\" => :force_store_scene, \"K\" => :constant_light_scene}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Helvar","kind":"module","full_name":"Helvar","name":"Helvar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Helvar\"\n end\n if poll_group = @poll_group\n get_current_preset(poll_group)\n else\n query_software_version\n end\nend"}},{"html_id":"device_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"22\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"24\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"20\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"14\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"18\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"16\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"12\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(group:Int32)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L67"},"def":{"name":"get_current_preset","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_last_scene(group: group, name: \"query_scene#{group}\")"}},{"html_id":"group_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"21\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"23\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"19\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"13\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"17\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"15\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"11\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"light_level(group:Int32,level:Int32,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, level : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, level : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L55"},"def":{"name":"light_level","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}_level\"] = level\ngroup_level(group: group, level: level, fade: fade, name: \"group_level#{group}\")\n"}},{"html_id":"lighting(group:Int32,state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(group : Int32, state : Bool)","args_html":"(group : Int32, state : Bool)","location":{"filename":"src/helvar/net.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L50"},"def":{"name":"lighting","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(group, level)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L337"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"group = check_arguments(area)\nif scene = (get_current_preset(group)).get(response_required: true).payload.to_i\n payload = (query_scene_levels(group)).get(response_required: true).payload\n levels = Array(Int32).from_json(payload)\n self[\"area#{group}_level\"] = levels[scene]\nend\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L328"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"get_current_preset(check_arguments(area))"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"#\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(Int32, :version)) || 2\n@ignore_blocks = (setting?(Bool, :ignore_blocks)) || true\n@poll_group = setting?(Int32, :poll_group)\n"}},{"html_id":"query_ballast_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_ballast_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_ballast_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"71\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_clusters(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_clusters","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_clusters","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"101\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_daylight_savings(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_daylight_savings","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_daylight_savings","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"189\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_device(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_device","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_description_device","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"106\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_description_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"105\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_disabled(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_disabled","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_disabled","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"111\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_faulty(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_faulty","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_faulty","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"113\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"110\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_type(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_type","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_type","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"104\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_types_with_addresses(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_types_with_addresses","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_types_with_addresses","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"100\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_charge(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_charge","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_charge","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"174\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"129\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"175\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"173\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"172\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"171\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"170\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_total_lamp_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_total_lamp_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_total_lamp_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"176\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"164\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_group_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"161\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_groups(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_groups","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_groups","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"165\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_helvar_net(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_helvar_net","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_helvar_net","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"191\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_inputs(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_inputs","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_inputs","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"151\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"112\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"70\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_last_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_last_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_last_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"109\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_latitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_latitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_latitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"187\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_load(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_load","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_load","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"152\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_longitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_longitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_longitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"186\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_LSIB(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_LSIB","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_LSIB","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"103\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_max_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"74\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_max_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"72\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_measurement(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_measurement","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_measurement","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"150\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_min_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"75\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_min_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"73\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_missing(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_missing","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_missing","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"114\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"160\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_routers(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_routers","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_routers","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"102\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_info(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_info","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_scene_info","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"167\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_levels(group:Int32)-instance-method","name":"query_scene_levels","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L71"},"def":{"name":"query_scene_levels","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_scene_info(group: group, name: \"query_scene#{group}_info\")"}},{"html_id":"query_scene_names(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_names","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_scene_names","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"166\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_software_version(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_software_version","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_software_version","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"190\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"185\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time_zone(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time_zone","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_time_zone","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"188\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_membership(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_membership","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_membership","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"108\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_name(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_name","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_name","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"107\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/helvar/net.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L181"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Helvar sent: #{data}\"\nend\ntask_name = task.try(&.name)\ndata = data[0..-2]\nstart_of_message = data.index(/[\\?\\>\\!]V:/i)\nif start_of_message != 0\n logger.warn do\n \"Lighting error response: #{data[0...start_of_message]}\"\n end\n data = data[start_of_message..-1]\nend\ndata = data.delete(\"$\")\nindicator = data[0]\ncase indicator\nwhen '?', '>'\n data = data[1..-1]\n parts = data.split(\"=\")\n data = parts[0]\n value = parts[1]?\n params = {} of Symbol => String\n (data.split(\",\")).each do |param|\n parts = param.split(\":\")\n if parts.size > 1\n params[PARAMS[parts[0]]] = parts[1]\n else\n if parts[0][0] == '@'\n params[:addr] == parts[0][1..-1]\n else\n logger.debug do\n \"unknown param type #{param}\"\n end\n end\n end\n end\n ack = params[:ack]?\n if ack\n if ack != \"1\"\n return task.try(&.abort(\"request failed\"))\n end\n return task.try(&.success)\n end\n cmd = COMMANDS[params[:cmd]]\n case cmd\n when \"query_last_scene\"\n scene = value.try(&.to_i)\n group = params[:group]\n self[\"area#{group}\"] = scene\n if task_name == \"query_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_scene\"\n block = params[:block]\n group = params[:group]\n scene = params[:scene].to_i\n if block\n if @ignore_blocks\n self[\"area#{group}\"] = scene\n else\n self[\"area#{group}_#{block}\"] = scene\n end\n else\n self[\"area#{group}\"] = scene\n end\n if task_name == \"group_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_level\"\n if task_name == \"group_level#{params[:group]}\"\n task.not_nil!.success\n end\n when \"query_scene_info\"\n group = params[:group]\n if value && (task_name == \"query_scene#{group}_info\")\n levels = ((value.split(\",L\"))[0].split(',')).map(&.to_i)\n task.not_nil!.success(levels)\n end\n else\n logger.debug do\n \"unknown response value\\n#{cmd} = #{value}\"\n end\n end\nwhen '!'\n error = ERRORS[(data.split(\"=\"))[1]]\n error = \"#{error} for #{data}\"\n self[:last_error] = error\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nelse\n logger.info do\n \"unknown request #{data}\"\n end\nend\nif task_name\nelse\n task.try(&.success)\nend\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L332"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\nlight_level(area_id, level.round_even.to_i, fade_time.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L324"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"trigger(check_arguments(area), scene.to_i, fade_time.to_i)"}},{"html_id":"trigger(group:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L61"},"def":{"name":"trigger","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}\"] = scene\ngroup_scene(group: group, scene: scene, fade: fade, name: \"group_scene#{group}\")\n"}}],"macros":[{"html_id":"build_command_hash-macro","name":"build_command_hash","doc":"Generate a String => String hash based on the data above","summary":"

Generate a String => String hash based on the data above

","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L147"},"def":{"name":"build_command_hash","visibility":"Public","body":" COMMANDS = \n{\n \n{% for name, command in CMD_METHODS %}\n {{ name.id.stringify }} => {{ command.id.stringify }},\n {% end %}\n\n }\n COMMANDS.merge!(COMMANDS.invert)\n \n"}}],"types":[{"html_id":"drivers/Helvar/Net/Area","path":"Helvar/Net/Area.html","kind":"alias","full_name":"Helvar::Net::Area","name":"Area","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Helvar/Net","kind":"class","full_name":"Helvar::Net","name":"Net"}}]}]},{"html_id":"drivers/Hitachi","path":"Hitachi.html","kind":"module","full_name":"Hitachi","name":"Hitachi","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Hitachi/Projector","path":"Hitachi/Projector.html","kind":"module","full_name":"Hitachi::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Hitachi","kind":"module","full_name":"Hitachi","name":"Hitachi"},"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","path":"Hitachi/Projector/CpTwSeriesBasic.html","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Commands","name":"Commands","value":"{power_on: \"BA D2 01 00 00 60 01 00\", power_off: \"2A D3 01 00 00 60 00 00\", hdmi: \"0E D2 01 00 00 20 03 00\", hdmi2: \"6E D6 01 00 00 20 0D 00\", mute_video: \"6E F1 01 00 A0 20 01 00\", unmute_video: \"FE F0 01 00 A0 20 00 00\", mute_audio: \"D6 D2 01 00 02 20 01 00\", unmute_audio: \"46 D3 01 00 02 20 00 00\", lamp_hours_reset: \"58 DC 06 00 30 70 00 00\", filter_hours_reset: \"98 C6 06 00 40 70 00 00\", \"power?\": \"19 D3 02 00 00 60 00 00\", \"input?\": \"CD D2 02 00 00 20 00 00\", \"error?\": \"D9 D8 02 00 20 60 00 00\", \"freeze?\": \"B0 D2 02 00 02 30 00 00\", \"audio_mute?\": \"75 D3 02 00 02 20 00 00\", \"video_mute?\": \"CD F0 02 00 A0 20 00 00\", \"lamp?\": \"C2 FF 02 00 90 10 00 00\", \"filter?\": \"C2 F0 02 00 A0 10 00 00\"}","doc":"Note: commands have spaces in between each byte for readability","summary":"

Note: commands have spaces in between each byte for readability

"},{"id":"GetRequests","name":"GetRequests","value":"[:\"power?\", :\"input?\", :\"error?\", :\"freeze?\", :\"audio_mute?\", :\"video_mute?\", :\"lamp?\", :\"filter?\"] of ::Symbol"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Hitachi/Projector","kind":"module","full_name":"Hitachi::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?(**options)-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"audio_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"audio_mute?\", **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L32"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n poll_1\nend\nschedule.every(10.minutes, true) do\n poll_2\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L53"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@recover_power = nil\n@recover_input = nil\n"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"error?\", **options)"}},{"html_id":"filter?(**options)-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"filter?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"filter?\", **options)"}},{"html_id":"filter_hours_reset-instance-method","name":"filter_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L109"},"def":{"name":"filter_hours_reset","visibility":"Public","body":"do_send(:filter_hours_reset)\nfilter?\n"}},{"html_id":"freeze?(**options)-instance-method","name":"freeze?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"freeze?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"freeze?\", **options)"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"input?\", **options)"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"lamp?\", **options)"}},{"html_id":"lamp_hours_reset-instance-method","name":"lamp_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L104"},"def":{"name":"lamp_hours_reset","visibility":"Public","body":"do_send(:lamp_hours_reset)\nlamp?\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L77"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L95"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_audio)\nelse\n do_send(:unmute_audio)\nend\naudio_mute?\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L86"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_video)\nelse\n do_send(:unmute_video)\nend\nvideo_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nqueue.timeout = 5.seconds\nqueue.retries = 3\nself[:type] = :projector\n"}},{"html_id":"poll_1-instance-method","name":"poll_1","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L37"},"def":{"name":"poll_1","visibility":"Public","body":"power?(priority: 0).get\nif self[:power]?.try(&.as_bool)\n input?(priority: 0)\n audio_mute?(priority: 0)\n video_mute?(priority: 0)\n freeze?(priority: 0)\nend\n"}},{"html_id":"poll_2-instance-method","name":"poll_2","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L47"},"def":{"name":"poll_2","visibility":"Public","body":"lamp?(priority: 0)\nfilter?(priority: 0)\nerror?(priority: 0)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L59"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off)\nend\npower?\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"power?\", **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L139"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data}\"\nend\ncommand = task.try(&.name)\ncase Response.from_value(data[0])\nwhen .ack?\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"NAK response\"))\nwhen .error?\n task.try(&.abort(\"Error response\"))\nwhen .data?\n if command\n case command\n when \"power?\"\n self[:power] = data[1] == 1\n self[:cooling] = data[1] == 2\n if self[:power]? == @power_target\n @power_target = nil\n else\n if @power_target && @recover_power.nil?\n logger.debug do\n \"recovering power state #{self[:power]} != target #{@power_target}\"\n end\n @recover_power = schedule.in(3.seconds) do\n @recover_power = nil\n power(@power_target.not_nil!)\n end\n end\n end\n when \"input?\"\n input = Input.from_value?(data[1])\n self[:input] = input || \"unknown\"\n if @input_target\n if input == @input_target\n @input_target = nil\n else\n if @recover_input.nil?\n logger.debug do\n \"recovering input #{self[:input]} != target #{@input_target}\"\n end\n @recover_input = schedule.in(3.seconds) do\n @recover_input = nil\n switch_to(@input_target.not_nil!)\n end\n end\n end\n end\n when \"error?\"\n self[:error_status] = (Error.from_value?(data[1])) || \"unknown\"\n when \"freeze?\"\n self[:frozen] = data[1] == 1\n when \"audio_mute?\"\n self[:audio_mute] = data[1] == 1\n when \"video_mute?\"\n self[:video_mute] = data[1] == 1\n when \"lamp?\"\n self[:lamp] = data[1] * data[2]\n when \"filter?\"\n self[:filter] = data[1] * data[2]\n end\n task.try(&.success)\n else\n task.try(&.abort(\"data received for unknown command\"))\n end\nwhen .busy?\n if (data[1] == 4) && (data[2] == 0)\n task.try(&.abort(\"authentication enabled, please disable\"))\n else\n task.try(&.retry(\"projector busy, retrying\"))\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L71"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ndo_send(input.to_s.downcase)\ninput?\n"}},{"html_id":"video_mute?(**options)-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"video_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"video_mute?\", **options)"}}],"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Error","path":"Hitachi/Projector/CpTwSeriesBasic/Error.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Normal","name":"Normal","value":"0"},{"id":"Cover","name":"Cover","value":"1"},{"id":"Fan","name":"Fan","value":"2"},{"id":"Lamp","name":"Lamp","value":"3"},{"id":"Temp","name":"Temp","value":"4"},{"id":"AirFlow","name":"AirFlow","value":"5"},{"id":"Cold","name":"Cold","value":"6"},{"id":"Filter","name":"Filter","value":"7"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"air_flow?-instance-method","name":"air_flow?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L134"},"def":{"name":"air_flow?","visibility":"Public","body":"self == AirFlow"}},{"html_id":"cold?-instance-method","name":"cold?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L135"},"def":{"name":"cold?","visibility":"Public","body":"self == Cold"}},{"html_id":"cover?-instance-method","name":"cover?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L130"},"def":{"name":"cover?","visibility":"Public","body":"self == Cover"}},{"html_id":"fan?-instance-method","name":"fan?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L131"},"def":{"name":"fan?","visibility":"Public","body":"self == Fan"}},{"html_id":"filter?-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L136"},"def":{"name":"filter?","visibility":"Public","body":"self == Filter"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L132"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"normal?-instance-method","name":"normal?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L129"},"def":{"name":"normal?","visibility":"Public","body":"self == Normal"}},{"html_id":"temp?-instance-method","name":"temp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L133"},"def":{"name":"temp?","visibility":"Public","body":"self == Temp"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Input","path":"Hitachi/Projector/CpTwSeriesBasic/Input.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L122"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmi","name":"Hdmi","value":"3"},{"id":"Hdmi2","name":"Hdmi2","value":"13"},{"id":"HdbaSet","name":"HdbaSet","value":"17"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"hdba_set?-instance-method","name":"hdba_set?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L125"},"def":{"name":"hdba_set?","visibility":"Public","body":"self == HdbaSet"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L124"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L123"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Response","path":"Hitachi/Projector/CpTwSeriesBasic/Response.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L114"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"6"},{"id":"Nak","name":"Nak","value":"21"},{"id":"Error","name":"Error","value":"28"},{"id":"Data","name":"Data","value":"29"},{"id":"Busy","name":"Busy","value":"31"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L115"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L119"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"data?-instance-method","name":"data?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L118"},"def":{"name":"data?","visibility":"Public","body":"self == Data"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L117"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L116"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Infosilem","path":"Infosilem.html","kind":"module","full_name":"Infosilem","name":"Infosilem","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L4"},{"filename":"src/infosilem/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Infosilem/Campus","path":"Infosilem/Campus.html","kind":"class","full_name":"Infosilem::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String)","location":{"filename":"src/infosilem/campus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L35"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"response = @integration.try(&.call(operation: \"StartTransfer\", body: {\"StartTransferOptions\" => Sabo::Parameter.from_hash(start_transfer_options(username: setting(String, :username), password: setting(String, :password)))}))\ntransfer_id = response.try(&.result)\nresponse = @booking.try(&.call(operation: \"RoomBookingOccurrence_ExportAll\", body: {\"TransferID\" => Sabo::Parameter.new(transfer_id.to_s), \"Options\" => Sabo::Parameter.from_hash(booking_options(building: building_id, room: room_id, start_date: start_date, end_date: end_date, start_time: start_date, end_time: end_date))}))\n@integration.try(&.call(operation: \"EndTransfer\", body: end_transfer_body(transfer_id: transfer_id.to_s)))\nself[\"room_#{room_id}_bookings_#{start_date}_#{end_date}\"] = response.try() do |__arg4|\n __arg4.result[\"ObjectData\"][\"ReservationOccurrences\"][\"ReservationOccurrence\"]?\nend || ([] of Int32)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/campus.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@integration = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/Integration/Integration.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n@booking = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/ExportOnly/RoomBookingPub.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n"}}],"types":[{"html_id":"drivers/Infosilem/Campus/Client","path":"Infosilem/Campus/Client.html","kind":"alias","full_name":"Infosilem::Campus::Client","name":"Client","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Sabo::Client","aliased_html":"Sabo::Client","const":false,"namespace":{"html_id":"drivers/Infosilem/Campus","kind":"class","full_name":"Infosilem::Campus","name":"Campus"}}]},{"html_id":"drivers/Infosilem/DateTimeConvertor","path":"Infosilem/DateTimeConvertor.html","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/DateTimeConvertor","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L37"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_local(\"#{Time.local.to_s(\"%F\")} #{value.read_string}\", \"%F %H:%M:%S\")"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L33"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%H:%M:%S\"))"}}]},{"html_id":"drivers/Infosilem/Event","path":"Infosilem/Event.html","kind":"class","full_name":"Infosilem::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflicting:Int32|Nil-instance-method","name":"conflicting","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L15"},"def":{"name":"conflicting","return_type":"Int32 | ::Nil","visibility":"Public","body":"@conflicting"}},{"html_id":"conflicting=(conflicting:Int32|Nil)-instance-method","name":"conflicting=","abstract":false,"args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"args_string":"(conflicting : Int32 | Nil)","args_html":"(conflicting : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L15"},"def":{"name":"conflicting=","args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@conflicting = conflicting"}},{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L23"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L23"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L9"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L9"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L25"},"def":{"name":"duration","visibility":"Public","body":"end_time - start_time"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L21"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Time)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"args_string":"(end_time : Time)","args_html":"(end_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L21"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"number_of_attendees:Int32|Nil-instance-method","name":"number_of_attendees","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_attendees"}},{"html_id":"number_of_attendees=(number_of_attendees:Int32|Nil)-instance-method","name":"number_of_attendees=","abstract":false,"args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"args_string":"(number_of_attendees : Int32 | Nil)","args_html":"(number_of_attendees : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees=","args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@number_of_attendees = number_of_attendees"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L18"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Time)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"args_string":"(start_time : Time)","args_html":"(start_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L18"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Infosilem/IntegerConverter","path":"Infosilem/IntegerConverter.html","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/IntegerConverter","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L49"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"value.read_string.to_i"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L45"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s)"}}]},{"html_id":"drivers/Infosilem/MockCampus","path":"Infosilem/MockCampus.html","kind":"class","full_name":"Infosilem::MockCampus","name":"MockCampus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/mock_campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String):Array(JSON::Any)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","location":{"filename":"src/infosilem/mock_campus.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L226"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"@response"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/mock_campus.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L222"},"def":{"name":"on_update","visibility":"Public","body":"@response = (setting?(Array(JSON::Any), :response)) || ([] of JSON::Any)"}}]},{"html_id":"drivers/Infosilem/RoomSchedule","path":"Infosilem/RoomSchedule.html","kind":"class","full_name":"Infosilem::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L34"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local.to_s(\"%Y-%m-%d\")\n todays_events = Array(Event).from_json(fetch_events(today, today))\n todays_events.sort_by(&.duration).reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.start_time\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by?(&.start_time)\n previous_event = past_events.max_by?(&.end_time)\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(start_date : String, end_date : String)","args_html":"(start_date : String, end_date : String)","location":{"filename":"src/infosilem/room_schedule.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L77"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"events = (infosilem.bookings?(@building_id, @room_id, start_date, end_date)).get.to_json\nif @debug\n logger.debug do\n \"Infosilem Campus returned: #{events}\"\n end\nend\nevents\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@building_id = setting(String, :infosilem_building_id)\n@room_id = setting(String, :infosilem_room_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/InnerRange","path":"InnerRange.html","kind":"module","full_name":"InnerRange","name":"InnerRange","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/InnerRange/Integriti","path":"InnerRange/Integriti.html","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L10"},{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PERMISSION_REGEX","name":"PERMISSION_REGEX","value":"/ID\\:\\s+(?[a-f0-9\\-]+)\\s+added/"},{"id":"PROPS","name":"PROPS","value":"{\"SystemInfo\" => \"ProductEdition,ProductVersion,ProtocolVersion\", \"RemoveResult\" => \"NumberOfItemsRemoved,Message\", \"AddResult\" => \"NumberOfItemsAdded,Message\", \"AddOrUpdateResult\" => \"ID,Address,Message\", \"PermissionGroup\" => \"attr_PartitionID,SiteName,SiteID,ID,Name,Address\", \"SiteKeyword\" => \"ID,Name,PartitionID\", \"Area\" => \"ID,Name,Site\", \"Partition\" => \"ID,Name,ParentId,PartitionId,ShortName\", \"User\" => \"ID,Name,SiteID,SiteName,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"FullUser\" => \"ID,Name,Site,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"UserPermission\" => \"ID,What,ManagedByActiveDirectory,User,Deny,Expired\", \"CardFormat\" => \"ID,Name,SiteID,SiteName,Notes,Address,Site\", \"CardTemplate\" => \"ID,Name,SiteID,SiteName,Notes,Address,SiteCodeNumber,Site,Format\", \"Card\" => \"ID,Name,CardNumberNumeric,CardNumber,CardData,CardSerialNumber,IssueNumber,State,ExpiryDateTime,StartDateTime,LastUsed,CloudCredentialId,CloudCredentialType,CloudCredentialPoolId,CloudCredentialInvitationId,CloudCredentialInvitationCode,CloudCredentialCommunicationHandler,ManagedByActiveDirectory,Site,User,CardType\", \"Door\" => \"ID,Name,Site\", \"Review\" => \"ID,Text,UTCTimeGenerated,Type,Transition\"} of String => String"},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%9N\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_entry(type:String,fields:UpdateFields,return_object:Bool=false)-instance-method","name":"add_entry","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, fields : UpdateFields, return_object : Bool = false)","args_html":"(type : String, fields : UpdateFields, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":482,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L482"},"def":{"name":"add_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"add(type, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"add_or_update(payload:String,return_object:Bool=false)-instance-method","name":"add_or_update","doc":"This is the only way to add or update a database entry...","summary":"

This is the only way to add or update a database entry...

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(payload : String, return_object : Bool = false)","args_html":"(payload : String, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L447"},"def":{"name":"add_or_update","args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"if return_object\n check(post(\"/v2/User/AddOrUpdate?IncludeObjectInResult=true\", body: payload))\nelse\n check(post(\"/v2/User/AddOrUpdate\", body: payload))\nend"}},{"html_id":"add_to_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"add_to_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L387"},"def":{"name":"add_to_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/addToCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"api_version:String-instance-method","name":"api_version","doc":"http://20.213.104.2:80/restapi/ApiVersion/v2","summary":"

http://20.213.104.2:80/restapi/ApiVersion/v2

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L359"},"def":{"name":"api_version","return_type":"String","visibility":"Public","body":"document = check(get(\"/ApiVersion\"))\nuri = URI.parse(document.first_element_child.try(&.content).as(String))\nPath[uri.path].basename\n"}},{"html_id":"area(id:Int64|String)-instance-method","name":"area","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":579,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L579"},"def":{"name":"area","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Area/#{id}?#{prop_param(\"Area\")}\"))\nextract_area(document)\n"}},{"html_id":"areas(site_id:Int32|Nil=nil)-instance-method","name":"areas","doc":"roughly zones in a building","summary":"

roughly zones in a building

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":568,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L568"},"def":{"name":"areas","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"areas = [] of Area\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Area\", filter) do |row|\n areas << (extract_area(row))\nend\nareas\n"}},{"html_id":"assign_card_to_user(user_id:String,card_template:String,card_number:String,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true)-instance-method","name":"assign_card_to_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","args_html":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","location":{"filename":"src/inner_range/integriti.cr","line_number":1130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1130"},"def":{"name":"assign_card_to_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nif candidate = cards(template: card_template, number: card_number).first?\n set_card_user(candidate.id, user_id)\nelse\n card_id = create_card(card_number: card_number, user_id: user_id, partition_id: partition_id, site_id: site_id, card_template: card_template, externally_managed: externally_managed)\n candidate = cards(template: card_template, number: card_number).first\nend\ncandidate\n"}},{"html_id":"build_filter(filter:Filter):String-instance-method","name":"build_filter","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"args_string":"(filter : Filter) : String","args_html":"(filter : Filter) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L247"},"def":{"name":"build_filter","args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"return_type":"String","visibility":"Public","body":"XML.build(indent: \" \") do |xml|\n xml.element(\"FilterExpression\", {\"xmlns:xsd\" => \"http://www.w3.org/2001/XMLSchema\", \"xmlns:xsi\" => \"http://www.w3.org/2001/XMLSchema-instance\", \"xsi:type\" => \"AggregateExpression\"}) do\n xml.element(\"OperatorType\") do\n xml.text(\"And\")\n end\n xml.element(\"SubExpressions\") do\n filter.each do |key, value|\n if value.nil?\n next\n end\n xml.element(\"FilterExpression\", {\"xsi:type\" => \"PropertyExpression\"}) do\n xml.element(\"PropertyName\") do\n xml.text(key)\n end\n xml.element(\"OperatorType\") do\n xml.text(\"Equals\")\n end\n xml.element(\"Args\") do\n compare_type = case value\n in String\n \"xsd:string\"\n in Bool\n \"xsd:boolean\"\n in Int32\n \"xsd:int\"\n in Int64\n \"xsd:long\"\n in Float32\n \"xsd:float\"\n in Float64\n \"xsd:double\"\n in Nil\n raise(\"nil values not supported\")\n end\n xml.element(\"anyType\", {\"xsi:type\" => compare_type}) do\n xml.text(value.to_s)\n end\n end\n end\n end\n end\n end\nend"}},{"html_id":"card(id:String)-instance-method","name":"card","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L872"},"def":{"name":"card","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Card/#{id}?#{prop_param(\"Card\")}\"))\nextract_card(document)\n"}},{"html_id":"card_templates(site_id:Int32|Nil=nil)-instance-method","name":"card_templates","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L926"},"def":{"name":"card_templates","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"templates = [] of CardTemplate\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"CardTemplate\", filter) do |row|\n templates << (extract_card_template(row))\nend\ntemplates\n"}},{"html_id":"cards(site_id:Int32|Nil=nil,user_id:String|Nil=nil,template:String|Nil=nil,number:String|Nil=nil)-instance-method","name":"cards","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":853,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L853"},"def":{"name":"cards","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"cards = [] of Card\nfilter = Filter {\"CardNumber\" => number, \"Site.ID\" => site_id, \"User.Address\" => user_id, \"CardType.Address\" => template}\npaginate_request(\"User\", \"Card\", filter) do |row|\n cards << (extract_card(row))\nend\ncards\n"}},{"html_id":"cf_email:String-instance-method","name":"cf_email","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L77"},"def":{"name":"cf_email","return_type":"String","visibility":"Public","body":"@cf_email"}},{"html_id":"cf_origo:String-instance-method","name":"cf_origo","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L79"},"def":{"name":"cf_origo","return_type":"String","visibility":"Public","body":"@cf_origo"}},{"html_id":"cf_phone:String-instance-method","name":"cf_phone","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L78"},"def":{"name":"cf_phone","return_type":"String","visibility":"Public","body":"@cf_phone"}},{"html_id":"cf_virtual_card:String-instance-method","name":"cf_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L18"},"def":{"name":"cf_virtual_card","return_type":"String","visibility":"Public","body":"@cf_virtual_card"}},{"html_id":"create_card(card_number:String|Int64,user_id:String|Nil=nil,partition_id:String|Int32|Nil=nil,site_id:String|Int64|Nil=nil,card_template:String|Nil=nil,externally_managed:Bool|Nil=nil):String-instance-method","name":"create_card","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","args_html":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":878,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L878"},"def":{"name":"create_card","args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"String","visibility":"Public","body":"if user_id\n user_ref = Ref.new(\"User\", user_id, partition_id)\nend\nif site_id\n site_ref = Ref.new(\"SiteKeyword\", site_id.to_s)\nend\nif card_template\n card_type = Ref.new(\"CardTemplate\", card_template, partition_id)\nend\ncard = extract_add_or_update_result(add_entry(\"Card\", UpdateFields {\"CardNumber\" => card_number, \"Site\" => site_ref, \"User\" => user_ref, \"CardType\" => card_type, \"ManagedByActiveDirectory\" => externally_managed}.compact!))\ncard.id.as(String)\n"}},{"html_id":"create_user(name:String,email:String,phone:String|Nil=nil,site_id:String|Int64|Nil=nil):String-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"args_string":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","args_html":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L677"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"return_type":"String","visibility":"Public","body":"first_name, second_name = name.split(' ', 2)\nuser = extract_add_or_update_result(add_entry(\"User\", UpdateFields {\"FirstName\" => first_name, \"SecondName\" => second_name, \"Site\" => Ref.new(\"SiteKeyword\", (site_id || default_site_id).to_s), cf_email => email.strip.downcase, cf_phone => phone}.compact!))\nuser.address.as(String)\n"}},{"html_id":"default_partition_id:Int32-instance-method","name":"default_partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L76"},"def":{"name":"default_partition_id","return_type":"Int32","visibility":"Public","body":"@default_partition_id"}},{"html_id":"default_site_id:Int32-instance-method","name":"default_site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L75"},"def":{"name":"default_site_id","return_type":"Int32","visibility":"Public","body":"@default_site_id"}},{"html_id":"default_unlock_time:Int32-instance-method","name":"default_unlock_time","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L74"},"def":{"name":"default_unlock_time","return_type":"Int32","visibility":"Public","body":"@default_unlock_time"}},{"html_id":"delete_permission(user_id:String,permission_id:String)-instance-method","name":"delete_permission","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(user_id : String, permission_id : String)","args_html":"(user_id : String, permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":791,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L791"},"def":{"name":"delete_permission","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\", {\"ID\" => permission_id}) do\n xml.element(\"ID\") do\n xml.text(permission_id)\n end\n end\nend\nextract_remove_result(modify_collection(\"User\", user_id, \"Permissions\", payload, add: false))\n"}},{"html_id":"door(id:Int64|String)-instance-method","name":"door","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L964"},"def":{"name":"door","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Door/#{id}?#{prop_param(\"Door\")}\"))\nextract_integriti_door(document)\n"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1056,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1056"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"(doors(default_site_id)).map do |door|\n Door.new(door.id.to_s, door.name)\nend"}},{"html_id":"doors(site_id:Int32|Nil=nil)-instance-method","name":"doors","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L953"},"def":{"name":"doors","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"doors = [] of IntegritiDoor\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Door\", filter) do |row|\n doors << (extract_integriti_door(row))\nend\ndoors\n"}},{"html_id":"grant_access(name:String,email:String,group_id:String,starting:Int64|Nil=nil,ending:Int64|Nil=nil,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true):AccessDetails-instance-method","name":"grant_access","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","args_html":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1093,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1093"},"def":{"name":"grant_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"return_type":"AccessDetails","visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: site_id)\nresult = modify_user_permissions(user_id: user_id, group_id: group_id, partition_id: partition_id, add: true, externally_managed: externally_managed, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], \"\")\n"}},{"html_id":"grant_guest_access(name:String,email:String,starting:Int64,ending:Int64):AccessDetails-instance-method","name":"grant_guest_access","doc":"a function for granting guests access to a building\nshould return a payload that can be encoded into a QR code\nthe response is expected to be hexstring","summary":"

a function for granting guests access to a building should return a payload that can be encoded into a QR code the response is expected to be hexstring

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","args_html":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1160"},"def":{"name":"grant_guest_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"return_type":"AccessDetails","visibility":"Public","body":"if guest_access_configured?\nelse\n raise(\"guest access is not configured\")\nend\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: @default_site_id)\ncard = cards(user_id: user_id).find do |card|\n card.template.try(&.address) == @guest_card_template\nend\nif card\nelse\n card = create_guest_card(user_id)\nend\nresult = modify_user_permissions(user_id: user_id, group_id: @guest_access_group, partition_id: @default_partition_id, add: true, externally_managed: true, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], card.card_data_hex)\n"}},{"html_id":"guest_access_configured?:Bool-instance-method","name":"guest_access_configured?","doc":"return true if we can grant guest access","summary":"

return true if we can grant guest access

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1196"},"def":{"name":"guest_access_configured?","return_type":"Bool","visibility":"Public","body":"!@guest_access_group.presence.nil? && !@guest_card_template.presence.nil?"}},{"html_id":"guest_access_group:String-instance-method","name":"guest_access_group","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L81"},"def":{"name":"guest_access_group","return_type":"String","visibility":"Public","body":"@guest_access_group"}},{"html_id":"guest_card_template:String-instance-method","name":"guest_card_template","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L80"},"def":{"name":"guest_card_template","return_type":"String","visibility":"Public","body":"@guest_card_template"}},{"html_id":"has_virtual_card?:Bool-instance-method","name":"has_virtual_card?","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L42"},"def":{"name":"has_virtual_card?","return_type":"Bool","visibility":"Public","body":"email = get_user_email\nintegriti.users(email: email).get[0][\"origo\"].as_bool? || false\n"}},{"html_id":"long_poll_seconds:Int32-instance-method","name":"long_poll_seconds","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L73"},"def":{"name":"long_poll_seconds","return_type":"Int32","visibility":"Public","body":"@long_poll_seconds"}},{"html_id":"managed_users_in_group(group_address:String):Hash(String,String)-instance-method","name":"managed_users_in_group","abstract":false,"args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"args_string":"(group_address : String) : Hash(String, String)","args_html":"(group_address : String) : Hash(String, String)","location":{"filename":"src/inner_range/integriti.cr","line_number":718,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L718"},"def":{"name":"managed_users_in_group","args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"user_ids = user_permissions(group_id: group_address, externally_managed: true).map do |permission|\n permission.user.address.as(String)\nend\nemail_user_id = Hash(String, String).new(\"\", user_ids.size)\nuser_ids.each do |user_id|\n document = check(get(\"/v2/User/User/#{user_id}\"))\n if email = extract_user(document).@email\n email_user_id[email.downcase] = user_id\n end\nend\nlogger.debug do\n \"found #{email_user_id.size} user to email mappings\"\nend\nemail_user_id\n"}},{"html_id":"modify_user_permissions(user_id:String,group_id:String,partition_id:String|Int32|Nil=nil,add:Bool=true,externally_managed:Bool=true,expires_at:Int64|Nil=nil,valid_from:Int64|Nil=nil)-instance-method","name":"modify_user_permissions","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","args_html":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":739,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L739"},"def":{"name":"modify_user_permissions","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\") do\n xml.element(\"What\") do\n (Ref.new(\"PermissionGroup\", group_id, partition_id)).to_xml(xml)\n end\n if add\n xml.element(\"GrantAccess\") do\n xml.text(\"True\")\n end\n if externally_managed\n xml.element(\"ManagedByActiveDirectory\") do\n xml.text(\"True\")\n end\n end\n if expires_at\n expiry = ((Time.unix(expires_at)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"ExpiryDateTime\") do\n xml.text(expiry)\n end\n end\n if valid_from\n starting = ((Time.unix(valid_from)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"StartDateTime\") do\n xml.text(starting)\n end\n end\n end\n end\nend\nresponse = modify_collection(\"User\", user_id, \"Permissions\", payload, add: add)\nadd ? extract_add_result(response) : extract_remove_result(response)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"@cf_virtual_card = (setting?(String, :custom_field_hid_origo)) || \"cf_HasVirtualCard\""}},{"html_id":"partition(id:Int64|String)-instance-method","name":"partition","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":608,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L608"},"def":{"name":"partition","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Partition/#{id}?#{prop_param(\"Partition\")}\"))\nextract_partition(document)\n"}},{"html_id":"partitions(parent_id:Int32|Nil=nil)-instance-method","name":"partitions","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"args_string":"(parent_id : Int32 | Nil = nil)","args_html":"(parent_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L597"},"def":{"name":"partitions","args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"partitions = [] of Partition\nfilter = Filter {\"ParentId\" => parent_id}\npaginate_request(\"User\", \"Partition\", filter) do |row|\n partitions << (extract_partition(row))\nend\npartitions\n"}},{"html_id":"permission_group(id:Int64|String)-instance-method","name":"permission_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L527"},"def":{"name":"permission_group","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/PermissionGroup/#{id}\"))\nextract_site(document)\n"}},{"html_id":"permission_groups(site_id:Int32|Nil=nil):Array(PermissionGroup)-instance-method","name":"permission_groups","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","args_html":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","location":{"filename":"src/inner_range/integriti.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L516"},"def":{"name":"permission_groups","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"return_type":"Array(PermissionGroup)","visibility":"Public","body":"pgroups = [] of PermissionGroup\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"PermissionGroup\", filter, summary_only: true) do |row|\n pgroups << (extract_permission_group(row))\nend\npgroups\n"}},{"html_id":"remove_from_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"remove_from_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":392,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L392"},"def":{"name":"remove_from_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/removeFromCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"remove_virtual_card:Nil-instance-method","name":"remove_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L37"},"def":{"name":"remove_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => false})\n"}},{"html_id":"request_virtual_card:Nil-instance-method","name":"request_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L32"},"def":{"name":"request_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => true})\n"}},{"html_id":"review_access(filter:Filter,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_access","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":1018,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1018"},"def":{"name":"review_access","args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"Review\", filter, page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"review_predefined_access(query_id:String|Int64,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_predefined_access","abstract":false,"args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":984,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L984"},"def":{"name":"review_predefined_access","args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"PredefinedFilter/#{query_id}\", page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"revoke_guest_access(details:JSON::Any)-instance-method","name":"revoke_guest_access","doc":"delete the permission from user","summary":"

delete the permission from user

","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/inner_range/integriti.cr","line_number":1191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1191"},"def":{"name":"revoke_guest_access","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"details = Guest.from_json(details.to_json)\ndelete_permission(details.user_id, details.permission_id)\n"}},{"html_id":"set_card_user(card_id:String,user_id:String|Nil,partition_id:String|Int32|Nil=nil)-instance-method","name":"set_card_user","doc":"sets or unsets the user associated with this card","summary":"

sets or unsets the user associated with this card

","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"args_string":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","args_html":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":914,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L914"},"def":{"name":"set_card_user","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"visibility":"Public","body":"if user_id\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => Ref.new(\"User\", user_id, partition_id)}, attribute: \"ID\")\nelse\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => nil}, attribute: \"ID\")\nend"}},{"html_id":"set_user_primary_permission_group(user_id:String,permission_group_id:String|Nil)-instance-method","name":"set_user_primary_permission_group","doc":"sets or unsets the Permission Group","summary":"

sets or unsets the Permission Group

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, permission_group_id : String | Nil)","args_html":"(user_id : String, permission_group_id : String | Nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L778"},"def":{"name":"set_user_primary_permission_group","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if permission_group_id\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => Ref.new(\"PermissionGroup\", permission_group_id)})\nelse\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => nil})\nend"}},{"html_id":"site(id:Int64|String)-instance-method","name":"site","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":552,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L552"},"def":{"name":"site","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/SiteKeyword/#{id}?#{prop_param(\"SiteKeyword\")}\"))\nextract_site(document)\n"}},{"html_id":"sites:Array(Site)-instance-method","name":"sites","doc":"roughly analogous to buildings","summary":"

roughly analogous to buildings

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L544"},"def":{"name":"sites","return_type":"Array(Site)","visibility":"Public","body":"sites = [] of Site\npaginate_request(\"User\", \"SiteKeyword\") do |row|\n sites << (extract_site(row))\nend\nsites\n"}},{"html_id":"system_info-instance-method","name":"system_info","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L375"},"def":{"name":"system_info","visibility":"Public","body":"document = check(get(\"/v2/SystemInfo\"))\nextract_system_info(document)\n"}},{"html_id":"template(address:String)-instance-method","name":"template","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":937,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L937"},"def":{"name":"template","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/CardTemplate/#{address}?#{prop_param(\"CardTemplate\")}\"))\nextract_card_template(document)\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/inner_range/integriti.cr","line_number":1063,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1063"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"payload = XML.build(indent: \" \") do |xml|\n xml.element(\"GrantAccessActionOptions\") do\n xml.element(\"UnlockSeconds\") do\n xml.text(default_unlock_time.to_s)\n end\n xml.element(\"ForceEvenIfOverridden\") do\n xml.text(\"false\")\n end\n end\nend\nresponse = post(\"/v2/BasicStatus/GrantAccess/#{door_id}\", body: payload)\nresponse.success?\n"}},{"html_id":"update_entry(type:String,id:String,fields:UpdateFields,attribute:String=\"Address\",return_object:Bool=false)-instance-method","name":"update_entry","doc":"use this to update fields in various models, like:\nupdate_entry(type: \"User\", id: \"U5\", fields: {cf_HasMobileCredential: true})","summary":"

use this to update fields in various models, like: update_entry(type: "User", id: "U5", fields: {cf_HasMobileCredential: true})

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, id : String, fields : UpdateFields, attribute : String = \"Address\", return_object : Bool = false)","args_html":"(type : String, id : String, fields : UpdateFields, attribute : String = "Address", return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":499,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L499"},"def":{"name":"update_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"update(type, id, attribute, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"user(id:Int64|String)-instance-method","name":"user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L667"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/User/#{id}?FullObject=true\"))\nextract_full_user(document)\n"}},{"html_id":"user_id_lookup(email:String):Array(String)-instance-method","name":"user_id_lookup","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : Array(String)","args_html":"(email : String) : Array(String)","location":{"filename":"src/inner_range/integriti.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L672"},"def":{"name":"user_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"users(email: email).map() do |__arg4|\n __arg4.address.as(String)\nend"}},{"html_id":"user_permissions(user_id:String|Nil=nil,group_id:String|Nil=nil,externally_managed:Bool|Nil=nil):Array(UserPermission)-instance-method","name":"user_permissions","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","args_html":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","location":{"filename":"src/inner_range/integriti.cr","line_number":705,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L705"},"def":{"name":"user_permissions","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"Array(UserPermission)","visibility":"Public","body":"user_permissions = [] of UserPermission\nfilter = Filter {\"User.Address\" => user_id, \"What.Address\" => group_id, \"ManagedByActiveDirectory\" => externally_managed}\npaginate_request(\"User\", \"UserPermission\", filter) do |row|\n user_permissions << (extract_user_permission(row))\nend\nuser_permissions\n"}},{"html_id":"users(site_id:Int32|Nil=nil,email:String|Nil=nil)-instance-method","name":"users","doc":"users in a site","summary":"

users in a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L651"},"def":{"name":"users","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"users = [] of User\nfilter = Filter {cf_email => email}\npaginate_request(\"User\", \"User\", filter) do |row|\n users << (extract_user(row))\nend\nif site_id\n users.select() do |__arg3|\n __arg3.site_id == site_id\n end\nend\nusers\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/inner_range/integriti.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L85"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" begin\n \n%resp\n = \n{{ response }}\n\n raise \"request failed with #{\n%resp\n.status_code} (#{\n%resp\n.body})\" unless \n%resp\n.success?\n \n%body\n = \n%resp\n.body\n logger.debug \n{ \"response was:\\n#{\n%body\n}\" }\n begin\n XML.parse \n%body\n\n rescue \nerror\n logger.error \n{ \"error: #{error.message}, failed to parse:\\n#{\n%body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}},{"html_id":"define_xml_type(klass,keys,lookup=nil,&block)-macro","name":"define_xml_type","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"args_string":"(klass, keys, lookup = nil, &block)","args_html":"(klass, keys, lookup = nil, &block)","location":{"filename":"src/inner_range/integriti.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L107"},"def":{"name":"define_xml_type","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"block_arg":{"name":"block","external_name":"block","restriction":""},"visibility":"Public","body":" struct \n{{ klass }}\n < IntegritiObject\n \n{% for _node, variable in keys %}\n getter! {{ variable.var }} : {{ variable.type }}\n {% end %}\n\n\n def initialize(\n \n{% for _node, variable in keys %}\n @{{ variable.var }} = nil,\n {% end %}\n\n )\n \nend\n\n \n{% if block %}\n {{ block.body }}\n {% end %}\n\n \nend\n\n \n{% PROPS[lookup || klass.stringify] = keys.keys.join(\",\") %}\n\n\n protected def \nextract_\n{{ klass.id.stringify.underscore.id }}\n(document : XML::Node) : \n{{ klass }}\n\n \n{% for _node, variable in keys %}\n var_{{ variable.var }} = nil\n {% end %}\n\n\n if \n%data\n = document.document? ? document.first_element_child : document\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n if %content = %data[{{ attribute_name }}]?\n\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n {% end %}\n\n\n \n%data\n.children.select(&.element?).each do |child|\n case child.name\n when \"Ref\"\n \n# minimal data provided in attributes\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n {% else %}\n {% attribute_name = node %}\n {% end %}\n\n # ID in ref's are actually the Address in objects\n {% if attribute_name == \"Address\" %}\n {% attribute_name = \"ID\" %}\n {% end %}\n\n if %content = child[{{ attribute_name }}]?\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"cf_\") %}\n # handle custom fields using accessors\n when {{ node.id }}\n {% else %}\n when {{ node.id.stringify }}\n {% end %}\n\n if %content = child.content\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \nend\n \nend\n \nend\n\n \n{{ klass }}\n.new(\n \n{% for node, variable in keys %}\n {{ variable.var }}: var_{{ variable.var }},\n {% end %}\n\n )\n \nend\n \n"}}],"types":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","path":"InnerRange/Integriti/AddOrUpdateResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L437"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|String|Nil=nil,address:Nil|String=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","args_html":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L437"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, address, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64|String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64 | String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/InnerRange/Integriti/AddResult","path":"InnerRange/Integriti/AddResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L401"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L401"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Area","path":"InnerRange/Integriti/Area.html","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L561"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L561"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/Card","path":"InnerRange/Integriti/Card.html","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L826"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,name:Nil|String=nil,card_number_numeric:Int64|Nil=nil,card_number:Nil|String=nil,card_data_hex:Nil|String=nil,card_serial_number:Nil|String=nil,issue_number:Int32|Nil=nil,state:Nil|String=nil,expiry:Nil|String=nil,valid_from:Nil|String=nil,last_used:Nil|String=nil,cloud_credential_id:Nil|String=nil,cloud_credential_type:Nil|String=nil,cloud_credential_pool_id:Nil|String=nil,cloud_credential_invite_id:Nil|String=nil,cloud_credential_invite_code:Nil|String=nil,cloud_credential_comms_handler:Nil|String=nil,active_directory:Bool|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,template:InnerRange::Integriti::CardTemplate|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"args_string":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","args_html":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L826"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, card_number_numeric, card_number, card_data_hex, card_serial_number, issue_number, state, expiry, valid_from, last_used, cloud_credential_id, cloud_credential_type, cloud_credential_pool_id, cloud_credential_invite_id, cloud_credential_invite_code, cloud_credential_comms_handler, active_directory, site, user, template)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"active_directory:Bool-instance-method","name":"active_directory","abstract":false,"def":{"name":"active_directory","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @active_directory).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#active_directory cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"active_directory?:Bool|Nil-instance-method","name":"active_directory?","abstract":false,"def":{"name":"active_directory?","return_type":"Bool | ::Nil","visibility":"Public","body":"@active_directory"}},{"html_id":"card_data_hex:String-instance-method","name":"card_data_hex","abstract":false,"def":{"name":"card_data_hex","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_data_hex).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_data_hex cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_data_hex?:String|Nil-instance-method","name":"card_data_hex?","abstract":false,"def":{"name":"card_data_hex?","return_type":"String | ::Nil","visibility":"Public","body":"@card_data_hex"}},{"html_id":"card_number:String-instance-method","name":"card_number","abstract":false,"def":{"name":"card_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number?:String|Nil-instance-method","name":"card_number?","abstract":false,"def":{"name":"card_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_number"}},{"html_id":"card_number_numeric:Int64-instance-method","name":"card_number_numeric","abstract":false,"def":{"name":"card_number_numeric","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @card_number_numeric).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number_numeric cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number_numeric?:Int64|Nil-instance-method","name":"card_number_numeric?","abstract":false,"def":{"name":"card_number_numeric?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@card_number_numeric"}},{"html_id":"card_serial_number:String-instance-method","name":"card_serial_number","abstract":false,"def":{"name":"card_serial_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_serial_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_serial_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_serial_number?:String|Nil-instance-method","name":"card_serial_number?","abstract":false,"def":{"name":"card_serial_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"cloud_credential_comms_handler:String-instance-method","name":"cloud_credential_comms_handler","abstract":false,"def":{"name":"cloud_credential_comms_handler","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_comms_handler).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_comms_handler cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_comms_handler?:String|Nil-instance-method","name":"cloud_credential_comms_handler?","abstract":false,"def":{"name":"cloud_credential_comms_handler?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_comms_handler"}},{"html_id":"cloud_credential_id:String-instance-method","name":"cloud_credential_id","abstract":false,"def":{"name":"cloud_credential_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_id?:String|Nil-instance-method","name":"cloud_credential_id?","abstract":false,"def":{"name":"cloud_credential_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_id"}},{"html_id":"cloud_credential_invite_code:String-instance-method","name":"cloud_credential_invite_code","abstract":false,"def":{"name":"cloud_credential_invite_code","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_code?:String|Nil-instance-method","name":"cloud_credential_invite_code?","abstract":false,"def":{"name":"cloud_credential_invite_code?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_code"}},{"html_id":"cloud_credential_invite_id:String-instance-method","name":"cloud_credential_invite_id","abstract":false,"def":{"name":"cloud_credential_invite_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_id?:String|Nil-instance-method","name":"cloud_credential_invite_id?","abstract":false,"def":{"name":"cloud_credential_invite_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_id"}},{"html_id":"cloud_credential_pool_id:String-instance-method","name":"cloud_credential_pool_id","abstract":false,"def":{"name":"cloud_credential_pool_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_pool_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_pool_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_pool_id?:String|Nil-instance-method","name":"cloud_credential_pool_id?","abstract":false,"def":{"name":"cloud_credential_pool_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_pool_id"}},{"html_id":"cloud_credential_type:String-instance-method","name":"cloud_credential_type","abstract":false,"def":{"name":"cloud_credential_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_type?:String|Nil-instance-method","name":"cloud_credential_type?","abstract":false,"def":{"name":"cloud_credential_type?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_type"}},{"html_id":"expiry:String-instance-method","name":"expiry","abstract":false,"def":{"name":"expiry","return_type":"String","visibility":"Public","body":"if (__temp_1 = @expiry).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#expiry cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expiry?:String|Nil-instance-method","name":"expiry?","abstract":false,"def":{"name":"expiry?","return_type":"String | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"issue_number:Int32-instance-method","name":"issue_number","abstract":false,"def":{"name":"issue_number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @issue_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#issue_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"issue_number?:Int32|Nil-instance-method","name":"issue_number?","abstract":false,"def":{"name":"issue_number?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_number"}},{"html_id":"last_used:String-instance-method","name":"last_used","abstract":false,"def":{"name":"last_used","return_type":"String","visibility":"Public","body":"if (__temp_1 = @last_used).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#last_used cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"last_used?:String|Nil-instance-method","name":"last_used?","abstract":false,"def":{"name":"last_used?","return_type":"String | ::Nil","visibility":"Public","body":"@last_used"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"String","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:String|Nil-instance-method","name":"state?","abstract":false,"def":{"name":"state?","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"template:CardTemplate-instance-method","name":"template","abstract":false,"def":{"name":"template","return_type":"CardTemplate","visibility":"Public","body":"if (__temp_1 = @template).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#template cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"template?:CardTemplate|Nil-instance-method","name":"template?","abstract":false,"def":{"name":"template?","return_type":"CardTemplate | ::Nil","visibility":"Public","body":"@template"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"valid_from:String-instance-method","name":"valid_from","abstract":false,"def":{"name":"valid_from","return_type":"String","visibility":"Public","body":"if (__temp_1 = @valid_from).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#valid_from cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"valid_from?:String|Nil-instance-method","name":"valid_from?","abstract":false,"def":{"name":"valid_from?","return_type":"String | ::Nil","visibility":"Public","body":"@valid_from"}}]},{"html_id":"drivers/InnerRange/Integriti/CardFormat","path":"InnerRange/Integriti/CardFormat.html","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L804"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L804"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","path":"InnerRange/Integriti/CardTemplate.html","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L814"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site_code:Int64|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,format:InnerRange::Integriti::CardFormat|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L814"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site_code, site, format)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"format:CardFormat-instance-method","name":"format","abstract":false,"def":{"name":"format","return_type":"CardFormat","visibility":"Public","body":"if (__temp_1 = @format).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#format cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"format?:CardFormat|Nil-instance-method","name":"format?","abstract":false,"def":{"name":"format?","return_type":"CardFormat | ::Nil","visibility":"Public","body":"@format"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_code:Int64-instance-method","name":"site_code","abstract":false,"def":{"name":"site_code","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @site_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_code?:Int64|Nil-instance-method","name":"site_code?","abstract":false,"def":{"name":"site_code?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@site_code"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Filter","path":"InnerRange/Integriti/Filter.html","kind":"alias","full_name":"InnerRange::Integriti::Filter","name":"Filter","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L245"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/FullUser","path":"InnerRange/Integriti/FullUser.html","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L630"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L641"},"def":{"name":"site_id","visibility":"Public","body":"site.id"}},{"html_id":"site_name-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L645"},"def":{"name":"site_name","visibility":"Public","body":"site.name"}}]},{"html_id":"drivers/InnerRange/Integriti/Guest","path":"InnerRange/Integriti/Guest.html","kind":"class","full_name":"InnerRange::Integriti::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1082"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(user_id:String,permission_id:String,card_hex:String)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"args_string":"(user_id : String, permission_id : String, card_hex : String)","args_html":"(user_id : String, permission_id : String, card_hex : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1086,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1086"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, permission_id, card_hex)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1082"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"permission_id:String-instance-method","name":"permission_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id","return_type":"String","visibility":"Public","body":"@permission_id"}},{"html_id":"permission_id=(permission_id:String)-instance-method","name":"permission_id=","abstract":false,"args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(permission_id : String)","args_html":"(permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id=","args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"@permission_id = permission_id"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","path":"InnerRange/Integriti/IntegritiDoor.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L946"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L946"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","path":"InnerRange/Integriti/IntegritiObject.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult"},{"html_id":"drivers/InnerRange/Integriti/AddResult","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult"},{"html_id":"drivers/InnerRange/Integriti/Area","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area"},{"html_id":"drivers/InnerRange/Integriti/Card","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card"},{"html_id":"drivers/InnerRange/Integriti/CardFormat","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat"},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate"},{"html_id":"drivers/InnerRange/Integriti/FullUser","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser"},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor"},{"html_id":"drivers/InnerRange/Integriti/Partition","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition"},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup"},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult"},{"html_id":"drivers/InnerRange/Integriti/Review","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review"},{"html_id":"drivers/InnerRange/Integriti/Site","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site"},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo"},{"html_id":"drivers/InnerRange/Integriti/User","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User"},{"html_id":"drivers/InnerRange/Integriti/UserPermission","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/InnerRange/Integriti/Partition","path":"InnerRange/Integriti/Partition.html","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L588"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,parent_id:Int32|Nil=nil,partition_id:Int32|Nil=nil,short_name:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L588"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, parent_id, partition_id, short_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"parent_id:Int32-instance-method","name":"parent_id","abstract":false,"def":{"name":"parent_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @parent_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#parent_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"parent_id?:Int32|Nil-instance-method","name":"parent_id?","abstract":false,"def":{"name":"parent_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"short_name:String-instance-method","name":"short_name","abstract":false,"def":{"name":"short_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @short_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#short_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"short_name?:String|Nil-instance-method","name":"short_name?","abstract":false,"def":{"name":"short_name?","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}}]},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","path":"InnerRange/Integriti/PermissionGroup.html","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L507"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(partition_id:Int32|Nil=nil,site_name:Nil|String=nil,site_id:Int32|Nil=nil,id:Int64|Nil=nil,name:Nil|String=nil,address:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"args_string":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","args_html":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L507"},"def":{"name":"new","args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(partition_id, site_name, site_id, id, name, address)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Ref","path":"InnerRange/Integriti/Ref.html","kind":"struct","full_name":"InnerRange::Integriti::Ref","name":"Ref","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L414"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(type:String,id:String,partition_id:Int32|String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"args_string":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","args_html":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":421,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L421"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L415"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L418"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"partition_id:String|Int32|Nil-instance-method","name":"partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L419"},"def":{"name":"partition_id","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"to_xml(xml)-instance-method","name":"to_xml","abstract":false,"args":[{"name":"xml","external_name":"xml","restriction":""}],"args_string":"(xml)","args_html":"(xml)","location":{"filename":"src/inner_range/integriti.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L424"},"def":{"name":"to_xml","args":[{"name":"xml","external_name":"xml","restriction":""}],"visibility":"Public","body":"xml.element(\"Ref\", {\"Type\" => type, \"PartitionID\" => partition_id, \"ID\" => id}.compact!)"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L417"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","path":"InnerRange/Integriti/RemoveResult.html","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L396"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L396"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Review","path":"InnerRange/Integriti/Review.html","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L973"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,text:Nil|String=nil,time_generated:Time|Nil=nil,event_type:Nil|String=nil,transition:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"args_string":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","args_html":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L973"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, text, time_generated, event_type, transition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @event_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#event_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"event_type?:String|Nil-instance-method","name":"event_type?","abstract":false,"def":{"name":"event_type?","return_type":"String | ::Nil","visibility":"Public","body":"@event_type"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"def":{"name":"text","return_type":"String","visibility":"Public","body":"if (__temp_1 = @text).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#text cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"text?:String|Nil-instance-method","name":"text?","abstract":false,"def":{"name":"text?","return_type":"String | ::Nil","visibility":"Public","body":"@text"}},{"html_id":"time_gen_ms:String-instance-method","name":"time_gen_ms","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":980,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L980"},"def":{"name":"time_gen_ms","return_type":"String","visibility":"Public","body":"if (__temp_1 = @time_gen_ms).nil?\n @time_gen_ms = (time_generated.to_s(TIME_FORMAT))\nelse\n __temp_1\nend"}},{"html_id":"time_generated:Time-instance-method","name":"time_generated","abstract":false,"def":{"name":"time_generated","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_generated).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#time_generated cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_generated?:Time|Nil-instance-method","name":"time_generated?","abstract":false,"def":{"name":"time_generated?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_generated"}},{"html_id":"transition:String-instance-method","name":"transition","abstract":false,"def":{"name":"transition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @transition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#transition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"transition?:String|Nil-instance-method","name":"transition?","abstract":false,"def":{"name":"transition?","return_type":"String | ::Nil","visibility":"Public","body":"@transition"}}]},{"html_id":"drivers/InnerRange/Integriti/Site","path":"InnerRange/Integriti/Site.html","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L537"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,partition_id:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L537"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}}]},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","path":"InnerRange/Integriti/SystemInfo.html","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L369"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(edition:Nil|String=nil,version:Nil|String=nil,protocol:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"args_string":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","args_html":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L369"},"def":{"name":"new","args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(edition, version, protocol)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"edition:String-instance-method","name":"edition","abstract":false,"def":{"name":"edition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @edition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#edition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"edition?:String|Nil-instance-method","name":"edition?","abstract":false,"def":{"name":"edition?","return_type":"String | ::Nil","visibility":"Public","body":"@edition"}},{"html_id":"protocol:Int32-instance-method","name":"protocol","abstract":false,"def":{"name":"protocol","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @protocol).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#protocol cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"protocol?:Int32|Nil-instance-method","name":"protocol?","abstract":false,"def":{"name":"protocol?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@protocol"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"String","visibility":"Public","body":"if (__temp_1 = @version).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#version cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"version?:String|Nil-instance-method","name":"version?","abstract":false,"def":{"name":"version?","return_type":"String | ::Nil","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/InnerRange/Integriti/UpdateFields","path":"InnerRange/Integriti/UpdateFields.html","kind":"alias","full_name":"InnerRange::Integriti::UpdateFields","name":"UpdateFields","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L443"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/User","path":"InnerRange/Integriti/User.html","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L617"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L617"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/UserPermission","path":"InnerRange/Integriti/UserPermission.html","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L693"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,group:InnerRange::Integriti::PermissionGroup|Nil=nil,externally_managed:Bool|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,deny:Bool|Nil=nil,expired:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"args_string":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","args_html":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L693"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, group, externally_managed, user, deny, expired)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"deny:Bool-instance-method","name":"deny","abstract":false,"def":{"name":"deny","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @deny).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#deny cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"deny?:Bool|Nil-instance-method","name":"deny?","abstract":false,"def":{"name":"deny?","return_type":"Bool | ::Nil","visibility":"Public","body":"@deny"}},{"html_id":"expired:Bool-instance-method","name":"expired","abstract":false,"def":{"name":"expired","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @expired).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#expired cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expired?:Bool|Nil-instance-method","name":"expired?","abstract":false,"def":{"name":"expired?","return_type":"Bool | ::Nil","visibility":"Public","body":"@expired"}},{"html_id":"externally_managed:Bool-instance-method","name":"externally_managed","abstract":false,"def":{"name":"externally_managed","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @externally_managed).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#externally_managed cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"externally_managed?:Bool|Nil-instance-method","name":"externally_managed?","abstract":false,"def":{"name":"externally_managed?","return_type":"Bool | ::Nil","visibility":"Public","body":"@externally_managed"}},{"html_id":"group:PermissionGroup-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"group?:PermissionGroup|Nil-instance-method","name":"group?","abstract":false,"def":{"name":"group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/InnerRange/IntegritiUserSync","path":"InnerRange/IntegritiUserSync.html","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"graph_group_id:String-instance-method","name":"graph_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L50"},"def":{"name":"graph_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @graph_group_id).nil?\n @graph_group_id = (if user_group_id.includes?('@')\n (directory.get_group(user_group_id)).get[\"id\"].as_s\n else\n user_group_id\n end)\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group:String-instance-method","name":"integriti_security_group","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group","return_type":"String","visibility":"Public","body":"if (__temp_1 = @integriti_security_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#integriti_security_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group?:String|Nil-instance-method","name":"integriti_security_group?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group?","return_type":"String | ::Nil","visibility":"Public","body":"@integriti_security_group"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@time_zone_string = ((setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence) || \"GMT\"\n@time_zone = Time::Location.load(@time_zone_string)\n@sync_cron = (setting?(String, :sync_cron)).presence || \"0 21 * * *\"\n@user_group_id = setting(String, :user_group_id)\n@integriti_security_group = setting(String, :integriti_security_group)\n@graph_group_id = nil\nschedule.clear\nschedule.cron(@sync_cron, @time_zone) do\n sync_users\nend\nif (setting?(String, :push_notification_url)).presence\n push_notificaitons_configure\nend\n"}},{"html_id":"perform_user_sync-instance-method","name":"perform_user_sync","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L70"},"def":{"name":"perform_user_sync","visibility":"Public","body":"if @syncing\n return \"already syncing\"\nend\n@sync_mutex.synchronize do\n begin\n @syncing = true\n @sync_requests = 0\n sync_users\n ensure\n @syncing = false\n end\nend\nif @sync_requests > 0\n spawn do\n perform_user_sync\n end\nend\n"}},{"html_id":"sync_cron:String-instance-method","name":"sync_cron","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L59"},"def":{"name":"sync_cron","return_type":"String","visibility":"Public","body":"@sync_cron"}},{"html_id":"time_zone_string:String-instance-method","name":"time_zone_string","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L58"},"def":{"name":"time_zone_string","return_type":"String","visibility":"Public","body":"@time_zone_string"}},{"html_id":"user_group_id:String-instance-method","name":"user_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_group_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#user_group_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_group_id?:String|Nil-instance-method","name":"user_group_id?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id?","return_type":"String | ::Nil","visibility":"Public","body":"@user_group_id"}}],"types":[{"html_id":"drivers/InnerRange/IntegritiUserSync/DirUser","path":"InnerRange/IntegritiUserSync/DirUser.html","kind":"alias","full_name":"InnerRange::IntegritiUserSync::DirUser","name":"DirUser","abstract":false,"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Member","aliased_html":"PlaceCalendar::Member","const":false,"namespace":{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}}]}]},{"html_id":"drivers/JohnsonControls","path":"JohnsonControls.html","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls","abstract":false,"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"Time::Format.new(\"%FT%TZ\")"}],"types":[{"html_id":"drivers/JohnsonControls/Attribute","path":"JohnsonControls/Attribute.html","kind":"class","full_name":"JohnsonControls::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"smaples_url:String-instance-method","name":"smaples_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url","return_type":"String","visibility":"Public","body":"@smaples_url"}},{"html_id":"smaples_url=(smaples_url:String)-instance-method","name":"smaples_url=","abstract":false,"args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"args_string":"(smaples_url : String)","args_html":"(smaples_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url=","args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"visibility":"Public","body":"@smaples_url = smaples_url"}}]},{"html_id":"drivers/JohnsonControls/AuthResponse","path":"JohnsonControls/AuthResponse.html","kind":"class","full_name":"JohnsonControls::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires:Time-instance-method","name":"expires","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires","return_type":"Time","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"args_string":"(expires : Time)","args_html":"(expires : Time)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"visibility":"Public","body":"@expires = expires"}}]},{"html_id":"drivers/JohnsonControls/Command","path":"JohnsonControls/Command.html","kind":"class","full_name":"JohnsonControls::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L190"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command_id:String-instance-method","name":"command_id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id","return_type":"String","visibility":"Public","body":"@command_id"}},{"html_id":"command_id=(command_id:String)-instance-method","name":"command_id=","abstract":false,"args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"args_string":"(command_id : String)","args_html":"(command_id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id=","args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"visibility":"Public","body":"@command_id = command_id"}},{"html_id":"items:Array(JSON::Any)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items","return_type":"Array(JSON::Any)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(JSON::Any))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"args_string":"(items : Array(JSON::Any))","args_html":"(items : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"maximum_items:Int32-instance-method","name":"maximum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items","return_type":"Int32","visibility":"Public","body":"@maximum_items"}},{"html_id":"maximum_items=(maximum_items:Int32)-instance-method","name":"maximum_items=","abstract":false,"args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"args_string":"(maximum_items : Int32)","args_html":"(maximum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items=","args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"visibility":"Public","body":"@maximum_items = maximum_items"}},{"html_id":"minimum_items:Int32-instance-method","name":"minimum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items","return_type":"Int32","visibility":"Public","body":"@minimum_items"}},{"html_id":"minimum_items=(minimum_items:Int32)-instance-method","name":"minimum_items=","abstract":false,"args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"args_string":"(minimum_items : Int32)","args_html":"(minimum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items=","args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"visibility":"Public","body":"@minimum_items = minimum_items"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/JohnsonControls/Equipment","path":"JohnsonControls/Equipment.html","kind":"class","full_name":"JohnsonControls::Equipment","name":"Equipment","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_url:String-instance-method","name":"equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url","return_type":"String","visibility":"Public","body":"@equipment_url"}},{"html_id":"equipment_url=(equipment_url:String)-instance-method","name":"equipment_url=","abstract":false,"args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"args_string":"(equipment_url : String)","args_html":"(equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url=","args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"visibility":"Public","body":"@equipment_url = equipment_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"spaces_url:String-instance-method","name":"spaces_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url","return_type":"String","visibility":"Public","body":"@spaces_url"}},{"html_id":"spaces_url=(spaces_url:String)-instance-method","name":"spaces_url=","abstract":false,"args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"args_string":"(spaces_url : String)","args_html":"(spaces_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url=","args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"visibility":"Public","body":"@spaces_url = spaces_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"upstream_equipment_url:String-instance-method","name":"upstream_equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url","return_type":"String","visibility":"Public","body":"@upstream_equipment_url"}},{"html_id":"upstream_equipment_url=(upstream_equipment_url:String)-instance-method","name":"upstream_equipment_url=","abstract":false,"args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"args_string":"(upstream_equipment_url : String)","args_html":"(upstream_equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url=","args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"visibility":"Public","body":"@upstream_equipment_url = upstream_equipment_url"}}]},{"html_id":"drivers/JohnsonControls/EquipmentPoints","path":"JohnsonControls/EquipmentPoints.html","kind":"class","full_name":"JohnsonControls::EquipmentPoints","name":"EquipmentPoints","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(Point))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"@points = points"}}]},{"html_id":"drivers/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse","path":"JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html","kind":"class","full_name":"JohnsonControls::GetEquipmentHostedByNetworkDeviceResponse","name":"GetEquipmentHostedByNetworkDeviceResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L171"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Equipment)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items","return_type":"Array(Equipment)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Equipment))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"args_string":"(items : Array(Equipment))","args_html":"(items : Array(Equipment))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetNetworkDeviceChildrenResponse","path":"JohnsonControls/GetNetworkDeviceChildrenResponse.html","kind":"class","full_name":"JohnsonControls::GetNetworkDeviceChildrenResponse","name":"GetNetworkDeviceChildrenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L139"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(NetworkDevice)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items","return_type":"Array(NetworkDevice)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(NetworkDevice))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"args_string":"(items : Array(NetworkDevice))","args_html":"(items : Array(NetworkDevice))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetObjectAttributesWithSamplesResponse","path":"JohnsonControls/GetObjectAttributesWithSamplesResponse.html","kind":"class","full_name":"JohnsonControls::GetObjectAttributesWithSamplesResponse","name":"GetObjectAttributesWithSamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L157"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L158"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Attribute)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items","return_type":"Array(Attribute)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Attribute))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"args_string":"(items : Array(Attribute))","args_html":"(items : Array(Attribute))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSamplesForAnObjectAttributeResponse","path":"JohnsonControls/GetSamplesForAnObjectAttributeResponse.html","kind":"class","full_name":"JohnsonControls::GetSamplesForAnObjectAttributeResponse","name":"GetSamplesForAnObjectAttributeResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L114"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"items:Array(Sample)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items","return_type":"Array(Sample)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Sample))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"args_string":"(items : Array(Sample))","args_html":"(items : Array(Sample))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","path":"JohnsonControls/GetSingleObjectPresentValueResponse.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L232"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"item:Item-instance-method","name":"item","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item","return_type":"Item","visibility":"Public","body":"@item"}},{"html_id":"item=(item:Item)-instance-method","name":"item=","abstract":false,"args":[{"name":"item","external_name":"item","restriction":"Item"}],"args_string":"(item : Item)","args_html":"(item : Item)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item=","args":[{"name":"item","external_name":"item","restriction":"Item"}],"visibility":"Public","body":"@item = item"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L235"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"presentValue:Value-instance-method","name":"presentValue","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue","return_type":"Value","visibility":"Public","body":"@presentValue"}},{"html_id":"presentValue=(presentValue:Value)-instance-method","name":"presentValue=","abstract":false,"args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"args_string":"(presentValue : Value)","args_html":"(presentValue : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue=","args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"visibility":"Public","body":"@presentValue = presentValue"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L237"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L238"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"reliability:String|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability","return_type":"String | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:String|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"args_string":"(reliability : String | Nil)","args_html":"(reliability : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"value:String|Nil-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value","return_type":"String | ::Nil","visibility":"Public","body":"@value"}},{"html_id":"value=(value:String|Nil)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(value : String | Nil)","args_html":"(value : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"visibility":"Public","body":"@value = value"}}]}]}]},{"html_id":"drivers/JohnsonControls/Item","path":"JohnsonControls/Item.html","kind":"class","full_name":"JohnsonControls::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L264"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L265"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"value:Value-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value","return_type":"Value","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Value)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Value"}],"args_string":"(value : Value)","args_html":"(value : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Value"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/Metasys","path":"JohnsonControls/Metasys.html","kind":"class","full_name":"JohnsonControls::Metasys","name":"Metasys","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CONTENT_TYPE","name":"CONTENT_TYPE","value":"\"application/json\""}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L268"},"def":{"name":"count","visibility":"Public","body":"@count"}},{"html_id":"get_attribute_value(id:String):Float64-instance-method","name":"get_attribute_value","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Float64","args_html":"(id : String) : Float64","location":{"filename":"src/johnson_controls/metasys.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L94"},"def":{"name":"get_attribute_value","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Float64","visibility":"Public","body":"current_time = Time.utc\nshort_while_ago = Time.utc - (@poll_interval_seconds * 2).seconds\nresponse = get_request(\"/objects/#{id}/attributes/85/samples\", start_time: short_while_ago.to_rfc3339, end_time: current_time.to_rfc3339, page_size: 1, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n(SamplesResponse.from_json(response.body)).items.first.value.actual\n"}},{"html_id":"get_commands_for_an_object(id:String):Array(Command)-instance-method","name":"get_commands_for_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Array(Command)","args_html":"(id : String) : Array(Command)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L168"},"def":{"name":"get_commands_for_an_object","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Array(Command)","visibility":"Public","body":"response = get_request(\"/objects/#{id}/commands\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nArray(Command).from_json(response.body)\n"}},{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L232"},"def":{"name":"get_data","visibility":"Public","body":"{data: self[:data], averages: self[:averages]}"}},{"html_id":"get_equipment_hosted_by_network_device(id:String,page:Int32=1,page_size:Int32=10):GetEquipmentHostedByNetworkDeviceResponse-instance-method","name":"get_equipment_hosted_by_network_device","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L129"},"def":{"name":"get_equipment_hosted_by_network_device","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetEquipmentHostedByNetworkDeviceResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/equipment\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetEquipmentHostedByNetworkDeviceResponse.from_json(response.body)\n"}},{"html_id":"get_equipment_points(id:String):EquipmentPoints-instance-method","name":"get_equipment_points","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : EquipmentPoints","args_html":"(id : String) : EquipmentPoints","location":{"filename":"src/johnson_controls/metasys.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L87"},"def":{"name":"get_equipment_points","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"EquipmentPoints","visibility":"Public","body":"response = get_request(\"/equipment/#{id}/points\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nEquipmentPoints.from_json(response.body)\n"}},{"html_id":"get_network_device_children(id:String,page:Int32=1,page_size:Int32=10):GetNetworkDeviceChildrenResponse-instance-method","name":"get_network_device_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L118"},"def":{"name":"get_network_device_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetNetworkDeviceChildrenResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/objects\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetNetworkDeviceChildrenResponse.from_json(response.body)\n"}},{"html_id":"get_object_attributes_with_samples(id:String):GetObjectAttributesWithSamplesResponse-instance-method","name":"get_object_attributes_with_samples","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetObjectAttributesWithSamplesResponse","args_html":"(id : String) : GetObjectAttributesWithSamplesResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L140"},"def":{"name":"get_object_attributes_with_samples","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetObjectAttributesWithSamplesResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/trendedAttributes\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetObjectAttributesWithSamplesResponse.from_json(response.body)\n"}},{"html_id":"get_request_debug(path:String,**params)-instance-method","name":"get_request_debug","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, **params)","args_html":"(path : String, **params)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L252"},"def":{"name":"get_request_debug","args":[{"name":"path","external_name":"path","restriction":"String"}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":"response = get_request(path, **params)\nparsed_json_body = begin\n JSON.parse(response.body)\nrescue ex : JSON::ParseException\n ex.to_s\nend\n{body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\n"}},{"html_id":"get_samples_for_an_object_attribute(id:String,attribute_id:String,start_time:String,end_time:String,page:Int32=1,page_size:Int32=10):GetSamplesForAnObjectAttributeResponse-instance-method","name":"get_samples_for_an_object_attribute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","args_html":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L154"},"def":{"name":"get_samples_for_an_object_attribute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetSamplesForAnObjectAttributeResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/#{attribute_id}/samples\", start_time: start_time, end_time: end_time, page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSamplesForAnObjectAttributeResponse.from_json(response.body)\n"}},{"html_id":"get_single_object_presentValue(id:String):GetSingleObjectPresentValueResponse-instance-method","name":"get_single_object_presentValue","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetSingleObjectPresentValueResponse","args_html":"(id : String) : GetSingleObjectPresentValueResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L147"},"def":{"name":"get_single_object_presentValue","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetSingleObjectPresentValueResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/presentValue\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSingleObjectPresentValueResponse.from_json(response.body)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L36"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"received login response #{response.body}\"\nend\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_token_debug-instance-method","name":"get_token_debug","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L59"},"def":{"name":"get_token_debug","visibility":"Public","body":"response = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n parsed_json_body = begin\n JSON.parse(response.body)\n rescue ex : JSON::ParseException\n ex.to_s\n end\n {body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\nend\n"}},{"html_id":"lookup_object_id(fqr:String):String-instance-method","name":"lookup_object_id","abstract":false,"args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"args_string":"(fqr : String) : String","args_html":"(fqr : String) : String","location":{"filename":"src/johnson_controls/metasys.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L111"},"def":{"name":"lookup_object_id","args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get_request(\"/objectIdentifiers?fqr=#{fqr}\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body.to_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@equipment_ids_and_attributes = (setting?(Hash(String, Array(String)), :equipment_ids_and_attributes)) || ({} of String => Array(String))\n@poll_interval_seconds = (setting?(Int32, :poll_interval_seconds)) || 300\n@count = 0\nschedule.every(@poll_interval_seconds.seconds, true) do\n update_data\nend\n"}},{"html_id":"send_command_to_an_object(id:String,command_id:String,body:Array(JSON::Any))-instance-method","name":"send_command_to_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"args_string":"(id : String, command_id : String, body : Array(JSON::Any))","args_html":"(id : String, command_id : String, body : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L175"},"def":{"name":"send_command_to_an_object","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"response = put_request(\"/objects/#{id}/commands/#{command_id}\", body: body)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L32"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry <= Time.utc"}},{"html_id":"update_data-instance-method","name":"update_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L180"},"def":{"name":"update_data","visibility":"Public","body":"debug = {} of String => Hash(String, Float64)\ndata = {} of String => Hash(String, Float64)\n@equipment_ids_and_attributes.each do |id, attributes|\n equipment_points = get_equipment_points(id)\n equipment_points.points.each do |p|\n if attributes.includes?(p.name)\n else\n next\n end\n __temp_762 = p.equipment_name\n data[__temp_762]? || (data[__temp_762] = {} of String => Float64)\n __temp_764 = p.equipment_name\n debug[__temp_764]? || (debug[__temp_764] = {} of String => Float64)\n object_id = (p.object_url.split('/')).last\n value = get_attribute_value(object_id)\n data[p.equipment_name][p.name] = value\n debug[p.equipment_name][p.object_url] = value\n end\nend\naverages = calculate_averages(data)\n{data: self[:data] = data, count: @count, equipment_ids_and_attributes: @equipment_ids_and_attributes, debug: debug, averages: self[:averages] = averages}\n"}}]},{"html_id":"drivers/JohnsonControls/NetworkDevice","path":"JohnsonControls/NetworkDevice.html","kind":"class","full_name":"JohnsonControls::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alarms_url:String-instance-method","name":"alarms_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url","return_type":"String","visibility":"Public","body":"@alarms_url"}},{"html_id":"alarms_url=(alarms_url:String)-instance-method","name":"alarms_url=","abstract":false,"args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"args_string":"(alarms_url : String)","args_html":"(alarms_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url=","args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"visibility":"Public","body":"@alarms_url = alarms_url"}},{"html_id":"audits_url:String-instance-method","name":"audits_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url","return_type":"String","visibility":"Public","body":"@audits_url"}},{"html_id":"audits_url=(audits_url:String)-instance-method","name":"audits_url=","abstract":false,"args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"args_string":"(audits_url : String)","args_html":"(audits_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url=","args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"visibility":"Public","body":"@audits_url = audits_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"objects_url:String-instance-method","name":"objects_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url","return_type":"String","visibility":"Public","body":"@objects_url"}},{"html_id":"objects_url=(objects_url:String)-instance-method","name":"objects_url=","abstract":false,"args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"args_string":"(objects_url : String)","args_html":"(objects_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url=","args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"visibility":"Public","body":"@objects_url = objects_url"}},{"html_id":"parent_url:String-instance-method","name":"parent_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url","return_type":"String","visibility":"Public","body":"@parent_url"}},{"html_id":"parent_url=(parent_url:String)-instance-method","name":"parent_url=","abstract":false,"args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"args_string":"(parent_url : String)","args_html":"(parent_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url=","args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"visibility":"Public","body":"@parent_url = parent_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"trended_attributes_url:String-instance-method","name":"trended_attributes_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url","return_type":"String","visibility":"Public","body":"@trended_attributes_url"}},{"html_id":"trended_attributes_url=(trended_attributes_url:String)-instance-method","name":"trended_attributes_url=","abstract":false,"args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"args_string":"(trended_attributes_url : String)","args_html":"(trended_attributes_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url=","args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"visibility":"Public","body":"@trended_attributes_url = trended_attributes_url"}},{"html_id":"type_url:String-instance-method","name":"type_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url","return_type":"String","visibility":"Public","body":"@type_url"}},{"html_id":"type_url=(type_url:String)-instance-method","name":"type_url=","abstract":false,"args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"args_string":"(type_url : String)","args_html":"(type_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url=","args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"visibility":"Public","body":"@type_url = type_url"}}]},{"html_id":"drivers/JohnsonControls/Point","path":"JohnsonControls/Point.html","kind":"class","full_name":"JohnsonControls::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_name:String-instance-method","name":"equipment_name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name","return_type":"String","visibility":"Public","body":"@equipment_name"}},{"html_id":"equipment_name=(equipment_name:String)-instance-method","name":"equipment_name=","abstract":false,"args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"args_string":"(equipment_name : String)","args_html":"(equipment_name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name=","args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"visibility":"Public","body":"@equipment_name = equipment_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}}]},{"html_id":"drivers/JohnsonControls/Sample","path":"JohnsonControls/Sample.html","kind":"class","full_name":"JohnsonControls::Sample","name":"Sample","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L100"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L101"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"reliable:Bool-instance-method","name":"reliable","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable","return_type":"Bool","visibility":"Public","body":"@reliable"}},{"html_id":"reliable=(reliable:Bool)-instance-method","name":"reliable=","abstract":false,"args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"args_string":"(reliable : Bool)","args_html":"(reliable : Bool)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable=","args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"visibility":"Public","body":"@reliable = reliable"}},{"html_id":"timestamp:String-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp","return_type":"String","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:String)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"args_string":"(timestamp : String)","args_html":"(timestamp : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"value:Hash(String,JSON::Any)-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Hash(String,JSON::Any))-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"args_string":"(value : Hash(String, JSON::Any))","args_html":"(value : Hash(String, JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/SamplesResponse","path":"JohnsonControls/SamplesResponse.html","kind":"class","full_name":"JohnsonControls::SamplesResponse","name":"SamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L258"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L259"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Item)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items","return_type":"Array(Item)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Item))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"args_string":"(items : Array(Item))","args_html":"(items : Array(Item))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"visibility":"Public","body":"@items = items"}}]},{"html_id":"drivers/JohnsonControls/Value","path":"JohnsonControls/Value.html","kind":"class","full_name":"JohnsonControls::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual:Float64-instance-method","name":"actual","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual","return_type":"Float64","visibility":"Public","body":"@actual"}},{"html_id":"actual=(actual:Float64)-instance-method","name":"actual=","abstract":false,"args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"args_string":"(actual : Float64)","args_html":"(actual : Float64)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual=","args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"visibility":"Public","body":"@actual = actual"}}]}]},{"html_id":"drivers/Juniper","path":"Juniper.html","kind":"module","full_name":"Juniper","name":"Juniper","abstract":false,"locations":[{"filename":"src/juniper/mist_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Juniper/Client","path":"Juniper/Client.html","kind":"class","full_name":"Juniper::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L76"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L108"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L85"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L85"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L114"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L114"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L78"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L78"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L86"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L86"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L83"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L83"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L81"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L81"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L98"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L98"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L99"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L99"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientLocation","path":"Juniper/ClientLocation.html","kind":"struct","full_name":"Juniper::ClientLocation","name":"ClientLocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L159"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L145"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L145"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L149"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L149"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L150"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L150"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientStats","path":"Juniper/ClientStats.html","kind":"struct","full_name":"Juniper::ClientStats","name":"ClientStats","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L127"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L127"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L139"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L139"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L120"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L120"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L128"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L128"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L125"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L125"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L123"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L123"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}}]},{"html_id":"drivers/Juniper/Guest","path":"Juniper/Guest.html","kind":"class","full_name":"Juniper::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"authorized:Bool-instance-method","name":"authorized","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized","return_type":"Bool","visibility":"Public","body":"@authorized"}},{"html_id":"authorized=(authorized:Bool)-instance-method","name":"authorized=","abstract":false,"args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"args_string":"(authorized : Bool)","args_html":"(authorized : Bool)","location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized=","args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"visibility":"Public","body":"@authorized = authorized"}},{"html_id":"authorized_expiring_time:Int64|Nil-instance-method","name":"authorized_expiring_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_expiring_time"}},{"html_id":"authorized_expiring_time=(authorized_expiring_time:Int64|Nil)-instance-method","name":"authorized_expiring_time=","abstract":false,"args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_expiring_time : Int64 | Nil)","args_html":"(authorized_expiring_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time=","args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_expiring_time = authorized_expiring_time"}},{"html_id":"authorized_time:Int64|Nil-instance-method","name":"authorized_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_time"}},{"html_id":"authorized_time=(authorized_time:Int64|Nil)-instance-method","name":"authorized_time=","abstract":false,"args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_time : Int64 | Nil)","args_html":"(authorized_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time=","args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_time = authorized_time"}},{"html_id":"company:String|Nil-instance-method","name":"company","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L174"},"def":{"name":"company","return_type":"String | ::Nil","visibility":"Public","body":"@company"}},{"html_id":"company=(company:String|Nil)-instance-method","name":"company=","abstract":false,"args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"args_string":"(company : String | Nil)","args_html":"(company : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L174"},"def":{"name":"company=","args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"visibility":"Public","body":"@company = company"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L173"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L173"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L172"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/LatLng","path":"Juniper/LatLng.html","kind":"struct","full_name":"Juniper::LatLng","name":"LatLng","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L71"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L71"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L72"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L72"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]},{"html_id":"drivers/Juniper/LocationAsset","path":"Juniper/LocationAsset.html","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L236"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L236"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"battery_voltage:Float64|Nil-instance-method","name":"battery_voltage","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage","return_type":"Float64 | ::Nil","visibility":"Public","body":"@battery_voltage"}},{"html_id":"battery_voltage=(battery_voltage:Float64|Nil)-instance-method","name":"battery_voltage=","abstract":false,"args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"args_string":"(battery_voltage : Float64 | Nil)","args_html":"(battery_voltage : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage=","args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@battery_voltage = battery_voltage"}},{"html_id":"eddystone_uid_instance:String|Nil-instance-method","name":"eddystone_uid_instance","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_instance"}},{"html_id":"eddystone_uid_instance=(eddystone_uid_instance:String|Nil)-instance-method","name":"eddystone_uid_instance=","abstract":false,"args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_instance : String | Nil)","args_html":"(eddystone_uid_instance : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance=","args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_instance = eddystone_uid_instance"}},{"html_id":"eddystone_uid_namespace:String|Nil-instance-method","name":"eddystone_uid_namespace","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_namespace"}},{"html_id":"eddystone_uid_namespace=(eddystone_uid_namespace:String|Nil)-instance-method","name":"eddystone_uid_namespace=","abstract":false,"args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_namespace : String | Nil)","args_html":"(eddystone_uid_namespace : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace=","args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_namespace = eddystone_uid_namespace"}},{"html_id":"eddystone_url_url:String|Nil-instance-method","name":"eddystone_url_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_url_url"}},{"html_id":"eddystone_url_url=(eddystone_url_url:String|Nil)-instance-method","name":"eddystone_url_url=","abstract":false,"args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"args_string":"(eddystone_url_url : String | Nil)","args_html":"(eddystone_url_url : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url=","args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_url_url = eddystone_url_url"}},{"html_id":"ibeacon_major:Int64|Nil-instance-method","name":"ibeacon_major","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_major"}},{"html_id":"ibeacon_major=(ibeacon_major:Int64|Nil)-instance-method","name":"ibeacon_major=","abstract":false,"args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_major : Int64 | Nil)","args_html":"(ibeacon_major : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major=","args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_major = ibeacon_major"}},{"html_id":"ibeacon_minor:Int64|Nil-instance-method","name":"ibeacon_minor","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_minor"}},{"html_id":"ibeacon_minor=(ibeacon_minor:Int64|Nil)-instance-method","name":"ibeacon_minor=","abstract":false,"args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_minor : Int64 | Nil)","args_html":"(ibeacon_minor : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor=","args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_minor = ibeacon_minor"}},{"html_id":"ibeacon_uuid:String|Nil-instance-method","name":"ibeacon_uuid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid","return_type":"String | ::Nil","visibility":"Public","body":"@ibeacon_uuid"}},{"html_id":"ibeacon_uuid=(ibeacon_uuid:String|Nil)-instance-method","name":"ibeacon_uuid=","abstract":false,"args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"args_string":"(ibeacon_uuid : String | Nil)","args_html":"(ibeacon_uuid : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid=","args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ibeacon_uuid = ibeacon_uuid"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L238"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L238"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"mfg_company_id:Int64|Nil-instance-method","name":"mfg_company_id","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mfg_company_id"}},{"html_id":"mfg_company_id=(mfg_company_id:Int64|Nil)-instance-method","name":"mfg_company_id=","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"args_string":"(mfg_company_id : Int64 | Nil)","args_html":"(mfg_company_id : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id=","args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@mfg_company_id = mfg_company_id"}},{"html_id":"mfg_data:String|Nil-instance-method","name":"mfg_data","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data","return_type":"String | ::Nil","visibility":"Public","body":"@mfg_data"}},{"html_id":"mfg_data=(mfg_data:String|Nil)-instance-method","name":"mfg_data=","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"args_string":"(mfg_data : String | Nil)","args_html":"(mfg_data : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data=","args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mfg_data = mfg_data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L237"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationEvent","path":"Juniper/LocationEvent.html","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationAsset","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset"},{"html_id":"drivers/Juniper/LocationSDK","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK"},{"html_id":"drivers/Juniper/LocationWifi","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L218"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"sdk\"\n LocationSDK.from_json(json)\nwhen \"wifi\"\n LocationWifi.from_json(json)\nwhen \"asset\"\n LocationAsset.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L214"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L214"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L215"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L215"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Juniper/LocationEvents","path":"Juniper/LocationEvents.html","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L196"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(LocationEvent)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L198"},"def":{"name":"events","return_type":"Array(LocationEvent)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L197"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/LocationSDK","path":"Juniper/LocationSDK.html","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L225"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L228"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L227"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L227"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L226"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationWifi","path":"Juniper/LocationWifi.html","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L231"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L233"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L233"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L232"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/Map","path":"Juniper/Map.html","kind":"class","full_name":"Juniper::Map","name":"Map","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/MapGoogle","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle"},{"html_id":"drivers/Juniper/MapImage","kind":"class","full_name":"Juniper::MapImage","name":"MapImage"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"image\"\n MapImage.from_json(json)\nwhen \"google\"\n MapGoogle.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L21"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L21"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/MapGoogle","path":"Juniper/MapGoogle.html","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_right_coordinates:LatLng-instance-method","name":"bottom_right_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates","return_type":"LatLng","visibility":"Public","body":"@bottom_right_coordinates"}},{"html_id":"bottom_right_coordinates=(bottom_right_coordinates:LatLng)-instance-method","name":"bottom_right_coordinates=","abstract":false,"args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"args_string":"(bottom_right_coordinates : LatLng)","args_html":"(bottom_right_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates=","args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@bottom_right_coordinates = bottom_right_coordinates"}},{"html_id":"origin_x:Float64-instance-method","name":"origin_x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x","return_type":"Float64","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64)-instance-method","name":"origin_x=","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"args_string":"(origin_x : Float64)","args_html":"(origin_x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64-instance-method","name":"origin_y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y","return_type":"Float64","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64)-instance-method","name":"origin_y=","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"args_string":"(origin_y : Float64)","args_html":"(origin_y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"top_left_coordinates:LatLng-instance-method","name":"top_left_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates","return_type":"LatLng","visibility":"Public","body":"@top_left_coordinates"}},{"html_id":"top_left_coordinates=(top_left_coordinates:LatLng)-instance-method","name":"top_left_coordinates=","abstract":false,"args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"args_string":"(top_left_coordinates : LatLng)","args_html":"(top_left_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates=","args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@top_left_coordinates = top_left_coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L56"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"view:String-instance-method","name":"view","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L57"},"def":{"name":"view","return_type":"String","visibility":"Public","body":"@view"}},{"html_id":"view=(view:String)-instance-method","name":"view=","abstract":false,"args":[{"name":"view","external_name":"view","restriction":"String"}],"args_string":"(view : String)","args_html":"(view : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L57"},"def":{"name":"view=","args":[{"name":"view","external_name":"view","restriction":"String"}],"visibility":"Public","body":"@view = view"}}]},{"html_id":"drivers/Juniper/MapImage","path":"Juniper/MapImage.html","kind":"class","full_name":"Juniper::MapImage","name":"MapImage","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Int32-instance-method","name":"height","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L41"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Int32)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(height : Int32)","args_html":"(height : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L41"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"@height = height"}},{"html_id":"height_m:Float64|Nil-instance-method","name":"height_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height_m"}},{"html_id":"height_m=(height_m:Float64|Nil)-instance-method","name":"height_m=","abstract":false,"args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"args_string":"(height_m : Float64 | Nil)","args_html":"(height_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m=","args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@height_m = height_m"}},{"html_id":"locked:Bool|Nil-instance-method","name":"locked","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L52"},"def":{"name":"locked","return_type":"Bool | ::Nil","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool|Nil)-instance-method","name":"locked=","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"args_string":"(locked : Bool | Nil)","args_html":"(locked : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L52"},"def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@locked = locked"}},{"html_id":"org_id:String|Nil-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id","return_type":"String | ::Nil","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String|Nil)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"args_string":"(org_id : String | Nil)","args_html":"(org_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"orientation:Int32|Nil-instance-method","name":"orientation","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation","return_type":"Int32 | ::Nil","visibility":"Public","body":"@orientation"}},{"html_id":"orientation=(orientation:Int32|Nil)-instance-method","name":"orientation=","abstract":false,"args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"args_string":"(orientation : Int32 | Nil)","args_html":"(orientation : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation=","args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@orientation = orientation"}},{"html_id":"origin_x:Float64|Nil-instance-method","name":"origin_x","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64|Nil)-instance-method","name":"origin_x=","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"args_string":"(origin_x : Float64 | Nil)","args_html":"(origin_x : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64|Nil-instance-method","name":"origin_y","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64|Nil)-instance-method","name":"origin_y=","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"args_string":"(origin_y : Float64 | Nil)","args_html":"(origin_y : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"pixels_per_meter:Float64|Nil-instance-method","name":"pixels_per_meter","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter","return_type":"Float64 | ::Nil","visibility":"Public","body":"@pixels_per_meter"}},{"html_id":"pixels_per_meter=(pixels_per_meter:Float64|Nil)-instance-method","name":"pixels_per_meter=","abstract":false,"args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"args_string":"(pixels_per_meter : Float64 | Nil)","args_html":"(pixels_per_meter : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter=","args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@pixels_per_meter = pixels_per_meter"}},{"html_id":"site_id:String|Nil-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id","return_type":"String | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String|Nil)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String | Nil)","args_html":"(site_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"thumbnail_url:String-instance-method","name":"thumbnail_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url","return_type":"String","visibility":"Public","body":"@thumbnail_url"}},{"html_id":"thumbnail_url=(thumbnail_url:String)-instance-method","name":"thumbnail_url=","abstract":false,"args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"args_string":"(thumbnail_url : String)","args_html":"(thumbnail_url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url=","args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"visibility":"Public","body":"@thumbnail_url = thumbnail_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L31"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"width:Int32-instance-method","name":"width","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L40"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Int32)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32)","args_html":"(width : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L40"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"visibility":"Public","body":"@width = width"}},{"html_id":"width_m:Float64|Nil-instance-method","name":"width_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width_m"}},{"html_id":"width_m=(width_m:Float64|Nil)-instance-method","name":"width_m=","abstract":false,"args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"args_string":"(width_m : Float64 | Nil)","args_html":"(width_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m=","args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@width_m = width_m"}}]},{"html_id":"drivers/Juniper/Mist","path":"Juniper/Mist.html","kind":"class","full_name":"Juniper::Mist","name":"Mist","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(site_id:String,client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(site_id : String, client_mac : String)","args_html":"(site_id : String, client_mac : String)","location":{"filename":"src/juniper/mist.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L117"},"def":{"name":"client","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"clients(site_id:String,map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String, map_id : String | Nil = nil)","args_html":"(site_id : String, map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L109"},"def":{"name":"clients","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L97"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"location_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"location_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/juniper/mist.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L124"},"def":{"name":"location_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nvalidation = if signature = headers[\"X-Mist-Signature-v2\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA256, @webhook_secret, body)).downcase\nelse\n if signature = headers[\"X-Mist-Signature\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA1, @webhook_secret, body)).downcase\n else\n logger.warn do\n \"webhook called without validation signature\"\n end\n return {HTTP::Status::NOT_FOUND.to_i, EMPTY_HEADERS, \"\"}\n end\nend\nif validation != signature.downcase\n logger.warn do\n \"validation failed, check webhook secret\"\n end\n return {HTTP::Status::UNAUTHORIZED.to_i, EMPTY_HEADERS, \"\"}\nend\nbegin\n event_data = WebhookEvent.from_json(body)\n logger.debug do\n \"parsed mist webhook payload\"\n end\n if event_data.topic != \"location\"\n logger.debug do\n \"ignoring message type: #{event_data.topic}\"\n end\n return SUCCESS_RESPONSE\n end\n sites = Hash(String, Array(LocationEvent)).new do |hash, site|\n hash[site] = [] of LocationEvent\n end\n (event_data.events.as(Array(LocationEvent))).each do |event|\n sites[event.site_id] << event\n end\n sites.each do |site, events|\n self[site] = events\n end\nrescue e\n logger.error(exception: e) do\n \"failed to parse mist webhook payload\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}},{"html_id":"maps(site_id:String)-instance-method","name":"maps","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L105"},"def":{"name":"maps","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nschedule.cron(\"0 * * * *\") do\n reset_rate_limit\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L36"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@org_id = setting(String, :org_id)\n@webhook_secret = (setting?(String, :webhook_secret)) || \"\"\n"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L101"},"def":{"name":"sites","visibility":"Public","body":"request(Array(Site)) do |headers|\n get(\"/api/v1/orgs/#{@org_id}/sites\", headers: headers)\nend"}}]},{"html_id":"drivers/Juniper/MistLocationService","path":"Juniper/MistLocationService.html","kind":"class","full_name":"Juniper::MistLocationService","name":"MistLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/juniper/mist_location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L113"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = (mist.ownership_of(lookup)).get.as_s?\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L125"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of String\nend\nmaps = [] of String\n@floorplan_mappings.each do |map_id, data|\n if data.values.includes?(zone_id)\n maps << map_id\n end\nend\nlogger.debug do\n \"found matching mist maps: #{maps}\"\nend\nif maps.empty?\n return [] of String\nend\nignore_older = @max_location_age.ago.to_unix\nall_devices = maps.flat_map do |map_id|\n clients = (mist.status?(Array(Client), map_id)) || ([] of Client)\n mappings = @floorplan_mappings[map_id]\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n clients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\n end\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L192"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L62"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"clients = Array(Client).from_json((mist.locate(username.presence || email.presence.not_nil!)).get.to_json)\nignore_older = @max_location_age.ago.to_unix\nclients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n map_id = client.map_id\n mappings = @floorplan_mappings[map_id]?\n if mappings\n else\n next\n end\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\nend\n"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","doc":"Proxies the data to the mist driver","summary":"

Proxies the data to the mist driver

","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_location_service.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L108"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"mist.mac_address_mappings(username, macs, domain)"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L102"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(mist.macs_assigned_to(username.presence || email.presence.not_nil!)).get.as_a.map(&.as_s)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Int32)), :floorplan_mappings)) || @floorplan_mappings\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\nschedule.clear\nschedule.every(10.minutes) do\n sync_map_sizes\nend\nschedule.in(20.seconds) do\n sync_map_sizes\nend\n"}}]},{"html_id":"drivers/Juniper/MistWebsocket","path":"Juniper/MistWebsocket.html","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L207"},"def":{"name":"client","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"client_data:Hash(String,Client)-instance-method","name":"client_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L36"},"def":{"name":"client_data","return_type":"Hash(String, Client)","visibility":"Public","body":"if (__temp_1 = @client_data).nil?\n @client_data = ({} of String => Client)\nelse\n __temp_1\nend"}},{"html_id":"clients(map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil = nil)","args_html":"(map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L199"},"def":{"name":"clients","args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L69"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\n@location_data = nil\n@client_data = nil\nschedule.every(45.seconds, immediate: true) do\n transport.send({subscribe: \"/sites/#{@site_id}/stats/clients\"}.to_json)\n maps.each do |map|\n transport.send({subscribe: \"/sites/#{@site_id}/stats/maps/#{map.id}/clients\"}.to_json)\n end\nend\nsync_clients\nschedule.every(3.seconds) do\n update_client_locations\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L85"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@connected = false\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L248"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L239"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L186"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"locate(username:String)-instance-method","name":"locate","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String)","args_html":"(username : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L266"},"def":{"name":"locate","args":[{"name":"username","external_name":"username","restriction":"String"}],"visibility":"Public","body":"(macs_assigned_to(username)).compact_map do |mac|\n self[mac]?\nend"}},{"html_id":"location_data:Hash(String,Hash(String,Client))-instance-method","name":"location_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L32"},"def":{"name":"location_data","return_type":"Hash(String, Hash(String, Client))","visibility":"Public","body":"if (__temp_1 = @location_data).nil?\n @location_data = (Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\n end)\nelse\n __temp_1\nend"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_websocket.cr","line_number":307,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L307"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"macs_assigned_to(username:String):Array(String)-instance-method","name":"macs_assigned_to","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String) : Array(String)","args_html":"(username : String) : Array(String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L252"},"def":{"name":"macs_assigned_to","args":[{"name":"username","external_name":"username","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username)\nif macs = user_mac_mappings do |s|\n s[username]?\nend\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"maps-instance-method","name":"maps","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L194"},"def":{"name":"maps","visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\ntransport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@site_id = setting(String, :site_id)\nif @site_id == \"site_id\"\nelse\n transport.http_uri_override = URI.parse(\"https://api.mist.com\")\nend\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\nif @connected\n connected\nend\n"}},{"html_id":"ownership_of(mac_address:String)-instance-method","name":"ownership_of","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L261"},"def":{"name":"ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"mac_address = format_mac(mac_address)\nuser_mac_mappings do |storage|\n storage[mac_address]?\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L221"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"string = (String.new(data)).rstrip\nlogger.debug do\n \"websocket sent: #{string}\"\nend\nevent = WebsocketEvent.from_json(string)\nif event_data = event.data\n if event.channel.includes?(\"/maps/\")\n client_location = ClientLocation.from_json(event_data)\n update_location(client_data, location_data, client_location)\n else\n client_stats = ClientStats.from_json(event_data)\n update_stats(client_data, client_stats)\n end\nend\ntask.try(&.success)\n"}},{"html_id":"site_list(org_id:String)-instance-method","name":"site_list","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L190"},"def":{"name":"site_list","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Hash(String, JSON::Any))) do |headers|\n get(\"/api/v1/installer/orgs/#{org_id}/sites\", headers: headers)\nend"}},{"html_id":"sync_clients-instance-method","name":"sync_clients","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L155"},"def":{"name":"sync_clients","visibility":"Public","body":"all_clients = [] of Client\nmaps.each do |map|\n all_clients.concat((clients(map.id)).map() do |__arg0|\n __arg0.as(Client)\n end)\nend\nloc_data = Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\nend\ncli_data = {} of String => Client\nall_clients.each do |client|\n client_mac = format_mac(client.mac)\n client.mac = client_mac\n cli_data[client_mac] = client\n loc_data[client.map_id][client_mac] = client\nend\n@client_data = cli_data\n@location_data = loc_data\nloc_data.each do |map_id, clients|\n self[map_id] = clients.values\nend\nlocation_data.size\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L62"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"Authorization\" => @api_token, \"User-Agent\" => \"PlaceOS/2.0 PlaceTechnology\"}"}}],"types":[{"html_id":"drivers/Juniper/MistWebsocket/WebsocketEvent","path":"Juniper/MistWebsocket/WebsocketEvent.html","kind":"struct","full_name":"Juniper::MistWebsocket::WebsocketEvent","name":"WebsocketEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper/MistWebsocket","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L215"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"data:String|Nil-instance-method","name":"data","doc":"data will be the Client class as a JSON string","summary":"

data will be the Client class as a JSON string

","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L218"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L214"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]}]},{"html_id":"drivers/Juniper/OtherEvents","path":"Juniper/OtherEvents.html","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L202"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(JSON::Any)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L204"},"def":{"name":"events","return_type":"Array(JSON::Any)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L203"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/Site","path":"Juniper/Site.html","kind":"class","full_name":"Juniper::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"country_code:String-instance-method","name":"country_code","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code","return_type":"String","visibility":"Public","body":"@country_code"}},{"html_id":"country_code=(country_code:String)-instance-method","name":"country_code=","abstract":false,"args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"args_string":"(country_code : String)","args_html":"(country_code : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code=","args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"visibility":"Public","body":"@country_code = country_code"}},{"html_id":"created_time:Int64-instance-method","name":"created_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time","return_type":"Int64","visibility":"Public","body":"@created_time"}},{"html_id":"created_time=(created_time:Int64)-instance-method","name":"created_time=","abstract":false,"args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"args_string":"(created_time : Int64)","args_html":"(created_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time=","args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"visibility":"Public","body":"@created_time = created_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"modified_time:Int64-instance-method","name":"modified_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time","return_type":"Int64","visibility":"Public","body":"@modified_time"}},{"html_id":"modified_time=(modified_time:Int64)-instance-method","name":"modified_time=","abstract":false,"args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"args_string":"(modified_time : Int64)","args_html":"(modified_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time=","args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"visibility":"Public","body":"@modified_time = modified_time"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}}]},{"html_id":"drivers/Juniper/WebhookEvent","path":"Juniper/WebhookEvent.html","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationEvents","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents"},{"html_id":"drivers/Juniper/OtherEvents","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L180"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"topic\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'topic' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'topic'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n LocationEvents.from_json(json)\nwhen \"zone\"\n OtherEvents.from_json(json)\nwhen \"asset-raw\"\n OtherEvents.from_json(json)\nwhen \"device-events\"\n OtherEvents.from_json(json)\nwhen \"device-updowns\"\n OtherEvents.from_json(json)\nwhen \"alarms\"\n OtherEvents.from_json(json)\nwhen \"audits\"\n OtherEvents.from_json(json)\nwhen \"client-join\"\n OtherEvents.from_json(json)\nwhen \"client-sessions\"\n OtherEvents.from_json(json)\nwhen \"ping\"\n OtherEvents.from_json(json)\nwhen \"occupancy-alerts\"\n OtherEvents.from_json(json)\nwhen \"sdkclient-scan-data\"\n OtherEvents.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'topic' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]}]},{"html_id":"drivers/Kaiterra","path":"Kaiterra.html","kind":"module","full_name":"Kaiterra","name":"Kaiterra","abstract":false,"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kaiterra/API","path":"Kaiterra/API.html","kind":"class","full_name":"Kaiterra::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"batch(body:Array(Request),params:Hash(String,String)={}ofString=>String)-instance-method","name":"batch","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","args_html":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L114"},"def":{"name":"batch","args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = post(generate_url(\"/batch\", params), body: body.to_json, headers: generate_headers({\"Content-Type\" => \"application/json\", \"Content-Encoding\" => \"UTF-8\"}))\nArray(BatchResponse).from_json(response.body)\n"}},{"html_id":"get_devices(id:String,params:Hash(String,String)={}ofString=>String)-instance-method","name":"get_devices","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(id : String, params : Hash(String, String) = {} of String => String)","args_html":"(id : String, params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L89"},"def":{"name":"get_devices","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = get(generate_url(\"/devices/#{id}/top\", params), headers: generate_headers)\nResponse.from_json(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}}],"types":[{"html_id":"drivers/Kaiterra/API/BatchResponse","path":"Kaiterra/API/BatchResponse.html","kind":"class","full_name":"Kaiterra::API::BatchResponse","name":"BatchResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L110"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L110"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"code:Int64-instance-method","name":"code","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L111"},"def":{"name":"code","return_type":"Int64","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int64)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int64"}],"args_string":"(code : Int64)","args_html":"(code : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L111"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int64"}],"visibility":"Public","body":"@code = code"}}]},{"html_id":"drivers/Kaiterra/API/Data","path":"Kaiterra/API/Data.html","kind":"class","full_name":"Kaiterra::API::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"param:Param-instance-method","name":"param","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L82"},"def":{"name":"param","return_type":"Param","visibility":"Public","body":"@param"}},{"html_id":"param=(param:Param)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"Param"}],"args_string":"(param : Param)","args_html":"(param : Param)","location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L82"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"Param"}],"visibility":"Public","body":"@param = param"}},{"html_id":"points:Array(JSON::Any::Type)-instance-method","name":"points","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L86"},"def":{"name":"points","return_type":"Array(JSON::Any::Type)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(JSON::Any::Type))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"args_string":"(points : Array(JSON::Any::Type))","args_html":"(points : Array(JSON::Any::Type))","location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L86"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"visibility":"Public","body":"@points = points"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L84"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:String|Nil)-instance-method","name":"source=","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(source : String | Nil)","args_html":"(source : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L84"},"def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"@source = source"}},{"html_id":"span:Int64-instance-method","name":"span","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L85"},"def":{"name":"span","return_type":"Int64","visibility":"Public","body":"@span"}},{"html_id":"span=(span:Int64)-instance-method","name":"span=","abstract":false,"args":[{"name":"span","external_name":"span","restriction":"Int64"}],"args_string":"(span : Int64)","args_html":"(span : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L85"},"def":{"name":"span=","args":[{"name":"span","external_name":"span","restriction":"Int64"}],"visibility":"Public","body":"@span = span"}},{"html_id":"units:Unit-instance-method","name":"units","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L83"},"def":{"name":"units","return_type":"Unit","visibility":"Public","body":"@units"}},{"html_id":"units=(units:Unit)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"Unit"}],"args_string":"(units : Unit)","args_html":"(units : Unit)","location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L83"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"Unit"}],"visibility":"Public","body":"@units = units"}}]},{"html_id":"drivers/Kaiterra/API/Param","path":"Kaiterra/API/Param.html","kind":"enum","full_name":"Kaiterra::API::Param","name":"Param","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rco2","name":"Rco2","value":"0"},{"id":"Ro3","name":"Ro3","value":"1"},{"id":"Rpm25c","name":"Rpm25c","value":"2"},{"id":"Rpm10c","name":"Rpm10c","value":"3"},{"id":"Rhumid","name":"Rhumid","value":"4"},{"id":"Rtemp","name":"Rtemp","value":"5"},{"id":"Rtvoc","name":"Rtvoc","value":"6"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"instance_methods":[{"html_id":"rco2?-instance-method","name":"rco2?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L22"},"def":{"name":"rco2?","visibility":"Public","body":"self == Rco2"}},{"html_id":"rhumid?-instance-method","name":"rhumid?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L26"},"def":{"name":"rhumid?","visibility":"Public","body":"self == Rhumid"}},{"html_id":"ro3?-instance-method","name":"ro3?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L23"},"def":{"name":"ro3?","visibility":"Public","body":"self == Ro3"}},{"html_id":"rpm10c?-instance-method","name":"rpm10c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L25"},"def":{"name":"rpm10c?","visibility":"Public","body":"self == Rpm10c"}},{"html_id":"rpm25c?-instance-method","name":"rpm25c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L24"},"def":{"name":"rpm25c?","visibility":"Public","body":"self == Rpm25c"}},{"html_id":"rtemp?-instance-method","name":"rtemp?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L27"},"def":{"name":"rtemp?","visibility":"Public","body":"self == Rtemp"}},{"html_id":"rtvoc?-instance-method","name":"rtvoc?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L28"},"def":{"name":"rtvoc?","visibility":"Public","body":"self == Rtvoc"}}]},{"html_id":"drivers/Kaiterra/API/Request","path":"Kaiterra/API/Request.html","kind":"class","full_name":"Kaiterra::API::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String|Nil-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L104"},"def":{"name":"body","return_type":"String | ::Nil","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String|Nil)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(body : String | Nil)","args_html":"(body : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L104"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"@body = body"}},{"html_id":"headers:Array(NamedTuple(name:String,value:String))|Nil-instance-method","name":"headers","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L103"},"def":{"name":"headers","return_type":"Array(NamedTuple(name: String, value: String)) | ::Nil","visibility":"Public","body":"@headers"}},{"html_id":"headers=(headers:Array(NamedTuple(name:String,value:String))|Nil)-instance-method","name":"headers=","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"args_string":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","args_html":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L103"},"def":{"name":"headers=","args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"visibility":"Public","body":"@headers = headers"}},{"html_id":"method:String-instance-method","name":"method","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L100"},"def":{"name":"method","return_type":"String","visibility":"Public","body":"@method"}},{"html_id":"method=(method:String)-instance-method","name":"method=","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"}],"args_string":"(method : String)","args_html":"(method : String)","location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L100"},"def":{"name":"method=","args":[{"name":"method","external_name":"method","restriction":"String"}],"visibility":"Public","body":"@method = method"}},{"html_id":"relative_url:String-instance-method","name":"relative_url","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url","return_type":"String","visibility":"Public","body":"@relative_url"}},{"html_id":"relative_url=(relative_url:String)-instance-method","name":"relative_url=","abstract":false,"args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"args_string":"(relative_url : String)","args_html":"(relative_url : String)","location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url=","args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"visibility":"Public","body":"@relative_url = relative_url"}}]},{"html_id":"drivers/Kaiterra/API/Response","path":"Kaiterra/API/Response.html","kind":"class","full_name":"Kaiterra::API::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Data)|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L75"},"def":{"name":"data","return_type":"Array(Data) | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Array(Data)|Nil)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"args_string":"(data : Array(Data) | Nil)","args_html":"(data : Array(Data) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L75"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"visibility":"Public","body":"@data = data"}},{"html_id":"errors:Array(JSON::Any::Type)|Nil-instance-method","name":"errors","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L76"},"def":{"name":"errors","return_type":"Array(JSON::Any::Type) | ::Nil","visibility":"Public","body":"@errors"}},{"html_id":"errors=(errors:Array(JSON::Any::Type)|Nil)-instance-method","name":"errors=","abstract":false,"args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"args_string":"(errors : Array(JSON::Any::Type) | Nil)","args_html":"(errors : Array(JSON::Any::Type) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L76"},"def":{"name":"errors=","args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"visibility":"Public","body":"@errors = errors"}}]},{"html_id":"drivers/Kaiterra/API/Unit","path":"Kaiterra/API/Unit.html","kind":"enum","full_name":"Kaiterra::API::Unit","name":"Unit","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L31"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ppm","name":"Ppm","value":"0"},{"id":"Ppb","name":"Ppb","value":"1"},{"id":"MicrogramsPerCubicMeter","name":"MicrogramsPerCubicMeter","value":"2"},{"id":"MilligramsPerCubicMeter","name":"MilligramsPerCubicMeter","value":"3"},{"id":"C","name":"C","value":"4"},{"id":"F","name":"F","value":"5"},{"id":"X","name":"X","value":"6"},{"id":"Percentage","name":"Percentage","value":"7"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"class_methods":[{"html_id":"parse(string)-class-method","name":"parse","abstract":false,"args":[{"name":"string","external_name":"string","restriction":""}],"args_string":"(string)","args_html":"(string)","location":{"filename":"src/kaiterra/api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L41"},"def":{"name":"parse","args":[{"name":"string","external_name":"string","restriction":""}],"visibility":"Public","body":"case string\nwhen \"µg/m³\"\n Unit::MicrogramsPerCubicMeter\nwhen \"mg/m³\"\n Unit::MilligramsPerCubicMeter\nwhen \"%\"\n Unit::Percentage\nelse\n super(string)\nend"}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L54"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"parse(pull.read_string)"}}],"instance_methods":[{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L36"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L37"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"micrograms_per_cubic_meter?-instance-method","name":"micrograms_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L34"},"def":{"name":"micrograms_per_cubic_meter?","visibility":"Public","body":"self == MicrogramsPerCubicMeter"}},{"html_id":"milligrams_per_cubic_meter?-instance-method","name":"milligrams_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L35"},"def":{"name":"milligrams_per_cubic_meter?","visibility":"Public","body":"self == MilligramsPerCubicMeter"}},{"html_id":"percentage?-instance-method","name":"percentage?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L39"},"def":{"name":"percentage?","visibility":"Public","body":"self == Percentage"}},{"html_id":"ppb?-instance-method","name":"ppb?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L33"},"def":{"name":"ppb?","visibility":"Public","body":"self == Ppb"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L32"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L58"},"def":{"name":"to_s","visibility":"Public","body":"case self\nwhen Unit::MicrogramsPerCubicMeter\n \"µg/m³\"\nwhen Unit::MilligramsPerCubicMeter\n \"mg/m³\"\nwhen Unit::Percentage\n \"%\"\nelse\n super()\nend"}},{"html_id":"x?-instance-method","name":"x?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L38"},"def":{"name":"x?","visibility":"Public","body":"self == X"}}]}]},{"html_id":"drivers/Kaiterra/RoomLogic","path":"Kaiterra/RoomLogic.html","kind":"class","full_name":"Kaiterra::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_measurements-instance-method","name":"get_measurements","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L25"},"def":{"name":"get_measurements","visibility":"Public","body":"response = (kaiterra.get_devices(@room_id)).get\nif results = response.as_h[\"data\"]\nelse\n return \"No Data\"\nend\nresults.as_a.each do |i|\n name = \"#{i[\"param\"]} (#{i[\"units\"]})\"\n value = i[\"points\"].as_a.first[\"value\"]\n self[name] = value\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@room_id = setting(String, :kaiterra_room_id)\n@cron_string = setting(String, :kaiterra_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_measurements\nend\n"}}]}]},{"html_id":"drivers/Keycloak","path":"Keycloak.html","kind":"module","full_name":"Keycloak","name":"Keycloak","abstract":false,"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Keycloak/RestAPI","path":"Keycloak/RestAPI.html","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Keycloak","kind":"module","full_name":"Keycloak","name":"Keycloak"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L113"},"def":{"name":"get_token","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"only supports requests directly from SSO users\")\nend\nget_user_token(user_id)\n"}},{"html_id":"get_user_token(user_id:String):String-instance-method","name":"get_user_token","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/keycloak/rest_api.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L120"},"def":{"name":"get_user_token","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = ::HTTP::Client.post(\"#{@place_domain}/api/engine/v2/users/#{user_id}/resource_token\", headers: HTTP::Headers {\"X-API-Key\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain a keycloak API key for user #{user_id}: #{response.status_code} - #{response.body}\")\nend\n(JSON.parse(response.body))[\"token\"].as_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@realm = (setting(String, :realm)) || \"\"\n@api_key = (setting(String, :place_api_key)) || \"\"\n@place_domain = (setting(String, :place_domain)) || \"\"\n"}},{"html_id":"users(search:String|Nil=nil,email:String|Nil=nil,enabled_users_only:Bool=true,all_pages:Bool=false,auth_token:String|Nil=nil)-instance-method","name":"users","abstract":false,"args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"args_string":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","args_html":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","location":{"filename":"src/keycloak/rest_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L63"},"def":{"name":"users","args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_token = \"Bearer #{auth_token.presence || get_token}\"\nparams = URI::Params.build do |form|\n if search.presence\n form.add(\"search\", search.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n form.add(\"enabled\", enabled_users_only.to_s)\n form.add(\"exact\", (!!email.presence).to_s)\n form.add(\"first\", \"1\")\n form.add(\"max\", \"100\")\nend\nusers = [] of UserDetails\nnext_request = \"/admin/realms/#{@realm}/users?#{params}\"\nheaders = HTTP::Headers {\"Accept\" => \"application/json\", \"Authorization\" => user_token}\nlogger.debug do\n \"requesting users, all pages: #{all_pages}\"\nend\npage_count = 1\nloop do\n response = get(next_request, headers: headers)\n if response.success?\n else\n raise(\"unexpected error: #{response.status_code} - #{response.body}\")\n end\n links = LinkHeader.new(response)\n next_request = links[\"next\"]?\n new_users = Array(UserDetails).from_json(response.body)\n users.concat(new_users)\n if (!all_pages || next_request.nil?) || new_users.empty?\n break\n end\n page_count = page_count + 1\nend\nlogger.debug do\n \"users count: #{users.size}, pages: #{page_count}\"\nend\nusers\n"}}],"types":[{"html_id":"drivers/Keycloak/RestAPI/Role","path":"Keycloak/RestAPI/Role.html","kind":"struct","full_name":"Keycloak::RestAPI::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L29"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L34"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L32"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L33"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Keycloak/RestAPI/UserDetails","path":"Keycloak/RestAPI/UserDetails.html","kind":"struct","full_name":"Keycloak::RestAPI::UserDetails","name":"UserDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_roles:Array(Role)|Nil-instance-method","name":"application_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L59"},"def":{"name":"application_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@application_roles"}},{"html_id":"client_roles:Array(Role)|Nil-instance-method","name":"client_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L56"},"def":{"name":"client_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@client_roles"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L44"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"enabled:Bool|Nil-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L43"},"def":{"name":"enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L47"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"groups:Array(String)|Nil-instance-method","name":"groups","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L60"},"def":{"name":"groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@groups"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L41"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L50"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"realm_roles:Array(String)|Nil-instance-method","name":"realm_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L53"},"def":{"name":"realm_roles","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@realm_roles"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L42"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]}]},{"html_id":"drivers/KontaktIO","path":"KontaktIO.html","kind":"module","full_name":"KontaktIO","name":"KontaktIO","abstract":false,"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/KontaktIO/Building","path":"KontaktIO/Building.html","kind":"class","full_name":"KontaktIO::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L158"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L159"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L164"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L163"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L168"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L161"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L165"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L166"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L162"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/BuildingShort","path":"KontaktIO/BuildingShort.html","kind":"class","full_name":"KontaktIO::BuildingShort","name":"BuildingShort","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L132"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L133"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/Campus","path":"KontaktIO/Campus.html","kind":"class","full_name":"KontaktIO::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L171"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L172"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L177"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"buildings:Array(Building)-instance-method","name":"buildings","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L183"},"def":{"name":"buildings","return_type":"Array(Building)","visibility":"Public","body":"@buildings"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L176"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L174"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L180"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L181"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L175"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L179"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/KontaktIO/Contact","path":"KontaktIO/Contact.html","kind":"class","full_name":"KontaktIO::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration_sec:Int32-instance-method","name":"duration_sec","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L62"},"def":{"name":"duration_sec","return_type":"Int32","visibility":"Public","body":"@duration_sec"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L53"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L56"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L59"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}}]},{"html_id":"drivers/KontaktIO/ContactTracing","path":"KontaktIO/ContactTracing.html","kind":"class","full_name":"KontaktIO::ContactTracing","name":"ContactTracing","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/contact_tracing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"close_contacts(email:String|Nil=nil,username:String|Nil=nil,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil)-instance-method","name":"close_contacts","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L13"},"def":{"name":"close_contacts","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"macs = (location_services.macs_assigned_to(email, username)).get.as_a.map(&.as_s)\nperiods = [] of Tuple(Int64, Int64)\nperiod_start = start_time || 2.days.ago.to_unix\nperiod_end = end_time || 1.days.ago.to_unix\nloop do\n temp_ending = period_start + 6.hours.to_i\n if temp_ending < period_end\n periods << {period_start, temp_ending}\n else\n periods << {period_start, period_end}\n break\n end\n period_start = temp_ending\nend\nlocations = [] of Tracking\nerrors = [] of Exception\nmacs.each do |mac|\n begin\n periods.each do |__temp_821|\n starting, ending = __temp_821\n raw_report = (kontakt.colocations(mac, starting, ending)).get.to_json\n locations.concat(Array(Tracking).from_json(raw_report))\n end\n rescue error\n logger.warn(exception: error) do\n \"locating close contacts\"\n end\n errors << error\n end\nend\nif locations.empty? && errors.size > 0\n raise(errors[0])\nend\nmacs = Set(String).new\nlocations.each do |location|\n macs << location.mac_address\nend\nmac_mappings = {} of String => String\nmacs.each do |mac|\n mac = format_mac(mac)\n if owner = (location_services.check_ownership_of(mac)).get.as_h?\n username = owner[\"assigned_to\"]?.try(&.as_s)\n if username\n else\n next\n end\n mac_mappings[mac] = username\n end\nend\ncontacts = {} of String => NamedTuple(mac_address: String, username: String | ::Nil, contact_time: Int64, duration: Int32)\nlocations.each do |location|\n mac = format_mac(location.mac_address)\n username = mac_mappings[mac]?\n duration = location.duration\n if current = contacts[username || mac]?\n if current[:duration] > duration\n next\n end\n end\n contacts[username || mac] = {mac_address: mac, username: username, contact_time: location.start_time.to_unix, duration: duration}\nend\ncontacts.values\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L93"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}}]},{"html_id":"drivers/KontaktIO/Floor","path":"KontaktIO/Floor.html","kind":"class","full_name":"KontaktIO::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:BuildingShort|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L155"},"def":{"name":"building","return_type":"BuildingShort | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"height:Float64|Nil-instance-method","name":"height","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L143"},"def":{"name":"height","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L140"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","doc":"lat lng from bottom right corner of image","summary":"

lat lng from bottom right corner of image

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L150"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"level:Int32|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L146"},"def":{"name":"level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L153"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L141"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"rotation:Float64|Nil-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L145"},"def":{"name":"rotation","return_type":"Float64 | ::Nil","visibility":"Public","body":"@rotation"}},{"html_id":"width:Float64|Nil-instance-method","name":"width","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L144"},"def":{"name":"width","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/KontaktIO/KioCloud","path":"KontaktIO/KioCloud.html","kind":"class","full_name":"KontaktIO::KioCloud","name":"KioCloud","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"campuses:Array(Campus)-instance-method","name":"campuses","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L110"},"def":{"name":"campuses","return_type":"Array(Campus)","visibility":"Public","body":"campuses = [] of Campus\nmake_request(\"GET\", \"/v2/locations/campuses\") do |data|\n resp = Response(Campus).from_json(data)\n campuses.concat(resp.content)\n resp.page\nend\ncampuses\n"}},{"html_id":"colocations(mac_address:String,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil):Array(Tracking)-instance-method","name":"colocations","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","args_html":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L83"},"def":{"name":"colocations","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"return_type":"Array(Tracking)","visibility":"Public","body":"ending = end_time ? Time.unix(end_time) : 10.minutes.ago\nstarting = start_time ? Time.unix(start_time) : (ending - 20.days)\ntracking = [] of Tracking\nmake_request(\"GET\", \"/v3/novid/colocations\", params: URI::Params {\"trackingId\" => ((format_mac(mac_address)).upcase.scan(/\\w{2}/)).map() do |__arg1|\n __arg1.to_a.first\nend.join(':'), \"startTime\" => starting.to_rfc3339, \"endTime\" => ending.to_rfc3339}) do |data|\n resp = Response(Tracking).from_json(data)\n tracking.concat(resp.content)\n resp.page\nend\ntracking\n"}},{"html_id":"create_channel(name:String,uri:String)-instance-method","name":"create_channel","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(name : String, uri : String)","args_html":"(name : String, uri : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L202"},"def":{"name":"create_channel","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"make_request(\"POST\", \"/v3/channels\", body: {status: :active, name: name, channel: {type: \"eventHub\", endpoint: uri, streamName: name, accessKey: \"test\", secretKey: \"test\", region: \"test\", sharedAccessKeyName: \"test\", eventHubName: \"test\", sharedAccessKey: \"test\"}}.to_json)"}},{"html_id":"delete_channel(id:Int32|String)-instance-method","name":"delete_channel","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"args_string":"(id : Int32 | String)","args_html":"(id : Int32 | String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L220"},"def":{"name":"delete_channel","args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"visibility":"Public","body":"make_request(\"DELETE\", \"/v3/channels\", params: URI::Params {\"id\" => id.to_s})"}},{"html_id":"event_hub(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"event_hub","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L197"},"def":{"name":"event_hub","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nlogger.debug do\n body\nend\n"}},{"html_id":"find(mac_address:String):Position|Nil-instance-method","name":"find","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : Position | Nil","args_html":"(mac_address : String) : Position | Nil","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L102"},"def":{"name":"find","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"Position | ::Nil","visibility":"Public","body":"data = make_request(\"GET\", \"/v2/positions\", params: URI::Params {\"trackingId\" => format_mac(mac_address)})\n(Response(Position).from_json(data)).content.first?\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L193"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"occupancy_cache:Hash(Int64,RoomOccupancy)-instance-method","name":"occupancy_cache","doc":"===================================\nCaching sensor data\n===================================","summary":"

=================================== Caching sensor data ===================================

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L159"},"def":{"name":"occupancy_cache","return_type":"Hash(Int64, RoomOccupancy)","visibility":"Public","body":"@occupancy_cache"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)\npoll_every = ((setting?(Int32, :poll_every)) || 2).seconds\nschedule.clear\nschedule.every(poll_every) do\n cache_occupancy_counts\nend\n"}},{"html_id":"room_occupancy:Array(RoomOccupancy)-instance-method","name":"room_occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L130"},"def":{"name":"room_occupancy","return_type":"Array(RoomOccupancy)","visibility":"Public","body":"room_occupancy = [] of RoomOccupancy\nmake_request(\"GET\", \"/v3/occupancy/rooms\") do |data|\n resp = Response(RoomOccupancy).from_json(data)\n room_occupancy.concat(resp.content)\n resp.page\nend\nroom_occupancy\n"}},{"html_id":"rooms:Array(Room)-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L120"},"def":{"name":"rooms","return_type":"Array(Room)","visibility":"Public","body":"rooms = [] of Room\nmake_request(\"GET\", \"/v2/locations/rooms\") do |data|\n resp = Response(Room).from_json(data)\n rooms.concat(resp.content)\n resp.page\nend\nrooms\n"}},{"html_id":"telemetry(tracking_ids:Array(String)):Array(Telemetry)-instance-method","name":"telemetry","abstract":false,"args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"args_string":"(tracking_ids : Array(String)) : Array(Telemetry)","args_html":"(tracking_ids : Array(String)) : Array(Telemetry)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L140"},"def":{"name":"telemetry","args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"return_type":"Array(Telemetry)","visibility":"Public","body":"telemetry = [] of Telemetry\nparams = URI::Params.new\nparams[\"endTime\"] = Time.utc.to_rfc3339(fraction_digits: 3)\nparams[\"startTime\"] = 2.minutes.ago.to_rfc3339(fraction_digits: 3)\nif tracking_ids.empty?\nelse\n params[\"trackingId\"] = tracking_ids.map() do |__arg2|\n __arg2.strip.downcase\n end.join(\",\")\nend\nmake_request(\"GET\", \"/v3/telemetry\", params: params) do |data|\n resp = Response(Telemetry).from_json(data)\n telemetry.concat(resp.content)\n resp.page\nend\ntelemetry\n"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings","path":"KontaktIO/MacAddressMappings.html","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"map_devices-instance-method","name":"map_devices","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L40"},"def":{"name":"map_devices","visibility":"Public","body":"request = \"https://api.kontakt.io/device?maxResult=500&deviceType=BEACON\"\nlocatable = system.implementing(Interface::Locatable)\nwhile request.presence\n response = HTTP::Client.get(request, headers: HTTP::Headers {\"Api-Key\" => @api_key, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/vnd.com.kontakt+json;version=10\"})\n logger.debug do\n \"request returned:\\n#{response.body}\"\n end\n case response.status_code\n when 303\n when 401\n logger.warn do\n \"The API Key is invalid or disabled\"\n end\n when 403\n logger.warn do\n \"User who created the API no longer has access to the Kio Cloud account or their user role doesn't allow access to the endpoint. Device error if the endpoint is not available for the device model.\"\n end\n end\n if response.success?\n else\n raise(\"request #{request} failed with status: #{response.status_code}\")\n end\n result = NamedTuple(devices: Array(DeviceDetails), searchMeta: SearchMeta).from_json(response.body)\n meta = result[:searchMeta]\n request = meta.next_results\n result[:devices].each do |device|\n if device.alias.presence\n else\n next\n end\n (locatable.mac_address_mappings(device.alias, {device.mac}, \"\")).get\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.hour) do\n map_devices\nend\nschedule.in(10.seconds) do\n map_devices\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)"}}],"types":[{"html_id":"drivers/KontaktIO/MacAddressMappings/DeviceDetails","path":"KontaktIO/MacAddressMappings/DeviceDetails.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::DeviceDetails","name":"DeviceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alias:String|Nil-instance-method","name":"alias","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L36"},"def":{"name":"alias","return_type":"String | ::Nil","visibility":"Public","body":"@alias"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L37"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings/SearchMeta","path":"KontaktIO/MacAddressMappings/SearchMeta.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::SearchMeta","name":"SearchMeta","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_results:String-instance-method","name":"next_results","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L30"},"def":{"name":"next_results","return_type":"String","visibility":"Public","body":"@next_results"}}]}]},{"html_id":"drivers/KontaktIO/Page","path":"KontaktIO/Page.html","kind":"class","full_name":"KontaktIO::Page","name":"Page","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"number:Int32-instance-method","name":"number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L8"},"def":{"name":"number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @number).nil?\n @number = (0)\nelse\n __temp_1\nend"}},{"html_id":"size:Int32-instance-method","name":"size","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L7"},"def":{"name":"size","return_type":"Int32","visibility":"Public","body":"@size"}},{"html_id":"total_elements:Int32-instance-method","name":"total_elements","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L11"},"def":{"name":"total_elements","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_elements).nil?\n @total_elements = (0)\nelse\n __temp_1\nend"}},{"html_id":"total_pages:Int32-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L14"},"def":{"name":"total_pages","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_pages).nil?\n @total_pages = (0)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Position","path":"KontaktIO/Position.html","kind":"class","full_name":"KontaktIO::Position","name":"Position","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L105"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L106"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L118"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L121"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L115"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"last_update:String|Nil-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L124"},"def":{"name":"last_update","return_type":"String | ::Nil","visibility":"Public","body":"@last_update"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L109"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64|Nil-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L112"},"def":{"name":"room_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_id"}},{"html_id":"x:Int64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L125"},"def":{"name":"x","return_type":"Int64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"y:Int64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L126"},"def":{"name":"y","return_type":"Int64 | ::Nil","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/KontaktIO/Presence","path":"KontaktIO/Presence.html","kind":"class","full_name":"KontaktIO::Presence","name":"Presence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L87"},"def":{"name":"building_id","return_type":"Int64","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L90"},"def":{"name":"building_name","return_type":"String","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L93"},"def":{"name":"campus_id","return_type":"Int64","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L96"},"def":{"name":"campus_name","return_type":"String","visibility":"Public","body":"@campus_name"}},{"html_id":"company_id:String-instance-method","name":"company_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L69"},"def":{"name":"company_id","return_type":"String","visibility":"Public","body":"@company_id"}},{"html_id":"end_time:String-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L102"},"def":{"name":"end_time","return_type":"String","visibility":"Public","body":"@end_time"}},{"html_id":"floor_id:Int64-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L81"},"def":{"name":"floor_id","return_type":"Int64","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L84"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L72"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L78"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L75"},"def":{"name":"room_name","return_type":"String","visibility":"Public","body":"@room_name"}},{"html_id":"start_time:String-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L99"},"def":{"name":"start_time","return_type":"String","visibility":"Public","body":"@start_time"}}]},{"html_id":"drivers/KontaktIO/Response","path":"KontaktIO/Response.html","kind":"class","full_name":"KontaktIO::Response(T)","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Array(T)-instance-method","name":"content","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L20"},"def":{"name":"content","return_type":"Array(T)","visibility":"Public","body":"@content"}},{"html_id":"page:Page|Nil-instance-method","name":"page","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L21"},"def":{"name":"page","return_type":"Page | ::Nil","visibility":"Public","body":"@page"}}]},{"html_id":"drivers/KontaktIO/Room","path":"KontaktIO/Room.html","kind":"class","full_name":"KontaktIO::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor:Floor-instance-method","name":"floor","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L195"},"def":{"name":"floor","return_type":"Floor","visibility":"Public","body":"@floor"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L190"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L191"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_number:Int64|Nil-instance-method","name":"room_number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L198"},"def":{"name":"room_number","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_number"}},{"html_id":"room_sensor_ids:Array(String)-instance-method","name":"room_sensor_ids","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L203"},"def":{"name":"room_sensor_ids","return_type":"Array(String)","visibility":"Public","body":"room_sensors.map(&.tracking_id)"}},{"html_id":"room_sensors:Array(RoomSensor)-instance-method","name":"room_sensors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L201"},"def":{"name":"room_sensors","return_type":"Array(RoomSensor)","visibility":"Public","body":"if (__temp_1 = @room_sensors).nil?\n @room_sensors = ([] of RoomSensor)\nelse\n __temp_1\nend"}},{"html_id":"room_type:String-instance-method","name":"room_type","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L194"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"to_room_occupancy(occupied:Bool,last_update:Time)-instance-method","name":"to_room_occupancy","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(occupied : Bool, last_update : Time)","args_html":"(occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L207"},"def":{"name":"to_room_occupancy","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"RoomOccupancy.new(self, occupied, last_update)"}}]},{"html_id":"drivers/KontaktIO/RoomOccupancy","path":"KontaktIO/RoomOccupancy.html","kind":"struct","full_name":"KontaktIO::RoomOccupancy","name":"RoomOccupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L220"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(room:Room,occupied:Bool,last_update:Time)-class-method","name":"new","abstract":false,"args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(room : Room, occupied : Bool, last_update : Time)","args_html":"(room : Room, occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L223"},"def":{"name":"new","args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(room, occupied, last_update)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L221"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L252"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String|Nil-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L255"},"def":{"name":"building_name","return_type":"String | ::Nil","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L258"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String|Nil-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L261"},"def":{"name":"campus_name","return_type":"String | ::Nil","visibility":"Public","body":"@campus_name"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L246"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String|Nil-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L249"},"def":{"name":"floor_name","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L264"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"occupancy:Int32-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L265"},"def":{"name":"occupancy","return_type":"Int32","visibility":"Public","body":"@occupancy"}},{"html_id":"pir?:Bool-instance-method","name":"pir?","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L267"},"def":{"name":"pir?","return_type":"Bool","visibility":"Public","body":"@pir"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L240"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String|Nil-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L243"},"def":{"name":"room_name","return_type":"String | ::Nil","visibility":"Public","body":"@room_name"}}]},{"html_id":"drivers/KontaktIO/RoomSensor","path":"KontaktIO/RoomSensor.html","kind":"struct","full_name":"KontaktIO::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L212"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L213"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L217"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}}]},{"html_id":"drivers/KontaktIO/RoomSensorDriver","path":"KontaktIO/RoomSensorDriver.html","kind":"class","full_name":"KontaktIO::RoomSensorDriver","name":"RoomSensorDriver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsubscribe_to_sensor\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L76"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nsensor = @space\nif sensor\nelse\n return nil\nend\nif mac == \"kontakt-#{sensor.room_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(sensor, :people_count)\nwhen \"presence\"\n build_sensor_details(sensor, :presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L57"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nsensor = @space\nif sensor\nelse\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac == \"kontakt-#{sensor.room_id}\"\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nbuild_sensors(sensor, sensor_type)\n"}},{"html_id":"space:RoomOccupancy-instance-method","name":"space","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space","return_type":"RoomOccupancy","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"KontaktIO::RoomSensorDriver#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:RoomOccupancy|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space?","return_type":"RoomOccupancy | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/KontaktIO/SensorService","path":"KontaktIO/SensorService.html","kind":"class","full_name":"KontaktIO::SensorService","name":"SensorService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/sensor_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LOCATION","name":"LOCATION","value":"{\"desk\", \"area\"}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L100"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L107"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nfloor_ids = @zone_lookup[zone_id]?\nif floor_ids && floor_ids.size > 0\nelse\n return [] of Nil\nend\nif location && !(LOCATION.includes?(location))\n return [] of Nil\nend\nloc = LOCATION\ncache = @occupancy_cache\ncache.compact_map do |__temp_829|\n room_id, space = __temp_829\n if space.floor_id.in?(floor_ids)\n else\n next\n end\n people_count = space.occupancy\n if @return_empty_spaces || (people_count && people_count > 0)\n if space.pir?\n capacity = 1\n loc_type = loc[1]\n else\n loc_type = loc[0]\n capacity = nil\n end\n if map_id = map_ids[space.room_id]?\n capacity = 1\n loc_type = loc[1]\n else\n map_id = \"room-#{space.room_id}\"\n end\n {location: loc_type, at_location: people_count, map_id: map_id, level: zone_id, building: @floor_mappings[space.floor_id.to_s]?.try(&.[](:building_id)), capacity: capacity, kontakt_io_room: space.room_name}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L90"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L95"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"map_ids:Hash(Int64,String)-instance-method","name":"map_ids","doc":"KIO room id => Map ID","summary":"

KIO room id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L76"},"def":{"name":"map_ids","return_type":"Hash(Int64, String)","visibility":"Public","body":"if (__temp_1 = @map_ids).nil?\n @map_ids = (begin\n ids = {} of Int64 => String\n system_map_ids.each do |sys_id, map_id|\n resp = (staff_api.system_settings(sys_id, \"space_ref_id\")).get\n value = resp.as_s?.try(&.to_i64?) || resp.as_i64?\n if value\n else\n next\n end\n ids[value] = map_id\n end\n ids\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\nlookup = Hash(String, Array(Int64)).new do |hash, key|\n hash[key] = [] of Int64\nend\n@floor_mappings.each do |kontakt_floor_id, zones|\n begin\n kontakt_id = kontakt_floor_id.to_i64\n if building_id = zones[:building_id]\n lookup[building_id] << kontakt_id\n end\n lookup[zones[:level_id]] << kontakt_id\n rescue error\n logger.warn(exception: error) do\n \"invalid floor mapping #{kontakt_floor_id}\"\n end\n end\nend\n@zone_lookup = lookup\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L158"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"kontakt-\"))\n else\n return nil\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\n if room\n else\n return nil\n end\n case id\n when \"people\"\n if room.pir?\n return nil\n end\n build_sensor_details(room, :people_count)\n when \"presence\"\n build_sensor_details(room, :presence)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L180"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"kontakt-\")\n else\n return NO_MATCH\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\nend\nif zone_id\n levels = @zone_lookup[zone_id]?\nend\nrooms = if room\n {room}\nelse\n if levels\n @occupancy_cache.values.select do |r|\n floor_id = r.floor_id\n (floor_id.in?(levels)) || @floor_mappings[floor_id.to_s]?.nil?\n end\n else\n @occupancy_cache.values\n end\nend\nrooms.flat_map do |r|\n build_sensors(r, sensor_type)\nend\n"}},{"html_id":"system_map_ids:Hash(String,String)-instance-method","name":"system_map_ids","doc":"System id => Map ID","summary":"

System id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L64"},"def":{"name":"system_map_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @system_map_ids).nil?\n @system_map_ids = (begin\n building_zone = location_service.building_id.get.as_s\n map_ids = {} of String => String\n staff_api.systems(zone_id: building_zone).get.as_a.each do |sys|\n map_id = sys[\"map_id\"]?.try(&.as_s?)\n if map_id\n else\n next\n end\n map_ids[sys[\"id\"].as_s] = map_id\n end\n map_ids\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Telemetry","path":"KontaktIO/Telemetry.html","kind":"class","full_name":"KontaktIO::Telemetry","name":"Telemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L275"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"number_of_people:Int32|Nil-instance-method","name":"number_of_people","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L281"},"def":{"name":"number_of_people","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_people"}},{"html_id":"seconds_since_motion:Int64|Nil-instance-method","name":"seconds_since_motion","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L278"},"def":{"name":"seconds_since_motion","return_type":"Int64 | ::Nil","visibility":"Public","body":"@seconds_since_motion"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L283"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/KontaktIO/Tracking","path":"KontaktIO/Tracking.html","kind":"class","full_name":"KontaktIO::Tracking","name":"Tracking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contacts:Array(Contact)-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L42"},"def":{"name":"contacts","return_type":"Array(Contact)","visibility":"Public","body":"@contacts"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L44"},"def":{"name":"duration","visibility":"Public","body":"contacts.first.duration_sec"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L40"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L28"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L31"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L37"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}}]}]},{"html_id":"drivers/Kramer","path":"Kramer.html","kind":"module","full_name":"Kramer","name":"Kramer","abstract":false,"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kramer/RC308Panel","path":"Kramer/RC308Panel.html","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\"","doc":"\\r\\n 0D0A","summary":"

\\r\\n 0D0A

"}],"namespace":{"html_id":"drivers/Kramer","kind":"module","full_name":"Kramer","name":"Kramer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"button_state(index:UInt8,light:Bool,red:UInt8|Nil=nil,green:UInt8|Nil=nil,blue:UInt8|Nil=nil)-instance-method","name":"button_state","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"args_string":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","args_html":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L61"},"def":{"name":"button_state","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"visibility":"Public","body":"data = \"#RGB #{index},#{red || @default.red},#{green || @default.green},#{blue || @default.blue},#{light ? '1' : '0'}\\r\"\nsend(data, name: \"button#{index}\")\n"}},{"html_id":"button_state?(index:UInt8,priority:Int32=0)-instance-method","name":"button_state?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(index : UInt8, priority : Int32 = 0)","args_html":"(index : UInt8, priority : Int32 = 0)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L66"},"def":{"name":"button_state?","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(\"#RGB? #{index}\\r\", priority: priority)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(1.minute, true) do\n query_state\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\non_update\n(0..@button_count).each do |idx|\n self[\"button#{idx}_state\"] = ButtonAction::Released\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@default = (setting?(DefaultLight, :default_light)) || (DefaultLight.new(255_u8, 0_u8, 0_u8))\n@button_count = (setting?(UInt8, :button_count)) || 8_u8\n"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L55"},"def":{"name":"query_state","visibility":"Public","body":"(1_u8..@button_count).each do |idx|\n button_state?(idx)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L89"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Kramer sent: #{data.inspect}\"\nend\nparts = (data.split('@', 2))[1].strip.split(' ')\ncomponent = parts[0].upcase\ndetails = parts[1]\nsuccess = parts[2]?\ncase component\nwhen \"BTN\"\n light_on, button_index, button_action = details.split(',')\n self[\"button#{button_index}_light\"] = light_on == \"1\"\n self[\"button#{button_index}_state\"] = ButtonAction.check(button_action)\nwhen \"RGB\"\n button_index, red, green, blue, light_on = details.split(',')\n self[\"button#{button_index}_rgb\"] = {red.to_u8, green.to_u8, blue.to_u8}\n self[\"button#{button_index}_light\"] = light_on == \"1\"\nwhen \"ERR\"\n logger.warn do\n \"request failed with error code: #{details}\"\n end\n return task.try(&.abort(\"error code: #{details}\"))\nelse\n logger.warn do\n \"unknown button component #{component}\"\n end\n return\nend\nif task\n if task.name\n if success\n task.success\n end\n else\n task.success\n end\nend\n"}}],"types":[{"html_id":"drivers/Kramer/RC308Panel/ButtonAction","path":"Kramer/RC308Panel/ButtonAction.html","kind":"enum","full_name":"Kramer::RC308Panel::ButtonAction","name":"ButtonAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L70"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pressed","name":"Pressed","value":"0"},{"id":"Released","name":"Released","value":"1"},{"id":"HeldDown","name":"HeldDown","value":"2"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"class_methods":[{"html_id":"check(type:String)-class-method","name":"check","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L75"},"def":{"name":"check","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"case type.downcase\nwhen \"p\"\n ButtonAction::Pressed\nwhen \"r\"\n ButtonAction::Released\nwhen \"h\"\n ButtonAction::HeldDown\nelse\n raise(\"unknown button action type: #{type}\")\nend"}}],"instance_methods":[{"html_id":"held_down?-instance-method","name":"held_down?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L73"},"def":{"name":"held_down?","visibility":"Public","body":"self == HeldDown"}},{"html_id":"pressed?-instance-method","name":"pressed?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L71"},"def":{"name":"pressed?","visibility":"Public","body":"self == Pressed"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L72"},"def":{"name":"released?","visibility":"Public","body":"self == Released"}}]},{"html_id":"drivers/Kramer/RC308Panel/DefaultLight","path":"Kramer/RC308Panel/DefaultLight.html","kind":"struct","full_name":"Kramer::RC308Panel::DefaultLight","name":"DefaultLight","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"constructors":[{"html_id":"new(red:UInt8,green:UInt8,blue:UInt8)-class-method","name":"new","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"new","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"_ = allocate\n_.initialize(red, green, blue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blue:UInt8-instance-method","name":"blue","abstract":false,"def":{"name":"blue","return_type":"UInt8","visibility":"Public","body":"@blue"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@red.clone, @green.clone, @blue.clone)"}},{"html_id":"copy_with(red_red=@red,green_green=@green,blue_blue=@blue)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"args_string":"(red _red = @red, green _green = @green, blue _blue = @blue)","args_html":"(red _red = @red, green _green = @green, blue _blue = @blue)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"visibility":"Public","body":"self.class.new(_red, _green, _blue)"}},{"html_id":"green:UInt8-instance-method","name":"green","abstract":false,"def":{"name":"green","return_type":"UInt8","visibility":"Public","body":"@green"}},{"html_id":"red:UInt8-instance-method","name":"red","abstract":false,"def":{"name":"red","return_type":"UInt8","visibility":"Public","body":"@red"}}]}]}]},{"html_id":"drivers/Lenel","path":"Lenel.html","kind":"module","full_name":"Lenel","name":"Lenel","abstract":false,"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lenel/OpenAccess","path":"Lenel/OpenAccess.html","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L4"},{"filename":"src/lenel/open_access.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"}],"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"badge_types-instance-method","name":"badge_types","doc":"Query the available badge types.\n\nBadge types contain default configuration that is applied to any badge\ncreated under them. This includes items such as access areas, activation\nwindows and other bulk config. These may then be override on individual\nbadge instances.","summary":"

Query the available badge types.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L114"},"def":{"name":"badge_types","visibility":"Public","body":"client.lookup(BadgeType)"}},{"html_id":"check_comms-instance-method","name":"check_comms","doc":"Test service connectivity.","summary":"

Test service connectivity.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L80"},"def":{"name":"check_comms","visibility":"Public","body":"begin\n logger.debug do\n \"checking service connectivity\"\n end\n if client.token\n client.keepalive\n logger.info do\n \"client online and authenticated\"\n end\n else\n client.version\n logger.warn do\n \"service reachable, no active auth session\"\n end\n authenticate!\n end\nrescue e : OpenAccess::Error\n logger.error do\n e.message\n end\n set_connected_state(false)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"logger.debug do\n \"connected\"\nend\nif client.token.nil?\n authenticate!\nend\n"}},{"html_id":"create_badge(type:Int32,id:Int64,personid:Int32,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"create_badge","doc":"Creates a new badge of the specied *type*, belonging to *personid* with a\nspecific *id*.\n\nNote: 'id' is the physical badge number (e.g. the ID written to an NFC chip)","summary":"

Creates a new badge of the specied type, belonging to personid with a specific id.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L150"},"def":{"name":"create_badge","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"creating badge for cardholder #{personid}\"\nend\nclient.create(Badge, **args)\n"}},{"html_id":"create_badge_epoch(type:Int32,id:Int64,personid:Int32,activate_epoch:Int32,deactivate_epoch:Int32,uselimit:Int32|Nil=nil)-instance-method","name":"create_badge_epoch","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L162"},"def":{"name":"create_badge_epoch","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\ncreate_badge(type: type, id: id, personid: personid, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"create_cardholder(email:String,firstname:String,lastname:String)-instance-method","name":"create_cardholder","doc":"Creates a new cardholder.\n\nAn error will be returned if an existing cardholder exists for the specified\n*email* address.","summary":"

Creates a new cardholder.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"args_string":"(email : String, firstname : String, lastname : String)","args_html":"(email : String, firstname : String, lastname : String)","location":{"filename":"src/lenel/open_access.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L264"},"def":{"name":"create_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"creating cardholder record for #{email}\"\nend\nif (client.count(Cardholder, filter: \"email = \\\"#{email}\\\"\")).zero?\nelse\n raise(ArgumentError.new(\"record already exists for #{email}\"))\nend\nclient.create(Cardholder, **args)\n"}},{"html_id":"delete_badge(badgekey:Int32):Nil-instance-method","name":"delete_badge","doc":"Deletes a badge with the specified *badgekey*.","summary":"

Deletes a badge with the specified badgekey.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32) : Nil","args_html":"(badgekey : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L217"},"def":{"name":"delete_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting badge #{badgekey}\"\nend\nclient.delete(Badge, **args)\n"}},{"html_id":"delete_badges(badgekeys:Array(Int32)):Int32-instance-method","name":"delete_badges","abstract":false,"args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"args_string":"(badgekeys : Array(Int32)) : Int32","args_html":"(badgekeys : Array(Int32)) : Int32","location":{"filename":"src/lenel/open_access.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L222"},"def":{"name":"delete_badges","args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"return_type":"Int32","visibility":"Public","body":"badgekeys.count do |badge_key|\n begin\n delete_badge(badge_key)\n 1\n rescue OpenAccess::Error\n logger.debug do\n \"failed to delete badge #{badge_key}\"\n end\n 0\n end\nend"}},{"html_id":"delete_cardholder(id:Int32):Nil-instance-method","name":"delete_cardholder","doc":"Deletes a cardholed by their person *id*.","summary":"

Deletes a cardholed by their person id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32) : Nil","args_html":"(id : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L278"},"def":{"name":"delete_cardholder","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting cardholder #{id}\"\nend\nclient.delete(Cardholder, **args)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"logger.debug do\n \"disconnected\"\nend\nclient.token = nil\n"}},{"html_id":"list_badges(personid:Int32)-instance-method","name":"list_badges","doc":"List badges belonging to a cardholder","summary":"

List badges belonging to a cardholder

","abstract":false,"args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"args_string":"(personid : Int32)","args_html":"(personid : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L120"},"def":{"name":"list_badges","args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"visibility":"Public","body":"client.lookup(Badge, filter: \"personid = #{personid}\")"}},{"html_id":"list_directories-instance-method","name":"list_directories","doc":"Query the directories available for auth.","summary":"

Query the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L97"},"def":{"name":"list_directories","visibility":"Public","body":"client.directories"}},{"html_id":"list_events(filter:String,page_number:Int32|Nil=nil)-instance-method","name":"list_events","doc":"List Logged Events","summary":"

List Logged Events

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"args_string":"(filter : String, page_number : Int32 | Nil = nil)","args_html":"(filter : String, page_number : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L291"},"def":{"name":"list_events","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"client.get_logged_events(filter, page_number)"}},{"html_id":"list_events_in_range(filter:String,from:Time|Nil=nil,til:Time|Nil=nil)-instance-method","name":"list_events_in_range","doc":"List events that occured during a given time window. Default to past 24h.","summary":"

List events that occured during a given time window.

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"args_string":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","args_html":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L297"},"def":{"name":"list_events_in_range","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"visibility":"Public","body":"til || (til = Time.local)\nfrom || (from = til - 1.day)\nclient.get_logged_events(filter + \" AND timestamp >= \\\"#{from.to_s}\\\" AND timestamp <= \\\"#{til.to_s}\\\"\")\n"}},{"html_id":"lookup_badge_id(id:Int64)-instance-method","name":"lookup_badge_id","doc":"Get badge by id (instead of badgekey)","summary":"

Get badge by id (instead of badgekey)

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/lenel/open_access.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L137"},"def":{"name":"lookup_badge_id","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"id = #{id}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_badge_key(badgekey:Int32)-instance-method","name":"lookup_badge_key","doc":"Get badge by badgekey (instead of id)\nNote: id is the number in the QR data or burnt to the swipe card. badgekey is Lenel's primary key for badges","summary":"

Get badge by badgekey (instead of id) Note: id is the number in the QR data or burnt to the swipe card.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32)","args_html":"(badgekey : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L127"},"def":{"name":"lookup_badge_key","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"badgekey = #{badgekey}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{badgekey}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_cardholder(email:String)-instance-method","name":"lookup_cardholder","doc":"Lookup a cardholder by *email* address.","summary":"

Lookup a cardholder by email address.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L236"},"def":{"name":"lookup_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{email}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholder_id(id:Int32)-instance-method","name":"lookup_cardholder_id","doc":"Lookup a cardholder by ID","summary":"

Lookup a cardholder by ID

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L251"},"def":{"name":"lookup_cardholder_id","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"id = #{id}\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholders(email:String)-instance-method","name":"lookup_cardholders","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L245"},"def":{"name":"lookup_cardholders","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L35"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(5.minutes, &->check_comms)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"logger.debug do\n \"settings updated\"\nend\nclient.app_id = setting(String, :application_id)\nauthenticate!\n"}},{"html_id":"search(type_name:String,filter:String|Nil=nil)-instance-method","name":"search","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L308"},"def":{"name":"search","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"client.raw_lookup(type_name, filter)"}},{"html_id":"search_readers(filter:String)-instance-method","name":"search_readers","doc":"List card readers matching a given filter","summary":"

List card readers matching a given filter

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/lenel/open_access.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L285"},"def":{"name":"search_readers","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"client.lookup(Reader, filter)"}},{"html_id":"update_badge(badgekey:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"update_badge","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L184"},"def":{"name":"update_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"Updating badge #{badgekey}\"\nend\nclient.update(Badge, **args)\n"}},{"html_id":"update_badge_epoch(badgekey:Int32,activate_epoch:Int32,deactivate_epoch:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil)-instance-method","name":"update_badge_epoch","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","args_html":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L196"},"def":{"name":"update_badge_epoch","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\nupdate_badge(badgekey: badgekey, id: id, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L103"},"def":{"name":"version","visibility":"Public","body":"client.version"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Client","path":"Lenel/OpenAccess/Client.html","kind":"class","full_name":"Lenel::OpenAccess::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/client.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"Lenel OpenAccess API wrapper.\n\nProvides thin abstractions over API endpoints. Requests are executed on the\npased transport. This can be a `PlaceOS::Driver`, `HTTP::Client` or other type\nsupporting the same set of base HTTP request methods.","summary":"

Lenel OpenAccess API wrapper.

","constructors":[{"html_id":"new(transport:HTTP::Client,app_id:String)-class-method","name":"new","abstract":false,"args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"args_string":"(transport : HTTP::Client, app_id : String)","args_html":"(transport : HTTP::Client, app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L22"},"def":{"name":"new","args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(transport, app_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"app_id:String-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id","return_type":"String","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:String)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"args_string":"(app_id : String)","args_html":"(app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"count(entitytype_name:T.class,filter:String|Nil=nil)forallT-instance-method","name":"count","doc":"Counts the number of instances of *entity*.\n\n*filter* may optionally be used to specify a subset of these.","summary":"

Counts the number of instances of entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L152"},"def":{"name":"count","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.encode(args.merge(type_name: T.type_name))\n((~transport.get(path: \"/count?version=1.0&#{params}\")) >> NamedTuple(total_items: Int32))[:total_items]\n"}},{"html_id":"create(entity:T.class,**props)forallT-instance-method","name":"create","doc":"Creates a new instance of *entity*.\n\nAPI create responses return a partial object, which is provided here as an\nuntyped return. This includes the object's database key (which varies\nbetween object types - ID, BADGEKEY etc), however contents of this is\nunspecified. The partial object is provided here, in full, with keys\ntransformed to match how they appear in a type-safe model.","summary":"

Creates a new instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) forall T","args_html":"(entity : T.class, **props) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L94"},"def":{"name":"create","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"visibility":"Public","body":"(~transport.post(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> Models::Untyped"}},{"html_id":"delete(entity:T.class,**props):NilforallT-instance-method","name":"delete","doc":"Deletes an instance of *entity*.","summary":"

Deletes an instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : Nil forall T","args_html":"(entity : T.class, **props) : Nil forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L172"},"def":{"name":"delete","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)"}},{"html_id":"directories-instance-method","name":"directories","doc":"Enumerates the directories available for auth.","summary":"

Enumerates the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L49"},"def":{"name":"directories","visibility":"Public","body":"((~transport.get(path: \"/directories?version=1.0\")) >> NamedTuple(total_items: Int32, item_list: Array(::NamedTuple(property_value_map: ::NamedTuple(ID: String, Name: String, directory_type: Int32)))))[:item_list].map do |item|\n item[:property_value_map]\nend"}},{"html_id":"get_logged_events(filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"get_logged_events","doc":"Retrieve a list of logged events from Onguard\nSee Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events","summary":"

Retrieve a list of logged events from Onguard See Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events

","abstract":false,"args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L184"},"def":{"name":"get_logged_events","args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/logged_events?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"keepalive:Nil-instance-method","name":"keepalive","doc":"Request a connection keepalive to prevent session timeout.","summary":"

Request a connection keepalive to prevent session timeout.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L81"},"def":{"name":"keepalive","return_type":"Nil","visibility":"Public","body":"~transport.get(path: \"/keepalive?version=1.0\")"}},{"html_id":"login(usernameuser_name:String,password:String,directory_id:String|Nil)-instance-method","name":"login","doc":"Creates a new auth session.","summary":"

Creates a new auth session.

","abstract":false,"args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"args_string":"(username user_name : String, password : String, directory_id : String | Nil)","args_html":"(username user_name : String, password : String, directory_id : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L59"},"def":{"name":"login","args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"(~transport.post(path: \"/authentication?version=1.0\", body: args.to_h.compact.to_json)) >> NamedTuple(session_token: String, token_expiration_time: Time)"}},{"html_id":"logout:Nil-instance-method","name":"logout","doc":"Removes an auth session.","summary":"

Removes an auth session.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L74"},"def":{"name":"logout","return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/authentication?version=1.0\")"}},{"html_id":"lookup(entitytype_name:T.class,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=nil,order_by:String|Nil=nil):Array(T)forallT-instance-method","name":"lookup","doc":"Retrieves instances of a particular *entity*.\n\nThe search criteria specified in *filter* is a subset of SQL. This supports\noperations such as as:\n+ exclusion `LastName != \"Lake\"`\n+ wildcards `LastName like \"La%\"`\n+ boolean operators `LastName = \"Lake\" OR FirstName = \"Lisa\"`","summary":"

Retrieves instances of a particular entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L111"},"def":{"name":"lookup","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"return_type":"Array(T)","visibility":"Public","body":"params = HTTP::Params.new\nargs.merge(type_name: T.type_name).each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val)\n end\nend\n((~transport.get(path: \"/instances?version=1.0&#{params}\")) >> NamedTuple(page_number: Int32 | ::Nil, page_size: Int32 | ::Nil, total_pages: Int32, total_items: Int32, count: Int32, item_list: Array(T)))[:item_list]\n"}},{"html_id":"raw_lookup(type_name:String,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"raw_lookup","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L134"},"def":{"name":"raw_lookup","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/instances?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L20"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String|Nil)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"args_string":"(token : String | Nil)","args_html":"(token : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L20"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"visibility":"Public","body":"@token = token"}},{"html_id":"update(entity:T.class,**props):TforallT-instance-method","name":"update","doc":"Updates a record of *entity*. Passed properties must include the types key and\nany fields to update.","summary":"

Updates a record of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : T forall T","args_html":"(entity : T.class, **props) : T forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L161"},"def":{"name":"update","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"T","visibility":"Public","body":"(~transport.put(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> T"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L39"},"def":{"name":"version","visibility":"Public","body":"(~transport.get(path: \"/version?version=1.0\")) >> NamedTuple(product_name: String, product_version: String)"}}]},{"html_id":"drivers/Lenel/OpenAccess/Error","path":"Lenel/OpenAccess/Error.html","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"class_methods":[{"html_id":"from_response(response)-class-method","name":"from_response","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/lenel/open_access/error.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L6"},"def":{"name":"from_response","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"begin\n error = Error::Info.from_json(response.body)\n new(**error[:error])\nrescue\n new(response.status.to_s)\nend"}}],"constructors":[{"html_id":"new(code:String,message:String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(code : String, message : String | Nil = nil)","args_html":"(code : String, message : String | Nil = nil)","location":{"filename":"src/lenel/open_access/error.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L17"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"code:String-instance-method","name":"code","abstract":false,"location":{"filename":"src/lenel/open_access/error.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L15"},"def":{"name":"code","visibility":"Public","body":"@code"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Error/Info","path":"Lenel/OpenAccess/Error/Info.html","kind":"alias","full_name":"Lenel::OpenAccess::Error::Info","name":"Info","abstract":false,"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(error: NamedTuple(code: String, message: String | Nil))","aliased_html":"{error: {code: String, message: String?}}","const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Error","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models","path":"Lenel/OpenAccess/Models.html","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROPERTIES_KEY","name":"PROPERTIES_KEY","value":"\"property_value_map\""}],"including_types":[{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"DTO's for OpenAccess entities.\n\nThese are intentionally lightweight. In cases where a entity holds a\nrelationship to another, these are _not_ auto-resolved. Original ID references\nare kept in place. Types here a simply a thin wrapper for JSON serialization.","summary":"

DTO's for OpenAccess entities.

","types":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","path":"Lenel/OpenAccess/Models/Badge.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activate:Time|Nil-instance-method","name":"activate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L134"},"def":{"name":"activate","return_type":"Time | ::Nil","visibility":"Public","body":"@activate"}},{"html_id":"badgekey:Int32-instance-method","name":"badgekey","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L131"},"def":{"name":"badgekey","return_type":"Int32","visibility":"Public","body":"@badgekey"}},{"html_id":"deactivate:Time|Nil-instance-method","name":"deactivate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L137"},"def":{"name":"deactivate","return_type":"Time | ::Nil","visibility":"Public","body":"@deactivate"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L139"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"personid:Int32|Nil-instance-method","name":"personid","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L140"},"def":{"name":"personid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@personid"}},{"html_id":"status:Int32|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L141"},"def":{"name":"status","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"type:Int32|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L142"},"def":{"name":"type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"uselimit:Int32|Nil-instance-method","name":"uselimit","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L143"},"def":{"name":"uselimit","return_type":"Int32 | ::Nil","visibility":"Public","body":"@uselimit"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","path":"Lenel/OpenAccess/Models/BadgeType.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L146"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L146"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"badgetypeclass:BadgeTypeClass-instance-method","name":"badgetypeclass","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L156"},"def":{"name":"badgetypeclass","return_type":"BadgeTypeClass","visibility":"Public","body":"@badgetypeclass"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L154"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L155"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"usemobilecredential:Bool-instance-method","name":"usemobilecredential","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L157"},"def":{"name":"usemobilecredential","return_type":"Bool","visibility":"Public","body":"@usemobilecredential"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass","path":"Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html","kind":"enum","full_name":"Lenel::OpenAccess::Models::BadgeType::BadgeTypeClass","name":"BadgeTypeClass","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L147"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Standard","name":"Standard","value":"0"},{"id":"Temporary","name":"Temporary","value":"1"},{"id":"Visitor","name":"Visitor","value":"2"},{"id":"Guest","name":"Guest","value":"3"},{"id":"SpecialPurpose","name":"SpecialPurpose","value":"4"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},"instance_methods":[{"html_id":"guest?-instance-method","name":"guest?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L151"},"def":{"name":"guest?","visibility":"Public","body":"self == Guest"}},{"html_id":"special_purpose?-instance-method","name":"special_purpose?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L152"},"def":{"name":"special_purpose?","visibility":"Public","body":"self == SpecialPurpose"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L148"},"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}},{"html_id":"temporary?-instance-method","name":"temporary?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L149"},"def":{"name":"temporary?","visibility":"Public","body":"self == Temporary"}},{"html_id":"visitor?-instance-method","name":"visitor?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L150"},"def":{"name":"visitor?","visibility":"Public","body":"self == Visitor"}}]}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","path":"Lenel/OpenAccess/Models/Cardholder.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L160"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L160"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L161"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","path":"Lenel/OpenAccess/Models/Element.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge"},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event"},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader"},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"doc":"Base type for Lenel data objects.","summary":"

Base type for Lenel data objects.

","class_methods":[{"html_id":"partial(**properties:**T):TforallT-class-method","name":"partial","doc":"Provide a compile-time check to ensure *properties* is a subset of *self*.","summary":"

Provide a compile-time check to ensure properties is a subset of self.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L74"},"def":{"name":"partial","double_splat":{"name":"properties","external_name":"properties","restriction":"**T"},"return_type":"T","visibility":"Public","body":"{% for key in T.keys %}\n {% unless @type.has_method?(key)\n raise(\"no \\\"#{key}\\\" property on #{@type.name}\")\nend %}\n {% end %}\nproperties\n"}},{"html_id":"type_name-class-method","name":"type_name","doc":"Name of the type as expected by the OpenAccess API endpoints.","summary":"

Name of the type as expected by the OpenAccess API endpoints.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L23"},"def":{"name":"type_name","visibility":"Public","body":"\"Lnl_#{(name.rpartition(\"::\")).last}\""}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(*,__pull_for_json_serializablepull:JSON::PullParser)-class-method","name":"new","doc":"Override the default JSON::Serializable behaviour to make keys case\ninensitive when deserialising.","summary":"

Override the default JSON::Serializable behaviour to make keys case inensitive when deserialising.

","abstract":false,"args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"args_string":"(*, __pull_for_json_serializable pull : JSON::PullParser)","args_html":"(*, __pull_for_json_serializable pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L36"},"def":{"name":"new","args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"splat_index":0,"visibility":"Public","body":"_ = allocate\n_.initialize(__pull_for_json_serializable: pull)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","path":"Lenel/OpenAccess/Models/Event.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_result:Int32|Nil-instance-method","name":"access_result","doc":"getter alarm_priority : Int32?\ngetter alarm_ack_blue_channel : Int32?\ngetter alarm_ack_green_channel : Int32?\ngetter alarm_ack_red_channel : Int32?\ngetter alarm_blue_channel : Int32?\ngetter alarm_green_channel : Int32?\ngetter alarm_red_channel : Int32?","summary":"

getter alarm_priority : Int32? getter alarm_ack_blue_channel : Int32? getter alarm_ack_green_channel : Int32? getter alarm_ack_red_channel : Int32? getter alarm_blue_channel : Int32? getter alarm_green_channel : Int32? getter alarm_red_channel : Int32?

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L111"},"def":{"name":"access_result","return_type":"Int32 | ::Nil","visibility":"Public","body":"@access_result"}},{"html_id":"asset_id:Int32|Nil-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L102"},"def":{"name":"asset_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@asset_id"}},{"html_id":"badge_extended_id:String|Nil-instance-method","name":"badge_extended_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L100"},"def":{"name":"badge_extended_id","return_type":"String | ::Nil","visibility":"Public","body":"@badge_extended_id"}},{"html_id":"badge_id:Int32|Nil-instance-method","name":"badge_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L98"},"def":{"name":"badge_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_id"}},{"html_id":"badge_id_str:String|Nil-instance-method","name":"badge_id_str","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L99"},"def":{"name":"badge_id_str","return_type":"String | ::Nil","visibility":"Public","body":"@badge_id_str"}},{"html_id":"badge_issue_code:Int32|Nil-instance-method","name":"badge_issue_code","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L101"},"def":{"name":"badge_issue_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_issue_code"}},{"html_id":"cardholder_entered:Bool|Nil-instance-method","name":"cardholder_entered","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L112"},"def":{"name":"cardholder_entered","return_type":"Bool | ::Nil","visibility":"Public","body":"@cardholder_entered"}},{"html_id":"cardholder_first_name:String|Nil-instance-method","name":"cardholder_first_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L116"},"def":{"name":"cardholder_first_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_first_name"}},{"html_id":"cardholder_key:Int32|Nil-instance-method","name":"cardholder_key","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L103"},"def":{"name":"cardholder_key","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cardholder_key"}},{"html_id":"cardholder_last_name:String|Nil-instance-method","name":"cardholder_last_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L117"},"def":{"name":"cardholder_last_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_last_name"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L91"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_name:String|Nil-instance-method","name":"controller_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L114"},"def":{"name":"controller_name","return_type":"String | ::Nil","visibility":"Public","body":"@controller_name"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L90"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"device_id:Int32-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L92"},"def":{"name":"device_id","return_type":"Int32","visibility":"Public","body":"@device_id"}},{"html_id":"device_name:String|Nil-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L118"},"def":{"name":"device_name","return_type":"String | ::Nil","visibility":"Public","body":"@device_name"}},{"html_id":"duress:Bool|Nil-instance-method","name":"duress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L113"},"def":{"name":"duress","return_type":"Bool | ::Nil","visibility":"Public","body":"@duress"}},{"html_id":"event_source_name:String|Nil-instance-method","name":"event_source_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L115"},"def":{"name":"event_source_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_source_name"}},{"html_id":"event_subtype:Int32|Nil-instance-method","name":"event_subtype","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L96"},"def":{"name":"event_subtype","return_type":"Int32 | ::Nil","visibility":"Public","body":"@event_subtype"}},{"html_id":"event_text:String|Nil-instance-method","name":"event_text","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L97"},"def":{"name":"event_text","return_type":"String | ::Nil","visibility":"Public","body":"@event_text"}},{"html_id":"event_type:Int32-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L95"},"def":{"name":"event_type","return_type":"Int32","visibility":"Public","body":"@event_type"}},{"html_id":"segment_id:Int32|Nil-instance-method","name":"segment_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L94"},"def":{"name":"segment_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@segment_id"}},{"html_id":"serial_number:Int32|Nil-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L88"},"def":{"name":"serial_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@serial_number"}},{"html_id":"subdevice_id:Int32|Nil-instance-method","name":"subdevice_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L93"},"def":{"name":"subdevice_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@subdevice_id"}},{"html_id":"subdevice_name:String|Nil-instance-method","name":"subdevice_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L119"},"def":{"name":"subdevice_name","return_type":"String | ::Nil","visibility":"Public","body":"@subdevice_name"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L89"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","path":"Lenel/OpenAccess/Models/Person.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person","abstract":true,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L124"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L124"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firstname:String|Nil-instance-method","name":"firstname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L126"},"def":{"name":"firstname","return_type":"String | ::Nil","visibility":"Public","body":"@firstname"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L125"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"lastname:String|Nil-instance-method","name":"lastname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L127"},"def":{"name":"lastname","return_type":"String | ::Nil","visibility":"Public","body":"@lastname"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","path":"Lenel/OpenAccess/Models/Reader.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L164"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L164"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accessMode:Int32|Nil-instance-method","name":"accessMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L165"},"def":{"name":"accessMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@accessMode"}},{"html_id":"address:Int32|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L166"},"def":{"name":"address","return_type":"Int32 | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"aux1Name:String|Nil-instance-method","name":"aux1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L182"},"def":{"name":"aux1Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux1Name"}},{"html_id":"aux2Name:String|Nil-instance-method","name":"aux2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L183"},"def":{"name":"aux2Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux2Name"}},{"html_id":"aux3Name:String|Nil-instance-method","name":"aux3Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L184"},"def":{"name":"aux3Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux3Name"}},{"html_id":"controlType:Int32|Nil-instance-method","name":"controlType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L167"},"def":{"name":"controlType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controlType"}},{"html_id":"extendedOpenTime:Int32|Nil-instance-method","name":"extendedOpenTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L168"},"def":{"name":"extendedOpenTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedOpenTime"}},{"html_id":"extendedStrikeTime:Int32|Nil-instance-method","name":"extendedStrikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L169"},"def":{"name":"extendedStrikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedStrikeTime"}},{"html_id":"friendlyName:String|Nil-instance-method","name":"friendlyName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L185"},"def":{"name":"friendlyName","return_type":"String | ::Nil","visibility":"Public","body":"@friendlyName"}},{"html_id":"gatewayAddress:Int32|Nil-instance-method","name":"gatewayAddress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L170"},"def":{"name":"gatewayAddress","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayAddress"}},{"html_id":"gatewayHostName:String|Nil-instance-method","name":"gatewayHostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L186"},"def":{"name":"gatewayHostName","return_type":"String | ::Nil","visibility":"Public","body":"@gatewayHostName"}},{"html_id":"gatewayIPPort:Int32|Nil-instance-method","name":"gatewayIPPort","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L171"},"def":{"name":"gatewayIPPort","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayIPPort"}},{"html_id":"hostName:String|Nil-instance-method","name":"hostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L187"},"def":{"name":"hostName","return_type":"String | ::Nil","visibility":"Public","body":"@hostName"}},{"html_id":"isPairedMaster:Bool|Nil-instance-method","name":"isPairedMaster","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L192"},"def":{"name":"isPairedMaster","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedMaster"}},{"html_id":"isPairedSlave:Bool|Nil-instance-method","name":"isPairedSlave","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L193"},"def":{"name":"isPairedSlave","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedSlave"}},{"html_id":"mode:Int32|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L173"},"def":{"name":"mode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L188"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"offlineMode:Int32|Nil-instance-method","name":"offlineMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L172"},"def":{"name":"offlineMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@offlineMode"}},{"html_id":"openTime:Int32|Nil-instance-method","name":"openTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L174"},"def":{"name":"openTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@openTime"}},{"html_id":"out1Name:String|Nil-instance-method","name":"out1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L189"},"def":{"name":"out1Name","return_type":"String | ::Nil","visibility":"Public","body":"@out1Name"}},{"html_id":"out2Name:String|Nil-instance-method","name":"out2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L190"},"def":{"name":"out2Name","return_type":"String | ::Nil","visibility":"Public","body":"@out2Name"}},{"html_id":"panelID:Int32|Nil-instance-method","name":"panelID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L175"},"def":{"name":"panelID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@panelID"}},{"html_id":"panelTypeName:String|Nil-instance-method","name":"panelTypeName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L191"},"def":{"name":"panelTypeName","return_type":"String | ::Nil","visibility":"Public","body":"@panelTypeName"}},{"html_id":"portNumber:Int32|Nil-instance-method","name":"portNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L176"},"def":{"name":"portNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@portNumber"}},{"html_id":"readerID:Int32|Nil-instance-method","name":"readerID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L177"},"def":{"name":"readerID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerID"}},{"html_id":"readerNumber:Int32|Nil-instance-method","name":"readerNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L178"},"def":{"name":"readerNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerNumber"}},{"html_id":"slaveID:Int32|Nil-instance-method","name":"slaveID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L179"},"def":{"name":"slaveID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@slaveID"}},{"html_id":"strikeTime:Int32|Nil-instance-method","name":"strikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L180"},"def":{"name":"strikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@strikeTime"}},{"html_id":"timeAttendanceType:Int32|Nil-instance-method","name":"timeAttendanceType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L181"},"def":{"name":"timeAttendanceType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@timeAttendanceType"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","path":"Lenel/OpenAccess/Models/Untyped.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/lenel/open_access/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L84"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" json_unmapped.\n{{ call }}\n\n \n"}}]}]}]},{"html_id":"drivers/Lenel/TimeConverter","path":"Lenel/TimeConverter.html","kind":"module","full_name":"Lenel::TimeConverter","name":"TimeConverter","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"doc":"Ensure that UTC time strings provide the offset as \"+00:00\" instead of \"Z\", as required by Openaccess","summary":"

Ensure that UTC time strings provide the offset as "+00:00" instead of "Z", as required by Openaccess

","class_methods":[{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/lenel/open_access/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L5"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%FT%T%:z\"))"}}]}]},{"html_id":"drivers/Leviton","path":"Leviton.html","kind":"module","full_name":"Leviton","name":"Leviton","abstract":false,"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Leviton/Acquisuite","path":"Leviton/Acquisuite.html","kind":"class","full_name":"Leviton::Acquisuite","name":"Acquisuite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Leviton","kind":"module","full_name":"Leviton","name":"Leviton"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_list:Hash(String,{String,String})-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L148"},"def":{"name":"device_list","visibility":"Public","body":"@device_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@device_list = setting(Hash(String, Tuple(String, String)), :device_list)\n@manifest_list = setting(Array(String), :manifest_list)\n@config_list = setting(Hash(String, Array(Hash(String, Float64 | String | Nil))), :config_list)\n"}},{"html_id":"receive_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"receive_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/leviton/acquisuite.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L31"},"def":{"name":"receive_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n if @debug_webhook\n logger.warn do\n ((\"Received Webhook\\n\" + \"Method: #{method.inspect}\\n\") + \"Headers:\\n#{headers.inspect}\\n\") + \"Body:\\n#{body.inspect}\"\n end\n end\n decoded = Base64.decode_string(body)\n case method.downcase\n when \"post\"\n new_headers = HTTP::Headers.new\n headers.each do |k, v|\n new_headers[k] = v\n end\n request = HTTP::Request.new(\"POST\", \"/request\", new_headers, decoded)\n files, form_data = ActionController::BodyParser.extract_form_data(request, \"multipart/form-data\", request.query_params)\n form_data = form_data.not_nil!\n case form_data[\"MODE\"]\n when \"STATUS\"\n return {HTTP::Status::OK.to_i, {} of String => String, \"SUCCESS\"}\n when \"CONFIGFILEMANIFEST\"\n return {HTTP::Status::OK.to_i, {} of String => String, device_to_manifest.join(\"\\n\")}\n when \"CONFIGFILEUPLOAD\"\n files = files.not_nil!\n return config_file_upload(files, form_data)\n when \"LOGFILEUPLOAD\"\n files = files.not_nil!\n return log_file_upload(files, form_data)\n else\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: Invalid mode passed. Either STATUS, CONFIGFILEMANIFEST, CONFIGFILEUPLOAD or LOGFILEUPLOAD required. Got #{form_data[\"MODE\"]}\"}\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request: #{body.inspect}\"\n end\n self[:last_error] = error.inspect_with_backtrace\n self[:error_payload] = body\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: #{error.message.to_s}\"}\nend"}}]}]},{"html_id":"drivers/Lg","path":"Lg.html","kind":"module","full_name":"Lg","name":"Lg","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lg/Displays","path":"Lg/Displays.html","kind":"module","full_name":"Lg::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lg","kind":"module","full_name":"Lg","name":"Lg"},"types":[{"html_id":"drivers/Lg/Displays/Ls5","path":"Lg/Displays/Ls5.html","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"120_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Lg/Displays","kind":"module","full_name":"Lg::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(ratio:Ratio)-instance-method","name":"aspect_ratio","abstract":false,"args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"args_string":"(ratio : Ratio)","args_html":"(ratio : Ratio)","location":{"filename":"src/lg/displays/ls5.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L143"},"def":{"name":"aspect_ratio","args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"visibility":"Public","body":"do_send(Command::AspectRatio, ratio.value, name: \"aspect_ratio\", delay: 1.second)"}},{"html_id":"aspect_ratio?(priority:Int32=0)-instance-method","name":"aspect_ratio?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"aspect_ratio?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AspectRatio, 255, priority: priority, name: \"aspect_ratio\" + \"_status\")"}},{"html_id":"auto_off(state:Bool=false)-instance-method","name":"auto_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L211"},"def":{"name":"auto_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::AutoOff, val, 'm', name: \"disable_auto_off\")\n"}},{"html_id":"auto_off?(priority:Int32=0)-instance-method","name":"auto_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"auto_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AutoOff, 255, priority: priority, name: \"auto_off\" + \"_status\")"}},{"html_id":"brightness(value:Float64|Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Brightness, val, name: \"brightness\")\n"}},{"html_id":"brightness?(priority:Int32=0)-instance-method","name":"brightness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"brightness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Brightness, 255, priority: priority, name: \"brightness\" + \"_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nself[:connected] = true\nwake_on_lan\nno_signal_off\nauto_off\nlocal_button_lock\npm_mode\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Float64|Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Contrast, val, name: \"contrast\")\n"}},{"html_id":"contrast?(priority:Int32=0)-instance-method","name":"contrast?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"contrast?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Contrast, 255, priority: priority, name: \"contrast\" + \"_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L69"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nself[:connected] = false\nschedule.clear\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"if @rs232\n power?\n if self[:hard_power]?.try(&.as_bool)\n screen_mute?\n input?\n volume_mute?\n volume?\n end\nelse\n if @connected\n screen_mute?\n if @id_num == 1\n input?\n volume_mute?\n volume?\n end\n else\n if self[:power_target]?.try(&.as_bool)\n power(true)\n end\n end\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L111"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::Power, 0, name: \"power\", priority: 99, clear_queue: true)"}},{"html_id":"input?(priority:Int32=0)-instance-method","name":"input?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L169"},"def":{"name":"input?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Input, 255, 'x', priority: priority)"}},{"html_id":"local_button_lock(state:Bool=true)-instance-method","name":"local_button_lock","doc":"0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons. Default to 2 as power off from local button results in network offline","summary":"

0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L206"},"def":{"name":"local_button_lock","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 2 : 0\ndo_send(Command::LocalButtonLock, val, 't', name: \"local_button_lock\")\n"}},{"html_id":"local_button_lock?(priority:Int32=0)-instance-method","name":"local_button_lock?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"local_button_lock?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::LocalButtonLock, 255, priority: priority, name: \"local_button_lock\" + \"_status\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/lg/displays/ls5.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L119"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n do_send(Command::ScreenMute, state ? 1 : 0, name: \"mute_video\")\nend\nif (layer.audio? || layer.audio_video?) && ((self[:audio_mute]?.try(&.as_bool)) != state)\n do_send(Command::VolumeMute, state ? 0 : 1, name: \"mute_audio\")\nend\nstate\n"}},{"html_id":"no_signal_off(state:Bool=false)-instance-method","name":"no_signal_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L199"},"def":{"name":"no_signal_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ncommand = build_command(Command::NoSignalOff, val, 'f')\nsend(command, name: \"no_signal_off\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"no_signal_off?(priority:Int32=0)-instance-method","name":"no_signal_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"no_signal_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::NoSignalOff, 255, priority: priority, name: \"no_signal_off\" + \"_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 150.milliseconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@rs232 = setting(Bool, :rs232_control)\n@id_num = setting(Int32, :display_id)\n@id = @id_num.to_s.rjust(2, '0')\n"}},{"html_id":"pm_mode(mode:Int32=3)-instance-method","name":"pm_mode","abstract":false,"args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"args_string":"(mode : Int32 = 3)","args_html":"(mode : Int32 = 3)","location":{"filename":"src/lg/displays/ls5.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L194"},"def":{"name":"pm_mode","args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"visibility":"Public","body":"command = build_command(Command::PmMode, mode, 's')\nsend(command, name: \"pm_mode\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"pm_mode?(priority:Int32=0)-instance-method","name":"pm_mode?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"pm_mode?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::PmMode, 255, priority: priority, name: \"pm_mode\" + \"_status\")"}},{"html_id":"power(state:Bool,broadcast:String|Nil=nil)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(state : Bool, broadcast : String | Nil = nil)","args_html":"(state : Bool, broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L98"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if state\n if @rs232\n do_send(Command::Power, 1, name: \"power\", priority: 99)\n else\n wake(broadcast || @last_broadcast)\n end\nend\nif @connected\n mute(!state)\nend\n"}},{"html_id":"power?(priority:Int32=0)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Power, 255, priority: priority, name: \"power\" + \"_status\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lg/displays/ls5.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L253"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if (resp_value = get_response_value(data)) == -1\n return task.try(&.abort)\nend\ncommand = Command.from_value(data[0])\nlogger.debug do\n \"Received command #{command}\"\nend\ncase command\nwhen .power?\n self[:hard_power] = resp_value == 1\n if self[:hard_power].as_bool\n else\n self[:power] = false\n end\nwhen .input?\n self[:input] = Input.from_value(resp_value)\nwhen .aspect_ratio?\n self[:aspect_ratio] = Ratio.from_value(resp_value)\nwhen .screen_mute?\n self[:power] = resp_value == 0\nwhen .volume_mute?\n self[:audio_mute] = resp_value == 0\nwhen .contrast?, .brightness?, .sharpness?, .volume?\n self[command.to_s.underscore] = resp_value\nwhen .wake_on_lan?, .auto_off?\n self[command.to_s.underscore] = resp_value == 1\nwhen .local_button_lock?\n self[:local_button_lock] = resp_value == 2\nelse\n return task.try(&.retry)\nend\ntask.try(&.success)\n"}},{"html_id":"screen_mute?(priority:Int32=0)-instance-method","name":"screen_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"screen_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::ScreenMute, 255, priority: priority, name: \"screen_mute\" + \"_status\")"}},{"html_id":"sharpness(value:Float64|Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Sharpness, val, name: \"sharpness\")\n"}},{"html_id":"sharpness?(priority:Int32=0)-instance-method","name":"sharpness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"sharpness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Sharpness, 255, priority: priority, name: \"sharpness\" + \"_status\")"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/lg/displays/ls5.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L115"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Input, input.value, 'x', name: \"input\", delay: 2.seconds)"}},{"html_id":"volume(value:Float64|Int32)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, val, name: \"volume\")\n"}},{"html_id":"volume?(priority:Int32=0)-instance-method","name":"volume?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Volume, 255, priority: priority, name: \"volume\" + \"_status\")"}},{"html_id":"volume_mute?(priority:Int32=0)-instance-method","name":"volume_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::VolumeMute, 255, priority: priority, name: \"volume_mute\" + \"_status\")"}},{"html_id":"wake(broadcast:String|Nil=nil)-instance-method","name":"wake","abstract":false,"args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(broadcast : String | Nil = nil)","args_html":"(broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L221"},"def":{"name":"wake","args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if mac = setting?(String, :mac_address)\n wake_device(mac, broadcast)\n logger.debug do\n info = \"Wake on Lan for MAC #{mac}\"\n if b = broadcast\n info = info + \" directed to VLAN #{b}\"\n end\n info\n end\nelse\n logger.warn do\n \"No MAC address provided\"\n end\nend"}},{"html_id":"wake_on_lan(state:Bool=true)-instance-method","name":"wake_on_lan","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L216"},"def":{"name":"wake_on_lan","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::WakeOnLan, val, 'f', name: \"enable_wake_on_lan\")\n"}},{"html_id":"wake_on_lan?(priority:Int32=0)-instance-method","name":"wake_on_lan?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"wake_on_lan?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::WakeOnLan, 255, priority: priority, name: \"wake_on_lan\" + \"_status\")"}}],"types":[{"html_id":"drivers/Lg/Displays/Ls5/Command","path":"Lg/Displays/Ls5/Command.html","kind":"enum","full_name":"Lg::Displays::Ls5::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"97"},{"id":"Input","name":"Input","value":"98"},{"id":"AspectRatio","name":"AspectRatio","value":"99"},{"id":"ScreenMute","name":"ScreenMute","value":"100"},{"id":"VolumeMute","name":"VolumeMute","value":"101"},{"id":"Volume","name":"Volume","value":"102"},{"id":"Contrast","name":"Contrast","value":"103"},{"id":"Brightness","name":"Brightness","value":"104"},{"id":"Sharpness","name":"Sharpness","value":"107"},{"id":"AutoOff","name":"AutoOff","value":"110"},{"id":"LocalButtonLock","name":"LocalButtonLock","value":"111"},{"id":"WakeOnLan","name":"WakeOnLan","value":"119"},{"id":"NoSignalOff","name":"NoSignalOff","value":"103"},{"id":"PmMode","name":"PmMode","value":"110"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"aspect_ratio?-instance-method","name":"aspect_ratio?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L78"},"def":{"name":"aspect_ratio?","visibility":"Public","body":"self == AspectRatio"}},{"html_id":"auto_off?-instance-method","name":"auto_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L85"},"def":{"name":"auto_off?","visibility":"Public","body":"self == AutoOff"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L83"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L82"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"local_button_lock?-instance-method","name":"local_button_lock?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L86"},"def":{"name":"local_button_lock?","visibility":"Public","body":"self == LocalButtonLock"}},{"html_id":"no_signal_off?-instance-method","name":"no_signal_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L88"},"def":{"name":"no_signal_off?","visibility":"Public","body":"self == NoSignalOff"}},{"html_id":"pm_mode?-instance-method","name":"pm_mode?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L89"},"def":{"name":"pm_mode?","visibility":"Public","body":"self == PmMode"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L76"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"screen_mute?-instance-method","name":"screen_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L79"},"def":{"name":"screen_mute?","visibility":"Public","body":"self == ScreenMute"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L84"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L81"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"volume_mute?-instance-method","name":"volume_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L80"},"def":{"name":"volume_mute?","visibility":"Public","body":"self == VolumeMute"}},{"html_id":"wake_on_lan?-instance-method","name":"wake_on_lan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L87"},"def":{"name":"wake_on_lan?","visibility":"Public","body":"self == WakeOnLan"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Input","path":"Lg/Displays/Ls5/Input.html","kind":"enum","full_name":"Lg::Displays::Ls5::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dvi","name":"Dvi","value":"112"},{"id":"Hdmi","name":"Hdmi","value":"160"},{"id":"HdmiDtv","name":"HdmiDtv","value":"144"},{"id":"Hdmi2","name":"Hdmi2","value":"161"},{"id":"Hdmi2Dtv","name":"Hdmi2Dtv","value":"145"},{"id":"DisplayPort","name":"DisplayPort","value":"208"},{"id":"DisplayPortDtv","name":"DisplayPortDtv","value":"192"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L16"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"display_port_dtv?-instance-method","name":"display_port_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L17"},"def":{"name":"display_port_dtv?","visibility":"Public","body":"self == DisplayPortDtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L11"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L14"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_dtv?-instance-method","name":"hdmi2_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L15"},"def":{"name":"hdmi2_dtv?","visibility":"Public","body":"self == Hdmi2Dtv"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L12"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_dtv?-instance-method","name":"hdmi_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L13"},"def":{"name":"hdmi_dtv?","visibility":"Public","body":"self == HdmiDtv"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Ratio","path":"Lg/Displays/Ls5/Ratio.html","kind":"enum","full_name":"Lg::Displays::Ls5::Ratio","name":"Ratio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Square","name":"Square","value":"1"},{"id":"Wide","name":"Wide","value":"2"},{"id":"Zoom","name":"Zoom","value":"4"},{"id":"Scan","name":"Scan","value":"9"},{"id":"Program","name":"Program","value":"6"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"program?-instance-method","name":"program?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L140"},"def":{"name":"program?","visibility":"Public","body":"self == Program"}},{"html_id":"scan?-instance-method","name":"scan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L139"},"def":{"name":"scan?","visibility":"Public","body":"self == Scan"}},{"html_id":"square?-instance-method","name":"square?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L136"},"def":{"name":"square?","visibility":"Public","body":"self == Square"}},{"html_id":"wide?-instance-method","name":"wide?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L137"},"def":{"name":"wide?","visibility":"Public","body":"self == Wide"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L138"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]}]}]}]},{"html_id":"drivers/Lumens","path":"Lumens.html","kind":"module","full_name":"Lumens","name":"Lumens","abstract":false,"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lumens/DC193","path":"Lumens/DC193.html","kind":"class","full_name":"Lumens::DC193","name":"DC193","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{193_u8 => :lamp, 176_u8 => :power, 183_u8 => :power_staus, 167_u8 => :picture_mode, 163_u8 => :auto_focus, 138_u8 => :max_zoom, 120_u8 => :frozen_status, 96_u8 => :zoom_staus, 81_u8 => :picture_mode_staus, 80_u8 => :lamp_staus, 44_u8 => :freeze, 31_u8 => :zoom_direct_auto_focus, 19_u8 => :zoom_direct, 17_u8 => :zoom, 16_u8 => :zoom_stop}"},{"id":"PICTURE_MODES","name":"PICTURE_MODES","value":"{:photo, :test, :greyscale}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"}],"namespace":{"html_id":"drivers/Lumens","kind":"module","full_name":"Lumens","name":"Lumens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_focus(name:String=\"auto_focus\")-instance-method","name":"auto_focus","abstract":false,"args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"args_string":"(name : String = \"auto_focus\")","args_html":"(name : String = "auto_focus")","location":{"filename":"src/lumens/dc193.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L107"},"def":{"name":"auto_focus","args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nsend(Bytes[160, 163, 1, 0, 0, 175], name: name)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds) do\n query_status\nend\nquery_status\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"freeze(state:Bool)-instance-method","name":"freeze","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L117"},"def":{"name":"freeze","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 44, state, 0, 0, 175], name: :freeze)\n"}},{"html_id":"frozen?-instance-method","name":"frozen?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L122"},"def":{"name":"frozen?","visibility":"Public","body":"send(Bytes[160, 120, 0, 0, 0, 175], priority: 0)"}},{"html_id":"lamp(state:Bool,head_led:Bool=false)-instance-method","name":"lamp","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"args_string":"(state : Bool, head_led : Bool = false)","args_html":"(state : Bool, head_led : Bool = false)","location":{"filename":"src/lumens/dc193.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L59"},"def":{"name":"lamp","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"visibility":"Public","body":"if @frozen\n return false\nend\nlamps = if state && head_led\n 1_u8\nelse\n if state\n 2_u8\n else\n if head_led\n 3_u8\n else\n 0_u8\n end\n end\nend\nsend(Bytes[160, 193, lamps, 0, 0, 175], name: :lamp)\n"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L75"},"def":{"name":"lamp?","visibility":"Public","body":"send(Bytes[160, 80, 0, 0, 0, 175], priority: 0)"}},{"html_id":"max_zoom?-instance-method","name":"max_zoom?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L146"},"def":{"name":"max_zoom?","visibility":"Public","body":"send(Bytes[160, 138, 0, 0, 0, 175], priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(6)\n@zoom_range = 0..@zoom_max\n"}},{"html_id":"picture_mode(state:String)-instance-method","name":"picture_mode","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/lumens/dc193.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L126"},"def":{"name":"picture_mode","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nmode = case state.downcase\nwhen \"photo\"\n 0_u8\nwhen \"text\"\n 1_u8\nwhen \"greyscale\", \"grayscale\"\n 2_u8\nelse\n raise(ArgumentError.new(\"unknown picture mode #{state}\"))\nend\nsend(Bytes[160, 167, mode, 0, 0, 175], name: :picture_mode)\n"}},{"html_id":"picture_mode?-instance-method","name":"picture_mode?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L142"},"def":{"name":"picture_mode?","visibility":"Public","body":"send(Bytes[160, 81, 0, 0, 0, 175], priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L48"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 176, state, 0, 0, 175], name: :power)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L54"},"def":{"name":"power?","visibility":"Public","body":"send(Bytes[160, 183, 0, 0, 0, 175], priority: 0)"}},{"html_id":"query_status-instance-method","name":"query_status","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L37"},"def":{"name":"query_status","visibility":"Public","body":"if power?.get == \"true\"\n lamp?\n zoom?\n frozen?\n max_zoom?\n picture_mode?\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lumens/dc193.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L189"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Lumens sent: #{data.hexstring}\"\nend\nstatus = Status.from_value(data[4].to_i)\nself[:zooming] = status.zooming?\nself[:focusing] = status.focusing?\nself[:iris_adjusting] = status.iris?\nif status.error?\n return task.try(&.abort(\"bad request\"))\nend\nif status.ignored?\n return task.try(&.retry(\"device busy\"))\nend\nresult = case COMMANDS[data[1]]?\nwhen :power\n data[2] == 1_u8\nwhen :power_staus\n @ready = data[2] == 1_u8\n @power = data[3] == 1_u8\n logger.debug do\n \"System power: #{@power}, ready: #{@ready}\"\n end\n self[:ready] = @ready\n self[:power] = @power\nwhen :max_zoom\n @zoom_max = data[2].to_i + (data[3].to_i << 8)\n @zoom_range = 0..@zoom_max\n self[:zoom_range] = {min: 0, max: @zoom_max}\nwhen :frozen_status, :freeze\n self[:frozen] = @frozen = data[2] == 1_u8\nwhen :zoom_staus, :zoom_direct_auto_focus, :zoom_direct\n value = data[2].to_i + (data[3].to_i << 8)\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\nwhen :picture_mode_staus, :picture_mode\n self[:picture_mode] = PICTURE_MODES[data[2].to_i]\nwhen :lamp_staus, :lamp\n case data[2]\n when 0_u8\n @head_led = @lamp = false\n when 1_u8\n @head_led = @lamp = true\n when 2_u8\n @head_led = false\n @lamp = true\n when 3_u8\n @head_led = true\n @lamp = false\n end\n self[:head_led] = @head_led\n self[:lamp] = @lamp\nwhen :auto_focus\nelse\n error = \"Unknown command #{data[1]}\"\n logger.debug do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success(result))\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=1)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 1)","args_html":"(direction : ZoomDirection, index : Int32 | String = 1)","location":{"filename":"src/lumens/dc193.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L90"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @frozen\n return false\nend\ncase direction\nwhen ZoomDirection::Stop\n send(Bytes[160, 16, 0, 0, 0, 175])\n zoom?(priority: queue.priority)\n auto_focus(name: \"zoom\")\nwhen ZoomDirection::In\n send(Bytes[160, 17, 0, 0, 0, 175], name: :zoom)\nwhen ZoomDirection::Out\n send(Bytes[160, 17, 1, 0, 0, 175], name: :zoom)\nend\n"}},{"html_id":"zoom?(priority:Int32=0)-instance-method","name":"zoom?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L113"},"def":{"name":"zoom?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(Bytes[160, 96, 0, 0, 0, 175], priority: priority)"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L79"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nposition = (percentage * @zoom_max.to_f).to_i\nlow = (position & 255).to_u8\nhigh = ((position >> 8) & 255).to_u8\nauto_focus = auto_focus ? 31_u8 : 19_u8\nsend(Bytes[160, auto_focus, low, high, 0, 175], name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Lumens/DC193/Status","path":"Lumens/DC193/Status.html","kind":"enum","full_name":"Lumens::DC193::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L151"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"1"},{"id":"Ignored","name":"Ignored","value":"2"},{"id":"Reserved1","name":"Reserved1","value":"4"},{"id":"Reserved2","name":"Reserved2","value":"8"},{"id":"Focusing","name":"Focusing","value":"16"},{"id":"Zooming","name":"Zooming","value":"32"},{"id":"Iris","name":"Iris","value":"64"},{"id":"Reserved3","name":"Reserved3","value":"128"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"255"}],"namespace":{"html_id":"drivers/Lumens/DC193","kind":"class","full_name":"Lumens::DC193","name":"DC193"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L152"},"def":{"name":"error?","visibility":"Public","body":"self.includes?(Error)"}},{"html_id":"focusing?-instance-method","name":"focusing?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L156"},"def":{"name":"focusing?","visibility":"Public","body":"self.includes?(Focusing)"}},{"html_id":"ignored?-instance-method","name":"ignored?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L153"},"def":{"name":"ignored?","visibility":"Public","body":"self.includes?(Ignored)"}},{"html_id":"iris?-instance-method","name":"iris?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L158"},"def":{"name":"iris?","visibility":"Public","body":"self.includes?(Iris)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L151"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"reserved1?-instance-method","name":"reserved1?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L154"},"def":{"name":"reserved1?","visibility":"Public","body":"self.includes?(Reserved1)"}},{"html_id":"reserved2?-instance-method","name":"reserved2?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L155"},"def":{"name":"reserved2?","visibility":"Public","body":"self.includes?(Reserved2)"}},{"html_id":"reserved3?-instance-method","name":"reserved3?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L159"},"def":{"name":"reserved3?","visibility":"Public","body":"self.includes?(Reserved3)"}},{"html_id":"zooming?-instance-method","name":"zooming?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L157"},"def":{"name":"zooming?","visibility":"Public","body":"self.includes?(Zooming)"}}]}]}]},{"html_id":"drivers/Lutron","path":"Lutron.html","kind":"module","full_name":"Lutron","name":"Lutron","abstract":false,"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L12"},{"filename":"src/lutron/vive_leap_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"macros":[{"html_id":"upper_enum(name)-macro","name":"upper_enum","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""}],"args_string":"(name)","args_html":"(name)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L4"},"def":{"name":"upper_enum","args":[{"name":"name","external_name":"name","restriction":""}],"visibility":"Public","body":" \n{% if name.type.resolve.nilable? %} @{{ name.var }} : String? {% else %} @{{ name.var }} : String {% end %}\n\n \n{% enum_type = name.type.resolve.union_types.reject(&.nilable?).first %}\n\n\n def \n{{ name.var }}\n : \n{{ name.type }}\n\n if value = @\n{{ name.var }}\n\n \n{{ enum_type }}\n.parse(value)\n \nelse\n nil\n \nend\n \nend\n\n def \n{{ name.var }}\n=(value : \n{{ name.type }}\n) : \n{{ name.type }}\n\n @\n{{ name.var }}\n = value.try &.to_s\n value\n \nend\n \n"}}],"types":[{"html_id":"drivers/Lutron/AreaStatus","path":"Lutron/AreaStatus.html","kind":"struct","full_name":"Lutron::AreaStatus","name":"AreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","doc":"/area/3/status","summary":"

/area/3/status

","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L121"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L124"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"occupancy:OccupancyStatus|Nil-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy","return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"if value = @occupancy\n Lutron::OccupancyStatus.parse(value)\nelse\n nil\nend"}},{"html_id":"occupancy=(value:OccupancyStatus|Nil):OccupancyStatus|Nil-instance-method","name":"occupancy=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"args_string":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","args_html":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy=","args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"@occupancy = value.try(&.to_s)\nvalue\n"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L129"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, area_id, status = href.split(\"/\", 4)\n\"#{component}#{area_id}\"\n"}}]},{"html_id":"drivers/Lutron/Availability","path":"Lutron/Availability.html","kind":"enum","full_name":"Lutron::Availability","name":"Availability","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L159"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Available","name":"Available","value":"0"},{"id":"Unavailable","name":"Unavailable","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"available?-instance-method","name":"available?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L160"},"def":{"name":"available?","visibility":"Public","body":"self == Available"}},{"html_id":"unavailable?-instance-method","name":"unavailable?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L161"},"def":{"name":"unavailable?","visibility":"Public","body":"self == Unavailable"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L162"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]},{"html_id":"drivers/Lutron/ClientSetting","path":"Lutron/ClientSetting.html","kind":"struct","full_name":"Lutron::ClientSetting","name":"ClientSetting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"protocol:ClientVersion-instance-method","name":"protocol","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L77"},"def":{"name":"protocol","return_type":"ClientVersion","visibility":"Public","body":"@protocol"}}]},{"html_id":"drivers/Lutron/ClientVersion","path":"Lutron/ClientVersion.html","kind":"struct","full_name":"Lutron::ClientVersion","name":"ClientVersion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"major_version:Int32-instance-method","name":"major_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L84"},"def":{"name":"major_version","return_type":"Int32","visibility":"Public","body":"@major_version"}},{"html_id":"minor_version:Int32-instance-method","name":"minor_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L87"},"def":{"name":"minor_version","return_type":"Int32","visibility":"Public","body":"@minor_version"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L89"},"def":{"name":"version","visibility":"Public","body":"\"#{major_version}.#{minor_version}.0\""}}]},{"html_id":"drivers/Lutron/CommuniqueType","path":"Lutron/CommuniqueType.html","kind":"enum","full_name":"Lutron::CommuniqueType","name":"CommuniqueType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"ReadRequest","name":"ReadRequest","value":"0"},{"id":"ReadResponse","name":"ReadResponse","value":"1"},{"id":"UpdateRequest","name":"UpdateRequest","value":"2"},{"id":"UpdateResponse","name":"UpdateResponse","value":"3"},{"id":"SubscribeRequest","name":"SubscribeRequest","value":"4"},{"id":"SubscribeResponse","name":"SubscribeResponse","value":"5"},{"id":"DeleteRequest","name":"DeleteRequest","value":"6"},{"id":"DeleteResponse","name":"DeleteResponse","value":"7"},{"id":"CreateRequest","name":"CreateRequest","value":"8"},{"id":"CreateResponse","name":"CreateResponse","value":"9"},{"id":"UnsubscribeRequest","name":"UnsubscribeRequest","value":"10"},{"id":"UnsubscribeResponse","name":"UnsubscribeResponse","value":"11"},{"id":"ExceptionResponse","name":"ExceptionResponse","value":"12"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"create_request?-instance-method","name":"create_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L31"},"def":{"name":"create_request?","visibility":"Public","body":"self == CreateRequest"}},{"html_id":"create_response?-instance-method","name":"create_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L32"},"def":{"name":"create_response?","visibility":"Public","body":"self == CreateResponse"}},{"html_id":"delete_request?-instance-method","name":"delete_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L29"},"def":{"name":"delete_request?","visibility":"Public","body":"self == DeleteRequest"}},{"html_id":"delete_response?-instance-method","name":"delete_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L30"},"def":{"name":"delete_response?","visibility":"Public","body":"self == DeleteResponse"}},{"html_id":"exception_response?-instance-method","name":"exception_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L35"},"def":{"name":"exception_response?","visibility":"Public","body":"self == ExceptionResponse"}},{"html_id":"read_request?-instance-method","name":"read_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L23"},"def":{"name":"read_request?","visibility":"Public","body":"self == ReadRequest"}},{"html_id":"read_response?-instance-method","name":"read_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L24"},"def":{"name":"read_response?","visibility":"Public","body":"self == ReadResponse"}},{"html_id":"subscribe_request?-instance-method","name":"subscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L27"},"def":{"name":"subscribe_request?","visibility":"Public","body":"self == SubscribeRequest"}},{"html_id":"subscribe_response?-instance-method","name":"subscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L28"},"def":{"name":"subscribe_response?","visibility":"Public","body":"self == SubscribeResponse"}},{"html_id":"unsubscribe_request?-instance-method","name":"unsubscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L33"},"def":{"name":"unsubscribe_request?","visibility":"Public","body":"self == UnsubscribeRequest"}},{"html_id":"unsubscribe_response?-instance-method","name":"unsubscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L34"},"def":{"name":"unsubscribe_response?","visibility":"Public","body":"self == UnsubscribeResponse"}},{"html_id":"update_request?-instance-method","name":"update_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L25"},"def":{"name":"update_request?","visibility":"Public","body":"self == UpdateRequest"}},{"html_id":"update_response?-instance-method","name":"update_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L26"},"def":{"name":"update_response?","visibility":"Public","body":"self == UpdateResponse"}}]},{"html_id":"drivers/Lutron/ContactClosureState","path":"Lutron/ContactClosureState.html","kind":"enum","full_name":"Lutron::ContactClosureState","name":"ContactClosureState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L156"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L155"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]},{"html_id":"drivers/Lutron/ExceptionDetail","path":"Lutron/ExceptionDetail.html","kind":"struct","full_name":"Lutron::ExceptionDetail","name":"ExceptionDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error_code:Int32|Nil-instance-method","name":"error_code","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L101"},"def":{"name":"error_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@error_code"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L98"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Lutron/Lighting","path":"Lutron/Lighting.html","kind":"class","full_name":"Lutron::Lighting","name":"Lighting","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Errors","name":"Errors","value":"{\"1\" => \"Parameter count mismatch\", \"2\" => \"Object does not exist\", \"3\" => \"Invalid action number\", \"4\" => \"Parameter data out of range\", \"5\" => \"Parameter data malformed\", \"6\" => \"Unsupported Command\"}"},{"id":"Occupancy","name":"Occupancy","value":"{\"1\" => \"unknown\", \"2\" => \"inactive\", \"3\" => \"occupied\", \"4\" => \"unoccupied\"}"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"blinds(device:String,action:String,component:String=\"shadegrp\")-instance-method","name":"blinds","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"args_string":"(device : String, action : String, component : String = \"shadegrp\")","args_html":"(device : String, action : String, component : String = "shadegrp")","location":{"filename":"src/lutron/lighting.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L77"},"def":{"name":"blinds","args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"case action.downcase\nwhen \"raise\", \"up\"\n send_cmd(component.upcase, device, 3)\nwhen \"lower\", \"down\"\n send_cmd(component.upcase, device, 2)\nwhen \"stop\"\n send_cmd(component.upcase, device, 4)\nend"}},{"html_id":"button_press(area:Int32,button:Int32)-instance-method","name":"button_press","doc":"===============\nDEVICE COMMANDS\n===============","summary":"

=============== DEVICE COMMANDS ===============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"args_string":"(area : Int32, button : Int32)","args_html":"(area : Int32, button : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L116"},"def":{"name":"button_press","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"visibility":"Public","body":"send_cmd(\"DEVICE\", area, button, 3)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"send(\"#{@login}\\r\\n\", priority: 9999)\nschedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Lutron\"\n end\n scene?(1)\nend\n"}},{"html_id":"daylight(area:Int32,mode:Bool)-instance-method","name":"daylight","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"args_string":"(area : Int32, mode : Bool)","args_html":"(area : Int32, mode : Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L108"},"def":{"name":"daylight","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"visibility":"Public","body":"val = mode ? 1 : 2\nsend_cmd(\"AREA\", area, 7, val)\n"}},{"html_id":"daylight_mode?(area:Int32)-instance-method","name":"daylight_mode?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L104"},"def":{"name":"daylight_mode?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 7)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L44"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"led(area:Int32,device:Int32,state:Int32|Bool)-instance-method","name":"led","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"args_string":"(area : Int32, device : Int32, state : Int32 | Bool)","args_html":"(area : Int32, device : Int32, state : Int32 | Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L120"},"def":{"name":"led","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"visibility":"Public","body":"val = if state.is_a?(Int32)\n state\nelse\n state ? 1 : 0\nend\nsend_cmd(\"DEVICE\", area, device, 9, val)\n"}},{"html_id":"led?(area:Int32,device:Int32)-instance-method","name":"led?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"args_string":"(area : Int32, device : Int32)","args_html":"(area : Int32, device : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L130"},"def":{"name":"led?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"DEVICE\", area, device, 9)"}},{"html_id":"level(device:Int32,level:Int32,rate:Int32=1000,component:String=\"output\")-instance-method","name":"level","doc":"dimmers, CCOs, or other devices in a system that have a controllable output","summary":"

dimmers, CCOs, or other devices in a system that have a controllable output

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"args_string":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = \"output\")","args_html":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = "output")","location":{"filename":"src/lutron/lighting.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L63"},"def":{"name":"level","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nseconds = rate / 1000\nmin = seconds / 60\nseconds = seconds - (min * 60)\ntime = \"#{min.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}\"\nsend_cmd(component.upcase, device, 1, level, time)\n"}},{"html_id":"light_level(area:Int32,level:Int32,component:String|Nil=nil,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","args_html":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","location":{"filename":"src/lutron/lighting.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L141"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"if component\n level(area, level, fade, component)\nelse\n level(area, level, fade, \"area\")\nend"}},{"html_id":"lighting(device:Int32,state:Bool,action:Int32=1)-instance-method","name":"lighting","doc":"on or off","summary":"

on or off

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"args_string":"(device : Int32, state : Bool, action : Int32 = 1)","args_html":"(device : Int32, state : Bool, action : Int32 = 1)","location":{"filename":"src/lutron/lighting.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L53"},"def":{"name":"lighting","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(device, level)\n"}},{"html_id":"occupancy?(area:Int32)-instance-method","name":"occupancy?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L100"},"def":{"name":"occupancy?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 8)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@login = (setting?(String, :login)) || \"nwk\"\n@trigger_type = (setting?(String, :trigger)) || \"area\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/lighting.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nparts = data.split(\",\")\ncomponent = parts[0][1..-1].downcase\ncase component\nwhen \"area\", \"output\", \"shadegrp\"\n area = parts[1]\n action = parts[2].to_i\n param = parts[3]\n case action\n when 1\n self[\"#{component}#{area}_level\"] = param.to_f\n when 6\n self[\"#{component}#{area}\"] = param.to_i\n when 7\n self[\"#{component}#{area}_daylight\"] = param == \"1\"\n when 8\n self[\"#{component}#{area}_occupied\"] = Occupancy[param]\n end\nwhen \"device\"\n area = parts[1]\n device = parts[2]\n action = parts[3].to_i\n case action\n when 7\n self[\"device#{area}_#{device}\"] = parts[4].to_i\n when 9\n self[\"device#{area}_#{device}_led\"] = parts[4].to_i\n end\nwhen \"error\"\n error = \"error #{parts[1]}: #{Errors[parts[1]]}\"\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success)\n"}},{"html_id":"restart-instance-method","name":"restart","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L48"},"def":{"name":"restart","visibility":"Public","body":"send_cmd(\"RESET\", 0)"}},{"html_id":"scene(area:Int32,scene:Int32,component:String=\"area\")-instance-method","name":"scene","doc":"=============\nAREA COMMANDS\n=============","summary":"

============= AREA COMMANDS =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, scene : Int32, component : String = \"area\")","args_html":"(area : Int32, scene : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L91"},"def":{"name":"scene","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"(send_cmd(component.upcase, area, 6, scene)).get\nscene?(area, component)\n"}},{"html_id":"scene?(area:Int32,component:String=\"area\")-instance-method","name":"scene?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, component : String = \"area\")","args_html":"(area : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L96"},"def":{"name":"scene?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"send_query(component.upcase, area, 6)"}},{"html_id":"trigger(area:Int32,scene:Int32)-instance-method","name":"trigger","doc":"=============\nCOMPATIBILITY\n=============","summary":"

============= COMPATIBILITY =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32)","args_html":"(area : Int32, scene : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L137"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"scene(area, scene, @trigger_type)"}}]},{"html_id":"drivers/Lutron/MultipleAreaStatus","path":"Lutron/MultipleAreaStatus.html","kind":"struct","full_name":"Lutron::MultipleAreaStatus","name":"MultipleAreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L104"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L105"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(AreaStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L108"},"def":{"name":"states","return_type":"Array(AreaStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/MultipleZoneStatus","path":"Lutron/MultipleZoneStatus.html","kind":"struct","full_name":"Lutron::MultipleZoneStatus","name":"MultipleZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L135"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(ZoneStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L139"},"def":{"name":"states","return_type":"Array(ZoneStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/OccupancyStatus","path":"Lutron/OccupancyStatus.html","kind":"enum","full_name":"Lutron::OccupancyStatus","name":"OccupancyStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L111"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Occupied","name":"Occupied","value":"0"},{"id":"Unoccupied","name":"Unoccupied","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"occupied?-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L112"},"def":{"name":"occupied?","visibility":"Public","body":"self == Occupied"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L114"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"unoccupied?-instance-method","name":"unoccupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L113"},"def":{"name":"unoccupied?","visibility":"Public","body":"self == Unoccupied"}}]},{"html_id":"drivers/Lutron/OneZoneStatus","path":"Lutron/OneZoneStatus.html","kind":"struct","full_name":"Lutron::OneZoneStatus","name":"OneZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:ZoneStatus-instance-method","name":"status","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L146"},"def":{"name":"status","return_type":"ZoneStatus","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/Lutron/Quantum","path":"Lutron/Quantum.html","kind":"class","full_name":"Lutron::Quantum","name":"Quantum","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/quantum.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"level(id:Int32,level:String)-instance-method","name":"level","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(id : Int32, level : String)","args_html":"(id : Int32, level : String)","location":{"filename":"src/lutron/quantum.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L31"},"def":{"name":"level","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"client.zone.set_status_level(id: id, level: level)\nself[\"area#{id}_level\"] = level\n"}},{"html_id":"level?(id:Int32)-instance-method","name":"level?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L26"},"def":{"name":"level?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.zone.get_status(id)\nself[\"area#{id}_level\"] = status[\"Level\"]\n"}},{"html_id":"occupancy_status?(id:Int32)-instance-method","name":"occupancy_status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L46"},"def":{"name":"occupancy_status?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"occupancy_status = client.area.get_occupancy_status(id: id)\nself[\"area#{id}_occupancy\"] = occupancy_status\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = (URI.parse(config.uri.not_nil!)).host\napi_key = setting(String, :api_key)\ndevice_key = setting(String, :device_key)\n@client = Client.new(host_name: host_name.not_nil!, api_key: api_key, device_key: device_key)\n"}},{"html_id":"root-instance-method","name":"root","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L57"},"def":{"name":"root","visibility":"Public","body":"client.area.root"}},{"html_id":"scene(id:Int32,scene:Int32)-instance-method","name":"scene","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(id : Int32, scene : Int32)","args_html":"(id : Int32, scene : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L36"},"def":{"name":"scene","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"client.area.set_scene(id: id, scene: scene)\nself[\"area#{id}\"] = scene\n"}},{"html_id":"scene?(id:Int32)-instance-method","name":"scene?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L41"},"def":{"name":"scene?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.area.get_status(id: id)\nself[\"area#{id}\"] = status[\"CurrentScene\"]\n"}},{"html_id":"scenes(id:Int32)-instance-method","name":"scenes","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L52"},"def":{"name":"scenes","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"client.area.get_scenes(id: id)"}}],"types":[{"html_id":"drivers/Lutron/Quantum/Client","path":"Lutron/Quantum/Client.html","kind":"alias","full_name":"Lutron::Quantum::Client","name":"Client","abstract":false,"locations":[{"filename":"src/lutron/quantum.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Quantum::Client","aliased_html":"Quantum::Client","const":false,"namespace":{"html_id":"drivers/Lutron/Quantum","kind":"class","full_name":"Lutron::Quantum","name":"Quantum"}}]},{"html_id":"drivers/Lutron/Request","path":"Lutron/Request.html","kind":"class","full_name":"Lutron::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L39"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(url:String,req_type:CommuniqueType=CommuniqueType::ReadRequest,body=nil,header:Hash(String,String)={}ofString=>String)-class-method","name":"new","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"args_string":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","args_html":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L56"},"def":{"name":"new","args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(url, req_type, body, header)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(*args,**options)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args] = **options"}},{"html_id":"[]=(*args,**options,&)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]=(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"if (__temp_1 = @body).nil?\n @body = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"header:Hash(String,String)-instance-method","name":"header","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header","return_type":"Hash(String, String)","visibility":"Public","body":"@header"}},{"html_id":"header=(header:Hash(String,String))-instance-method","name":"header=","abstract":false,"args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"args_string":"(header : Hash(String, String))","args_html":"(header : Hash(String, String))","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header=","args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@header = header"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L52"},"def":{"name":"name?","visibility":"Public","body":"header[\"Url\"]?"}},{"html_id":"type:CommuniqueType-instance-method","name":"type","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type","return_type":"CommuniqueType","visibility":"Public","body":"if value = @type\n Lutron::CommuniqueType.parse(value)\nelse\n nil\nend"}},{"html_id":"type=(value:CommuniqueType):CommuniqueType-instance-method","name":"type=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"args_string":"(value : CommuniqueType) : CommuniqueType","args_html":"(value : CommuniqueType) : CommuniqueType","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type=","args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"return_type":"CommuniqueType","visibility":"Public","body":"@type = value.try(&.to_s)\nvalue\n"}}]},{"html_id":"drivers/Lutron/RoomLogic","path":"Lutron/RoomLogic.html","kind":"class","full_name":"Lutron::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/room_logic.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_state-instance-method","name":"get_state","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L26"},"def":{"name":"get_state","visibility":"Public","body":"self[\"lighting_scene\"] = (lutron.scene?(@area_id)).get\nself[\"occupancy\"] = (lutron.occupancy_status?(@area_id)).get\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@area_id = setting(Int32, :lutron_area_id)\n@cron_string = setting(String, :lutron_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_state\nend\n"}}]},{"html_id":"drivers/Lutron/SwitchedLevel","path":"Lutron/SwitchedLevel.html","kind":"enum","full_name":"Lutron::SwitchedLevel","name":"SwitchedLevel","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L149"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L151"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L150"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Lutron/ViveBacnet","path":"Lutron/ViveBacnet.html","kind":"class","full_name":"Lutron::ViveBacnet","name":"ViveBacnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disable_occupancy(state:Bool)-instance-method","name":"disable_occupancy","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L79"},"def":{"name":"disable_occupancy","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 7, state)).get\nself[:occupancy_disabled] = state\n"}},{"html_id":"level(percentage:Float32)-instance-method","name":"level","abstract":false,"args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"args_string":"(percentage : Float32)","args_html":"(percentage : Float32)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L67"},"def":{"name":"level","args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"visibility":"Public","body":"if percentage < 0.0_f32\n percentage = 0.0_f32\nend\nif percentage > 100.0_f32\n percentage = 100.0_f32\nend\n(bacnet.write_real(@device_id, 2, percentage)).get\nself[:lighting_level] = percentage\n"}},{"html_id":"lighting(state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L74"},"def":{"name":"lighting","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 3, state)).get\nself[:lighting] = state\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_bacnet.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@device_id = setting(UInt32, :device_id)\nsubscriptions.clear\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[2]\") do |_sub, value|\n self[:lighting_level] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[18]\") do |_sub, value|\n self[:power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[19]\") do |_sub, value|\n self[:max_power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[3]\") do |_sub, value|\n self[:lighting] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[7]\") do |_sub, value|\n self[:occupancy_disabled] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.MultiStateValue[8]\") do |_sub, value|\n @occupancy = case value\n when \"1\"\n false\n when \"2\"\n true\n else\n nil\n end\n self[:occupancy] = @occupancy\n self[:occupancy_sensor] = @occupancy.nil? ? nil : (@occupancy ? 1.0 : 0.0)\n @last_updated = Time.utc.to_unix\nend\nschedule.clear\nschedule.every((4 + (rand(3))).seconds) do\n (bacnet.update_value(@device_id, 2, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 18, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 19, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 3, \"BinaryValue\")).get\n (bacnet.update_value(@device_id, 8, \"MultiStateValue\")).get\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L111"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id == \"occupancy\"\nelse\n return nil\nend\nif mac == @device_id.to_s\nelse\n return nil\nend\nif @last_updated == 0_i64\n return nil\nend\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L90"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != @device_id.to_s)\n return NO_MATCH\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\n[Interface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")]\n"}}]},{"html_id":"drivers/Lutron/ViveLeap","path":"Lutron/ViveLeap.html","kind":"class","full_name":"Lutron::ViveLeap","name":"ViveLeap","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area_status?-instance-method","name":"area_status?","doc":"gets the status of all areas","summary":"

gets the status of all areas

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L85"},"def":{"name":"area_status?","visibility":"Public","body":"request = Request.new(\"/area/status\")\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"request = Request.new(\"/clientsetting\", :update_request, {ClientSetting: {ClientMajorVersion: 1}})\nsend(request.to_json, priority: 99, name: request.name?)\nschedule.every(1.minute) do\n ping\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"@sensors.clear\nschedule.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n length, unpaired = 0, 0\n loop do\n case io.read_char\n when '{'\n unpaired = unpaired + 1\n when '}'\n unpaired = unpaired - 1\n when Nil\n break\n end\n length = length + 1\n if unpaired.zero?\n break\n end\n end\n unpaired.zero? && length > 0 ? length : -1\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L79"},"def":{"name":"ping","visibility":"Public","body":"request = Request.new(\"/server/status/ping\")\nsend(request.to_json, priority: 0, name: request.name?)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/vive_leap.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L142"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nrequest = Request.from_json(data)\nurl = request[\"Url\"]?\nhttp_status = request[\"StatusCode\"]? || \"200 OK\"\nmessage_type = request[\"MessageBodyType\"]?\ncase message_type\nwhen \"OneClientSettingDefinition\"\n setting = ClientSetting.from_json(request.body)\n logger.debug do\n \"protocol version negotiated #{setting.protocol.version}, authenticating\"\n end\n authenticate\nwhen \"MultipleAreaStatus\"\n statuses = MultipleAreaStatus.from_json(request.body)\n timestamp = Time.utc.to_unix\n statuses.states.each do |status|\n base_key = status.status_key\n if status.level\n self[\"#{base_key}_level\"] = status.level\n end\n if status.occupancy\n self[\"#{base_key}_occupied\"] = status.occupancy\n @sensors[base_key] = {status.occupancy.try(&.occupied?) || false, timestamp}\n end\n end\nwhen \"MultipleZoneStatus\"\n statuses = MultipleZoneStatus.from_json(request.body)\n statuses.states.each do |status|\n set_zone(status)\n end\nwhen \"OneZoneStatus\"\n set_zone((OneZoneStatus.from_json(request.body)).status)\nwhen \"ExceptionDetail\"\n code, status = http_status.split(\" \", 2)\n details = ExceptionDetail.from_json(request.body)\n error_message = \"operation #{url} failed with #{code}: #{status}, #{details.message} [#{details.error_code}]\"\n logger.warn do\n error_message\n end\n if task && (task.name == url)\n task.abort(error_message)\n else\n return\n end\nwhen nil\n case url\n when \"/server/status/ping\"\n logger.debug do\n \"got ping response\"\n end\n end\nelse\n logger.debug do\n \"unknown message type #{message_type}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_leap.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L233"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif mac == config.ip\nelse\n return nil\nend\nif id\nelse\n return nil\nend\nsensor_found = @sensors[id]?\nif sensor_found\nelse\n return nil\nend\npresence, timestamp = sensor_found\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: mac, id: id, name: \"#{system.name} #{id} occupancy\", module_id: module_id, binding: \"#{id}_occupied\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_leap.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L213"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\n@sensors.map do |area_id, __temp_844|\n presence, timestamp = __temp_844\n Interface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: config.ip.not_nil!, id: area_id, name: \"#{system.name} #{area_id} occupancy\", module_id: module_id, binding: \"#{area_id}_occupied\")\nend\n"}},{"html_id":"zone_contact_closure(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_contact_closure","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L130"},"def":{"name":"zone_contact_closure","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToCCOLevel\", CCOLevelParameters: {CCOLevel: state ? \"Closed\" : \"Open\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_level(zone_id:String|Int32,level:Float64)-instance-method","name":"zone_level","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(zone_id : String | Int32, level : Float64)","args_html":"(zone_id : String | Int32, level : Float64)","location":{"filename":"src/lutron/vive_leap.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L106"},"def":{"name":"zone_level","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToDimmedLevel\", DimmedLevelParameters: {Level: level}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_lighting(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_lighting","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L118"},"def":{"name":"zone_lighting","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToSwitchedLevel\", SwitchedLevelParameters: {SwitchedLevel: state ? \"On\" : \"Off\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_status?-instance-method","name":"zone_status?","doc":"get the status of all zones","summary":"

get the status of all zones

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L96"},"def":{"name":"zone_status?","visibility":"Public","body":"request = Request.new(\"/zone/status\")\nsend(request.to_json, name: request.name?)\n"}}]},{"html_id":"drivers/Lutron/ZoneStatus","path":"Lutron/ZoneStatus.html","kind":"struct","full_name":"Lutron::ZoneStatus","name":"ZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"availability:Availability|Nil-instance-method","name":"availability","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability","return_type":"Availability | ::Nil","visibility":"Public","body":"if value = @availability\n Lutron::Availability.parse(value)\nelse\n nil\nend"}},{"html_id":"availability=(value:Availability|Nil):Availability|Nil-instance-method","name":"availability=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"args_string":"(value : Availability | Nil) : Availability | Nil","args_html":"(value : Availability | Nil) : Availability | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability=","args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"return_type":"Availability | ::Nil","visibility":"Public","body":"@availability = value.try(&.to_s)\nvalue\n"}},{"html_id":"contact_closure:ContactClosureState|Nil-instance-method","name":"contact_closure","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure","return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"if value = @contact_closure\n Lutron::ContactClosureState.parse(value)\nelse\n nil\nend"}},{"html_id":"contact_closure=(value:ContactClosureState|Nil):ContactClosureState|Nil-instance-method","name":"contact_closure=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"args_string":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","args_html":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure=","args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"@contact_closure = value.try(&.to_s)\nvalue\n"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L168"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L171"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L182"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, zone_id, status = href.split(\"/\", 4)\n\"#{component}#{zone_id}\"\n"}},{"html_id":"switched_level:SwitchedLevel|Nil-instance-method","name":"switched_level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level","return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"if value = @switched_level\n Lutron::SwitchedLevel.parse(value)\nelse\n nil\nend"}},{"html_id":"switched_level=(value:SwitchedLevel|Nil):SwitchedLevel|Nil-instance-method","name":"switched_level=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"args_string":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","args_html":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level=","args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"@switched_level = value.try(&.to_s)\nvalue\n"}}]}]},{"html_id":"drivers/Mailer","path":"Mailer.html","kind":"class","full_name":"Mailer","name":"Mailer","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_spec.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L544"},{"filename":"src/place/survey_mailer_spec.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L54"},{"filename":"src/place/template_mailer_spec.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"on_load-instance-method","name":"on_load","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"location":{"filename":"src/place/template_mailer_spec.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L112"},"def":{"name":"on_load","visibility":"Public","body":"self[:sent] = 0"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/auto_release_spec.cr","line_number":565,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L565"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L75"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/template_mailer_spec.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L131"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/auto_release_spec.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L551"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L61"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer_spec.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L116"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}}]},{"html_id":"drivers/MessageMedia","path":"MessageMedia.html","kind":"module","full_name":"MessageMedia","name":"MessageMedia","abstract":false,"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MessageMedia/SMS","path":"MessageMedia/SMS.html","kind":"class","full_name":"MessageMedia::SMS","name":"SMS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/MessageMedia","kind":"module","full_name":"MessageMedia","name":"MessageMedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/message_media/sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/message_media/sms.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L24"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nformat = format || \"SMS\"\nnumbers = phone_numbers.map do |number|\n payload = {:content => message, :destination_number => number, :format => format}\n if source\n payload[:source_number] = source.to_s\n payload[:source_number_type] = \"ALPHANUMERIC\"\n end\n payload\nend\nresponse = post(\"/v1/messages\", body: {messages: numbers}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nnil\n"}}]}]},{"html_id":"drivers/Microsoft","path":"Microsoft.html","kind":"module","full_name":"Microsoft","name":"Microsoft","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Microsoft/Coordinates","path":"Microsoft/Coordinates.html","kind":"class","full_name":"Microsoft::Coordinates","name":"Coordinates","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L21"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L24"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L27"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L30"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/Microsoft/FindMe","path":"Microsoft/FindMe.html","kind":"class","full_name":"Microsoft::FindMe","name":"FindMe","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"levels-instance-method","name":"levels","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L61"},"def":{"name":"levels","visibility":"Public","body":"data = make_request(\"GET\", \"/FindMeService/api/MeetingRooms/BuildingLevelsWithMeetingRooms\")\nlevels = Array(Microsoft::Level).from_json(data)\nbuildings = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\nend\nlevels.each do |level|\n buildings[level.building] << level.name\nend\nbuildings\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@domain = (setting?(String, :domain)) || \"\"\n"}},{"html_id":"user_details(usernames:String|Array(String))-instance-method","name":"user_details","abstract":false,"args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"args_string":"(usernames : String | Array(String))","args_html":"(usernames : String | Array(String))","location":{"filename":"src/microsoft/find_me.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L71"},"def":{"name":"user_details","args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"visibility":"Public","body":"users = usernames.is_a?(String) ? [usernames] : usernames\ndata = make_request(\"GET\", \"/FindMeService/api/ObjectLocation/Users/#{users.join(\",\")}?getExtendedData=true\")\n(Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\nend\n"}},{"html_id":"users_on(building:String,level:String)-instance-method","name":"users_on","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(building : String, level : String)","args_html":"(building : String, level : String)","location":{"filename":"src/microsoft/find_me.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L78"},"def":{"name":"users_on","args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"uri = \"/FindMeService/api/ObjectLocation/Level/#{building}/#{level}\"\ndata = make_request(\"GET\", uri)\nbegin\n (Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\n end\nrescue error\n logger.debug do\n \"failed to parse location data\\n#{data}\"\n end\n raise(error)\nend\n"}}]},{"html_id":"drivers/Microsoft/FindMeLocationService","path":"Microsoft/FindMeLocationService.html","kind":"class","full_name":"Microsoft::FindMeLocationService","name":"FindMeLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L91"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nactive_users_raw = (findme.user_details(mac_address)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nif user_details = active_users[0]?\n {location: user_details.located_using == \"FixedLocation\" ? \"desk\" : \"wireless\", assigned_to: user_details.user_data.not_nil!.email_address || \"\", mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L106"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfindme_details = @floor_mappings[zone_id]?\nif findme_details\nelse\n return [] of Nil\nend\nfindme_building = findme_details[:building]\nfindme_level = findme_details[:level]\nactive_users_raw = (findme.users_on(findme_building, findme_level)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nlocations = active_users.compact_map do |loc|\n build_location_response(loc, zone_id, findme_building, findme_level, location)\nend\nlocations\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L49"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocations_raw = (findme.user_details(username)).get.to_json\nlocations = Array(Microsoft::Location).from_json(locations_raw)\nlocations = locations.compact_map do |location|\n coords = location.coordinates\n if coords\n else\n next\n end\n level = findme_building = findme_level = \"\"\n @floor_mappings.each do |zone, details|\n findme_building = details[:building]\n findme_level = details[:level]\n if (findme_building == coords.building) && (findme_level == coords.level)\n level = zone\n break\n end\n end\n if level.empty?\n next\n end\n build_location_response(location, level, findme_building, findme_level)\nend\nlocations\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L78"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nactive_users_raw = (findme.user_details(username || email)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nfound = [] of String\nif user_details = active_users[0]?\n found << user_details.username\nend\nfound\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@map_id_prefix = (setting?(String, :map_id_prefix)).presence || \"table-\"\n@building_zone = setting(String, :building_zone)\n@floor_mappings = setting(Hash(String, NamedTuple(building: String, level: String)), :floor_mappings)\n@zone_filter = @floor_mappings.keys\n@s2_level = (setting?(Int32, :s2_level)) || 21\n"}}]},{"html_id":"drivers/Microsoft/GPS","path":"Microsoft/GPS.html","kind":"class","full_name":"Microsoft::GPS","name":"GPS","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L37"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L40"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}}]},{"html_id":"drivers/Microsoft/GraphAPI","path":"Microsoft/GraphAPI.html","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Microsoft/GraphAPIAdvanced","path":"Microsoft/GraphAPIAdvanced.html","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_request(path:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L41"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"get(path)"}},{"html_id":"list_managed_devices(filter_device_name:String|Nil=nil)-instance-method","name":"list_managed_devices","abstract":false,"args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"args_string":"(filter_device_name : String | Nil = nil)","args_html":"(filter_device_name : String | Nil = nil)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L77"},"def":{"name":"list_managed_devices","args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"query_params = filter_device_name ? URI::Params {\"filter\" => \"deviceName eq #{filter_device_name}\"} : nil\nresponse = get(\"/v1.0/deviceManagement/managedDevices\", query_params)\nresponse.body[\"value\"]\n"}},{"html_id":"list_users_managed_devices(user_id:String)-instance-method","name":"list_users_managed_devices","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L86"},"def":{"name":"list_users_managed_devices","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/v1.0/users/#{user_id}/managedDevices\")\nresponse.body[\"value\"]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"credentials = setting(GraphParams, :credentials)\n@client = Office365::Client.new(**credentials)\n"}},{"html_id":"post_request(path:String)-instance-method","name":"post_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L57"},"def":{"name":"post_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"post(path)"}},{"html_id":"put_request(path:String)-instance-method","name":"put_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L73"},"def":{"name":"put_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"put(path)"}}],"types":[{"html_id":"drivers/Microsoft/GraphAPIAdvanced/GraphParams","path":"Microsoft/GraphAPIAdvanced/GraphParams.html","kind":"alias","full_name":"Microsoft::GraphAPIAdvanced::GraphParams","name":"GraphParams","abstract":false,"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String)","aliased_html":"{tenant: String, client_id: String, client_secret: String}","const":false,"namespace":{"html_id":"drivers/Microsoft/GraphAPIAdvanced","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced"}}]},{"html_id":"drivers/Microsoft/Level","path":"Microsoft/Level.html","kind":"class","full_name":"Microsoft::Level","name":"Level","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L8"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"online:Int32-instance-method","name":"online","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L14"},"def":{"name":"online","return_type":"Int32","visibility":"Public","body":"@online"}}]},{"html_id":"drivers/Microsoft/Location","path":"Microsoft/Location.html","kind":"class","full_name":"Microsoft::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"doc":"Example Response:\n[{\"Alias\":\"dwatson\",\"LastUpdate\":\"2015-11-12T02:25:50.017Z\",\"Confidence\":100,\n \"Coordinates\":{\"Building\":\"SYDNEY\",\"Level\":\"2\",\"X\":76,\"Y\":29,\"LocationDescription\":\"2140\",\"MapByLocationId\":true},\n \"GPS\":{\"Latitude\":-33.796597429,\"Longitude\":151.1382508278,\"Accuracy\":0.0,\"LocationDescription\":null},\n \"LocationIdentifier\":null,\"Status\":\"Located\",\"LocatedUsing\":\"FixedLocation\",\"Type\":\"Person\",\"Comments\":null,\n \"ExtendedUserData\":{\"Alias\":\"dwatson\",\"DisplayName\":\"David Watson\",\"EmailAddress\":\"David.Watson@microsoft.com\",\"LyncSipAddress\":\"dwatson@microsoft.com\"}}]","summary":"

Example Response: [{"Alias":"dwatson","LastUpdate":"2015-11-12T02:25:50.017Z","Confidence":100, "Coordinates":{"Building":"SYDNEY","Level":"2","X":76,"Y":29,"LocationDescription":"2140","MapByLocationId":true}, "GPS":{"Latitude":-33.796597429,"Longitude":151.1382508278,"Accuracy":0.0,"LocationDescription":null}, "LocationIdentifier":null,"Status":"Located","LocatedUsing":"FixedLocation","Type":"Person","Comments":null, "ExtendedUserData":{"Alias":"dwatson","DisplayName":"David Watson","EmailAddress":"David.Watson@microsoft.com","LyncSipAddress":"dwatson@microsoft.com"}}]

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence:Float64-instance-method","name":"confidence","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L85"},"def":{"name":"confidence","return_type":"Float64","visibility":"Public","body":"@confidence"}},{"html_id":"coordinates:Coordinates|Nil-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L88"},"def":{"name":"coordinates","return_type":"Coordinates | ::Nil","visibility":"Public","body":"@coordinates"}},{"html_id":"gps:GPS|Nil-instance-method","name":"gps","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L91"},"def":{"name":"gps","return_type":"GPS | ::Nil","visibility":"Public","body":"@gps"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L82"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"located_using:String|Nil-instance-method","name":"located_using","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L100"},"def":{"name":"located_using","return_type":"String | ::Nil","visibility":"Public","body":"@located_using"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L94"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L97"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L103"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"user_data:UserData|Nil-instance-method","name":"user_data","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L106"},"def":{"name":"user_data","return_type":"UserData | ::Nil","visibility":"Public","body":"@user_data"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L76"},"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}],"types":[{"html_id":"drivers/Microsoft/Location/RFC3339Converter","path":"Microsoft/Location/RFC3339Converter.html","kind":"module","full_name":"Microsoft::Location::RFC3339Converter","name":"RFC3339Converter","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft/Location","kind":"class","full_name":"Microsoft::Location","name":"Location"},"class_methods":[{"html_id":"from_json(value:JSON::PullParser):Time-class-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser) : Time","args_html":"(value : JSON::PullParser) : Time","location":{"filename":"src/microsoft/find_me_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L66"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"return_type":"Time","visibility":"Public","body":"Time::Format::RFC_3339.parse(value.read_string)"}},{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L70"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(Time::Format::RFC_3339.format(value, 1))"}}]}]},{"html_id":"drivers/Microsoft/UserData","path":"Microsoft/UserData.html","kind":"class","full_name":"Microsoft::UserData","name":"UserData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L50"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L53"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L47"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]},{"html_id":"drivers/MuleSoft","path":"MuleSoft.html","kind":"module","full_name":"MuleSoft","name":"MuleSoft","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MuleSoft/Booking","path":"MuleSoft/Booking.html","kind":"class","full_name":"MuleSoft::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L9"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L9"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L18"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L18"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L15"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L15"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L20"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L20"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L6"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L6"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"to_placeos-instance-method","name":"to_placeos","doc":"we need this method to create an intermediary hash\notherwise when to_json is called all the field names revert to the MuleSoft ones","summary":"

we need this method to create an intermediary hash otherwise when to_json is called all the field names revert to the MuleSoft ones

","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L24"},"def":{"name":"to_placeos","visibility":"Public","body":"value = {\"title\" => @title, \"body\" => @body, \"recurring_master_id\" => @recurring_master_id, \"event_start\" => @event_start, \"event_end\" => @event_end, \"location\" => @location}"}}]},{"html_id":"drivers/MuleSoft/BookingResults","path":"MuleSoft/BookingResults.html","kind":"class","full_name":"MuleSoft::BookingResults","name":"BookingResults","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L37"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookings:Array(Booking)-instance-method","name":"bookings","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L47"},"def":{"name":"bookings","return_type":"Array(Booking)","visibility":"Public","body":"@bookings"}},{"html_id":"bookings=(bookings:Array(Booking))-instance-method","name":"bookings=","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L47"},"def":{"name":"bookings=","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"@bookings = bookings"}},{"html_id":"count:Int64-instance-method","name":"count","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L39"},"def":{"name":"count","return_type":"Int64","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int64)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int64"}],"args_string":"(count : Int64)","args_html":"(count : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L39"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int64"}],"visibility":"Public","body":"@count = count"}},{"html_id":"venue_code:String-instance-method","name":"venue_code","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code","return_type":"String","visibility":"Public","body":"@venue_code"}},{"html_id":"venue_code=(venue_code:String)-instance-method","name":"venue_code=","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"args_string":"(venue_code : String)","args_html":"(venue_code : String)","location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code=","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"visibility":"Public","body":"@venue_code = venue_code"}},{"html_id":"venue_name:String-instance-method","name":"venue_name","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name","return_type":"String","visibility":"Public","body":"@venue_name"}},{"html_id":"venue_name=(venue_name:String)-instance-method","name":"venue_name=","abstract":false,"args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"args_string":"(venue_name : String)","args_html":"(venue_name : String)","location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name=","args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"visibility":"Public","body":"@venue_name = venue_name"}}]},{"html_id":"drivers/MuleSoft/BookingsAPI","path":"MuleSoft/BookingsAPI.html","kind":"class","full_name":"MuleSoft::BookingsAPI","name":"BookingsAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/booking_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_current_booking-instance-method","name":"check_current_booking","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L78"},"def":{"name":"check_current_booking","visibility":"Public","body":"now = Time.utc.to_unix\nprevious_booking = nil\ncurrent_booking = nil\nnext_booking = Int32::MAX\n@bookings.each_with_index do |event, index|\n starting = event.event_start\n if starting > now\n next_booking = index\n if index > 0\n previous_booking = index - 1\n end\n break\n end\n ending_unix = event.event_end\n if ending_unix < now\n next\n end\n if starting <= now && ending_unix > now\n current_booking = index\n if index > 0\n previous_booking = index - 1\n end\n next_booking = index + 1\n break\n end\nend\nif next_booking >= (@bookings.size - 1)\n next_booking = nil\nend\nself[:previous_booking] = previous_booking ? @bookings[previous_booking].to_placeos : nil\nself[:current_booking] = current_booking ? @bookings[current_booking].to_placeos : nil\nself[:next_booking] = next_booking ? @bookings[next_booking].to_placeos : nil\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L36"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@running_a_spec = !!(setting(Bool, :running_a_spec))\n@username = setting(String, :username)\n@password = setting(String, :password)\n@basic_auth_enabled = !!(setting?(Bool, :basic_auth_enabled))\nlogger.debug do\n \"basic_auth_enabled is #{@basic_auth_enabled}\"\nend\n@base_path = setting(String, :base_path)\n@venue_code = setting(String, :venue_code)\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\ntime_zone = (setting?(String, :time_zone)).presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@ssl_auth_enabled = !!(setting?(Bool, :ssl_auth_enabled))\nif @ssl_auth_enabled\n save_ssl_credentials\nend\nlogger.debug do\n \"ssl_auth_enabled is #{@ssl_auth_enabled}\"\nend\nschedule.in((Random.rand(60)).seconds + (Random.rand(1000)).milliseconds) do\n poll_bookings\nend\ncron_string = (setting?(String, :polling_cron)).presence || \"*/30 7-20 * * *\"\nschedule.cron(cron_string, @time_zone) do\n poll_bookings(random_delay: true)\nend\n"}},{"html_id":"poll_bookings(random_delay:Bool=false)-instance-method","name":"poll_bookings","abstract":false,"args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"args_string":"(random_delay : Bool = false)","args_html":"(random_delay : Bool = false)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L63"},"def":{"name":"poll_bookings","args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"visibility":"Public","body":"now = Time.local(@time_zone)\nfrom = now - 1.week\nto = now + 1.week\nlogger.debug do\n \"polling bookings #{@venue_code}, from #{from}, to #{to}, in #{@time_zone.name}\"\nend\nif random_delay\n logger.debug do\n \"random delay of <30seconds to reduce instantaneous Mulesoft API load\"\n end\n sleep(Random.rand(30.0))\nend\nquery_bookings(@venue_code, from, to)\ncheck_current_booking\n"}},{"html_id":"query_bookings(venue_code:String,starts_at:Time=Time.local.at_beginning_of_day,ends_at:Time=Time.local.at_end_of_day)-instance-method","name":"query_bookings","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"args_string":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","args_html":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L118"},"def":{"name":"query_bookings","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"visibility":"Public","body":"client = HTTP::Client.new(host: @host, tls: (@ssl_auth_enabled ? @context : nil))\nparams = {\"startDateTime\" => starts_at.to_s(\"%FT%T\"), \"endDateTime\" => ends_at.to_s(\"%FT%T\")}.join('&') do |k, v|\n \"#{k}=#{v}\"\nend\nheaders = HTTP::Headers {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}\nif @basic_auth_enabled\n headers.add(\"Authorization\", \"Basic #{Base64.strict_encode(\"#{@username}:#{@password}\")}\")\nend\nif @running_a_spec\n response = get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nelse\n response = client.get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nend\nif (200...300).includes?(response.status_code)\nelse\n raise(\"request failed with #{response.status_code}: #{response.body}\")\nend\nif response.body.presence != nil\n results = BookingResults.from_json(response.body)\n self[:venue_code] = results.venue_code\n self[:venue_name] = results.venue_name\n @bookings = results.bookings.sort do |a, b|\n a.event_start <=> b.event_start\n end\n self[:bookings] = @bookings.map(&.to_placeos)\nelse\n self[:venue_code] = nil\n self[:venue_name] = nil\n self[:bookings] = nil\nend\n"}},{"html_id":"query_bookings_epoch(venue_code:String,starts_at:Int32,ends_at:Int32)-instance-method","name":"query_bookings_epoch","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"args_string":"(venue_code : String, starts_at : Int32, ends_at : Int32)","args_html":"(venue_code : String, starts_at : Int32, ends_at : Int32)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L159"},"def":{"name":"query_bookings_epoch","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"visibility":"Public","body":"query_bookings(venue_code, Time.unix(starts_at), Time.unix(ends_at))"}}]},{"html_id":"drivers/MuleSoft/CalendarExporter","path":"MuleSoft/CalendarExporter.html","kind":"class","full_name":"MuleSoft::CalendarExporter","name":"CalendarExporter","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/calendar_exporter.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_all_events(past_days:Int32=14,future_days:Int32=14)-instance-method","name":"delete_all_events","abstract":false,"args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"args_string":"(past_days : Int32 = 14, future_days : Int32 = 14)","args_html":"(past_days : Int32 = 14, future_days : Int32 = 14)","location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L137"},"def":{"name":"delete_all_events","args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"visibility":"Public","body":"events = fetch_events(past_span: past_days.days, future_span: future_days.days)\nevent_ids = events.map do |e|\n e[\"id\"]\nend\nevent_ids.each do |event_id|\n calendar.delete_event(calendar_id: system.email.not_nil!, event_id: event_id)\nend\n\"Deleted #{event_ids.size} events\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"@just_this_system = {email: system.email.not_nil!, name: system.name}\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\n@time_zone_string = (setting?(String, :calendar_time_zone)).presence\nif @time_zone_string\n @time_zone = Time::Location.load(@time_zone_string.not_nil!)\nend\nself[:timezone] = Time.local.to_s\nsubscription = system.subscribe(:Bookings_1, :bookings) do |_subscription, mulesoft_bookings|\n logger.debug do\n \"DETECTED changed in Mulesoft Bookings..\"\n end\n latest_bookings : Array(Hash(String, Int64 | String | Nil)) = [] of Hash(String, Int64 | String | Nil)\n latest_bookings = Array(Hash(String, Int64 | String | Nil)).from_json(mulesoft_bookings)\n logger.debug do\n \"#{latest_bookings.size} bookings in total\"\n end\n removed_bookings = @bookings - latest_bookings\n now = Time.utc.to_unix\n deleted_bookings = removed_bookings.reject do |b|\n b[\"event_end\"].not_nil!.to_i64 < now\n end\n update_events\n deleted_bookings.each do |b|\n delete_matching_event(b)\n end\n @bookings = latest_bookings\n @bookings.each do |b|\n export_booking(b)\n end\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L63"},"def":{"name":"status","visibility":"Public","body":"{bookings: @bookings, events: @existing_events, deleted_events: @deleted_events}"}},{"html_id":"update_events-instance-method","name":"update_events","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L71"},"def":{"name":"update_events","visibility":"Public","body":"logger.debug do\n \"FETCHING existing Calendar events...\"\nend\n@existing_events = fetch_events()\nlogger.debug do\n \"#{@existing_events.size} events in total\"\nend\n"}}]},{"html_id":"drivers/MuleSoft/DateTimeConvertor","path":"MuleSoft/DateTimeConvertor.html","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/MuleSoft/DateTimeConvertor","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"instance_methods":[{"html_id":"from_json(pull:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L57"},"def":{"name":"from_json","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(Time.parse(pull.read_string, \"%FT%T\", Time::Location.local)).to_unix"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/mulesoft/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L53"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string((Time.unix(value)).to_local.to_s(\"%FT%T\"))"}}]}]},{"html_id":"drivers/Nec","path":"Nec.html","kind":"module","full_name":"Nec","name":"Nec","abstract":false,"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Nec/Display","path":"Nec/Display.html","kind":"class","full_name":"Nec::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"13_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_input(priority:Int32=0)-instance-method","name":"audio_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"audio_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AudioInput), priority: priority, name: \"audio_input\")"}},{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L105"},"def":{"name":"auto_adjust","visibility":"Public","body":"data = MsgType::SetParameter.build(Command::AutoSetup, 1)\nsend(data, name: \"auto_adjust\")\n"}},{"html_id":"auto_setup(priority:Int32=0)-instance-method","name":"auto_setup","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"auto_setup","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AutoSetup), priority: priority, name: \"auto_setup\")"}},{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L110"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::BrightnessStatus, val.clamp(0, 100))\nsend(data, name: \"brightness\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"brightness_status(priority:Int32=0)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::BrightnessStatus), priority: priority, name: \"brightness_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L116"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::ContrastStatus, val.clamp(0, 100))\nsend(data, name: \"contrast\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"contrast_status(priority:Int32=0)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::ContrastStatus), priority: priority, name: \"contrast_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"current_power = power?(priority: 0)\nlogger.debug do\n \"Polling, power = #{current_power}\"\nend\nif current_power\n mute_status\n video_input\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/nec/display.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L139"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"logger.debug do\n \"requested to update mute to #{state}\"\nend\ndata = MsgType::SetParameter.build(Command::MuteStatus, state ? 1 : 0)\nresp = send(data, name: \"mute_audio\")\nresp\n"}},{"html_id":"mute_status(priority:Int32=0)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::MuteStatus), priority: priority, name: \"mute_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 120.milliseconds\nqueue.timeout = 5.seconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/display.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:power]? == state\n return\nend\nif state\n logger.debug do\n \"requested to power on\"\n end\n data = MsgType::Command.build(Command::SetPower, 1)\n send(data, name: \"power\", delay: 5.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n data = MsgType::Command.build(Command::SetPower, 4)\n send(data, name: \"power\", delay: 10.seconds, timeout: 10.seconds)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L73"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"data = MsgType::Command.build(Command::PowerQuery)\n(send(data, **options, name: \"power?\")).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerOnDelay), priority: priority, name: \"power_on_delay\")"}},{"html_id":"power_query(priority:Int32=0)-instance-method","name":"power_query","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"power_query","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerQuery), priority: priority, name: \"power_query\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/display.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L157"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"NEC sent: 0x#{data.hexstring}\"\nend\nheader = data[0..6]\nmessage = data[7..-3]\nchecksum = data[-2]\nbegin\n case MsgType.from_value(header[4])\n when .command_reply?\n parse_command_reply(message)\n when .get_parameter_reply?, .set_parameter_reply?\n parse_response(message)\n else\n raise(\"unknown message type\")\n end\nrescue e\n logger.warn(exception: e) do\n \"processing response\"\n end\n task.try(&.abort(e.message))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save(priority:Int32=0)-instance-method","name":"save","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"save","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::Save), priority: priority, name: \"save\")"}},{"html_id":"set_power(priority:Int32=0)-instance-method","name":"set_power","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"set_power","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::SetPower), priority: priority, name: \"set_power\")"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/display.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L99"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch audio to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::AudioInput, input.value)\nsend(data, name: \"audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/display.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L79"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::VideoInput, input.value)\nsend(data, name: \"input\", delay: 6.seconds)\n"}},{"html_id":"video_input(priority:Int32=0)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VideoInput), priority: priority, name: \"video_input\")"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/nec/display.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L122"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\ndata = MsgType::SetParameter.build(Command::VolumeStatus, val)\nsend(data, name: \"volume\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L134"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VolumeStatus), priority: priority, name: \"volume_status\")"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L129"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Display/Audio","path":"Nec/Display/Audio.html","kind":"enum","full_name":"Nec::Display::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio1","name":"Audio1","value":"1"},{"id":"Audio2","name":"Audio2","value":"2"},{"id":"Audio3","name":"Audio3","value":"3"},{"id":"Hdmi","name":"Hdmi","value":"4"},{"id":"Tv","name":"Tv","value":"6"},{"id":"DisplayPort1","name":"DisplayPort1","value":"7"},{"id":"DisplayPort2","name":"DisplayPort2","value":"8"},{"id":"Hdmi2","name":"Hdmi2","value":"10"},{"id":"Hdmi3","name":"Hdmi3","value":"11"},{"id":"MultiPicture","name":"MultiPicture","value":"13"},{"id":"ComputeModule","name":"ComputeModule","value":"14"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio1?-instance-method","name":"audio1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L86"},"def":{"name":"audio1?","visibility":"Public","body":"self == Audio1"}},{"html_id":"audio2?-instance-method","name":"audio2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L87"},"def":{"name":"audio2?","visibility":"Public","body":"self == Audio2"}},{"html_id":"audio3?-instance-method","name":"audio3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L88"},"def":{"name":"audio3?","visibility":"Public","body":"self == Audio3"}},{"html_id":"compute_module?-instance-method","name":"compute_module?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L96"},"def":{"name":"compute_module?","visibility":"Public","body":"self == ComputeModule"}},{"html_id":"display_port1?-instance-method","name":"display_port1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L91"},"def":{"name":"display_port1?","visibility":"Public","body":"self == DisplayPort1"}},{"html_id":"display_port2?-instance-method","name":"display_port2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L92"},"def":{"name":"display_port2?","visibility":"Public","body":"self == DisplayPort2"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L93"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L94"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L89"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"multi_picture?-instance-method","name":"multi_picture?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L95"},"def":{"name":"multi_picture?","visibility":"Public","body":"self == MultiPicture"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L90"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}}]},{"html_id":"drivers/Nec/Display/Command","path":"Nec/Display/Command.html","kind":"enum","full_name":"Nec::Display::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L246"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VideoInput","name":"VideoInput","value":"96"},{"id":"AudioInput","name":"AudioInput","value":"558"},{"id":"VolumeStatus","name":"VolumeStatus","value":"98"},{"id":"MuteStatus","name":"MuteStatus","value":"141"},{"id":"PowerOnDelay","name":"PowerOnDelay","value":"728"},{"id":"ContrastStatus","name":"ContrastStatus","value":"18"},{"id":"BrightnessStatus","name":"BrightnessStatus","value":"16"},{"id":"AutoSetup","name":"AutoSetup","value":"30"},{"id":"PowerQuery","name":"PowerQuery","value":"470"},{"id":"Save","name":"Save","value":"12"},{"id":"SetPower","name":"SetPower","value":"12714966"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio_input?-instance-method","name":"audio_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L248"},"def":{"name":"audio_input?","visibility":"Public","body":"self == AudioInput"}},{"html_id":"auto_setup?-instance-method","name":"auto_setup?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L254"},"def":{"name":"auto_setup?","visibility":"Public","body":"self == AutoSetup"}},{"html_id":"brightness_status?-instance-method","name":"brightness_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L253"},"def":{"name":"brightness_status?","visibility":"Public","body":"self == BrightnessStatus"}},{"html_id":"contrast_status?-instance-method","name":"contrast_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L252"},"def":{"name":"contrast_status?","visibility":"Public","body":"self == ContrastStatus"}},{"html_id":"mute_status?-instance-method","name":"mute_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L250"},"def":{"name":"mute_status?","visibility":"Public","body":"self == MuteStatus"}},{"html_id":"power_on_delay?-instance-method","name":"power_on_delay?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L251"},"def":{"name":"power_on_delay?","visibility":"Public","body":"self == PowerOnDelay"}},{"html_id":"power_query?-instance-method","name":"power_query?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L255"},"def":{"name":"power_query?","visibility":"Public","body":"self == PowerQuery"}},{"html_id":"save?-instance-method","name":"save?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L256"},"def":{"name":"save?","visibility":"Public","body":"self == Save"}},{"html_id":"set_power?-instance-method","name":"set_power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L257"},"def":{"name":"set_power?","visibility":"Public","body":"self == SetPower"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L259"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"case self\nwhen .save?\n length = 2\nwhen .set_power?\n length = 6\nelse\n length = 4\nend\n(value.to_s(16, upcase: true)).rjust(length, '0')\n"}},{"html_id":"video_input?-instance-method","name":"video_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L247"},"def":{"name":"video_input?","visibility":"Public","body":"self == VideoInput"}},{"html_id":"volume_status?-instance-method","name":"volume_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L249"},"def":{"name":"volume_status?","visibility":"Public","body":"self == VolumeStatus"}}]},{"html_id":"drivers/Nec/Display/Input","path":"Nec/Display/Input.html","kind":"enum","full_name":"Nec::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"1"},{"id":"Rgbhv","name":"Rgbhv","value":"2"},{"id":"Dvi","name":"Dvi","value":"3"},{"id":"HdmiSet","name":"HdmiSet","value":"4"},{"id":"Video1","name":"Video1","value":"5"},{"id":"Video2","name":"Video2","value":"6"},{"id":"Svideo","name":"Svideo","value":"7"},{"id":"Tuner","name":"Tuner","value":"9"},{"id":"Tv","name":"Tv","value":"10"},{"id":"Dvd1","name":"Dvd1","value":"12"},{"id":"Option","name":"Option","value":"13"},{"id":"Dvd2","name":"Dvd2","value":"14"},{"id":"DisplayPort","name":"DisplayPort","value":"15"},{"id":"Hdmi","name":"Hdmi","value":"17"},{"id":"Hdmi2","name":"Hdmi2","value":"18"},{"id":"Hdmi3","name":"Hdmi3","value":"130"},{"id":"Usb","name":"Usb","value":"135"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L23"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvd1?-instance-method","name":"dvd1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L20"},"def":{"name":"dvd1?","visibility":"Public","body":"self == Dvd1"}},{"html_id":"dvd2?-instance-method","name":"dvd2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L22"},"def":{"name":"dvd2?","visibility":"Public","body":"self == Dvd2"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L25"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L26"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L24"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_set?-instance-method","name":"hdmi_set?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L14"},"def":{"name":"hdmi_set?","visibility":"Public","body":"self == HdmiSet"}},{"html_id":"option?-instance-method","name":"option?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L21"},"def":{"name":"option?","visibility":"Public","body":"self == Option"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == Rgbhv"}},{"html_id":"svideo?-instance-method","name":"svideo?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L17"},"def":{"name":"svideo?","visibility":"Public","body":"self == Svideo"}},{"html_id":"tuner?-instance-method","name":"tuner?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L18"},"def":{"name":"tuner?","visibility":"Public","body":"self == Tuner"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L19"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L27"},"def":{"name":"usb?","visibility":"Public","body":"self == Usb"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"video1?-instance-method","name":"video1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L15"},"def":{"name":"video1?","visibility":"Public","body":"self == Video1"}},{"html_id":"video2?-instance-method","name":"video2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L16"},"def":{"name":"video2?","visibility":"Public","body":"self == Video2"}}]},{"html_id":"drivers/Nec/Display/MsgType","path":"Nec/Display/MsgType.html","kind":"enum","full_name":"Nec::Display::MsgType","name":"MsgType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L280"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"65_u8"},{"id":"CommandReply","name":"CommandReply","value":"66_u8"},{"id":"GetParameter","name":"GetParameter","value":"67_u8"},{"id":"GetParameterReply","name":"GetParameterReply","value":"68_u8"},{"id":"SetParameter","name":"SetParameter","value":"69_u8"},{"id":"SetParameterReply","name":"SetParameterReply","value":"70_u8"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"doc":"Types of messages sent to and from the LCD","summary":"

Types of messages sent to and from the LCD

","instance_methods":[{"html_id":"build(command:Nec::Display::Command,data:Int|Nil=nil)-instance-method","name":"build","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"args_string":"(command : Nec::Display::Command, data : Int | Nil = nil)","args_html":"(command : Nec::Display::Command, data : Int | Nil = nil)","location":{"filename":"src/nec/display.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L288"},"def":{"name":"build","args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"visibility":"Public","body":"command = command.to_s\nmessage = String.build do |str|\n str << \"0*0\"\n str.write_byte(self.value)\n message_length = command.size + 2\n if data\n message_length = message_length + 4\n end\n str << ((message_length.to_s(16, upcase: true)).rjust(2, '0'))\n str.write_byte(2)\n str << command\n if data\n str << ((data.to_s(16, upcase: true)).rjust(4, '0'))\n end\n str.write_byte(3)\nend\nString.build do |str|\n str.write_byte(1)\n str << message\n str.write_byte(message.each_byte.reduce do |a, b|\n a ^ b\n end)\n str.write_byte(DELIMITER)\nend\n"}},{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L281"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"command_reply?-instance-method","name":"command_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L282"},"def":{"name":"command_reply?","visibility":"Public","body":"self == CommandReply"}},{"html_id":"get_parameter?-instance-method","name":"get_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L283"},"def":{"name":"get_parameter?","visibility":"Public","body":"self == GetParameter"}},{"html_id":"get_parameter_reply?-instance-method","name":"get_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L284"},"def":{"name":"get_parameter_reply?","visibility":"Public","body":"self == GetParameterReply"}},{"html_id":"set_parameter?-instance-method","name":"set_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L285"},"def":{"name":"set_parameter?","visibility":"Public","body":"self == SetParameter"}},{"html_id":"set_parameter_reply?-instance-method","name":"set_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L286"},"def":{"name":"set_parameter_reply?","visibility":"Public","body":"self == SetParameterReply"}}]}]},{"html_id":"drivers/Nec/Projector","path":"Nec/Projector.html","kind":"class","full_name":"Nec::Projector","name":"Projector","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{mute_picture: Bytes[2, 16, 0, 0, 0, 18], unmute_picture: Bytes[2, 17, 0, 0, 0, 19], mute_audio_cmd: Bytes[2, 18, 0, 0, 0, 20], unmute_audio_cmd: Bytes[2, 19, 0, 0, 0, 21], mute_onscreen: Bytes[2, 20, 0, 0, 0, 22], unmute_onscreen: Bytes[2, 21, 0, 0, 0, 23], freeze_picture: Bytes[1, 152, 0, 0, 1, 1], unfreeze_picture: Bytes[1, 152, 0, 0, 1, 2], \"lamp?\": Bytes[0, 129, 0, 0, 0, 129], \"input?\": Bytes[0, 133, 0, 0, 1, 2], \"mute?\": Bytes[0, 133, 0, 0, 1, 3], \"error?\": Bytes[0, 136, 0, 0, 0, 136], \"model?\": Bytes[0, 133, 0, 0, 1, 4], lamp_info: Bytes[3, 138, 0, 0, 0, 141], filter_info: Bytes[3, 138, 0, 0, 0, 141], projector_info: Bytes[3, 138, 0, 0, 0, 141], background_black: Bytes[3, 177, 0, 0, 2, 11, 1], background_blue: Bytes[3, 177, 0, 0, 2, 11, 0], background_logo: Bytes[3, 177, 0, 0, 2, 11, 2]}","doc":"Command Listing\nSecond byte used to detect command type","summary":"

Command Listing Second byte used to detect command type

"},{"id":"ERROR_CODES","name":"ERROR_CODES","value":"[{1 => \"Lamp cover error\", 2 => \"Temperature error (Bimetal)\", 8 => \"Fan Error\", 16 => \"Fan Error\", 32 => \"Power Error\", 64 => \"Lamp Error\", 128 => \"Lamp has reached its end of life\"}, {1 => \"Lamp has been used beyond its limit\", 2 => \"Formatter error\", 4 => \"Lamp no.2 Error\"}, {2 => \"FPGA error\", 4 => \"Temperature error (Sensor)\", 8 => \"Lamp housing error\", 16 => \"Lamp data error\", 32 => \"Mirror cover error\", 64 => \"Lamp no.2 has reached its end of life\", 128 => \"Lamp no.2 has been used beyond its limit\"}, {1 => \"Lamp no.2 housing error\", 2 => \"Lamp no.2 data error\", 4 => \"High temperature due to dust pile-up\", 8 => \"A foreign object sensor error\"}]","doc":"Provide all the error info required","summary":"

Provide all the error info required

"},{"id":"INPUT_MAP","name":"INPUT_MAP","value":"{1 => {1 => Input::VGA, 2 => Input::Composite, 3 => Input::SVideo, 6 => Input::HDMI, 7 => Input::Viewer, 33 => Input::HDMI, 34 => Input::DisplayPort}, 2 => {1 => Input::RGBHV, 4 => Input::Component2, 6 => Input::HDMI2, 7 => Input::LAN, 33 => Input::HDMI2}, 3 => {4 => Input::Component}}","doc":"NEC has different values for the input status when compared to input selection","summary":"

NEC has different values for the input status when compared to input selection

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"background_black(**options)-instance-method","name":"background_black","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_black","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_black\"], **options, name: \"background_black\")"}},{"html_id":"background_blue(**options)-instance-method","name":"background_blue","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_blue","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_blue\"], **options, name: \"background_blue\")"}},{"html_id":"background_logo(**options)-instance-method","name":"background_logo","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_logo","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_logo\"], **options, name: \"background_logo\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L59"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:power] = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L196"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?(priority: 0)\n background_black(priority: 0)\n lamp_info(priority: 0)\nend"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"error?\"], **options, name: \"error?\")"}},{"html_id":"filter_info(**options)-instance-method","name":"filter_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"filter_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"filter_info\"], **options, name: \"filter_info\")"}},{"html_id":"freeze_picture(**options)-instance-method","name":"freeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"freeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"freeze_picture\"], **options, name: \"freeze_picture\")"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"input?\"], **options, name: \"input?\")"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp?\"], **options, name: \"lamp?\")"}},{"html_id":"lamp_info(**options)-instance-method","name":"lamp_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"lamp_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp_info\"], **options, name: \"lamp_info\")"}},{"html_id":"model?(**options)-instance-method","name":"model?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"model?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"model?\"], **options, name: \"model?\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/nec/np_series.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L128"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n if state\n mute_picture\n mute_onscreen\n else\n unmute_picture\n end\nend\nif layer.audio? || layer.audio_video?\n state ? mute_audio_cmd : unmute_audio_cmd\nend\n"}},{"html_id":"mute?(**options)-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute?\"], **options, name: \"mute?\")"}},{"html_id":"mute_audio_cmd(**options)-instance-method","name":"mute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_audio_cmd\"], **options, name: \"mute_audio_cmd\")"}},{"html_id":"mute_onscreen(**options)-instance-method","name":"mute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_onscreen\"], **options, name: \"mute_onscreen\")"}},{"html_id":"mute_picture(**options)-instance-method","name":"mute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_picture\"], **options, name: \"mute_picture\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nself[:error] = [] of String\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@power_target = nil\n@input_target = nil\n@volume_min = setting(Int32, :volume_min)\n@volume_max = setting(Int32, :volume_max)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/np_series.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L165"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n command = Bytes[2, 0, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 15.seconds, delay: 1.second)\nelse\n command = Bytes[2, 1, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 60.seconds, delay: 30.seconds, clear_queue: true, priority: 100)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L185"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(COMMAND[:\"lamp?\"], **options, name: \"power?\")).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"projector_info(**options)-instance-method","name":"projector_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"projector_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"projector_info\"], **options, name: \"projector_info\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/np_series.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L302"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(data, task)"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/np_series.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L159"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"command = Bytes[3, 177, 0, 0, 2, 192, input.value]\ndo_send(command, name: \"switch_audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/np_series.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L190"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ncommand = Bytes[2, 3, 0, 0, 2, 1, input.value]\ndo_send(command, name: \"input\")\n"}},{"html_id":"unfreeze_picture(**options)-instance-method","name":"unfreeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unfreeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unfreeze_picture\"], **options, name: \"unfreeze_picture\")"}},{"html_id":"unmute_audio_cmd(**options)-instance-method","name":"unmute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_audio_cmd\"], **options, name: \"unmute_audio_cmd\")"}},{"html_id":"unmute_onscreen(**options)-instance-method","name":"unmute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_onscreen\"], **options, name: \"unmute_onscreen\")"}},{"html_id":"unmute_picture(**options)-instance-method","name":"unmute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_picture\"], **options, name: \"unmute_picture\")"}},{"html_id":"volume(vol:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"args_string":"(vol : Int32 | Float64)","args_html":"(vol : Int32 | Float64)","location":{"filename":"src/nec/np_series.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L103"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ncommand = Bytes[3, 16, 0, 0, 5, 5, 0, 0, vol, 0]\ndo_send(command)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L122"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L117"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Projector/Audio","path":"Nec/Projector/Audio.html","kind":"enum","full_name":"Nec::Projector::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"VGA","name":"VGA","value":"1"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L155"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L156"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Nec/Projector/Input","path":"Nec/Projector/Input.html","kind":"enum","full_name":"Nec::Projector::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"1"},{"id":"RGBHV","name":"RGBHV","value":"2"},{"id":"Composite","name":"Composite","value":"6"},{"id":"SVideo","name":"SVideo","value":"11"},{"id":"Component","name":"Component","value":"16"},{"id":"Component2","name":"Component2","value":"17"},{"id":"HDMI","name":"HDMI","value":"26"},{"id":"HDMI2","name":"HDMI2","value":"27"},{"id":"DisplayPort","name":"DisplayPort","value":"166"},{"id":"LAN","name":"LAN","value":"32"},{"id":"Viewer","name":"Viewer","value":"31"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"component2?-instance-method","name":"component2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L16"},"def":{"name":"component2?","visibility":"Public","body":"self == Component2"}},{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L15"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L13"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L19"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L17"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"lan?-instance-method","name":"lan?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L20"},"def":{"name":"lan?","visibility":"Public","body":"self == LAN"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == RGBHV"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L14"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}},{"html_id":"viewer?-instance-method","name":"viewer?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L21"},"def":{"name":"viewer?","visibility":"Public","body":"self == Viewer"}}]},{"html_id":"drivers/Nec/Projector/Response","path":"Nec/Projector/Response.html","kind":"enum","full_name":"Nec::Projector::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L219"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"8321_u16"},{"id":"InputOrMuteQuery","name":"InputOrMuteQuery","value":"8325_u16"},{"id":"Error","name":"Error","value":"8328_u16"},{"id":"InputSwitch","name":"InputSwitch","value":"8707_u16"},{"id":"Lamp","name":"Lamp","value":"8704_u16"},{"id":"Lamp2","name":"Lamp2","value":"8705_u16"},{"id":"PictureMuteOn","name":"PictureMuteOn","value":"8720_u16"},{"id":"PictureMuteOff","name":"PictureMuteOff","value":"8721_u16"},{"id":"AudioMuteOn","name":"AudioMuteOn","value":"8722_u16"},{"id":"AudioMuteOff","name":"AudioMuteOff","value":"8723_u16"},{"id":"OnscreenMuteOn","name":"OnscreenMuteOn","value":"8724_u16"},{"id":"OnscreenMuteOff","name":"OnscreenMuteOff","value":"8725_u16"},{"id":"VolumeOrImageAdjust","name":"VolumeOrImageAdjust","value":"8976_u16"},{"id":"Info","name":"Info","value":"9098_u16"},{"id":"AudioSwitch","name":"AudioSwitch","value":"9137_u16"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"doc":"TODO: add responses for freeze commands if we need to process them","summary":"

TODO add responses for freeze commands if we need to process them

","class_methods":[{"html_id":"from_bytes?(response)-class-method","name":"from_bytes?","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/nec/np_series.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L236"},"def":{"name":"from_bytes?","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"value = (IO::Memory.new(response[0..1])).read_bytes(UInt16, IO::ByteFormat::BigEndian)\nResponse.from_value?(value)\n"}}],"instance_methods":[{"html_id":"audio_mute_off?-instance-method","name":"audio_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L229"},"def":{"name":"audio_mute_off?","visibility":"Public","body":"self == AudioMuteOff"}},{"html_id":"audio_mute_on?-instance-method","name":"audio_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L228"},"def":{"name":"audio_mute_on?","visibility":"Public","body":"self == AudioMuteOn"}},{"html_id":"audio_switch?-instance-method","name":"audio_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L234"},"def":{"name":"audio_switch?","visibility":"Public","body":"self == AudioSwitch"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L222"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L233"},"def":{"name":"info?","visibility":"Public","body":"self == Info"}},{"html_id":"input_or_mute_query?-instance-method","name":"input_or_mute_query?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L221"},"def":{"name":"input_or_mute_query?","visibility":"Public","body":"self == InputOrMuteQuery"}},{"html_id":"input_switch?-instance-method","name":"input_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L223"},"def":{"name":"input_switch?","visibility":"Public","body":"self == InputSwitch"}},{"html_id":"lamp2?-instance-method","name":"lamp2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L225"},"def":{"name":"lamp2?","visibility":"Public","body":"self == Lamp2"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L224"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"onscreen_mute_off?-instance-method","name":"onscreen_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L231"},"def":{"name":"onscreen_mute_off?","visibility":"Public","body":"self == OnscreenMuteOff"}},{"html_id":"onscreen_mute_on?-instance-method","name":"onscreen_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L230"},"def":{"name":"onscreen_mute_on?","visibility":"Public","body":"self == OnscreenMuteOn"}},{"html_id":"picture_mute_off?-instance-method","name":"picture_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L227"},"def":{"name":"picture_mute_off?","visibility":"Public","body":"self == PictureMuteOff"}},{"html_id":"picture_mute_on?-instance-method","name":"picture_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L226"},"def":{"name":"picture_mute_on?","visibility":"Public","body":"self == PictureMuteOn"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L220"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"volume_or_image_adjust?-instance-method","name":"volume_or_image_adjust?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L232"},"def":{"name":"volume_or_image_adjust?","visibility":"Public","body":"self == VolumeOrImageAdjust"}}]}]}]},{"html_id":"drivers/OfficeRnd","path":"OfficeRnd.html","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd","abstract":false,"locations":[{"filename":"src/office_rnd/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L4"},{"filename":"src/office_rnd/office_rnd_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"OfficeRnD Data Models","summary":"

OfficeRnD Data Models

","types":[{"html_id":"drivers/OfficeRnd/Booking","path":"OfficeRnd/Booking.html","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L88"},"def":{"name":"new","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(resource_id, booking_start, booking_end, summary, team_id, member_id, description, tentative, free)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:BookingTime-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L70"},"def":{"name":"booking_end","return_type":"BookingTime","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:BookingTime-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L68"},"def":{"name":"booking_start","return_type":"BookingTime","visibility":"Public","body":"@booking_start"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L82"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"extras:JSON::Any-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L86"},"def":{"name":"extras","return_type":"JSON::Any","visibility":"Public","body":"@extras"}},{"html_id":"fees:Array(OfficeRnd::BookingFee)-instance-method","name":"fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L85"},"def":{"name":"fees","return_type":"Array(::OfficeRnd::BookingFee)","visibility":"Public","body":"@fees"}},{"html_id":"free:Bool|Nil-instance-method","name":"free","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L84"},"def":{"name":"free","return_type":"Bool | ::Nil","visibility":"Public","body":"@free"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L81"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"overlaps?(time_span:Range(Time,Time))-instance-method","name":"overlaps?","abstract":false,"args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"args_string":"(time_span : Range(Time, Time))","args_html":"(time_span : Range(Time, Time))","location":{"filename":"src/office_rnd/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L106"},"def":{"name":"overlaps?","args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"visibility":"Public","body":"starting, ending = booking_start.time, booking_end.time\nwithin = (time_span.includes?(starting)) || (time_span.includes?(ending))\ncovers = starting < time_span.begin && ending > time_span.end\nwithin || covers\n"}},{"html_id":"plan_id:String-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L77"},"def":{"name":"plan_id","return_type":"String","visibility":"Public","body":"@plan_id"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L75"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L72"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"summary:String|Nil-instance-method","name":"summary","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L73"},"def":{"name":"summary","return_type":"String | ::Nil","visibility":"Public","body":"@summary"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L79"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"tentative:Bool|Nil-instance-method","name":"tentative","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L83"},"def":{"name":"tentative","return_type":"Bool | ::Nil","visibility":"Public","body":"@tentative"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L71"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/BookingFee","path":"OfficeRnd/BookingFee.html","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"credits:Array(Credit)-instance-method","name":"credits","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L63"},"def":{"name":"credits","return_type":"Array(Credit)","visibility":"Public","body":"@credits"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L59"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"extra_fees:Array(JSON::Any|Nil)-instance-method","name":"extra_fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L62"},"def":{"name":"extra_fees","return_type":"Array(JSON::Any | ::Nil)","visibility":"Public","body":"@extra_fees"}},{"html_id":"fee:Fee|Nil-instance-method","name":"fee","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L60"},"def":{"name":"fee","return_type":"Fee | ::Nil","visibility":"Public","body":"@fee"}}]},{"html_id":"drivers/OfficeRnd/BookingTime","path":"OfficeRnd/BookingTime.html","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/office_rnd/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L35"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L33"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}}]},{"html_id":"drivers/OfficeRnd/Credit","path":"OfficeRnd/Credit.html","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L115"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L116"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"credit:String-instance-method","name":"credit","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L117"},"def":{"name":"credit","return_type":"String","visibility":"Public","body":"@credit"}}]},{"html_id":"drivers/OfficeRnd/Data","path":"OfficeRnd/Data.html","kind":"struct","full_name":"OfficeRnd::Data","name":"Data","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/OfficeRnd/Booking","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking"},{"html_id":"drivers/OfficeRnd/BookingFee","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee"},{"html_id":"drivers/OfficeRnd/BookingTime","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime"},{"html_id":"drivers/OfficeRnd/Credit","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit"},{"html_id":"drivers/OfficeRnd/Fee","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee"},{"html_id":"drivers/OfficeRnd/Floor","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor"},{"html_id":"drivers/OfficeRnd/Office","kind":"struct","full_name":"OfficeRnd::Office","name":"Office"},{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy"},{"html_id":"drivers/OfficeRnd/Rate/Extra","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra"},{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},{"html_id":"drivers/OfficeRnd/TokenResponse","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/OfficeRnd/Fee","path":"OfficeRnd/Fee.html","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bill_in_advance:Bool|Nil-instance-method","name":"bill_in_advance","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L53"},"def":{"name":"bill_in_advance","return_type":"Bool | ::Nil","visibility":"Public","body":"@bill_in_advance"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L42"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"is_personal:Bool|Nil-instance-method","name":"is_personal","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L55"},"def":{"name":"is_personal","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_personal"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L48"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L39"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L46"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"plan_id:String|Nil-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L50"},"def":{"name":"plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@plan_id"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L40"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}},{"html_id":"quantity:Int32-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L41"},"def":{"name":"quantity","return_type":"Int32","visibility":"Public","body":"@quantity"}},{"html_id":"refundable:Bool|Nil-instance-method","name":"refundable","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L51"},"def":{"name":"refundable","return_type":"Bool | ::Nil","visibility":"Public","body":"@refundable"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L44"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}}]},{"html_id":"drivers/OfficeRnd/Floor","path":"OfficeRnd/Floor.html","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L189"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area:Int32|Nil-instance-method","name":"area","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L196"},"def":{"name":"area","return_type":"Int32 | ::Nil","visibility":"Public","body":"@area"}},{"html_id":"floor:String|Nil-instance-method","name":"floor","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L192"},"def":{"name":"floor","return_type":"String | ::Nil","visibility":"Public","body":"@floor"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L191"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L198"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L193"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L195"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"target_revenue:Int32|Nil-instance-method","name":"target_revenue","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L200"},"def":{"name":"target_revenue","return_type":"Int32 | ::Nil","visibility":"Public","body":"@target_revenue"}}]},{"html_id":"drivers/OfficeRnd/Office","path":"OfficeRnd/Office.html","kind":"struct","full_name":"OfficeRnd::Office","name":"Office","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L24"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"city:String|Nil-instance-method","name":"city","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L23"},"def":{"name":"city","return_type":"String | ::Nil","visibility":"Public","body":"@city"}},{"html_id":"country:String|Nil-instance-method","name":"country","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L21"},"def":{"name":"country","return_type":"String | ::Nil","visibility":"Public","body":"@country"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image:String|Nil-instance-method","name":"image","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L26"},"def":{"name":"image","return_type":"String | ::Nil","visibility":"Public","body":"@image"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L28"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"state:String|Nil-instance-method","name":"state","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L22"},"def":{"name":"state","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L25"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/OfficeRndAPI","path":"OfficeRnd/OfficeRndAPI.html","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking(booking_id:String)-instance-method","name":"booking","doc":"Get a booking\n","summary":"

Get a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L130"},"def":{"name":"booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/bookings/#{booking_id}\", Booking)"}},{"html_id":"bookings(office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil)-instance-method","name":"bookings","doc":"Get bookings\n","summary":"

Get bookings

","abstract":false,"args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","args_html":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L136"},"def":{"name":"bookings","args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif member_id\n params[\"member\"] = member_id\nend\nif team_id\n params[\"team\"] = team_id\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/bookings\" : \"/bookings?#{query_string}\"\nget_request(path, Array(Booking))\n"}},{"html_id":"create_booking(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-instance-method","name":"create_booking","doc":"Create a booking\n","summary":"

Create a booking

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L164"},"def":{"name":"create_booking","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"create_bookings([Booking.new(resource_id: resource_id, booking_start: booking_start, booking_end: booking_end, summary: summary, team_id: team_id, member_id: member_id, description: description, tentative: tentative, free: free)])"}},{"html_id":"create_bookings(bookings:Array(Booking))-instance-method","name":"create_bookings","doc":"Make a booking\n","summary":"

Make a booking

","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L158"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"post_request(\"/bookings\", body: bookings.to_json)"}},{"html_id":"create_bookings(bookings:Array(BookingArgument))-instance-method","name":"create_bookings","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"args_string":"(bookings : Array(BookingArgument))","args_html":"(bookings : Array(BookingArgument))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L200"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"visibility":"Public","body":"create_bookings(bookings.map do |booking|\n Booking.new(**booking)\nend)"}},{"html_id":"delete_booking(booking_id:String)-instance-method","name":"delete_booking","doc":"Delete a booking\n","summary":"

Delete a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L152"},"def":{"name":"delete_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"!!(delete_request(\"/bookings/#{booking_id}\"))"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L38"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(floor_id:String)-instance-method","name":"floor","doc":"Get a floor\n","summary":"

Get a floor

","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L89"},"def":{"name":"floor","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"path = \"/floors/#{floor_id}\"\nget_request(path, Floor)\n"}},{"html_id":"floors(office_id:String|Nil,name:String|Nil)-instance-method","name":"floors","doc":"Get floors\n","summary":"

Get floors

","abstract":false,"args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil, name : String | Nil)","args_html":"(office_id : String | Nil, name : String | Nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L96"},"def":{"name":"floors","args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif name\n params[\"name\"] = name\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/floors\" : \"/floors?#{query_string}\"\nget_request(path, Array(Floor))\n"}},{"html_id":"get_header-instance-method","name":"get_header","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L77"},"def":{"name":"get_header","visibility":"Public","body":"headers = {\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L46"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nauth_route = @test_auth ? \"http://localhost:17839/oauth/token\" : \"https://identity.officernd.com/oauth/token\"\nparams = HTTP::Params.encode({\"client_id\" => @client_id, \"client_secret\" => @client_secret, \"grant_type\" => \"client_credentials\", \"scope\" => @scopes.join(' ')})\nheaders = HTTP::Headers {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"}\nresponse = HTTP::Client.post(url: auth_route, headers: headers, body: params)\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body)\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"office(name:String)-instance-method","name":"office","doc":"Retrieve office\n","summary":"

Retrieve office

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L216"},"def":{"name":"office","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"path = \"/offices/#{name}\"\nget_request(path, Array(Office))\n"}},{"html_id":"offices-instance-method","name":"offices","doc":"List offices\n","summary":"

List offices

","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L209"},"def":{"name":"offices","visibility":"Public","body":"path = \"/offices\"\nget_request(path, Array(Office))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\n@test_auth = setting(Bool, :test_auth)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@client_id = setting(String, :client_id)\n@client_secret = setting(String, :client_secret)\n@scopes = setting(Array(String), :scopes)\n"}},{"html_id":"resource_bookings(resource_id:String,range_start:Time=Time.utc-5.minutes,range_end:Time=Time.utc+24.hours,office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil):Array(Booking)-instance-method","name":"resource_bookings","doc":"Get bookings for a resource for a given time span\n","summary":"

Get bookings for a resource for a given time span

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","args_html":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L110"},"def":{"name":"resource_bookings","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"return_type":"Array(Booking)","visibility":"Public","body":"time_span = (range_start..range_end)\nbookings(office_id: office_id, member_id: member_id, team_id: team_id).select! do |booking|\n (booking.resource_id == resource_id) && (booking.overlaps?(time_span))\nend\n"}},{"html_id":"resources(type:Resource::Type|String|Nil=nil,name:String|Nil=nil,office_id:String|Nil=nil,available_from:Time|Nil=nil,available_to:Time|Nil=nil)-instance-method","name":"resources","doc":"Get available rooms (resources) by\n- type\n- date range (available_from, available_to)\n- office (office_id)\n- resource name (name)","summary":"

Get available rooms (resources) by - type - date range (available_from, available_to) - office (office_id) - resource name (name)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"args_string":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","args_html":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L229"},"def":{"name":"resources","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"visibility":"Public","body":"if type.is_a?(String)\n type = Resource::Type.parse(type)\nend\nparams = HTTP::Params.new\nif type\n params[\"type\"] = type.to_s\nend\nif name\n params[\"name\"] = name\nend\nif office_id\n params[\"office\"] = office_id\nend\nif available_from\n params[\"availableFrom\"] = available_from.to_s\nend\nif available_to\n params[\"availableTo\"] = available_to.to_s\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/resources\" : \"/resources?#{query_string}\"\nget_request(path, Array(Resource))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L42"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}}],"types":[{"html_id":"drivers/OfficeRnd/OfficeRndAPI/BookingArgument","path":"OfficeRnd/OfficeRndAPI/BookingArgument.html","kind":"alias","full_name":"OfficeRnd::OfficeRndAPI::BookingArgument","name":"BookingArgument","abstract":false,"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L188"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(resource_id: String, booking_start: Time, booking_end: Time, summary: String | Nil, team_id: String | Nil, member_id: String | Nil, description: String | Nil, tentative: Bool | Nil, free: Bool | Nil)","aliased_html":"{resource_id: String, booking_start: Time, booking_end: Time, summary: String?, team_id: String?, member_id: String?, description: String?, tentative: Bool?, free: Bool?}","const":false,"namespace":{"html_id":"drivers/OfficeRnd/OfficeRndAPI","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI"}}]},{"html_id":"drivers/OfficeRnd/Rate","path":"OfficeRnd/Rate.html","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L120"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cancellation_policy:CancellationPolicy-instance-method","name":"cancellation_policy","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L126"},"def":{"name":"cancellation_policy","return_type":"CancellationPolicy","visibility":"Public","body":"@cancellation_policy"}},{"html_id":"extras:Array(Extra)-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L127"},"def":{"name":"extras","return_type":"Array(Extra)","visibility":"Public","body":"@extras"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L122"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"max_duration:Int32-instance-method","name":"max_duration","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L129"},"def":{"name":"max_duration","return_type":"Int32","visibility":"Public","body":"@max_duration"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L123"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L124"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}],"types":[{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","path":"OfficeRnd/Rate/CancellationPolicy.html","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L131"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"minimum_period:Int32-instance-method","name":"minimum_period","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period","return_type":"Int32","visibility":"Public","body":"@minimum_period"}},{"html_id":"minimum_period=(minimum_period:Int32)-instance-method","name":"minimum_period=","abstract":false,"args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"args_string":"(minimum_period : Int32)","args_html":"(minimum_period : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period=","args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"visibility":"Public","body":"@minimum_period = minimum_period"}}]},{"html_id":"drivers/OfficeRnd/Rate/Extra","path":"OfficeRnd/Rate/Extra.html","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L138"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L139"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L140"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}]}]},{"html_id":"drivers/OfficeRnd/Resource","path":"OfficeRnd/Resource.html","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAPPING","name":"MAPPING","value":"{Type::MeetingRoom => \"meeting_room\", Type::PrivateOffices => \"team_room\", Type::PrivateOfficeDesk => \"desk_tr\", Type::DedicatedDesks => \"desk\", Type::HotDesks => \"hotdesk\"}"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L144"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L151"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L145"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L149"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"rate_id:String|Nil-instance-method","name":"rate_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L147"},"def":{"name":"rate_id","return_type":"String | ::Nil","visibility":"Public","body":"@rate_id"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L152"},"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}}],"types":[{"html_id":"drivers/OfficeRnd/Resource/Type","path":"OfficeRnd/Resource/Type.html","kind":"enum","full_name":"OfficeRnd::Resource::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L162"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MeetingRoom","name":"MeetingRoom","value":"0"},{"id":"PrivateOffices","name":"PrivateOffices","value":"1"},{"id":"PrivateOfficeDesk","name":"PrivateOfficeDesk","value":"2"},{"id":"DedicatedDesks","name":"DedicatedDesks","value":"3"},{"id":"HotDesks","name":"HotDesks","value":"4"}],"namespace":{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},"class_methods":[{"html_id":"parse(type:String)-class-method","name":"parse","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L177"},"def":{"name":"parse","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"parsed = Resource::MAPPING.key_for?(type)\nif parsed\nelse\n raise(ArgumentError.new(\"Unrecognised Resource::Type '#{type}'\"))\nend\nparsed\n"}},{"html_id":"valid?(type:String)-class-method","name":"valid?","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L183"},"def":{"name":"valid?","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"!!(Resource::MAPPING.key_for?(type))"}}],"instance_methods":[{"html_id":"dedicated_desks?-instance-method","name":"dedicated_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L166"},"def":{"name":"dedicated_desks?","visibility":"Public","body":"self == DedicatedDesks"}},{"html_id":"hot_desks?-instance-method","name":"hot_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L167"},"def":{"name":"hot_desks?","visibility":"Public","body":"self == HotDesks"}},{"html_id":"meeting_room?-instance-method","name":"meeting_room?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L163"},"def":{"name":"meeting_room?","visibility":"Public","body":"self == MeetingRoom"}},{"html_id":"private_office_desk?-instance-method","name":"private_office_desk?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L165"},"def":{"name":"private_office_desk?","visibility":"Public","body":"self == PrivateOfficeDesk"}},{"html_id":"private_offices?-instance-method","name":"private_offices?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L164"},"def":{"name":"private_offices?","visibility":"Public","body":"self == PrivateOffices"}},{"html_id":"to_json(json:JSON::Builder)-instance-method","name":"to_json","doc":"Serializes this enum member by name.\n\nFor non-flags enums, the serialization is a JSON string. The value is the\nmember name (see `#to_s`) transformed with `String#underscore`.\n\n```\nenum Stages\n INITIAL\n SECOND_STAGE\nend\n\nStages::INITIAL.to_json # => %(\"initial\")\nStages::SECOND_STAGE.to_json # => %(\"second_stage\")\n```\n\nFor flags enums, the serialization is a JSON array including every flagged\nmember individually serialized in the same way as a member of a non-flags enum.\n`None` is serialized as an empty array, `All` as an array containing\nall members.\n\n```\n@[Flags]\nenum Sides\n LEFT\n RIGHT\nend\n\nSides::LEFT.to_json # => %([\"left\"])\n(Sides::LEFT | Sides::RIGHT).to_json # => %([\"left\",\"right\"])\nSides::All.to_json # => %([\"left\",\"right\"])\nSides::None.to_json # => %([])\n```\n\n`ValueConverter.to_json` offers a different serialization strategy based on the\nmember value.","summary":"

Serializes this enum member by name.

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(json : JSON::Builder)","args_html":"(json : JSON::Builder)","location":{"filename":"src/office_rnd/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L173"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(self.to_s)"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L169"},"def":{"name":"to_s","visibility":"Public","body":"Resource::MAPPING[self]"}}]}]},{"html_id":"drivers/OfficeRnd/TokenResponse","path":"OfficeRnd/TokenResponse.html","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L11"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L11"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"scope:String-instance-method","name":"scope","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L14"},"def":{"name":"scope","return_type":"String","visibility":"Public","body":"@scope"}},{"html_id":"scope=(scope:String)-instance-method","name":"scope=","abstract":false,"args":[{"name":"scope","external_name":"scope","restriction":"String"}],"args_string":"(scope : String)","args_html":"(scope : String)","location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L14"},"def":{"name":"scope=","args":[{"name":"scope","external_name":"scope","restriction":"String"}],"visibility":"Public","body":"@scope = scope"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L12"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L12"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]}]},{"html_id":"drivers/OpenAI","path":"OpenAI.html","kind":"module","full_name":"OpenAI","name":"OpenAI","abstract":false,"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L3"},{"filename":"src/open_ai/models/edit_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L4"},{"filename":"src/open_ai/models/model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L3"},{"filename":"src/open_ai/models/text_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/OpenAI/ChatCompletion","path":"OpenAI/ChatCompletion.html","kind":"struct","full_name":"OpenAI::ChatCompletion","name":"ChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(MessageChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L95"},"def":{"name":"choices","return_type":"Array(MessageChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L93"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L89"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L90"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L96"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/CreateChatCompletion","path":"OpenAI/CreateChatCompletion.html","kind":"class","full_name":"OpenAI::CreateChatCompletion","name":"CreateChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/chat/completions","summary":"

POST https://api.openai.com/v1/chat/completions

","constructors":[{"html_id":"new(model:String,messages:Array(OpenAI::Message))-class-method","name":"new","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"args_string":"(model : String, messages : Array(OpenAI::Message))","args_html":"(model : String, messages : Array(OpenAI::Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L30"},"def":{"name":"new","args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(model, messages)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"messages:Array(Message)-instance-method","name":"messages","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages","return_type":"Array(Message)","visibility":"Public","body":"@messages"}},{"html_id":"messages=(messages:Array(Message))-instance-method","name":"messages=","abstract":false,"args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"args_string":"(messages : Array(Message))","args_html":"(messages : Array(Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages=","args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"visibility":"Public","body":"@messages = messages"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/CreateEditCompletion","path":"OpenAI/CreateEditCompletion.html","kind":"class","full_name":"OpenAI::CreateEditCompletion","name":"CreateEditCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/edit_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/edits","summary":"

POST https://api.openai.com/v1/edits

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"input:String-instance-method","name":"input","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input","return_type":"String","visibility":"Public","body":"@input"}},{"html_id":"input=(input:String)-instance-method","name":"input=","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input=","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"@input = input"}},{"html_id":"instruction:String-instance-method","name":"instruction","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction","return_type":"String","visibility":"Public","body":"@instruction"}},{"html_id":"instruction=(instruction:String)-instance-method","name":"instruction=","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"args_string":"(instruction : String)","args_html":"(instruction : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction=","args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"visibility":"Public","body":"@instruction = instruction"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}}]},{"html_id":"drivers/OpenAI/CreateTextCompletion","path":"OpenAI/CreateTextCompletion.html","kind":"class","full_name":"OpenAI::CreateTextCompletion","name":"CreateTextCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/completions","summary":"

POST https://api.openai.com/v1/completions

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"best_of:Int32-instance-method","name":"best_of","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of","return_type":"Int32","visibility":"Public","body":"@best_of"}},{"html_id":"best_of=(best_of:Int32)-instance-method","name":"best_of=","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"args_string":"(best_of : Int32)","args_html":"(best_of : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of=","args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"visibility":"Public","body":"@best_of = best_of"}},{"html_id":"echo:Bool-instance-method","name":"echo","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo","return_type":"Bool","visibility":"Public","body":"@echo"}},{"html_id":"echo=(echo:Bool)-instance-method","name":"echo=","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"args_string":"(echo : Bool)","args_html":"(echo : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo=","args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"visibility":"Public","body":"@echo = echo"}},{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"logprobs:Int32|Nil-instance-method","name":"logprobs","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs","return_type":"Int32 | ::Nil","visibility":"Public","body":"@logprobs"}},{"html_id":"logprobs=(logprobs:Int32|Nil)-instance-method","name":"logprobs=","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"args_string":"(logprobs : Int32 | Nil)","args_html":"(logprobs : Int32 | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs=","args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@logprobs = logprobs"}},{"html_id":"max_tokens:Int32-instance-method","name":"max_tokens","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens","return_type":"Int32","visibility":"Public","body":"@max_tokens"}},{"html_id":"max_tokens=(max_tokens:Int32)-instance-method","name":"max_tokens=","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"args_string":"(max_tokens : Int32)","args_html":"(max_tokens : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens=","args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"visibility":"Public","body":"@max_tokens = max_tokens"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"prompt:String|Array(String)|Nil-instance-method","name":"prompt","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"prompt=(prompt:String|Array(String)|Nil)-instance-method","name":"prompt=","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"args_string":"(prompt : String | Array(String) | Nil)","args_html":"(prompt : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt=","args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@prompt = prompt"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"suffix:String|Nil-instance-method","name":"suffix","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix","return_type":"String | ::Nil","visibility":"Public","body":"@suffix"}},{"html_id":"suffix=(suffix:String|Nil)-instance-method","name":"suffix=","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"args_string":"(suffix : String | Nil)","args_html":"(suffix : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix=","args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"visibility":"Public","body":"@suffix = suffix"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/GPT","path":"OpenAI/GPT.html","kind":"class","full_name":"OpenAI::GPT","name":"GPT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/gpt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat(model:String,message:Message|Array(Message))-instance-method","name":"chat","doc":"creates a completion for the chat message","summary":"

creates a completion for the chat message

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"args_string":"(model : String, message : Message | Array(Message))","args_html":"(model : String, message : Message | Array(Message))","location":{"filename":"src/open_ai/gpt.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L78"},"def":{"name":"chat","args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"visibility":"Public","body":"messages = message.is_a?(Array) ? message : [message]\nchat = CreateChatCompletion.new(model, messages)\nresponse = check(post(\"/v1/chat/completions\", body: chat.to_json))\nchat = ChatCompletion.from_json(response.body)\nupdate_token(chat.usage)\nchat.choices\n"}},{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L37"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"model(id:String)-instance-method","name":"model","doc":"returns the details of the provided model id","summary":"

returns the details of the provided model id

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/open_ai/gpt.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L72"},"def":{"name":"model","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = check(get(\"/v1/models/#{id}\"))\nModel.from_json(response.body)\n"}},{"html_id":"models-instance-method","name":"models","doc":"returns the available models for the current key","summary":"

returns the available models for the current key

","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L66"},"def":{"name":"models","visibility":"Public","body":"response = check(get(\"/v1/models\"))\n(List(Model).from_json(response.body)).data\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"openai_key = setting(String, :openai_key)\nopenai_org = setting?(String, :openai_org)\ntransport.before_request do |request|\n logger.debug do\n \"requesting #{request.method} #{request.path}?#{request.query}\\n#{request.headers}\\n#{request.body}\"\n end\n request.headers[\"Authorization\"] = \"Bearer #{openai_key}\"\n if openai_org\n request.headers[\"OpenAI-Organization\"] = openai_org\n end\n request.headers[\"Content-Type\"] = \"application/json\"\nend\nif usage = setting?(Usage, :token_usage)\n @total_tokens = usage.total_tokens\n @prompt_tokens = usage.prompt_tokens\n @completion_tokens = usage.completion_tokens\nend\n"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L36"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L35"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/List","path":"OpenAI/List.html","kind":"struct","full_name":"OpenAI::List(Type)","name":"List","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Type)-instance-method","name":"data","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L8"},"def":{"name":"data","return_type":"Array(Type)","visibility":"Public","body":"@data"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L7"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}}]},{"html_id":"drivers/OpenAI/Message","path":"OpenAI/Message.html","kind":"struct","full_name":"OpenAI::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"Typically, a conversation is formatted with a system message first,\nfollowed by alternating user and assistant messages.","summary":"

Typically, a conversation is formatted with a system message first, followed by alternating user and assistant messages.

","constructors":[{"html_id":"new(role:Role,content:String)-class-method","name":"new","abstract":false,"args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"args_string":"(role : Role, content : String)","args_html":"(role : Role, content : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L19"},"def":{"name":"new","args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(role, content)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L23"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"role:Role-instance-method","name":"role","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L22"},"def":{"name":"role","return_type":"Role","visibility":"Public","body":"@role"}}]},{"html_id":"drivers/OpenAI/MessageChoice","path":"OpenAI/MessageChoice.html","kind":"struct","full_name":"OpenAI::MessageChoice","name":"MessageChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L78"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L79"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L83"},"def":{"name":"finish_reason","return_type":"String","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L81"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"message:Message-instance-method","name":"message","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L82"},"def":{"name":"message","return_type":"Message","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/OpenAI/Model","path":"OpenAI/Model.html","kind":"struct","full_name":"OpenAI::Model","name":"Model","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"GET https://api.openai.com/v1/models","summary":"

GET https://api.openai.com/v1/models

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L27"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L28"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"owned_by:String-instance-method","name":"owned_by","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L29"},"def":{"name":"owned_by","return_type":"String","visibility":"Public","body":"@owned_by"}}]},{"html_id":"drivers/OpenAI/Role","path":"OpenAI/Role.html","kind":"enum","full_name":"OpenAI::Role","name":"Role","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"User","name":"User","value":"0","doc":"Can be generated by the end users of an application, or set by a developer as an instruction.","summary":"

Can be generated by the end users of an application, or set by a developer as an instruction.

"},{"id":"System","name":"System","value":"1","doc":"The system message helps set the behavior of the assistant.\nGPT 3 does not always pay strong attention to system messages","summary":"

The system message helps set the behavior of the assistant.

"},{"id":"Assistant","name":"Assistant","value":"2","doc":"The assistant messages help store prior responses. They can also be written by a developer to help give examples of desired behavior.","summary":"

The assistant messages help store prior responses.

"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"instance_methods":[{"html_id":"assistant?-instance-method","name":"assistant?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L11"},"def":{"name":"assistant?","visibility":"Public","body":"self == Assistant"}},{"html_id":"system?-instance-method","name":"system?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L9"},"def":{"name":"system?","visibility":"Public","body":"self == System"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L6"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/OpenAI/TextChoice","path":"OpenAI/TextChoice.html","kind":"struct","full_name":"OpenAI::TextChoice","name":"TextChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String|Nil-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L78"},"def":{"name":"finish_reason","return_type":"String | ::Nil","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L77"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L76"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}}]},{"html_id":"drivers/OpenAI/TextCompletion","path":"OpenAI/TextCompletion.html","kind":"struct","full_name":"OpenAI::TextCompletion","name":"TextCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(TextChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L91"},"def":{"name":"choices","return_type":"Array(TextChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L89"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L84"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L85"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L86"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L92"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/Usage","path":"OpenAI/Usage.html","kind":"struct","full_name":"OpenAI::Usage","name":"Usage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(total_tokens:Int64,prompt_tokens:Int64,completion_tokens:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"args_string":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","args_html":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","location":{"filename":"src/open_ai/models/model.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L14"},"def":{"name":"new","args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(total_tokens, prompt_tokens, completion_tokens)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L19"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L18"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L17"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/VoiceControlInterface","path":"OpenAI/VoiceControlInterface.html","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROMPT","name":"PROMPT","value":"OpenAI::Message.new(:user, \"\\n\")"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"custom_prompts:Array(OpenAI::Message)-instance-method","name":"custom_prompts","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L25"},"def":{"name":"custom_prompts","return_type":"Array(OpenAI::Message)","visibility":"Public","body":"@custom_prompts"}},{"html_id":"llm_model_id:String-instance-method","name":"llm_model_id","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L24"},"def":{"name":"llm_model_id","return_type":"String","visibility":"Public","body":"@llm_model_id"}},{"html_id":"module_status(module_id:String):Hash(String,String)-instance-method","name":"module_status","doc":"returns a hash of status values","summary":"

returns a hash of status values

","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Hash(String, String)","args_html":"(module_id : String) : Hash(String, String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L71"},"def":{"name":"module_status","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"system[module_id].__status__"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@llm_model_id = setting(String, :llm_model_id)\n@custom_prompts = (setting?(Array(OpenAI::Message), :custom_prompts)) || ([] of OpenAI::Message)\n"}},{"html_id":"request(text:String)-instance-method","name":"request","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L34"},"def":{"name":"request","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"messages = ([PROMPT] + custom_prompts) + [OpenAI::Message.new(:user, \"The Request: #{text}\")]\nchoices = Array(MessageChoice).from_json((language_model.chat(llm_model_id, messages)).get.to_json)\n"}},{"html_id":"system_metadata-instance-method","name":"system_metadata","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L46"},"def":{"name":"system_metadata","visibility":"Public","body":"metadata = {} of String => Metadata\nsys = system\nsys.modules.each do |module_name|\n 1.upto(sys.count(module_name)) do |index|\n mod = sys.get(module_name, index)\n metadata[\"#{module_name}_#{index}\"] = mod.__metadata__.llm_interface\n end\nend\n{name: sys.name, description: sys.description, modules: metadata}\n"}}],"types":[{"html_id":"drivers/OpenAI/VoiceControlInterface/Metadata","path":"OpenAI/VoiceControlInterface/Metadata.html","kind":"alias","full_name":"OpenAI::VoiceControlInterface::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::DriverModel::Metadata","aliased_html":"PlaceOS::Driver::DriverModel::Metadata","const":false,"namespace":{"html_id":"drivers/OpenAI/VoiceControlInterface","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface"}}]}]},{"html_id":"drivers/Optergy","path":"Optergy.html","kind":"module","full_name":"Optergy","name":"Optergy","abstract":false,"locations":[{"filename":"src/optergy/p864_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ANALOG_INPUT_MODE","name":"ANALOG_INPUT_MODE","value":"{\"2\" => \"10k-2 sensor\", \"6\" => \"Dry Contact\", \"4|10\" => \"Pulse 10 per pulse\", \"3|0|100\" => \"4-20 ma 0 to 100\", \"5\" => \"3K sensor\"}"}],"types":[{"html_id":"drivers/Optergy/AnalogValue","path":"Optergy/AnalogValue.html","kind":"struct","full_name":"Optergy::AnalogValue","name":"AnalogValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L21"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L25"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L28"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L30"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L32"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str.to_f? || 0.0)\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L24"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/BinaryValue","path":"Optergy/BinaryValue.html","kind":"struct","full_name":"Optergy::BinaryValue","name":"BinaryValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L42"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L46"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L41"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L49"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L51"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Bool-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L53"},"def":{"name":"value","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str == \"Active\")\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L45"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/Config","path":"Optergy/Config.html","kind":"struct","full_name":"Optergy::Config","name":"Config","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L13"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"units:Units-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L12"},"def":{"name":"units","return_type":"Units","visibility":"Public","body":"@units"}}]},{"html_id":"drivers/Optergy/ModeResponse","path":"Optergy/ModeResponse.html","kind":"struct","full_name":"Optergy::ModeResponse","name":"ModeResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L70"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L69"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"object_type:Int32-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L73"},"def":{"name":"object_type","return_type":"Int32","visibility":"Public","body":"@object_type"}}]},{"html_id":"drivers/Optergy/P864","path":"Optergy/P864.html","kind":"class","full_name":"Optergy::P864","name":"P864","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"value\", \"input\", \"output\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"analog_input(instance:Int32)-instance-method","name":"analog_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ai/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_inputs-instance-method","name":"analog_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_inputs","visibility":"Public","body":"response = get(\"/api/ai/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_output(instance:Int32)-instance-method","name":"analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_outputs-instance-method","name":"analog_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_outputs","visibility":"Public","body":"response = get(\"/api/ao/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_value(instance:Int32)-instance-method","name":"analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_values-instance-method","name":"analog_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_values","visibility":"Public","body":"response = get(\"/api/av/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"auth_headers-instance-method","name":"auth_headers","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L193"},"def":{"name":"auth_headers","visibility":"Public","body":"HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"binary_input(instance:Int32)-instance-method","name":"binary_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bi/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_inputs-instance-method","name":"binary_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_inputs","visibility":"Public","body":"response = get(\"/api/bi/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_output(instance:Int32)-instance-method","name":"binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_outputs-instance-method","name":"binary_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_outputs","visibility":"Public","body":"response = get(\"/api/bo/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_value(instance:Int32)-instance-method","name":"binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_values-instance-method","name":"binary_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_values","visibility":"Public","body":"response = get(\"/api/bv/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"configuration-instance-method","name":"configuration","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L56"},"def":{"name":"configuration","visibility":"Public","body":"response = get(\"/api/device/config\", headers: auth_headers)\nConfig.from_json(check(response))\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L158"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/authorize\", headers: HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nbody = response.body\nnow = Time.utc\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n set_connected_state(true)\n token = (TokenResponse.from_json(body)).token\n payload, header = JWT.decode(token, verify: false, validate: false)\n issued = payload[\"iat\"].as_i64\n expires = payload[\"exp\"].as_i64\n expires_at = now + ((expires - issued) - 3).seconds\n @auth_expiry = expires_at\n @auth_token = \"Bearer #{token}\"\nelse\n set_connected_state(false)\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.minutes) do\n version\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@unit_mappings = (setting?(Mapping, :unit_mappings)) || Mapping.new\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/optergy/p864.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L318"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nthis_mac = device_mac\nif mac != this_mac\n return nil\nend\nif id\nelse\n return nil\nend\ninstance = id.to_i?\nif instance\nelse\n return nil\nend\ndevice = (begin\n analog_value(instance)\nrescue\n nil\nend)\nif device\nelse\n return nil\nend\nto_sensor(device, this_mac)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/optergy/p864.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L306"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n this_mac = device_mac\n if mac && (mac != this_mac)\n return NO_MATCH\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n analog_values.compact_map do |obj|\n to_sensor(obj, this_mac, filter)\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"set_input_mode(instance:Int32,mode:String)-instance-method","name":"set_input_mode","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(instance : Int32, mode : String)","args_html":"(instance : Int32, mode : String)","location":{"filename":"src/optergy/p864.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L138"},"def":{"name":"set_input_mode","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/ai/#{instance}/mode\", headers: auth_headers, body: {mode: mode}.to_json)\nModeResponse.from_json(check(response))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L149"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L51"},"def":{"name":"version","visibility":"Public","body":"response = get(\"/version\", headers: auth_headers)\n(NamedTuple(version: String).from_json(check(response)))[:version]\n"}},{"html_id":"write_analog_output(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_analog_value(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_binary_output(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"write_binary_value(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/optergy/p864.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L201"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%resp\n = \n{{ response }}\n\n logger.debug \n{ \"received: #{\n%resp\n.body}\" }\n raise \"error response: #{\n%resp\n.status} (#{\n%resp\n.status_code})\\n#{\n%resp\n.body}\" unless \n%resp\n.success?\n \n%resp\n.body\n \n"}}],"types":[{"html_id":"drivers/Optergy/P864/Mapping","path":"Optergy/P864/Mapping.html","kind":"alias","full_name":"Optergy::P864::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/optergy/p864.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Tuple(PlaceOS::Driver::Interface::Sensor::SensorType, String))","aliased_html":"Hash(Int32, {PlaceOS::Driver::Interface::Sensor::SensorType, String})","const":false,"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"}},{"html_id":"drivers/Optergy/P864/TokenResponse","path":"Optergy/P864/TokenResponse.html","kind":"struct","full_name":"Optergy::P864::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"},"constructors":[{"html_id":"new(token:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L154"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone)"}},{"html_id":"copy_with(token_token=@token)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"args_string":"(token _token = @token)","args_html":"(token _token = @token)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"visibility":"Public","body":"self.class.new(_token)"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]}]},{"html_id":"drivers/Optergy/Units","path":"Optergy/Units.html","kind":"enum","full_name":"Optergy::Units","name":"Units","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Metric","name":"Metric","value":"0"},{"id":"Imperial","name":"Imperial","value":"1"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"instance_methods":[{"html_id":"imperial?-instance-method","name":"imperial?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L6"},"def":{"name":"imperial?","visibility":"Public","body":"self == Imperial"}},{"html_id":"metric?-instance-method","name":"metric?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L5"},"def":{"name":"metric?","visibility":"Public","body":"self == Metric"}}]}]},{"html_id":"drivers/Panasonic","path":"Panasonic.html","kind":"module","full_name":"Panasonic","name":"Panasonic","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Panasonic/Camera","path":"Panasonic/Camera.html","kind":"module","full_name":"Panasonic::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Camera/HESeries","path":"Panasonic/Camera/HESeries.html","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MOVEMENT_STOPPED","name":"MOVEMENT_STOPPED","value":"50"},{"id":"ZOOM_MAX","name":"ZOOM_MAX","value":"4095"},{"id":"ZOOM_MIN","name":"ZOOM_MIN","value":"1365"},{"id":"ZOOM_RANGE","name":"ZOOM_RANGE","value":"(ZOOM_MAX - ZOOM_MIN).to_f"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Camera","kind":"module","full_name":"Panasonic::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L254"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n zoom?\n pantilt?\nend"}},{"html_id":"installation(position:Installation)-instance-method","name":"installation","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Installation"}],"args_string":"(position : Installation)","args_html":"(position : Installation)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L223"},"def":{"name":"installation","args":[{"name":"position","external_name":"position","restriction":"Installation"}],"visibility":"Public","body":"request(\"INS\", position.desk? ? 0 : 1) do |resp|\n parse_installation(resp)\nend"}},{"html_id":"installation?-instance-method","name":"installation?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L227"},"def":{"name":"installation?","visibility":"Public","body":"parse_installation(query(\"INS\"))"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L85"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan = (MOVEMENT_STOPPED + (joyspeed(pan_speed))).to_s.rjust(2, '0')\ntilt = (MOVEMENT_STOPPED + (joyspeed(tilt_speed))).to_s.rjust(2, '0')\nif (pan_speed == \"50\") && (tilt_speed == \"50\")\n options = {retries: 4, priority: queue.priority + 50, clear_queue: true, name: :joystick}\nelse\n options = {retries: 1, priority: queue.priority, clear_queue: false, name: :joystick}\nend\nrequest(\"PTS\", \"#{pan}#{tilt}\", **options) do |resp|\n pan, tilt = (resp[3..-1].scan(/.{2}/)).flat_map(&.to_a)\n self[:pan_speed] = pan.not_nil!.to_i - MOVEMENT_STOPPED\n self[:tilt_speed] = tilt.not_nil!.to_i - MOVEMENT_STOPPED\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L141"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0, tilt_speed: position.down? ? @default_movement_speed : -@default_movement_speed)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -@default_movement_speed : @default_movement_speed, tilt_speed: 0)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 130.milliseconds\nschedule.every(1.minute) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@default_movement_speed = (setting?(Int32, :default_movement_speed)) || 12\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Float64)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Float64))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32)-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"args_string":"(pan : Int32, tilt : Int32)","args_html":"(pan : Int32, tilt : Int32)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L238"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"visibility":"Public","body":"pan_val = (pan.to_s(16)).upcase.rjust(4, '0')\ntilt_val = (tilt.to_s(16)).upcase.rjust(4, '0')\nrequest(\"APC\", \"#{pan_val}#{tilt_val}\", name: :pantilt) do |resp|\n parse_pantilt(resp)\nend\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L244"},"def":{"name":"pantilt?","visibility":"Public","body":"parse_pantilt(query(\"APC\"))"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L53"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n delay = 6.seconds\nend\nrequest(\"O\", state ? 1 : 0, delay: delay) do |resp|\n parse_power(resp)\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L58"},"def":{"name":"power?","visibility":"Public","body":"parse_power(query(\"O\"))"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L115"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(preset[:pan], preset[:tilt])\n zoom_to(preset[:zoom])\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L132"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L125"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"do_poll\n@presets[name] = {pan: @pan, tilt: @tilt, zoom: self[:zoom].as_f}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L210"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"move_zoom(0, priority: 100)\njoystick(0, 0)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L189"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .in?\n move_zoom(@default_movement_speed // 2)\nin .out?\n move_zoom(-@default_movement_speed)\nin .stop?\n move_zoom(0)\nend"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L177"},"def":{"name":"zoom?","visibility":"Public","body":"resp = query(\"GZ\")\nif resp.includes?(\"--\")\n message = \"camera in standby, operation unavailable\"\n logger.debug do\n message\n end\n message\nelse\n @zoom_raw = resp[2..-1].to_i(16)\n self[:zoom] = (@zoom_raw - ZOOM_MIN).to_f * (100.0 / ZOOM_RANGE)\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L167"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * ZOOM_RANGE).to_i + ZOOM_MIN\nrequest(\"AXZ\", (zoom_value.to_s(16)).upcase.rjust(3, '0')) do |resp|\n self[:zoom] = resp[3..-1].to_i(16)\nend\n"}}],"types":[{"html_id":"drivers/Panasonic/Camera/HESeries/Installation","path":"Panasonic/Camera/HESeries/Installation.html","kind":"enum","full_name":"Panasonic::Camera::HESeries::Installation","name":"Installation","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Desk","name":"Desk","value":"0"},{"id":"Ceiling","name":"Ceiling","value":"1"}],"namespace":{"html_id":"drivers/Panasonic/Camera/HESeries","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries"},"instance_methods":[{"html_id":"ceiling?-instance-method","name":"ceiling?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L220"},"def":{"name":"ceiling?","visibility":"Public","body":"self == Ceiling"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L219"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}}]}]}]},{"html_id":"drivers/Panasonic/Display","path":"Panasonic/Display.html","kind":"module","full_name":"Panasonic::Display","name":"Display","abstract":false,"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Display/Protocol2","path":"Panasonic/Display/Protocol2.html","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", input: \"IMS\", volume: \"AVL\", volume_query: \"QAV\", audio_mute: \"AMT\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HM1\", Inputs::HDMI2 => \"HM2\", Inputs::VGA => \"PC1\", Inputs::DVI => \"DVI\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Display","kind":"module","full_name":"Panasonic::Display","name":"Display"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","doc":"There is no input query command","summary":"

There is no input query command

","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L111"},"def":{"name":"input?","visibility":"Public","body":"self[:input]?"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There is no video mute command so this only mutes audio","summary":"

There is no video mute command so this only mutes audio

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L116"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"requested audio mute state: #{state}\"\n end\n do_send(:audio_mute, state ? 1 : 0)\nend"}},{"html_id":"mute?:Bool-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L129"},"def":{"name":"mute?","return_type":"Bool","visibility":"Public","body":"(do_send(:audio_mute)).get\n!!self[:audio_mute]?.try(&.as_bool)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L42"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(60.seconds) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"dispadmin\"\n@password = (setting?(String, :password)) || \"@Panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L78"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)\nend\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L91"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power_query, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L175"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic display sent: #{data} for #{task.try(&.name) || \"unknown\"}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\ndata = data[2..-1]\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"display busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"display error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on, :power_off, :power_query\n if (cmd == (:power_on)) || (cmd == (:power_off))\n self[:power] = cmd == (:power_on)\n end\n if cmd == (:power_query)\n self[:power] = val.not_nil!.to_i == 1\n end\n if power_target = @power_target\n if self[:power] == power_target\n @power_target = nil\n else\n power(power_target)\n end\n end\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :volume, :volume_query\n self[:volume] = val.not_nil!.to_f\nwhen :audio_mute\n self[:audio_mute] = val.not_nil!.to_i == 1\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L104"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nself[:input] = input\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L134"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\n(do_send(:volume, val.to_s.rjust(3, '0'))).get\nself[:volume] = val\n"}},{"html_id":"volume?:Int32|Nil-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L142"},"def":{"name":"volume?","return_type":"Int32 | ::Nil","visibility":"Public","body":"(do_send(:volume_query)).get\nself[:volume]?.try(&.as_i)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L152"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L147"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Panasonic/Display/Protocol2/Inputs","path":"Panasonic/Display/Protocol2/Inputs.html","kind":"enum","full_name":"Panasonic::Display::Protocol2::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"DVI","name":"DVI","value":"3"}],"namespace":{"html_id":"drivers/Panasonic/Display/Protocol2","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L25"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L23"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L22"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L24"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Panasonic/Projector","path":"Panasonic/Projector.html","kind":"module","full_name":"Panasonic::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Projector/NTControl","path":"Panasonic/Projector/NTControl.html","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", freeze: \"OFZ\", input: \"IIS\", mute: \"OSH\", lamp: \"Q$S\", lamp_hours: \"Q$L\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HD1\", Inputs::HDMI2 => \"HD2\", Inputs::VGA => \"RG1\", Inputs::VGA2 => \"RG2\", Inputs::Miracast => \"MC1\", Inputs::DVI => \"DVI\", Inputs::DisplayPort => \"DP1\", Inputs::HDBaseT => \"DL1\", Inputs::Composite => \"VID\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Projector","kind":"module","full_name":"Panasonic::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L55"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"lamp_hours?(**options)-instance-method","name":"lamp_hours?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L105"},"def":{"name":"lamp_hours?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp_hours, 1, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes audio + video","summary":"

Mutes audio + video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L133"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"logger.debug do\n \"requested mute state: #{state}\"\nend\nactual = state ? 1 : 0\ndo_send(:mute, actual)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(40.seconds) do\n power?(priority: 0)\n lamp_hours?(priority: 0)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L66"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"admin1\"\n@password = (setting?(String, :password)) || \"panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L83"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:stable_power] = @stable_power = false\nself[:power_target] = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\n do_send(:lamp)\nelse\n logger.debug do\n \"requested to power off\"\n end\n (do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)).get\n schedule.in(10.seconds) do\n do_send(:lamp)\n end\nend\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L101"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L158"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic sent: #{data}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"projector busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"projector error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\ndata = data[2..-1]\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on\n self[:power] = true\nwhen :power_off\n self[:power] = false\nwhen :power_query\n self[:power] = val.not_nil!.to_i == 1\nwhen :freeze\n self[:frozen] = val.not_nil!.to_i == 1\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :mute\n state = self[:mute] = val.not_nil!.to_i == 1\n self[:mute0] = state\n self[:mute0_video] = state\n self[:mute0_audio] = state\nelse\n case task.name\n when \"lamp\"\n ival = resp[0].to_i\n self[:power] = {1, 2}.includes?(ival)\n self[:warming] = ival == 1\n self[:cooling] = ival == 3\n if !@stable_power\n if self[:power] == self[:power_target]\n self[:stable_power] = @stable_power = true\n else\n power(self[:power_target].as_bool)\n end\n end\n when \"lamp_hours\"\n self[:lamp_usage] = data.to_i\n end\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L122"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"if self[:mute]\n unmute\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\nself[:input] = input\n"}}],"types":[{"html_id":"drivers/Panasonic/Projector/NTControl/Inputs","path":"Panasonic/Projector/NTControl/Inputs.html","kind":"enum","full_name":"Panasonic::Projector::NTControl::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"3"},{"id":"Miracast","name":"Miracast","value":"4"},{"id":"DVI","name":"DVI","value":"5"},{"id":"DisplayPort","name":"DisplayPort","value":"6"},{"id":"HDBaseT","name":"HDBaseT","value":"7"},{"id":"Composite","name":"Composite","value":"8"}],"namespace":{"html_id":"drivers/Panasonic/Projector/NTControl","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl"},"instance_methods":[{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L31"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L29"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L28"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L30"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L24"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L23"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"miracast?-instance-method","name":"miracast?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L27"},"def":{"name":"miracast?","visibility":"Public","body":"self == Miracast"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L26"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L25"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]}]},{"html_id":"drivers/Pattr","path":"Pattr.html","kind":"module","full_name":"Pattr","name":"Pattr","abstract":false,"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Pattr/ChatBot","path":"Pattr/ChatBot.html","kind":"class","full_name":"Pattr::ChatBot","name":"ChatBot","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat_data_request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"chat_data_request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/pattr/chat_bot.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L45"},"def":{"name":"chat_data_request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nrequest = Request.from_json(body)\nresponse = case request\nin Location\n locate(request.referencing)\nend\npayload = response.to_json\nif @debug_webhook\n logger.debug do\n payload\n end\nend\n{HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, payload}\n"}},{"html_id":"locate(staff:Array(String))-instance-method","name":"locate","doc":"map reduce search for the users across all buildings","summary":"

map reduce search for the users across all buildings

","abstract":false,"args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"args_string":"(staff : Array(String))","args_html":"(staff : Array(String))","location":{"filename":"src/pattr/chat_bot.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L61"},"def":{"name":"locate","args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"visibility":"Public","body":"searches = staff.map do |username|\n email = username.includes?('@') ? username : nil\n queries = @buildings.map do |building|\n building[:LocationServices].locate_user(email, username)\n end\n {username, queries}\nend\nresponse = {} of String => PlaceLocationResult\nsearches.each do |__temp_871|\n username, queries = __temp_871\n locations = {} of String => PlaceLocationResult\n queries.each do |results|\n (Array(PlaceLocationResult).from_json(results.get.to_json)).map do |location|\n locations[location.location] = location\n end\n end\n if location = (locations[\"meeting\"]? || locations[\"wireless\"]?) || locations[\"desk\"]?\n response[username] = location\n end\nend\nresponse.transform_values do |location|\n case location.location\n when \"meeting\"\n {building: zones[location.building], level: zones[location.level], room: systems[location.sys_id.not_nil!]}\n else\n {building: zones[location.building], level: zones[location.level]}\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"@zones = Hash(String, String).new do |hash, key|\n zone = (staff_api.zone(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg0|\n __arg0.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\n@systems = Hash(String, String).new do |hash, key|\n zone = (staff_api.get_system(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg2|\n __arg2.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\nbuildings = (setting?(Array(String), :buildings)) || [config.control_system.not_nil!.id]\n@buildings = buildings.map do |id|\n system(id)\nend\n"}}]},{"html_id":"drivers/Pattr/Location","path":"Pattr/Location.html","kind":"class","full_name":"Pattr::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},"ancestors":[{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L15"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"referencing:Array(String)-instance-method","name":"referencing","doc":"user emails / usernames of users we want to locate","summary":"

user emails / usernames of users we want to locate

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L19"},"def":{"name":"referencing","return_type":"Array(String)","visibility":"Public","body":"@referencing"}},{"html_id":"request:String-instance-method","name":"request","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L16"},"def":{"name":"request","return_type":"String","visibility":"Public","body":"@request"}}]},{"html_id":"drivers/Pattr/PlaceLocationResult","path":"Pattr/PlaceLocationResult.html","kind":"class","full_name":"Pattr::PlaceLocationResult","name":"PlaceLocationResult","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","doc":"zone ids","summary":"

zone ids

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L29"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L30"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"location:String-instance-method","name":"location","doc":"wireless, desk, meeting, booking","summary":"

wireless, desk, meeting, booking

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L26"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"sys_id:String|Nil-instance-method","name":"sys_id","doc":"system id (if it's a meeting room)","summary":"

system id (if it's a meeting room)

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L33"},"def":{"name":"sys_id","return_type":"String | ::Nil","visibility":"Public","body":"@sys_id"}}]},{"html_id":"drivers/Pattr/Request","path":"Pattr/Request.html","kind":"class","full_name":"Pattr::Request","name":"Request","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Pattr/Location","kind":"class","full_name":"Pattr::Location","name":"Location"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"request type hint","summary":"

request type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"request\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'request' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'request'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n Location.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'request' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"user:String-instance-method","name":"user","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L12"},"def":{"name":"user","return_type":"String","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/Philips","path":"Philips.html","kind":"module","full_name":"Philips","name":"Philips","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Philips/Dynalite","path":"Philips/Dynalite.html","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"254 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n get_current_preset(1)\nend"}},{"html_id":"decrement_area_level(area:UInt8)-instance-method","name":"decrement_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L124"},"def":{"name":"decrement_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 5, 0, 0, 255])"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L24"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(area:UInt8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L59"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 99, 0, 0, 255]\ndo_send(command, wait: true)\n"}},{"html_id":"get_light_level(area:Int32,channel:Int32=255)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, channel : Int32 = 255)","args_html":"(area : Int32, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L116"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"do_send(Bytes[28, area & 255, channel & 255, 97, 0, 0, 255], wait: true)"}},{"html_id":"increment_area_level(area:UInt8)-instance-method","name":"increment_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L120"},"def":{"name":"increment_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 6, 0, 0, 255])"}},{"html_id":"light_level(area:Int32,level:Float64,fade:Int32=1000,channel:Int32=255)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","args_html":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L78"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"cmd = 113\nfade = if fade <= 25500\n fade // 100\nelse\n if fade < 255000\n cmd = 114\n fade // 1000\n else\n cmd = 115\n (fade // 60000).clamp(1, 22)\n end\nend\narea_key = ((Area.new(area.to_u32, channel: channel == 255 ? nil : channel.to_u32)).append(\"level\")).to_s\nself[area_key] = level\nlevel = ((level.clamp(0.0, 100.0)) * LEVEL_PERCENTAGE).to_u8\nlevel = 255_u8 - level\ncommand = Bytes[28, area & 255, channel & 255, cmd, level, fade & 255, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"lighting(area:Int32,state:Bool,fade:Int32=1000)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, state : Bool, fade : Int32 = 1000)","args_html":"(area : Int32, state : Bool, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L71"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100.0 : 0.0\nlight_level(area, level, fade)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L215"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nget_light_level(area_id, area_channel.to_i)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L204"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\nget_current_preset(area_id.to_u8)\n"}},{"html_id":"link_area(area:UInt8,join:UInt8)-instance-method","name":"link_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt8, join : UInt8)","args_html":"(area : UInt8, join : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L134"},"def":{"name":"link_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, join, 20, 0, 0, 255])"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 35.milliseconds\ntransport.tokenizer = Tokenizer.new(8, Bytes[28])\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynalite.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L138"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data.hexstring}\"\nend\ncase data[3]\nwhen 0, 1, 2, 3, 10, 11, 12, 13\n number = data[3]\n if number > 3\n number = number - (10 + 4)\n end\n number = number + ((data[5] * 8) + 1)\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 98\n number = data[2] + 1\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 96\n level = data[4]\n level = 255 - level\n level = level / LEVEL_PERCENTAGE\n channel = data[2].to_u32\n area_key = ((Area.new(data[1].to_u32, channel: channel == 255_u32 ? nil : channel)).append(\"level\")).to_s\n self[area_key] = level\n task.try(&.success(level))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save_preset(area:UInt8,scene:UInt8)-instance-method","name":"save_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"args_string":"(area : UInt8, scene : UInt8)","args_html":"(area : UInt8, scene : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L65"},"def":{"name":"save_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"visibility":"Public","body":"num = (scene - 1) & 255\ncommand = Bytes[28, area, num, 9, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L209"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nlight_level(area_id, level, fade_time.to_i, area_channel.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L199"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\ntrigger(area_id, scene.to_i, fade_time.to_i)\n"}},{"html_id":"stop_all_fading(area:UInt8)-instance-method","name":"stop_all_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L111"},"def":{"name":"stop_all_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 122, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"stop_fading(area:UInt8,channel:UInt8=255_u8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"args_string":"(area : UInt8, channel : UInt8 = 255_u8)","args_html":"(area : UInt8, channel : UInt8 = 255_u8)","location":{"filename":"src/philips/dynalite.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L106"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, channel, 118, 0, 0, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"trigger(area:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","doc":"fade_time in millisecond","summary":"

fade_time in millisecond

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(area : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L37"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade_centi = fade // 10\nself[Area.new(area.to_u32)] = scene\nscene = scene - 1\nbank = scene // 8\nscene = scene - (bank * 8)\nif scene >= 4\n scene = scene + 6\nend\ncommand = Bytes[28, area & 255, fade_centi & 255, scene & 255, (fade_centi >> 8) & 255, bank, 255]\nschedule.in((fade + 200).milliseconds) do\n get_light_level(area)\nend\ndo_send(command, name: \"preset_#{area}_#{scene}\")\n"}},{"html_id":"unlink_area(area:UInt8)-instance-method","name":"unlink_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L128"},"def":{"name":"unlink_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"link_area(area, 0_u8)"}}],"types":[{"html_id":"drivers/Philips/Dynalite/Area","path":"Philips/Dynalite/Area.html","kind":"alias","full_name":"Philips::Dynalite::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Dynalite","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite"}}]},{"html_id":"drivers/Philips/DyNetText","path":"Philips/DyNetText.html","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynet_text.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- polling gateway\"\n end\n get_date\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L38"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"get_current_preset(area:UInt16,join:UInt8=255_u8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8)","args_html":"(area : UInt16, join : UInt8 = 255_u8)","location":{"filename":"src/philips/dynet_text.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L169"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(\"RequestCurrentPreset #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}\" : \"get_area#{area}_#{join}\"))"}},{"html_id":"get_date-instance-method","name":"get_date","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L152"},"def":{"name":"get_date","visibility":"Public","body":"do_send(\"RequestDate\", name: :date)"}},{"html_id":"get_light_level(area:UInt16,join:UInt8=255_u8,channel:UInt16=1_u16)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L183"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"RequestChannelLevel #{channel} #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}_level\" : \"get_area#{area}_#{join}_level\"))"}},{"html_id":"get_time-instance-method","name":"get_time","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L156"},"def":{"name":"get_time","visibility":"Public","body":"do_send(\"RequestTime\", name: :time)"}},{"html_id":"light_level(area:UInt16,level:Float64,join:UInt8=255_u8,fade:UInt32=1000_u32,channel:UInt16=0_u16)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L177"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"level = level.round_away.to_i\ndo_send(\"ChannelLevel #{channel} #{level.clamp(0, 100)} #{area} #{fade} #{join}\", name: \"level#{area}_#{channel}_#{join}\")\n"}},{"html_id":"lighting(area:UInt16,state:Bool,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L173"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"light_level(area, state ? 100.0 : 0.0, join, fade)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L218"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 1_u32\nget_light_level(area_id, area_join, area_channel.to_u16)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L207"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\nget_current_preset(area_id, area_join)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynet_text.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L48"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip(\"\\u0000\\r\\n\\t \")\nif data.empty?\n return\nend\nlogger.debug do\n \"Dynalite sent: #{data}\"\nend\nif @ready\n components = (data.split(\", \")).map do |component|\n parts = component.downcase.split\n value = parts.pop\n key = parts.join(' ')\n {key, value}\n end.to_h\n process_response(data, components, task)\nelse\n if data =~ (/Connection Established/i)\n @ready = true\n self[:ready] = true\n do_send(\"Echo 0\", name: \"echo\")\n do_send(\"Verbose\", name: \"verbose\")\n do_send(\"ReplyOK 1\", name: \"replies\")\n do_send(\"Join 255\", name: \"join\")\n end\nend\n"}},{"html_id":"send_custom(data:String)-instance-method","name":"send_custom","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/philips/dynet_text.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L165"},"def":{"name":"send_custom","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"do_send(data)"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L212"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 0_u32\nlight_level(area_id, level, area_join, fade_time, area_channel.to_u16)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L202"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\ntrigger(area_id, scene.to_u16, area_join, fade_time)\n"}},{"html_id":"stop_fading(area:UInt16,join:UInt8=255_u8,channel:UInt16=0_u16)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L188"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"StopFade #{channel} #{area} #{join}\", name: \"stopfade#{area}_#{join}_#{channel}\")"}},{"html_id":"trigger(area:UInt16,scene:UInt16,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"trigger","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L160"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"do_send(\"Preset #{scene} #{area} #{fade} #{join}\", name: \"preset#{area}_#{join}\")"}}],"types":[{"html_id":"drivers/Philips/DyNetText/Area","path":"Philips/DyNetText/Area.html","kind":"alias","full_name":"Philips::DyNetText::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynet_text.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/DyNetText","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText"}}]},{"html_id":"drivers/Philips/Hue","path":"Philips/Hue.html","kind":"class","full_name":"Philips::Hue","name":"Hue","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"app_key:String-instance-method","name":"app_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L33"},"def":{"name":"app_key","return_type":"String","visibility":"Public","body":"@app_key"}},{"html_id":"client_key:String-instance-method","name":"client_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L36"},"def":{"name":"client_key","return_type":"String","visibility":"Public","body":"@client_key"}},{"html_id":"device_list-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L96"},"def":{"name":"device_list","visibility":"Public","body":"resource_details(Resource::Device)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L184"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\nelse\n raise(\"no area provided\")\nend\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\njson = resource_details(resource, area_id)\nstate = json[\"on\"][\"on\"].as_bool\nstate ? json[\"dimming\"][\"brightness\"].as_i : 0\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L170"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"raise(\"not really a thing\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@app_key = setting(String, :app_key)\n@client_key = setting(String, :client_key)\n@scenes = (setting?(Array(String), :scenes)) || ([] of String)\n"}},{"html_id":"register-instance-method","name":"register","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L52"},"def":{"name":"register","visibility":"Public","body":"response = post(\"/api\", body: {devicetype: \"placeos##{module_id}\", generateclientkey: true}.to_json)\nif response.success?\nelse\n raise(\"unknown error: #{response.body}\")\nend\nresp = (Array(RegResponse).from_json(response.body))[0]\nif success = resp.success\n @app_key = success.username\n @client_key = success.clientkey\n define_setting(:app_key, @app_key)\n define_setting(:client_key, @client_key)\n @app_key\nelse\n error = resp.error.as(HueError)\n logger.error do\n \"type #{error.type}: #{error.description}\"\n end\n error.description\nend\n"}},{"html_id":"resource_details(resource:Resource,id:String|Nil=nil)-instance-method","name":"resource_details","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(resource : Resource, id : String | Nil = nil)","args_html":"(resource : Resource, id : String | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L88"},"def":{"name":"resource_details","args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = get(\"/clip/v2/resource/#{resource.to_s.underscore}#{id.presence ? \"/#{id}\" : \"\"}\", headers: HTTP::Headers {\"hue-application-key\" => app_key})\nJSON.parse(response.body)\n"}},{"html_id":"rgb_to_cie(r:UInt8,g:UInt8,b:UInt8):Tuple(Float64,Float64)-instance-method","name":"rgb_to_cie","doc":"convert RGB to CIE which is used by Hue","summary":"

convert RGB to CIE which is used by Hue

","abstract":false,"args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"args_string":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","args_html":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","location":{"filename":"src/philips/hue.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L105"},"def":{"name":"rgb_to_cie","args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"return_type":"Tuple(Float64, Float64)","visibility":"Public","body":"r_norm = r / 255.0\ng_norm = g / 255.0\nb_norm = b / 255.0\nr_lin = (r_norm > 0.04045) ? ((r_norm + 0.055) / 1.055) ** 2.4 : r_norm / 12.92\ng_lin = (g_norm > 0.04045) ? ((g_norm + 0.055) / 1.055) ** 2.4 : g_norm / 12.92\nb_lin = (b_norm > 0.04045) ? ((b_norm + 0.055) / 1.055) ** 2.4 : b_norm / 12.92\nx = ((r_lin * 0.4124) + (g_lin * 0.3576)) + (b_lin * 0.1805)\ny = ((r_lin * 0.2126) + (g_lin * 0.7152)) + (b_lin * 0.0722)\nz = ((r_lin * 0.0193) + (g_lin * 0.1192)) + (b_lin * 0.9505)\nxy_x = x / ((x + y) + z)\nxy_y = y / ((x + y) + z)\n{xy_x, xy_y}\n"}},{"html_id":"scene_list-instance-method","name":"scene_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L100"},"def":{"name":"scene_list","visibility":"Public","body":"resource_details(Resource::Scene)"}},{"html_id":"scenes:Array(String)-instance-method","name":"scenes","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L38"},"def":{"name":"scenes","return_type":"Array(String)","visibility":"Public","body":"@scenes"}},{"html_id":"set_light_colour(light_id:Int32,r:UInt8=0_u8,g:UInt8=0_u8,b:UInt8=0_u8)-instance-method","name":"set_light_colour","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"args_string":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","args_html":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","location":{"filename":"src/philips/hue.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L128"},"def":{"name":"set_light_colour","args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"visibility":"Public","body":"x, y = rgb_to_cie(r, g, b)\nresponse = put(\"/clip/v2/resource/light/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {color: {xy: {x: x, y: y}}}.to_json)\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"set_light_level(light_id:String,level:UInt32,resource:Resource=Resource::Light)-instance-method","name":"set_light_level","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"args_string":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","args_html":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","location":{"filename":"src/philips/hue.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L137"},"def":{"name":"set_light_level","args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nif level == 0\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: false}}.to_json)\nelse\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: true}, dimming: {brightness: level}}.to_json)\nend\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nlevel\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L174"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"level_int = level.round_away.to_u32\narea = area.as(Area)\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\nset_light_level(area_id, level_int, resource)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","doc":"==================\nLighting Interface\n==================","summary":"

================== Lighting Interface ==================

","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L165"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"scene_id = @scenes[scene]\nset_scene(scene_id)\n"}},{"html_id":"set_scene(scene_id:String)-instance-method","name":"set_scene","abstract":false,"args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"args_string":"(scene_id : String)","args_html":"(scene_id : String)","location":{"filename":"src/philips/hue.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L154"},"def":{"name":"set_scene","args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"visibility":"Public","body":"response = put(\"/clip/v2/resource/scene/#{scene_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {recall: {action: :active}}.to_json)\nif response.success?\nelse\n raise(\"error activating scene (#{response.status})\\n#{response.body}\")\nend\nresponse.body\n"}}],"types":[{"html_id":"drivers/Philips/Hue/Area","path":"Philips/Hue/Area.html","kind":"alias","full_name":"Philips::Hue::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/hue.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"doc":"component == resource\nid == id","summary":"

component == resource id == id

"},{"html_id":"drivers/Philips/Hue/HueError","path":"Philips/Hue/HueError.html","kind":"struct","full_name":"Philips::Hue::HueError","name":"HueError","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(type:Int32,address:String,description:String)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(type : Int32, address : String, description : String)","args_html":"(type : Int32, address : String, description : String)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, address, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"@address"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @address.clone, @description.clone)"}},{"html_id":"copy_with(type_type=@type,address_address=@address,description_description=@description)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"args_string":"(type _type = @type, address _address = @address, description _description = @description)","args_html":"(type _type = @type, address _address = @address, description _description = @description)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _address, _description)"}},{"html_id":"description:String-instance-method","name":"description","abstract":false,"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"type:Int32-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Int32","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Philips/Hue/RegResponse","path":"Philips/Hue/RegResponse.html","kind":"struct","full_name":"Philips::Hue::RegResponse","name":"RegResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(success:RegSuccess|Nil,error:HueError|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"args_string":"(success : RegSuccess | Nil, error : HueError | Nil)","args_html":"(success : RegSuccess | Nil, error : HueError | Nil)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"new","args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(success, error)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@success.clone, @error.clone)"}},{"html_id":"copy_with(success_success=@success,error_error=@error)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"args_string":"(success _success = @success, error _error = @error)","args_html":"(success _success = @success, error _error = @error)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"copy_with","args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"visibility":"Public","body":"self.class.new(_success, _error)"}},{"html_id":"error:HueError|Nil-instance-method","name":"error","abstract":false,"def":{"name":"error","return_type":"HueError | ::Nil","visibility":"Public","body":"@error"}},{"html_id":"success:RegSuccess|Nil-instance-method","name":"success","abstract":false,"def":{"name":"success","return_type":"RegSuccess | ::Nil","visibility":"Public","body":"@success"}}]},{"html_id":"drivers/Philips/Hue/RegSuccess","path":"Philips/Hue/RegSuccess.html","kind":"struct","full_name":"Philips::Hue::RegSuccess","name":"RegSuccess","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(username:String,clientkey:String)-class-method","name":"new","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"args_string":"(username : String, clientkey : String)","args_html":"(username : String, clientkey : String)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"new","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(username, clientkey)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clientkey:String-instance-method","name":"clientkey","abstract":false,"def":{"name":"clientkey","return_type":"String","visibility":"Public","body":"@clientkey"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@username.clone, @clientkey.clone)"}},{"html_id":"copy_with(username_username=@username,clientkey_clientkey=@clientkey)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"args_string":"(username _username = @username, clientkey _clientkey = @clientkey)","args_html":"(username _username = @username, clientkey _clientkey = @clientkey)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"visibility":"Public","body":"self.class.new(_username, _clientkey)"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}]},{"html_id":"drivers/Philips/Hue/Resource","path":"Philips/Hue/Resource.html","kind":"enum","full_name":"Philips::Hue::Resource","name":"Resource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L74"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Light","name":"Light","value":"0"},{"id":"Scene","name":"Scene","value":"1"},{"id":"Room","name":"Room","value":"2"},{"id":"Zone","name":"Zone","value":"3"},{"id":"GroupedLight","name":"GroupedLight","value":"4"},{"id":"Device","name":"Device","value":"5"},{"id":"Motion","name":"Motion","value":"6"},{"id":"GroupedMotion","name":"GroupedMotion","value":"7"},{"id":"GroupedLightLevel","name":"GroupedLightLevel","value":"8"},{"id":"CameraMotion","name":"CameraMotion","value":"9"},{"id":"Temperature","name":"Temperature","value":"10"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"instance_methods":[{"html_id":"camera_motion?-instance-method","name":"camera_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L84"},"def":{"name":"camera_motion?","visibility":"Public","body":"self == CameraMotion"}},{"html_id":"device?-instance-method","name":"device?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L80"},"def":{"name":"device?","visibility":"Public","body":"self == Device"}},{"html_id":"grouped_light?-instance-method","name":"grouped_light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L79"},"def":{"name":"grouped_light?","visibility":"Public","body":"self == GroupedLight"}},{"html_id":"grouped_light_level?-instance-method","name":"grouped_light_level?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L83"},"def":{"name":"grouped_light_level?","visibility":"Public","body":"self == GroupedLightLevel"}},{"html_id":"grouped_motion?-instance-method","name":"grouped_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L82"},"def":{"name":"grouped_motion?","visibility":"Public","body":"self == GroupedMotion"}},{"html_id":"light?-instance-method","name":"light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L75"},"def":{"name":"light?","visibility":"Public","body":"self == Light"}},{"html_id":"motion?-instance-method","name":"motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L81"},"def":{"name":"motion?","visibility":"Public","body":"self == Motion"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L77"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}},{"html_id":"scene?-instance-method","name":"scene?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L76"},"def":{"name":"scene?","visibility":"Public","body":"self == Scene"}},{"html_id":"temperature?-instance-method","name":"temperature?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L85"},"def":{"name":"temperature?","visibility":"Public","body":"self == Temperature"}},{"html_id":"zone?-instance-method","name":"zone?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L78"},"def":{"name":"zone?","visibility":"Public","body":"self == Zone"}}]}]}]},{"html_id":"drivers/Place","path":"Place.html","kind":"module","full_name":"Place","name":"Place","abstract":false,"locations":[{"filename":"src/place/area_config.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L4"},{"filename":"src/place/meet/help.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L3"},{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Place/AreaConfig","path":"Place/AreaConfig.html","kind":"class","full_name":"Place::AreaConfig","name":"AreaConfig","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:String,name,coordinates,building_id=nil,area_type:String=\"Feature\",feature_type:String=\"section\",capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"args_string":"(id : String, name, coordinates, building_id = nil, area_type : String = \"Feature\", feature_type : String = \"section\", capacity = nil)","args_html":"(id : String, name, coordinates, building_id = nil, area_type : String = "Feature", feature_type : String = "section", capacity = nil)","location":{"filename":"src/place/area_config.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, coordinates, building_id, area_type, feature_type, capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L33"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L33"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}},{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L46"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"self.properties[\"building_id\"]?.as?(String)"}},{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L50"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"(self.properties[\"capacity\"]?.as?(Int64 | Float64)).try(&.to_i)"}},{"html_id":"coordinates(map_width:Float64,map_height:Float64)-instance-method","name":"coordinates","abstract":false,"args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"args_string":"(map_width : Float64, map_height : Float64)","args_html":"(map_width : Float64, map_height : Float64)","location":{"filename":"src/place/area_config.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L62"},"def":{"name":"coordinates","args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"visibility":"Public","body":"@adjusted_coords = self.geometry.coordinates.map do |__temp_884|\n x, y = __temp_884\n {x * map_width, y * map_height}\nend"}},{"html_id":"coordinates-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L54"},"def":{"name":"coordinates","visibility":"Public","body":"if coords = @adjusted_coords\n coords\nelse\n self.geometry.coordinates\nend"}},{"html_id":"feature_type:String-instance-method","name":"feature_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L34"},"def":{"name":"feature_type","return_type":"String","visibility":"Public","body":"@feature_type"}},{"html_id":"feature_type=(feature_type:String)-instance-method","name":"feature_type=","abstract":false,"args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"args_string":"(feature_type : String)","args_html":"(feature_type : String)","location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L34"},"def":{"name":"feature_type=","args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"visibility":"Public","body":"@feature_type = feature_type"}},{"html_id":"geometry:Geometry-instance-method","name":"geometry","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L36"},"def":{"name":"geometry","return_type":"Geometry","visibility":"Public","body":"@geometry"}},{"html_id":"geometry=(geometry:Geometry)-instance-method","name":"geometry=","abstract":false,"args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"args_string":"(geometry : Geometry)","args_html":"(geometry : Geometry)","location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L36"},"def":{"name":"geometry=","args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"visibility":"Public","body":"@geometry = geometry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L30"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"self.properties[\"name\"].as(String)"}},{"html_id":"polygon:Polygon-instance-method","name":"polygon","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L66"},"def":{"name":"polygon","return_type":"Polygon","visibility":"Public","body":"@polygon || (@polygon = Polygon.new(coordinates.map do |coords|\n Point.new(*coords)\nend))"}},{"html_id":"properties:Hash(String,JSON::Any::Type)-instance-method","name":"properties","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L37"},"def":{"name":"properties","return_type":"Hash(String, JSON::Any::Type)","visibility":"Public","body":"@properties"}},{"html_id":"properties=(properties:Hash(String,JSON::Any::Type))-instance-method","name":"properties=","abstract":false,"args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(properties : Hash(String, JSON::Any::Type))","args_html":"(properties : Hash(String, JSON::Any::Type))","location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L37"},"def":{"name":"properties=","args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"visibility":"Public","body":"@properties = properties"}}]},{"html_id":"drivers/Place/AreaManagement","path":"Place/AreaManagement.html","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"areas:Hash(String,AreaConfig)-instance-method","name":"areas","doc":"area_id => area","summary":"

area_id => area

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L80"},"def":{"name":"areas","return_type":"Hash(String, AreaConfig)","visibility":"Public","body":"@areas"}},{"html_id":"building_id:String-instance-method","name":"building_id","doc":"PlaceOS client config","summary":"

PlaceOS client config

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L87"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.as(String))\nelse\n __temp_1\nend"}},{"html_id":"campus?:Bool-instance-method","name":"campus?","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L71"},"def":{"name":"campus?","return_type":"Bool","visibility":"Public","body":"@campus"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L160"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"is_inside?(x:Float64,y:Float64,area_id:String):Bool-instance-method","name":"is_inside?","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(x : Float64, y : Float64, area_id : String) : Bool","args_html":"(x : Float64, y : Float64, area_id : String) : Bool","location":{"filename":"src/place/area_management.cr","line_number":581,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L581"},"def":{"name":"is_inside?","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"area = @areas[area_id]\narea.polygon.contains(x, y)\n"}},{"html_id":"level_areas:Hash(String,Array(AreaConfig))-instance-method","name":"level_areas","doc":"zone_id => areas","summary":"

zone_id => areas

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L78"},"def":{"name":"level_areas","return_type":"Hash(String, Array(AreaConfig))","visibility":"Public","body":"@level_areas"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L74"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"@level_buildings"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L84"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"@level_details"}},{"html_id":"level_sensors:Hash(String,Hash(String,SensorMeta))-instance-method","name":"level_sensors","doc":"zone_id => sensors","summary":"

zone_id => sensors

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L76"},"def":{"name":"level_sensors","return_type":"Hash(String, Hash(String, SensorMeta))","visibility":"Public","body":"@level_sensors"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L105"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nspawn do\n update_scheduler\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L112"},"def":{"name":"on_unload","visibility":"Public","body":"@rate_limit.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@include_sensors = (setting?(Bool, :include_sensors)) || false\n@campus = (setting?(Bool, :is_campus)) || false\n@desk_id_mappings = (setting?(Array(String), :desk_id_mappings)) || ([] of String)\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@location_service = (setting?(String, :location_service)).presence || \"LocationServices\"\n@duplication_factor = (setting?(Float64, :duplication_factor)) || 0.8\n@sensor_discovery = Hash(String, Hash(String, SensorMeta)).new do |hash, key|\n hash[key] = {} of String => SensorMeta\nend\n@rounding_precision = (setting?(UInt32, :rounding_precision)) || 2_u32\nif building_areas = setting?(Hash(String, Array(AreaSetting)), :areas)\n @level_areas.clear\n building_areas.each do |zone_id, areas|\n @level_areas[zone_id] = areas.map do |area|\n config = AreaConfig.new(area[:id], area[:name], area[:coordinates], area[:building])\n @areas[config.id] = config\n config\n end\n end\nend\nschedule.clear\nschedule.every(@poll_rate) do\n synchronize_all_levels\nend\nif @include_sensors\n schedule.in(@poll_rate * 3) do\n schedule.every(2.hours + (rand(300)).seconds, immediate: true) do\n write_sensor_discovery\n end\n end\nend\nunits = (setting?(Hash(String, String), :units)) || ({} of String => String)\n@units = units.transform_keys do |key|\n SensorType.parse(key)\nend\n"}},{"html_id":"request_level_locations(level_id:String,sensor_data:Array(SensorDetail)|Nil=nil,overview:Bool=true):Nil-instance-method","name":"request_level_locations","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"args_string":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","args_html":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","location":{"filename":"src/place/area_management.cr","line_number":562,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L562"},"def":{"name":"request_level_locations","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@update_lock.synchronize do\n zone = Zone.from_json((staff_api.zone(level_id)).get.to_json)\n if !(zone.tags.includes?(\"level\"))\n logger.warn do\n \"attempted to update location for #{zone.name} (#{level_id}) which is not tagged as a level\"\n end\n return\n end\n metadata = Metadata.from_json((staff_api.metadata(level_id)).get.to_json)\n update_level_details(@level_details, zone, metadata)\n update_level_locations(@level_counts, level_id, @level_details[level_id], sensor_data)\n if overview\n update_overview\n end\nend"}},{"html_id":"request_sensor_data(level_id:String):Array(SensorDetail)-instance-method","name":"request_sensor_data","doc":"Queries all the sensors in a building and exposes the data","summary":"

Queries all the sensors in a building and exposes the data

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Array(SensorDetail)","args_html":"(level_id : String) : Array(SensorDetail)","location":{"filename":"src/place/area_management.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L206"},"def":{"name":"request_sensor_data","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Array(SensorDetail)","visibility":"Public","body":"level_sensors = @level_sensors[level_id]?\nsensors = location_service.sensors(zone_id: level_id).get.as_a\nif sensors.empty?\n return [] of SensorDetail\nend\ndetails = Array(SensorDetail).from_json(sensors.to_json)\nbuilding_id_local = level_buildings[level_id]? || building_id\nlocs = sensor_locations(level_id)\ndetails = details.select! do |sensor|\n id = sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac\n @sensor_discovery[building_id_local][id] = SensorMeta.new(sensor.name, sensor.type, sensor.level, sensor.x, sensor.y)\n sensor.module_id = sensor.binding = sensor.loc = nil\n if location = locs[id]?\n sensor.x = location.x\n sensor.y = location.y\n sensor.level = location.level\n sensor.building = building_id_local\n end\n if sensor.level.nil? && level_sensors\n if level_sensors[sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac]?\n sensor.level = level_id\n end\n end\n if sensor.x && sensor.level\n if ((curr_unit = sensor.unit) && (desired_unit = @units[sensor.type]?)) && (curr_unit != desired_unit)\n begin\n sensor.value = ((Units::Measurement.new(sensor.value, curr_unit)).convert_to(desired_unit)).to_f\n sensor.unit = desired_unit\n rescue error\n logger.warn(exception: error) do\n \"failed to convert #{sensor.value} #{curr_unit} => #{desired_unit}\"\n end\n end\n end\n sensor\n end\nend\nself[\"#{level_id}:sensors\"] = {value: details, ts_hint: \"complex\", ts_map: {x: \"xloc\", y: \"yloc\"}, ts_tag_keys: {\"s2_cell_id\"}, ts_tags: {pos_building: building_id_local, pos_level: level_id}}\ndetails\n"}},{"html_id":"sensor_discovery:Hash(String,Hash(String,Place::AreaManagement::SensorMeta))-instance-method","name":"sensor_discovery","doc":"Building => sensor_id => sensor meta","summary":"

Building => sensor_id => sensor meta

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L97"},"def":{"name":"sensor_discovery","visibility":"Public","body":"@sensor_discovery"}},{"html_id":"sensor_locations(level_id:String|Nil=nil)-instance-method","name":"sensor_locations","doc":"returns the sensor location data that has been configured","summary":"

returns the sensor location data that has been configured

","abstract":false,"args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil = nil)","args_html":"(level_id : String | Nil = nil)","location":{"filename":"src/place/area_management.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L197"},"def":{"name":"sensor_locations","args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if level_id\n @level_sensors[level_id]? || ({} of String => SensorMeta)\nelse\n @level_sensors.values.reduce({} of String => SensorMeta) do |acc, i|\n acc.merge!(i)\n end\nend"}},{"html_id":"synchronize_all_levels-instance-method","name":"synchronize_all_levels","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L651"},"def":{"name":"synchronize_all_levels","visibility":"Public","body":"@schedule_lock.synchronize do\n @update_all = true\nend"}},{"html_id":"update_available(level_ids:Array(String))-instance-method","name":"update_available","abstract":false,"args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"args_string":"(level_ids : Array(String))","args_html":"(level_ids : Array(String))","location":{"filename":"src/place/area_management.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L647"},"def":{"name":"update_available","args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@schedule_lock.synchronize do\n @update_levels.concat(level_ids)\nend"}},{"html_id":"write_sensor_discovery-instance-method","name":"write_sensor_discovery","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L190"},"def":{"name":"write_sensor_discovery","visibility":"Public","body":"sensor_discovery.each do |b_id, sensors|\n staff_api.write_metadata(b_id, \"sensor-discovered\", sensors)\nend"}}],"types":[{"html_id":"drivers/Place/AreaManagement/AreaSetting","path":"Place/AreaManagement/AreaSetting.html","kind":"alias","full_name":"Place::AreaManagement::AreaSetting","name":"AreaSetting","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: String, name: String, building: String | Nil, coordinates: Array(Tuple(Float64, Float64)))","aliased_html":"{id: String, name: String, building: String?, coordinates: Array({Float64, Float64})}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/ChildMetadata","path":"Place/AreaManagement/ChildMetadata.html","kind":"alias","full_name":"Place::AreaManagement::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L344"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/LevelCapacity","path":"Place/AreaManagement/LevelCapacity.html","kind":"alias","full_name":"Place::AreaManagement::LevelCapacity","name":"LevelCapacity","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String))","aliased_html":"{total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Metadata","path":"Place/AreaManagement/Metadata.html","kind":"alias","full_name":"Place::AreaManagement::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L343"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/RawLevelDetails","path":"Place/AreaManagement/RawLevelDetails.html","kind":"alias","full_name":"Place::AreaManagement::RawLevelDetails","name":"RawLevelDetails","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)), sensors: Hash(String, Float64))","aliased_html":"{wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: {total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}, sensors: Hash(String, Float64)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorDetail","path":"Place/AreaManagement/SensorDetail.html","kind":"alias","full_name":"Place::AreaManagement::SensorDetail","name":"SensorDetail","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::Detail","aliased_html":"PlaceOS::Driver::Interface::Sensor::Detail","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorMeta","path":"Place/AreaManagement/SensorMeta.html","kind":"struct","full_name":"Place::AreaManagement::SensorMeta","name":"SensorMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"},"constructors":[{"html_id":"new(name:Nil|String,type:PlaceOS::Driver::Interface::Sensor::SensorType|Nil,level:Nil|String,x:Float64|Nil,y:Float64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"args_string":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","args_html":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L180"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, type, level, x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_management.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L178"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level:String|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L185"},"def":{"name":"level","return_type":"String | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String|Nil)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"args_string":"(level : String | Nil)","args_html":"(level : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L185"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level = level"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L184"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L184"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:SensorType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L183"},"def":{"name":"type","return_type":"SensorType | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:SensorType|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"args_string":"(type : SensorType | Nil)","args_html":"(type : SensorType | Nil)","location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L183"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"x:Float64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L186"},"def":{"name":"x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64|Nil)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"args_string":"(x : Float64 | Nil)","args_html":"(x : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L186"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L187"},"def":{"name":"y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"args_string":"(y : Float64 | Nil)","args_html":"(y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L187"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Place/AreaManagement/SensorType","path":"Place/AreaManagement/SensorType.html","kind":"alias","full_name":"Place::AreaManagement::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Zone","path":"Place/AreaManagement/Zone.html","kind":"alias","full_name":"Place::AreaManagement::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}}]},{"html_id":"drivers/Place/AttendeeScanner","path":"Place/AttendeeScanner.html","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L27"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"externals_booked_to_visit-instance-method","name":"externals_booked_to_visit","doc":"Find the list of external guests expected in the building today","summary":"

Find the list of external guests expected in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L102"},"def":{"name":"externals_booked_to_visit","visibility":"Public","body":"building = building_id\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\n(staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {building}, type: \"visitor\")).get.as_a.map do |booking|\n Booking.new(booking[\"asset_id\"].as_s.downcase, Time.unix(booking[\"booking_start\"].as_i64), Time.unix(booking[\"booking_end\"].as_i64))\nend\n"}},{"html_id":"externals_in_events-instance-method","name":"externals_in_events","doc":"extract the list of externals invited to meetings in the building today","summary":"

extract the list of externals invited to meetings in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L62"},"def":{"name":"externals_in_events","visibility":"Public","body":"building = building_id\nexternals = [] of Guest\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nsystems.each do |level_id, system_ids|\n zones = {org_id, building, level_id}\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n events = begin\n (sys.get(\"Bookings\", 1)).status(Array(Event), :bookings)\n rescue\n [] of Event\n end\n events.each do |event|\n event_end = event.event_end || end_of_day\n if event_end <= now\n next\n end\n if event.event_start >= end_of_day\n break\n end\n externals.concat(event.attendees.reject do |attendee|\n internal_domains.find do |domain|\n attendee.email.downcase.ends_with?(domain)\n end\n end.map do |attendee|\n Guest.new(zones, system_id, attendee, event)\n end)\n end\n end\n end\nend\nexternals\n"}},{"html_id":"internal_domains:Array(String)-instance-method","name":"internal_domains","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L15"},"def":{"name":"internal_domains","return_type":"Array(String)","visibility":"Public","body":"@internal_domains"}},{"html_id":"invite_external_guests-instance-method","name":"invite_external_guests","doc":"invite missing guests","summary":"

invite missing guests

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L113"},"def":{"name":"invite_external_guests","visibility":"Public","body":"bookings = externals_booked_to_visit\nexternals = externals_in_events\nchecked = externals.size\nfailed = 0\nlogger.debug do\n \"found bookings #{bookings.size} and #{externals.size} externals\"\nend\nexternals.reject! do |guest|\n guest_email = guest.details.email.downcase\n bookings.find do |booking|\n booking.visitor_email == guest_email\n end\nend\nlogger.debug do\n \"found #{externals.size} guests without bookings\"\nend\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nexternals.each do |guest|\n begin\n event = guest.event\n host_email = (event.host.as(String)).downcase\n host = guest.event.attendees.find! do |attend|\n attend.email.downcase == host_email\n end\n guest_email = guest.details.email.downcase\n guest_name = guest.details.name\n sys_info = (staff_api.get_system(guest.system_id)).get\n staff_api.create_booking(booking_type: \"visitor\", asset_id: guest_email, user_id: host_email, user_email: host_email, user_name: host.name, zones: guest.zones, booking_start: event.event_start.to_unix, booking_end: event.event_end.try(&.to_unix) || end_of_day.to_unix, checked_in: false, approved: true, title: guest_name, description: event.title, time_zone: timezone.name, extension_data: {name: guest_name, parent_id: event.id, location_id: sys_info[\"name\"].as_s}, utm_source: \"attendee_scanner\", limit_override: 999, event_id: event.id, ical_uid: event.ical_uid, attendees: [{name: guest_name, email: guest_email}]).get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"failed to invite guest: #{guest.details.email}\"\n end\n end\nend\n{invited: externals.size - failed, checked: checked, failure: failed}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@internal_domains = (setting(Array(String), :internal_domains)).map!() do |__arg0|\n __arg0.strip.downcase\nend\n@building_id = nil\n@timezone = nil\n@systems = nil\n@org_id = nil\n"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L36"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_id).nil?\n @org_id = (begin\n building_details = (staff_api.zone(building_id)).get\n if tz = building_details[\"timezone\"].as_s?\n @timezone = Time::Location.load(tz)\n end\n building_details[\"parent_id\"].as_s\n end)\nelse\n __temp_1\nend"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L32"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/AttendeeScanner/Attendee","path":"Place/AttendeeScanner/Attendee.html","kind":"alias","full_name":"Place::AttendeeScanner::Attendee","name":"Attendee","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event::Attendee","aliased_html":"PlaceCalendar::Event::Attendee","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Booking","path":"Place/AttendeeScanner/Booking.html","kind":"struct","full_name":"Place::AttendeeScanner::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(visitor_email:String,booking_start:Time,booking_end:Time)-class-method","name":"new","abstract":false,"args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"args_string":"(visitor_email : String, booking_start : Time, booking_end : Time)","args_html":"(visitor_email : String, booking_start : Time, booking_end : Time)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"new","args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(visitor_email, booking_start, booking_end)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:Time-instance-method","name":"booking_end","abstract":false,"def":{"name":"booking_end","return_type":"Time","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:Time-instance-method","name":"booking_start","abstract":false,"def":{"name":"booking_start","return_type":"Time","visibility":"Public","body":"@booking_start"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@visitor_email.clone, @booking_start.clone, @booking_end.clone)"}},{"html_id":"copy_with(visitor_email_visitor_email=@visitor_email,booking_start_booking_start=@booking_start,booking_end_booking_end=@booking_end)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"args_string":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","args_html":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"copy_with","args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"visibility":"Public","body":"self.class.new(_visitor_email, _booking_start, _booking_end)"}},{"html_id":"visitor_email:String-instance-method","name":"visitor_email","abstract":false,"def":{"name":"visitor_email","return_type":"String","visibility":"Public","body":"@visitor_email"}}]},{"html_id":"drivers/Place/AttendeeScanner/Event","path":"Place/AttendeeScanner/Event.html","kind":"alias","full_name":"Place::AttendeeScanner::Event","name":"Event","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event","aliased_html":"PlaceCalendar::Event","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Guest","path":"Place/AttendeeScanner/Guest.html","kind":"struct","full_name":"Place::AttendeeScanner::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(zones:Tuple(String,String,String),system_id:String,details:Attendee,event:Event)-class-method","name":"new","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"args_string":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","args_html":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"new","args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"visibility":"Public","body":"_ = allocate\n_.initialize(zones, system_id, details, event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@zones.clone, @system_id.clone, @details.clone, @event.clone)"}},{"html_id":"copy_with(zones_zones=@zones,system_id_system_id=@system_id,details_details=@details,event_event=@event)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"args_string":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","args_html":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"copy_with","args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"visibility":"Public","body":"self.class.new(_zones, _system_id, _details, _event)"}},{"html_id":"details:Attendee-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"Attendee","visibility":"Public","body":"@details"}},{"html_id":"event:Event-instance-method","name":"event","abstract":false,"def":{"name":"event","return_type":"Event","visibility":"Public","body":"@event"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zones:Tuple(String,String,String)-instance-method","name":"zones","abstract":false,"def":{"name":"zones","return_type":"Tuple(String, String, String)","visibility":"Public","body":"@zones"}}]}]},{"html_id":"drivers/Place/AutoDeskCheckin","path":"Place/AutoDeskCheckin.html","kind":"class","full_name":"Place::AutoDeskCheckin","name":"AutoDeskCheckin","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_check_in-instance-method","name":"fetch_and_check_in","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L29"},"def":{"name":"fetch_and_check_in","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nbooking_ids = (staff_api.query_bookings(@booking_category, period_start, period_end, @zones, checked_in: false)).get.as_a.map do |booking|\n booking[\"id\"].as_i64\nend\nsuccess = 0\nfailed = [] of Int64\nbooking_ids.each do |id|\n begin\n (staff_api.booking_check_in(id, true, \"auto-checkin\")).get\n success = success + 1\n rescue error\n failed << id\n logger.debug(exception: error) do\n \"failed to check-in booking #{id}\"\n end\n end\nend\n\"checked-in #{success} bookings, failed #{failed.size}: #{failed}\"\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@zones = setting(Array(String), :check_in_zones)\n@time_period = (setting(Int32, :hours_before_booking_start)).hours\n@booking_category = setting(String, :booking_category)\nschedule.clear\nschedule.every(5.minutes) do\n fetch_and_check_in\nend\n"}}]},{"html_id":"drivers/Place/AutoRelease","path":"Place/AutoRelease.html","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:Zone-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L33"},"def":{"name":"building_zone","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (get_building_zone?.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L95"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"if (!@auto_release.resources.empty? && (@auto_release.time_before > 0 || @auto_release.time_after > 0)) && !building_zone.time_location?.nil?\n true\nelse\n logger.notice do\n \"auto release is not enabled on zone #{building_zone.id}\"\n end\n if @auto_release.resources.empty?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.resources being empty\"\n end\n end\n if @auto_release.time_before.zero? && @auto_release.time_after.zero?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.time_before and auto_release.time_after being 0\"\n end\n end\n if building_zone.time_location?.nil?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to building_zone.time_location being nil\"\n end\n end\n false\nend"}},{"html_id":"get_building_zone?:Zone|Nil-instance-method","name":"get_building_zone?","doc":"Finds the building zone for the current location services object","summary":"

Finds the building zone for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L84"},"def":{"name":"get_building_zone?","return_type":"Zone | ::Nil","visibility":"Public","body":"begin\n zones = Array(Zone).from_json(staff_api.zones(tags: \"building\").get.to_json)\n zone_ids = zones.map(&.id)\n zone_id = (zone_ids & system.zones).first\n zones.find do |zone|\n zone.id == zone_id\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone\"\n end\n nil\nend"}},{"html_id":"get_pending_bookings:Array(Booking)-instance-method","name":"get_pending_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L110"},"def":{"name":"get_pending_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n @auto_release.resources.each do |type|\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [building_zone.id]).get.to_json)\n results = results + bookings.select do |booking|\n !booking.checked_in\n end\n end\n logger.debug do\n \"found #{results.size} pending bookings\"\n end\n self[:pending_bookings] = results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of bookings\"\n end\n self[:pending_bookings] = [] of Booking\nend"}},{"html_id":"get_user_preferences?(user_id:String)-instance-method","name":"get_user_preferences?","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L132"},"def":{"name":"get_user_preferences?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"begin\n user = (staff_api.user(user_id)).get\n work_preferences = Array(WorktimePreference).from_json(user.as_h[\"work_preferences\"].to_json)\n work_overrides = Hash(String, WorktimePreference).from_json(user.as_h[\"work_overrides\"].to_json)\n {work_preferences: work_preferences, work_overrides: work_overrides}\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain user work location\"\n end\n nil\nend"}},{"html_id":"in_preference?(preference:WorktimePreference,event_time:Float64,locations:Array(String),match_locations:Bool=true):Bool-instance-method","name":"in_preference?","abstract":false,"args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"args_string":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","args_html":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L152"},"def":{"name":"in_preference?","args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"if match_locations\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && (locations.includes?(block.location))\n end\nelse\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && !(locations.includes?(block.location))\n end\nend"}},{"html_id":"in_preference_hours?(start_time:Float64,end_time:Float64,event_time:Float64):Bool-instance-method","name":"in_preference_hours?","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"args_string":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","args_html":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L144"},"def":{"name":"in_preference_hours?","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"return_type":"Bool","visibility":"Public","body":"if start_time < end_time\n start_time < event_time && end_time > event_time\nelse\n start_time < event_time || end_time > event_time\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = nil\n@email_schedule = (setting?(String, :email_schedule)).presence\n@email_template = (setting?(String, :email_template)) || \"auto_release\"\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\n@release_locations = (setting?(Array(String), :release_locations)) || [\"wfh\"]\n@auto_release = (setting?(AutoReleaseConfig, :auto_release)) || AutoReleaseConfig.new\nschedule.clear\nschedule.every(5.minutes) do\n pending_release\nend\nschedule.every(1.minute) do\n release_bookings\nend\nif emails = @email_schedule\n schedule.cron(emails, @timezone) do\n send_release_emails\n end\nend\n"}},{"html_id":"pending_release-instance-method","name":"pending_release","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L167"},"def":{"name":"pending_release","visibility":"Public","body":"results = [] of Booking\nif enabled?\nelse\n return results\nend\nbookings = get_pending_bookings\nbookings.each do |booking|\n if preferences = get_user_preferences?(booking.user_id)\n booking_start = (Time.unix(booking.booking_start)).in(building_zone.time_location!)\n day_of_week = booking_start.day_of_week.value\n if day_of_week == 7\n day_of_week = 0\n end\n event_time = booking_start.hour + (booking_start.minute / 60.0)\n overrides = preferences[:work_overrides].select do |_, pref|\n pref.blocks.size > 0\n end\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations))\n results << booking\n else\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations, false))\n else\n if (preference = preferences[:work_preferences].find do |pref|\n pref.day_of_week == day_of_week\n end) && (in_preference?(preference, event_time, @release_locations))\n results << booking\n end\n end\n end\n end\nend\nlogger.debug do\n \"found #{results.size} bookings pending release\"\nend\nself[:pending_release] = results\n"}},{"html_id":"release_bookings-instance-method","name":"release_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L214"},"def":{"name":"release_bookings","visibility":"Public","body":"begin\n released_booking_ids = [] of Int64\n if enabled?\n else\n return released_booking_ids\n end\n bookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\n previously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\n previously_released = previously_released - (previously_released - bookings.map(&.id))\n released_booking_ids = released_booking_ids + previously_released\n bookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if (Time.utc.to_unix - booking.booking_start) > (@auto_release.time_after * 60)\n if skip_release?(booking)\n next\n end\n logger.debug do\n \"rejecting booking #{booking.id} as it is within the time_after window\"\n end\n (staff_api.reject(booking.id)).get\n released_booking_ids << booking.id\n end\n end\n logger.debug do\n \"released #{released_booking_ids.size} bookings\"\n end\n self[:released_booking_ids] = released_booking_ids\nrescue error\n logger.warn(exception: error) do\n \"unable to release bookings\"\n end\n self[:released_booking_ids] = [] of Int64\nend"}},{"html_id":"send_release_emails-instance-method","name":"send_release_emails","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L280"},"def":{"name":"send_release_emails","visibility":"Public","body":"emailed_booking_ids = [] of Int64\nbookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\npreviously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\npreviously_emailed = self[:emailed_booking_ids]? ? Array(Int64).from_json(self[:emailed_booking_ids].to_json) : [] of Int64\npreviously_emailed = previously_emailed - (previously_emailed - bookings.map(&.id))\nemailed_booking_ids = emailed_booking_ids + previously_emailed\nbookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if previously_emailed.includes?(booking.id)\n next\n end\n if (enabled? && ((booking.booking_start - Time.utc.to_unix) < (@auto_release.time_before * 60))) && ((Time.utc.to_unix - booking.booking_start) < (@auto_release.time_after * 60))\n logger.debug do\n \"sending release email to #{booking.user_email} for booking #{booking.id} as it is withing the time_before window\"\n end\n timezone = booking.timezone.presence || @timezone.name\n location = Time::Location.load(timezone)\n starting = (Time.unix(booking.booking_start)).in(location)\n ending = (Time.unix(booking.booking_end)).in(location)\n args = {booking_id: booking.id, booking_start: booking.booking_start, booking_end: booking.booking_end, start_time: starting.to_s(@time_format), start_date: starting.to_s(@date_format), start_datetime: starting.to_s(@date_time_format), end_time: ending.to_s(@time_format), end_date: ending.to_s(@date_format), end_datetime: ending.to_s(@date_time_format), asset_id: booking.asset_id, user_id: booking.user_id, user_email: booking.user_email, user_name: booking.user_name, reason: booking.title, approver_name: booking.approver_name, approver_email: booking.approver_email, booked_by_name: booking.booked_by_name, booked_by_email: booking.booked_by_email}\n begin\n mailer.send_template(to: booking.user_email, template: {@email_template, \"auto_release\"}, args: args)\n emailed_booking_ids << booking.id\n rescue error\n logger.warn(exception: error) do\n \"failed to send release email to #{booking.user_email}\"\n end\n end\n end\nend\nself[:emailed_booking_ids] = emailed_booking_ids\n"}},{"html_id":"skip_release?(cached_booking:Booking):Bool-instance-method","name":"skip_release?","abstract":false,"args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"args_string":"(cached_booking : Booking) : Bool","args_html":"(cached_booking : Booking) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L205"},"def":{"name":"skip_release?","args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"return_type":"Bool","visibility":"Public","body":"if (booking_json_any = (staff_api.get_booking(cached_booking.id)).get) && (booking = Booking.from_json(booking_json_any.to_json))\n booking.checked_in || (booking.booking_start != cached_booking.booking_start)\nelse\n true\nend"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L248"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {@email_template, \"auto_release\"}, name: \"Auto release booking\", description: \"Notification when a booking is pending automatic release due to user's work location preferences\", fields: [{name: \"booking_id\", description: \"Unique identifier for the booking that may be released\"}, {name: \"booking_start\", description: \"Unix timestamp of when the booking begins\"}, {name: \"booking_end\", description: \"Unix timestamp of when the booking ends\"}, {name: \"start_time\", description: \"Formatted start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Formatted start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Formatted start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Formatted end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Formatted end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Formatted end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"asset_id\", description: \"Identifier of the booked resource\"}, {name: \"user_id\", description: \"Identifier of the person who has the booking\"}, {name: \"user_email\", description: \"Email address of the person who has the booking\"}, {name: \"user_name\", description: \"Full name of the person who has the booking\"}, {name: \"reason\", description: \"Title or purpose of the booking\"}, {name: \"approver_name\", description: \"Name of the person who approved the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}])]\n"}}],"types":[{"html_id":"drivers/Place/AutoRelease/AutoReleaseConfig","path":"Place/AutoRelease/AutoReleaseConfig.html","kind":"struct","full_name":"Place::AutoRelease::AutoReleaseConfig","name":"AutoReleaseConfig","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"time_before and time_after are in minutes","summary":"

time_before and time_after are in minutes

","constructors":[{"html_id":"new(time_before:Int64=0,time_after:Int64=0,resources:Array(String)=[]ofString)-class-method","name":"new","abstract":false,"args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"args_string":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","args_html":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"new","args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time_before, time_after, resources)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L348"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@time_before.clone, @time_after.clone, @resources.clone)"}},{"html_id":"copy_with(time_before_time_before=@time_before,time_after_time_after=@time_after,resources_resources=@resources)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"args_string":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","args_html":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"copy_with","args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"visibility":"Public","body":"self.class.new(_time_before, _time_after, _resources)"}},{"html_id":"resources:Array(String)-instance-method","name":"resources","abstract":false,"def":{"name":"resources","return_type":"Array(String)","visibility":"Public","body":"@resources"}},{"html_id":"time_after:Int64-instance-method","name":"time_after","abstract":false,"def":{"name":"time_after","return_type":"Int64","visibility":"Public","body":"@time_after"}},{"html_id":"time_before:Int64-instance-method","name":"time_before","abstract":false,"def":{"name":"time_before","return_type":"Int64","visibility":"Public","body":"@time_before"}}]},{"html_id":"drivers/Place/AutoRelease/Booking","path":"Place/AutoRelease/Booking.html","kind":"struct","full_name":"Place::AutoRelease::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approved:Bool-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L391"},"def":{"name":"approved","return_type":"Bool","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"args_string":"(approved : Bool)","args_html":"(approved : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L391"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L394"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L394"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L393"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L393"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L395"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L395"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L378"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"asset_id=(asset_id:String)-instance-method","name":"asset_id=","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L378"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id","return_type":"String","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"args_string":"(booked_by_id : String)","args_html":"(booked_by_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L383"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L383"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L382"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L382"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L380"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L380"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L389"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L389"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L403"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L403"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L387"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L387"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L373"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L373"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L402"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L402"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L401"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L401"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L390"},"def":{"name":"rejected","return_type":"Bool","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"args_string":"(rejected : Bool)","args_html":"(rejected : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L390"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L385"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L385"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L386"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L386"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L376"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L376"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L375"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L375"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L377"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L377"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L379"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L379"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimeBlock","path":"Place/AutoRelease/WorktimeBlock.html","kind":"struct","full_name":"Place::AutoRelease::WorktimeBlock","name":"WorktimeBlock","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L354"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"start_time: Start time of work hours. e.g. `7.5` being 7:30AM\nend_time: End time of work hours. e.g. `18.5` being 6:30PM\nlocation: Name of the location the work is being performed at","summary":"

start_time: Start time of work hours.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L355"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_time:Float64-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L358"},"def":{"name":"end_time","return_type":"Float64","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Float64)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"args_string":"(end_time : Float64)","args_html":"(end_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L358"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L359"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L359"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"start_time:Float64-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L357"},"def":{"name":"start_time","return_type":"Float64","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Float64)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"args_string":"(start_time : Float64)","args_html":"(start_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L357"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimePreference","path":"Place/AutoRelease/WorktimePreference.html","kind":"struct","full_name":"Place::AutoRelease::WorktimePreference","name":"WorktimePreference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"day_of_week: Index of the day of the week. `0` being Sunday","summary":"

day_of_week: Index of the day of the week.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocks:Array(WorktimeBlock)-instance-method","name":"blocks","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L367"},"def":{"name":"blocks","return_type":"Array(WorktimeBlock)","visibility":"Public","body":"@blocks"}},{"html_id":"blocks=(blocks:Array(WorktimeBlock))-instance-method","name":"blocks=","abstract":false,"args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"args_string":"(blocks : Array(WorktimeBlock))","args_html":"(blocks : Array(WorktimeBlock))","location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L367"},"def":{"name":"blocks=","args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"visibility":"Public","body":"@blocks = blocks"}},{"html_id":"day_of_week:Int32-instance-method","name":"day_of_week","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week","return_type":"Int32","visibility":"Public","body":"@day_of_week"}},{"html_id":"day_of_week=(day_of_week:Int32)-instance-method","name":"day_of_week=","abstract":false,"args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"args_string":"(day_of_week : Int32)","args_html":"(day_of_week : Int32)","location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week=","args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"visibility":"Public","body":"@day_of_week = day_of_week"}}]},{"html_id":"drivers/Place/AutoRelease/Zone","path":"Place/AutoRelease/Zone.html","kind":"struct","full_name":"Place::AutoRelease::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L412"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L412"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L415"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L415"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L409"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L409"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L414"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L414"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L411"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L411"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L418"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L418"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Set(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L413"},"def":{"name":"tags","return_type":"Set(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Set(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"args_string":"(tags : Set(String))","args_html":"(tags : Set(String))","location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L413"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_location!:Time::Location-instance-method","name":"time_location!","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L429"},"def":{"name":"time_location!","return_type":"Time::Location","visibility":"Public","body":"time_location?.not_nil!"}},{"html_id":"time_location?:Time::Location|Nil-instance-method","name":"time_location?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L423"},"def":{"name":"time_location?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if tz = timezone.presence\n @time_location || (@time_location = Time::Location.load(tz))\nend"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L416"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L416"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}}]}]},{"html_id":"drivers/Place/AutoReleaseLocker","path":"Place/AutoReleaseLocker.html","kind":"class","full_name":"Place::AutoReleaseLocker","name":"AutoReleaseLocker","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_bookings:Array(Booking)-instance-method","name":"get_bookings","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L47"},"def":{"name":"get_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: @booking_type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [get_building_id]).get.to_json)\n results = bookings.select do |booking|\n booking.checked_in\n end\n logger.debug do\n \"found #{results.size} #{@booking_type} bookings\"\n end\n results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of #{@booking_type} bookings\"\n end\n [] of Booking\nend"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L38"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@release_schedule = (setting?(String, :release_schedule)).presence\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@booking_type = (setting?(String, :booking_type)).presence || \"locker\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\nschedule.clear\nif release = @release_schedule\n schedule.cron(release, @timezone) do\n release_lockers\n end\nend\n"}},{"html_id":"release_lockers-instance-method","name":"release_lockers","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L65"},"def":{"name":"release_lockers","visibility":"Public","body":"bookings = get_bookings\nreleased = 0\nbookings.each do |booking|\n logger.debug do\n \"releasing booking #{booking.id} as it is within the time_after window\"\n end\n begin\n staff_api.update_booking(booking_id: booking.id, booking_end: Time.utc.to_unix, checked_in: false).get\n released = released + 1\n rescue error\n logger.warn(exception: error) do\n \"unable to release #{@booking_type} with booking id #{booking.id}\"\n end\n end\nend\n{total: bookings.size, released: released}\n"}}]},{"html_id":"drivers/Place/Booking","path":"Place/Booking.html","kind":"class","full_name":"Place::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:Int64,booking_type:String,booking_start:Int64,booking_end:Int64,user_id:String,user_email:String,user_name:String,zones:Array(String),booked_by_name:String,booked_by_email:String,action:Nil|String=nil,timezone:Nil|String=nil,asset_id:Nil|String=nil,resource_id:Nil|String=nil,checked_in:Bool|Nil=nil,rejected:Bool|Nil=nil,approved:Bool|Nil=nil,process_state:Nil|String=nil,last_changed:Int64|Nil=nil,approver_name:Nil|String=nil,approver_email:Nil|String=nil,title:Nil|String=nil,description:Nil|String=nil,asset_ids:Array(String)=[]ofString,created:Int64|Nil=nil,approver_id:Nil|String=nil,booked_by_id:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"args_string":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","args_html":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","location":{"filename":"src/place/booking_model.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L95"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, booking_type, booking_start, booking_end, user_id, user_email, user_name, zones, booked_by_name, booked_by_email, action, timezone, asset_id, resource_id, checked_in, rejected, approved, process_state, last_changed, approver_name, approver_email, title, description, asset_ids, created, approver_id, booked_by_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L7"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L7"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L31"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L31"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L38"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L38"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L36"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L36"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L37"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L37"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L20"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).as(String)"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L16"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"asset_ids:Array(String)-instance-method","name":"asset_ids","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids","return_type":"Array(String)","visibility":"Public","body":"@asset_ids"}},{"html_id":"asset_ids=(asset_ids:Array(String))-instance-method","name":"asset_ids=","abstract":false,"args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"args_string":"(asset_ids : Array(String))","args_html":"(asset_ids : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids=","args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@asset_ids = asset_ids"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String|Nil-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String|Nil)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"args_string":"(booked_by_id : String | Nil)","args_html":"(booked_by_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L12"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L12"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L11"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L11"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L10"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L10"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"changed-instance-method","name":"changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L55"},"def":{"name":"changed","visibility":"Public","body":"Time.unix(last_changed.not_nil!)"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L44"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @checked_in).nil?\n @checked_in = (false)\nelse\n __temp_1\nend"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L44"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L34"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L34"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L46"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L46"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"expand-instance-method","name":"expand","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L59"},"def":{"name":"expand","visibility":"Public","body":"if asset_ids.size < 2\n return {self}.each\nend\nasset_ids.map do |aid|\n Place::Booking.new(id: id, booking_type: booking_type, booking_start: booking_start, booking_end: booking_end, user_id: user_id, user_email: user_email, user_name: user_name, zones: zones, booked_by_name: booked_by_name, booked_by_email: booked_by_email, action: action, timezone: timezone, asset_id: aid, resource_id: resource_id, checked_in: checked_in, rejected: rejected, approved: approved, process_state: process_state, last_changed: last_changed, approver_name: approver_name, approver_email: approver_email, title: title, description: description, asset_ids: [aid], created: created, approver_id: approver_id, booked_by_id: booked_by_id)\nend\n"}},{"html_id":"extension_data:Hash(String,JSON::Any)-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L48"},"def":{"name":"extension_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @extension_data).nil?\n @extension_data = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"extension_data=(extension_data:Hash(String,JSON::Any))-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"args_string":"(extension_data : Hash(String, JSON::Any))","args_html":"(extension_data : Hash(String, JSON::Any))","location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L48"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L9"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L50"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L33"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L33"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L32"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L32"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L30"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L30"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L18"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L18"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L13"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L13"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L45"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L45"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L25"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L25"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L24"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L24"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L26"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L26"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L28"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L28"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/BookingApprovalWorkflows","path":"Place/BookingApprovalWorkflows.html","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":542,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L542"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_895|\n _event, entered = __temp_895\n expired > entered\nend\nexpired = 1.hour.ago.to_unix\n@group_email_notifications.reject! do |_, entered|\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n building_name = details[:name]\n approval_type = details[:approval]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, approval_type, building_name, building_key, support_email, attachments, months_from_now)\n end\nend\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L370"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @approval_lookup[zone_id]?\n if details\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details[:name], details[:approval], details[:support_email], attachments}\n end\nend\nnil\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L657"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (mailer.get_user_manager(staff_email)).get\n {(manager[\"email\"]? || manager[\"username\"]).as_s, manager[\"name\"].as_s}\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n {nil, nil}\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L59"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L94"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@remind_after = ((setting?(Int32, :remind_after)) || 24).hours\n@escalate_after = ((setting?(Int32, :escalate_after)) || 48).hours\n@notify_managers = (setting?(Bool, :notify_managers)) || false\n@approval_lookup = setting(Hash(String, SiteDetails), :approval_type)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\nschedule.clear\nschedule.every(5.minutes) do\n check_bookings\nend\nreminders = (setting?(Reminders, :reminders)) || {crons: [] of String, zones: {} of String => Array(String)}\nreminders[:crons].each do |cron|\n reminders[:zones].each do |timezone, zones|\n begin\n schedule.cron(cron, Time::Location.load(timezone)) do\n send_checkin_reminder(zones)\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to schedule reminder: #{zones} => #{timezone} : #{cron}\"\n end\n end\n end\nend\n"}},{"html_id":"send_checkin_reminder(zones:Array(String)|Nil=nil,timezone:String|Nil=nil)-instance-method","name":"send_checkin_reminder","abstract":false,"args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","args_html":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":713,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L713"},"def":{"name":"send_checkin_reminder","args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_now = Time.utc.in(timezone ? Time::Location.load(timezone) : @time_zone)\ntime_now = time_now.at_beginning_of_day + 12.hours\ntime_now = time_now.to_local_in(Time::Location::UTC)\nquery_start = time_now.to_unix\nquery_end = (time_now + 30.minutes).to_unix\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n if zones && !(zones.includes?(building_zone))\n next\n end\n building_name = details[:name]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_checkin_reminder(building_zone, building_name, building_key, support_email, attachments, query_start, query_end)\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L129"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"desk_id\", description: \"Identifier of the booked desk\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"support_email\", description: \"Contact email for booking support\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"group_booking_sent#{@template_suffix}\"}, name: \"Group booking sent#{@template_fields_suffix}\", description: \"Notification when a group booking has been created\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved_by#{@template_suffix}\"}, name: \"Booking approved by#{@template_fields_suffix}\", description: \"Notification when booking is approved by someone other than the requester\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved#{@template_suffix}\"}, name: \"Booking approved#{@template_fields_suffix}\", description: \"Notification when booking is approved\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"rejected#{@template_suffix}\"}, name: \"Booking rejected#{@template_fields_suffix}\", description: \"Notification when booking is rejected\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"checked_in#{@template_suffix}\"}, name: \"Booking checked in#{@template_fields_suffix}\", description: \"Notification when user checks in to their booking\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled_by#{@template_suffix}\"}, name: \"Booking cancelled by#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by someone other than the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_notify_cancelled#{@template_suffix}\"}, name: \"Booking cancelled manager notification#{@template_fields_suffix}\", description: \"Notification to manager when their team member's booking is cancelled\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_approval#{@template_suffix}\"}, name: \"Booking manager approval#{@template_fields_suffix}\", description: \"Request for manager to approve a booking#{@template_suffix}\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_contacted#{@template_suffix}\"}, name: \"Booking manager contacted#{@template_fields_suffix}\", description: \"Notification to user that their manager has been contacted for approval\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"notify_manager#{@template_suffix}\"}, name: \"Booking manager notification#{@template_fields_suffix}\", description: \"Notification to manager about their team member's booking\", fields: common_fields)]\n"}},{"html_id":"users_with_invalid_desk_bookings(building_zone:String,ending:Int64)-instance-method","name":"users_with_invalid_desk_bookings","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(building_zone : String, ending : Int64)","args_html":"(building_zone : String, ending : Int64)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":666,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L666"},"def":{"name":"users_with_invalid_desk_bookings","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"visibility":"Public","body":"meta_raw = (staff_api.metadata_children(building_zone, \"desks\")).get.as_a\nmetadata = {} of String => Hash(String, Array(String))\nmeta_raw.each do |zone|\n desks = {} of String => Array(String)\n zone_id = zone[\"zone\"][\"id\"].as_s\n zone[\"metadata\"][\"desks\"][\"details\"].as_a.each do |desk|\n desks[desk[\"id\"].as_s] = desk[\"groups\"].as_a.map() do |__arg11|\n __arg11.as_s.downcase\n end\n end\n metadata[zone_id] = desks\nend\nusers = [] of Tuple(String, String, String, Int64, Int64, String)\nbookings = staff_api.query_bookings(type: \"desk\", period_end: ending, zones: [building_zone], rejected: false).get.as_a\nbookings.each do |booking|\n user_email = booking[\"user_email\"].as_s\n level_id = (booking[\"zones\"].as_a.map(&.as_s).reject(building_zone)).first\n desk_id = booking[\"asset_id\"].as_s\n booking_id = booking[\"id\"].as_i64\n starting = booking[\"booking_start\"].as_i64\n if desks = metadata[level_id]?\n if groups = desks[desk_id]?\n if groups.empty?\n next\n end\n users_groups = (mailer.get_groups(user_email)).get.as_a.map do |g|\n g[\"name\"].as_s.downcase\n end\n overlap = users_groups & groups\n if overlap.empty?\n date_friendly = (Time.unix(starting)).to_s(@date_format)\n users << {user_email, desk_id, level_id, booking_id, starting, date_friendly}\n end\n end\n end\nend\nlogger.debug do\n \"Email,Desk ID,Zone,Booking id,Starting,Start date\\n#{users.map do |u|\n \"#{u[0]},#{u[1]},#{u[2]},#{u[3]},#{u[4]},#{u[5]}\"\n end.join(\"\\n\")}\"\nend\nnil\n"}}],"types":[{"html_id":"drivers/Place/BookingApprovalWorkflows/Reminders","path":"Place/BookingApprovalWorkflows/Reminders.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::Reminders","name":"Reminders","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(crons: Array(String), zones: Hash(String, Array(String)))","aliased_html":"{crons: Array(String), zones: Hash(String, Array(String))}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}},{"html_id":"drivers/Place/BookingApprovalWorkflows/SiteDetails","path":"Place/BookingApprovalWorkflows/SiteDetails.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::SiteDetails","name":"SiteDetails","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(approval: String, name: String, support_email: String, attachments: Hash(String, String) | Nil)","aliased_html":"{approval: String, name: String, support_email: String, attachments: Hash(String, String)?}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}}]},{"html_id":"drivers/Place/BookingApprover","path":"Place/BookingApprover.html","kind":"class","full_name":"Place::BookingApprover","name":"BookingApprover","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approver.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve_missed-instance-method","name":"approve_missed","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L78"},"def":{"name":"approve_missed","visibility":"Public","body":"booking_type = @approve_booking_types[0]? || \"desk\"\nbookings = Array(Booking).from_json(staff_api.query_bookings(type: booking_type, zones: [get_building_id], approved: false, period_end: 8.weeks.from_now.to_unix).get.to_json)\nbookings.each do |booking|\n booking.action = \"create\"\n approve_booking(booking)\nend\n\"found #{bookings.size} missed\"\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L37"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n approve_booking(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@approve_zones = (setting?(Array(String), :approve_zones)) || ([] of String)\n@approve_booking_types = (setting?(Array(String), :approve_booking_types)) || ([] of String)\nschedule.clear\nschedule.every(10.minutes) do\n approve_missed\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L96"},"def":{"name":"status","visibility":"Public","body":"{bookings_approved: @bookings_approved}"}}]},{"html_id":"drivers/Place/BookingCheckInHelper","path":"Place/BookingCheckInHelper.html","kind":"class","full_name":"Place::BookingCheckInHelper","name":"BookingCheckInHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_check_in_helper.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"current_meeting:PlaceCalendar::Event|Nil-instance-method","name":"current_meeting","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L95"},"def":{"name":"current_meeting","return_type":"PlaceCalendar::Event | ::Nil","visibility":"Public","body":"@current_meeting"}},{"html_id":"ignore_long_meeting?:Bool-instance-method","name":"ignore_long_meeting?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L145"},"def":{"name":"ignore_long_meeting?","return_type":"Bool","visibility":"Public","body":"meeting = current_meeting\nif meeting\nelse\n return false\nend\nevent_end = meeting.event_end\nif event_end\nelse\n return true\nend\nignore_length = @ignore_longer_than\nif ignore_length\nelse\n return false\nend\nmeeting_length = event_end - meeting.event_start\nmeeting_length >= ignore_length\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L15"},"def":{"name":"mailer","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\n(sys.implementing(Interface::Mailer))[0]\n"}},{"html_id":"meeting_pending?:Bool-instance-method","name":"meeting_pending?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L93"},"def":{"name":"meeting_pending?","return_type":"Bool","visibility":"Public","body":"@meeting_pending"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L108"},"def":{"name":"on_update","visibility":"Public","body":"@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n@decline_message = setting?(String, :decline_message)\n@mailer_system = setting?(String, :mailer_system)\n@ignore_longer_than = (setting?(Int32, :ignore_longer_than)).try(&.minutes)\n@prompt_after = ((setting?(Int32, :prompt_after)) || 10).minutes\n@present_from = ((setting?(Int32, :present_from)) || 5).minutes\n@auto_cancel = (setting?(Bool, :auto_cancel)) || false\n@check_in_url = (setting?(String, :check_in_url)) || \"\"\n@no_show_url = (setting?(String, :no_show_url)) || \"\"\nif @check_in_url.presence\n @domain = (URI.parse(@check_in_url)).host.not_nil!\nend\nsubscriptions.clear\nbookings.subscribe(:current_booking) do |_sub, pending|\n event = ::Union(PlaceCalendar::Event, ::Nil).from_json(pending)\n update_current(event)\nend\nbookings.subscribe(:current_pending) do |_sub, pending|\n update_pending(pending == \"true\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nmonitor(\"#{config.control_system.not_nil!.id}/guest/bookings/prompted\") do |_sub, response|\n checkin_or_end_meeting(**NamedTuple(id: String, check_in: Bool).from_json(response))\nend\ntimezone = (setting?(String, :time_zone)) || config.control_system.not_nil!.timezone.presence\nif timezone\n @timezone = Time::Location.load(timezone)\nend\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L94"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"staff_api-instance-method","name":"staff_api","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L21"},"def":{"name":"staff_api","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\nsys[:StaffAPI_1]\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L257"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {\"bookings\", \"check_in_prompt\"}, name: \"Check in prompt\", description: \"Email template for prompting meeting hosts to check in or cancel their booking\", fields: [{name: \"jwt\", description: \"Authentication token for secure responses\"}, {name: \"host_email\", description: \"Email address of the meeting organizer\"}, {name: \"host_name\", description: \"Full name of the meeting organizer\"}, {name: \"event_id\", description: \"Unique identifier for the calendar event\"}, {name: \"system_id\", description: \"Unique identifier for the room/space\"}, {name: \"meeting_room_name\", description: \"Display name of the meeting room\"}, {name: \"meeting_summary\", description: \"Title or subject of the meeting\"}, {name: \"meeting_datetime\", description: \"Formatted date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"meeting_time\", description: \"Formatted time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"meeting_date\", description: \"Formatted date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"check_in_url\", description: \"URL for confirming attendance\"}, {name: \"no_show_url\", description: \"URL for cancelling the booking\"}])]\n"}}]},{"html_id":"drivers/Place/BookingNotifier","path":"Place/BookingNotifier.html","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"calendar-instance-method","name":"calendar","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L64"},"def":{"name":"calendar","visibility":"Public","body":"system[:Calendar]"}},{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_notifier.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L365"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_902|\n _event, entered = __temp_902\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @notify_lookup.each do |building_zone, details|\n building_name = details.name\n email = details.email\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, building_name, building_key, email, details.notify_booking_owner, details.notify_manager, attachments, months_from_now)\n end\nend\n"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":508,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L508"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_notifier.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L313"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @notify_lookup[zone_id]?\n if details\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details, attachments}\n end\nend\n{nil, nil, nil}\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_notifier.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L489"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (calendar.get_user_manager(staff_email)).get\n (manager[\"email\"]? || manager[\"username\"]).as_s\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n nil\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L60"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L68"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L113"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\n@notify_lookup = setting(Hash(String, SiteDetails), :notify)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\n@poll_bookings = setting(Bool, :poll_bookings)\n@poll_every_minutes = setting(Int32, :poll_every_minutes)\nschedule.clear\nif @poll_bookings\n schedule.every(@poll_every_minutes.minutes) do\n check_bookings\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L136"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"asset_id\", description: \"Identifier of the booked asset (e.g., desk)\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}, {name: \"network_username\", description: \"Network access username (if configured)\"}, {name: \"network_password\", description: \"Generated network access password (if configured)\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"booked_by_notify#{@template_suffix}\"}, name: \"Booking booked by notification#{@template_fields_suffix}\", description: \"Notification when someone books on behalf of another person\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"booking_notify#{@template_suffix}\"}, name: \"Booking booked notification#{@template_fields_suffix}\", description: \"Notification when a booking is created for yourself\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when a booking is cancelled\", fields: common_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L497"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/BookingNotifier/SiteDetails","path":"Place/BookingNotifier/SiteDetails.html","kind":"class","full_name":"Place::BookingNotifier::SiteDetails","name":"SiteDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/BookingNotifier","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_notifier.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L96"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Hash(String,String)-instance-method","name":"attachments","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L100"},"def":{"name":"attachments","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @attachments).nil?\n @attachments = ({} of String => String)\nelse\n __temp_1\nend"}},{"html_id":"email:Array(String)-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L99"},"def":{"name":"email","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @email).nil?\n @email = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"include_network_credentials:Bool|Nil-instance-method","name":"include_network_credentials","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L103"},"def":{"name":"include_network_credentials","return_type":"Bool | ::Nil","visibility":"Public","body":"@include_network_credentials"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L98"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"network_group_ids:Array(String)-instance-method","name":"network_group_ids","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L110"},"def":{"name":"network_group_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @network_group_ids).nil?\n @network_group_ids = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"network_password_exclude:String|Nil-instance-method","name":"network_password_exclude","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L105"},"def":{"name":"network_password_exclude","return_type":"String | ::Nil","visibility":"Public","body":"@network_password_exclude"}},{"html_id":"network_password_length:Int32|Nil-instance-method","name":"network_password_length","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L104"},"def":{"name":"network_password_length","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_length"}},{"html_id":"network_password_minimum_lowercase:Int32|Nil-instance-method","name":"network_password_minimum_lowercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L106"},"def":{"name":"network_password_minimum_lowercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_lowercase"}},{"html_id":"network_password_minimum_numbers:Int32|Nil-instance-method","name":"network_password_minimum_numbers","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L108"},"def":{"name":"network_password_minimum_numbers","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_numbers"}},{"html_id":"network_password_minimum_symbols:Int32|Nil-instance-method","name":"network_password_minimum_symbols","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L109"},"def":{"name":"network_password_minimum_symbols","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_symbols"}},{"html_id":"network_password_minimum_uppercase:Int32|Nil-instance-method","name":"network_password_minimum_uppercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L107"},"def":{"name":"network_password_minimum_uppercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_uppercase"}},{"html_id":"notify_booking_owner:Bool|Nil-instance-method","name":"notify_booking_owner","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L102"},"def":{"name":"notify_booking_owner","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_booking_owner"}},{"html_id":"notify_manager:Bool|Nil-instance-method","name":"notify_manager","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L101"},"def":{"name":"notify_manager","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_manager"}}]}]},{"html_id":"drivers/Place/Bookings","path":"Place/Bookings.html","kind":"class","full_name":"Place::Bookings","name":"Bookings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"book_now(period_in_seconds:Int64,title:String|Nil=nil,owner:String|Nil=nil)-instance-method","name":"book_now","abstract":false,"args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"args_string":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","args_html":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L233"},"def":{"name":"book_now","args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"visibility":"Public","body":"title || (title = @default_title)\nstarting = Time.utc.to_unix\nending = starting + period_in_seconds\nif @next_pending || (status?(Bool, \"in_use\"))\n raise(\"the room is currently in use\")\nend\nif next_booking = upcoming\n if next_booking.event_start.to_unix < ending\n raise(\"unable to book due to clash\")\n end\nend\nlogger.debug do\n \"booking event #{title}, from #{starting}, to #{ending}, in #{@time_zone.name}, on #{@calendar_id}\"\nend\nroom_email = system.email.not_nil!\nif @application_permissions\n host_calendar = @calendar_id\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, true)]\n if owner && !owner.empty?\n attendees << (::PlaceCalendar::Event::Attendee.new(owner, owner))\n end\nelse\n host_calendar = owner.presence || @calendar_id\n room_is_organizer = host_calendar == room_email\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, room_is_organizer)]\nend\nevent = calendar.create_event(title: title, event_start: starting, event_end: ending, description: \"\", attendees: attendees, location: status?(String, \"room_name\"), timezone: @time_zone.name, calendar_id: host_calendar)\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(2.seconds) do\n poll_events\n end\nend\ncheck_in_actual(starting, check_bookings: false)\nevent\n"}},{"html_id":"calendar_id:String-instance-method","name":"calendar_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L60"},"def":{"name":"calendar_id","return_type":"String","visibility":"Public","body":"@calendar_id"}},{"html_id":"calendar_ids:Array(String)-instance-method","name":"calendar_ids","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L61"},"def":{"name":"calendar_ids","return_type":"Array(String)","visibility":"Public","body":"@calendar_ids"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/bookings.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L510"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nsys_email = @calendar_id.downcase\nif (sys_email == mac_address.downcase) && (host = current.try(&.host))\n {location: \"meeting\", assigned_to: host, mac_address: sys_email}\nend\n"}},{"html_id":"checkin:Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L193"},"def":{"name":"checkin","return_type":"Nil","visibility":"Public","body":"if booking = pending || current\n check_in_actual(booking.event_start.to_unix)\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L522"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\n[] of Nil\n"}},{"html_id":"end_meeting(meeting_start_time:Int64,notify:Bool=true,comment:String=\"cancelledatbookingpanel\"):Nil-instance-method","name":"end_meeting","doc":"End either the current meeting early, or the pending meeting","summary":"

End either the current meeting early, or the pending meeting

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"args_string":"(meeting_start_time : Int64, notify : Bool = true, comment : String = \"cancelled at booking panel\") : Nil","args_html":"(meeting_start_time : Int64, notify : Bool = true, comment : String = "cancelled at booking panel") : Nil","location":{"filename":"src/place/bookings.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L208"},"def":{"name":"end_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"cmeeting = current\nresult = if cmeeting && (cmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"deleting event #{cmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, cmeeting.id, notify: notify, comment: comment)\nelse\n nmeeting = upcoming\n if nmeeting && (nmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"declining event #{nmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, nmeeting.id, notify: notify, comment: comment)\n else\n raise(\"only the current or pending meeting can be cancelled\")\n end\nend\nresult.get\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(1.seconds) do\n poll_events\n end\nend\n"}},{"html_id":"is_stale?(timestamp:Int64|Nil):Bool-instance-method","name":"is_stale?","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"args_string":"(timestamp : Int64 | Nil) : Bool","args_html":"(timestamp : Int64 | Nil) : Bool","location":{"filename":"src/place/bookings.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L634"},"def":{"name":"is_stale?","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"if timestamp.nil?\n return self[:sensor_stale] = false\nend\nsensor_time = Time.unix(timestamp)\nstale_time = @sensor_stale_minutes.ago\nif sensor_time > stale_time\n self[:sensor_stale] = false\nelse\n @perform_sensor_search = true\n self[:sensor_stale] = true\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:UInt32|Nil=20_u32)-instance-method","name":"list_users","doc":"Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)","summary":"

Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","args_html":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","location":{"filename":"src/place/bookings.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L229"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"calendar.list_users(query, limit)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L481"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nemail = email.to_s.downcase\nusername = username.to_s.downcase\nmatching_events = [] of ::PlaceCalendar::Event\nif event = current\n emails = event.attendees.map() do |__arg4|\n __arg4.email.downcase\n end\n if host = event.host\n emails << host.downcase\n end\n if (emails.includes?(email)) || (emails.includes?(username))\n logger.debug do\n \"found user {#{email}, #{username}} in list of attendees\"\n end\n matching_events << event\n else\n if !username.empty? && emails.find(&.starts_with?(username))\n logger.debug do\n \"found email starting with username '#{username}' in list of attendees\"\n end\n matching_events << event\n end\n end\nend\nto_location_format(matching_events)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/bookings.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L506"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(locate_user(email, username)).map(&.[](:mac))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L84"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@calendar_id = ((setting?(String, :calendar_id)).presence || system.email.not_nil!).downcase\nids = ((setting?(Array(String), :calendar_ids)) || ([] of String)).map!(&.downcase)\nids.unshift(@calendar_id)\n@calendar_ids = ids.uniq!\n@perform_sensor_search = true\nschedule.in((Random.rand(30)).seconds + (Random.rand(30000)).milliseconds) do\n poll_events\nend\ncache_polling_period = ((setting?(UInt32, :cache_polling_period)) || 2_u32).minutes.total_milliseconds.to_i\ncache_polling_period = cache_polling_period + (Random.rand(5000))\ncache_random_period = cache_polling_period // 3\nschedule.every(cache_polling_period.milliseconds) do\n schedule.in((Random.rand(cache_random_period)).milliseconds) do\n poll_events\n end\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@default_title = (setting?(String, :book_now_default_title)).presence || \"Ad Hoc booking\"\nbook_now = setting?(Bool, :disable_book_now)\nnot_bookable = (setting?(Bool, :not_bookable)) || false\nself[:bookable] = bookable = not_bookable ? false : system.bookable\n@disable_book_now = book_now.nil? ? !bookable : !!book_now\n@disable_end_meeting = !!(setting?(Bool, :disable_end_meeting))\n@disable_book_now_host = (setting?(Bool, :disable_book_now_host)) || false\n@max_user_search_results = (setting?(UInt32, :max_user_search_results)) || 20_u32\npending_period = (setting?(UInt32, :pending_period)) || 5_u32\n@pending_period = pending_period.minutes\npending_before = (setting?(UInt32, :pending_before)) || 5_u32\n@pending_before = pending_before.minutes\ncache_days = (setting?(UInt32, :cache_days)) || 30_u32\n@cache_days = cache_days.days\n@change_event_sync_delay = (setting?(UInt32, :change_event_sync_delay)) || 5_u32\nlast_started = (setting?(Int64, :last_booking_started)) || 0_i64\n@last_booking_started = last_started > 30.minutes.from_now.to_unix ? 0_i64 : last_started\n@include_cancelled_bookings = (setting?(Bool, :include_cancelled_bookings)) || false\n@application_permissions = (setting?(Bool, :application_permissions)) || false\n@sensor_stale_minutes = ((setting?(Int32, :sensor_stale_minutes)) || 8).minutes\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nschedule.cron(\"* * * * *\") do\n schedule.in((rand(1000)).milliseconds) do\n if list = self[:bookings]?\n check_current_booking(list.as_a)\n end\n end\nend\npush_notificaitons_configure\ncontrol_sys = config.control_system.not_nil!\nself[:room_name] = ((setting?(String, :room_name)).presence || control_sys.display_name.presence) || control_sys.name\nself[:room_capacity] = (setting?(Int32, :room_capacity)) || control_sys.capacity\nself[:default_title] = @default_title\nself[:disable_book_now_host] = @disable_book_now_host\nself[:disable_book_now] = @disable_book_now\nself[:disable_end_meeting] = @disable_end_meeting\nself[:pending_period] = pending_period\nself[:pending_before] = pending_before\nself[:control_ui] = setting?(String, :control_ui)\nself[:catering_ui] = setting?(String, :catering_ui)\nself[:room_image] = (setting?(String, :room_image)) || control_sys.images.try(&.first?)\nself[:hide_meeting_details] = (setting?(Bool, :hide_meeting_details)) || false\nself[:hide_meeting_title] = (setting?(Bool, :hide_meeting_title)) || false\nself[:offline_color] = setting?(String, :offline_color)\nself[:offline_image] = setting?(String, :offline_image)\nself[:custom_qr_color] = setting?(String, :custom_qr_color)\nself[:custom_qr_url] = (setting?(String, :custom_qr_url)).try(&.gsub(\"{system_id}\", control_sys.id))\nhide_qr_code = (setting?(Bool, :hide_qr_code)) || false\nshow_qr_code = setting?(Bool, :show_qr_code)\nself[:show_qr_code] = show_qr_code.nil? ? !hide_qr_code : show_qr_code\nself[:sensor_mac] = @sensor_mac = setting?(String, :sensor_mac)\nself[:min_duration] = (setting?(Int32, :min_duration)) || 15\nself[:max_duration] = (setting?(Int32, :max_duration)) || 480\nself[:enable_end_meeting_button] = (setting?(Bool, :enable_end_meeting_button)) || false\n"}},{"html_id":"people_count?:Float64|Nil-instance-method","name":"people_count?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L527"},"def":{"name":"people_count?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n drivers = system.implementing(Interface::Sensor)\n count_data = (drivers.sensors(\"people_count\", @sensor_mac)).get.flat_map(&.as_a).first?\n if count_data\n else\n return nil\n end\n if is_stale?(count_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = count_data[\"value\"]\n (data.as_f? || data.as_i).to_f\nrescue error\n logger.warn(exception: error) do\n \"error checking people count\"\n end\n nil\nend"}},{"html_id":"people_present?:Float64|Nil-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L541"},"def":{"name":"people_present?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n count = people_count?\n if count\n return count > 0.0 ? 1.0 : 0.0\n end\n drivers = system.implementing(Interface::Sensor)\n presence_data = (drivers.sensors(\"presence\", @sensor_mac)).get.flat_map(&.as_a).first?\n if presence_data\n else\n return nil\n end\n if is_stale?(presence_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = presence_data[\"value\"]\n (data.as_f? || data.as_i).to_f > 0.0 ? 1.0 : 0.0\nrescue error\n logger.warn(exception: error) do\n \"error checking people presence\"\n end\n nil\nend"}},{"html_id":"poll_events:Nil-instance-method","name":"poll_events","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L281"},"def":{"name":"poll_events","return_type":"Nil","visibility":"Public","body":"begin\n if @polling\n return\n end\n @polling = true\n if @perform_sensor_search\n check_for_sensors\n end\n now = Time.local(@time_zone)\n start_of_day = now.at_beginning_of_day.to_unix\n cache_period = start_of_day + @cache_days.to_i\n events = @calendar_ids.flat_map do |cal_id|\n logger.debug do\n \"polling events #{cal_id}, from #{start_of_day}, to #{cache_period}, in #{@time_zone.name}\"\n end\n (calendar.list_events(cal_id, start_of_day, cache_period, @time_zone.name, include_cancelled: @include_cancelled_bookings)).get.as_a\n end.sort do |a, b|\n a[\"event_start\"].as_i64 <=> b[\"event_start\"].as_i64\n end\n self[:bookings] = events\n check_current_booking(events)\n events\nensure\n @polling = false\nend"}},{"html_id":"start_meeting(meeting_start_time:Int64):Nil-instance-method","name":"start_meeting","doc":"we no longer accept user specified values","summary":"

we no longer accept user specified values

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"args_string":"(meeting_start_time : Int64) : Nil","args_html":"(meeting_start_time : Int64) : Nil","location":{"filename":"src/place/bookings.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L188"},"def":{"name":"start_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"return_type":"Nil","visibility":"Public","body":"logger.warn do\n \"deprecated function call to start_meeting, please use checkin\"\nend\ncheckin\n"}},{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":740,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L740"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess","path":"Place/Bookings/GrantAreaAccess.html","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"allocations:Hash(String,Array(String))-instance-method","name":"allocations","doc":"user_id => Array(special access)","summary":"

user_id => Array(special access)

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L29"},"def":{"name":"allocations","return_type":"Hash(String, Array(String))","visibility":"Public","body":"@allocations"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"cached_user_lookups:Hash(String,String|Int64)-instance-method","name":"cached_user_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L30"},"def":{"name":"cached_user_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_user_lookups"}},{"html_id":"cached_zone_lookups:Hash(String,String|Int64)-instance-method","name":"cached_zone_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L31"},"def":{"name":"cached_zone_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_zone_lookups"}},{"html_id":"desks(level_id:String):Hash(String,String)-instance-method","name":"desks","doc":"returns desk_id => security zone name / id","summary":"

returns desk_id => security zone name / id

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Hash(String, String)","args_html":"(level_id : String) : Hash(String, String)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L119"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"desks = (staff_api.metadata(level_id, \"desks\")).get.dig?(\"desks\", \"details\")\nsecurity = {} of String => String\nif desks\nelse\n return security\nend\n(Array(Desk).from_json(desks.to_json)).each do |desk|\n sec = desk.security.presence\n if sec\n else\n next\n end\n security[desk.id] = sec\nend\nsecurity\n"}},{"html_id":"ensure_booking_access-instance-method","name":"ensure_booking_access","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L132"},"def":{"name":"ensure_booking_access","visibility":"Public","body":"errors = [] of String\n@mutex.synchronize do\n now = (Time.local(timezone)).at_beginning_of_day\n end_of_day = (3.days.from_now.in(timezone)).at_end_of_day\n access_required = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n levels.each do |level_id|\n desks = desks(level_id)\n if desks.empty?\n next\n end\n desk_bookings = (staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {level_id}, type: \"desk\")).get.as_a\n if desk_bookings.empty?\n next\n end\n desk_bookings.each do |booking|\n desk = booking[\"asset_id\"].as_s\n if security = desks[desk]?\n user_access = access_required[booking[\"user_email\"].as_s.downcase]\n user_access << security\n user_access.uniq!\n end\n end\n end\n allocations = @allocations\n if allocations == access_required\n return\n end\n remove = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n add = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n logger.debug do\n \"found #{allocations.size} users that need access changes\"\n end\n all_keys = allocations.keys.concat(access_required.keys)\n all_keys.each do |key|\n current = allocations[key]? || ([] of String)\n desired = access_required[key]? || ([] of String)\n to_remove = current - desired\n to_add = desired - current\n if to_remove.empty?\n else\n remove[key] = to_remove\n end\n if to_add.empty?\n else\n add[key] = to_add\n end\n end\n logger.debug do\n \"deleting permissions: #{remove.size}\"\n end\n logger.debug do\n \"granting permissions: #{add.size}\"\n end\n security = security_system\n remove.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_remove_member(zone_id, user_id)).get\n rescue error\n access_required[user_email] << zone\n msg = \"failed to remove #{user_email} from security zone: #{zone}\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n rescue error\n access_required[user_email] = allocations[user_email]\n add.delete(user_email)\n msg = \"failed to remove #{user_email} from security zones\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n add.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_add_member(zone_id, user_id)).get\n rescue error\n access_required[user_email].delete(zone)\n msg = \"failed to add #{user_email} to security zone: #{zone}\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n rescue error\n access_required.delete(user_email)\n msg = \"failed to add #{user_email} to security zones\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n define_setting(:permissions_allocated, access_required)\nend\nself[:sync_errors] = errors\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L53"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"systems.keys"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n check_access(Booking.from_json(payload))\nend\nschedule.every(30.minutes) do\n ensure_booking_access\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@timezone = nil\n@systems = nil\n@mutex.synchronize do\n @allocations = (setting?(Hash(String, Array(String)), :permissions_allocated)) || Hash(String, Array(String)).new\nend\n"}},{"html_id":"security_system-instance-method","name":"security_system","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L13"},"def":{"name":"security_system","visibility":"Public","body":"(system.implementing(Interface::ZoneAccessSecurity)).first"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L49"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg0|\n __arg0.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}},{"html_id":"user_id?(email:String):String|Int64|Nil-instance-method","name":"user_id?","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L78"},"def":{"name":"user_id?","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_user_id(security, email.downcase)\n"}},{"html_id":"zone_id?(name_or_id:String):String|Int64|Nil-instance-method","name":"zone_id?","abstract":false,"args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"args_string":"(name_or_id : String) : String | Int64 | Nil","args_html":"(name_or_id : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L92"},"def":{"name":"zone_id?","args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_zone_id(security, name_or_id)\n"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess/Desk","path":"Place/Bookings/GrantAreaAccess/Desk.html","kind":"struct","full_name":"Place::Bookings::GrantAreaAccess::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings/GrantAreaAccess","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L74"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"security:String|Nil-instance-method","name":"security","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L75"},"def":{"name":"security","return_type":"String | ::Nil","visibility":"Public","body":"@security"}}]}]},{"html_id":"drivers/Place/Bookings/NotifyEvent","path":"Place/Bookings/NotifyEvent.html","kind":"struct","full_name":"Place::Bookings::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L667"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings.cr","line_number":668,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L668"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L674"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":670,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L670"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L677"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":671,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L671"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L672"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":673,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L673"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/Bookings/NotifyType","path":"Place/Bookings/NotifyType.html","kind":"enum","full_name":"Place::Bookings::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L655"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L657"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L659"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L663"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":664,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L664"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":662,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L662"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L658"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/Bookings/ServiceName","path":"Place/Bookings/ServiceName.html","kind":"enum","full_name":"Place::Bookings::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L650"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L651"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L652"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/Calendar","path":"Place/Calendar.html","kind":"class","full_name":"Place::Calendar","name":"Calendar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/CalendarCommon","path":"Place/CalendarCommon.html","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon","abstract":false,"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"locations":[{"filename":"src/place/calendar_common.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"including_types":[{"html_id":"drivers/Microsoft/GraphAPI","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI"},{"html_id":"drivers/Place/Calendar","kind":"class","full_name":"Place::Calendar","name":"Calendar"},{"html_id":"drivers/Place/WorkspaceAPI","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L330"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"accepting event #{event_id} on #{calendar_id}\"\nend\nclient(&.accept_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"access_token(user_id:String|Nil=nil)-instance-method","name":"access_token","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String | Nil = nil)","args_html":"(user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L161"},"def":{"name":"access_token","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.info do\n \"access token requested #{user_id}\"\nend\nclient(&.access_token(user_id))\n"}},{"html_id":"calendar_service_name-instance-method","name":"calendar_service_name","doc":"returns: google or office365","summary":"

returns: google or office365

","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L396"},"def":{"name":"calendar_service_name","visibility":"Public","body":"@client.not_nil!.client_id"}},{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]of::PlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L339"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = ::PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nclient(&.create_event(user_id, event, calendar_id))\n"}},{"html_id":"create_notifier(resource:String,notification_url:String,expiration_time:Int64,client_secret:String|Nil=nil,lifecycle_notification_url:String|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"create_notifier","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"args_string":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","args_html":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L401"},"def":{"name":"create_notifier","args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(expiration_time)\nclient(&.create_notifier(resource, notification_url, expires, client_secret, lifecycle_notification_url: lifecycle_notification_url))\n"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L312"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"declining event #{event_id} on #{calendar_id}\"\nend\nclient(&.decline_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L321"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nclient(&.delete_event(user_id, event_id, calendar_id: calendar_id, notify: notify))\n"}},{"html_id":"delete_notifier(subscription:PlaceCalendar::Subscription):Nil-instance-method","name":"delete_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"args_string":"(subscription : PlaceCalendar::Subscription) : Nil","args_html":"(subscription : PlaceCalendar::Subscription) : Nil","location":{"filename":"src/place/calendar_common.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L420"},"def":{"name":"delete_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"return_type":"Nil","visibility":"Public","body":"client(&.delete_notifier(subscription))"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/calendar_common.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L119"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/calendar_common.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L115"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"get_event(calendar_id:String,event_id:String,user_id:String|Nil=nil)-instance-method","name":"get_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L305"},"def":{"name":"get_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"fetching event #{event_id} on #{calendar_id}\"\nend\nuser_id = (user_id || @service_account.presence) || calendar_id\nclient(&.get_event(user_id, id: event_id, calendar_id: calendar_id))\n"}},{"html_id":"get_group(group_id:String)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L258"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n office_client = (_client.calendar.as(PlaceCalendar::Office365)).client\n if group_id.includes?('@')\n group = office_client.list_groups(filter: \"mail eq '#{group_id}'\").value.first?\n if group\n return group.to_place_group\n end\n end\n (office_client.get_group(group_id)).to_place_group\n end\nend\n"}},{"html_id":"get_groups(user_id:String)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L167"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nclient(&.get_groups(user_id))\n"}},{"html_id":"get_members(group_id:String,next_page:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(group_id : String, next_page : String | Nil = nil)","args_html":"(group_id : String, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L177"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nif group_id.includes?('@')\n client do |_client|\n if _client.client_id == (:office365)\n logger.warn do\n \"inefficient group members request. Recommended obtaining group.id versus using email\"\n end\n end\n end\nend\nmembers = client(&.get_members(group_id, next_link: next_page))\nif member = members.first?\n member.next_page = member.next_link\nend\nmembers\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L220"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nclient(&.get_user_by_email(user_id))\n"}},{"html_id":"get_user_manager(user_id:String)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L233"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.get_user_manager(user_id)).to_place_calendar\n end\nend\n"}},{"html_id":"in_flight_size-instance-method","name":"in_flight_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L111"},"def":{"name":"in_flight_size","visibility":"Public","body":"@flight_size"}},{"html_id":"list_calendars(user_id:String)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L226"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nclient(&.list_calendars(user_id))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,ical_uid:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L273"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"location = time_zone ? Time::Location.load(time_zone) : Time::Location.local\nperiod_start = (Time.unix(period_start)).in(location)\nperiod_end = (Time.unix(period_end)).in(location)\nuser_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"listing events for #{calendar_id}\"\nend\n_client = @client.not_nil!\nevents = if _client.client_id == (:google)\n (_client.calendar.as(PlaceCalendar::Google)).list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid, quotaUser: calendar_id[0..39])\nelse\n _client.list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid)\nend\nif ical_uid\n events = events.select do |e|\n e.ical_uid == ical_uid\n end\nend\nevents\n"}},{"html_id":"list_groups(query:String|Nil=nil,filter:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, filter : String | Nil = nil)","args_html":"(query : String | Nil = nil, filter : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L244"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{filter || query}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.list_groups(query, filter: filter)).value.map(&.to_place_group)\n end\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,filter:String|Nil=nil,next_page:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L203"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query || filter}, limit #{limit} (next: #{!!next_page})\"\nend\nusers = client(&.list_users(query, limit, filter: filter, next_link: next_page))\nif user = users.first?\n user.next_page = user.next_link\nend\nusers\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L40"},"def":{"name":"on_unload","visibility":"Public","body":"@in_flight.close\n@channel.close\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"if proxy_config = setting?(NamedTuple(host: String, port: Int32, auth: NamedTuple(username: String, password: String) | ::Nil), :proxy)\n ConnectProxy.proxy_uri = \"http://#{proxy_config[:host]}:#{proxy_config[:port]}\"\n if proxy_auth = proxy_config[:auth]\n ConnectProxy.username = proxy_auth[:username]\n ConnectProxy.password = proxy_auth[:password]\n end\nend\nConnectProxy.verify_tls = !!(setting?(Bool, :proxy_verify_tls))\nConnectProxy.disable_crl_checks = !!(setting?(Bool, :proxy_disable_crl))\n@service_account = (setting?(String, :calendar_service_account)).presence\n@rate_limit = (setting?(Int32, :rate_limit)) || 10\n@wait_time = 1.second / @rate_limit\n@mailer_from = (setting?(String, :mailer_from)).presence || @service_account\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n@in_flight.close\n@channel.close\n@client = begin\n config = setting(GoogleParams, :calendar_config)\n cli = ::PlaceCalendar::Client.new(**config)\n @channel = Channel(Nil).new(9)\n @in_flight = Channel(Nil).new(10)\n spawn do\n rate_limiter\n end\n cli\nrescue\n config = setting(OfficeParams, :calendar_config)\n ::PlaceCalendar::Client.new(**config)\nend\n"}},{"html_id":"queue_size-instance-method","name":"queue_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L107"},"def":{"name":"queue_size","visibility":"Public","body":"@queue_size"}},{"html_id":"reauthorize_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"reauthorize_notifier","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L414"},"def":{"name":"reauthorize_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = new_expiration_time ? Time.unix(new_expiration_time) : nil\nclient(&.reauthorize_notifier(subscription, expires))\n"}},{"html_id":"renew_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64):PlaceCalendar::Subscription-instance-method","name":"renew_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L407"},"def":{"name":"renew_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(new_expiration_time)\nclient(&.renew_notifier(subscription, expires))\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L124"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"sender = case from\nin String\n from\nin Array(String)\n from.first? || @mailer_from.not_nil!\nin Nil\n @mailer_from.not_nil!\nend\nlogger.debug do\n \"an email was sent from: #{sender}, to: #{to}\"\nend\nclient do |__arg0|\n __arg0.calendar.send_mail(sender, to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc)\nend\n"}},{"html_id":"update_event(event:PlaceCalendar::Event,user_id:String|Nil=nil,calendar_id:String|Nil=nil)-instance-method","name":"update_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"args_string":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","args_html":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L386"},"def":{"name":"update_event","args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"updating event #{event.id} on #{event.host}\"\nend\nclient(&.update_event(user_id: user_id, event: event, calendar_id: calendar_id))\n"}}],"types":[{"html_id":"drivers/Place/CalendarCommon/GoogleParams","path":"Place/CalendarCommon/GoogleParams.html","kind":"alias","full_name":"Place::CalendarCommon::GoogleParams","name":"GoogleParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String)","aliased_html":"{scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}},{"html_id":"drivers/Place/CalendarCommon/OfficeParams","path":"Place/CalendarCommon/OfficeParams.html","kind":"alias","full_name":"Place::CalendarCommon::OfficeParams","name":"OfficeParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String, conference_type: String | Nil)","aliased_html":"{tenant: String, client_id: String, client_secret: String, conference_type: String?}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}}]},{"html_id":"drivers/Place/CalendarDelegated","path":"Place/CalendarDelegated.html","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]ofPlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L207"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nprocess((client(act_as_user)).post(\"/api/staff/v1/events\", body: event.to_json, headers: act_as(act_as_user)))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L174"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nif notify\n begin\n process((client(act_as_user)).post(\"/api/staff/v1/events/#{event_id}/decline\", params: params, headers: act_as(act_as_user)))\n rescue\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\n end\nelse\n params[\"notify\"] = \"false\"\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\nend\n"}},{"html_id":"get_group(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L125"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_groups(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L78"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/groups\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_members(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L84"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}/members\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L97"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user_manager(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L110"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/manager\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_calendars(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L103"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/calendars\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L145"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing events for #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nparams[\"period_start\"] = period_start.to_s\nparams[\"period_end\"] = period_end.to_s\nif include_cancelled\n params[\"include_cancelled\"] = \"true\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/events\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_groups(query:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L117"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{query}, note: graphAPI only\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L90"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query}\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/people\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L53"},"def":{"name":"on_update","visibility":"Public","body":"rate_limit = (setting?(Float64, :rate_limit)) || 3.0\n@limiter = RateLimiter.new(rate: rate_limit, max_burst: rate_limit.to_i)\n@api_key = api_key = setting(String, :api_key)\ntransport.before_request do |request|\n if request.headers[\"Authorization\"]?\n else\n request.headers[\"X-API-Key\"] = api_key\n end\nend\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n"}}],"types":[{"html_id":"drivers/Place/CalendarDelegated/User","path":"Place/CalendarDelegated/User.html","kind":"struct","full_name":"Place::CalendarDelegated::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L251"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/CalendarDelegated","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/calendar_delegated.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L252"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L255"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L256"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L254"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Chat","path":"Place/Chat.html","kind":"module","full_name":"Place::Chat","name":"Chat","abstract":false,"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L4"},{"filename":"src/place/chat/health_rooms_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Chat/ConferenceDetails","path":"Place/Chat/ConferenceDetails.html","kind":"struct","full_name":"Place::Chat::ConferenceDetails","name":"ConferenceDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(place_id:String,space_id:String,host_pin:String,guest_pin:String)-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"args_string":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","args_html":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L16"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, space_id, host_pin, guest_pin)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L14"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"guest_pin:String-instance-method","name":"guest_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L11"},"def":{"name":"guest_pin","return_type":"String","visibility":"Public","body":"@guest_pin"}},{"html_id":"host_pin:String-instance-method","name":"host_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L10"},"def":{"name":"host_pin","return_type":"String","visibility":"Public","body":"@host_pin"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L8"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L9"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}}]},{"html_id":"drivers/Place/Chat/HealthRooms","path":"Place/Chat/HealthRooms.html","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EXAMPLE_SMS_TEMPLATE","name":"EXAMPLE_SMS_TEMPLATE","value":"\"patient %{patient_name} is waiting in %{room_name} for an appointment at %{appointment_time}\""}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"guest_mark_as_contacted(rtc_user_id:String,session_id:String,contacted:Bool=true):Bool-instance-method","name":"guest_mark_as_contacted","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"args_string":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","args_html":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L808"},"def":{"name":"guest_mark_as_contacted","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"found = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n if participant = meeting.participants[rtc_user_id]?\n found = true\n participant.contacted = contacted\n end\n end\nend\nlogger.debug do\n \"[meet] marking guest #{rtc_user_id} as contacted: #{contacted} in session #{session_id}\"\nend\nif found\n update_meeting_state(session_id)\nend\nfound\n"}},{"html_id":"guest_move_session(rtc_user_id:String,session_id:String,new_session_id:String):Bool-instance-method","name":"guest_move_session","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","args_html":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":823,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L823"},"def":{"name":"guest_move_session","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"system_id = nil\nnew_meeting = nil\nif @recent_lock.synchronize do\n @recently_disconnected[rtc_user_id]?\nend\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as disconnected\"\n end\n raise(\"can't move disconnected users, please wait for reconnection or kick\")\nend\n@meeting_mutex.synchronize do\n if (meeting = @meetings[session_id]?) && (new_meeting = @meetings[new_session_id]?)\n if participant = meeting.remove(rtc_user_id)\n system_id = meeting.system_id\n new_meeting.add(participant)\n if meeting.empty?\n @meetings.delete(session_id)\n @room_mutex.synchronize do\n @rooms[system_id].try(&.delete(session_id))\n end\n end\n end\n end\nend\nif system_id && new_meeting\n logger.debug do\n \"[meet] moving user #{rtc_user_id} into #{new_session_id} from #{session_id}\"\n end\n update_meeting_state(session_id, system_id)\n update_meeting_state(new_session_id)\n conference = new_meeting.conference\n staff_api.transfer_user(rtc_user_id, new_session_id, {space_id: conference.space_id, guest_pin: conference.guest_pin})\nelse\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as could not find session\"\n end\nend\n!!system_id\n"}},{"html_id":"meeting_end(session_id:String)-instance-method","name":"meeting_end","doc":"removes the meeting from the list and kicks anyone left in the meeting","summary":"

removes the meeting from the list and kicks anyone left in the meeting

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L778"},"def":{"name":"meeting_end","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nsystem_id = nil\nmeeting = nil\nlogger.debug do\n \"[meet] ending meeting #{session_id} ended by #{placeos_user_id}\"\nend\n@meeting_mutex.synchronize do\n meeting = @meetings.delete(session_id)\n if meeting\n else\n raise(\"meeting not found\")\n end\n system_id = meeting.system_id\n @room_mutex.synchronize do\n if sessions = @rooms[system_id]?\n sessions.delete(session_id)\n if sessions.empty?\n @rooms.delete(system_id)\n end\n end\n end\nend\nmeeting.not_nil!.participants.keys.each do |rtc_user_id|\n staff_api.kick_user(rtc_user_id, session_id, \"meeting ended\")\nend\nupdate_meeting_state(session_id, system_id.as(String))\n"}},{"html_id":"meeting_join(rtc_user_id:String,session_id:String,type:String|Nil=nil,system_id:String|Nil=nil,text_chat_only:Bool|Nil=nil):ConferenceDetails-instance-method","name":"meeting_join","doc":"this is how staff members create a meeting room\nor join an existing meeting","summary":"

this is how staff members create a meeting room or join an existing meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","args_html":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","location":{"filename":"src/place/chat/health_rooms.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L653"},"def":{"name":"meeting_join","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"return_type":"ConferenceDetails","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nuser_details = (staff_api.user(placeos_user_id)).get\nuser_name = user_details[\"name\"].as_s\nparticipant = Participant.new(user_id: rtc_user_id, name: user_name, email: user_details[\"email\"].as_s, type: type, staff_user_id: placeos_user_id, text_chat_only: text_chat_only)\n@recent_lock.synchronize do\n @recently_disconnected.delete(rtc_user_id)\nend\nmeeting = nil\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n system_id = meeting.system_id\n end\nend\nif system_id\nelse\n raise(\"must provide a system id if there is not an existing session\")\nend\nsystem_id = system_id.as(String)\ntimezone = meeting.try(&.timezone) || (timezone_system(system_id))\nlogger.debug do\n if meeting\n \"[meet] joining existing meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n else\n \"[meet] creating new meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n end\nend\nif meeting\nelse\n conference = pool_checkout_conference\nend\n@meeting_mutex.synchronize do\n meeting = if meet = @meetings[session_id]?\n system_id = meet.system_id\n meet.add(participant)\n meet\n else\n conference = conference || pool_checkout_conference\n meet = Meeting.new(system_id.as(String), session_id, conference, participant)\n meet.timezone = timezone\n meet\n end\n @meetings[session_id] = meeting\n conference = meeting.conference\n @room_mutex.synchronize do\n sessions = @rooms[system_id]? || ([] of SessionId)\n if sessions.includes?(session_id)\n else\n sessions << session_id\n end\n @rooms[system_id] = sessions\n end\nend\nupdate_meeting_state(session_id, system_id.as(String))\nconference.as(ConferenceDetails)\n"}},{"html_id":"meeting_kick(rtc_user_id:String,session_id:String)-instance-method","name":"meeting_kick","doc":"kicks an individual from a meeting","summary":"

kicks an individual from a meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String)","args_html":"(rtc_user_id : String, session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":766,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L766"},"def":{"name":"meeting_kick","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.warn do\n \"[meet] kicking user #{rtc_user_id} from session #{session_id}, kicked by: #{placeos_user_id}\"\nend\nstaff_api.kick_user(rtc_user_id, session_id, \"kicked by host\")\nuser_exited(rtc_user_id)\n"}},{"html_id":"meeting_leave(rtc_user_id:String,session_id:String):Nil-instance-method","name":"meeting_leave","doc":"the user is planning of leaving the meeting or has left","summary":"

the user is planning of leaving the meeting or has left

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String) : Nil","args_html":"(rtc_user_id : String, session_id : String) : Nil","location":{"filename":"src/place/chat/health_rooms.cr","line_number":758,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L758"},"def":{"name":"meeting_leave","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.debug do\n \"[meet] user leaving #{rtc_user_id} (#{placeos_user_id}) session #{session_id}\"\nend\nmeeting_remove_user(rtc_user_id, session_id, placeos_user_id)\n"}},{"html_id":"meeting_move_room(session_id:String,system_id:String):Bool-instance-method","name":"meeting_move_room","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(session_id : String, system_id : String) : Bool","args_html":"(session_id : String, system_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L615"},"def":{"name":"meeting_move_room","args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"old_system_id = nil\nmoved = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n old_system_id = meeting.system_id\n meeting.system_id = system_id\n moved = true\n @room_mutex.synchronize do\n if room_sessions = @rooms[old_system_id]?\n room_sessions.delete(session_id)\n if room_sessions.empty?\n @rooms.delete(old_system_id)\n self[old_system_id] = nil\n end\n sessions = @rooms[system_id]? || ([] of SessionId)\n sessions << session_id\n @rooms[system_id] = sessions\n end\n end\n end\nend\nlogger.debug do\n \"[meet] moving session: #{session_id} to system #{system_id} from #{old_system_id}\"\nend\nif moved\n update_meeting_state(session_id, system_id, old_system_id)\nend\nmoved\n"}},{"html_id":"meeting_state_request_save-instance-method","name":"meeting_state_request_save","doc":"use this to trigger a save","summary":"

use this to trigger a save

","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L88"},"def":{"name":"meeting_state_request_save","visibility":"Public","body":"@save_requested.send(nil)"}},{"html_id":"notify_config(system_id:String,timezone:String)-instance-method","name":"notify_config","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(system_id : String, timezone : String)","args_html":"(system_id : String, timezone : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":491,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L491"},"def":{"name":"notify_config","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"timezone = Time::Location.load(timezone)\nraw_settings = (staff_api.metadata(system_id, \"settings\")).get[\"settings\"]?.try(&.to_json)\nsettings = raw_settings ? RoomSettings.from_json(raw_settings, root: \"details\") : RoomSettings.new\ndefault_notifications = settings.notifications\nroom_users = settings.members.compact_map do |member|\n if member.available?\n else\n next\n end\n begin\n user_data = (staff_api.user(member.id)).get.as_h\n member.name = (user_data[\"nickname\"]? || user_data[\"name\"]).as_s\n member.email = user_data[\"email\"].as_s\n member.phone = user_data[\"phone\"]?.try(&.as_s)\n notify_settings = if user_settings = (staff_api.metadata(member.id, \"settings\")).get[\"settings\"]?.try(&.[]?(\"details\")).try(&.to_json)\n begin\n NotificationSettings.from_json(user_settings, root: \"notifications\")\n rescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse user #{member.id} notification settings\"\n end\n default_notifications\n end\n else\n default_notifications\n end\n if notify_settings.enabled?\n else\n next\n end\n member.notifications = notify_settings\n member\n rescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain user #{member.id} metadata\"\n end\n nil\n end\nend\nsettings.members = room_users\nsettings.timezone = timezone\nsettings\n"}},{"html_id":"notify_inspect_meeting(session_id:String)-instance-method","name":"notify_inspect_meeting","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L481"},"def":{"name":"notify_inspect_meeting","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"meeting = @meeting_mutex.synchronize do\n @meetings[session_id]?.try(&.dup)\nend\nif meeting\nelse\n raise(\"meeting #{session_id} not found\")\nend\nsystem_info, room_settings = notify_load_notifications(meeting)\nmembers = room_settings.try do |__arg8|\n __arg8.members.map do |member|\n {member: member, notifications: member.notifications}\n end\nend\n{settings: room_settings, members: members}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L25"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n meeting_state_perform_save\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@update_mutex.synchronize do\n if @update_expected > 0\n @update_expected = @update_expected - 1\n logger.debug do\n \"[admin] updating settings...\"\n end\n return\n end\nend\nlogger.debug do\n \"[admin] updating settings...\"\nend\nis_spec = (setting?(Bool, :is_spec)) || false\ndomain = setting(String, :domain_id)\n@sms_source = setting?(String, :sms_source)\n@sms_template = (setting?(String, :sms_template)) || EXAMPLE_SMS_TEMPLATE\n@notify_no_time = (setting?(String, :notify_no_time)) || \"no time specified\"\n@pool_target_size = (setting?(Int32, :pool_size)) || 10\nsystem_id = config.control_system.not_nil!.id\n@disconnect_timeout = ((setting?(Int32, :disconnect_timeout)) || 3).minutes\n@timezone_default = nil\nschedule.clear\nschedule.every(@disconnect_timeout / 3) do\n cleanup_disconnected\nend\nschedule.every(5.minutes) do\n pool_cleanup\nend\nif is_spec\nelse\n schedule.in(1.second) do\n pool_cleanup\n end\nend\nmonitoring = \"#{domain}/chat/#{system_id}/guest/entry\"\nself[:monitoring] = monitoring\nsubscriptions.clear\nmeeting_state_restore\nmonitor(monitoring) do |_subscription, payload|\n new_guest(payload)\nend\nmonitor(\"#{domain}/chat/user/joined\") do |_subscription, payload|\n user_joined(payload)\nend\nmonitor(\"#{domain}/chat/user/exited\") do |_subscription, payload|\n logger.debug do\n \"[signal] user exited: #{payload}\"\n end\n user_id = (NamedTuple(user_id: String).from_json(payload))[:user_id]\n user_exited(user_id)\nend\nmonitor(\"#{domain}/chat/user/left\") do |_subscription, payload|\n user_left(payload)\nend\nlogger.debug do\n \"[admin] settings update success!\"\nend\n"}},{"html_id":"pool_checkout_conference:ConferenceDetails-instance-method","name":"pool_checkout_conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":939,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L939"},"def":{"name":"pool_checkout_conference","return_type":"ConferenceDetails","visibility":"Public","body":"meeting = @pool_lock.synchronize do\n if @pool_meet.size > 0\n @pool_size = @pool_size - 1\n @pool_meet.shift\n end\nend\nlogger.debug do\n \"[pool] Checking out meeting, available in pool? #{!meeting.nil?}\"\nend\nspawn do\n pool_ensure_size\nend\nmeeting || new_conference\n"}},{"html_id":"pool_clear_conferences:Nil-instance-method","name":"pool_clear_conferences","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L953"},"def":{"name":"pool_clear_conferences","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"[pool] Clearing #{@pool_size} meetings from pool\"\nend\n@pool_lock.synchronize do\n @pool_size = 0\n @pool_meet = [] of ConferenceDetails\nend\npool_ensure_size\n"}},{"html_id":"pool_ensure_size:Nil-instance-method","name":"pool_ensure_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":909,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L909"},"def":{"name":"pool_ensure_size","return_type":"Nil","visibility":"Public","body":"required = 0\n@pool_lock.synchronize do\n required = @pool_target_size - @pool_size\n @pool_size = @pool_target_size\nend\nlogger.debug do\n \"[pool] Maintaining meeting pool size, #{required} new meetings required\"\nend\nif required <= 0\n return\nend\ncreated = 0\nbegin\n required.times do\n meeting = new_conference\n @pool_lock.synchronize do\n @pool_meet << meeting\n end\n created = created + 1\n end\nrescue error\n logger.error(exception: error) do\n \"[pool] error creating pool meetings\"\n end\n if created != required\n diff = required - created\n @pool_lock.synchronize do\n @pool_size = @pool_size - diff\n end\n end\nend\n"}},{"html_id":"pool_size:Int32-instance-method","name":"pool_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L872"},"def":{"name":"pool_size","return_type":"Int32","visibility":"Public","body":"@pool_size"}},{"html_id":"pool_target_size:Int32-instance-method","name":"pool_target_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":873,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L873"},"def":{"name":"pool_target_size","return_type":"Int32","visibility":"Public","body":"@pool_target_size"}},{"html_id":"sessions_with_user(user_id:String):Array(String)-instance-method","name":"sessions_with_user","doc":"finds all the session_ids that includes the specified user_id","summary":"

finds all the session_ids that includes the specified user_id

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(String)","args_html":"(user_id : String) : Array(String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L399"},"def":{"name":"sessions_with_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"sessions = [] of String\n@meeting_mutex.synchronize do\n @meetings.each do |session_id, meeting|\n if meeting.participants.has_key?(user_id)\n sessions << session_id\n end\n end\nend\nsessions\n"}},{"html_id":"timezone_default:String-instance-method","name":"timezone_default","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L471"},"def":{"name":"timezone_default","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone_default).nil?\n @timezone_default = (system.timezone.presence || \"UTC\")\nelse\n __temp_1\nend"}},{"html_id":"timezone_system(system_id:String)-instance-method","name":"timezone_system","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":473,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L473"},"def":{"name":"timezone_system","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"begin\n (staff_api.get_system(system_id)).get[\"timezone\"]?.try() do |__arg6|\n __arg6.as_s.presence\n end || timezone_default\nrescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain timezone information for #{system_id}\"\n end\n timezone_default\nend"}}],"types":[{"html_id":"drivers/Place/Chat/HealthRooms/SessionId","path":"Place/Chat/HealthRooms/SessionId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SessionId","name":"SessionId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":602,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L602"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"session id == the webrtc session id","summary":"

session id == the webrtc session id

"},{"html_id":"drivers/Place/Chat/HealthRooms/SystemId","path":"Place/Chat/HealthRooms/SystemId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SystemId","name":"SystemId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L605"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"system id == room","summary":"

system id == room

"}]},{"html_id":"drivers/Place/Chat/Meeting","path":"Place/Chat/Meeting.html","kind":"class","full_name":"Place::Chat::Meeting","name":"Meeting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(system_id:String,session_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L139"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, session_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(system_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L128"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"add(participant:Participant):Participant-instance-method","name":"add","abstract":false,"args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(participant : Participant) : Participant","args_html":"(participant : Participant) : Participant","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L147"},"def":{"name":"add","args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"return_type":"Participant","visibility":"Public","body":"@participants[participant.user_id] = participant\n@participants[@created_by_user_id]?.try(&.contacted = true)\n@updated_at = Time.utc\nparticipant\n"}},{"html_id":"conference:ConferenceDetails-instance-method","name":"conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference","return_type":"ConferenceDetails","visibility":"Public","body":"@conference"}},{"html_id":"conference=(conference:ConferenceDetails)-instance-method","name":"conference=","abstract":false,"args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"args_string":"(conference : ConferenceDetails)","args_html":"(conference : ConferenceDetails)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference=","args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"visibility":"Public","body":"@conference = conference"}},{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L84"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"created_by_participant-instance-method","name":"created_by_participant","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L161"},"def":{"name":"created_by_participant","visibility":"Public","body":"@participants[created_by_user_id]"}},{"html_id":"created_by_user_id:String-instance-method","name":"created_by_user_id","doc":"webrtc_user_id that created the meeting","summary":"

webrtc_user_id that created the meeting

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L81"},"def":{"name":"created_by_user_id","return_type":"String","visibility":"Public","body":"@created_by_user_id"}},{"html_id":"creator_contacted?-instance-method","name":"creator_contacted?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L165"},"def":{"name":"creator_contacted?","visibility":"Public","body":"@participants[created_by_user_id]?.try(&.contacted)"}},{"html_id":"empty?:Bool-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L181"},"def":{"name":"empty?","return_type":"Bool","visibility":"Public","body":"@participants.empty?"}},{"html_id":"has_participant?(webrtc_user_id:String):Participant|Nil-instance-method","name":"has_participant?","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L169"},"def":{"name":"has_participant?","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"@participants[webrtc_user_id]?"}},{"html_id":"mark_participant_connected(webrtc_user_id:String,state:Bool):String|Nil-instance-method","name":"mark_participant_connected","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(webrtc_user_id : String, state : Bool) : String | Nil","args_html":"(webrtc_user_id : String, state : Bool) : String | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L173"},"def":{"name":"mark_participant_connected","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"return_type":"String | ::Nil","visibility":"Public","body":"if participant = has_participant?(webrtc_user_id)\n old_state = participant.connected\n participant.connected = state\n if old_state == state\n else\n return system_id\n end\nend"}},{"html_id":"notify_members_on_entry:Array(RoomMember)-instance-method","name":"notify_members_on_entry","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L110"},"def":{"name":"notify_members_on_entry","return_type":"Array(RoomMember)","visibility":"Public","body":"settings = room_settings\nif settings\nelse\n return [] of RoomMember\nend\npatient = participants[created_by_user_id]\nclinician_selected = patient.chat_to_user_id.presence\ncontact = filter_members(clinician_selected)\nif contact.empty? && clinician_selected\n contact = filter_members(nil)\nend\nif contact.empty?\n contact = settings.members\nend\ncontact\n"}},{"html_id":"participants:Hash(String,Participant)-instance-method","name":"participants","doc":"webrtc_user_id => participant","summary":"

webrtc_user_id => participant

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L75"},"def":{"name":"participants","return_type":"Hash(String, Participant)","visibility":"Public","body":"@participants"}},{"html_id":"remove(webrtc_user_id:String):Participant|Nil-instance-method","name":"remove","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L154"},"def":{"name":"remove","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"if participant = @participants.delete(webrtc_user_id)\n @updated_at = Time.utc\n participant\nend"}},{"html_id":"room_settings:RoomSettings|Nil-instance-method","name":"room_settings","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings","return_type":"RoomSettings | ::Nil","visibility":"Public","body":"@room_settings"}},{"html_id":"room_settings=(room_settings:RoomSettings|Nil)-instance-method","name":"room_settings=","abstract":false,"args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"args_string":"(room_settings : RoomSettings | Nil)","args_html":"(room_settings : RoomSettings | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings=","args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"visibility":"Public","body":"@room_settings = room_settings"}},{"html_id":"session_id:String-instance-method","name":"session_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L76"},"def":{"name":"session_id","return_type":"String","visibility":"Public","body":"@session_id"}},{"html_id":"system:PlaceOS::Driver::DriverModel::ControlSystem|Nil-instance-method","name":"system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system","return_type":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil","visibility":"Public","body":"@system"}},{"html_id":"system=(system:PlaceOS::Driver::DriverModel::ControlSystem|Nil)-instance-method","name":"system=","abstract":false,"args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"args_string":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","args_html":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system=","args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"visibility":"Public","body":"@system = system"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::Meeting#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L78"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:String|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"updated_at:Time-instance-method","name":"updated_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L87"},"def":{"name":"updated_at","return_type":"Time","visibility":"Public","body":"@updated_at"}}]},{"html_id":"drivers/Place/Chat/MeetingSummary","path":"Place/Chat/MeetingSummary.html","kind":"struct","full_name":"Place::Chat::MeetingSummary","name":"MeetingSummary","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pos_system:String,call_count:Int32,participant_count:Int32,waiting_count:Int32,longest_wait_time:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"args_string":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","args_html":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L67"},"def":{"name":"new","args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pos_system, call_count, participant_count, waiting_count, longest_wait_time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L59"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"call_count:Int32-instance-method","name":"call_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L62"},"def":{"name":"call_count","return_type":"Int32","visibility":"Public","body":"@call_count"}},{"html_id":"longest_wait_time:Int64-instance-method","name":"longest_wait_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L65"},"def":{"name":"longest_wait_time","return_type":"Int64","visibility":"Public","body":"@longest_wait_time"}},{"html_id":"participant_count:Int32-instance-method","name":"participant_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L64"},"def":{"name":"participant_count","return_type":"Int32","visibility":"Public","body":"@participant_count"}},{"html_id":"pos_system:String-instance-method","name":"pos_system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L61"},"def":{"name":"pos_system","return_type":"String","visibility":"Public","body":"@pos_system"}},{"html_id":"waiting_count:Int32-instance-method","name":"waiting_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L63"},"def":{"name":"waiting_count","return_type":"Int32","visibility":"Public","body":"@waiting_count"}}]},{"html_id":"drivers/Place/Chat/NotificationSettings","path":"Place/Chat/NotificationSettings.html","kind":"struct","full_name":"Place::Chat::NotificationSettings","name":"NotificationSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L30"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"chosen_provider?:Bool-instance-method","name":"chosen_provider?","doc":"only alert if the user selected me","summary":"

only alert if the user selected me

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L34"},"def":{"name":"chosen_provider?","return_type":"Bool","visibility":"Public","body":"@chosen_provider"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L35"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"on_enter:NotifyEventSettings-instance-method","name":"on_enter","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L37"},"def":{"name":"on_enter","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_enter"}},{"html_id":"on_escalate:NotifyEventSettings-instance-method","name":"on_escalate","doc":"settings if the patient has been waiting for a long time","summary":"

settings if the patient has been waiting for a long time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L43"},"def":{"name":"on_escalate","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_escalate"}},{"html_id":"on_recurr:NotifyEventSettings-instance-method","name":"on_recurr","doc":"how often should it send notifications","summary":"

how often should it send notifications

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L39"},"def":{"name":"on_recurr","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_recurr"}},{"html_id":"on_waiting:NotifyEventSettings-instance-method","name":"on_waiting","doc":"do we only notify if the user has been waiting for a certain amount of time","summary":"

do we only notify if the user has been waiting for a certain amount of time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L41"},"def":{"name":"on_waiting","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_waiting"}}]},{"html_id":"drivers/Place/Chat/NotifyEventSettings","path":"Place/Chat/NotifyEventSettings.html","kind":"struct","full_name":"Place::Chat::NotifyEventSettings","name":"NotifyEventSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L15"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"browser?:Bool-instance-method","name":"browser?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L19"},"def":{"name":"browser?","return_type":"Bool","visibility":"Public","body":"@browser"}},{"html_id":"delay:Int32-instance-method","name":"delay","doc":"minutes before notification","summary":"

minutes before notification

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L24"},"def":{"name":"delay","return_type":"Int32","visibility":"Public","body":"@delay"}},{"html_id":"email?:Bool-instance-method","name":"email?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L20"},"def":{"name":"email?","return_type":"Bool","visibility":"Public","body":"@email"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L18"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"sms?:Bool-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L21"},"def":{"name":"sms?","return_type":"Bool","visibility":"Public","body":"@sms"}}]},{"html_id":"drivers/Place/Chat/OpeningHours","path":"Place/Chat/OpeningHours.html","kind":"struct","full_name":"Place::Chat::OpeningHours","name":"OpeningHours","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(opening_times:Tuple(String,String,Bool))-class-method","name":"new","abstract":false,"args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"args_string":"(opening_times : Tuple(String, String, Bool))","args_html":"(opening_times : Tuple(String, String, Bool))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L73"},"def":{"name":"new","args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(opening_times)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"closes:Time::Span-instance-method","name":"closes","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L85"},"def":{"name":"closes","return_type":"Time::Span","visibility":"Public","body":"@closes"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L86"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_open?(now:Time)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"now","external_name":"now","restriction":"Time"}],"args_string":"(now : Time)","args_html":"(now : Time)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L88"},"def":{"name":"is_open?","args":[{"name":"now","external_name":"now","restriction":"Time"}],"visibility":"Public","body":"if enabled\nelse\n return false\nend\nstart_of_day = now.at_beginning_of_day\nopening = start_of_day + opens\nif now >= opening\nelse\n return false\nend\nclosing = start_of_day + closes\nnow < closing\n"}},{"html_id":"opens:Time::Span-instance-method","name":"opens","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L84"},"def":{"name":"opens","return_type":"Time::Span","visibility":"Public","body":"@opens"}}]},{"html_id":"drivers/Place/Chat/Participant","path":"Place/Chat/Participant.html","kind":"class","full_name":"Place::Chat::Participant","name":"Participant","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(user_id:String,name:String,email:Nil|String=nil,phone:Nil|String=nil,type:Nil|String=nil,staff_user_id:Nil|String=nil,text_chat_only:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"args_string":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","args_html":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L54"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, name, email, phone, type, staff_user_id, text_chat_only)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"appointment_time:String|Nil-instance-method","name":"appointment_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L37"},"def":{"name":"appointment_time","return_type":"String | ::Nil","visibility":"Public","body":"@appointment_time"}},{"html_id":"captcha:String|Nil-instance-method","name":"captcha","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha","return_type":"String | ::Nil","visibility":"Public","body":"@captcha"}},{"html_id":"captcha=(captcha:String|Nil)-instance-method","name":"captcha=","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"args_string":"(captcha : String | Nil)","args_html":"(captcha : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha=","args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"visibility":"Public","body":"@captcha = captcha"}},{"html_id":"chat_to_user_id:String|Nil-instance-method","name":"chat_to_user_id","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@chat_to_user_id"}},{"html_id":"chat_to_user_id=(chat_to_user_id:String|Nil)-instance-method","name":"chat_to_user_id=","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"args_string":"(chat_to_user_id : String | Nil)","args_html":"(chat_to_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id=","args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@chat_to_user_id = chat_to_user_id"}},{"html_id":"connected:Bool-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected","return_type":"Bool","visibility":"Public","body":"@connected"}},{"html_id":"connected=(connected:Bool)-instance-method","name":"connected=","abstract":false,"args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool)","args_html":"(connected : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected=","args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"@connected = connected"}},{"html_id":"contacted:Bool-instance-method","name":"contacted","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted","return_type":"Bool","visibility":"Public","body":"@contacted"}},{"html_id":"contacted=(contacted:Bool)-instance-method","name":"contacted=","abstract":false,"args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"args_string":"(contacted : Bool)","args_html":"(contacted : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted=","args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"visibility":"Public","body":"@contacted = contacted"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"session_id:String|Nil-instance-method","name":"session_id","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id","return_type":"String | ::Nil","visibility":"Public","body":"@session_id"}},{"html_id":"session_id=(session_id:String|Nil)-instance-method","name":"session_id=","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"args_string":"(session_id : String | Nil)","args_html":"(session_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id=","args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@session_id = session_id"}},{"html_id":"staff_user_id:String|Nil-instance-method","name":"staff_user_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@staff_user_id"}},{"html_id":"staff_user_id=(staff_user_id:String|Nil)-instance-method","name":"staff_user_id=","abstract":false,"args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"args_string":"(staff_user_id : String | Nil)","args_html":"(staff_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id=","args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@staff_user_id = staff_user_id"}},{"html_id":"text_chat_only:Bool|Nil-instance-method","name":"text_chat_only","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@text_chat_only"}},{"html_id":"text_chat_only=(text_chat_only:Bool|Nil)-instance-method","name":"text_chat_only=","abstract":false,"args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(text_chat_only : Bool | Nil)","args_html":"(text_chat_only : Bool | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only=","args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@text_chat_only = text_chat_only"}},{"html_id":"type:String|Nil-instance-method","name":"type","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Place/Chat/RoomMember","path":"Place/Chat/RoomMember.html","kind":"class","full_name":"Place::Chat::RoomMember","name":"RoomMember","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"admin?-instance-method","name":"admin?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L67"},"def":{"name":"admin?","visibility":"Public","body":"roles.includes?(\"admin\")"}},{"html_id":"available?:Bool-instance-method","name":"available?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L49"},"def":{"name":"available?","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"clinician?-instance-method","name":"clinician?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L63"},"def":{"name":"clinician?","visibility":"Public","body":"roles.includes?(\"clinician\")"}},{"html_id":"coordinator?-instance-method","name":"coordinator?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L59"},"def":{"name":"coordinator?","visibility":"Public","body":"roles.includes?(\"coordinator\")"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L51"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomMember#notifications cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notifications=(notifications:NotificationSettings)-instance-method","name":"notifications=","abstract":false,"args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"args_string":"(notifications : NotificationSettings)","args_html":"(notifications : NotificationSettings)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L57"},"def":{"name":"notifications=","args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"visibility":"Public","body":"@notifications = notifications"}},{"html_id":"notifications?:NotificationSettings|Nil-instance-method","name":"notifications?","abstract":false,"def":{"name":"notifications?","return_type":"NotificationSettings | ::Nil","visibility":"Public","body":"@notifications"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"roles:Array(String)-instance-method","name":"roles","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L54"},"def":{"name":"roles","return_type":"Array(String)","visibility":"Public","body":"@roles"}}]},{"html_id":"drivers/Place/Chat/RoomSettings","path":"Place/Chat/RoomSettings.html","kind":"class","full_name":"Place::Chat::RoomSettings","name":"RoomSettings","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L99"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"doc":"Room metadata => settings key","summary":"

Room metadata => settings key

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L100"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L102"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L105"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"is_open?(timezone:Time::Location)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L132"},"def":{"name":"is_open?","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"if available\nelse\n return false\nend\nif open_24_7\n return true\nend\nnow = Time.local(timezone)\nindex = now.day_of_week.to_i - 1\n(OpeningHours.new(opening_hours[index])).is_open?(now)\n"}},{"html_id":"members:Array(RoomMember)-instance-method","name":"members","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members","return_type":"Array(RoomMember)","visibility":"Public","body":"@members"}},{"html_id":"members=(members:Array(RoomMember))-instance-method","name":"members=","abstract":false,"args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"args_string":"(members : Array(RoomMember))","args_html":"(members : Array(RoomMember))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members=","args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"visibility":"Public","body":"@members = members"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L107"},"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n @notifications = (NotificationSettings.new)\nelse\n __temp_1\nend"}},{"html_id":"open_24_7:Bool-instance-method","name":"open_24_7","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L106"},"def":{"name":"open_24_7","return_type":"Bool","visibility":"Public","body":"@open_24_7"}},{"html_id":"opening:Hash(Time::DayOfWeek,OpeningHours)-instance-method","name":"opening","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L123"},"def":{"name":"opening","return_type":"Hash(Time::DayOfWeek, OpeningHours)","visibility":"Public","body":"if (__temp_1 = @opening).nil?\n @opening = (begin\n times = {} of Time::DayOfWeek => OpeningHours\n opening_hours.each_with_index do |times, index|\n index = index + 1\n times[Time::DayOfWeek.from_value(index)] = OpeningHours.new(times)\n end\n times\n end)\nelse\n __temp_1\nend"}},{"html_id":"opening_hours:Array(Tuple(String,String,Bool))-instance-method","name":"opening_hours","doc":"0 index == Monday\n open time, close time, enabled","summary":"

0 index == Monday open time, close time, enabled

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L118"},"def":{"name":"opening_hours","return_type":"Array(Tuple(String, String, Bool))","visibility":"Public","body":"if (__temp_1 = @opening_hours).nil?\n @opening_hours = ([] of Tuple(String, String, Bool))\nelse\n __temp_1\nend"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomSettings#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:Time::Location)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L114"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:Time::Location|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@timezone"}}]}]},{"html_id":"drivers/Place/Demo","path":"Place/Demo.html","kind":"module","full_name":"Place::Demo","name":"Demo","abstract":false,"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Demo/Display","path":"Place/Demo/Display.html","kind":"class","full_name":"Place::Demo::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/demo/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L52"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"self[:audio_mute] = state\nself[:volume] = state ? 0 : @volume\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/demo/display.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L28"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:power] = state"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L32"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[:power].as_bool"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/place/demo/display.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L36"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"self[:input] = input"}},{"html_id":"test_setting(key:String,payload:JSON::Any)-instance-method","name":"test_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(key : String, payload : JSON::Any)","args_html":"(key : String, payload : JSON::Any)","location":{"filename":"src/place/demo/display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L46"},"def":{"name":"test_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"define_setting(key, payload)\npayload\n"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/demo/display.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L42"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"self[:volume] = @volume = level.to_f64"}},{"html_id":"volume?:Float64-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L40"},"def":{"name":"volume?","return_type":"Float64","visibility":"Public","body":"@volume"}}],"types":[{"html_id":"drivers/Place/Demo/Display/Input","path":"Place/Demo/Display/Input.html","kind":"enum","full_name":"Place::Demo::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Place/Demo/Display","kind":"class","full_name":"Place::Demo::Display","name":"Display"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L20"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L15"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L16"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L14"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L19"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L18"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]},{"html_id":"drivers/Place/Demo/LocationServices","path":"Place/Demo/LocationServices.html","kind":"class","full_name":"Place::Demo::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/location_services.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/location_services.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L24"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"case rand(3)\nwhen 0\n [{location: \"wireless\", coordinates_from: \"bottom-left\", x: 27.113065326953013, y: 36.85052447328469, lon: 55.27498749637098, lat: 25.20090608906493, mac: \"66e0fd1279ce\", variance: 4.5194575835650745, last_seen: 1601555879, building: @building_zone, level: @level_zone, map_width: 1234.2, map_height: 123.8}]\nwhen 1\n [{location: \"meeting\", mac: \"meeting.room@resource.org.com\", event_id: \"meet-1234567\", map_id: \"map-1234\", sys_id: @system_id, ends_at: 1.hour.from_now, private: false, level: @level_zone, building: @building_zone}]\nelse\n [] of String\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/location_services.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = setting(String, :building_zone)\n@level_zone = setting(String, :level_zone)\n@system_id = setting(String, :system_id)\n"}}]},{"html_id":"drivers/Place/Demo/Lockers","path":"Place/Demo/Lockers.html","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L15"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L317"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lb=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n locker_bank = floor_mac[\"lb\"]\n locker_key = floor_mac[\"lk\"]\n locker = locker_banks[locker_bank].locker_hash[locker_key]\n has_reservation = false\n if user_id = locker.allocated_to\n if time = locker.allocated_until\n has_reservation = time > Time.utc\n else\n has_reservation = true\n end\n end\n if has_reservation\n {location: \"locker\", assigned_to: (staff_api.user(locker.allocated_to)).get[\"email\"].as_s, mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L345"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\nbuilding = building_id\nlevel_zone = zone_id == building ? nil : zone_id\nif level_zone && !(level_zone.in?(levels))\n return [] of Nil\nend\nnow = Time.utc\nlocker_banks.values.flat_map do |bank|\n if level_zone && (bank.level_id != level_zone)\n next [] of PlaceLocker\n end\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L19"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @levels).nil?\n @levels = ((staff_api.systems_in_building(building_id)).get.as_h.keys)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L305"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/place/demo/lockers.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L153"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"begin\n bank = locker_banks[bank_id.to_s]\n locker_id = locker_id ? locker_id : bank.locker_hash.values.select(&.not_allocated?).sample.id\n locker = bank.locker_hash[locker_id.to_s]\n locker.allocated_to = user_id\n if expires_at\n locker.allocated_until = Time.unix(expires_at)\n end\n PlaceLocker.new(bank_id, locker, building_id)\nrescue\n raise(\"no available lockers\")\nend"}},{"html_id":"locker_banks:Hash(String,LockerBank)-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L23"},"def":{"name":"locker_banks","return_type":"Hash(String, LockerBank)","visibility":"Public","body":"if (__temp_1 = @locker_banks).nil?\n @locker_banks = (begin\n banks = (staff_api.metadata(building_id, \"locker_banks\")).get.dig?(\"locker_banks\", \"details\")\n if banks\n else\n return Hash(String, LockerBank).new\n end\n banks = begin\n Array(LockerBank).from_json(banks.to_json)\n rescue error\n message = \"error parsing banks json on building #{building_id}:\\n#{banks.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lookup = {} of String => LockerBank\n banks.each do |bank|\n bank.level_id = (levels & bank.zones).first?\n lookup[bank.id] = bank\n end\n lockers = (staff_api.metadata(building_id, \"lockers\")).get.dig?(\"lockers\", \"details\")\n if lockers\n else\n return lookup\n end\n lockers = begin\n Array(Locker).from_json(lockers.to_json)\n rescue error\n message = \"error parsing locker json on building #{building_id}:\\n#{lockers.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lockers.each do |locker|\n begin\n bank = lookup[locker.bank_id]\n locker.level_id = bank.level_id\n bank.lockers << locker\n rescue error\n logger.warn(exception: error) do\n \"config issue with locker #{locker.id} on bank #{locker.bank_id}\"\n end\n end\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L178"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nif locker.allocated_to == owner_id\n locker.release\nelse\n locker.shared_with.delete(owner_id)\nend\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L213"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with << share_with\n locker.shared_with.uniq!\nend\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L265"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with\nelse\n [] of String\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L288"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L236"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n if shared_with_id\n locker.shared_with.delete(shared_with_id)\n else\n locker.shared_with = [] of String\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/place/demo/lockers.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L195"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"now = Time.utc\nbuilding = building_id\nlocker_banks.values.flat_map do |bank|\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to == user_id\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L310"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}}],"types":[{"html_id":"drivers/Place/Demo/Lockers/Locker","path":"Place/Demo/Lockers/Locker.html","kind":"class","full_name":"Place::Demo::Lockers::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L68"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated?:Bool-instance-method","name":"allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L87"},"def":{"name":"allocated?","return_type":"Bool","visibility":"Public","body":"if time = self.allocated_until\n if time > Time.utc\n true\n else\n false\n end\nelse\n if allocated_to = self.allocated_to\n true\n else\n false\n end\nend"}},{"html_id":"allocated_to:String|Nil-instance-method","name":"allocated_to","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to","return_type":"String | ::Nil","visibility":"Public","body":"@allocated_to"}},{"html_id":"allocated_to=(allocated_to:String|Nil)-instance-method","name":"allocated_to=","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"args_string":"(allocated_to : String | Nil)","args_html":"(allocated_to : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to=","args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@allocated_to = allocated_to"}},{"html_id":"allocated_until:Time|Nil-instance-method","name":"allocated_until","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until","return_type":"Time | ::Nil","visibility":"Public","body":"@allocated_until"}},{"html_id":"allocated_until=(allocated_until:Time|Nil)-instance-method","name":"allocated_until=","abstract":false,"args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"args_string":"(allocated_until : Time | Nil)","args_html":"(allocated_until : Time | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until=","args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@allocated_until = allocated_until"}},{"html_id":"bank_id:String-instance-method","name":"bank_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L72"},"def":{"name":"bank_id","return_type":"String","visibility":"Public","body":"@bank_id"}},{"html_id":"bookable:Bool-instance-method","name":"bookable","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L73"},"def":{"name":"bookable","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @bookable).nil?\n @bookable = (false)\nelse\n __temp_1\nend"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L70"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L71"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"not_allocated?:Bool-instance-method","name":"not_allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L101"},"def":{"name":"not_allocated?","return_type":"Bool","visibility":"Public","body":"!allocated?"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L81"},"def":{"name":"release","visibility":"Public","body":"@allocated_to = nil\n@allocated_until = nil\n@shared_with = [] of String\n"}},{"html_id":"shared_with:Array(String)-instance-method","name":"shared_with","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with","return_type":"Array(String)","visibility":"Public","body":"@shared_with"}},{"html_id":"shared_with=(shared_with:Array(String))-instance-method","name":"shared_with=","abstract":false,"args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"args_string":"(shared_with : Array(String))","args_html":"(shared_with : Array(String))","location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with=","args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"visibility":"Public","body":"@shared_with = shared_with"}}]},{"html_id":"drivers/Place/Demo/Lockers/LockerBank","path":"Place/Demo/Lockers/LockerBank.html","kind":"class","full_name":"Place::Demo::Lockers::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L106"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L107"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L109"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"locker_hash:Hash(String,Locker)-instance-method","name":"locker_hash","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L115"},"def":{"name":"locker_hash","return_type":"Hash(String, Locker)","visibility":"Public","body":"if (__temp_1 = @locker_hash).nil?\n @locker_hash = (begin\n lookup = {} of String => Locker\n level = self.level_id\n lockers.each do |locker|\n locker.level_id = level\n lookup[locker.id] = locker\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"lockers:Array(Locker)-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L114"},"def":{"name":"lockers","return_type":"Array(Locker)","visibility":"Public","body":"@lockers"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L110"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L111"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}}]},{"html_id":"drivers/Place/Demo/Lockers/PlaceLocker","path":"Place/Demo/Lockers/PlaceLocker.html","kind":"alias","full_name":"Place::Demo::Lockers::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/place/demo/lockers.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"}}]},{"html_id":"drivers/Place/Demo/RoomSensor","path":"Place/Demo/RoomSensor.html","kind":"class","full_name":"Place::Demo::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L147"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n ::raise(::NilAssertionError.new(\"Place::Demo::RoomSensor#count cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"count?:Int32|Nil-instance-method","name":"count?","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L152"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif {building_id, level_id}.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && (location != \"area\")\n return [] of Nil\nend\n[{location: \"area\", at_location: count, map_id: system.map_id, level: level_id, building: building_id, capacity: @capacity, module_id: module_id}]\n"}},{"html_id":"level_id:String-instance-method","name":"level_id","doc":"Finds the level ID for the current location services object","summary":"

Finds the level ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L53"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n @level_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"level\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L137"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L142"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@capacity = (setting?(Int32, :capacity)) || 2\n@count || (@count = (setting?(Int32, :default_count)) || 0)\n@sensor_id = (setting?(String, :sensor_id)) || module_id\n@timestamp = Time.utc.to_unix\nupdate_state\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L87"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"demo-#{@sensor_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L68"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"demo-#{@sensor_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"set_sensor(new_count:Int32)-instance-method","name":"set_sensor","abstract":false,"args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"args_string":"(new_count : Int32)","args_html":"(new_count : Int32)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L32"},"def":{"name":"set_sensor","args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"visibility":"Public","body":"@timestamp = Time.utc.to_unix\n@count = new_count\nupdate_state\n"}}]},{"html_id":"drivers/Place/Demo/Switcher","path":"Place/Demo/Switcher.html","kind":"class","full_name":"Place::Demo::Switcher","name":"Switcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inputs:Int32-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L17"},"def":{"name":"inputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @inputs).nil?\n @inputs = (setting(Int32, :inputs))\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = nil\n@outputs = nil\n"}},{"html_id":"outputs:Int32-instance-method","name":"outputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L18"},"def":{"name":"outputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @outputs).nil?\n @outputs = (setting(Int32, :outputs))\nelse\n __temp_1\nend"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/place/demo/switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L32"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"switching #{map} on layer #{layer || SwitchLayer::All}\"\nend\nmap.each do |input, outputs|\n outputs.each do |outp|\n self[\"output#{outp}\"] = input\n end\nend\ntrue\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/place/demo/switcher.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L25"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input < 0 || input > inputs\n raise(\"invalid input #{input}, supported values 0 -> #{inputs}\")\nend\nlogger.debug do\n \"switching all outputs to input #{input}\"\nend\n(1..outputs).each do |outp|\n self[\"output#{outp}\"] = input\nend\ntrue\n"}}]},{"html_id":"drivers/Place/Demo/TestSSH","path":"Place/Demo/TestSSH.html","kind":"class","full_name":"Place::Demo::TestSSH","name":"TestSSH","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/test_ssh.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"ls(dir:String=\"./\",modifiers:String=\"\")-instance-method","name":"ls","abstract":false,"args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"args_string":"(dir : String = \"./\", modifiers : String = \"\")","args_html":"(dir : String = "./", modifiers : String = "")","location":{"filename":"src/place/demo/test_ssh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L16"},"def":{"name":"ls","args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"visibility":"Public","body":"(exec(\"ls -#{modifiers} #{dir}\")).gets_to_end"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L25"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"SSH response:\\n#{data}\"\nend\ntask.try(&.success(data))\n"}},{"html_id":"run(command:String,wait:Bool=true)-instance-method","name":"run","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"args_string":"(command : String, wait : Bool = true)","args_html":"(command : String, wait : Bool = true)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L20"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"SSH command:\\n#{command}\"\nend\nsend(\"#{command}\\n\", wait: wait)\n"}}]}]},{"html_id":"drivers/Place/Desk","path":"Place/Desk.html","kind":"module","full_name":"Place::Desk","name":"Desk","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Desk/Control","path":"Place/Desk/Control.html","kind":"class","full_name":"Place::Desk::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"desks\""}],"namespace":{"html_id":"drivers/Place/Desk","kind":"module","full_name":"Place::Desk","name":"Desk"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"desk_id_key:String-instance-method","name":"desk_id_key","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L30"},"def":{"name":"desk_id_key","return_type":"String","visibility":"Public","body":"@desk_id_key"}},{"html_id":"desk_ids:Hash(String,String)-instance-method","name":"desk_ids","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L90"},"def":{"name":"desk_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @desk_ids).nil?\n @desk_ids = (begin\n metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\n end\n desks = {} of String => String\n key = desk_id_key\n metadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if ids = level[:metadata][METADATA_KEY]?.try(&.details)\n ids.each do |desk_details|\n if mapped_id = desk_details.json_unmapped[key]?.try(&.as_s?)\n desks[desk_details.id] = mapped_id\n end\n end\n end\n end\n end\n desks\n end)\nelse\n __temp_1\nend"}},{"html_id":"desk_lookup(desk_id:String):String-instance-method","name":"desk_lookup","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String) : String","args_html":"(desk_id : String) : String","location":{"filename":"src/place/desk/control.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L32"},"def":{"name":"desk_lookup","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if desk_id_key != \"id\"\n mapped_id = desk_ids[desk_id]?\n if mapped_id\n else\n raise(\"mapped id not found\")\n end\n mapped_id\nelse\n desk_id\nend"}},{"html_id":"get_desk_height(desk_key:String)-instance-method","name":"get_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L56"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_height(desk_key)).get"}},{"html_id":"get_desk_power(desk_key:String)-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L65"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_power(desk_key)).get"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L118"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(1.hour) do\n @desk_ids = nil\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@desk_id_key = (setting?(String, :desk_id_key)) || \"id\""}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/place/desk/control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L51"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_height(desk_key, desk_height)).get\n"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/place/desk/control.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L60"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_power(desk_key, desk_power)).get\n"}}],"types":[{"html_id":"drivers/Place/Desk/Control/ChildMetadata","path":"Place/Desk/Control/ChildMetadata.html","kind":"alias","full_name":"Place::Desk::Control::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/DeskId","path":"Place/Desk/Control/DeskId.html","kind":"struct","full_name":"Place::Desk::Control::DeskId","name":"DeskId","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L77"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Desk/Control/Details","path":"Place/Desk/Control/Details.html","kind":"struct","full_name":"Place::Desk::Control::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(DeskId)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L83"},"def":{"name":"details","return_type":"Array(DeskId)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(DeskId))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"args_string":"(details : Array(DeskId))","args_html":"(details : Array(DeskId))","location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L83"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Desk/Control/Metadata","path":"Place/Desk/Control/Metadata.html","kind":"alias","full_name":"Place::Desk::Control::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Desk::Control::Details)","aliased_html":"Hash(String, Place::Desk::Control::Details)","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/Zone","path":"Place/Desk/Control/Zone.html","kind":"alias","full_name":"Place::Desk::Control::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}}]}]},{"html_id":"drivers/Place/DeskBookingsLocations","path":"Place/DeskBookingsLocations.html","kind":"class","full_name":"Place::DeskBookingsLocations","name":"DeskBookingsLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_bookings_locations.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L121"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L133"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L106"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_912|\n user_email, _name = __temp_912\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@zone_filter = (setting?(Array(String), :zone_filter)) || ([] of String)\n@zones = nil\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nmap_zones\nschedule.clear\nschedule.every(@poll_rate) do\n query_desk_bookings\nend\nschedule.in(5.seconds) do\n query_desk_bookings\nend\n"}},{"html_id":"query_desk_bookings:Nil-instance-method","name":"query_desk_bookings","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L216"},"def":{"name":"query_desk_bookings","return_type":"Nil","visibility":"Public","body":"ids = Set(Int64).new\nbookings = [] of JSON::Any\nzones.each do |zone|\n begin\n bookings.concat(staff_api.query_bookings(type: @booking_type, zones: {zone}).get.as_a)\n rescue error\n logger.warn(exception: error) do\n \"failed to query bookings in zone: #{zone}\"\n end\n end\nend\nbookings = bookings.flat_map do |booking|\n booking = Booking.from_json(booking.to_json)\n if ids.includes?(booking.id)\n next [] of Booking\n end\n ids << booking.id\n booking.user_email = booking.user_email.downcase\n booking.expand\nend\nlogger.debug do\n \"queried desk bookings, found #{bookings.size}\"\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L57"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zones).nil?\n @zones = (begin\n filtered = @zone_filter\n if filtered.empty?\n location_service.systems.get.as_h.keys\n else\n filtered\n end\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/DeskBookingWebhook","path":"Place/DeskBookingWebhook.html","kind":"class","full_name":"Place::DeskBookingWebhook","name":"DeskBookingWebhook","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_booking_webhook.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_post-instance-method","name":"fetch_and_post","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L54"},"def":{"name":"fetch_and_post","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nzones = [@building]\npayload = (staff_api.query_bookings(@booking_category, period_start, period_end, zones)).get.to_json\nheaders = HTTP::Headers.new\n@custom_headers.each do |key, value|\n headers[key] = value\nend\nheaders[\"Content-Type\"] = \"application/json; charset=UTF-8\"\nif @debug\n logger.debug do\n \"Posting: #{payload} \\n with Headers: #{headers}\"\n end\nend\nresponse = HTTP::Client.post(@post_uri, headers, body: payload)\nif response.status_code < 300\nelse\n raise(\"Request failed with #{response.status_code}: #{response.body}\")\nend\n\"#{response.status_code}: #{response.body}\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n fetch_and_post\nend\nschedule.every(24.hours) do\n fetch_and_post\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@post_uri = setting(String, :post_uri)\n@building = setting(String, :building)\n@custom_headers = setting(Hash(String, String), :custom_headers)\n@time_period = (setting(Int32, :days_from_now)).days\n@booking_category = setting(String, :booking_category)\n@debug = setting(Bool, :debug)\nfetch_and_post\n"}}]},{"html_id":"drivers/Place/EventAttendanceRecorder","path":"Place/EventAttendanceRecorder.html","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking_id:String|Nil-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L22"},"def":{"name":"booking_id","return_type":"String | ::Nil","visibility":"Public","body":"@booking_id"}},{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L18"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_known_count:Int32-instance-method","name":"last_known_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L27"},"def":{"name":"last_known_count","return_type":"Int32","visibility":"Public","body":"@last_known_count"}},{"html_id":"last_saved_count:Int32-instance-method","name":"last_saved_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L26"},"def":{"name":"last_saved_count","return_type":"Int32","visibility":"Public","body":"@last_saved_count"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"@system_id = config.control_system.not_nil!.id\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@metadata_key = (setting?(String, :metadata_key)).presence || \"people_count\"\n@debounce_seconds = (setting?(Int32, :debounce_seconds)) || 0\n"}},{"html_id":"people_counts:Array(Int32)-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L25"},"def":{"name":"people_counts","return_type":"Array(Int32)","visibility":"Public","body":"@people_counts"}},{"html_id":"should_save:Bool-instance-method","name":"should_save","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L24"},"def":{"name":"should_save","return_type":"Bool","visibility":"Public","body":"@should_save"}},{"html_id":"status:String-instance-method","name":"status","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L21"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}],"types":[{"html_id":"drivers/Place/EventAttendanceRecorder/StaffEventChange","path":"Place/EventAttendanceRecorder/StaffEventChange.html","kind":"class","full_name":"Place::EventAttendanceRecorder::StaffEventChange","name":"StaffEventChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventAttendanceRecorder","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}}]}]},{"html_id":"drivers/Place/EventMailer","path":"Place/EventMailer.html","kind":"class","full_name":"Place::EventMailer","name":"EventMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_mailer.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L227"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"inspect_event_store:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"inspect_event_store","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L108"},"def":{"name":"inspect_event_store","visibility":"Public","body":"@events"}},{"html_id":"list_systems_in_zone(zone_id:String)-instance-method","name":"list_systems_in_zone","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/event_mailer.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L104"},"def":{"name":"list_systems_in_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"staff_api.systems(zone_id: zone_id).get.as_a"}},{"html_id":"list_target_systems-instance-method","name":"list_target_systems","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L100"},"def":{"name":"list_target_systems","visibility":"Public","body":"@target_zones.flat_map do |zone_id|\n list_systems_in_zone(zone_id)\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@target_zones = (setting?(Array(String), :zone_ids_to_target)) || ([] of String)\n@target_module = (setting?(String, :module_to_target)) || \"Bookings_1\"\n@target_status = (setting?(String, :module_status_to_target)) || \"bookings\"\n@event_filter = (setting?(String, :event_filter)) || \"\"\n@email_template_group = (setting?(String, :email_template_group)) || \"events\"\n@email_template = (setting?(String, :email_template)) || \"welcome\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\nself[:events] = @events.clear\nsubscribe_to_all_modules\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L126"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(Time::Location.local)\n[TemplateFields.new(trigger: {@email_template_group, @email_template}, name: \"Event welcome\", description: \"Welcome email sent to event organizers when their event is coming up today\", fields: [{name: \"host_name\", description: \"Name of the event organizer\"}, {name: \"host_email\", description: \"Email address of the event organizer\"}, {name: \"room_name\", description: \"Location or room where the event is being held\"}, {name: \"event_title\", description: \"Title or subject of the event\"}, {name: \"event_start\", description: \"Start time of the event (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the event (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"network_username\", description: \"Username for network access (only if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated password for network access (only if network credentials enabled)\"}])]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L216"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime","path":"Place/EventSetupBreakdownTime.html","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/event/changed\") do |_subscription, payload|\n begin\n logger.debug do\n \"received event changed signal #{payload}\"\n end\n @event_change_mutex.synchronize do\n event_changed(EventChangedSignal.from_json(payload))\n end\n rescue error\n logger.warn(exception: error) do\n \"error processing event changed signal\"\n end\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/EventChangedSignal","path":"Place/EventSetupBreakdownTime/EventChangedSignal.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventChangedSignal","name":"EventChangedSignal","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"event:PlaceCalendar::Event-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event","return_type":"PlaceCalendar::Event","visibility":"Public","body":"@event"}},{"html_id":"event=(event:PlaceCalendar::Event)-instance-method","name":"event=","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event=","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"@event = event"}},{"html_id":"event_ical_uid:String-instance-method","name":"event_ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid","return_type":"String","visibility":"Public","body":"@event_ical_uid"}},{"html_id":"event_ical_uid=(event_ical_uid:String)-instance-method","name":"event_ical_uid=","abstract":false,"args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"args_string":"(event_ical_uid : String)","args_html":"(event_ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid=","args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"visibility":"Public","body":"@event_ical_uid = event_ical_uid"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String|Nil)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"args_string":"(host : String | Nil)","args_html":"(host : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"visibility":"Public","body":"@host = host"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/EventMetadata","path":"Place/EventSetupBreakdownTime/EventMetadata.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventMetadata","name":"EventMetadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L199"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L200"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time","return_type":"Int64","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"args_string":"(breakdown_time : Int64)","args_html":"(breakdown_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"cancelled:Bool-instance-method","name":"cancelled","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled","return_type":"Bool","visibility":"Public","body":"@cancelled"}},{"html_id":"cancelled=(cancelled:Bool)-instance-method","name":"cancelled=","abstract":false,"args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"args_string":"(cancelled : Bool)","args_html":"(cancelled : Bool)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled=","args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"visibility":"Public","body":"@cancelled = cancelled"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host_email:String-instance-method","name":"host_email","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email","return_type":"String","visibility":"Public","body":"@host_email"}},{"html_id":"host_email=(host_email:String)-instance-method","name":"host_email=","abstract":false,"args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"args_string":"(host_email : String)","args_html":"(host_email : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email=","args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"visibility":"Public","body":"@host_email = host_email"}},{"html_id":"ical_uid:String-instance-method","name":"ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid","return_type":"String","visibility":"Public","body":"@ical_uid"}},{"html_id":"ical_uid=(ical_uid:String)-instance-method","name":"ical_uid=","abstract":false,"args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"args_string":"(ical_uid : String)","args_html":"(ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid=","args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"visibility":"Public","body":"@ical_uid = ical_uid"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"resource_calendar:String-instance-method","name":"resource_calendar","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar","return_type":"String","visibility":"Public","body":"@resource_calendar"}},{"html_id":"resource_calendar=(resource_calendar:String)-instance-method","name":"resource_calendar=","abstract":false,"args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"args_string":"(resource_calendar : String)","args_html":"(resource_calendar : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar=","args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"visibility":"Public","body":"@resource_calendar = resource_calendar"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time","return_type":"Int64","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"args_string":"(setup_time : Int64)","args_html":"(setup_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"visibility":"Public","body":"@setup_time = setup_time"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/LinkedEvents","path":"Place/EventSetupBreakdownTime/LinkedEvents.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::LinkedEvents","name":"LinkedEvents","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L162"},{"filename":"src/place/event_setup_breakdown_time.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(main_event_ical:String|Nil,main_event_id:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil, main_event_id : String | Nil)","args_html":"(main_event_ical : String | Nil, main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L182"},"def":{"name":"new","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(main_event_ical, main_event_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L175"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"main_event_ical:String|Nil-instance-method","name":"main_event_ical","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_ical"}},{"html_id":"main_event_ical=(main_event_ical:String|Nil)-instance-method","name":"main_event_ical=","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil)","args_html":"(main_event_ical : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical=","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_ical = main_event_ical"}},{"html_id":"main_event_id:String|Nil-instance-method","name":"main_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_id"}},{"html_id":"main_event_id=(main_event_id:String|Nil)-instance-method","name":"main_event_id=","abstract":false,"args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_id : String | Nil)","args_html":"(main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id=","args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_id = main_event_id"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","path":"Place/EventSetupBreakdownTime/PlaceCalendar.html","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar","abstract":false,"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar/Event","path":"Place/EventSetupBreakdownTime/PlaceCalendar/Event.html","kind":"class","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar"},"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64|Nil-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64|Nil)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"args_string":"(breakdown_time : Int64 | Nil)","args_html":"(breakdown_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64|Nil-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64|Nil)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"args_string":"(setup_time : Int64 | Nil)","args_html":"(setup_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@setup_time = setup_time"}}]}]}]},{"html_id":"drivers/Place/Geometry","path":"Place/Geometry.html","kind":"class","full_name":"Place::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(coordinates:Array(Tuple(Float64,Float64)),geo_type:String=\"Polygon\")-class-method","name":"new","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = \"Polygon\")","args_html":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = "Polygon")","location":{"filename":"src/place/area_config.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L8"},"def":{"name":"new","args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(coordinates, geo_type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"coordinates:Array(Tuple(Float64,Float64))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L13"},"def":{"name":"coordinates","return_type":"Array(Tuple(Float64, Float64))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Tuple(Float64,Float64)))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)))","args_html":"(coordinates : Array(Tuple(Float64, Float64)))","location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L13"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"geo_type:String-instance-method","name":"geo_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L12"},"def":{"name":"geo_type","return_type":"String","visibility":"Public","body":"@geo_type"}},{"html_id":"geo_type=(geo_type:String)-instance-method","name":"geo_type=","abstract":false,"args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"args_string":"(geo_type : String)","args_html":"(geo_type : String)","location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L12"},"def":{"name":"geo_type=","args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"visibility":"Public","body":"@geo_type = geo_type"}}]},{"html_id":"drivers/Place/Help","path":"Place/Help.html","kind":"alias","full_name":"Place::Help","name":"Help","abstract":false,"locations":[{"filename":"src/place/meet/help.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::HelpPage)","aliased_html":"Hash(String, Place::HelpPage)","const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"}},{"html_id":"drivers/Place/HelpPage","path":"Place/HelpPage.html","kind":"struct","full_name":"Place::HelpPage","name":"HelpPage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/help.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/help.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L10"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L8"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L9"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/HTTPPinger","path":"Place/HTTPPinger.html","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/http_pinger.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_CALLBACK","name":"DUMMY_CALLBACK","value":"Proc(Task, Nil).new do\n nil\nend"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_status:Bool-instance-method","name":"check_status","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L55"},"def":{"name":"check_status","return_type":"Bool","visibility":"Public","body":"begin\n response = http(@request_verb, \"/\", headers: @request_headers)\n if response.status_code == expected_response_code\n self[:last_successful_check] = Time.utc.to_unix\n self[:last_response_code] = response.status_code\n true\n else\n self[:last_response_code] = response.status_code\n @response_mismatch_count = @response_mismatch_count + 1\n self[:response_mismatch_count] = @response_mismatch_count\n queue.online = false\n false\n end\nrescue error\n logger.warn(exception: error) do\n \"HTTP service not responding\"\n end\n @response_failure_count = @response_failure_count + 1\n self[:response_failure_count] = @response_failure_count\n self[:last_error] = error.message\n false\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"check_status"}},{"html_id":"curl(verb:String,path:String,headers:Hash(String,String)={}ofString=>String,body:String|Nil=nil)-instance-method","name":"curl","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","args_html":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","location":{"filename":"src/place/http_pinger.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L80"},"def":{"name":"curl","args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = http(verb, path, body, headers: headers)\nlogger.debug do\n \"response #{response.status}: #{response.status_message}\\nheaders: #{response.headers}\\n#{response.body}\"\nend\ntask = PlaceOS::Driver::Task.new(queue, DUMMY_CALLBACK, 0, 0.seconds, 0, false, nil, nil)\ntask.success(response.body, response.status_code)\n"}},{"html_id":"expected_response_code:Int32-instance-method","name":"expected_response_code","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L26"},"def":{"name":"expected_response_code","return_type":"Int32","visibility":"Public","body":"@expected_response_code"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"transport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(((setting?(Int32, :ping_every)) || 60).seconds) do\n check_status\nend\n@request_verb = (setting?(String, :request_verb)) || \"GET\"\n@expected_response_code = (setting?(Int32, :expected_response_code)) || 200\nrequest_headers = HTTP::Headers.new\nheaders = (setting?(HeaderJSON, :request_headers)) || ({} of String => Array(String) | String)\nheaders.each do |key, value|\n request_headers.add(key, value)\nend\n@request_headers = request_headers\n"}},{"html_id":"request_verb:String-instance-method","name":"request_verb","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L27"},"def":{"name":"request_verb","return_type":"String","visibility":"Public","body":"@request_verb"}},{"html_id":"response_failure_count:UInt64-instance-method","name":"response_failure_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L24"},"def":{"name":"response_failure_count","return_type":"UInt64","visibility":"Public","body":"@response_failure_count"}},{"html_id":"response_mismatch_count:UInt64-instance-method","name":"response_mismatch_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L23"},"def":{"name":"response_mismatch_count","return_type":"UInt64","visibility":"Public","body":"@response_mismatch_count"}}],"types":[{"html_id":"drivers/Place/HTTPPinger/HeaderJSON","path":"Place/HTTPPinger/HeaderJSON.html","kind":"alias","full_name":"Place::HTTPPinger::HeaderJSON","name":"HeaderJSON","abstract":false,"locations":[{"filename":"src/place/http_pinger.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Array(String) | String)","aliased_html":"Hash(String, Array(String) | String)","const":false,"namespace":{"html_id":"drivers/Place/HTTPPinger","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger"}}]},{"html_id":"drivers/Place/LLM","path":"Place/LLM.html","kind":"class","full_name":"Place::LLM","name":"LLM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/llm.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capabilities-instance-method","name":"capabilities","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L43"},"def":{"name":"capabilities","visibility":"Public","body":"(system.implementing(Interface::ChatFunctions)).map do |driver|\n {id: driver.module_name, capability: driver[:capabilities].as_s}\nend"}},{"html_id":"new_chat-instance-method","name":"new_chat","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L52"},"def":{"name":"new_chat","visibility":"Public","body":"{prompt: @prompt, capabilities: capabilities, system_id: system.id}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@prompt = setting(String, :prompt)\n@user_hint = (setting?(String, :user_hint)) || \"Hi! I'm your workplace assistant.\"\nschedule.clear\nschedule.in(5.seconds) do\n update_prompt\nend\nschedule.every(5.minutes) do\n update_prompt\nend\n"}},{"html_id":"prompt:String-instance-method","name":"prompt","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L41"},"def":{"name":"prompt","return_type":"String","visibility":"Public","body":"if (__temp_1 = @prompt).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#prompt cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"prompt?:String|Nil-instance-method","name":"prompt?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L41"},"def":{"name":"prompt?","return_type":"String | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"user_hint:String-instance-method","name":"user_hint","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_hint).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#user_hint cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_hint?:String|Nil-instance-method","name":"user_hint?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint?","return_type":"String | ::Nil","visibility":"Public","body":"@user_hint"}}]},{"html_id":"drivers/Place/LocationServices","path":"Place/LocationServices.html","kind":"class","full_name":"Place::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/location_services.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, {} of String => String, nil}","doc":"===============================\nIP ADDRESS => MAC ADDRESS\n===============================","summary":"

=============================== IP ADDRESS => MAC ADDRESS ===============================

"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L30"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String)-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/place/location_services.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L138"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nowner = nil\n((system.implementing(Interface::Locatable)).check_ownership_of(mac_address)).get.each do |result|\n if result != nil\n owner = result\n break\n end\nend\nif owner.nil? && @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).check_ownership_of(mac_address))\n end\n end\n results.each do |sys_results|\n sys_results.get.each do |result|\n if result != nil\n owner = result\n break\n end\n end\n if owner.nil?\n else\n break\n end\n end\nend\nowner\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L174"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).device_locations(zone_id, location)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @include_room_locations\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).device_locations(zone_id, location))\n end\n end\n results.each do |__arg9|\n __arg9.get.each do |locations|\n located.concat(locations.as_a)\n end\n end\nend\nlocated\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L54"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L65"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"ip_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"ip_mappings","doc":"Webhook handler for accepting IP address to username mappings\nThis data is typically obtained via domain controller logs","summary":"

Webhook handler for accepting IP address to username mappings This data is typically obtained via domain controller logs

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L298"},"def":{"name":"ip_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"IP mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nip_map = Array(Tuple(String, String, String, String | ::Nil)).from_json(body)\n(system.implementing(Interface::Locatable)).ip_username_mappings(ip_map)\nSUCCESS_RESPONSE\n"}},{"html_id":"locate_contacts(list_name:String)-instance-method","name":"locate_contacts","doc":"locates all the of the emergency contacts","summary":"

locates all the of the emergency contacts

","abstract":false,"args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"args_string":"(list_name : String)","args_html":"(list_name : String)","location":{"filename":"src/place/location_services.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L346"},"def":{"name":"locate_contacts","args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"visibility":"Public","body":"contacts = status(Hash(String, Array(NamedTuple(email: String, username: String))), :emergency_contacts)\nlist = contacts[list_name]\nresults = {} of String => Array(JSON::Any)\nlist.each do |person|\n email = person[:email]\n results[email] = locate_user(email, person[:username])\nend\nresults\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"Runs through all the services that support the Locatable interface\nrequests location information on the identifier for all of them\nconcatenates the results and returns them as a single array","summary":"

Runs through all the services that support the Locatable interface requests location information on the identifier for all of them concatenates the results and returns them as a single array

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L75"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).locate_user(email, username)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n results << {level_id, ((system(system_id)).implementing(Interface::Locatable)).locate_user(email, username)}\n end\n end\n results.each do |__temp_929|\n level_id, result = __temp_929\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"mac_address_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L309"},"def":{"name":"mac_address_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"MAC mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nusername, macs, domain = Tuple(String, Array(String), String | ::Nil).from_json(body)\nusername = username.strip\nmacs = macs.compact_map do |mac|\n mac = (mac.strip.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase\n if mac.size == 12\n mac\n end\nend\nif username.empty? || macs.empty?\n return {HTTP::Status::NOT_ACCEPTABLE, {} of String => String, nil}\nend\n(system.implementing(Interface::Locatable)).mac_address_mappings(username, macs, domain)\nSUCCESS_RESPONSE\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nmacs = [] of String\n((system.implementing(Interface::Locatable)).macs_assigned_to(email, username)).get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\nend\nif @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).macs_assigned_to(email, username))\n end\n end\n results.each do |__arg7|\n __arg7.get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\n end\n end\nend\nmacs\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@emergency_contacts = (setting?(Hash(String, String), :emergency_contacts)) || Hash(String, String).new\n@search_building = (setting?(Bool, :search_building)) || false\n@include_room_locations = (setting?(Bool, :include_room_locations)) || false\n@building_id = nil\n@systems = nil\nschedule.clear\nif @search_building || @include_room_locations\n schedule.every(1.hour) do\n if @systems\n @systems = get_systems_list.not_nil!\n end\n end\nend\nif !@emergency_contacts.empty?\n schedule.every(6.hours, immediate: true) do\n update_contacts_list\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil)-instance-method","name":"sensor","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil)","args_html":"(mac : String, id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L247"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"querying sensor with mac: #{mac}, id: #{id.inspect}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensor(mac, id)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif located.empty?\nelse\n return located.first\nend\ndriver_ids = Set.new(drivers.map() do |__arg13|\n __arg13.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg14|\n __arg14.@module_id\n end)\n results << {level_id, drivers.sensor(mac, id)}\n end\n end\n results.each do |__temp_931|\n level_id, result = __temp_931\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nif located.empty?\nelse\n located.first\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil)-instance-method","name":"sensors","doc":"sensor search + filtered search","summary":"

sensor search + filtered search

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L203"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching sensors of type: #{type.inspect}, mac: #{mac.inspect}, zone_id: #{zone_id}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensors(type, mac, zone_id)).get.each do |locations|\n located.concat(locations.as_a)\nend\ndriver_ids = Set.new(drivers.map() do |__arg10|\n __arg10.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n if zone_id && (zone_id != level_id)\n next\n end\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg11|\n __arg11.@module_id\n end)\n results << {level_id, drivers.sensors(type, mac, zone_id)}\n end\n end\n results.each do |__temp_930|\n level_id, result = __temp_930\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L31"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"update_contacts_list-instance-method","name":"update_contacts_list","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L328"},"def":{"name":"update_contacts_list","visibility":"Public","body":"if @emergency_contacts.empty?\n self[:emergency_contacts] = nil\n return\nend\nif !(system.exists?(:Calendar))\n logger.warn do\n \"contacts requested however no directory service available\"\n end\n return\nend\ndirectory = system[:Calendar]\nself[:emergency_contacts] = @emergency_contacts.transform_values do |id|\n (directory.get_members(id)).get.as(JSON::Any)\nend\n"}}]},{"html_id":"drivers/Place/LogicExample","path":"Place/LogicExample.html","kind":"class","full_name":"Place::LogicExample","name":"LogicExample","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/logic_example.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"display_count-instance-method","name":"display_count","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L28"},"def":{"name":"display_count","visibility":"Public","body":"system.count(:Display)"}},{"html_id":"not_implemented-instance-method","name":"not_implemented","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L32"},"def":{"name":"not_implemented","visibility":"Public","body":"raise(\"not implemented\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L10"},"def":{"name":"on_update","visibility":"Public","body":"logger.info do\n \"woot! an update #{setting?(String, :name)}\"\nend"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/logic_example.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(system.all(:Display)).power(state)"}},{"html_id":"power_state?-instance-method","name":"power_state?","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L14"},"def":{"name":"power_state?","visibility":"Public","body":"main_lcd[:power]"}},{"html_id":"webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/logic_example.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L22"},"def":{"name":"webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook executed\"\nend\npower(true)\n{HTTP::Status::OK.to_i, {} of String => String, \"\"}\n"}}]},{"html_id":"drivers/Place/Meet","path":"Place/Meet.html","kind":"class","full_name":"Place::Meet","name":"Meet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LIGHT_MOD","name":"DEFAULT_LIGHT_MOD","value":"\"Lighting_1\""},{"id":"EXT_INIT","name":"EXT_INIT","value":"[:qsc_phone_dialing_init] of Symbol"},{"id":"EXT_POWER","name":"EXT_POWER","value":"[:qsc_phone_dialing_power] of Symbol"}],"included_modules":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_preset(preset:String,camera:String)-instance-method","name":"add_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":969,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L969"},"def":{"name":"add_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].save_position(preset, cam.index || 0)\n"}},{"html_id":"apply_camera_defaults-instance-method","name":"apply_camera_defaults","doc":"run on system power on","summary":"

run on system power on

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":942,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L942"},"def":{"name":"apply_camera_defaults","visibility":"Public","body":"(system.all(vc_camera_module)).power(true)"}},{"html_id":"apply_default_routes-instance-method","name":"apply_default_routes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L293"},"def":{"name":"apply_default_routes","visibility":"Public","body":"begin\n @default_routes.each do |output, input|\n route_signal(input, output)\n end\nrescue error\n logger.warn(exception: error) do\n \"error applying default routes\"\n end\nend"}},{"html_id":"audio_mute(state:Bool)-instance-method","name":"audio_mute","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L634"},"def":{"name":"audio_mute","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)\nstate ? \"audio is muted\" : \"audio is unmuted\"\n"}},{"html_id":"audio_muted?-instance-method","name":"audio_muted?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L640"},"def":{"name":"audio_muted?","visibility":"Public","body":"(status?(Bool, :mute)) || false"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L91"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"provides meeting room audio visual control such as controlling video source to be presented\\n\"\n str << \"check for available inputs and outputs before switching to present a source to a display.\\n\"\n str << \"output volume and microphone fader controls are floats between 0.0 to 100.0\\n\"\n str << \"query output volume to change it by a relative amount, if asked to increase or decrease volume, change it by 10.0\\n\"\n str << \"audio can be muted and you unroute video to blank displays.\\n\"\n str << \"you can also shutdown, startup, power off, power on, start or end the meeting using the set_power_state function available in this capability.\\n\"\n str << \"some rooms may have lighting control, make sure to check what levels are available before changing state\\n\"\n str << \"some rooms may have accessories such as blinds or projector screen controls. Check for available accessories when asked about something not explicitly controllable\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","doc":"core includes: 'current_routes' hash\nbut we override it here for LLM integration","summary":"

core includes: 'current_routes' hash but we override it here for LLM integration

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L137"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{set_power_state: \"power on or off the meeting room. Send true for power on (startup) or false for power off (shutdown)\", \"power?\": \"query the system power state?\", inputs_and_outputs: \"available inputs and outputs. Route using id keys\", route_input: \"route to present an input to an output / display. Don't guess, look up available input and output ids\", unroute: \"blank a display / output, sometimes called a video mute\", set_volume: \"change the room volume\", \"volume?\": \"query the current volume, useful to know when asked to change the volume relatively\", audio_mute: \"mute or unmute the room audio\", \"audio_muted?\": \"check if the room audio is muted\", lighting_scenes: \"returns the list of available lighting scenes\", \"lighting_scene?\": \"query the current lighting scene\", set_lighting_scene: \"set a new lighting scene. Remember to list available lighting scenes before calling\"}"}},{"html_id":"init_vidconf-instance-method","name":"init_vidconf","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":936,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L936"},"def":{"name":"init_vidconf","visibility":"Public","body":"@vc_camera_in = setting?(String | Array(String), :vc_camera_in)\n@vc_camera_module = setting?(String, :vc_camera_module)\n"}},{"html_id":"inputs_and_outputs-instance-method","name":"inputs_and_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L300"},"def":{"name":"inputs_and_outputs","visibility":"Public","body":"inps = all_inputs\nouts = all_outputs\nresults = [] of NamedTuple(type: Symbol, name: String, id: String)\ninps.each do |input|\n name = status?(NamedTuple(name: String), \"input/#{input}\")\n if name\n results << {type: :input, name: name[:name], id: input}\n end\nend\nouts.each do |output|\n name = status?(NamedTuple(name: String), \"output/#{output}\")\n if name\n results << {type: :output, name: name[:name], id: output}\n end\nend\nresults\n"}},{"html_id":"join_mode(mode_id:String,master:Bool=true)-instance-method","name":"join_mode","abstract":false,"args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"args_string":"(mode_id : String, master : Bool = true)","args_html":"(mode_id : String, master : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1064"},"def":{"name":"join_mode","args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"visibility":"Public","body":"mode = @join_modes[mode_id]\nif @join_selected\n old_mode = @join_modes[@join_selected]?\nend\njoin_settings = @join_settings.not_nil!\nthis_room = config.control_system.not_nil!.id\nbegin\n @join_lock.synchronize do\n if master\n notify_rooms = join_settings.type.fully_aware? ? join_settings.all_rooms : mode.room_ids\n if mode.linked?\n if notify_rooms.includes?(this_room)\n else\n raise(\"unable to perform join from this system\")\n end\n end\n @join_selected = mode.id\n @join_master = true\n if (old_mode && old_mode.linked?) && join_settings.type.independent?\n unlink(old_mode.room_ids - mode.room_ids)\n end\n if !mode.linked?\n return unlink(notify_rooms)\n end\n reset_remote_cache\n self[:join_confirmed] = @join_confirmed = false\n notify_rooms.each do |room_id|\n if room_id == this_room\n next\n end\n (((system(room_id)).get(\"System\", 1)).join_mode(mode_id, master: false)).get\n end\n persist_join_state\n self[:join_master] = master\n self[:joined] = @join_selected\n self[:join_confirmed] = @join_confirmed = true\n else\n @join_selected = mode.id\n @join_master = false\n reset_remote_cache\n persist_join_state\n self[:join_master] = master\n self[:joined] = mode.id\n self[:join_confirmed] = @join_confirmed = true\n end\n end\nensure\n update_available_ui\n if mode.linked? && !power?\n power(true)\n end\n mode.join_actions.each do |action|\n if master || !action.master_only?\n system[action.module_id].__send__(action.function_name, action.arguments, action.named_args)\n end\n end\n if !@light_scenes.empty? && master\n select_lighting_scene(@light_scenes.keys.first)\n end\nend\n"}},{"html_id":"lighting_independent:Bool-instance-method","name":"lighting_independent","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":691,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L691"},"def":{"name":"lighting_independent","return_type":"Bool","visibility":"Public","body":"@lighting_independent"}},{"html_id":"lighting_scene?-instance-method","name":"lighting_scene?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L775"},"def":{"name":"lighting_scene?","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String, id: Int32)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\ncurrent = status?(Int32, :lighting_scene)\nscene = scenes.find do |available|\n available[:id] == current\nend\nscene ? \"current lighting scene: #{scene[:name]}\" : \"lights in unknown state\"\n"}},{"html_id":"lighting_scenes-instance-method","name":"lighting_scenes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L768"},"def":{"name":"lighting_scenes","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\nscenes.map do |scene|\n scene[:name].downcase\nend\n"}},{"html_id":"linked_outputs:Hash(String,Hash(String,String))-instance-method","name":"linked_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L122"},"def":{"name":"linked_outputs","visibility":"Public","body":"@linked_outputs"}},{"html_id":"local_accessories:Array(Accessory)-instance-method","name":"local_accessories","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":812,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L812"},"def":{"name":"local_accessories","return_type":"Array(Accessory)","visibility":"Public","body":"@local_accessories"}},{"html_id":"local_help:Help-instance-method","name":"local_help","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L118"},"def":{"name":"local_help","return_type":"Help","visibility":"Public","body":"@local_help"}},{"html_id":"local_lighting_area:LightingArea|Nil-instance-method","name":"local_lighting_area","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":690,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L690"},"def":{"name":"local_lighting_area","return_type":"LightingArea | ::Nil","visibility":"Public","body":"@local_lighting_area"}},{"html_id":"local_mics:Array(Microphone)-instance-method","name":"local_mics","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":833,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L833"},"def":{"name":"local_mics","return_type":"Array(Microphone)","visibility":"Public","body":"@local_mics"}},{"html_id":"local_outputs:Array(String)-instance-method","name":"local_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L123"},"def":{"name":"local_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_outputs"}},{"html_id":"local_preview_outputs:Array(String)-instance-method","name":"local_preview_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L126"},"def":{"name":"local_preview_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_preview_outputs"}},{"html_id":"local_tabs:Array(Tab)-instance-method","name":"local_tabs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L119"},"def":{"name":"local_tabs","return_type":"Array(Tab)","visibility":"Public","body":"@local_tabs"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Sets the mute state on a signal node within the system.","summary":"

Sets the mute state on a signal node within the system.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/meet.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L667"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"input_or_output = index\naudio = @master_audio\nif audio\n logger.debug do\n \"setting master mute to #{state}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nmixer = system[audio.module_id]\nset_master_mute(mixer, audio, state)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"power(state:Bool,unlink:Bool=false)-instance-method","name":"power","doc":"Sets the overall room power state.","summary":"

Sets the overall room power state.

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"args_string":"(state : Bool, unlink : Bool = false)","args_html":"(state : Bool, unlink : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L210"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"visibility":"Public","body":"if state == (status?(Bool, :active))\n return\nend\nlogger.debug do\n \"Powering #{state ? \"up\" : \"down\"}\"\nend\nself[:active] = state\nunlink = @unjoin_on_shutdown.nil? ? unlink : !!@unjoin_on_shutdown\nremotes_before = remote_rooms\nsys = system\nif state\n apply_master_audio_default\n apply_camera_defaults\n apply_default_routes\n apply_mic_defaults\n if first_output = @tabs.first?.try do |__arg0|\n __arg0.inputs.first\n end\n selected_input(first_output)\n end\nelse\n if unlink\n unlink_systems\n end\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n if devices = @shutdown_devices\n devices.each do |device|\n sys[device].power(false)\n end\n else\n (sys.implementing(Interface::Powerable)).power(false)\n end\n if sys.exists?(@local_vidconf)\n sys[@local_vidconf].hangup\n end\nend\nremotes_before.each do |room|\n room.power(state, unlink)\nend\n{% for func in EXT_POWER %}\n begin\n {{ func.id }}(state, unlink)\n rescue error\n logger.warn(exception: error) { \"error in power state function: #{ {{ func.id.stringify }} }\" }\n end\n {% end %}\nstate\n"}},{"html_id":"power?:Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L257"},"def":{"name":"power?","return_type":"Bool","visibility":"Public","body":"(status?(Bool, :active)) || false"}},{"html_id":"remove_preset(preset:String,camera:String)-instance-method","name":"remove_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":974,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L974"},"def":{"name":"remove_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].remove_position(preset, cam.index || 0)\n"}},{"html_id":"route(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true,called_from_join:Bool=false)-instance-method","name":"route","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L343"},"def":{"name":"route","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"visibility":"Public","body":"route_signal(input, output, max_dist, simulate, follow_additional_routes)\nif links = @linked_outputs[output]?\n links.each do |_sys_id, remote_out|\n route_signal(input, remote_out, max_dist, simulate, follow_additional_routes)\n end\nend\nif !called_from_join\n remote_systems.each do |remote_system|\n room = remote_system.room_logic\n sys_id = remote_system.system_id\n if links = @linked_outputs[output]?\n if remote_out = links[sys_id]?\n room.route(input, remote_out, max_dist, simulate, follow_additional_routes, true)\n end\n end\n end\nend\n"}},{"html_id":"route_input(input_id:String,output_id:String)-instance-method","name":"route_input","abstract":false,"args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"args_string":"(input_id : String, output_id : String)","args_html":"(input_id : String, output_id : String)","location":{"filename":"src/place/meet.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L321"},"def":{"name":"route_input","args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"visibility":"Public","body":"keys = all_inputs\nhash = keys.each_with_object({} of String => String) do |input, memo|\n memo[input.downcase] = input\nend\ninput_actual = hash[input_id.downcase]?\nif input_actual\nelse\n raise(\"invalid input #{input_id}, must be one of #{keys.join(\", \")}\")\nend\nkeys = all_outputs\nhash = keys.each_with_object({} of String => String) do |output, memo|\n memo[output.downcase] = output\nend\noutput_actual = hash[output_id.downcase]?\nif output_actual\nelse\n raise(\"invalid output #{output_id}, must be one of: #{keys.join(\", \")}\")\nend\npower(true)\nselected_input(input_actual)\nroute(input_actual, output_actual)\n"}},{"html_id":"select_lighting_scene(scene:String,push_to_remotes:Bool=true)-instance-method","name":"select_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"args_string":"(scene : String, push_to_remotes : Bool = true)","args_html":"(scene : String, push_to_remotes : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L755"},"def":{"name":"select_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"visibility":"Public","body":"scene_id = @light_scenes[scene.downcase]?\nif scene_id\nelse\n raise(ArgumentError.new(\"invalid scene '#{scene}', valid scenes are: #{@light_scenes.keys.join(\", \")}\"))\nend\nsystem[@light_module].set_lighting_scene(scene_id, @light_area)\nif push_to_remotes && lighting_independent\n remote_rooms.each do |room|\n room.select_lighting_scene(scene, false)\n end\nend\n"}},{"html_id":"selected_camera(camera:String)-instance-method","name":"selected_camera","doc":"This is the camera input that is currently selected so we can switch between\ndifferent cameras","summary":"

This is the camera input that is currently selected so we can switch between different cameras

","abstract":false,"args":[{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(camera : String)","args_html":"(camera : String)","location":{"filename":"src/place/meet.cr","line_number":948,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L948"},"def":{"name":"selected_camera","args":[{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"self[:selected_camera] = camera\ncam = camera_details(camera)\nsystem[cam.mod].power(true)\ncase camera_in = @vc_camera_in\nin String\n route_signal(camera, camera_in)\nin Array(String)\n camera_in.each do |cin|\n route_signal(camera, cin)\n end\nin Nil\nend\nif camera_vc_in = cam.vc_camera_input\n system[@local_vidconf].camera_select(camera_vc_in)\nend\n"}},{"html_id":"selected_input(name:String,simulate:Bool=false):Nil-instance-method","name":"selected_input","doc":"This is the currently selected input\nif the user selects an output then this will be routed to it","summary":"

This is the currently selected input if the user selects an output then this will be routed to it

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"args_string":"(name : String, simulate : Bool = false) : Nil","args_html":"(name : String, simulate : Bool = false) : Nil","location":{"filename":"src/place/meet.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L374"},"def":{"name":"selected_input","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"selected_tab = @tabs.find() do |__arg2|\n __arg2.inputs.includes?(name)\nend.try(&.name)\nif selected_tab || !simulate\n self[:selected_input] = name\n self[:selected_tab] = selected_tab || @tabs.first\n sys = system\n if sys.exists?(name)\n mod = sys[name]\n if mod.implements?(Interface::Powerable)\n mod.power(true)\n end\n end\nend\nif !simulate\n if @preview_outputs.empty?\n if @outputs.size == 1\n route_signal(name, @outputs.first)\n end\n else\n @preview_outputs.each do |output|\n route_signal(name, output)\n end\n end\n remote_rooms.each do |room|\n room.selected_input(name, true)\n end\nend\n"}},{"html_id":"set_lighting_scene(scene:String)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"}],"args_string":"(scene : String)","args_html":"(scene : String)","location":{"filename":"src/place/meet.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L784"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"}],"visibility":"Public","body":"scenes = lighting_scenes\nif scenes.includes?(scene.downcase)\nelse\n raise(\"invalid scene #{scene}, must be one of: #{scenes.join(\", \")}\")\nend\nselect_lighting_scene(scene)\n\"current lighting scene: #{scene}\"\n"}},{"html_id":"set_microphone(level:Float64,mute:Bool=false)-instance-method","name":"set_microphone","doc":"level is a percentage 0.0->100.0","summary":"

level is a percentage 0.0->100.0

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(level : Float64, mute : Bool = false)","args_html":"(level : Float64, mute : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":903,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L903"},"def":{"name":"set_microphone","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"visibility":"Public","body":"@local_mics.each do |mic|\n mixer = system[mic.module_id]\n if level_index = mic.level_index\n mixer.fader(mic.level_id, level, level_index)\n else\n mixer.fader(mic.level_id, level)\n end\n if mute_index = mic.mute_index\n mixer.mute(mic.level_id, mute, mute_index)\n else\n mixer.mute(mic.level_id, mute)\n end\nend"}},{"html_id":"set_power_state(state:Bool)-instance-method","name":"set_power_state","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L205"},"def":{"name":"set_power_state","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power(state)"}},{"html_id":"set_volume(level:Int32|Float64)-instance-method","name":"set_volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/meet.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L616"},"def":{"name":"set_volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"power(true)\nif level.zero?\n audio_mute(true)\n \"audio was muted\"\nelse\n audio_mute(false)\n volume(level, \"\")\n \"volume set to #{level.to_f.clamp(0.0, 100.0)}\"\nend\n"}},{"html_id":"unlink_internal_use-instance-method","name":"unlink_internal_use","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1149"},"def":{"name":"unlink_internal_use","visibility":"Public","body":"begin\n @join_lock.synchronize do\n if @join_modes[@join_selected]?.try() do |__arg11|\n __arg11.room_ids.empty?\n end\n else\n @join_selected = nil\n end\n @join_master = true\n self[:join_confirmed] = @join_confirmed = false\n self[:join_master] = true\n self[:joined] = @join_selected\n reset_remote_cache\n persist_join_state\n update_available_ui\n self[:join_confirmed] = @join_confirmed = true\n end\n if @mute_on_unlink && (status?(Bool, :active))\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n end\nrescue error\n logger.error(exception: error) do\n \"ui state failed to be applied unjoining room\"\n end\nend"}},{"html_id":"unlink_systems-instance-method","name":"unlink_systems","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1135"},"def":{"name":"unlink_systems","visibility":"Public","body":"begin\n if unlink_mode = @join_modes.find do |_id, mode|\n !mode.linked?\n end\n join_mode(unlink_mode[0])\n else\n currrent_selected = @join_selected\n if currrent_selected && (current_mode = @join_modes[currrent_selected]?)\n unlink(current_mode.room_ids)\n end\n unlink_internal_use\n end\nrescue error\n logger.warn(exception: error) do\n \"unlink failed\"\n end\nend"}},{"html_id":"unroute(output:String)-instance-method","name":"unroute","doc":"we want to unroute any signal going to the display\nor if it's a direct connection, we want to mute the display.","summary":"

we want to unroute any signal going to the display or if it's a direct connection, we want to mute the display.

","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"String"}],"args_string":"(output : String)","args_html":"(output : String)","location":{"filename":"src/place/meet.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L366"},"def":{"name":"unroute","args":[{"name":"output","external_name":"output","restriction":"String"}],"visibility":"Public","body":"begin\n route(\"MUTE\", output)\nrescue error\n logger.debug(exception: error) do\n \"failed to unroute #{output}\"\n end\nend"}},{"html_id":"volume(level:Int32|Float64,input_or_output:String)-instance-method","name":"volume","doc":"Set the volume of a signal node within the system.","summary":"

Set the volume of a signal node within the system.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"args_string":"(level : Int32 | Float64, input_or_output : String)","args_html":"(level : Int32 | Float64, input_or_output : String)","location":{"filename":"src/place/meet.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L645"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"visibility":"Public","body":"audio = @master_audio\nif audio\n logger.debug do\n \"setting master volume to #{level}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = audio.min_level..audio.max_level\nlevel_actual = percentage * (range.end - range.begin)\nlevel_actual = (level_actual + range.begin.to_f).round(1)\nmixer = system[audio.module_id]\nset_master_volume(mixer, audio, level_actual)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L629"},"def":{"name":"volume?","visibility":"Public","body":"(status?(Float64, :volume)) || 0.0"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory","path":"Place/Meet/Accessory.html","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":795,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L795"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":796,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L796"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controls:Array(Control)-instance-method","name":"controls","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":809,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L809"},"def":{"name":"controls","return_type":"Array(Control)","visibility":"Public","body":"@controls"}},{"html_id":"module:String-instance-method","name":"module","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L808"},"def":{"name":"module","return_type":"String","visibility":"Public","body":"@module"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":807,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L807"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory/Control","path":"Place/Meet/Accessory/Control.html","kind":"struct","full_name":"Place::Meet::Accessory::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":798,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L798"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet/Accessory","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":799,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L799"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L804"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"@arguments"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":803,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L803"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":802,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L802"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":801,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L801"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Meet/AudioFader","path":"Place/Meet/AudioFader.html","kind":"class","full_name":"Place::Meet::AudioFader","name":"AudioFader","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":487,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L487"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L488"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L490"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"default_level:Float64|Nil-instance-method","name":"default_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L498"},"def":{"name":"default_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@default_level"}},{"html_id":"default_muted:Bool|Nil-instance-method","name":"default_muted","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L497"},"def":{"name":"default_muted","return_type":"Bool | ::Nil","visibility":"Public","body":"@default_muted"}},{"html_id":"implements_volume?-instance-method","name":"implements_volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L522"},"def":{"name":"implements_volume?","visibility":"Public","body":"level_id == \"\\e\""}},{"html_id":"level_feedback:String-instance-method","name":"level_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L506"},"def":{"name":"level_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_feedback).nil?\n @level_feedback = (begin\n id = level_id\n \"fader#{id.is_a?(Array) ? id.first : id}\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"level_feedback=(level_feedback:String)-instance-method","name":"level_feedback=","abstract":false,"args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"args_string":"(level_feedback : String)","args_html":"(level_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L506"},"def":{"name":"level_feedback=","args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"visibility":"Public","body":"@level_feedback = level_feedback"}},{"html_id":"level_feedback?:String?-instance-method","name":"level_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L516"},"def":{"name":"level_feedback?","visibility":"Public","body":"@level_feedback"}},{"html_id":"level_id:String|Array(String)|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L494"},"def":{"name":"level_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Array(String)|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(level_id : String | Array(String) | Nil)","args_html":"(level_id : String | Array(String) | Nil)","location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L494"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_index:Int32|Nil-instance-method","name":"level_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":500,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L500"},"def":{"name":"level_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level_index"}},{"html_id":"max_level:Float64-instance-method","name":"max_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":504,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L504"},"def":{"name":"max_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @max_level).nil?\n @max_level = (100.0)\nelse\n __temp_1\nend"}},{"html_id":"min_level:Float64-instance-method","name":"min_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":503,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L503"},"def":{"name":"min_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @min_level).nil?\n @min_level = (0.0)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L514"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @module_id).nil?\n @module_id = (\"Mixer_1\")\nelse\n __temp_1\nend"}},{"html_id":"module_id=(module_id:String)-instance-method","name":"module_id=","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String)","args_html":"(module_id : String)","location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L514"},"def":{"name":"module_id=","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"visibility":"Public","body":"@module_id = module_id"}},{"html_id":"mute_feedback:String-instance-method","name":"mute_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L510"},"def":{"name":"mute_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @mute_feedback).nil?\n @mute_feedback = (begin\n id = mute_id || level_id\n \"fader#{id.is_a?(Array) ? id.first : id}_mute\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"mute_feedback=(mute_feedback:String)-instance-method","name":"mute_feedback=","abstract":false,"args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"args_string":"(mute_feedback : String)","args_html":"(mute_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L510"},"def":{"name":"mute_feedback=","args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"visibility":"Public","body":"@mute_feedback = mute_feedback"}},{"html_id":"mute_feedback?:String?-instance-method","name":"mute_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L516"},"def":{"name":"mute_feedback?","visibility":"Public","body":"@mute_feedback"}},{"html_id":"mute_id:String|Array(String)|Nil-instance-method","name":"mute_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":495,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L495"},"def":{"name":"mute_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"if (__temp_1 = @mute_id).nil?\n @mute_id = (level_id)\nelse\n __temp_1\nend"}},{"html_id":"mute_index:Int32|Nil-instance-method","name":"mute_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":501,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L501"},"def":{"name":"mute_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mute_index"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L493"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"use_defaults?-instance-method","name":"use_defaults?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":518,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L518"},"def":{"name":"use_defaults?","visibility":"Public","body":"(@module_id.nil? && (level_id.nil? || level_id.try(&.empty?))) && (mute_id.nil? || mute_id.try(&.empty?))"}}]},{"html_id":"drivers/Place/Meet/CamDetails","path":"Place/Meet/CamDetails.html","kind":"class","full_name":"Place::Meet::CamDetails","name":"CamDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":925,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L925"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L926"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"index:String|Int32|Nil-instance-method","name":"index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":929,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L929"},"def":{"name":"index","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@index"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":928,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L928"},"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"vc_camera_input:String|Int32|Nil-instance-method","name":"vc_camera_input","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":930,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L930"},"def":{"name":"vc_camera_input","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@vc_camera_input"}}]},{"html_id":"drivers/Place/Meet/JoinAction","path":"Place/Meet/JoinAction.html","kind":"class","full_name":"Place::Meet::JoinAction","name":"JoinAction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":994,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L994"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":995,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L995"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":999,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L999"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":998,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L998"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"master_only?:Bool-instance-method","name":"master_only?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1001,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1001"},"def":{"name":"master_only?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @master_only).nil?\n @master_only = (true)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":997,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L997"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1000,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1000"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinDetail","path":"Place/Meet/JoinDetail.html","kind":"class","full_name":"Place::Meet::JoinDetail","name":"JoinDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1004,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1004"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1005,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1005"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1007,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1007"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"join_actions:Array(JoinAction)-instance-method","name":"join_actions","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1010,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1010"},"def":{"name":"join_actions","return_type":"Array(JoinAction)","visibility":"Public","body":"if (__temp_1 = @join_actions).nil?\n @join_actions = ([] of JoinAction)\nelse\n __temp_1\nend"}},{"html_id":"linked?:Bool-instance-method","name":"linked?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1017,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1017"},"def":{"name":"linked?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @linked).nil?\n @linked = (!room_ids.empty?)\nelse\n __temp_1\nend"}},{"html_id":"merge_outputs?:Bool-instance-method","name":"merge_outputs?","doc":"Do we want to merge the outputs (all outputs on all screens)\nor do we want them as seperate displays","summary":"

Do we want to merge the outputs (all outputs on all screens) or do we want them as seperate displays

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1014,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1014"},"def":{"name":"merge_outputs?","return_type":"Bool","visibility":"Public","body":"@merge_outputs"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1008,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1008"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_ids:Array(String)-instance-method","name":"room_ids","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1009,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1009"},"def":{"name":"room_ids","return_type":"Array(String)","visibility":"Public","body":"@room_ids"}}]},{"html_id":"drivers/Place/Meet/JoinSetting","path":"Place/Meet/JoinSetting.html","kind":"class","full_name":"Place::Meet::JoinSetting","name":"JoinSetting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1020,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1020"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1021,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1021"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_rooms:Set(String)-instance-method","name":"all_rooms","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1028,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1028"},"def":{"name":"all_rooms","return_type":"Set(String)","visibility":"Public","body":"if (__temp_1 = @all_rooms).nil?\n @all_rooms = (modes.reduce(Set(String).new) do |rooms, mode|\n rooms.concat(mode.room_ids)\n end)\nelse\n __temp_1\nend"}},{"html_id":"lock_remote:Bool-instance-method","name":"lock_remote","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1024,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1024"},"def":{"name":"lock_remote","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @lock_remote).nil?\n @lock_remote = (false)\nelse\n __temp_1\nend"}},{"html_id":"modes:Array(JoinDetail)-instance-method","name":"modes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1025,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1025"},"def":{"name":"modes","return_type":"Array(JoinDetail)","visibility":"Public","body":"@modes"}},{"html_id":"type:JoinType-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1023,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1023"},"def":{"name":"type","return_type":"JoinType","visibility":"Public","body":"if (__temp_1 = @type).nil?\n @type = (JoinType::Independent)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinType","path":"Place/Meet/JoinType.html","kind":"enum","full_name":"Place::Meet::JoinType","name":"JoinType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":986,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L986"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Independent","name":"Independent","value":"0","doc":"only rooms part of the join need to be notified","summary":"

only rooms part of the join need to be notified

"},{"id":"FullyAware","name":"FullyAware","value":"1","doc":"even rooms not part of the join, need to be notified","summary":"

even rooms not part of the join, need to be notified

"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"doc":"=========================\nRoom Joining Coordination\n=========================","summary":"

========================= Room Joining Coordination =========================

","instance_methods":[{"html_id":"fully_aware?-instance-method","name":"fully_aware?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":991,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L991"},"def":{"name":"fully_aware?","visibility":"Public","body":"self == FullyAware"}},{"html_id":"independent?-instance-method","name":"independent?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":988,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L988"},"def":{"name":"independent?","visibility":"Public","body":"self == Independent"}}]},{"html_id":"drivers/Place/Meet/LightingArea","path":"Place/Meet/LightingArea.html","kind":"alias","full_name":"Place::Meet::LightingArea","name":"LightingArea","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":685,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L685"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/LightingScene","path":"Place/Meet/LightingScene.html","kind":"alias","full_name":"Place::Meet::LightingScene","name":"LightingScene","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L686"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(name: String, id: UInt32, icon: String, opacity: Float64)","aliased_html":"{name: String, id: UInt32, icon: String, opacity: Float64}","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/Microphone","path":"Place/Meet/Microphone.html","kind":"alias","full_name":"Place::Meet::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":831,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L831"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Meet::AudioFader","aliased_html":"Place::Meet::AudioFader","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/RemoteSystem","path":"Place/Meet/RemoteSystem.html","kind":"struct","full_name":"Place::Meet::RemoteSystem","name":"RemoteSystem","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1204"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(system_id:String,room_logic:PlaceOS::Driver::Proxy::Driver)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"args_string":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","args_html":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","location":{"filename":"src/place/meet.cr","line_number":1208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1208"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, room_logic)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"room_logic:PlaceOS::Driver::Proxy::Driver-instance-method","name":"room_logic","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1206"},"def":{"name":"room_logic","return_type":"PlaceOS::Driver::Proxy::Driver","visibility":"Public","body":"@room_logic"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1205"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]}]},{"html_id":"drivers/Place/MQTT","path":"Place/MQTT.html","kind":"class","full_name":"Place::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L86"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L100"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L40"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\n@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L46"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\n@queue_size = (setting?(Int32, :queue_size)) || 1000\nif rate_limit = setting?(Int32, :rate_limit)\n @rate_limited = true\n @wait_time = (1.0 / rate_limit.to_f).seconds\nelse\n @rate_limited = false\nend\nexisting = @subs\n@subs = (setting?(Array(String), :subscriptions)) || ([] of String)\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n perform_operation do\n client.unsubscribe(sub)\n end\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\n end\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L115"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\nperform_operation do\n @mqtt.not_nil!.ping\nend\n"}},{"html_id":"publish(key:String,payload:String):Nil-instance-method","name":"publish","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(key : String, payload : String) : Nil","args_html":"(key : String, payload : String) : Nil","location":{"filename":"src/place/mqtt.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L109"},"def":{"name":"publish","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"publishing payload to #{key}\"\nend\nperform_operation do\n @mqtt.not_nil!.publish(key, payload)\nend\nnil\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/mqtt.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L120"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}}]},{"html_id":"drivers/Place/Parking","path":"Place/Parking.html","kind":"module","full_name":"Place::Parking","name":"Parking","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Parking/Locations","path":"Place/Parking/Locations.html","kind":"class","full_name":"Place::Parking::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOKING_TYPE","name":"BOOKING_TYPE","value":"\"parking\""},{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"parking-spaces\""},{"id":"RESERVED_RELEASED","name":"RESERVED_RELEASED","value":"\"parking-released\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place/Parking","kind":"module","full_name":"Place::Parking","name":"Parking"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/parking/locations.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L125"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L137"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L59"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L110"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/parking/locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L116"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_993|\n user_email, _name = __temp_993\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\ntimezone = (config.control_system.not_nil!.timezone.presence || (setting?(String, :time_zone)).presence) || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\nschedule.clear\nschedule.every(@poll_rate) do\n query_parking_bookings\nend\nschedule.in(5.seconds) do\n query_parking_bookings\nend\n"}},{"html_id":"parking_spaces:Hash(String,Array(ParkingSpace))-instance-method","name":"parking_spaces","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L237"},"def":{"name":"parking_spaces","return_type":"Hash(String, Array(ParkingSpace))","visibility":"Public","body":"metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\nend\nzone_parking = Hash(String, Array(ParkingSpace)).new\nmetadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if spaces = level[:metadata][METADATA_KEY]?.try(&.details)\n zone_parking[zone.id] = spaces\n end\n end\nend\nzone_parking\n"}},{"html_id":"query_parking_bookings:Nil-instance-method","name":"query_parking_bookings","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L259"},"def":{"name":"query_parking_bookings","return_type":"Nil","visibility":"Public","body":"reserved_spaces = parking_spaces.tap(&.each_value(&.select!(&.reserved?)))\nlogger.debug do\n count = 0\n reserved_spaces.each_value do |space|\n count = count + space.size\n end\n \"queried reserved spaces, found #{count}\"\nend\nparking_zones = reserved_spaces.keys\nbookings = [] of JSON::Any\nparking_zones.each do |zone|\n bookings.concat(staff_api.query_bookings(type: BOOKING_TYPE, zones: {zone}).get.as_a)\nend\nbookings = bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried parking bookings, found #{bookings.size}\"\nend\nrelease_bookings = [] of JSON::Any\nparking_zones.each do |zone|\n release_bookings.concat(staff_api.query_bookings(type: RESERVED_RELEASED, zones: {zone}).get.as_a)\nend\nrelease_bookings = release_bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried released spaces, found #{release_bookings.size}\"\nend\nrelease_bookings.each do |booking|\n parking_space = booking.asset_id\n reserved_spaces.each_value do |spaces|\n spaces.reject! do |space|\n space.id == parking_space\n end\n end\nend\nnow = Time.local(@timezone)\nres_start = now.at_beginning_of_day.to_unix\nres_end = now.at_end_of_day.to_unix\nlevel_to_building = level_buildings\nreserved_spaces.each do |level_zone, reservations|\n building_zone = level_to_building[level_zone]?\n if building_zone\n else\n next\n end\n reservations.each do |reservation|\n bookings << Place::Booking.new(id: -1, booking_type: BOOKING_TYPE, booking_start: res_start, booking_end: res_end, user_id: reservation.assigned_to.as(String), user_email: reservation.assigned_to.as(String), user_name: reservation.assigned_name.as(String), zones: [level_zone, building_zone], booked_by_name: reservation.assigned_name.as(String), booked_by_email: reservation.assigned_to.as(String), asset_id: reservation.id, checked_in: true)\n end\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zone_filter:Array(String)-instance-method","name":"zone_filter","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L65"},"def":{"name":"zone_filter","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zone_filter).nil?\n @zone_filter = (begin\n lvb = level_buildings\n (lvb.keys + lvb.values).uniq\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Parking/Locations/ChildMetadata","path":"Place/Parking/Locations/ChildMetadata.html","kind":"alias","full_name":"Place::Parking::Locations::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/Details","path":"Place/Parking/Locations/Details.html","kind":"struct","full_name":"Place::Parking::Locations::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(ParkingSpace)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L224"},"def":{"name":"details","return_type":"Array(ParkingSpace)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(ParkingSpace))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"args_string":"(details : Array(ParkingSpace))","args_html":"(details : Array(ParkingSpace))","location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L224"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Parking/Locations/Metadata","path":"Place/Parking/Locations/Metadata.html","kind":"alias","full_name":"Place::Parking::Locations::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Parking::Locations::Details)","aliased_html":"Hash(String, Place::Parking::Locations::Details)","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/ParkingSpace","path":"Place/Parking/Locations/ParkingSpace.html","kind":"struct","full_name":"Place::Parking::Locations::ParkingSpace","name":"ParkingSpace","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L208"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"assigned_name:String|Nil-instance-method","name":"assigned_name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_name"}},{"html_id":"assigned_name=(assigned_name:String|Nil)-instance-method","name":"assigned_name=","abstract":false,"args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"args_string":"(assigned_name : String | Nil)","args_html":"(assigned_name : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name=","args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_name = assigned_name"}},{"html_id":"assigned_to:String|Nil-instance-method","name":"assigned_to","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_to"}},{"html_id":"assigned_to=(assigned_to:String|Nil)-instance-method","name":"assigned_to=","abstract":false,"args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"args_string":"(assigned_to : String | Nil)","args_html":"(assigned_to : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to=","args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_to = assigned_to"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L210"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L210"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L211"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L211"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"reserved?-instance-method","name":"reserved?","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L216"},"def":{"name":"reserved?","visibility":"Public","body":"!!@assigned_to"}}]},{"html_id":"drivers/Place/Parking/Locations/Zone","path":"Place/Parking/Locations/Zone.html","kind":"alias","full_name":"Place::Parking::Locations::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L227"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}}]}]},{"html_id":"drivers/Place/Pinger","path":"Place/Pinger.html","kind":"class","full_name":"Place::Pinger","name":"Pinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/pinger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"period = (setting?(Int32, :ping_every)) || 60\nperiod = (period * 1000) + (rand(1000))\nschedule.clear\nschedule.every(period.milliseconds) do\n ping\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L25"},"def":{"name":"ping","visibility":"Public","body":"hostname = config.ip.not_nil!\npinger = ::Pinger.new(hostname, count: 3)\npinger.ping\npingable = pinger.pingable\nif !pingable\n self[:last_error] = (pinger.exception || pinger.warning) || \"unknown error\"\nend\nset_connected_state(pingable)\nself[:pingable] = pingable\n"}}]},{"html_id":"drivers/Place/QSCPhoneDialing","path":"Place/QSCPhoneDialing.html","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing","abstract":false,"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"Code for handling QSC phone dialing, if available","summary":"

Code for handling QSC phone dialing, if available

","instance_methods":[{"html_id":"qsc_dial_hangup-instance-method","name":"qsc_dial_hangup","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L73"},"def":{"name":"qsc_dial_hangup","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.hangup_id)\n"}},{"html_id":"qsc_dial_makecall-instance-method","name":"qsc_dial_makecall","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L67"},"def":{"name":"qsc_dial_makecall","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.dial_id)\n"}},{"html_id":"qsc_dial_pad(number:String)-instance-method","name":"qsc_dial_pad","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"}],"args_string":"(number : String)","args_html":"(number : String)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L46"},"def":{"name":"qsc_dial_pad","args":[{"name":"number","external_name":"number","restriction":"String"}],"visibility":"Public","body":"if number.size > 0\nelse\n return\nend\nchar = number[0]\ncase char\nwhen '\\b'\n if @dial_string.size == 0\n else\n @dial_string = @dial_string[0..-2]\n end\nwhen '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'\n @dial_string = \"#{@dial_string}#{char}\"\nelse\n logger.info do\n \"unsupported dial char provided #{char}\"\n end\nend\nqsc_dial_pad_sync\n"}},{"html_id":"qsc_dial_pad_clear:Nil-instance-method","name":"qsc_dial_pad_clear","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L62"},"def":{"name":"qsc_dial_pad_clear","return_type":"Nil","visibility":"Public","body":"@dial_string = \"\"\nqsc_dial_pad_sync\n"}}],"types":[{"html_id":"drivers/Place/QSCPhoneDialing/QscPhone","path":"Place/QSCPhoneDialing/QscPhone.html","kind":"class","full_name":"Place::QSCPhoneDialing::QscPhone","name":"QscPhone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},"doc":"This data will be stored in the tab","summary":"

This data will be stored in the tab

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dial_id:String-instance-method","name":"dial_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L8"},"def":{"name":"dial_id","return_type":"String","visibility":"Public","body":"@dial_id"}},{"html_id":"dtmf_id:String-instance-method","name":"dtmf_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L13"},"def":{"name":"dtmf_id","return_type":"String","visibility":"Public","body":"@dtmf_id"}},{"html_id":"hangup_id:String-instance-method","name":"hangup_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L9"},"def":{"name":"hangup_id","return_type":"String","visibility":"Public","body":"@hangup_id"}},{"html_id":"number_id:String-instance-method","name":"number_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L7"},"def":{"name":"number_id","return_type":"String","visibility":"Public","body":"@number_id"}},{"html_id":"offhook_id:String-instance-method","name":"offhook_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L12"},"def":{"name":"offhook_id","return_type":"String","visibility":"Public","body":"@offhook_id"}},{"html_id":"ringing_id:String-instance-method","name":"ringing_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L11"},"def":{"name":"ringing_id","return_type":"String","visibility":"Public","body":"@ringing_id"}},{"html_id":"status_id:String-instance-method","name":"status_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L10"},"def":{"name":"status_id","return_type":"String","visibility":"Public","body":"@status_id"}}]}]},{"html_id":"drivers/Place/RbpRemoteLogger","path":"Place/RbpRemoteLogger.html","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@logging_enabled = (setting?(Bool, \"enabled\")) || true\n@max_log_entries = (setting?(Int32, \"max_log_entries\")) || 1000\n@debug = (setting?(Bool, \"debug\")) || false\nself[:enabled] = @logging_enabled\n"}},{"html_id":"post_event(payload:JSON::Any|String)-instance-method","name":"post_event","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"args_string":"(payload : JSON::Any | String)","args_html":"(payload : JSON::Any | String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L28"},"def":{"name":"post_event","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"visibility":"Public","body":"if @debug\n logger.debug do\n \"Received: #{payload}\"\n end\nend\nif payload.is_a?(JSON::Any)\n payload = payload.to_json\nend\nif payload.is_a?(String)\n payload = payload.to_s\nend\nentry = Entry.from_json(payload)\n__temp_946 = entry.device_id\n@entries[__temp_946]? || (@entries[__temp_946] = [] of JSON::Any)\n@entries[entry.device_id] = (@entries[entry.device_id].unshift(JSON.parse(payload))).truncate(0, @max_log_entries)\nself[:entries] = @entries\nentry\n"}}],"types":[{"html_id":"drivers/Place/RbpRemoteLogger/Entry","path":"Place/RbpRemoteLogger/Entry.html","kind":"class","full_name":"Place::RbpRemoteLogger::Entry","name":"Entry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/RbpRemoteLogger","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:JSON::Any-instance-method","name":"data","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data","return_type":"JSON::Any","visibility":"Public","body":"@data"}},{"html_id":"data=(data:JSON::Any)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"args_string":"(data : JSON::Any)","args_html":"(data : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"visibility":"Public","body":"@data = data"}},{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"device_id=(device_id:String)-instance-method","name":"device_id=","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"args_string":"(device_id : String)","args_html":"(device_id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id=","args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"visibility":"Public","body":"@device_id = device_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"metadata:JSON::Any-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata","return_type":"JSON::Any","visibility":"Public","body":"@metadata"}},{"html_id":"metadata=(metadata:JSON::Any)-instance-method","name":"metadata=","abstract":false,"args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"args_string":"(metadata : JSON::Any)","args_html":"(metadata : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata=","args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"visibility":"Public","body":"@metadata = metadata"}},{"html_id":"raw:JSON::Any-instance-method","name":"raw","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw","return_type":"JSON::Any","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:JSON::Any)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"args_string":"(raw : JSON::Any)","args_html":"(raw : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"visibility":"Public","body":"@raw = raw"}},{"html_id":"subtype:String-instance-method","name":"subtype","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype","return_type":"String","visibility":"Public","body":"@subtype"}},{"html_id":"subtype=(subtype:String)-instance-method","name":"subtype=","abstract":false,"args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"args_string":"(subtype : String)","args_html":"(subtype : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype=","args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"visibility":"Public","body":"@subtype = subtype"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Place/RoomBookingApproval","path":"Place/RoomBookingApproval.html","kind":"class","full_name":"Place::RoomBookingApproval","name":"RoomBookingApproval","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L64"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L13"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L69"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L45"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n bookings.select! do |event|\n event.status == \"tentative\"\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L29"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L38"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L14"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/RoomBookingApprovalAltnerative","path":"Place/RoomBookingApprovalAltnerative.html","kind":"class","full_name":"Place::RoomBookingApprovalAltnerative","name":"RoomBookingApprovalAltnerative","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval_alternate.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L81"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_accept, comment: comment || @default_accept_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L19"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L87"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_decline, comment: comment || @default_decline_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L63"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n @events_requiring_approval_are_tentative ? bookings.select! do |event|\n event.status == \"tentative\"\n end : bookings.select! do |booking|\n (room_attendee(booking)).try(&.response_status).in?({\"needsAction\", \"tentative\"})\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L47"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L56"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n@notify_host_on_accept = (setting?(Bool, :notify_host_on_accept)) || true\n@notify_host_on_decline = (setting?(Bool, :notify_host_on_decline)) || true\n@default_accept_message = (setting?(String, :default_accept_message)) || \"Request accepted\"\n@default_decline_message = (setting?(String, :default_decline_message)) || \"Request not accepted\"\n@events_requiring_approval_are_tentative = (setting?(Bool, :events_requiring_approval_are_tentative)) || true\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L20"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Router","path":"Place/Router.html","kind":"module","full_name":"Place::Router","name":"Router","abstract":false,"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Router/Core","path":"Place/Router/Core.html","kind":"module","full_name":"Place::Router::Core","name":"Core","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L11"},{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Core routing methods and functionality. This exists as module to enable\ninclusion in other drivers, such as room logic, that provide auxillary\nfunctionality to signal distribution.","summary":"

Core routing methods and functionality.

","instance_methods":[{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L42"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"load_siggraph"}},{"html_id":"route_signal(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true)-instance-method","name":"route_signal","doc":"Routes signal from *input* to *output*.\n\nPerforms all intermediate device interaction based on current system\nconfig.","summary":"

Routes signal from input to output.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","location":{"filename":"src/place/router/core.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L186"},"def":{"name":"route_signal","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"requesting route from #{input} to #{output}\"\nend\nsrc, dst = resolver.values_at(input, output)\ndst_node = siggraph[dst]\nsrc_node = siggraph[src]\npath = (siggraph.route(src, dst, max_dist)) || (raise(\"no route found\"))\nexecs = path.compact_map do |__temp_941|\n node, edge, next_node = __temp_941\n logger.debug do\n \"#{node} → #{next_node}\"\n end\n if next_node.locked\n raise(\"#{next_node} is locked, aborting\")\n end\n case edge\n in SignalGraph::Edge::Static\n nil\n in SignalGraph::Edge::Active\n Promise.defer(timeout: 1.second) do\n next_node.source = siggraph[src].source\n if !simulate\n mod = proxy_for(edge.mod)\n case func = edge.func\n in SignalGraph::Edge::Func::Mute\n dst_layer = dst_node.ref.layer.downcase\n case dst_layer\n when \"audio\", \"video\"\n mod.mute(func.state, func.index, dst_layer)\n else\n mod.mute(func.state, func.index)\n end\n in SignalGraph::Edge::Func::Select\n mod.switch_to(func.input)\n in SignalGraph::Edge::Func::Switch\n mod.switch({func.input => [func.output]}, func.layer)\n end\n end\n nil\n end\n end\nend\nif follow_additional_routes\n routes = {} of String => Tuple(String, String, Int32 | ::Nil, Bool, Bool)\n if following_outputs = dst_node[\"followers\"]?.try(&.as_a)\n logger.debug do\n \"routing #{following_outputs.size} additional followers\"\n end\n following_outputs.each do |output_follow|\n routes[output_follow.as_s] = {input, output_follow.as_s, max_dist, simulate, false}\n end\n end\n ignore_source_routes = dst_node[\"ignore_source_routes\"]?.try(&.as_bool) || false\n if !ignore_source_routes && (additional_routes = src_node[\"perform_routes\"]?.try(&.as_h))\n logger.debug do\n \"perfoming #{additional_routes.size} additional routes\"\n end\n additional_routes.each do |ad_output, ad_input|\n routes[ad_output] = {ad_input.as_s, ad_output, max_dist, simulate, false}\n end\n end\n spawn do\n routes.each_value do |route|\n begin\n route_signal(*route)\n rescue error\n logger.warn(exception: error) do\n \"issue routing: #{route[0]}=>#{route[1]}\"\n end\n end\n end\n end\nend\nlogger.debug do\n \"awaiting responses\"\nend\nexecs.each do |promise|\n begin\n promise.get\n rescue error\n logger.warn(exception: error) do\n \"processing route\"\n end\n end\nend\n:ok\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/NodeRef","path":"Place/Router/Core/NodeRef.html","kind":"alias","full_name":"Place::Router::Core::NodeRef","name":"NodeRef","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Ref","aliased_html":"Place::Router::SignalGraph::Node::Ref","const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"}},{"html_id":"drivers/Place/Router/Core/Settings","path":"Place/Router/Core/Settings.html","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections","path":"Place/Router/Core/Settings/Connections.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Types for representing the settings format for defining connections.","summary":"

Types for representing the settings format for defining connections.

","class_methods":[{"html_id":"parse(map:Map,sys:String)-class-method","name":"parse","doc":"Parses a `Map` containing the system conectivity into a set of nodes and\nlinks that can be used for assembling the `SignalGraph`.","summary":"

Parses a Map containing the system conectivity into a set of nodes and links that can be used for assembling the SignalGraph.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(map : Map, sys : String)","args_html":"(map : Map, sys : String)","location":{"filename":"src/place/router/settings.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L105"},"def":{"name":"parse","args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"nodes = [] of SignalGraph::Node::Ref\nlinks = [] of ::Tuple(SignalGraph::Node::Ref, SignalGraph::Node::Ref)\naliases = {} of String => SignalGraph::Node::Ref\nmake_alias = ->(name : String, node : SignalGraph::Node::Ref) do\n if prev = aliases[name]?\n raise(\"invalid configuration: \\\"#{name}\\\" refers to both #{prev} and #{node}\")\n end\n aliases[name] = node\nend\nmap.each do |sink, inputs|\n if sink.is_a?(Alias)\n source = inputs\n if source.is_a?(DeviceOutput)\n else\n raise(\"invalid configuration: \\\"#{sink}\\\" must link to a DeviceOutput\")\n end\n onode = SignalGraph::Output.new(sys, source.mod, source.idx, source.output, source.layer)\n nodes << onode\n make_alias.call(sink.name, onode)\n else\n if inputs.is_a?(DeviceOutput)\n raise(\"invalid configuration: \\\"#{sink}\\\" must specify inputs as either a hash or array\")\n end\n nodes << (SignalGraph::Device.new(sys, sink.mod, sink.idx))\n if inputs.is_a?(Array)\n inputs = (inputs.each.with_index(1)).map(&.reverse)\n end\n inputs.each do |input, input_source|\n inode = SignalGraph::Input.new(sys, sink.mod, sink.idx, input)\n nodes << inode\n if input_source.is_a?(Alias)\n make_alias.call(input_source.name, inode)\n next\n end\n onode = case input_source\n in Device\n SignalGraph::Device.new(sys, input_source.mod, input_source.idx)\n in DeviceOutput\n SignalGraph::Output.new(sys, input_source.mod, input_source.idx, input_source.output, input_source.layer)\n end\n nodes << onode\n links << {onode, inode}\n end\n end\nend\n{nodes, links, aliases}\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Alias","path":"Place/Router/Core/Settings/Connections/Alias.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Alias","name":"Alias","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Alias used to refer to a signal node that does not have an accompanying\nmodule. This can be useful for declaring the concept of a device that is\nattached to an input (e.g. `\"*Laptop\"`). All alias' must be prefixed with\nan asterisk ('*') within connections settings.","summary":"

Alias used to refer to a signal node that does not have an accompanying module.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L73"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n new(name)\nend"}}],"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone)"}},{"html_id":"copy_with(name_name=@name)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"args_string":"(name _name = @name)","args_html":"(name _name = @name)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"visibility":"Public","body":"self.class.new(_name)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","path":"Place/Router/Core/Settings/Connections/Deserializable.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"instance_methods":[{"html_id":"from_json_object_key?(key:String)-instance-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L16"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"parse?(key)"}},{"html_id":"get_parts(module_id:String):Tuple(String,Int32|Nil)-instance-method","name":"get_parts","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Tuple(String, Int32 | Nil)","args_html":"(module_id : String) : Tuple(String, Int32 | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L20"},"def":{"name":"get_parts","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"::Tuple(String, Int32 | ::Nil)","visibility":"Public","body":"mod_name, match, index = module_id.rpartition('_')\nif match.empty?\n {module_id, 1}\nelse\n {mod_name, index.to_i?}\nend\n"}},{"html_id":"parse?(raw:String)-instance-method","name":"parse?","abstract":true,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L14"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":""}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Device","path":"Place/Router/Core/Settings/Connections/Device.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Module name of a device within the local system e.g. `\"Switcher_1\"`.","summary":"

Module name of a device within the local system e.g.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L34"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod, idx = get_parts(raw)\nif idx\n new(mod, idx)\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"args_string":"(mod : String, idx : Int32)","args_html":"(mod : String, idx : Int32)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx)","args_html":"(mod _mod = @mod, idx _idx = @idx)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/DeviceOutput","path":"Place/Router/Core/Settings/Connections/DeviceOutput.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Reference to a specific output on a device that has multiple outputs.\nThis is a concatenation of the `Device` reference a `.` and the output.\nFor example, output 3 of Switcher_1 is `\"Switcher_1.3\"`.","summary":"

Reference to a specific output on a device that has multiple outputs.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L47"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod_name, match, outp = raw.rpartition('.')\nif !match.empty?\n mod, idx = get_parts(mod_name)\n if idx\n outp_idx, match, layer = outp.rpartition('!')\n if match.empty?\n output = outp.to_i? || outp\n new(mod, idx, output, nil)\n else\n output = outp_idx.to_i? || outp_idx\n new(mod, idx, output, layer)\n end\n end\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32,output:String|Int32,layer:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"args_string":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","args_html":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L46"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","args_html":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx, _output, _layer)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"layer:String|Nil-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String | ::Nil","visibility":"Public","body":"@layer"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"output:String|Int32-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"String | Int32","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Input","path":"Place/Router/Core/Settings/Connections/Input.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Identifier for the input on Sink.","summary":"

Identifier for the input on Sink.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Map","path":"Place/Router/Core/Settings/Connections/Map.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Map","name":"Map","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Structure for a full connection map.\n\n```json\n{\n \"Display_1\": {\n \"hdmi\": \"Switcher_1.1\"\n },\n \"Switcher_1\": [\"*Foo\", \"*Bar\"],\n \"*FloorBox\": \"Switcher_1.2\"\n}\n```","summary":"

Structure for a full connection map.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Sink","path":"Place/Router/Core/Settings/Connections/Sink.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Sink","name":"Sink","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L85"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device that recieves the signal.","summary":"

The device that recieves the signal.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Source","path":"Place/Router/Core/Settings/Connections/Source.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Source","name":"Source","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device a signal is originating from.","summary":"

The device a signal is originating from.

"}]},{"html_id":"drivers/Place/Router/Core/Settings/IOMeta","path":"Place/Router/Core/Settings/IOMeta.html","kind":"alias","full_name":"Place::Router::Core::Settings::IOMeta","name":"IOMeta","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L166"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, JSON::Any))","aliased_html":"Hash(String, Hash(String, JSON::Any))","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Input/outputs and their associated metadata. Attributes specified here are\nprogated to the assocated input status keys. This allows information such as\nname, type etc to be exposed to UI's.","summary":"

Input/outputs and their associated metadata.

"}]},{"html_id":"drivers/Place/Router/Core/SignalNode","path":"Place/Router/Core/SignalNode.html","kind":"struct","full_name":"Place::Router::Core::SignalNode","name":"SignalNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/core.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"doc":"Wrapper for providng simple interaction with a signal node and it's\nassociated driver.","summary":"

Wrapper for providng simple interaction with a signal node and it's associated driver.

","constructors":[{"html_id":"new(label:Place::Router::SignalGraph::Node::Label,proxy:Future::Compute(PlaceOS::Driver::Proxy::Driver))-class-method","name":"new","abstract":false,"args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"args_string":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","args_html":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","location":{"filename":"src/place/router/core.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L20"},"def":{"name":"new","args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(label, proxy)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"proxy-instance-method","name":"proxy","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L25"},"def":{"name":"proxy","visibility":"Public","body":"@proxy.get"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/core.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L29"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}},{"html_id":"watch(&handler:self->)-instance-method","name":"watch","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L33"},"def":{"name":"watch","yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"visibility":"Public","body":"@label.watch do\n handler.call(self)\nend"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/place/router/core.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L23"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" @label.\n{{ call }}\n\n \n"}}]}]},{"html_id":"drivers/Place/Router/Digraph","path":"Place/Router/Digraph.html","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Labelled digraph. Holds node labels of type *N* and edge labels of type *E*.\n\nNodes are stored on UInt64 ID's. This provides an interface that should feel\nsimilar to `Indexable` for interacting with nodes labels. Similarly edges can\nbe placed and retrieved by using a dual index of {predescessor, successor}.\n\nOPTIMIZE: replace with a sparse matrix and graphBLAS operations.","summary":"

Labelled digraph.

","constructors":[{"html_id":"new(initial_capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"args_string":"(initial_capacity = nil)","args_html":"(initial_capacity = nil)","location":{"filename":"src/place/router/digraph.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L19"},"def":{"name":"new","args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"visibility":"Public","body":"_ = Digraph(N, E).allocate\n_.initialize(initial_capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](pred_id,succ_id)-instance-method","name":"[]","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id)","args_html":"(pred_id, succ_id)","location":{"filename":"src/place/router/digraph.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L68"},"def":{"name":"[]","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"visibility":"Public","body":"fetch(pred_id, succ_id) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} does not exist\"))\nend"}},{"html_id":"[](id)-instance-method","name":"[]","doc":"Retrieves the label attached to node *id*.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L42"},"def":{"name":"[]","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).attr"}},{"html_id":"[]=(pred_id,succ_id,attr)-instance-method","name":"[]=","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(pred_id, succ_id, attr)","args_html":"(pred_id, succ_id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L81"},"def":{"name":"[]=","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(pred_id, succ_id, attr) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} already exists\"))\nend"}},{"html_id":"[]=(id,attr)-instance-method","name":"[]=","doc":"Insert a new node.","summary":"

Insert a new node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(id, attr)","args_html":"(id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L53"},"def":{"name":"[]=","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(id, attr) do\n raise(Error.new(\"Node #{id} already exists\"))\nend"}},{"html_id":"breadth_first_search(from,&:UInt64->Bool|Nil)-instance-method","name":"breadth_first_search","doc":"Perform a breadth first search across the graph, starting at *from*.\n\nEach node id is yielded as it's traversed. The search will terminate when\nthis block returns true. If `nil` is returned the node is skipped, but the\ntraversal continues.\n\nResults are provided as a Hash that includes all reached nodes as the keys,\nand their predecessor as the associated value.","summary":"

Perform a breadth first search across the graph, starting at from.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""}],"args_string":"(from, & : UInt64 -> Bool | Nil)","args_html":"(from, & : UInt64 -> Bool | Nil)","location":{"filename":"src/place/router/digraph.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L106"},"def":{"name":"breadth_first_search","args":[{"name":"from","external_name":"from","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"","external_name":"","restriction":"(UInt64 -> Bool | ::Nil)"},"visibility":"Public","body":"paths = Hash(UInt64, UInt64).new\nqueue = Deque(UInt64).new(1, from)\nwhile pred_id = queue.shift?\n (node(pred_id)).succ.each_key do |succ_id|\n if paths.has_key?(succ_id)\n next\n end\n done = yield succ_id\n if done.nil?\n next\n end\n paths[succ_id] = pred_id\n if done\n return paths\n end\n queue << succ_id\n end\nend\n"}},{"html_id":"clear(*args,**options)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@nodes.clear(*args, **options)"}},{"html_id":"clear(*args,**options,&)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@nodes.clear(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"fetch(pred_id,succ_id,&):E-instance-method","name":"fetch","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id, &) : E","args_html":"(pred_id, succ_id, &) : E","location":{"filename":"src/place/router/digraph.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L75"},"def":{"name":"fetch","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"yields":2,"block_arity":2,"return_type":"E","visibility":"Public","body":"succ_id = check_node_exists(succ_id)\n(node(pred_id)).succ.fetch(succ_id) do\n yield pred_id, succ_id\nend\n"}},{"html_id":"fetch(id,&):N-instance-method","name":"fetch","doc":"Retrieves the label attached to node *id*. Yields if it does not exist.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id, &) : N","args_html":"(id, &) : N","location":{"filename":"src/place/router/digraph.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L47"},"def":{"name":"fetch","args":[{"name":"id","external_name":"id","restriction":""}],"yields":1,"block_arity":1,"return_type":"N","visibility":"Public","body":"node = node(id) do\n return yield id\nend\nnode.attr\n"}},{"html_id":"indegree(id)-instance-method","name":"indegree","doc":"The number of incomming edges to *id*.","summary":"

The number of incomming edges to id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L183"},"def":{"name":"indegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"id = check_node_exists(id)\n@nodes.reduce(0) do |count, __temp_944|\n _, node = __temp_944\n if node.succ.has_key?(id)\n count = count + 1\n end\n count\nend\n"}},{"html_id":"insert(pred_id,succ_id,attr:E,&)-instance-method","name":"insert","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"args_string":"(pred_id, succ_id, attr : E, &)","args_html":"(pred_id, succ_id, attr : E, &)","location":{"filename":"src/place/router/digraph.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L88"},"def":{"name":"insert","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"yields":2,"block_arity":2,"visibility":"Public","body":"succ_id = check_node_exists(succ_id)\npred = node(pred_id)\nif pred.succ.has_key?(succ_id)\n yield pred_id, succ_id\nelse\n pred.succ[succ_id] = attr\nend\n"}},{"html_id":"insert(id,attr:N,&)-instance-method","name":"insert","doc":"Inserts a node. Yields if it already exists.","summary":"

Inserts a node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"args_string":"(id, attr : N, &)","args_html":"(id, attr : N, &)","location":{"filename":"src/place/router/digraph.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L58"},"def":{"name":"insert","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"yields":1,"block_arity":1,"visibility":"Public","body":"id = id.to_u64\nif @nodes.has_key?(id)\n yield id\nelse\n @nodes[id] = Node(N, E).new(attr, {} of UInt64 => E)\nend\n"}},{"html_id":"nodes:Enumerable(UInt64)-instance-method","name":"nodes","doc":"Provides all nodes present within the graph.\n\nNOTE: ordering of nodes is _not_ defined.","summary":"

Provides all nodes present within the graph.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L149"},"def":{"name":"nodes","return_type":"Enumerable(UInt64)","visibility":"Public","body":"@nodes.each_key"}},{"html_id":"outdegree(id)-instance-method","name":"outdegree","doc":"The outgoing edges from *id*.","summary":"

The outgoing edges from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L178"},"def":{"name":"outdegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).succ.size"}},{"html_id":"path(from,to,invert=false):Enumerable(UInt64)|Nil-instance-method","name":"path","doc":"Returns a list of node IDs that form the shortest path between the passed\nnodes or `nil` if no path exists.","summary":"

Returns a list of node IDs that form the shortest path between the passed nodes or nil if no path exists.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"args_string":"(from, to, invert = false) : Enumerable(UInt64) | Nil","args_html":"(from, to, invert = false) : Enumerable(UInt64) | Nil","location":{"filename":"src/place/router/digraph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L130"},"def":{"name":"path","args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"return_type":"Enumerable(UInt64) | ::Nil","visibility":"Public","body":"from = check_node_exists(from)\nto = check_node_exists(to)\npaths = breadth_first_search(from, &.==(to))\nif paths.nil?\n return\nend\nnodes = [to]\nwhile !(nodes.last == from)\n nodes << paths[nodes.last]\nend\ninvert ? nodes : nodes.reverse!\n"}},{"html_id":"sink?(id):Bool-instance-method","name":"sink?","doc":"Checks if a node has incoming edges only.","summary":"

Checks if a node has incoming edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L154"},"def":{"name":"sink?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"(outdegree(id)).zero? && !(indegree(id)).zero?"}},{"html_id":"sinks:Enumerable(UInt64)-instance-method","name":"sinks","doc":"Provides all nodes with incoming edges only.","summary":"

Provides all nodes with incoming edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L159"},"def":{"name":"sinks","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n sink?(id)\nend"}},{"html_id":"source?(id):Bool-instance-method","name":"source?","doc":"Checks if a node has outgoing edges only.","summary":"

Checks if a node has outgoing edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L164"},"def":{"name":"source?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"!(outdegree(id)).zero? && (indegree(id)).zero?"}},{"html_id":"sources:Enumerable(UInt64)-instance-method","name":"sources","doc":"Provides all nodes with outgoing edges only.\n\nOPTIMIZE: this is _very_ slow [O(V * E)], but works for testing purposes.\nSwitching the sparse matrix should assist so not worth optimising for this\nsetup.","summary":"

Provides all nodes with outgoing edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L173"},"def":{"name":"sources","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n source?(id)\nend"}},{"html_id":"subtree(id):Enumerable(UInt64)-instance-method","name":"subtree","doc":"Provides all nodes reachable from *id*.","summary":"

Provides all nodes reachable from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Enumerable(UInt64)","args_html":"(id) : Enumerable(UInt64)","location":{"filename":"src/place/router/digraph.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L192"},"def":{"name":"subtree","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Enumerable(UInt64)","visibility":"Public","body":"id = check_node_exists(id)\nSubtreeIterator.new(self, id)\n"}}],"types":[{"html_id":"drivers/Place/Router/Digraph/Error","path":"Place/Router/Digraph/Error.html","kind":"class","full_name":"Place::Router::Digraph::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"}},{"html_id":"drivers/Place/Router/Digraph/Node","path":"Place/Router/Digraph/Node.html","kind":"struct","full_name":"Place::Router::Digraph::Node(N, E)","name":"Node","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"},"constructors":[{"html_id":"new(attr:N,succ:Hash(UInt64,E))-class-method","name":"new","abstract":false,"args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"args_string":"(attr : N, succ : Hash(UInt64, E))","args_html":"(attr : N, succ : Hash(UInt64, E))","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"new","args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"visibility":"Public","body":"_ = Node(N, E).allocate\n_.initialize(attr, succ)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attr:N-instance-method","name":"attr","abstract":false,"def":{"name":"attr","return_type":"N","visibility":"Public","body":"@attr"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@attr.clone, @succ.clone)"}},{"html_id":"copy_with(attr_attr=@attr,succ_succ=@succ)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"args_string":"(attr _attr = @attr, succ _succ = @succ)","args_html":"(attr _attr = @attr, succ _succ = @succ)","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"copy_with","args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"visibility":"Public","body":"self.class.new(_attr, _succ)"}},{"html_id":"succ:Hash(UInt64,E)-instance-method","name":"succ","abstract":false,"def":{"name":"succ","return_type":"Hash(UInt64, E)","visibility":"Public","body":"@succ"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph","path":"Place/Router/SignalGraph.html","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L11"},{"filename":"src/place/router/signal_graph/edge.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L3"},{"filename":"src/place/router/signal_graph/mod.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L5"},{"filename":"src/place/router/signal_graph/node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L5"},{"filename":"src/place/router/signal_graph/watchable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Mute","name":"Mute","value":"Node::Mute.instance"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Structures and types for mapping between sys,mod,idx,io referencing and the\nunderlying graph structure.\n\nThe SignalGraph class _does not_ perform any direct interaction with devices,\nbut does provide the ability to discover routes and available connectivity\nwhen may then be acted on.","summary":"

Structures and types for mapping between sys,mod,idx,io referencing and the underlying graph structure.

","class_methods":[{"html_id":"build(nodes:Enumerable(Node::Ref),links:Enumerable(Tuple(Node::Ref,Node::Ref)))-class-method","name":"build","doc":"Construct a graph from a pre-parsed configuration.\n\n*nodes* must contain the set of all signal nodes that form the device inputs\nand outputs across the system. This includes those at the \"edge\" of the\nsignal network (e.g. a input to a switcher) as well as inputs in use on\nintermediate devices (e.g. a input on a display, which in turn is attached to\nthe switcher above).\n\n*links* declares the interconnections between devices.\n\nModules associated with any of these nodes are then introspected for\nswitching, input selection and mute control based on the interfaces they\nexpose.","summary":"

Construct a graph from a pre-parsed configuration.

","abstract":false,"args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"args_string":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","args_html":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","location":{"filename":"src/place/router/signal_graph.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L93"},"def":{"name":"build","args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"visibility":"Public","body":"mod_io = Hash(Mod, ::Tuple(Set(Input), Set(Output))).new do |h, k|\n h[k] = {Set(Input).new, Set(Output).new}\nend\nsiggraph = new(initial_capacity: nodes.size)\nsiggraph.insert(Mute)\nnodes.each do |node|\n siggraph.insert(node)\n case node\n when Input\n inputs, _ = mod_io[node.mod]\n inputs << node\n when Output\n _, outputs = mod_io[node.mod]\n outputs << node\n end\nend\nlinks.each do |source, dest|\n siggraph.connect(source, dest)\nend\nmod_io.each do |mod, __temp_942|\n inputs, outputs = __temp_942\n siggraph.link(mod, inputs, outputs)\nend\nsiggraph.inputs.each do |node|\n node.source = node.ref\nend\nsiggraph\n"}}],"instance_methods":[{"html_id":"[](node:Node::Ref)-instance-method","name":"[]","doc":"Retrieves the labelled state for *node*.","summary":"

Retrieves the labelled state for node.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref)","args_html":"(node : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L130"},"def":{"name":"[]","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"visibility":"Public","body":"g[node.id]"}},{"html_id":"[](node_id)-instance-method","name":"[]","doc":"Retrieves the labelled state for the signal node at *node_id*.","summary":"

Retrieves the labelled state for the signal node at node_id.

","abstract":false,"args":[{"name":"node_id","external_name":"node_id","restriction":""}],"args_string":"(node_id)","args_html":"(node_id)","location":{"filename":"src/place/router/signal_graph.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L135"},"def":{"name":"[]","args":[{"name":"node_id","external_name":"node_id","restriction":""}],"visibility":"Public","body":"g[node_id]"}},{"html_id":"input?(node:Node::Ref):Bool-instance-method","name":"input?","doc":"Checks if *node* is a system input.","summary":"

Checks if node is a system input.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L161"},"def":{"name":"input?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.sink?(node.id)"}},{"html_id":"inputs(destination:Node::Ref)-instance-method","name":"inputs","doc":"Provide all signal nodes that can be routed to *destination*.","summary":"

Provide all signal nodes that can be routed to destination.

","abstract":false,"args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"args_string":"(destination : Node::Ref)","args_html":"(destination : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L172"},"def":{"name":"inputs","args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"visibility":"Public","body":"(g.subtree(destination.id)).map do |id|\n g[id]\nend"}},{"html_id":"inputs-instance-method","name":"inputs","doc":"Provide the signal nodes that form system inputs.","summary":"

Provide the signal nodes that form system inputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L166"},"def":{"name":"inputs","visibility":"Public","body":"g.sinks.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"output?(node:Node::Ref):Bool-instance-method","name":"output?","doc":"Checks if *node* is a system output.","summary":"

Checks if node is a system output.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L177"},"def":{"name":"output?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.source?(node.id)"}},{"html_id":"outputs-instance-method","name":"outputs","doc":"Provide the signal nodes that form system outputs.","summary":"

Provide the signal nodes that form system outputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L182"},"def":{"name":"outputs","visibility":"Public","body":"g.sources.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"route(source:Node::Ref,destination:Node::Ref,max_dist=nil)-instance-method","name":"route","doc":"Find the signal path that connects *source* to *dest*, or `nil` if this is\nnot possible.\n\nProvides an `Iterator` that provides labels across each node, the edge, and\nsubsequent node.","summary":"

Find the signal path that connects source to dest, or nil if this is not possible.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"args_string":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","args_html":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","location":{"filename":"src/place/router/signal_graph.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L144"},"def":{"name":"route","args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"visibility":"Public","body":"path = g.path(destination.id, source.id, invert: true)\nif path\nelse\n return nil\nend\nif max_dist && path.size > max_dist\n return nil\nend\n(path.each_cons(2, true)).map do |__temp_943|\n succ, pred = __temp_943\n {g[succ], g[pred, succ], g[pred]}\nend\n"}}],"types":[{"html_id":"drivers/Place/Router/SignalGraph/Device","path":"Place/Router/SignalGraph/Device.html","kind":"alias","full_name":"Place::Router::SignalGraph::Device","name":"Device","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Device","aliased_html":"Place::Router::SignalGraph::Node::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge","path":"Place/Router/SignalGraph/Edge.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Active","path":"Place/Router/SignalGraph/Edge/Active.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Active","name":"Active","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"new(mod:Mod,func:Func::Type)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"args_string":"(mod : Mod, func : Func::Type)","args_html":"(mod : Mod, func : Func::Type)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, func)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @func.clone)"}},{"html_id":"copy_with(mod_mod=@mod,func_func=@func)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"args_string":"(mod _mod = @mod, func _func = @func)","args_html":"(mod _mod = @mod, func _func = @func)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _func)"}},{"html_id":"func:Func::Type-instance-method","name":"func","abstract":false,"def":{"name":"func","return_type":"Func::Type","visibility":"Public","body":"@func"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","path":"Place/Router/SignalGraph/Edge/Func.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Mute","path":"Place/Router/SignalGraph/Edge/Func/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(state:Bool,index:Int32|String=0)-class-method","name":"new","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool, index : Int32 | String = 0)","args_html":"(state : Bool, index : Int32 | String = 0)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"new","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(state, index)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@state.clone, @index.clone)"}},{"html_id":"copy_with(state_state=@state,index_index=@index)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"args_string":"(state _state = @state, index _index = @index)","args_html":"(state _state = @state, index _index = @index)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"copy_with","args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"visibility":"Public","body":"self.class.new(_state, _index)"}},{"html_id":"index:Int32|String-instance-method","name":"index","abstract":false,"def":{"name":"index","return_type":"Int32 | String","visibility":"Public","body":"@index"}},{"html_id":"state:Bool-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"Bool","visibility":"Public","body":"@state"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Select","path":"Place/Router/SignalGraph/Edge/Func/Select.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Select","name":"Select","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"args_string":"(input : Int32 | String)","args_html":"(input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone)"}},{"html_id":"copy_with(input_input=@input)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"args_string":"(input _input = @input)","args_html":"(input _input = @input)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"visibility":"Public","body":"self.class.new(_input)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Switch","path":"Place/Router/SignalGraph/Edge/Func/Switch.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String,output:Int32|String,layer:String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"args_string":"(input : Int32 | String, output : Int32 | String, layer : String)","args_html":"(input : Int32 | String, output : Int32 | String, layer : String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Type","path":"Place/Router/SignalGraph/Edge/Func/Type.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Func::Type","name":"Type","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch)","aliased_html":"Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Label","path":"Place/Router/SignalGraph/Edge/Label.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Label","name":"Label","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static)","aliased_html":"Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Static","path":"Place/Router/SignalGraph/Edge/Static.html","kind":"class","full_name":"Place::Router::SignalGraph::Edge::Static","name":"Static","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L8"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Input","path":"Place/Router/SignalGraph/Input.html","kind":"alias","full_name":"Place::Router::SignalGraph::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceInput","aliased_html":"Place::Router::SignalGraph::Node::DeviceInput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Mod","path":"Place/Router/SignalGraph/Mod.html","kind":"class","full_name":"Place::Router::SignalGraph::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/mod.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"doc":"Reference to a PlaceOS module that provides IO nodes within the graph.","summary":"

Reference to a PlaceOS module that provides IO nodes within the graph.

","class_methods":[{"html_id":"parse?(ref)-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref)","args_html":"(ref)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L44"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"visibility":"Public","body":"if m = ref.match(/^(.+)\\/(.+)\\_(\\d+)$/)\n sys = m[1]\n mod = m[2]\n idx = m[3].to_i\n new(sys, mod, idx)\nend"}}],"constructors":[{"html_id":"new(sys:String,name:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"args_string":"(sys : String, name : String, idx : Int32)","args_html":"(sys : String, name : String, idx : Int32)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L14"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"==(other:self)-instance-method","name":"==","doc":"Returns `true` if this reference is the same as *other*. Invokes `same?`.","summary":"

Returns true if this reference is the same as other.

","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"self"}],"args_string":"(other : self)","args_html":"(other : self)","def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"self"}],"visibility":"Public","body":"if same?(other)\n return true\nend\nif @id == (other.@id)\nelse\n return false\nend\ntrue\n"}},{"html_id":"audio_muteable?-instance-method","name":"audio_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"audio_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::AudioMuteable\".in?(metadata.implements)"}},{"html_id":"camera?-instance-method","name":"camera?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"camera?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Camera\".in?(metadata.implements)"}},{"html_id":"chat_functions?-instance-method","name":"chat_functions?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"chat_functions?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ChatFunctions\".in?(metadata.implements)"}},{"html_id":"desk_control?-instance-method","name":"desk_control?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"desk_control?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DeskControl\".in?(metadata.implements)"}},{"html_id":"door_security?-instance-method","name":"door_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"door_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DoorSecurity\".in?(metadata.implements)"}},{"html_id":"electrical_relay?-instance-method","name":"electrical_relay?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"electrical_relay?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ElectricalRelay\".in?(metadata.implements)"}},{"html_id":"guest_building_access?-instance-method","name":"guest_building_access?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"guest_building_access?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::GuestBuildingAccess\".in?(metadata.implements)"}},{"html_id":"hash(hasher)-instance-method","name":"hash","doc":"See `Object#hash(hasher)`","summary":"

See Object#hash(hasher)

","abstract":false,"args":[{"name":"hasher","external_name":"hasher","restriction":""}],"args_string":"(hasher)","args_html":"(hasher)","def":{"name":"hash","args":[{"name":"hasher","external_name":"hasher","restriction":""}],"visibility":"Public","body":"hasher = @id.hash(hasher)\nhasher\n"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L12"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L10"},"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"input_muteable?-instance-method","name":"input_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputMuteable\".in?(metadata.implements)"}},{"html_id":"input_selection?-instance-method","name":"input_selection?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_selection?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputSelection\".in?(metadata.implements)"}},{"html_id":"lighting?-instance-method","name":"lighting?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lighting?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lighting\".in?(metadata.implements)"}},{"html_id":"locatable?-instance-method","name":"locatable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"locatable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Locatable\".in?(metadata.implements)"}},{"html_id":"lockers?-instance-method","name":"lockers?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lockers?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lockers\".in?(metadata.implements)"}},{"html_id":"mailer?-instance-method","name":"mailer?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Mailer\".in?(metadata.implements)"}},{"html_id":"mailer_templates?-instance-method","name":"mailer_templates?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer_templates?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::MailerTemplates\".in?(metadata.implements)"}},{"html_id":"metadata-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L19"},"def":{"name":"metadata","visibility":"Public","body":"(PlaceOS::Driver::Proxy::System.driver_metadata?(id)).not_nil!"}},{"html_id":"moveable?-instance-method","name":"moveable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"moveable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Moveable\".in?(metadata.implements)"}},{"html_id":"muteable?-instance-method","name":"muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Muteable\".in?(metadata.implements)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L9"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"powerable?-instance-method","name":"powerable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"powerable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Powerable\".in?(metadata.implements)"}},{"html_id":"selectable?-instance-method","name":"selectable?","doc":"FIXME: drop if / after renaming InputSelection -> Selectable","summary":"

FIXME drop if / after renaming InputSelection -> Selectable

","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"selectable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Selectable\".in?(metadata.implements)"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sensor?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Sensor\".in?(metadata.implements)"}},{"html_id":"sms?-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sms?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::SMS\".in?(metadata.implements)"}},{"html_id":"stoppable?-instance-method","name":"stoppable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"stoppable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Stoppable\".in?(metadata.implements)"}},{"html_id":"switchable?-instance-method","name":"switchable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"switchable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Switchable\".in?(metadata.implements)"}},{"html_id":"sys:String-instance-method","name":"sys","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L8"},"def":{"name":"sys","return_type":"String","visibility":"Public","body":"@sys"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L40"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((((io << sys) << '/') << name) << '_') << idx"}},{"html_id":"video_muteable?-instance-method","name":"video_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"video_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::VideoMuteable\".in?(metadata.implements)"}},{"html_id":"zone_access_security?-instance-method","name":"zone_access_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zone_access_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ZoneAccessSecurity\".in?(metadata.implements)"}},{"html_id":"zoomable?-instance-method","name":"zoomable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zoomable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Zoomable\".in?(metadata.implements)"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node","path":"Place/Router/SignalGraph/Node.html","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","path":"Place/Router/SignalGraph/Node/Device.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to the default / central node for a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1\n │ │ │\n │ │ └module index\n │ └module name\n └system\n","summary":"

Reference to the default / central node for a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L150"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if mod = Mod.parse?(ref)\n new(mod)\nend"}}],"constructors":[{"html_id":"new(sys,name,idx)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"args_string":"(sys, name, idx)","args_html":"(sys, name, idx)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L139"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"args_string":"(mod : Place::Router::SignalGraph::Mod)","args_html":"(mod : Place::Router::SignalGraph::Mod)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L143"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L137"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L146"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","path":"Place/Router/SignalGraph/Node/DeviceInput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal input to a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1:hdmi\n │ │ │ │\n │ │ │ └input\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal input to a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L222"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, i = ref.rpartition(':')\nif mod = Mod.parse?(m)\n input = i.to_i? || i\n new(mod, input)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(sys, name, idx, input : Int32 | String)","args_html":"(sys, name, idx, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L211"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L215"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L209"},"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L208"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L218"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << ':') << input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","path":"Place/Router/SignalGraph/Node/DeviceOutput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal output from a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Switcher_1.1!video\n │ │ │ │ │_layer\n │ │ │ └output\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal output from a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L187"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, o = ref.rpartition('.')\nif mod = Mod.parse?(m)\n output = o.to_i? || o\n new(mod, output)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,output:Int32|String,layer)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"args_string":"(sys, name, idx, output : Int32 | String, layer)","args_html":"(sys, name, idx, output : Int32 | String, layer)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L173"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,output:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L178"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, output)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L171"},"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L169"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L170"},"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L182"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << '.') << output\nif @layer == DEFAULT_LAYER\nelse\n (io << '!') << @layer\nend\n"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","path":"Place/Router/SignalGraph/Node/Label.html","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Metadata tracked against each signal node.","summary":"

Metadata tracked against each signal node.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(ref:Place::Router::SignalGraph::Node::Ref)-class-method","name":"new","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"args_string":"(ref : Place::Router::SignalGraph::Node::Ref)","args_html":"(ref : Place::Router::SignalGraph::Node::Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L12"},"def":{"name":"new","args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ref)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(key,value:JSON::Any)-instance-method","name":"[]=","doc":"Sets a metadata property of `self`.","summary":"

Sets a metadata property of self.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(key, value : JSON::Any)","args_html":"(key, value : JSON::Any)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Int)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(key, value : Int)","args_html":"(key, value : Int)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Float)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"args_string":"(key, value : Float)","args_html":"(key, value : Float)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Array)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"args_string":"(key, value : Array)","args_html":"(key, value : Array)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Hash)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"args_string":"(key, value : Hash)","args_html":"(key, value : Hash)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(key, value)","args_html":"(key, value)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"locked:Bool-instance-method","name":"locked","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L27"},"def":{"name":"locked","return_type":"Bool","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool)-instance-method","name":"locked=","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"args_string":"(locked : Bool)","args_html":"(locked : Bool)","def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"visibility":"Public","body":"(previous_def(locked)).tap do\n notify\nend"}},{"html_id":"meta:Hash(String,JSON::Any)-instance-method","name":"meta","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L33"},"def":{"name":"meta","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @meta).nil?\n @meta = (Hash(String, JSON::Any).new)\nelse\n __temp_1\nend"}},{"html_id":"meta=(meta:Hash(String,JSON::Any))-instance-method","name":"meta=","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"args_string":"(meta : Hash(String, JSON::Any))","args_html":"(meta : Hash(String, JSON::Any))","def":{"name":"meta=","args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"(previous_def(meta)).tap do\n notify\nend"}},{"html_id":"ref:Ref-instance-method","name":"ref","doc":"The `Node::Ref` used when creating this node.","summary":"

The Node::Ref used when creating this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L20"},"def":{"name":"ref","return_type":"Ref","visibility":"Public","body":"@ref"}},{"html_id":"source:Ref|Nil-instance-method","name":"source","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L23"},"def":{"name":"source","return_type":"Ref | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:Ref|Nil)-instance-method","name":"source=","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"args_string":"(source : Ref | Nil)","args_html":"(source : Ref | Nil)","def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"visibility":"Public","body":"(previous_def(source)).tap do\n notify\nend"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L15"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","path":"Place/Router/SignalGraph/Node/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Virtual node representing (any) mute source.\n\nThis may be refernced simply as `MUTE`.","summary":"

Virtual node representing (any) mute source.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L247"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if ref.upcase.ends_with?(\"MUTE\")\n instance\nend"}}],"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L235"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L240"},"def":{"name":"id","visibility":"Public","body":"0_u64"}},{"html_id":"mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L244"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L252"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << \"MUTE\""}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","path":"Place/Router/SignalGraph/Node/Ref.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LAYER","name":"DEFAULT_LAYER","value":"\"all\""}],"subclasses":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Base structure for referring to a node within the graph.","summary":"

Base structure for referring to a node within the graph.

","class_methods":[{"html_id":"resolve?(key:String,sys=nil)-class-method","name":"resolve?","doc":"Resolves a string-based node *key* to a fully-qualified reference.\n\nIf a system component is not present within *key*, this is resolved\nwithin the context of *sys*. For example:\n\n Ref.resolve(\"Display_1:hdmi\", \"sys-abc123\")\n # => DeviceInput(sys: \"sys-abc123\", mod: {\"Display\", 1}, input: \"hdmi\")\n","summary":"

Resolves a string-based node key to a fully-qualified reference.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"args_string":"(key : String, sys = nil)","args_html":"(key : String, sys = nil)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L81"},"def":{"name":"resolve?","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"visibility":"Public","body":"ref = key.includes?('/') ? key : \"#{sys}/#{key}\"\n{% if true %}\n {% for type in @type.subclasses %}\n {{ type }}.parse?(ref) || \\\n {% end %}\n nil\n {% end %}\n"}}],"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"==(other:Ref)-instance-method","name":"==","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Ref"}],"args_string":"(other : Ref)","args_html":"(other : Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L104"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"Ref"}],"visibility":"Public","body":"id == other.id"}},{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L92"},"def":{"name":"id","visibility":"Public","body":"self.class.hash ^ self.hash"}},{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"initialize","visibility":"Public","body":""}},{"html_id":"layer-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L100"},"def":{"name":"layer","visibility":"Public","body":"DEFAULT_LAYER"}},{"html_id":"local(sys:String)-instance-method","name":"local","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(sys : String)","args_html":"(sys : String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L108"},"def":{"name":"local","args":[{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"to_s.lchop(\"#{sys}/\")"}},{"html_id":"mod-instance-method","name":"mod","abstract":true,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L96"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_json(json)-instance-method","name":"to_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":""}],"args_string":"(json)","args_html":"(json)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L112"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":""}],"visibility":"Public","body":"json.string(to_s)"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Output","path":"Place/Router/SignalGraph/Output.html","kind":"alias","full_name":"Place::Router::SignalGraph::Output","name":"Output","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceOutput","aliased_html":"Place::Router::SignalGraph::Node::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","path":"Place/Router/SignalGraph/Watchable.html","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/watchable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"instance_methods":[{"html_id":"notify:Nil-instance-method","name":"notify","doc":"Notify subscribers with current state.","summary":"

Notify subscribers with current state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L10"},"def":{"name":"notify","return_type":"Nil","visibility":"Public","body":"@subscribers.try(&.each(&.call(self)))"}},{"html_id":"watch(initial=true,&handler:self->):Nil-instance-method","name":"watch","doc":"Subscribe to updates.","summary":"

Subscribe to updates.

","abstract":false,"args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"args_string":"(initial = true, &handler : self -> ) : Nil","args_html":"(initial = true, &handler : self -> ) : Nil","location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L4"},"def":{"name":"watch","args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"return_type":"Nil","visibility":"Public","body":"subscribers << handler\nif initial\n handler.call(self)\nend\n"}}]}]}]},{"html_id":"drivers/Place/Schedule","path":"Place/Schedule.html","kind":"class","full_name":"Place::Schedule","name":"Schedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L356"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel(event_id:String,reason:String|Nil=nil)-instance-method","name":"cancel","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, reason : String | Nil = nil)","args_html":"(event_id : String, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L202"},"def":{"name":"cancel","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"declining event: #{event_id}\"\nend\ncal_client.decline_event(user_id: me.email, id: event_id, notify: !!reason, comment: reason)\n\"cancelled\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L38"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"lookup or search for the email and phone numbers of other staff members if you haven't been provided their details. Do not guess.\\n\"\n str << \"provides details of my daily schedule, meeting room bookings and events I'm attending.\\n\"\n str << \"meeting room bookings must have a resource as an attendee.\\n\"\n str << \"my meeting room bookings will have me as the host or creator.\\n\"\n str << \"meeting rooms are the attendees marked as resources.\\n\"\n str << \"all day events may not have an ending time.\\n\"\n str << \"internal staff have the following email domain: #{@email_domain}. We can only obtain the schedules of internal staff\\n\"\n str << \"check schedules before booking or moving meetings to ensure no one is busy at that time\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"create(event:CreateEvent)-instance-method","name":"create","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"args_string":"(event : CreateEvent)","args_html":"(event : CreateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L128"},"def":{"name":"create","args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nmy_email = me.email.downcase\nhost_email = (event.host.presence || me.email).downcase\ni_am_host = host_email == my_email\nhost_name = host_email\nattendees = event.attendees.uniq.reject do |attendee|\n attend_email = attendee.email.downcase\n if attend_email == host_email\n host_name = attendee.name\n true\n else\n if attend_email == my_email\n attendee.organizer = true\n false\n end\n end\nend\nattendees << PlaceCalendar::Event::Attendee.new(name: i_am_host ? me.name : host_name, email: host_email, response_status: \"accepted\", organizer: i_am_host)\nif event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\nend\nnew_event = PlaceCalendar::Event.new\nnew_event.attendees = attendees\nnew_event.title = event.title\nnew_event.location = event.location\nnew_event.all_day = event.all_day\nnew_event.event_start = event.starting.in(timezone)\nnew_event.event_end = event.ending.try(&.in(timezone))\nnew_event.body = event.title\nnew_event.timezone = timezone.name\nnew_event.creator = my_email\nnew_event.host = host_email\nlogger.debug do\n \"creating booking: #{new_event.inspect}\"\nend\ncreated_event = cal_client.create_event(user_id: my_email, event: new_event, calendar_id: host_email)\n(Event.from_json(created_event.to_json)).configure_times(timezone)\n"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L330"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_schedule: \"returns my schedule with event details with attendees and their response status. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", search_staff_member: \"search for a staff members phone and email addresses using odata filter queries, don't include `$filter=`, for example: `givenName eq 'mary' or startswith(surname,'smith')`, confrim with the user when there are multiple results, search for both givenName and surname using `or` if there is ambiguity\", lookup_staff_member: \"look up a staff members name and phone number by providing their email address. Use search if you only have their name\", get_schedules: \"returns busy periods of the emails specified. Search for staff first if you haven't been given their email address. This can be a person or a resource like a room. An empty schedules array means they are available\", create: \"create a calendar entry with the provided event details. Make sure the attendees are available by getting their schedules first, remember to include the host in the attendees list. An ending time is required except for all day bookings. You can specify an alternate host if booking on behalf of someone else. Don't provide a response_status for attendees when using this function. Starting and ending date times must be ISO 8601 formatted with the timezone\", modify: \"update the details of an existing event. The original id is required, otherwise you only need to provide the changes. You must provide the complete list of attendees if that list is being modified. Don't provide a response_status for attendees when using this function. You can't modify events where the start time is in the past\", cancel: \"cancels an event with an optional reason\", update_attending_status: \"use to confirm your attendance at a meeting this will update your attendee response_status in the specified meeting from your schedule. You should probably provide a reason when declining, however this is optional\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L359"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg3|\n __arg3[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"get_schedules(emails:Array(String),day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"get_schedules","abstract":false,"args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L91"},"def":{"name":"get_schedules","args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nif ending < Time.utc\n return \"past schedules are not useful\"\nend\nduration = ending - starting\nlogger.debug do\n \"getting schedules for #{emails} @ #{starting} -> #{ending}\"\nend\navailability_view_interval = {duration, 30.minutes}.min.total_minutes.to_i!\ntz = timezone\n(cal_client.get_availability(me.email, emails, starting, ending, view_interval: availability_view_interval)).map do |avail|\n {email: avail.calendar, schedule: avail.availability.map do |sched|\n {status: sched.status, starting: sched.starts_at.in(tz), ending: sched.ends_at.in(tz)}\n end}\nend\n"}},{"html_id":"lookup_staff_member(email:String)-instance-method","name":"lookup_staff_member","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L82"},"def":{"name":"lookup_staff_member","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"looking up staff member: #{email}\"\nend\ncal_client = place_calendar_client\nuser = cal_client.get_user_by_email(email)\nif user\nelse\n return \"could not find a staff member with email #{email}. Try searching for their name?\"\nend\nuser\n"}},{"html_id":"modify(event:UpdateEvent)-instance-method","name":"modify","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"args_string":"(event : UpdateEvent)","args_html":"(event : UpdateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L171"},"def":{"name":"modify","args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nexisting = cal_client.get_event(me.email, id: event.id)\nif existing\nelse\n return \"error: could not find event with id '#{event.id}', it may have been cancelled?\"\nend\n{% for param in [\"title\", \"location\", \"host\", \"attendees\"] of ::String %}\n existing.{{ param.id }} = event.{{ param.id }}.nil? ? existing.{{ param.id }} : event.{{ param.id }}.not_nil!\n {% end %}\nexisting.event_start = event.starting.nil? ? existing.event_start.in(timezone) : event.starting.not_nil!.in(timezone)\nif event.all_day\n existing.all_day = true\n existing.event_end = nil\nelse\n existing.all_day = false\n existing.event_end = event.ending.nil? ? existing.event_end.try(&.in(timezone)) : event.ending.not_nil!.in(timezone)\n if event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\n end\nend\nlogger.debug do\n \"updating event: #{existing.inspect}\"\nend\nupdated_event = cal_client.update_event(user_id: me.email, event: existing, calendar_id: existing.host)\n(Event.from_json(updated_event.to_json)).configure_times(timezone)\n"}},{"html_id":"my_schedule(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_schedule","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L52"},"def":{"name":"my_schedule","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nlogger.debug do\n \"requesting events for #{me.name} (#{me.email}) @ #{starting} -> #{ending}\"\nend\nevents = cal_client.list_events(me.email, period_start: starting, period_end: ending)\nevents = Array(Event).from_json(events.to_json)\nevents.each do |event|\n event.configure_times(timezone)\nend\nevents\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"search_staff_member(filter:String)-instance-method","name":"search_staff_member","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L75"},"def":{"name":"search_staff_member","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for staff member: #{filter}\"\nend\ncal_client = place_calendar_client\ncal_client.list_users(filter: filter)\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L334"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}},{"html_id":"update_attending_status(event_id:String,attendance:Attendance,reason:String|Nil=nil)-instance-method","name":"update_attending_status","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","args_html":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L224"},"def":{"name":"update_attending_status","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"updating attendance: #{attendance} #{reason} -> #{event_id}\"\nend\ncase attendance\nin .decline?\n cal_client.decline_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"declined\"\nin .attend?\n cal_client.accept_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"attending\"\nend\n"}}],"types":[{"html_id":"drivers/Place/Schedule/AccessToken","path":"Place/Schedule/AccessToken.html","kind":"struct","full_name":"Place::Schedule::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(token:String,expires:Int64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"args_string":"(token : String, expires : Int64 | Nil)","args_html":"(token : String, expires : Int64 | Nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, expires)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone, @expires.clone)"}},{"html_id":"copy_with(token_token=@token,expires_expires=@expires)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"args_string":"(token _token = @token, expires _expires = @expires)","args_html":"(token _token = @token, expires _expires = @expires)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"visibility":"Public","body":"self.class.new(_token, _expires)"}},{"html_id":"expires:Int64|Nil-instance-method","name":"expires","abstract":false,"def":{"name":"expires","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Place/Schedule/Attendance","path":"Place/Schedule/Attendance.html","kind":"enum","full_name":"Place::Schedule::Attendance","name":"Attendance","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attend","name":"Attend","value":"0"},{"id":"Decline","name":"Decline","value":"1"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"instance_methods":[{"html_id":"attend?-instance-method","name":"attend?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L219"},"def":{"name":"attend?","visibility":"Public","body":"self == Attend"}},{"html_id":"decline?-instance-method","name":"decline?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L220"},"def":{"name":"decline?","visibility":"Public","body":"self == Decline"}}]},{"html_id":"drivers/Place/Schedule/CreateEvent","path":"Place/Schedule/CreateEvent.html","kind":"struct","full_name":"Place::Schedule::CreateEvent","name":"CreateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L256"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L257"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L265"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L262"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L264"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L261"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L260"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L263"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L259"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/Event","path":"Place/Schedule/Event.html","kind":"class","full_name":"Place::Schedule::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L281"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L282"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L290"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L291"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"configure_times(tz:Time::Location)-instance-method","name":"configure_times","abstract":false,"args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"args_string":"(tz : Time::Location)","args_html":"(tz : Time::Location)","location":{"filename":"src/place/llm/schedule.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L311"},"def":{"name":"configure_times","args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"visibility":"Public","body":"@time_zone = tz\n@starting = event_start.in(tz)\n@ending = event_end.try(&.in(tz))\nself\n"}},{"html_id":"creator:String|Nil-instance-method","name":"creator","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L289"},"def":{"name":"creator","return_type":"String | ::Nil","visibility":"Public","body":"@creator"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L302"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"event_end:Time|Nil-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L299"},"def":{"name":"event_end","return_type":"Time | ::Nil","visibility":"Public","body":"@event_end"}},{"html_id":"event_start:Time-instance-method","name":"event_start","doc":"We convert unix time into something more readable for a human or AI","summary":"

We convert unix time into something more readable for a human or AI

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L296"},"def":{"name":"event_start","return_type":"Time","visibility":"Public","body":"@event_start"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L288"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L284"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L286"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"online_meeting_url:String|Nil-instance-method","name":"online_meeting_url","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L292"},"def":{"name":"online_meeting_url","return_type":"String | ::Nil","visibility":"Public","body":"@online_meeting_url"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":301,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L301"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L287"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"time_zone:Time::Location-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n ::raise(::NilAssertionError.new(\"Place::Schedule::Event#time_zone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_zone?:Time::Location|Nil-instance-method","name":"time_zone?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@time_zone"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","doc":"these are used to configure the JSON times correctly","summary":"

these are used to configure the JSON times correctly

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L306"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L285"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/UpdateEvent","path":"Place/Schedule/UpdateEvent.html","kind":"struct","full_name":"Place::Schedule::UpdateEvent","name":"UpdateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L268"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L269"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool|Nil-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L278"},"def":{"name":"all_day","return_type":"Bool | ::Nil","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)|Nil-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L275"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee) | ::Nil","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L277"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L274"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L271"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L273"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L276"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L272"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/User","path":"Place/Schedule/User.html","kind":"struct","full_name":"Place::Schedule::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L319"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L320"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L323"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L322"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Schedule/Zone","path":"Place/Schedule/Zone.html","kind":"struct","full_name":"Place::Schedule::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L338"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L339"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L343"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L341"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L342"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L349"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L346"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/SensorShutdown","path":"Place/SensorShutdown.html","kind":"class","full_name":"Place::SensorShutdown","name":"SensorShutdown","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/sensor_shutdown.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"event_in_progress?:Bool-instance-method","name":"event_in_progress?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L18"},"def":{"name":"event_in_progress?","return_type":"Bool","visibility":"Public","body":"@event_in_progress"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"timeout_ad_hoc = (setting?(UInt32, :timeout_ad_hoc)) || 15_u32.minutes\ntimeout_booked = (setting?(UInt32, :timeout_booked)) || 30_u32.minutes\nsubscriptions.clear\nbookings.subscribe(:status) do |_sub, status|\n update_status(status != \"\\\"free\\\"\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nav_control.subscribe(:active) do |_sub, active|\n update_room_power_state(active == \"true\")\nend\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L19"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"room_powered_on?:Bool-instance-method","name":"room_powered_on?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L21"},"def":{"name":"room_powered_on?","return_type":"Bool","visibility":"Public","body":"@room_powered_on"}},{"html_id":"sensor_stale?:Bool-instance-method","name":"sensor_stale?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L20"},"def":{"name":"sensor_stale?","return_type":"Bool","visibility":"Public","body":"@sensor_stale"}},{"html_id":"timer_active?:Bool-instance-method","name":"timer_active?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L23"},"def":{"name":"timer_active?","return_type":"Bool","visibility":"Public","body":"@timer_active"}}]},{"html_id":"drivers/Place/Smtp","path":"Place/Smtp.html","kind":"class","full_name":"Place::Smtp","name":"Smtp","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/smtp.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/smtp.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L89"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/smtp.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L85"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/smtp.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"defaults = URI.parse(config.uri.not_nil!)\ntls_mode = if scheme = defaults.scheme\n scheme.ends_with?('s') ? EMail::Client::TLSMode::SMTPS : EMail::Client::TLSMode::STARTTLS\nelse\n EMail::Client::TLSMode::STARTTLS\nend\nport = defaults.port || 587\nhost = defaults.host || \"smtp.host\"\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@sender = (setting?(String, :sender)) || \"support@place.tech\"\n@host = (setting?(String, :host)) || host\n@port = (setting?(Int32, :port)) || port\n@tls_mode = (setting?(EMail::Client::TLSMode, :tls_mode)) || tls_mode\n@ssl_verify_ignore = (setting?(Bool, :ssl_verify_ignore)) || false\n@smtp_client = new_smtp_client\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/smtp.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L93"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"if to.is_a?(Array)\nelse\n to = {to}\nend\nif from.nil? || from.is_a?(Array)\nelse\n from = {from}\nend\nif cc.nil? || cc.is_a?(Array)\nelse\n cc = {cc}\nend\nif bcc.nil? || bcc.is_a?(Array)\nelse\n bcc = {bcc}\nend\nif reply_to.nil? || reply_to.is_a?(Array)\nelse\n reply_to = {reply_to}\nend\nmessage = EMail::Message.new\nmessage.subject(subject)\nmessage.sender(@sender)\nif from.nil? || from.empty?\n message.from(@sender)\nelse\n from.each do |_from|\n message.from(_from)\n end\nend\nto.each do |_to|\n message.to(_to)\nend\nbcc.each do |_bcc|\n message.bcc(_bcc)\nend\ncc.each do |_cc|\n message.cc(_cc)\nend\nif reply_to\n reply_to.each do |_reply|\n message.reply_to(_reply)\n end\nend\nif message_plaintext.presence.nil?\nelse\n message.message(message_plaintext.as(String))\nend\nif message_html.presence.nil?\nelse\n message.message_html(message_html.as(String))\nend\n{resource_attachments, attachments}.map(&.each).each.flatten.each do |attachment|\n attachment_io = IO::Memory.new\n Base64.decode(attachment[:content], attachment_io)\n attachment_io.rewind\n case attachment\n in Attachment\n message.attach(io: attachment_io, file_name: attachment[:file_name])\n in ResourceAttachment\n message.message_resource(io: attachment_io, file_name: attachment[:file_name], cid: attachment[:content_id])\n end\nend\nsent = false\n@send_lock.synchronize do\n smtp_client.start do\n sent = send(message)\n end\nend\nsent\n"}}]},{"html_id":"drivers/Place/SpecHelper","path":"Place/SpecHelper.html","kind":"class","full_name":"Place::SpecHelper","name":"SpecHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/spec_helper.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/spec_helper.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"implemented_in_driver-instance-method","name":"implemented_in_driver","doc":"This method will be exposed on the module","summary":"

This method will be exposed on the module

","abstract":false,"location":{"filename":"src/place/spec_helper.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/spec_helper.cr#L5"},"def":{"name":"implemented_in_driver","visibility":"Public","body":"\"woot!\""}}]},{"html_id":"drivers/Place/StaffAPI","path":"Place/StaffAPI.html","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve(booking_id:String|Int64)-instance-method","name":"approve","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L647"},"def":{"name":"approve","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"approving booking #{booking_id}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/approve\", headers: authentication)\nif response.success?\nelse\n raise(\"issue approving booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_check_in(booking_id:String|Int64,state:Bool=true,utm_source:String|Nil=nil)-instance-method","name":"booking_check_in","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L663"},"def":{"name":"booking_check_in","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"checking in booking #{booking_id} to: #{state}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n form.add(\"state\", state.to_s)\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/check_in?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue checking in booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_delete(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"booking_delete","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L676"},"def":{"name":"booking_delete","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = delete(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_state(booking_id:String|Int64,state:String)-instance-method","name":"booking_state","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(booking_id : String | Int64, state : String)","args_html":"(booking_id : String | Int64, state : String)","location":{"filename":"src/place/staff_api.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L655"},"def":{"name":"booking_state","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id} state to: #{state}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/update_state?state=#{state}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"chat_members(session_id:String):Array(String)-instance-method","name":"chat_members","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String) : Array(String)","args_html":"(session_id : String) : Array(String)","location":{"filename":"src/place/staff_api.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L289"},"def":{"name":"chat_members","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"SimpleRetry.try_to(max_attempts: 3, base_interval: 1.second, max_interval: 5.seconds) do\n response = get(\"/api/engine/v2/webrtc/members/#{session_id}\", headers: authentication)\n if response.success?\n else\n raise(\"webrtc service possibly unavailable\")\n end\n Array(String).from_json(response.not_nil!.body)\nend"}},{"html_id":"create_booking(booking_type:String,asset_id:String,user_id:String,user_email:String,user_name:String,zones:Array(String),booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,checked_in:Bool=false,approved:Bool|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,time_zone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,utm_source:String|Nil=nil,limit_override:Int64|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,attendees:Array(PlaceCalendar::Event::Attendee)|Nil=nil)-instance-method","name":"create_booking","doc":"===================================\nBOOKINGS ACTIONS\n===================================","summary":"

=================================== BOOKINGS ACTIONS ===================================

","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"args_string":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","args_html":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":531,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L531"},"def":{"name":"create_booking","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"visibility":"Public","body":"now = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nbooking_start || (booking_start = now.at_beginning_of_day.to_unix)\nbooking_end || (booking_end = now.at_end_of_day.to_unix)\nif checked_in\n checked_in_at = now.to_unix\nend\nlogger.debug do\n \"creating a #{booking_type} booking, starting #{booking_start}, asset #{asset_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\n if event_id.nil?\n else\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.nil?\n else\n form.add(\"ical_uid\", ical_uid.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"booking_type\" => booking_type, \"asset_id\" => asset_id, \"user_id\" => user_id, \"user_email\" => user_email, \"user_name\" => user_name, \"zones\" => zones, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"approved\" => approved, \"title\" => title, \"description\" => description, \"timezone\" => time_zone, \"extension_data\" => extension_data || (JSON.parse(\"{}\")), \"attendees\" => attendees}.compact.to_json)\nif response.success?\nelse\n raise(\"issue creating #{booking_type} booking, starting #{booking_start}, asset #{asset_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"create_event(event:PlaceCalendar::Event)-instance-method","name":"create_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L416"},"def":{"name":"create_event","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = post(\"/api/staff/v1/events\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"create_user(body_json:String)-instance-method","name":"create_user","abstract":false,"args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(body_json : String)","args_html":"(body_json : String)","location":{"filename":"src/place/staff_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L192"},"def":{"name":"create_user","args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/users\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to create user: #{response.status_code}\")\nend\nPlaceOS::Client::API::Models::User.from_json(response.body)\n"}},{"html_id":"delete_event(system_id:String,event_id:String)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(system_id : String, event_id : String)","args_html":"(system_id : String, event_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L423"},"def":{"name":"delete_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"response = delete(\"/api/staff/v1/events/#{event_id}?system_id=#{system_id}\", headers: authentication)\nif response.success? || (response.status_code == 404)\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"delete_user(id:String,force_removal:Bool=false):Nil-instance-method","name":"delete_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"args_string":"(id : String, force_removal : Bool = false) : Nil","args_html":"(id : String, force_removal : Bool = false) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L210"},"def":{"name":"delete_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = delete(\"/api/engine/v2/users/#{id}?force_removal=#{force_removal}\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to delete user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":761,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L761"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"getting booking #{booking_id}\"\nend\nresponse = get(\"/api/staff/v1/bookings/#{booking_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue getting booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_event(event_id:String,system_id:String|Nil=nil,calendar:String|Nil=nil)-instance-method","name":"get_event","doc":"gets an event from either the `system_id` or `calendar` if only one is provided\nif both are provided, it gets the event from `calendar` and the metadata from `system_id`\nNOTE:: the use of `calendar` will typically not work from a driver unless the X-API-Key\n has read access to it. From a driver perspective you should probably use a\n dedicated Calendar driver with application access and the query_metadata function\n below if metadata is required: `query_metadata(system_id: \"sys\", event_ref: [\"id\", \"uuid\"])`","summary":"

gets an event from either the system_id or calendar if only one is provided if both are provided, it gets the event from calendar and the metadata from system_id NOTE:: the use of calendar will typically not work from a driver unless the X-API-Key has read access to it.

","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"args_string":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","args_html":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L388"},"def":{"name":"get_event","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"visibility":"Public","body":"if calendar.presence || system_id.presence\nelse\n raise(ArgumentError.new(\"requires system_id or calendar param\"))\nend\nparams = URI::Params.build do |form|\n if calendar.presence\n form.add(\"calendar\", calendar.to_s)\n end\n if system_id.presence\n form.add(\"system_id\", system_id.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events/#{event_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"get_survey_invites(survey_id:Int64|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"get_survey_invites","abstract":false,"args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","args_html":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":772,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L772"},"def":{"name":"get_survey_invites","args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting survey_invites (survey #{survey_id}, sent #{sent})\"\nend\nparams = URI::Params.new\nif survey_id\n params[\"survey_id\"] = survey_id.to_s\nend\nif sent.nil?\nelse\n params[\"sent\"] = sent.to_s\nend\nresponse = get(\"/api/staff/v1/surveys/invitations\", params, headers: authentication)\nif response.success?\nelse\n raise(\"issue getting survey invitations (survey #{survey_id}, sent #{sent}): #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_system(id:String,complete:Bool=false)-instance-method","name":"get_system","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"args_string":"(id : String, complete : Bool = false)","args_html":"(id : String, complete : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L112"},"def":{"name":"get_system","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}?complete=#{complete}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for system id #{id}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing system #{id}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"guest_details(guest_id:String)-instance-method","name":"guest_details","doc":"===================================\nGuest details\n===================================","summary":"

=================================== Guest details ===================================

","abstract":false,"args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"args_string":"(guest_id : String)","args_html":"(guest_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L305"},"def":{"name":"guest_details","args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/guests/#{guest_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"kick_user(user_id:String,session_id:String,reason:String)-instance-method","name":"kick_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"args_string":"(user_id : String, session_id : String, reason : String)","args_html":"(user_id : String, session_id : String, reason : String)","location":{"filename":"src/place/staff_api.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L282"},"def":{"name":"kick_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/webrtc/kick/#{user_id}/#{session_id}\", headers: authentication, body: {reason: reason}.to_json)\nresponse.status_code\n"}},{"html_id":"lookup_authority_id(retry:Int32=0)-instance-method","name":"lookup_authority_id","abstract":false,"args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"args_string":"(retry : Int32 = 0)","args_html":"(retry : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L51"},"def":{"name":"lookup_authority_id","args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"visibility":"Public","body":"begin\n response = get(\"/auth/authority\")\n if response.success?\n else\n raise(\"unexpected response for /auth/authority: #{response.status_code}\\n#{response.body}\")\n end\n old_id = @authority_id\n @authority_id = (NamedTuple(id: String).from_json(response.body))[:id]\n if old_id == @authority_id\n else\n monitor_event_changes\n end\n @authority_id\nrescue error\n logger.warn(exception: error) do\n \"failed to lookup authority id\"\n end\n sleep(rand(3))\n retry = retry + 1\n if retry == 10\n return\n end\n spawn do\n lookup_authority_id(retry)\n end\nend"}},{"html_id":"merge_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"merge_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":502,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L502"},"def":{"name":"merge_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.merge(id, key, payload, description)"}},{"html_id":"metadata(id:String,key:String|Nil=nil)-instance-method","name":"metadata","doc":"===================================\nZONE METADATA\n===================================","summary":"

=================================== ZONE METADATA ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L488"},"def":{"name":"metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.fetch(id, key)"}},{"html_id":"metadata_children(id:String,key:String|Nil=nil)-instance-method","name":"metadata_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":492,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L492"},"def":{"name":"metadata_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.children(id, key)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = (setting(String, :api_key)) || \"\"\nif @api_key.presence\n @access_expires = 30.years.from_now\nend\n@place_domain = URI.parse(config.uri.not_nil!)\n@host_header = (setting?(String, :host_header)) || @place_domain.host.not_nil!\nif @api_key.presence\nelse\n return\nend\nif setting?(Bool, :disable_event_notify)\n return\nend\nschedule.clear\nschedule.every(1.hour + (rand(300)).seconds) do\n lookup_authority_id\nend\nschedule.in(1.second) do\n lookup_authority_id\nend\n"}},{"html_id":"patch_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"patch_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L429"},"def":{"name":"patch_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"push_event_status-instance-method","name":"push_event_status","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L103"},"def":{"name":"push_event_status","visibility":"Public","body":"{authority_id: @authority_id, monitoring: !!@event_monitoring, events: @notify_count, failures: @notify_fails}"}},{"html_id":"query_bookings(type:String|Nil=nil,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,zones:Array(String)=[]ofString,user:String|Nil=nil,email:String|Nil=nil,state:String|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,created_before:Int64|Nil=nil,created_after:Int64|Nil=nil,approved:Bool|Nil=nil,rejected:Bool|Nil=nil,checked_in:Bool|Nil=nil,include_checked_out:Bool|Nil=nil,extension_data:JSON::Any|Nil=nil)-instance-method","name":"query_bookings","doc":"===================================\nBOOKINGS QUERY\n===================================","summary":"

=================================== BOOKINGS QUERY ===================================

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","args_html":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L689"},"def":{"name":"query_bookings","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 30.minutes.from_now.to_unix)\nparams = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if type.presence\n form.add(\"type\", type.to_s)\n end\n if zones.empty?\n else\n form.add(\"zones\", zones.join(\",\"))\n end\n if user.presence\n form.add(\"user\", user.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n if state.presence\n form.add(\"state\", state.to_s)\n end\n if created_before\n form.add(\"created_before\", created_before.to_s)\n end\n if created_after\n form.add(\"created_after\", created_after.to_s)\n end\n if approved.nil?\n else\n form.add(\"approved\", approved.to_s)\n end\n if rejected.nil?\n else\n form.add(\"rejected\", rejected.to_s)\n end\n if checked_in.nil?\n else\n form.add(\"checked_in\", checked_in.to_s)\n end\n if event_id.presence\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if include_checked_out.nil?\n else\n form.add(\"include_checked_out\", include_checked_out.to_s)\n end\n if extension_data\n value = extension_data.as_h.map do |k, v|\n \"#{k}:#{v}\"\n end.join(\",\")\n form.add(\"extension_data\", \"{#{value}}\")\n end\nend\nlogger.debug do\n \"requesting staff/v1/bookings: #{params}\"\nend\nbookings = [] of JSON::Any\nnext_request = \"/api/staff/v1/bookings?#{params}\"\nloop do\n response = get(next_request, headers: authentication)\n if response.success?\n else\n raise(\"issue loading list of bookings (zones #{zones}): #{response.status_code}\")\n end\n links = LinkHeader.new(response)\n new_bookings = (JSON.parse(response.body)).as_a\n bookings.concat(new_bookings)\n last_req = next_request\n next_request = links[\"next\"]?\n if (next_request.nil? || new_bookings.empty?) || (last_req == next_request)\n break\n end\nend\nlogger.debug do\n \"bookings count: #{bookings.size}\"\nend\nbookings\n"}},{"html_id":"query_events(period_start:Int64,period_end:Int64,zones:Array(String)|Nil=nil,systems:Array(String)|Nil=nil,capacity:Int32|Nil=nil,features:String|Nil=nil,bookable:Bool|Nil=nil,include_cancelled:Bool|Nil=nil)-instance-method","name":"query_events","doc":"===================================\nCALENDAR EVENT ACTIONS (via staff api)\n===================================","summary":"

=================================== CALENDAR EVENT ACTIONS (via staff api) ===================================

","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L350"},"def":{"name":"query_events","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n if zones && !zones.empty?\n form.add(\"zone_ids\", zones.join(\",\"))\n end\n if systems && !systems.empty?\n form.add(\"system_ids\", systems.join(\",\"))\n end\n if capacity\n form.add(\"capacity\", capacity.to_s)\n end\n if features\n form.add(\"features\", features)\n end\n if !bookable.nil?\n form.add(\"bookable\", bookable.to_s)\n end\n if !include_cancelled.nil?\n form.add(\"include_cancelled\", include_cancelled.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_guests(period_start:Int64,period_end:Int64,zones:Array(String))-instance-method","name":"query_guests","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String))","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String))","location":{"filename":"src/place/staff_api.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L327"},"def":{"name":"query_guests","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n form.add(\"zone_ids\", zones.join(\",\"))\nend\nresponse = get(\"/api/staff/v1/guests?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_metadata(period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,field_name:String|Nil=nil,value:String|Nil=nil,system_id:String|Nil=nil,event_ref:Array(String)|Nil=nil)-instance-method","name":"query_metadata","doc":"Search for metadata that exists on events to obtain the event information.\nFor response details see `EventMetadata__Assigner` in the OpenAPI docs\nhttps://editor.swagger.io/?url=https://raw.githubusercontent.com/PlaceOS/staff-api/master/OPENAPI_DOC.yml","summary":"

Search for metadata that exists on events to obtain the event information.

","abstract":false,"args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"args_string":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","args_html":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L458"},"def":{"name":"query_metadata","args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if field_name.presence\n form.add(\"field_name\", field_name)\n end\n if value.presence\n form.add(\"value\", value)\n end\n if event_ref && !event_ref.empty?\n form.add(\"event_ref\", event_ref.join(\",\"))\n end\nend\nresponse = get(\"/api/staff/v1/events/extension_metadata/#{system_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_users(q:String|Nil=nil,limit:Int32=20,offset:Int32=0,authority_id:String|Nil=nil,include_deleted:Bool=false)-instance-method","name":"query_users","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","args_html":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L249"},"def":{"name":"query_users","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"visibility":"Public","body":"placeos_client.users.search(q: q, limit: limit, offset: offset, authority_id: authority_id, include_deleted: include_deleted)"}},{"html_id":"reject(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"reject","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L634"},"def":{"name":"reject","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"rejecting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/reject?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue rejecting booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"replace_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"replace_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L442"},"def":{"name":"replace_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = put(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"resource_token-instance-method","name":"resource_token","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L222"},"def":{"name":"resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"revive_user(id:String):Nil-instance-method","name":"revive_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L216"},"def":{"name":"revive_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{id}/revive\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to revive user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"signal(channel:String,payload:JSON::Any|Nil=nil)-instance-method","name":"signal","abstract":false,"args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"args_string":"(channel : String, payload : JSON::Any | Nil = nil)","args_html":"(channel : String, payload : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":800,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L800"},"def":{"name":"signal","args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"placeos_client.root.signal(channel, payload)"}},{"html_id":"staff_details(email:String)-instance-method","name":"staff_details","doc":"Staff details returns the information from AD","summary":"

Staff details returns the information from AD

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/staff_api.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L172"},"def":{"name":"staff_details","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/people/#{email}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for staff #{email}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing staff #{email}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"system_settings(id:String,key:String)-instance-method","name":"system_settings","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(id : String, key : String)","args_html":"(id : String, key : String)","location":{"filename":"src/place/staff_api.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L149"},"def":{"name":"system_settings","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}/settings\", headers: authentication)\nif response.success?\nelse\n raise(\"settings request failed for #{id}: #{response.status_code}\")\nend\nsetting = (Array(Setting).from_json(response.body)).select do |sub_setting|\n sub_setting.settings_string && (sub_setting.keys.includes?(key))\nend.last?\nif setting\nelse\n return nil\nend\n(YAML.parse(setting.settings_string.as(String)))[key]\n"}},{"html_id":"systems(q:String|Nil=nil,zone_id:String|Nil=nil,capacity:Int32|Nil=nil,bookable:Bool|Nil=nil,features:String|Nil=nil,limit:Int32=1000,offset:Int32=0)-instance-method","name":"systems","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","args_html":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L124"},"def":{"name":"systems","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"placeos_client.systems.search(q: q, limit: limit, offset: offset, zone_id: zone_id, capacity: capacity, bookable: bookable, features: features)"}},{"html_id":"systems_in_building(zone_id:String,ids_only:Bool=true)-instance-method","name":"systems_in_building","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"args_string":"(zone_id : String, ids_only : Bool = true)","args_html":"(zone_id : String, ids_only : Bool = true)","location":{"filename":"src/place/staff_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L159"},"def":{"name":"systems_in_building","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"visibility":"Public","body":"levels = zones(parent: zone_id, tags: [\"level\"])\nif ids_only\n hash = {} of String => Array(String)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id).map(&.id)\n end\nelse\n hash = {} of String => Array(::PlaceOS::Client::API::Models::System)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id)\n end\nend\nhash\n"}},{"html_id":"transfer_user(user_id:String,session_id:String,payload:JSON::Any)-instance-method","name":"transfer_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(user_id : String, session_id : String, payload : JSON::Any)","args_html":"(user_id : String, session_id : String, payload : JSON::Any)","location":{"filename":"src/place/staff_api.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L264"},"def":{"name":"transfer_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"status = 200\npayload_str = payload.to_json\nSimpleRetry.try_to(max_attempts: 5, base_interval: 1.second, max_interval: 10.seconds) do\n response = post(\"/api/engine/v2/webrtc/transfer/#{user_id}/#{session_id}\", headers: authentication, body: payload_str)\n status = response.status_code\n if response.success?\n else\n raise(\"client not yet connected\")\n end\nend\nstatus\n"}},{"html_id":"update_booking(booking_id:String|Int64,booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,asset_id:String|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,timezone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,approved:Bool|Nil=nil,checked_in:Bool|Nil=nil,limit_override:Int64|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"args_string":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","args_html":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":590,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L590"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id}\"\nend\ncase checked_in\nin true\n checked_in_at = Time.utc.to_unix\nin false\n checked_out_at = Time.utc.to_unix\nin nil\nend\nparams = URI::Params.build do |form|\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"checked_out_at\" => checked_out_at, \"asset_id\" => asset_id, \"title\" => title, \"description\" => description, \"timezone\" => timezone, \"extension_data\" => extension_data}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_event(system_id:String,event:PlaceCalendar::Event)-instance-method","name":"update_event","doc":"NOTE:: https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit#\nThe service account making this request needs delegated access and hence you can only edit\nevents associated with a resource calendar","summary":"

NOTE : https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit# The service account making this request needs delegated access and hence you can only edit events associated with a resource calendar

","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(system_id : String, event : PlaceCalendar::Event)","args_html":"(system_id : String, event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L409"},"def":{"name":"update_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = patch(\"/api/staff/v1/events/#{event.id}?system_id=#{system_id}\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"update_guest(id:String,body_json:String):Nil-instance-method","name":"update_guest","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L318"},"def":{"name":"update_guest","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/staff/v1/guests/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update guest #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"update_survey_invite(token:String,email:String|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"update_survey_invite","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","args_html":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":783,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L783"},"def":{"name":"update_survey_invite","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating survey invite #{token}\"\nend\nresponse = patch(\"/api/staff/v1/surveys/invitations/#{token}\", headers: authentication, body: {\"email\" => email, \"sent\" => sent}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating survey invite #{token}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"update_user(id:String,body_json:String):Nil-instance-method","name":"update_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L201"},"def":{"name":"update_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/engine/v2/users/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"user(id:String)-instance-method","name":"user","doc":"===================================\nUser details\n===================================","summary":"

=================================== User details ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/staff_api.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L187"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"placeos_client.users.fetch(id)"}},{"html_id":"user_resource_token-instance-method","name":"user_resource_token","doc":"NOTE:: this function requires \"users\" scope to be specified explicity for access","summary":"

NOTE : this function requires "users" scope to be specified explicity for access

","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L236"},"def":{"name":"user_resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{invoked_by_user_id}/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"write_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"write_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L497"},"def":{"name":"write_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.update(id, key, payload, description)"}},{"html_id":"zone(zone_id:String)-instance-method","name":"zone","doc":"===================================\nZONE INFORMATION\n===================================","summary":"

=================================== ZONE INFORMATION ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":509,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L509"},"def":{"name":"zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"placeos_client.zones.fetch(zone_id)"}},{"html_id":"zones(q:String|Nil=nil,limit:Int32=1000,offset:Int32=0,parent:String|Nil=nil,tags:Array(String)|String|Nil=nil)-instance-method","name":"zones","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","args_html":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":513,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L513"},"def":{"name":"zones","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"visibility":"Public","body":"placeos_client.zones.search(q: q, limit: limit, offset: offset, parent_id: parent, tags: tags)"}}],"types":[{"html_id":"drivers/Place/StaffAPI/PushEvent","path":"Place/StaffAPI/PushEvent.html","kind":"struct","full_name":"Place::StaffAPI::PushEvent","name":"PushEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change:String-instance-method","name":"change","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L80"},"def":{"name":"change","return_type":"String","visibility":"Public","body":"@change"}},{"html_id":"event:JSON::Any|Nil-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L82"},"def":{"name":"event","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@event"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L79"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L81"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Place/StaffAPI/Setting","path":"Place/StaffAPI/Setting.html","kind":"struct","full_name":"Place::StaffAPI::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(keys:Array(String),settings_string:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"args_string":"(keys : Array(String), settings_string : String | Nil)","args_html":"(keys : Array(String), settings_string : String | Nil)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"new","args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keys, settings_string)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L145"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@keys.clone, @settings_string.clone)"}},{"html_id":"copy_with(keys_keys=@keys,settings_string_settings_string=@settings_string)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"args_string":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","args_html":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"copy_with","args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"visibility":"Public","body":"self.class.new(_keys, _settings_string)"}},{"html_id":"keys:Array(String)-instance-method","name":"keys","abstract":false,"def":{"name":"keys","return_type":"Array(String)","visibility":"Public","body":"@keys"}},{"html_id":"settings_string:String|Nil-instance-method","name":"settings_string","abstract":false,"def":{"name":"settings_string","return_type":"String | ::Nil","visibility":"Public","body":"@settings_string"}}]}]},{"html_id":"drivers/Place/SurveyMailer","path":"Place/SurveyMailer.html","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L20"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@send_invites = (setting?(String, :send_invites)).presence\n@email_template = (setting?(String, :email_template)) || \"survey\"\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nif invites = @send_invites\n schedule.cron(invites, @time_zone) do\n send_survey_emails\n end\nend\n"}},{"html_id":"send_survey_emails-instance-method","name":"send_survey_emails","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L61"},"def":{"name":"send_survey_emails","visibility":"Public","body":"invites = Array(SurveyInvite).from_json(staff_api.get_survey_invites(sent: false).get.to_json)\nsent_invites : Hash(String, Array(Int64)) = {} of String => Array(Int64)\ninvites.each do |invite|\n if invite.sent\n next\n end\n begin\n if !(sent_surveys = sent_invites[invite.email]?) || !(sent_surveys.includes?(invite.survey_id))\n __temp_953 = invite.email\n sent_invites[__temp_953]? || (sent_invites[__temp_953] = [] of Int64)\n sent_invites[invite.email] << invite.survey_id\n mailer.send_template(to: invite.email, template: {@email_template, \"invite\"}, args: {email: invite.email, token: invite.token, survey_id: invite.survey_id})\n end\n staff_api.update_survey_invite(invite.token, sent: true)\n rescue error\n logger.warn(exception: error) do\n \"failed to send survey email to #{invite.email}\"\n end\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L45"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"[TemplateFields.new(trigger: {@email_template, \"invite\"}, name: \"Survey invite\", description: \"Email invitation sent to participants to complete a survey\", fields: [{name: \"email\", description: \"Email address of the survey recipient\"}, {name: \"token\", description: \"Unique authentication token for accessing the survey\"}, {name: \"survey_id\", description: \"Unique identifier of the survey to be completed\"}])]"}}],"types":[{"html_id":"drivers/Place/SurveyMailer/SurveyInvite","path":"Place/SurveyMailer/SurveyInvite.html","kind":"struct","full_name":"Place::SurveyMailer::SurveyInvite","name":"SurveyInvite","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/SurveyMailer","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/survey_mailer.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L95"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L95"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L92"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L92"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sent:Bool|Nil-instance-method","name":"sent","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L96"},"def":{"name":"sent","return_type":"Bool | ::Nil","visibility":"Public","body":"@sent"}},{"html_id":"sent=(sent:Bool|Nil)-instance-method","name":"sent=","abstract":false,"args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(sent : Bool | Nil)","args_html":"(sent : Bool | Nil)","location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L96"},"def":{"name":"sent=","args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@sent = sent"}},{"html_id":"survey_id:Int64-instance-method","name":"survey_id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id","return_type":"Int64","visibility":"Public","body":"@survey_id"}},{"html_id":"survey_id=(survey_id:Int64)-instance-method","name":"survey_id=","abstract":false,"args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"args_string":"(survey_id : Int64)","args_html":"(survey_id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id=","args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"visibility":"Public","body":"@survey_id = survey_id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L94"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L94"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]},{"html_id":"drivers/Place/Tab","path":"Place/Tab.html","kind":"class","full_name":"Place::Tab","name":"Tab","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/tab.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(icon:String,name:String,inputs:Array(String),help:Nil|String=nil,controls:Nil|String=nil,merge_on_join:Bool|Nil=nil,presentation_source:Nil|String=nil,json_unmapped:Hash(String,JSON::Any)=Hash(String,JSON::Any).new)-class-method","name":"new","abstract":false,"args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","args_html":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","location":{"filename":"src/place/meet/tab.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L7"},"def":{"name":"new","args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(icon, name, inputs, help, controls, merge_on_join, presentation_source, json_unmapped)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/tab.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone:Tab-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L23"},"def":{"name":"clone","return_type":"Tab","visibility":"Public","body":"Tab.new(@icon, @name, inputs.dup, @help, @controls, @merge_on_join, @presentation_source, @json_unmapped.dup)"}},{"html_id":"controls:String|Nil-instance-method","name":"controls","doc":"such as: vidconf-controls","summary":"

such as: vidconf-controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L17"},"def":{"name":"controls","return_type":"String | ::Nil","visibility":"Public","body":"@controls"}},{"html_id":"help:String|Nil-instance-method","name":"help","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L14"},"def":{"name":"help","return_type":"String | ::Nil","visibility":"Public","body":"@help"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L10"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"inputs:Array(String)-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L12"},"def":{"name":"inputs","return_type":"Array(String)","visibility":"Public","body":"@inputs"}},{"html_id":"merge(tab:Tab):Tab-instance-method","name":"merge","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L27"},"def":{"name":"merge","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"input = (inputs.dup.concat(tab.inputs)).uniq!\nnew_unmapped = tab.json_unmapped.merge(json_unmapped)\nTab.new(@icon, @name, input, @help, @controls, @merge_on_join, @presentation_source, new_unmapped)\n"}},{"html_id":"merge!(tab:Tab):Tab-instance-method","name":"merge!","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L33"},"def":{"name":"merge!","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"@json_unmapped.merge!(tab.json_unmapped)\n(@inputs.concat(tab.inputs)).uniq!\nself\n"}},{"html_id":"merge_on_join:Bool|Nil-instance-method","name":"merge_on_join","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L18"},"def":{"name":"merge_on_join","return_type":"Bool | ::Nil","visibility":"Public","body":"@merge_on_join"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"presentation_source:String|Nil-instance-method","name":"presentation_source","doc":"For the VC controls","summary":"

For the VC controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L21"},"def":{"name":"presentation_source","return_type":"String | ::Nil","visibility":"Public","body":"@presentation_source"}}]},{"html_id":"drivers/Place/TemplateMailer","path":"Place/TemplateMailer.html","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SEPERATOR","name":"SEPERATOR","value":"\".\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone_id:String-instance-method","name":"building_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L33"},"def":{"name":"building_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_zone_id).nil?\n @building_zone_id = ((get_local_zone_id(building_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"building_zone_ids:Array(String)-instance-method","name":"building_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L29"},"def":{"name":"building_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @building_zone_ids).nil?\n @building_zone_ids = ((get_zone_ids?(\"building\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"clear_template_cache(zone_id:String|Nil=nil)-instance-method","name":"clear_template_cache","abstract":false,"args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil = nil)","args_html":"(zone_id : String | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L177"},"def":{"name":"clear_template_cache","args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if zone_id && !zone_id.blank?\n @template_cache.delete(zone_id)\nelse\n @template_cache = TemplateCache.new\nend"}},{"html_id":"fetch_templates(zone_id:String|Nil):Array(Template)-instance-method","name":"fetch_templates","doc":"fetch templates from cache or metadata","summary":"

fetch templates from cache or metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil) : Array(Template)","args_html":"(zone_id : String | Nil) : Array(Template)","location":{"filename":"src/place/template_mailer.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L161"},"def":{"name":"fetch_templates","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Template)","visibility":"Public","body":"if zone_id\nelse\n return [] of Template\nend\nif (cache = @template_cache[zone_id]?) && cache[0] > Time.utc.to_unix\n cache[1]\nelse\n templates = (get_templates?(zone_id)) || ([] of Template)\n @template_cache[zone_id] = {Time.utc.to_unix + @cache_timeout, templates}\n templates\nend\n"}},{"html_id":"find_template?(template:String,zone_ids:Array(String)):Template|Nil-instance-method","name":"find_template?","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(template : String, zone_ids : Array(String)) : Template | Nil","args_html":"(template : String, zone_ids : Array(String)) : Template | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L194"},"def":{"name":"find_template?","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"Template | ::Nil","visibility":"Public","body":"org_id = (zone_ids & org_zone_ids)[0]?\nregion_id = (zone_ids & region_zone_ids)[0]?\nbuilding_id = (zone_ids & building_zone_ids)[0]?\nlevel_id = (zone_ids & level_zone_ids)[0]?\norg_templates = fetch_templates(org_id)\nregion_templates = fetch_templates(region_id)\nbuilding_templates = fetch_templates(building_id)\nlevel_templates = fetch_templates(level_id)\n(((level_templates.find do |t|\n t[\"trigger\"] == template\nend || building_templates.find do |t|\n t[\"trigger\"] == template\nend) || region_templates.find do |t|\n t[\"trigger\"] == template\nend) || org_templates.find do |t|\n t[\"trigger\"] == template\nend) || nil\n"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/template_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L218"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_png_qrcode(text, size)).get.as_s"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/template_mailer.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L214"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_svg_qrcode(text)).get.as_s"}},{"html_id":"get_local_zone_id(zone_ids:Array(String)):String|Nil-instance-method","name":"get_local_zone_id","abstract":false,"args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(zone_ids : Array(String)) : String | Nil","args_html":"(zone_ids : Array(String)) : String | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L88"},"def":{"name":"get_local_zone_id","args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"String | ::Nil","visibility":"Public","body":"begin\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine local zone id\"\n end\n nil\nend"}},{"html_id":"get_template_fields?(zone_id:String):Hash(String,MetadataTemplateFields)|Nil-instance-method","name":"get_template_fields?","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L95"},"def":{"name":"get_template_fields?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_template_fields\")).get[\"email_template_fields\"].to_json)\n Hash(String, MetadataTemplateFields).from_json(metadata.details.to_json)\nrescue error\n logger.warn(exception: error) do\n \"unable to get email template fields from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_templates?(zone_id:String):Array(Template)|Nil-instance-method","name":"get_templates?","doc":"get templates from metadata","summary":"

get templates from metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Array(Template) | Nil","args_html":"(zone_id : String) : Array(Template) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L186"},"def":{"name":"get_templates?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Array(Template) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_templates\")).get[\"email_templates\"].to_json)\n metadata.details.as_a.map do |template|\n Template.from_json(template.to_json)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to get email templates from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_zone_ids?(tag:String):Array(String)|Nil-instance-method","name":"get_zone_ids?","abstract":false,"args":[{"name":"tag","external_name":"tag","restriction":"String"}],"args_string":"(tag : String) : Array(String) | Nil","args_html":"(tag : String) : Array(String) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L81"},"def":{"name":"get_zone_ids?","args":[{"name":"tag","external_name":"tag","restriction":"String"}],"return_type":"Array(String) | ::Nil","visibility":"Public","body":"begin\n staff_api.zones(tags: tag).get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine #{tag} zone ids\"\n end\n nil\nend"}},{"html_id":"level_zone_ids:Array(String)-instance-method","name":"level_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L30"},"def":{"name":"level_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @level_zone_ids).nil?\n @level_zone_ids = ((get_zone_ids?(\"level\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[1]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@org_zone_ids = nil\n@region_zone_ids = nil\n@building_zone_ids = nil\n@level_zone_ids = nil\n@org_zone_id = nil\n@building_zone_id = nil\n@cache_timeout = (setting?(Int64, :cache_timeout)) || 300_i64\n@keep_if_not_seen = (setting?(Int64, :keep_if_not_seen)) || 6_i64\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@update_schedule = (setting?(String, :update_schedule)).presence\nschedule.clear\nif update_schedule = @update_schedule\n schedule.cron(update_schedule, @timezone) do\n update_template_fields(org_zone_id)\n end\nend\nupdate_template_fields(org_zone_id)\n"}},{"html_id":"org_zone_id:String-instance-method","name":"org_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L32"},"def":{"name":"org_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_zone_id).nil?\n @org_zone_id = ((get_local_zone_id(org_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"org_zone_ids:Array(String)-instance-method","name":"org_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L27"},"def":{"name":"org_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @org_zone_ids).nil?\n @org_zone_ids = ((get_zone_ids?(\"org\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"region_zone_ids:Array(String)-instance-method","name":"region_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L28"},"def":{"name":"region_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @region_zone_ids).nil?\n @region_zone_ids = ((get_zone_ids?(\"region\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L222"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"mailer.send_mail(to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc, from, reply_to)"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L237"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"zone_ids = if (zones = args[\"zone_ids\"]?) && zones.is_a?(Array(String))\n zones\nelse\n [org_zone_id, building_zone_id]\nend\nmetadata_template = find_template?(template.join(SEPERATOR), zone_ids)\nif metadata_template\n subject = build_template(metadata_template[\"subject\"].to_s, args)\n text = (build_template(metadata_template[\"text\"]?.try(&.to_s), args)) || \"\"\n html = (build_template(metadata_template[\"html\"]?.try(&.to_s), args)) || \"\"\n if (from_template = metadata_template[\"from\"]?) && from_template.to_s.presence\n from = metadata_template[\"from\"].to_s\n end\n if (reply_to_template = metadata_template[\"reply_to\"]?) && reply_to_template.to_s.presence\n reply_to = metadata_template[\"reply_to\"].to_s\n end\n mailer.send_mail(to, subject, text, html, resource_attachments, attachments, cc, bcc, from, reply_to)\nelse\n logger.info do\n \"unable to find template #{template.join(SEPERATOR)} from zones #{zone_ids} metadata, forwarding to Mailer_2\"\n end\n mailer.send_template(to, template, args, resource_attachments, attachments, cc, bcc, from, reply_to)\nend\n"}},{"html_id":"sticky_template_fields(zone_id:String):Hash(String,MetadataTemplateFields)-instance-method","name":"sticky_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields)","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields)","location":{"filename":"src/place/template_mailer.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L103"},"def":{"name":"sticky_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields)","visibility":"Public","body":"if @keep_if_not_seen == 0\n return Hash(String, MetadataTemplateFields).new\nend\ncurrent_fields = (get_template_fields?(zone_id)) || Hash(String, MetadataTemplateFields).new\nif current_fields.empty?\n return current_fields\nend\nif @keep_if_not_seen == -1\n return current_fields\nend\nsticky_fields = Hash(String, MetadataTemplateFields).new\ncurrent_fields.keys.each do |key|\n @not_seen_times[key] = @not_seen_times[key]? ? @not_seen_times[key] + 1 : 1_i64\n if @not_seen_times[key] <= @keep_if_not_seen\n sticky_fields[key] = current_fields[key]\n end\nend\nsticky_fields\n"}},{"html_id":"template_cache:Hash(String,{Int64,Array(Hash(String,Int64|String))})-instance-method","name":"template_cache","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L173"},"def":{"name":"template_cache","visibility":"Public","body":"@template_cache"}},{"html_id":"update_template_fields(zone_id:String)-instance-method","name":"update_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L126"},"def":{"name":"update_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"template_fields : Hash(String, MetadataTemplateFields) = sticky_template_fields(zone_id)\n(system.implementing(Interface::MailerTemplates)).each do |driver|\n begin\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n rescue error\n logger.warn(exception: error) do\n \"unable to get template fields from module #{driver.module_id}\"\n end\n next\n end\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n driver_template_fields.each do |field_list|\n template_fields[\"#{field_list[:trigger].join(SEPERATOR)}\"] = MetadataTemplateFields.new(module_name: driver.module_name, name: field_list[:name], description: field_list[:description], fields: field_list[:fields])\n end\nend\ntemplate_fields.keys.each do |key|\n @not_seen_times[key] = 0_i64\nend\nself[:template_fields] = template_fields\nif template_fields.empty?\nelse\n staff_api.write_metadata(id: zone_id, key: \"email_template_fields\", payload: template_fields, description: \"Available fields for use in email templates\").get\nend\n"}}],"types":[{"html_id":"drivers/Place/TemplateMailer/Metadata","path":"Place/TemplateMailer/Metadata.html","kind":"struct","full_name":"Place::TemplateMailer::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L275"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L276"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L279"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L279"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"details:JSON::Any-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L280"},"def":{"name":"details","return_type":"JSON::Any","visibility":"Public","body":"@details"}},{"html_id":"details=(details:JSON::Any)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L280"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"@details = details"}},{"html_id":"editors:Set(String)-instance-method","name":"editors","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L283"},"def":{"name":"editors","return_type":"Set(String)","visibility":"Public","body":"@editors"}},{"html_id":"editors=(editors:Set(String))-instance-method","name":"editors=","abstract":false,"args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"args_string":"(editors : Set(String))","args_html":"(editors : Set(String))","location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L283"},"def":{"name":"editors=","args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"visibility":"Public","body":"@editors = editors"}},{"html_id":"modified_by_id:String|Nil-instance-method","name":"modified_by_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@modified_by_id"}},{"html_id":"modified_by_id=(modified_by_id:String|Nil)-instance-method","name":"modified_by_id=","abstract":false,"args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"args_string":"(modified_by_id : String | Nil)","args_html":"(modified_by_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id=","args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@modified_by_id = modified_by_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L278"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L278"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id","return_type":"String","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"args_string":"(parent_id : String)","args_html":"(parent_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"schema_id:String|Nil-instance-method","name":"schema_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id","return_type":"String | ::Nil","visibility":"Public","body":"@schema_id"}},{"html_id":"schema_id=(schema_id:String|Nil)-instance-method","name":"schema_id=","abstract":false,"args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"args_string":"(schema_id : String | Nil)","args_html":"(schema_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id=","args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@schema_id = schema_id"}}]},{"html_id":"drivers/Place/TemplateMailer/MetadataTemplateFields","path":"Place/TemplateMailer/MetadataTemplateFields.html","kind":"struct","full_name":"Place::TemplateMailer::MetadataTemplateFields","name":"MetadataTemplateFields","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L287"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(module_name:String,name:String,description:String|Nil=nil,fields:Array(NamedTuple(name:String,description:String))=[]ofNamedTuple(name:String,description:String))-class-method","name":"new","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","args_html":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","location":{"filename":"src/place/template_mailer.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L295"},"def":{"name":"new","args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_name, name, description, fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L288"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L292"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L292"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"fields:Array(NamedTuple(name:String,description:String))-instance-method","name":"fields","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L293"},"def":{"name":"fields","return_type":"Array(NamedTuple(name: String, description: String))","visibility":"Public","body":"@fields"}},{"html_id":"fields=(fields:Array(NamedTuple(name:String,description:String)))-instance-method","name":"fields=","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(fields : Array(NamedTuple(name: String, description: String)))","args_html":"(fields : Array(NamedTuple(name: String, description: String)))","location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L293"},"def":{"name":"fields=","args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"@fields = fields"}},{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L290"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"module_name=(module_name:String)-instance-method","name":"module_name=","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"args_string":"(module_name : String)","args_html":"(module_name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L290"},"def":{"name":"module_name=","args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"visibility":"Public","body":"@module_name = module_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L291"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L291"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/TemplateMailer/Template","path":"Place/TemplateMailer/Template.html","kind":"alias","full_name":"Place::TemplateMailer::Template","name":"Template","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Int64 | String)","aliased_html":"Hash(String, Int64 | String)","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}},{"html_id":"drivers/Place/TemplateMailer/TemplateCache","path":"Place/TemplateMailer/TemplateCache.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateCache","name":"TemplateCache","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L273"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int64, Array(Hash(String, Int64 | String))))","aliased_html":"Hash(String, {Int64, Array(Hash(String, Int64 | String))})","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"doc":" zone_id, timeout, templates","summary":"

zone_id, timeout, templates

"},{"html_id":"drivers/Place/TemplateMailer/TemplateFields","path":"Place/TemplateMailer/TemplateFields.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateFields","name":"TemplateFields","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(trigger: Tuple(String, String), name: String, description: String | Nil, fields: Array(NamedTuple(name: String, description: String)))","aliased_html":"{trigger: {String, String}, name: String, description: String?, fields: Array({name: String, description: String})}","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}}]},{"html_id":"drivers/Place/TODOs","path":"Place/TODOs.html","kind":"class","full_name":"Place::TODOs","name":"TODOs","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/todo_list.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_task(description:String)-instance-method","name":"add_task","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/llm/todo_list.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L27"},"def":{"name":"add_task","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"task = {complete: false, task: description}\n@todos << task\ntask\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L17"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"\"manages the list of tasks a user needs to complete throughout the day\""}},{"html_id":"complete_task(index:Int32)-instance-method","name":"complete_task","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32)","args_html":"(index : Int32)","location":{"filename":"src/place/llm/todo_list.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L34"},"def":{"name":"complete_task","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"task = @todos[index]\n@todos[index] = {complete: true, task: task[:task]}\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{list_tasks: \"returns the list of tasks and their current status\", add_task: \"adds a new task to the list\", complete_task: \"marks a task as completed\"}"}},{"html_id":"list_tasks:Array({complete:Bool,task:String})-instance-method","name":"list_tasks","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L22"},"def":{"name":"list_tasks","visibility":"Public","body":"@todos"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}}]},{"html_id":"drivers/Place/TransportAdaptor","path":"Place/TransportAdaptor.html","kind":"class","full_name":"Place::TransportAdaptor","name":"TransportAdaptor","abstract":false,"superclass":{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},"ancestors":[{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(driver:PlaceOS::Driver::Transport,queue:PlaceOS::Driver::Queue)-class-method","name":"new","abstract":false,"args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"args_string":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","args_html":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L4"},"def":{"name":"new","args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(driver, queue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"close!:Nil-instance-method","name":"close!","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L11"},"def":{"name":"close!","return_type":"Nil","visibility":"Public","body":"@driver.disconnect"}},{"html_id":"closed?:Bool-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L15"},"def":{"name":"closed?","return_type":"Bool","visibility":"Public","body":"!@queue.online"}},{"html_id":"process(data:Bytes)-instance-method","name":"process","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L23"},"def":{"name":"process","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"(@tokenizer.extract(data)).each do |bytes|\n spawn do\n @on_message.try(&.call(bytes))\n end\nend"}},{"html_id":"send(message):Nil-instance-method","name":"send","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message) : Nil","args_html":"(message) : Nil","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L19"},"def":{"name":"send","args":[{"name":"message","external_name":"message","restriction":""}],"return_type":"Nil","visibility":"Public","body":"@driver.send(message)"}}]},{"html_id":"drivers/Place/UserGroupMappings","path":"Place/UserGroupMappings.html","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_user(id:String):Nil-instance-method","name":"check_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/user_group_mappings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L88"},"def":{"name":"check_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"checking groups of: #{id}\"\nend\nuser_json = (staff_api.user(id)).get\nsync_user(user_json)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L48"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"auth/login\") do |_subscription, payload|\n new_user_login(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@group_mappings = (setting?(Hash(String, Mapping), :group_mappings)) || ({} of String => Mapping)\n@group_prefixes = (setting?(Hash(String, Prefix), :group_prefix)) || ({} of String => Prefix)\n@group_prefixes = @group_prefixes.transform_keys(&.downcase)\n@authority_id = (setting?(String, :authority_id)) || \"authority-12345\"\n"}},{"html_id":"sync_all_users-instance-method","name":"sync_all_users","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L134"},"def":{"name":"sync_all_users","visibility":"Public","body":"begin\n if @syncing\n return \"currently syncing\"\n end\n @syncing = true\n limit = 100\n offset = 0\n issues_with = [] of String\n loop do\n users = staff_api.query_users(limit: limit, offset: offset, authority_id: @authority_id).get.as_a\n logger.debug do\n \"syncing users #{offset}->#{offset + limit}...\"\n end\n users.each do |user|\n begin\n sync_user(user)\n sleep(50.milliseconds)\n rescue error\n issues_with << user[\"email\"].as_s\n end\n end\n if users.size < limit\n break\n end\n offset = offset + limit\n end\n logger.debug do\n \"sync complete! issues with #{issues_with.size}:\\n#{issues_with}\"\n end\n issues_with\nensure\n @syncing = false\nend"}}],"types":[{"html_id":"drivers/Place/UserGroupMappings/Mapping","path":"Place/UserGroupMappings/Mapping.html","kind":"alias","full_name":"Place::UserGroupMappings::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(place_id: String)","aliased_html":"{place_id: String}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/Prefix","path":"Place/UserGroupMappings/Prefix.html","kind":"alias","full_name":"Place::UserGroupMappings::Prefix","name":"Prefix","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(strip_prefix: Bool | Nil, place_id: String | Nil)","aliased_html":"{strip_prefix: Bool?, place_id: String?}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/UserLogin","path":"Place/UserGroupMappings/UserLogin.html","kind":"class","full_name":"Place::UserGroupMappings::UserLogin","name":"UserLogin","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/user_group_mappings.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"provider:String-instance-method","name":"provider","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider","return_type":"String","visibility":"Public","body":"@provider"}},{"html_id":"provider=(provider:String)-instance-method","name":"provider=","abstract":false,"args":[{"name":"provider","external_name":"provider","restriction":"String"}],"args_string":"(provider : String)","args_html":"(provider : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider=","args":[{"name":"provider","external_name":"provider","restriction":"String"}],"visibility":"Public","body":"@provider = provider"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]}]},{"html_id":"drivers/Place/VisitorMailer","path":"Place/VisitorMailer.html","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:ZoneDetails-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L91"},"def":{"name":"building_zone","return_type":"ZoneDetails","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (find_building(control_system_zone_list))\nelse\n __temp_1\nend"}},{"html_id":"control_system_zone_list-instance-method","name":"control_system_zone_list","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L159"},"def":{"name":"control_system_zone_list","visibility":"Public","body":"config.control_system.not_nil!.zones"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L674"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L54"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L58"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/guest/attending\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/checkin\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_accepted\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_declined\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L118"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting?(Bool, :debug)) || true\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@send_reminders = (setting?(String, :send_reminders)).presence\n@reminder_template = (setting?(String, :reminder_template)) || \"visitor\"\n@event_template = (setting?(String, :event_template)) || \"event\"\n@booking_template = (setting?(String, :booking_template)) || \"booking\"\n@notify_checkin_template = (setting?(String, :notify_checkin_template)) || \"notify_checkin\"\n@notify_induction_accepted_template = (setting?(String, :induction_accepted)) || \"induction_accepted\"\n@notify_induction_declined_template = (setting?(String, :induction_declined)) || \"induction_declined\"\n@group_event_template = (setting?(String, :group_event_template)) || \"group_event\"\n@disable_qr_code = (setting?(Bool, :disable_qr_code)) || false\n@determine_host_name_using = (setting?(String, :determine_host_name_using)) || \"calendar-driver\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@host_domain_filter = (setting?(Array(String), :host_domain_filter)) || ([] of String)\n@disable_event_visitors = (setting?(Bool, :disable_event_visitors)) || false\n@invite_zone_tag = (setting?(String, :invite_zone_tag)) || \"building\"\n@is_parent_zone = (setting?(Bool, :is_campus)) || false\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\n@booking_space_name = (setting?(String, :booking_space_name)).presence || \"Client Floor\"\nzones = config.control_system.not_nil!.zones\nschedule.clear\nif reminders = @send_reminders\n schedule.cron(reminders, @time_zone) do\n send_reminder_emails\n end\nend\nspawn do\n ensure_building_zone(zones)\nend\n"}},{"html_id":"parent_zone_ids:Array(String)-instance-method","name":"parent_zone_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L95"},"def":{"name":"parent_zone_ids","return_type":"Array(String)","visibility":"Public","body":"@parent_zone_ids"}},{"html_id":"send_checkedin_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64)-instance-method","name":"send_checkedin_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L362"},"def":{"name":"send_checkedin_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format)})\n"}},{"html_id":"send_induction_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,induction_status:Induction)-instance-method","name":"send_induction_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L390"},"def":{"name":"send_induction_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format), induction_status: induction_status.to_s})\n"}},{"html_id":"send_reminder_emails-instance-method","name":"send_reminder_emails","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L561"},"def":{"name":"send_reminder_emails","visibility":"Public","body":"now = 1.hour.ago.to_unix\nlater = 12.hours.from_now.to_unix\nguests = staff_api.query_guests(period_start: now, period_end: later, zones: {building_zone.id}).get.as_a\nguests.uniq! do |g|\n g[\"email\"].as_s.downcase\nend\nguests.each do |guest|\n begin\n if event = guest[\"event\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, event[\"host\"].as_s, event[\"title\"].as_s, event[\"event_start\"].as_i64, (event.dig(\"system\", \"id\")).as_s, event[\"id\"].as_s, ((event.dig?(\"system\", \"display_name\")) || (event.dig(\"system\", \"name\"))).as_s, event_end: event[\"event_end\"].as_i64)\n else\n if booking = guest[\"booking\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, booking[\"user_email\"].as_s, booking[\"title\"].as_s?, booking[\"booking_start\"].as_i64, booking[\"asset_id\"].as_s, booking[\"id\"].as_i64.to_s, @booking_space_name, event_end: booking[\"booking_end\"].as_i64)\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to send reminder email to #{guest[\"email\"]}\"\n end\n end\nend\n"}},{"html_id":"send_visitor_qr_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,resource_id:String,event_id:String,area_name:String,event_end:Int64|Nil=nil)-instance-method","name":"send_visitor_qr_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L490"},"def":{"name":"send_visitor_qr_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nattach = if @disable_qr_code\n [] of NamedTuple(file_name: String, content: String, content_id: String)\nelse\n qr_png = mailer.generate_png_qrcode(text: \"VISIT:#{visitor_email},#{resource_id},#{event_id},#{host_email}\", size: 256).get.as_s\n [{file_name: \"qr.png\", content: qr_png, content_id: visitor_email}]\nend\nnetwork_username = network_password = \"\"\nif @send_network_credentials\n network_username, network_password = update_network_user_password(visitor_email, generate_password(length: @network_password_length, exclude: @network_password_exclude, minimum_lowercase: @network_password_minimum_lowercase, minimum_uppercase: @network_password_minimum_uppercase, minimum_numbers: @network_password_minimum_numbers, minimum_symbols: @network_password_minimum_symbols), @network_group_ids)\nend\nevent_time = if (end_timestamp = event_end) && (((Time.unix(end_timestamp)) - (Time.unix(event_start))) == 24.hours)\n \"all day\"\nelse\n local_start_time.to_s(@time_format)\nend\nmailer.send_template(visitor_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, room_name: area_name, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: event_time, network_username: network_username, network_password: network_password}, attach)\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L419"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"visitor_email\", description: \"Email address of the visiting guest\"}, {name: \"visitor_name\", description: \"Full name of the visiting guest\"}, {name: \"host_name\", description: \"Name of the person hosting the visitor\"}, {name: \"host_email\", description: \"Email address of the host\"}, {name: \"building_name\", description: \"Name of the building where the visit occurs\"}, {name: \"event_title\", description: \"Title or purpose of the visit\"}, {name: \"event_start\", description: \"Start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the visit (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"event_time\", description: \"Time of the visit (or 'all day' for 24-hour events)\"}]\ninvitation_fields = common_fields + [{name: \"room_name\", description: \"Name of the room or area being visited\"}, {name: \"network_username\", description: \"Network access username (if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated network access password (if network credentials enabled)\"}]\ninduction_fields = common_fields + [{name: \"induction_status\", description: \"Status of the induction (e.g., accepted or declined)\"}]\n[TemplateFields.new(trigger: {\"visitor_invited\", @reminder_template}, name: \"Visitor invited\", description: \"Reminder email for upcoming visitor appointments\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @event_template}, name: \"Visitor invited to event\", description: \"Initial invitation for a visitor attending a calendar event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @booking_template}, name: \"Visitor invited to booking\", description: \"Initial invitation for a visitor with a space booking\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @group_event_template}, name: \"Visitor invited to group event booking\", description: \"Initial invitation for a visitor attending a group event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_checkin_template}, name: \"Visitor check in notification\", description: \"Notification to host when their visitor checks in\", fields: common_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_accepted_template}, name: \"Visitor induction accepted notification\", description: \"Notification to host when their visitor accepts the induction\", fields: induction_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_declined_template}, name: \"Visitor induction declined notification\", description: \"Notification to host when their visitor declines the induction\", fields: induction_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L663"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","path":"Place/VisitorMailer/BookingGuest.html","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L233"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L234"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L239"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}}]},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","path":"Place/VisitorMailer/BookingInduction.html","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L253"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L254"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L261"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"induction:Induction-instance-method","name":"induction","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction","return_type":"Induction","visibility":"Public","body":"@induction"}},{"html_id":"induction=(induction:Induction)-instance-method","name":"induction=","abstract":false,"args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"args_string":"(induction : Induction)","args_html":"(induction : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction=","args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"visibility":"Public","body":"@induction = induction"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_ids:Array(String)-instance-method","name":"resource_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids","return_type":"Array(String)","visibility":"Public","body":"@resource_ids"}},{"html_id":"resource_ids=(resource_ids:Array(String))-instance-method","name":"resource_ids=","abstract":false,"args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"args_string":"(resource_ids : Array(String))","args_html":"(resource_ids : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids=","args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@resource_ids = resource_ids"}}]},{"html_id":"drivers/Place/VisitorMailer/EventGuest","path":"Place/VisitorMailer/EventGuest.html","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L228"},"def":{"name":"resource_id","visibility":"Public","body":"system_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","path":"Place/VisitorMailer/GuestCheckin.html","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L244"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L245"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","path":"Place/VisitorMailer/GuestNotification.html","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L193"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest"},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction"},{"html_id":"drivers/Place/VisitorMailer/EventGuest","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest"},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"action\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'action' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'action'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"booking_created\"\n BookingGuest.from_json(json)\nwhen \"booking_updated\"\n BookingGuest.from_json(json)\nwhen \"meeting_created\"\n EventGuest.from_json(json)\nwhen \"meeting_update\"\n EventGuest.from_json(json)\nwhen \"checkin\"\n GuestCheckin.from_json(json)\nwhen \"induction_accepted\"\n BookingInduction.from_json(json)\nwhen \"induction_declined\"\n BookingInduction.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'action' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L206"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L206"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"attendee_email:String-instance-method","name":"attendee_email","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email","return_type":"String","visibility":"Public","body":"@attendee_email"}},{"html_id":"attendee_email=(attendee_email:String)-instance-method","name":"attendee_email=","abstract":false,"args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"args_string":"(attendee_email : String)","args_html":"(attendee_email : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email=","args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"visibility":"Public","body":"@attendee_email = attendee_email"}},{"html_id":"attendee_name:String|Nil-instance-method","name":"attendee_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name","return_type":"String | ::Nil","visibility":"Public","body":"@attendee_name"}},{"html_id":"attendee_name=(attendee_name:String|Nil)-instance-method","name":"attendee_name=","abstract":false,"args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"args_string":"(attendee_name : String | Nil)","args_html":"(attendee_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name=","args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attendee_name = attendee_name"}},{"html_id":"checkin:Bool|Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin","return_type":"Bool | ::Nil","visibility":"Public","body":"@checkin"}},{"html_id":"checkin=(checkin:Bool|Nil)-instance-method","name":"checkin=","abstract":false,"args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"args_string":"(checkin : Bool | Nil)","args_html":"(checkin : Bool | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin=","args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checkin = checkin"}},{"html_id":"event_starting:Int64-instance-method","name":"event_starting","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting","return_type":"Int64","visibility":"Public","body":"@event_starting"}},{"html_id":"event_starting=(event_starting:Int64)-instance-method","name":"event_starting=","abstract":false,"args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"args_string":"(event_starting : Int64)","args_html":"(event_starting : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting=","args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"visibility":"Public","body":"@event_starting = event_starting"}},{"html_id":"event_summary:String-instance-method","name":"event_summary","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary","return_type":"String","visibility":"Public","body":"@event_summary"}},{"html_id":"event_summary=(event_summary:String)-instance-method","name":"event_summary=","abstract":false,"args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"args_string":"(event_summary : String)","args_html":"(event_summary : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary=","args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"visibility":"Public","body":"@event_summary = event_summary"}},{"html_id":"ext_data:Hash(String,JSON::Any)|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:Hash(String,JSON::Any)|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(ext_data : Hash(String, JSON::Any) | Nil)","args_html":"(ext_data : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L213"},"def":{"name":"host","return_type":"String","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String"}],"args_string":"(host : String)","args_html":"(host : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L213"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String"}],"visibility":"Public","body":"@host = host"}},{"html_id":"zones:Array(String)|Nil-instance-method","name":"zones","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String)|Nil)-instance-method","name":"zones=","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"args_string":"(zones : Array(String) | Nil)","args_html":"(zones : Array(String) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/VisitorMailer/Induction","path":"Place/VisitorMailer/Induction.html","kind":"enum","full_name":"Place::VisitorMailer::Induction","name":"Induction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L187"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TENTATIVE","name":"TENTATIVE","value":"0"},{"id":"ACCEPTED","name":"ACCEPTED","value":"1"},{"id":"DECLINED","name":"DECLINED","value":"2"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"instance_methods":[{"html_id":"accepted?-instance-method","name":"accepted?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L189"},"def":{"name":"accepted?","visibility":"Public","body":"self == ACCEPTED"}},{"html_id":"declined?-instance-method","name":"declined?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L190"},"def":{"name":"declined?","visibility":"Public","body":"self == DECLINED"}},{"html_id":"tentative?-instance-method","name":"tentative?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L188"},"def":{"name":"tentative?","visibility":"Public","body":"self == TENTATIVE"}}]},{"html_id":"drivers/Place/VisitorMailer/SystemDetails","path":"Place/VisitorMailer/SystemDetails.html","kind":"class","full_name":"Place::VisitorMailer::SystemDetails","name":"SystemDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":622,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L622"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":623,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L623"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L625"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L625"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String|Nil)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil)","args_html":"(map_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L626"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L626"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/VisitorMailer/ZoneDetails","path":"Place/VisitorMailer/ZoneDetails.html","kind":"class","full_name":"Place::VisitorMailer::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":611,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L611"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":612,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L612"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L614"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L614"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L617"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L617"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L615"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L615"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Place/Workplace","path":"Place/Workplace.html","kind":"class","full_name":"Place::Workplace","name":"Workplace","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"all_levels:Array(Zone)-instance-method","name":"all_levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L93"},"def":{"name":"all_levels","return_type":"Array(Zone)","visibility":"Public","body":"if (__temp_1 = @all_levels).nil?\n @all_levels = ([building] + (Array(Zone).from_json(staff_api.zones(parent: building.id, tags: {\"level\"}).get.to_json)).sort_by(&.name))\nelse\n __temp_1\nend"}},{"html_id":"book_on(booking_type:String,asset_id:String,level_id:String,date:Time,number_of_days:Int32=1)-instance-method","name":"book_on","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L215"},"def":{"name":"book_on","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking on #{booking_type}, asset #{asset_id} on level #{level_id}, date #{date} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\nnow = (date.in(timezone)).at_beginning_of_day\ncurrent_time = Time.local(timezone)\nif current_time < now || (current_time - now) < 18.hours\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (0...number_of_days).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{now.day_of_week}, #{now.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"book_relative(booking_type:String,asset_id:String,level_id:String,day_offset:Int32=0,number_of_days:Int32=1)-instance-method","name":"book_relative","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L161"},"def":{"name":"book_relative","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking relative #{booking_type}, asset #{asset_id} on level #{level_id}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 18)\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L464"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel_bookings(booking_ids:Array(Int64))-instance-method","name":"cancel_bookings","abstract":false,"args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"args_string":"(booking_ids : Array(Int64))","args_html":"(booking_ids : Array(Int64))","location":{"filename":"src/place/llm/workplace.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L267"},"def":{"name":"cancel_bookings","args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"visibility":"Public","body":"logger.debug do\n \"cancel bookings #{booking_ids}\"\nend\nbooking_ids.each do |booking_id|\n booking = (staff_api.get_booking(booking_id)).get\n user_id = invoked_by_user_id\n me = current_user\n if (user_id == booking[\"user_id\"]?.try(&.as_s)) || (me.email.downcase.in?({booking[\"user_email\"].as_s, booking[\"booked_by_email\"].as_s}))\n else\n raise(\"can only cancel bookings owned by #{me.email} - this booking is owned by #{booking[\"user_email\"]}\")\n end\n staff_api.booking_delete(booking_id, \"chatgpt\")\nend\n\"bookings have been removed\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L31"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"functions for listing building levels to obtain level names and level ids\\n\"\n str << \"find meeting rooms, filtering by capacity and or level id\\n\"\n str << \"my current desk, car parking and guest visitor bookings\\n\"\n str << \"Note: when booking a meeting room, preference one on the same level or closest level to my desk booking, if I have one, unless I specify a specific level. Also try to pick a room with an appropriate capacity.\\n\"\n str << \"once candidate meeting rooms have been found, you can include the list of resource emails when getting schedules to see which rooms are available\\n\"\n str << \"this capability also supports managing desk bookings and inviting visitors to the building\\n\"\n str << \"please cancel any bookings made on the incorrect day\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L448"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"desks(level_id:String,day_offset:Int32=0,date:Time|Nil=nil,feature:String|Nil=nil)-instance-method","name":"desks","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"args_string":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","args_html":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L116"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing desks on level #{level_id}, day offset #{day_offset}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nall_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\nif all_desks\nelse\n raise(\"no bookable desks on this level, please try another.\")\nend\ndesks = Array(Desk).from_json(all_desks.to_json)\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nme = current_user\nbookings = staff_api.query_bookings(type: \"desk\", period_start: starting.to_unix, period_end: ending.to_unix, zones: {level_id}).get.as_a\nbookings = bookings.map() do |__arg1|\n __arg1[\"asset_id\"].as_s\nend\nfeature = feature.try(&.downcase)\ndesks.reject! do |desk|\n if desk.id.in?(bookings)\n next true\n end\n if feature && !(desk.features.map!(&.downcase).includes?(feature))\n next true\n end\n if !desk.groups.empty?\n (desk.groups & me.groups).empty?\n end\nend\nlogger.debug do\n \"found #{desks.size} available desks\"\nend\ndesks.sample(5)\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_bookings: \"returns desks, car parking spaces and visitors I have booked. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", levels: \"returns the building details and list of levels. Use this to obtain level_ids\", meeting_rooms: \"returns the list of meeting rooms in the building filtering by capacity or level\", desks: \"returns the list of desks available for booking on the level and day specified. If the level has desk features then you can also filter by features.\", book_relative: \"books an asset, such as a desk or car parking space, for the number of days specified, starting on the day offset. For desk bookings use booking_type: desk\", book_on: \"books an asset, such as a desk or car parking space, for the number of days specified, the start date must be in ISO 8601 format with the correct timezone. For desk bookings use booking_type: desk\", cancel_bookings: \"cancels the given booking ids\", invite: \"book a visitor to the building\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L489"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg12|\n __arg12[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"invite(visitor_name:String,visitor_email:String,day_offset:Int32=0,date:Time|Nil=nil,number_of_days:Int32=1)-instance-method","name":"invite","abstract":false,"args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","args_html":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L282"},"def":{"name":"invite","args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"inviting visitor to the building #{visitor_name}: #{visitor_email}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.first\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif date\n desired_date = (date.in(timezone)).at_beginning_of_day\n day_offset = (desired_date - now).total_days.round_away.to_i\nend\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 16)\nelse\n raise(\"booking in the past is not permitted\")\nend\nvisitor_email = visitor_email.downcase\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: \"visitor\", asset_id: visitor_email, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level.id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\", attendees: [{name: visitor_name, email: visitor_email}])\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"invited #{visitor_email} to the office on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"levels:Array(Zone)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L71"},"def":{"name":"levels","return_type":"Array(Zone)","visibility":"Public","body":"logger.debug do\n \"getting list of levels\"\nend\nl = all_levels\nl.each do |level|\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n desks = all_desks.as_a\n level.bookable_desk_count = desks.size\n features = Set(String).new\n desks.each do |desk|\n if feat = desk[\"features\"]?\n feat.as_a.each do |f|\n features << f.as_s.downcase\n end\n end\n end\n if features.empty?\n else\n level.desk_features = features.to_a\n end\n else\n level.bookable_desk_count = 0\n end\nend\nl\n"}},{"html_id":"meeting_rooms(minimum_capacity:Int32=1,level_id:String|Nil=nil)-instance-method","name":"meeting_rooms","abstract":false,"args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","args_html":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L98"},"def":{"name":"meeting_rooms","args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing meeting rooms on level #{level_id} with capacity #{minimum_capacity}\"\nend\nif level_id\n level = levels.find do |l|\n l.id == level_id\n end\n if level\n else\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\n end\nend\nzone_id = level_id || building.id\nstaff_api.systems(zone_id: zone_id, capacity: minimum_capacity, bookable: true).get.as_a.compact_map do |s|\n to_friendly_system(s)\nend\n"}},{"html_id":"my_bookings(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_bookings","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L44"},"def":{"name":"my_bookings","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"me = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\n logger.debug do\n \"listing bookings for #{current_user.email}, on day #{starting}\"\n end\nelse\n logger.debug do\n \"listing bookings for #{current_user.email}, day offset #{day_offset}\"\n end\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\n{\"desk\", \"visitor\", \"parking\", \"asset-request\"}.flat_map do |booking_type|\n staff_api.query_bookings(type: booking_type, period_start: starting.to_unix, period_end: ending.to_unix, zones: {building.id}, user: invoked_by_user_id, email: me.email).get.as_a.compact_map do |b|\n to_friendly_booking(b)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L452"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Workplace/Booking","path":"Place/Workplace/Booking.html","kind":"struct","full_name":"Place::Workplace::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,book:JSON::Any,timezone:Time::Location)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(level : Zone, book : JSON::Any, timezone : Time::Location)","args_html":"(level : Zone, book : JSON::Any, timezone : Time::Location)","location":{"filename":"src/place/llm/workplace.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L425"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, book, timezone)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L413"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L412"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L423"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L410"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":408,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L408"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L417"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L418"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L409"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L415"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_id:String|Nil-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L414"},"def":{"name":"user_id","return_type":"String | ::Nil","visibility":"Public","body":"@user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L416"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]},{"html_id":"drivers/Place/Workplace/ChildMetadata","path":"Place/Workplace/ChildMetadata.html","kind":"alias","full_name":"Place::Workplace::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/Desk","path":"Place/Workplace/Desk.html","kind":"struct","full_name":"Place::Workplace::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L339"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L340"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L344"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L343"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L342"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Workplace/Metadata","path":"Place/Workplace/Metadata.html","kind":"alias","full_name":"Place::Workplace::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L112"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/PlaceZone","path":"Place/Workplace/PlaceZone.html","kind":"alias","full_name":"Place::Workplace::PlaceZone","name":"PlaceZone","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/System","path":"Place/Workplace/System.html","kind":"struct","full_name":"Place::Workplace::System","name":"System","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L361"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,system:JSON::Any)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"args_string":"(level : Zone, system : JSON::Any)","args_html":"(level : Zone, system : JSON::Any)","location":{"filename":"src/place/llm/workplace.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L376"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, system)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L362"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L368"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L367"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L366"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L364"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L370"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L371"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L372"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L365"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/User","path":"Place/Workplace/User.html","kind":"struct","full_name":"Place::Workplace::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L456"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L457"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L460"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L461"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L459"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/Zone","path":"Place/Workplace/Zone.html","kind":"class","full_name":"Place::Workplace::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L466"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L467"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookable_desk_count:Int32|Nil-instance-method","name":"bookable_desk_count","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@bookable_desk_count"}},{"html_id":"bookable_desk_count=(bookable_desk_count:Int32|Nil)-instance-method","name":"bookable_desk_count=","abstract":false,"args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"args_string":"(bookable_desk_count : Int32 | Nil)","args_html":"(bookable_desk_count : Int32 | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count=","args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@bookable_desk_count = bookable_desk_count"}},{"html_id":"desk_features:Array(String)|Nil-instance-method","name":"desk_features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@desk_features"}},{"html_id":"desk_features=(desk_features:Array(String)|Nil)-instance-method","name":"desk_features=","abstract":false,"args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"args_string":"(desk_features : Array(String) | Nil)","args_html":"(desk_features : Array(String) | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features=","args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@desk_features = desk_features"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L471"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":469,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L469"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":470,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L470"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":472,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L472"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L481"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L478"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/WorkplaceSubscription","path":"Place/WorkplaceSubscription.html","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription","abstract":false,"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"including_types":[{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L94"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}},{"html_id":"subscription_on_crud(notification:NotifyEvent):Nil-instance-method","name":"subscription_on_crud","abstract":true,"args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"args_string":"(notification : NotifyEvent) : Nil","args_html":"(notification : NotifyEvent) : Nil","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L30"},"def":{"name":"subscription_on_crud","args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_on_missed:Nil-instance-method","name":"subscription_on_missed","abstract":true,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L31"},"def":{"name":"subscription_on_missed","return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_resource(service_name:ServiceName):String-instance-method","name":"subscription_resource","doc":"should return the resource URI for monitoring, for example:\n\ncase service_name\nin .google?\n resource = \"/calendars/#{calendar_id}/events\"\nin .office365?\n resource = \"/users/#{calendar_id}/events\"","summary":"

should return the resource URI for monitoring, for example:

","abstract":true,"args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"args_string":"(service_name : ServiceName) : String","args_html":"(service_name : ServiceName) : String","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L45"},"def":{"name":"subscription_resource","args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"return_type":"String","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/WorkplaceSubscription/NotifyEvent","path":"Place/WorkplaceSubscription/NotifyEvent.html","kind":"struct","full_name":"Place::WorkplaceSubscription::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L24"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L20"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L27"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L21"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L22"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L23"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/NotifyType","path":"Place/WorkplaceSubscription/NotifyType.html","kind":"enum","full_name":"Place::WorkplaceSubscription::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L7"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L9"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L13"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L14"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L12"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L8"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/ServiceName","path":"Place/WorkplaceSubscription/ServiceName.html","kind":"enum","full_name":"Place::WorkplaceSubscription::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L33"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L34"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L35"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/WorkspaceAPI","path":"Place/WorkspaceAPI.html","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/google/workspace_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/google/workspace_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Planar","path":"Planar.html","kind":"module","full_name":"Planar","name":"Planar","abstract":false,"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Planar/ClarityMatrix","path":"Planar/ClarityMatrix.html","kind":"class","full_name":"Planar::ClarityMatrix","name":"ClarityMatrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Planar","kind":"module","full_name":"Planar","name":"Planar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"build_date?-instance-method","name":"build_date?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L64"},"def":{"name":"build_date?","visibility":"Public","body":"send(\"ST A1 BUILD.DATE ? \\r\", wait: true)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"do_poll\nschedule.every(60.seconds) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L28"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L59"},"def":{"name":"do_poll","visibility":"Public","body":"power?\nif @power\n input_status?(priority: 0)\nend\n"}},{"html_id":"input_status?(**options)-instance-method","name":"input_status?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L55"},"def":{"name":"input_status?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op A1 slot.current ? \\r\", wait: true)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.tokenizer = Tokenizer.new(\"\\r\")\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L34"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power?.get\nif state && (@power == false)\n send(\"op ** display.power = on \\r\", name: \"power\", delay: 3.seconds)\n result = power?\n schedule.in(20.seconds) do\n recall(0)\n end\n result\nelse\n if !state && (@power == true)\n send(\"op ** display.power = off \\r\", name: \"power\", delay: 3.seconds)\n power?\n end\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L47"},"def":{"name":"power?","visibility":"Public","body":"send(\"op A1 display.power ? \\r\", wait: true, priority: 0)"}},{"html_id":"recall(preset:UInt32,**options)-instance-method","name":"recall","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"args_string":"(preset : UInt32, **options)","args_html":"(preset : UInt32, **options)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L51"},"def":{"name":"recall","args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op ** slot.recall (#{preset}) \\r\", **options, name: \"recall\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L68"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"sent: #{data}\"\nend\ndata = data.split('.')\ncomponent = data[0]\ndata = data[1].split('=')\nstatus = data[0].downcase.strip\nvalue = data[1].strip\ncase status\nwhen \"power\"\n self[:power] = @power = value == \"ON\"\n task.try(&.success(@power))\nwhen \"current\"\n input = value.to_i\n self[:input] = input\n task.try(&.success(input))\nwhen \"date\"\n task.try(&.success(value[1..-2]))\nelse\n task.try(&.success)\nend\n"}}]}]},{"html_id":"drivers/Point","path":"Point.html","kind":"struct","full_name":"Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L19"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"distance_to(point:Point)-instance-method","name":"distance_to","doc":"pythagoras","summary":"

pythagoras

","abstract":false,"args":[{"name":"point","external_name":"point","restriction":"Point"}],"args_string":"(point : Point)","args_html":"(point : Point)","location":{"filename":"src/place/area_polygon.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L26"},"def":{"name":"distance_to","args":[{"name":"point","external_name":"point","restriction":"Point"}],"visibility":"Public","body":"a = point.x - @x\nb = point.y - @y\nMath.sqrt((a * a) + (b * b))\n"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L22"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L22"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L23"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L23"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/PointGrab","path":"PointGrab.html","kind":"module","full_name":"PointGrab","name":"PointGrab","abstract":false,"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/PointGrab/CogniPoint","path":"PointGrab/CogniPoint.html","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/PointGrab","kind":"module","full_name":"PointGrab","name":"PointGrab"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area(site_id:String,building_id:String,floor_id:String,area_id:String)-instance-method","name":"area","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String, area_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String, area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L259"},"def":{"name":"area","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas/#{area_id}\", Area)"}},{"html_id":"areas(site_id:String,building_id:String,floor_id:String)-instance-method","name":"areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L253"},"def":{"name":"areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"areas = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas\", NamedTuple(areas: Array(Area)))\nareas[:areas]\n"}},{"html_id":"building(site_id:String,building_id:String)-instance-method","name":"building","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L164"},"def":{"name":"building","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}\", Building)"}},{"html_id":"building_areas(site_id:String,building_id:String)-instance-method","name":"building_areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L247"},"def":{"name":"building_areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/areas\", NamedTuple(floorsAreas: FloorAreas))\nfloors[:floorsAreas]\n"}},{"html_id":"buildings(site_id:String)-instance-method","name":"buildings","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L159"},"def":{"name":"buildings","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"buildings = get_request(\"/be/cp/v2/sites/#{site_id}/buildings\", NamedTuple(buildings: Array(Building)))\nbuildings[:buildings]\n"}},{"html_id":"customers-instance-method","name":"customers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L89"},"def":{"name":"customers","visibility":"Public","body":"customers = get_request(\"/be/cp/v2/customers\", NamedTuple(endCustomers: Array(Customer)))\ncustomers[:endCustomers]\n"}},{"html_id":"delete_subscription(id:String)-instance-method","name":"delete_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L338"},"def":{"name":"delete_subscription","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"token = get_token\n(delete(\"/be/cp/v2/telemetry/subscriptions/#{id}\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L34"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(site_id:String,building_id:String,floor_id:String)-instance-method","name":"floor","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L194"},"def":{"name":"floor","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}\", Floor)"}},{"html_id":"floors(site_id:String,building_id:String)-instance-method","name":"floors","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L189"},"def":{"name":"floors","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors\", NamedTuple(floors: Array(Building)))\nfloors[:floors]\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L42"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/be/cp/oauth2/token\", body: \"grant_type=client_credentials\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\", \"Authorization\" => \"Basic #{Base64.strict_encode(\"#{@user_id}:#{@app_key}\")}\"})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body.not_nil!)\n token = resp.token\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"handlers-instance-method","name":"handlers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L276"},"def":{"name":"handlers","visibility":"Public","body":"handlers = get_request(\"/be/cp/v2/resources/handlers\", NamedTuple(handlers: Array(Handler)))\nhandlers[:handlers]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@user_id = setting(String, :user_id)\n@app_key = setting(String, :app_key)\n"}},{"html_id":"site(site_id:String)-instance-method","name":"site","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L143"},"def":{"name":"site","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}\", Site)"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L138"},"def":{"name":"sites","visibility":"Public","body":"sites = get_request(\"/be/cp/v2/sites\", NamedTuple(sites: Array(Site)))\nsites[:sites]\n"}},{"html_id":"subscribe(handler_uri:String,auth_token:String=UUID.random.to_s,events:NotificationType=NotificationType::Counting)-instance-method","name":"subscribe","abstract":false,"args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"args_string":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","args_html":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L303"},"def":{"name":"subscribe","args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"visibility":"Public","body":"URI.parse(handler_uri)\ntoken = get_token\nresponse = post(\"/be/cp/v2/telemetry/subscriptions\", body: {subscriptionType: \"PUSH\", notificationType: events.to_s.upcase, endpoint: handler_uri, token: auth_token}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n Subscription.from_json(body.not_nil!)\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"subscriptions-instance-method","name":"subscriptions","doc":"provides access to the modules subscriptions tracker","summary":"

provides access to the modules subscriptions tracker

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L334"},"def":{"name":"subscriptions","visibility":"Public","body":"get_request(\"/be/cp/v2/telemetry/subscriptions\", Array(Subscription))"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L38"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"update_count(count_json:String)-instance-method","name":"update_count","abstract":false,"args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"args_string":"(count_json : String)","args_html":"(count_json : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L376"},"def":{"name":"update_count","args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"visibility":"Public","body":"count = CountUpdate.from_json(count_json)\nself[\"area_#{count.area_id}\"] = count.count\n"}},{"html_id":"update_subscription(id:String,started:Bool=true)-instance-method","name":"update_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"args_string":"(id : String, started : Bool = true)","args_html":"(id : String, started : Bool = true)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L348"},"def":{"name":"update_subscription","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"token = get_token\n(patch(\"/be/cp/v2/telemetry/subscriptions/#{id}\", body: {started: started}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}}],"macros":[{"html_id":"get_request(path,result_type)-macro","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"args_string":"(path, result_type)","args_html":"(path, result_type)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L65"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"visibility":"Public","body":" begin\n \n%token\n = get_token\n \n%response\n = get(\n{{ path }}\n, headers: \n{\n \"Accept\" => \"application/json\",\n \"Authorization\" => \n%token\n\n })\n\n if \n%response\n.success?\n \n{{ result_type }}\n.from_json(\n%response\n.body.not_nil!)\n \nelse\n \nexpire_token! if \n%response\n.status_code == 401\n raise \"unexpected response #{\n%response\n.status_code}\\n#{\n%response\n.body}\"\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area","path":"PointGrab/CogniPoint/Area.html","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L198"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L199"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"applications:Array(Application)-instance-method","name":"applications","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications","return_type":"Array(Application)","visibility":"Public","body":"@applications"}},{"html_id":"applications=(applications:Array(Application))-instance-method","name":"applications=","abstract":false,"args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"args_string":"(applications : Array(Application))","args_html":"(applications : Array(Application))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications=","args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"visibility":"Public","body":"@applications = applications"}},{"html_id":"center_x:Float64-instance-method","name":"center_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x","return_type":"Float64","visibility":"Public","body":"@center_x"}},{"html_id":"center_x=(center_x:Float64)-instance-method","name":"center_x=","abstract":false,"args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"args_string":"(center_x : Float64)","args_html":"(center_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x=","args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"visibility":"Public","body":"@center_x = center_x"}},{"html_id":"center_y:Float64-instance-method","name":"center_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y","return_type":"Float64","visibility":"Public","body":"@center_y"}},{"html_id":"center_y=(center_y:Float64)-instance-method","name":"center_y=","abstract":false,"args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"args_string":"(center_y : Float64)","args_html":"(center_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y=","args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"visibility":"Public","body":"@center_y = center_y"}},{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"device_ids=(device_ids:Array(String))-instance-method","name":"device_ids=","abstract":false,"args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"args_string":"(device_ids : Array(String))","args_html":"(device_ids : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids=","args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@device_ids = device_ids"}},{"html_id":"frequency:Int32-instance-method","name":"frequency","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency","return_type":"Int32","visibility":"Public","body":"@frequency"}},{"html_id":"frequency=(frequency:Int32)-instance-method","name":"frequency=","abstract":false,"args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"args_string":"(frequency : Int32)","args_html":"(frequency : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency=","args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"visibility":"Public","body":"@frequency = frequency"}},{"html_id":"geo_positions:Array(GeoPosition)|Nil-instance-method","name":"geo_positions","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions","return_type":"Array(GeoPosition) | ::Nil","visibility":"Public","body":"@geo_positions"}},{"html_id":"geo_positions=(geo_positions:Array(GeoPosition)|Nil)-instance-method","name":"geo_positions=","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"args_string":"(geo_positions : Array(GeoPosition) | Nil)","args_html":"(geo_positions : Array(GeoPosition) | Nil)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions=","args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"visibility":"Public","body":"@geo_positions = geo_positions"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"length=(length:Float64)-instance-method","name":"length=","abstract":false,"args":[{"name":"length","external_name":"length","restriction":"Float64"}],"args_string":"(length : Float64)","args_html":"(length : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length=","args":[{"name":"length","external_name":"length","restriction":"Float64"}],"visibility":"Public","body":"@length = length"}},{"html_id":"metric_positions:Array(MetricPositions)-instance-method","name":"metric_positions","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions","return_type":"Array(MetricPositions)","visibility":"Public","body":"@metric_positions"}},{"html_id":"metric_positions=(metric_positions:Array(MetricPositions))-instance-method","name":"metric_positions=","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"args_string":"(metric_positions : Array(MetricPositions))","args_html":"(metric_positions : Array(MetricPositions))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions=","args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"visibility":"Public","body":"@metric_positions = metric_positions"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"rotation:Int32-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation","return_type":"Int32","visibility":"Public","body":"@rotation"}},{"html_id":"rotation=(rotation:Int32)-instance-method","name":"rotation=","abstract":false,"args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"args_string":"(rotation : Int32)","args_html":"(rotation : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation=","args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"visibility":"Public","body":"@rotation = rotation"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area/Application","path":"PointGrab/CogniPoint/Area/Application.html","kind":"class","full_name":"PointGrab::CogniPoint::Area::Application","name":"Application","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Area","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_type:String-instance-method","name":"application_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type","return_type":"String","visibility":"Public","body":"@application_type"}},{"html_id":"application_type=(application_type:String)-instance-method","name":"application_type=","abstract":false,"args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"args_string":"(application_type : String)","args_html":"(application_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type=","args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"visibility":"Public","body":"@application_type = application_type"}},{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Building","path":"PointGrab/CogniPoint/Building.html","kind":"class","full_name":"PointGrab::CogniPoint::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L147"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L148"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Site::Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location","return_type":"Site::Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Site::Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"args_string":"(location : Site::Location)","args_html":"(location : Site::Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/CountUpdate","path":"PointGrab/CogniPoint/CountUpdate.html","kind":"class","full_name":"PointGrab::CogniPoint::CountUpdate","name":"CountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"doc":"TODO:: this data is posted to the subscription endpoint\nwe need to implement webhooks for this to work properly","summary":"

TODO : this data is posted to the subscription endpoint we need to implement webhooks for this to work properly

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"devices:Array(String)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices","return_type":"Array(String)","visibility":"Public","body":"@devices"}},{"html_id":"devices=(devices:Array(String))-instance-method","name":"devices=","abstract":false,"args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"args_string":"(devices : Array(String))","args_html":"(devices : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices=","args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"visibility":"Public","body":"@devices = devices"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}},{"html_id":"timestamp:UInt64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp","return_type":"UInt64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:UInt64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"args_string":"(timestamp : UInt64)","args_html":"(timestamp : UInt64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Customer","path":"PointGrab/CogniPoint/Customer.html","kind":"class","full_name":"PointGrab::CogniPoint::Customer","name":"Customer","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Floor","path":"PointGrab/CogniPoint/Floor.html","kind":"class","full_name":"PointGrab::CogniPoint::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_number:String-instance-method","name":"floor_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number","return_type":"String","visibility":"Public","body":"@floor_number"}},{"html_id":"floor_number=(floor_number:String)-instance-method","name":"floor_number=","abstract":false,"args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"args_string":"(floor_number : String)","args_html":"(floor_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number=","args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"visibility":"Public","body":"@floor_number = floor_number"}},{"html_id":"floor_plan_url:String-instance-method","name":"floor_plan_url","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url","return_type":"String","visibility":"Public","body":"@floor_plan_url"}},{"html_id":"floor_plan_url=(floor_plan_url:String)-instance-method","name":"floor_plan_url=","abstract":false,"args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"args_string":"(floor_plan_url : String)","args_html":"(floor_plan_url : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url=","args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"visibility":"Public","body":"@floor_plan_url = floor_plan_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length_distance:Float64-instance-method","name":"length_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance","return_type":"Float64","visibility":"Public","body":"@length_distance"}},{"html_id":"length_distance=(length_distance:Float64)-instance-method","name":"length_distance=","abstract":false,"args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"args_string":"(length_distance : Float64)","args_html":"(length_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance=","args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"visibility":"Public","body":"@length_distance = length_distance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"width_distance:Float64-instance-method","name":"width_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance","return_type":"Float64","visibility":"Public","body":"@width_distance"}},{"html_id":"width_distance=(width_distance:Float64)-instance-method","name":"width_distance=","abstract":false,"args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"args_string":"(width_distance : Float64)","args_html":"(width_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance=","args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"visibility":"Public","body":"@width_distance = width_distance"}}]},{"html_id":"drivers/PointGrab/CogniPoint/FloorAreas","path":"PointGrab/CogniPoint/FloorAreas.html","kind":"class","full_name":"PointGrab::CogniPoint::FloorAreas","name":"FloorAreas","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L239"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L240"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"areas:Array(Area)-instance-method","name":"areas","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas","return_type":"Array(Area)","visibility":"Public","body":"@areas"}},{"html_id":"areas=(areas:Array(Area))-instance-method","name":"areas=","abstract":false,"args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"args_string":"(areas : Array(Area))","args_html":"(areas : Array(Area))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas=","args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"visibility":"Public","body":"@areas = areas"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/GeoPosition","path":"PointGrab/CogniPoint/GeoPosition.html","kind":"class","full_name":"PointGrab::CogniPoint::GeoPosition","name":"GeoPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"latitude=(latitude:Float64)-instance-method","name":"latitude=","abstract":false,"args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"args_string":"(latitude : Float64)","args_html":"(latitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude=","args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"visibility":"Public","body":"@latitude = latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"longitude=(longitude:Float64)-instance-method","name":"longitude=","abstract":false,"args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"args_string":"(longitude : Float64)","args_html":"(longitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude=","args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"visibility":"Public","body":"@longitude = longitude"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Handler","path":"PointGrab/CogniPoint/Handler.html","kind":"class","full_name":"PointGrab::CogniPoint::Handler","name":"Handler","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L263"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L264"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_id:UInt32-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id","return_type":"UInt32","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:UInt32)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"args_string":"(app_id : UInt32)","args_html":"(app_id : UInt32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"end_point:String-instance-method","name":"end_point","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point","return_type":"String","visibility":"Public","body":"@end_point"}},{"html_id":"end_point=(end_point:String)-instance-method","name":"end_point=","abstract":false,"args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"args_string":"(end_point : String)","args_html":"(end_point : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point=","args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"visibility":"Public","body":"@end_point = end_point"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/PointGrab/CogniPoint/MetricPositions","path":"PointGrab/CogniPoint/MetricPositions.html","kind":"class","full_name":"PointGrab::CogniPoint::MetricPositions","name":"MetricPositions","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"pos_x:Float64-instance-method","name":"pos_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x","return_type":"Float64","visibility":"Public","body":"@pos_x"}},{"html_id":"pos_x=(pos_x:Float64)-instance-method","name":"pos_x=","abstract":false,"args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"args_string":"(pos_x : Float64)","args_html":"(pos_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x=","args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"visibility":"Public","body":"@pos_x = pos_x"}},{"html_id":"pos_y:Float64-instance-method","name":"pos_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y","return_type":"Float64","visibility":"Public","body":"@pos_y"}},{"html_id":"pos_y=(pos_y:Float64)-instance-method","name":"pos_y=","abstract":false,"args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"args_string":"(pos_y : Float64)","args_html":"(pos_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y=","args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"visibility":"Public","body":"@pos_y = pos_y"}}]},{"html_id":"drivers/PointGrab/CogniPoint/NotificationType","path":"PointGrab/CogniPoint/NotificationType.html","kind":"enum","full_name":"PointGrab::CogniPoint::NotificationType","name":"NotificationType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L298"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Counting","name":"Counting","value":"0"},{"id":"Traffic","name":"Traffic","value":"1"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"instance_methods":[{"html_id":"counting?-instance-method","name":"counting?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L299"},"def":{"name":"counting?","visibility":"Public","body":"self == Counting"}},{"html_id":"traffic?-instance-method","name":"traffic?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L300"},"def":{"name":"traffic?","visibility":"Public","body":"self == Traffic"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Site","path":"PointGrab/CogniPoint/Site.html","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"customer_id:String-instance-method","name":"customer_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id","return_type":"String","visibility":"Public","body":"@customer_id"}},{"html_id":"customer_id=(customer_id:String)-instance-method","name":"customer_id=","abstract":false,"args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"args_string":"(customer_id : String)","args_html":"(customer_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id=","args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"visibility":"Public","body":"@customer_id = customer_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Site/Location","path":"PointGrab/CogniPoint/Site/Location.html","kind":"class","full_name":"PointGrab::CogniPoint::Site::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Site","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"city=(city:String)-instance-method","name":"city=","abstract":false,"args":[{"name":"city","external_name":"city","restriction":"String"}],"args_string":"(city : String)","args_html":"(city : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city=","args":[{"name":"city","external_name":"city","restriction":"String"}],"visibility":"Public","body":"@city = city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"country=(country:String)-instance-method","name":"country=","abstract":false,"args":[{"name":"country","external_name":"country","restriction":"String"}],"args_string":"(country : String)","args_html":"(country : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country=","args":[{"name":"country","external_name":"country","restriction":"String"}],"visibility":"Public","body":"@country = country"}},{"html_id":"county:String-instance-method","name":"county","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county","return_type":"String","visibility":"Public","body":"@county"}},{"html_id":"county=(county:String)-instance-method","name":"county=","abstract":false,"args":[{"name":"county","external_name":"county","restriction":"String"}],"args_string":"(county : String)","args_html":"(county : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county=","args":[{"name":"county","external_name":"county","restriction":"String"}],"visibility":"Public","body":"@county = county"}},{"html_id":"geo_position:GeoPosition-instance-method","name":"geo_position","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position","return_type":"GeoPosition","visibility":"Public","body":"@geo_position"}},{"html_id":"geo_position=(geo_position:GeoPosition)-instance-method","name":"geo_position=","abstract":false,"args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"args_string":"(geo_position : GeoPosition)","args_html":"(geo_position : GeoPosition)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position=","args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"visibility":"Public","body":"@geo_position = geo_position"}},{"html_id":"house_number:String-instance-method","name":"house_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number","return_type":"String","visibility":"Public","body":"@house_number"}},{"html_id":"house_number=(house_number:String)-instance-method","name":"house_number=","abstract":false,"args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"args_string":"(house_number : String)","args_html":"(house_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number=","args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"visibility":"Public","body":"@house_number = house_number"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"state=(state:String)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"@state = state"}},{"html_id":"street:String-instance-method","name":"street","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street","return_type":"String","visibility":"Public","body":"@street"}},{"html_id":"street=(street:String)-instance-method","name":"street=","abstract":false,"args":[{"name":"street","external_name":"street","restriction":"String"}],"args_string":"(street : String)","args_html":"(street : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street=","args":[{"name":"street","external_name":"street","restriction":"String"}],"visibility":"Public","body":"@street = street"}},{"html_id":"zip:String-instance-method","name":"zip","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip","return_type":"String","visibility":"Public","body":"@zip"}},{"html_id":"zip=(zip:String)-instance-method","name":"zip=","abstract":false,"args":[{"name":"zip","external_name":"zip","restriction":"String"}],"args_string":"(zip : String)","args_html":"(zip : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip=","args":[{"name":"zip","external_name":"zip","restriction":"String"}],"visibility":"Public","body":"@zip = zip"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Subscription","path":"PointGrab/CogniPoint/Subscription.html","kind":"class","full_name":"PointGrab::CogniPoint::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"endpoint:String-instance-method","name":"endpoint","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint","return_type":"String","visibility":"Public","body":"@endpoint"}},{"html_id":"endpoint=(endpoint:String)-instance-method","name":"endpoint=","abstract":false,"args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"args_string":"(endpoint : String)","args_html":"(endpoint : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint=","args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"visibility":"Public","body":"@endpoint = endpoint"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"notification_type:String-instance-method","name":"notification_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type","return_type":"String","visibility":"Public","body":"@notification_type"}},{"html_id":"notification_type=(notification_type:String)-instance-method","name":"notification_type=","abstract":false,"args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"args_string":"(notification_type : String)","args_html":"(notification_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type=","args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"visibility":"Public","body":"@notification_type = notification_type"}},{"html_id":"started:Bool-instance-method","name":"started","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started","return_type":"Bool","visibility":"Public","body":"@started"}},{"html_id":"started=(started:Bool)-instance-method","name":"started=","abstract":false,"args":[{"name":"started","external_name":"started","restriction":"Bool"}],"args_string":"(started : Bool)","args_html":"(started : Bool)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started=","args":[{"name":"started","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"@started = started"}},{"html_id":"subscription_type:String-instance-method","name":"subscription_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type","return_type":"String","visibility":"Public","body":"@subscription_type"}},{"html_id":"subscription_type=(subscription_type:String)-instance-method","name":"subscription_type=","abstract":false,"args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"args_string":"(subscription_type : String)","args_html":"(subscription_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type=","args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"visibility":"Public","body":"@subscription_type = subscription_type"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}}]},{"html_id":"drivers/PointGrab/CogniPoint/TokenResponse","path":"PointGrab/CogniPoint/TokenResponse.html","kind":"class","full_name":"PointGrab::CogniPoint::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]}]},{"html_id":"drivers/Polygon","path":"Polygon.html","kind":"class","full_name":"Polygon","name":"Polygon","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(points:Array(Point))-class-method","name":"new","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/place/area_polygon.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L36"},"def":{"name":"new","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(points)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"contains(testx:Float64,testy:Float64)-instance-method","name":"contains","abstract":false,"args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"args_string":"(testx : Float64, testy : Float64)","args_html":"(testx : Float64, testy : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L54"},"def":{"name":"contains","args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"visibility":"Public","body":"if ((testx < @xmin || testx > @xmax) || testy < @ymin) || testy > @ymax\n return false\nend\ninside = false\nprevious_index = @points.size - 1\n@points.each_with_index do |point, index|\n previous = @points[previous_index]\n if ((point.y > testy) != (previous.y > testy)) && (testx < ((((previous.x - point.x) * (testy - point.y)) / (previous.y - point.y)) + point.x))\n inside = !inside\n end\n previous_index = index\nend\ninside\n"}},{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L48"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"xmax:Float64-instance-method","name":"xmax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L51"},"def":{"name":"xmax","return_type":"Float64","visibility":"Public","body":"@xmax"}},{"html_id":"xmin:Float64-instance-method","name":"xmin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L49"},"def":{"name":"xmin","return_type":"Float64","visibility":"Public","body":"@xmin"}},{"html_id":"ymax:Float64-instance-method","name":"ymax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L52"},"def":{"name":"ymax","return_type":"Float64","visibility":"Public","body":"@ymax"}},{"html_id":"ymin:Float64-instance-method","name":"ymin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L50"},"def":{"name":"ymin","return_type":"Float64","visibility":"Public","body":"@ymin"}}]},{"html_id":"drivers/Qbic","path":"Qbic.html","kind":"module","full_name":"Qbic","name":"Qbic","abstract":false,"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qbic/TouchPanel","path":"Qbic/TouchPanel.html","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"USERNAME","name":"USERNAME","value":"\"admin\""}],"namespace":{"html_id":"drivers/Qbic","kind":"module","full_name":"Qbic","name":"Qbic"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_info-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L188"},"def":{"name":"device_info","visibility":"Public","body":"query(\"GET\", \"/v1/info/\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_all_leds-instance-method","name":"get_all_leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L216"},"def":{"name":"get_all_leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n self[:light_names] = leds\n leds.each do |name|\n get_led_state(name)\n end\n true\nend"}},{"html_id":"get_eddystone_uid-instance-method","name":"get_eddystone_uid","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L165"},"def":{"name":"get_eddystone_uid","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_uid\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_eddystone_url-instance-method","name":"get_eddystone_url","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L184"},"def":{"name":"get_eddystone_url","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_url\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_ibeacon-instance-method","name":"get_ibeacon","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L143"},"def":{"name":"get_ibeacon","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/ibeacon\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_led_state(name:String)-instance-method","name":"get_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L212"},"def":{"name":"get_led_state","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led/#{name}\") do |data|\n self[name] = JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L60"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nif refresh_token = @refresh_token\n response = post(\"/v1/oauth2/token\", body: {grant_type: \"refresh_token\", refresh_token: refresh_token}.to_json)\n if response.success?\n resp = AuthResponse.from_json(response.body.not_nil!)\n @expired = false\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\n @refresh_token = resp.refresh_token\n return @auth_token\n else\n logger.debug do\n \"refresh token request failed\"\n end\n end\nend\nresponse = post(\"/v1/oauth2/token\", body: {grant_type: \"password\", username: USERNAME, password: @password}.to_json)\ndata = response.body.not_nil!\nif response.success?\n resp = AuthResponse.from_json(data)\n @expired = false\n @refresh_token = resp.refresh_token\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\nelse\n resp = FailureResponse.from_json(data)\n raise(\"failed to obtain access token: #{resp.detail} (#{response.status})\")\nend\n"}},{"html_id":"leds-instance-method","name":"leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L208"},"def":{"name":"leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n self[:leds] = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@password = URI.encode_www_form(setting(String, :password))\ntransport.before_request do |request|\n request.headers[\"Content-Type\"] = \"application/json\"\n if token_expired?\n else\n request.headers[\"Authorization\"] = @auth_token\n end\nend\nschedule.clear\nschedule.every(1.minute) do\n logger.debug do\n \"polling to check connectivity\"\n end\n resp = get(\"/v1/public/info/\")\n if resp.success?\n logger.debug do\n resp.body\n end\n get_all_leds\n end\nend\n"}},{"html_id":"set_all_leds(red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_all_leds","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L235"},"def":{"name":"set_all_leds","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n leds.each do |name|\n set_led_state(name, red, green, blue)\n end\n true\nend"}},{"html_id":"set_eddystone_uid(enabled:Bool,namespace:String|Nil=nil,instance:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_uid","doc":"https://github.com/google/eddystone/tree/master/eddystone-uid","summary":"

https://github.com/google/eddystone/tree/master/eddystone-uid

","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L149"},"def":{"name":"set_eddystone_uid","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_uid\", {enabled: enabled ? \"enabled\" : \"disabled\", namespace: namespace, instance: instance, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_eddystone_url(enabled:Bool,url:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_url","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L170"},"def":{"name":"set_eddystone_url","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_url\", {enabled: enabled ? \"enabled\" : \"disabled\", url: url, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_ibeacon(enabled:Bool,major:UInt16|Nil=nil,minor:UInt16|Nil=nil,uuid:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_ibeacon","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L125"},"def":{"name":"set_ibeacon","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/ibeacon\", {enabled: enabled ? \"enabled\" : \"disabled\", major: major, minor: minor, uuid: uuid, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_led_state(name:String,red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","args_html":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L226"},"def":{"name":"set_led_state","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"value = {red: red, green: green, blue: blue}\nquery(\"POST\", \"/v1/led/#{name}\", value.to_json) do\n self[name] = value\nend\n"}},{"html_id":"set_setting(key:String,value:String|JSON::Any)-instance-method","name":"set_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"args_string":"(key : String, value : String | JSON::Any)","args_html":"(key : String, value : String | JSON::Any)","location":{"filename":"src/qbic/touch_panel.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L197"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"visibility":"Public","body":"query(\"POST\", \"/v1/settings/#{key}\", {value: value}.to_json) do\n true\nend"}},{"html_id":"set_url(value:String)-instance-method","name":"set_url","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String)","args_html":"(value : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L204"},"def":{"name":"set_url","args":[{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"set_setting(\"content_url\", value)"}},{"html_id":"settings-instance-method","name":"settings","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L192"},"def":{"name":"settings","visibility":"Public","body":"query(\"GET\", \"/v1/settings\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"token_expired?:Bool-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L56"},"def":{"name":"token_expired?","visibility":"Public","body":"@expired"}},{"html_id":"update_password(new_password:String)-instance-method","name":"update_password","abstract":false,"args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"args_string":"(new_password : String)","args_html":"(new_password : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L106"},"def":{"name":"update_password","args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"visibility":"Public","body":"if new_password.size >= 4 && new_password.size <= 16\nelse\n raise(\"password must be between 4 and 16 characters\")\nend\nquery(\"POST\", \"/v1/user/password\") do\n define_setting(:password, new_password)\nend\n"}},{"html_id":"wifi_scan-instance-method","name":"wifi_scan","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L114"},"def":{"name":"wifi_scan","visibility":"Public","body":"query(\"GET\", \"/v1/wifi/scan_results\") do |data|\n JSON.parse(data.not_nil!)\nend"}}],"types":[{"html_id":"drivers/Qbic/TouchPanel/AdvertiseMode","path":"Qbic/TouchPanel/AdvertiseMode.html","kind":"enum","full_name":"Qbic::TouchPanel::AdvertiseMode","name":"AdvertiseMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L118"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LowLatency","name":"LowLatency","value":"0"},{"id":"Balanced","name":"Balanced","value":"1"},{"id":"LowPower","name":"LowPower","value":"2"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"instance_methods":[{"html_id":"balanced?-instance-method","name":"balanced?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L120"},"def":{"name":"balanced?","visibility":"Public","body":"self == Balanced"}},{"html_id":"low_latency?-instance-method","name":"low_latency?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L119"},"def":{"name":"low_latency?","visibility":"Public","body":"self == LowLatency"}},{"html_id":"low_power?-instance-method","name":"low_power?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L121"},"def":{"name":"low_power?","visibility":"Public","body":"self == LowPower"}}]},{"html_id":"drivers/Qbic/TouchPanel/AuthResponse","path":"Qbic/TouchPanel/AuthResponse.html","kind":"class","full_name":"Qbic::TouchPanel::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"refresh_token:String-instance-method","name":"refresh_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token","return_type":"String","visibility":"Public","body":"@refresh_token"}},{"html_id":"refresh_token=(refresh_token:String)-instance-method","name":"refresh_token=","abstract":false,"args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"args_string":"(refresh_token : String)","args_html":"(refresh_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token=","args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"visibility":"Public","body":"@refresh_token = refresh_token"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]},{"html_id":"drivers/Qbic/TouchPanel/FailureResponse","path":"Qbic/TouchPanel/FailureResponse.html","kind":"class","full_name":"Qbic::TouchPanel::FailureResponse","name":"FailureResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"detail:String-instance-method","name":"detail","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail","return_type":"String","visibility":"Public","body":"@detail"}},{"html_id":"detail=(detail:String)-instance-method","name":"detail=","abstract":false,"args":[{"name":"detail","external_name":"detail","restriction":"String"}],"args_string":"(detail : String)","args_html":"(detail : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail=","args":[{"name":"detail","external_name":"detail","restriction":"String"}],"visibility":"Public","body":"@detail = detail"}}]}]}]},{"html_id":"drivers/Qsc","path":"Qsc.html","kind":"module","full_name":"Qsc","name":"Qsc","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qsc/QSysControl","path":"Qsc/QSysControl.html","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"about-instance-method","name":"about","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L138"},"def":{"name":"about","visibility":"Public","body":"do_send(\"sg\\n\", name: :status, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L54"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nif @username\n login\nend\nrecreate_change_groups\nschedule.every(40.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n about\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L64"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n"}},{"html_id":"fader(fader_ids:Ids,level:Val)-instance-method","name":"fader","doc":"Compatibility Methods","summary":"

Compatibility Methods

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L163"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = -100..20\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = (level_actual + range.begin.to_f).round(1)\n(ensure_array(fader_ids)).each do |f_id|\n if @history[f_id]? == (:percentage_fader)\n set_value(f_id, level, name: \"fader#{f_id}\")\n else\n set_value(f_id, level_actual, name: \"fader#{f_id}\", fader_type: :fader)\n end\nend\n"}},{"html_id":"faders(fader_ids:Ids,level:Val)-instance-method","name":"faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L181"},"def":{"name":"faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"fader(fader_ids, level)"}},{"html_id":"get_status(control_id:String,**options)-instance-method","name":"get_status","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String, **options)","args_html":"(control_id : String, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L112"},"def":{"name":"get_status","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\ndo_send(\"cg #{control_id}\\n\", **options)\n"}},{"html_id":"history:Hash(String,Symbol)-instance-method","name":"history","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L31"},"def":{"name":"history","return_type":"Hash(String, Symbol)","visibility":"Public","body":"@history"}},{"html_id":"login(username:String|Nil=nil,password:String|Nil=nil)-instance-method","name":"login","abstract":false,"args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil = nil, password : String | Nil = nil)","args_html":"(username : String | Nil = nil, password : String | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L142"},"def":{"name":"login","args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"username || (username = @username)\npassword || (password = @password)\ndo_send(\"login #{username} #{password}\\n\", name: :login, priority: 99)\n"}},{"html_id":"mute(mute_ids:Ids,state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool = true)","args_html":"(mute_ids : Ids, state : Bool = true)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L185"},"def":{"name":"mute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 1 : 0\n(ensure_array(mute_ids)).each do |m_id|\n set_value(m_id, level, fader_type: :mute)\nend\n"}},{"html_id":"mute_toggle(mute_id:Ids)-instance-method","name":"mute_toggle","abstract":false,"args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"args_string":"(mute_id : Ids)","args_html":"(mute_id : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L198"},"def":{"name":"mute_toggle","args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_id, !self[\"fader#{mute_id}_mute\"]?.try(&.as_bool))"}},{"html_id":"mutes(mute_ids:Ids,state:Bool)-instance-method","name":"mutes","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool)","args_html":"(mute_ids : Ids, state : Bool)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L190"},"def":{"name":"mutes","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(mute_ids, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nqueue.retries = 1\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@static_change_groups = (setting?(Hash(String, Group), :change_groups)) || ({} of String => Group)\nif @connected\n if @username\n login\n end\n recreate_change_groups\nend\n"}},{"html_id":"phone_dial(control_id:String)-instance-method","name":"phone_dial","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L233"},"def":{"name":"phone_dial","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"trigger(control_id)\nschedule.in(200.milliseconds) do\n poll_change_group(:phone)\nend\n"}},{"html_id":"phone_hangup(control_id:String)-instance-method","name":"phone_hangup","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L238"},"def":{"name":"phone_hangup","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"phone_dial(control_id)"}},{"html_id":"phone_number(number:String,control_id:String)-instance-method","name":"phone_number","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(number : String, control_id : String)","args_html":"(number : String, control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L229"},"def":{"name":"phone_number","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"set_string(control_id, number)"}},{"html_id":"query_fader(fader_ids:Ids)-instance-method","name":"query_fader","doc":"For inter-module compatibility","summary":"

For inter-module compatibility

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L211"},"def":{"name":"query_fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: (@history[fad]? || (:fader)))\n"}},{"html_id":"query_faders(fader_ids:Ids)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L216"},"def":{"name":"query_faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |f_id|\n get_status(f_id, fader_type: (@history[f_id]? || (:fader)))\nend"}},{"html_id":"query_mute(fader_ids:Ids)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L220"},"def":{"name":"query_mute","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: :mute)\n"}},{"html_id":"query_mutes(fader_ids:Ids)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L225"},"def":{"name":"query_mutes","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |fad|\n get_status(fad, fader_type: :mute)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L277"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nputs(\"GOT: #{data}\")\nif data == \"none\\r\\n\"\n return task.try(&.success)\nend\nlogger.debug do\n \"QSys sent: #{data}\"\nend\nresp = shellsplit(data)\ncase resp[0]\nwhen \"cv\"\n control_id = resp[1]\n string_rep = resp[2]\n value = resp[-2]\n position = resp[-1].to_f\n self[\"pos_#{control_id}\"] = position\n if string_rep.ends_with?('%')\n @history[control_id] = :percentage_fader\n end\n if type = @history[control_id]?\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :percentage_fader\n self[\"fader#{control_id}\"] = value.to_f\n when :mute\n self[\"fader#{control_id}_mute\"] = value.to_i == 1\n end\n else\n value = resp[2]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id} == #{value}\"\n end\n end\nwhen \"cvv\"\n control_id = resp[1]\n count = resp[2].to_i\n if type = @history[control_id]?\n next_count = count + 3\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :mute\n self[\"fader#{control_id}_mute\"] = value == 1\n end\n end\n else\n next_count = 2\n 1.upto(count) do |index|\n value = resp[next_count + index]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id}\"\n end\n next_count = count + 3\n count = resp[next_count].to_i\n end\n next_count = (next_count + count) + 1\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n self[\"pos_#{control_id}\"] = value\n end\nwhen \"sr\"\n self[:design_name] = resp[1]\n self[:is_primary] = resp[3] == \"1\"\n self[:is_active] = resp[4] == \"1\"\nwhen \"core_not_active\", \"bad_change_group_handle\", \"bad_command\", \"bad_id\", \"control_read_only\", \"too_many_change_groups\"\n return task.try(&.abort(\"Error response received: #{data}\"))\nwhen \"login_required\"\n if @username\n login\n end\n return task.try(&.abort(\"Login is required!\"))\nwhen \"login_success\"\n logger.debug do\n \"Login success!\"\n end\nwhen \"login_failed\"\n return task.try(&.abort(\"Invalid login details provided\"))\nwhen \"rc\"\n logger.warn do\n \"System is notifying us of a disconnect!\"\n end\nwhen \"cmvv\"\n logger.debug do\n \"received cmvv response\"\n end\nelse\n logger.warn do\n \"Unknown response received #{data}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_snapshot(name:String,index:Int32)-instance-method","name":"save_snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(name : String, index : Int32)","args_html":"(name : String, index : Int32)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L206"},"def":{"name":"save_snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(\"sss \\\"#{name}\\\" #{index}\\n\")"}},{"html_id":"set_position(control_id:String,position:Int32,ramp_time:Val|Nil=nil)-instance-method","name":"set_position","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","args_html":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L118"},"def":{"name":"set_position","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"visibility":"Public","body":"if ramp_time\n do_send(\"cspr \\\"#{control_id}\\\" #{position} #{ramp_time}\\n\")\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csp \\\"#{control_id}\\\" #{position}\\n\")\nend"}},{"html_id":"set_string(control_ids:Ids,text:String)-instance-method","name":"set_string","doc":"Used to set a dial number/string","summary":"

Used to set a dial number/string

","abstract":false,"args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(control_ids : Ids, text : String)","args_html":"(control_ids : Ids, text : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L149"},"def":{"name":"set_string","args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"(ensure_array(control_ids)).each do |id|\n (do_send(\"css \\\"#{id}\\\" \\\"#{text}\\\"\\n\")).get\n self[id] = text\nend"}},{"html_id":"set_value(control_id:String,value:Val,ramp_time:Val|Nil=nil,**options)-instance-method","name":"set_value","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","args_html":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L127"},"def":{"name":"set_value","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\nif ramp_time\n do_send(\"csvr \\\"#{control_id}\\\" #{value} #{ramp_time}\\n\", **options)\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csv \\\"#{control_id}\\\" #{value}\\n\", **options)\nend\n"}},{"html_id":"snapshot(name:String,index:Int32,ramp_time:Val=1.5)-instance-method","name":"snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"args_string":"(name : String, index : Int32, ramp_time : Val = 1.5)","args_html":"(name : String, index : Int32, ramp_time : Val = 1.5)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L202"},"def":{"name":"snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"visibility":"Public","body":"do_send(\"ssl \\\"#{name}\\\" #{index} #{ramp_time}\\n\")"}},{"html_id":"trigger(control_id:String)-instance-method","name":"trigger","doc":"Used to trigger dialing etc","summary":"

Used to trigger dialing etc

","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L157"},"def":{"name":"trigger","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Sending trigger to Qsys: ct #{control_id}\"\nend\ndo_send(\"ct \\\"#{control_id}\\\"\\n\")\n"}},{"html_id":"unmute(mute_ids:Ids)-instance-method","name":"unmute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"args_string":"(mute_ids : Ids)","args_html":"(mute_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L194"},"def":{"name":"unmute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_ids, false)"}}],"types":[{"html_id":"drivers/Qsc/QSysControl/Group","path":"Qsc/QSysControl/Group.html","kind":"alias","full_name":"Qsc::QSysControl::Group","name":"Group","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: Int32, controls: Set(String))","aliased_html":"{id: Int32, controls: Set(String)}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Ids","path":"Qsc/QSysControl/Ids.html","kind":"alias","full_name":"Qsc::QSysControl::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Val","path":"Qsc/QSysControl/Val.html","kind":"alias","full_name":"Qsc::QSysControl::Val","name":"Val","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}}]},{"html_id":"drivers/Qsc/QSysRemote","path":"Qsc/QSysRemote.html","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BoolVals","name":"BoolVals","value":"[\"true\", \"false\"]"},{"id":"DB_RANGE","name":"DB_RANGE","value":"-100..20"},{"id":"Delimiter","name":"Delimiter","value":"\"\\u0000\""},{"id":"Errors","name":"Errors","value":"{-32700 => \"Parse error. Invalid JSON was received by the server.\", -32600 => \"Invalid request. The JSON sent is not a valid Request object.\", -32601 => \"Method not found.\", -32602 => \"Invalid params.\", -32603 => \"Server error.\", 2 => \"Invalid Page Request ID\", 3 => \"Bad Page Request - could not create the requested Page Request\", 4 => \"Missing file\", 5 => \"Change Groups exhausted\", 6 => \"Unknown change croup\", 7 => \"Unknown component name\", 8 => \"Unknown control\", 9 => \"Illegal mixer channel index\", 10 => \"Logon required\"}"},{"id":"Faders","name":"Faders","value":"{matrix_in: {type: :\"Mixer.SetInputGain\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputGain\", pri: :Outputs}, matrix_crosspoint: {type: :\"Mixer.SetCrossPointGain\", pri: :Inputs, sec: :Outputs}}"},{"id":"JsonRpcVer","name":"JsonRpcVer","value":"\"2.0\""},{"id":"Mutes","name":"Mutes","value":"{matrix_in: {type: :\"Mixer.SetInputMute\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputMute\", pri: :Outputs}}"}],"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_poll_change_group(group_id:String,every:Num,**options)-instance-method","name":"auto_poll_change_group","doc":"Where every is the number of seconds between polls","summary":"

Where every is the number of seconds between polls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"args_string":"(group_id : String, every : Num, **options)","args_html":"(group_id : String, every : Num, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L175"},"def":{"name":"auto_poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AutoPoll\", {:Id => group_id, :Rate => every}, **options)"}},{"html_id":"change_group_add_component(group_id:String,component_name:String,controls:Array(String),**options)-instance-method","name":"change_group_add_component","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, component_name : String, controls : Array(String), **options)","args_html":"(group_id : String, component_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L149"},"def":{"name":"change_group_add_component","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddComponentControl\", {:Id => group_id, :Component => {:Name => component_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}}, **options)"}},{"html_id":"change_group_add_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_add_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L135"},"def":{"name":"change_group_add_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddControl\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"change_group_remove_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_remove_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L142"},"def":{"name":"change_group_remove_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Remove\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"clear_change_group(group_id:String,**options)-instance-method","name":"clear_change_group","doc":"Removes all controls from change group","summary":"

Removes all controls from change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L170"},"def":{"name":"clear_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Clear\", {:Id => group_id}, **options)"}},{"html_id":"component_get(c_name:String,controls:Array(String),**options)-instance-method","name":"component_get","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(c_name : String, controls : Array(String), **options)","args_html":"(c_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L108"},"def":{"name":"component_get","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Get\", {:Name => c_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}, **options)"}},{"html_id":"component_set(c_name:String,values:Values,**options)-instance-method","name":"component_set","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"args_string":"(c_name : String, values : Values, **options)","args_html":"(c_name : String, values : Values, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L115"},"def":{"name":"component_set","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"values = ensure_array(values)\ndo_send(next_id, \"Component.Set\", {:Name => c_name, :Controls => values}, **options)\n"}},{"html_id":"component_trigger(component:String,trigger:String,**options)-instance-method","name":"component_trigger","abstract":false,"args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"args_string":"(component : String, trigger : String, **options)","args_html":"(component : String, trigger : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L124"},"def":{"name":"component_trigger","args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Trigger\", {:Name => component, :Controls => [{:Name => trigger}]}, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(20.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n no_op\nend\n@id = 0\n"}},{"html_id":"control_get(names:Array(String),**options)-instance-method","name":"control_get","abstract":false,"args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"args_string":"(names : Array(String), **options)","args_html":"(names : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L104"},"def":{"name":"control_get","args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Control.Get\", names, **options)"}},{"html_id":"control_set(name:String,value:Num|Bool,ramp:Num|Nil=nil,**options)-instance-method","name":"control_set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"args_string":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","args_html":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L87"},"def":{"name":"control_set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if ramp\n params = {:Name => name, :Value => value, :Ramp => ramp}\nelse\n params = {:Name => name, :Value => value}\nend\ndo_send(next_id, \"Control.Set\", params, **options)\n"}},{"html_id":"destroy_change_group(group_id:String,**options)-instance-method","name":"destroy_change_group","doc":"Removes the change group","summary":"

Removes the change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L165"},"def":{"name":"destroy_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Destroy\", {:Id => group_id}, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(fader_ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",use_value:Bool=false,**options)-instance-method","name":"fader","doc":"value can either be a number to set actual numeric values like decibels\nor Bool to deal with mute state","summary":"

value can either be a number to set actual numeric values like decibels or Bool to deal with mute state

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"args_string":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", use_value : Bool = false, **options)","args_html":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", use_value : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L264"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"faders = ensure_array(fader_ids)\nif component && (val = value.as?(Num))\n val = val.to_f.clamp(0.0, 100.0)\n if @db_based_faders || use_value\n percentage = val / 100.0\n level_actual = percentage * (DB_RANGE.size - 1).to_f\n level_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\n fads = faders.map do |fad|\n {Name: fad, Value: level_actual}\n end\n else\n fads = faders.map do |fad|\n {Name: fad, Position: val}\n end\n end\n (component_set(component, fads, name: \"level_#{faders[0]}\")).get\n component_get(component, faders)\nelse\n reqs = faders.map do |fad|\n control_set(fad, value)\n end\n reqs.last.get\n control_get(faders)\nend\n"}},{"html_id":"faders(ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L290"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(ids, value, component, type, **options)"}},{"html_id":"get_components(**options)-instance-method","name":"get_components","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L131"},"def":{"name":"get_components","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.GetComponents\", **options)"}},{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L72"},"def":{"name":"get_status","visibility":"Public","body":"do_send(next_id, cmd: :StatusGet, params: 0, priority: 0)"}},{"html_id":"logon-instance-method","name":"logon","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L76"},"def":{"name":"logon","visibility":"Public","body":"do_send(cmd: :Logon, params: {:User => @username, :Password => @password}, priority: 99)"}},{"html_id":"matrix_fader(name:String,level:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_fader","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, level : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, level : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L213"},"def":{"name":"matrix_fader","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Faders[type]\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nlevel_actual = percentage * (DB_RANGE.size - 1).to_f\nlevel_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\nif sec = info[:sec]?\n params = {:Name => name, info[:pri] => index[0], sec => index[1], :Value => level_actual}\nelse\n params = {:Name => name, info[:pri] => index, :Value => level_actual}\nend\ndo_send(next_id, info[:type], params, **options)\n"}},{"html_id":"matrix_mute(name:String,value:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_mute","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, value : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, value : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L252"},"def":{"name":"matrix_mute","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Mutes[type]\ndo_send(next_id, info[:type], {:Name => name, info[:pri] => index, :Value => value}, **options)\n"}},{"html_id":"mixer(name:String,inouts:Hash(Int32,Int32|Array(Int32)),mute:Bool=false,**options)-instance-method","name":"mixer","doc":"Example usage:\nmixer 'Parade', {1 => [2,3,4], 3 => 6}, true","summary":"

Example usage: mixer 'Parade', {1 => [2,3,4], 3 => 6}, true

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","args_html":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L184"},"def":{"name":"mixer","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, outputs|\n outputs = ensure_array(outputs)\n do_send(next_id, \"Mixer.SetCrossPointMute\", {:Name => name, :Inputs => input.to_s, :Outputs => outputs.join(' '), :Value => mute}, **options)\nend"}},{"html_id":"mute(fader_id:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L294"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(fader_id, state, component, type, state, **options)"}},{"html_id":"mutes(ids:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L298"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(ids, state, component, type, **options)"}},{"html_id":"next_id-instance-method","name":"next_id","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L398"},"def":{"name":"next_id","visibility":"Public","body":"@id = @id + 1\n@id\n"}},{"html_id":"no_op-instance-method","name":"no_op","doc":"This command does nothing but is useful for making sure the socket is left open","summary":"

This command does nothing but is useful for making sure the socket is left open

","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L68"},"def":{"name":"no_op","visibility":"Public","body":"do_send(cmd: :NoOp, priority: 0, wait: false)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Delimiter)\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@db_based_faders = setting?(Bool, :db_based_faders)\n@username = setting?(String, :username)\n@password = setting?(String, :password)\nif @username && @password\n logon\nend\n"}},{"html_id":"poll_change_group(group_id:String,**options)-instance-method","name":"poll_change_group","doc":"Returns values for all the controls","summary":"

Returns values for all the controls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L160"},"def":{"name":"poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Poll\", {:Id => group_id}, **options)"}},{"html_id":"query_fader(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L306"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"faders = ensure_array(fader_id)\ncomponent ? component_get(component, faders) : control_get(faders)\n"}},{"html_id":"query_faders(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L311"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"query_mute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L315"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(fader_id, component, type)"}},{"html_id":"query_mutes(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L319"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L323"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nresponse = JSON.parse(data)\nlogger.debug do\n \"QSys sent:\"\nend\nlogger.debug do\n response\nend\nif err = response[\"error\"]?\n code = err[\"code\"]\n logger.warn do\n \"Error code #{code} - #{Errors[code]}\"\n end\n if code == 10\n if @username && @password\n logon.get\n return task.try(&.retry(\"Logged on and retrying command\"))\n else\n return task.try(&.abort(\"Login required but no username and/or password in settings\"))\n end\n end\n return task.try(&.abort(err[\"message\"]))\nend\nif result = response[\"result\"]?\nelse\n return task.try(&.success(\"Unknown response\"))\nend\ncase result\nwhen .as_h?\n if result[\"Controls\"]?\n process(result[\"Controls\"].as_a, result[\"Name\"]?)\n else\n if result[\"Platform\"]?\n result.as_h.each do |k, v|\n self[k.underscore] = v\n end\n end\n end\nwhen .as_a?\n process(result.as_a)\nend\ntask.try(&.success)\n"}},{"html_id":"unmute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L302"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(fader_id, false, component, type, **options)"}}],"types":[{"html_id":"drivers/Qsc/QSysRemote/Ids","path":"Qsc/QSysRemote/Ids.html","kind":"alias","full_name":"Qsc::QSysRemote::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Num","path":"Qsc/QSysRemote/Num.html","kind":"alias","full_name":"Qsc::QSysRemote::Num","name":"Num","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/PosTup","path":"Qsc/QSysRemote/PosTup.html","kind":"alias","full_name":"Qsc::QSysRemote::PosTup","name":"PosTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Position: Float64 | Int32)","aliased_html":"{Name: String, Position: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/ValTup","path":"Qsc/QSysRemote/ValTup.html","kind":"alias","full_name":"Qsc::QSysRemote::ValTup","name":"ValTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Value: Float64 | Int32)","aliased_html":"{Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Values","path":"Qsc/QSysRemote/Values.html","kind":"alias","full_name":"Qsc::QSysRemote::Values","name":"Values","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(NamedTuple(Name: String, Position: Float64 | Int32)) | Array(NamedTuple(Name: String, Value: Float64 | Int32)) | NamedTuple(Name: String, Position: Float64 | Int32) | NamedTuple(Name: String, Value: Float64 | Int32))","aliased_html":"Array({Name: String, Position: Float64 | Int32}) | Array({Name: String, Value: Float64 | Int32}) | {Name: String, Position: Float64 | Int32} | {Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}}]}]},{"html_id":"drivers/RHBAccess","path":"RHBAccess.html","kind":"module","full_name":"RHBAccess","name":"RHBAccess","abstract":false,"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/RHBAccess/AxiomRoomLogic","path":"RHBAccess/AxiomRoomLogic.html","kind":"class","full_name":"RHBAccess::AxiomRoomLogic","name":"AxiomRoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock-instance-method","name":"lock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L25"},"def":{"name":"lock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.lock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while LOCKING #{@door_ids}\"\n end\nelse\n self[\"locked_by_placeos_at\"] = Time.local\n status?\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@door_ids = setting(Array(String), :axiom_door_ids)\n@cron_string = setting(String, :axiom_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n status?\nend\n"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L43"},"def":{"name":"status?","visibility":"Public","body":"begin\n result = @door_ids.map do |id|\n {id, (axiom.status?(id)).get}\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR requesting STATUS of #{@door_ids}\"\n end\nelse\n doors_locked = 0\n result.each do |id, status|\n self[id] = status[\"Status\"]\n if status[\"Status\"].to_s.starts_with?(\"Locked\")\n doors_locked = doors_locked + 1\n end\n end\n self[\"doors_locked\"] = doors_locked\nend"}},{"html_id":"unlock-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L34"},"def":{"name":"unlock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.unlock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while UNLOCKING #{@door_ids}\"\n end\nelse\n self[\"unlocked_by_placeos_at\"] = Time.local\n status?\nend"}}]},{"html_id":"drivers/RHBAccess/Axiomxa","path":"RHBAccess/Axiomxa.html","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock(id:String,permanent:Bool=false)-instance-method","name":"lock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L23"},"def":{"name":"lock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg0|\n __arg0.access_points.lock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"locked\", \"permanent\" => permanent.to_s}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiomxa.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@client = Client.new(base_url: host_name.to_s, username: setting(String, :username), password: setting(String, :password))\n"}},{"html_id":"status?(id:String)-instance-method","name":"status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L33"},"def":{"name":"status?","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = @client.try() do |__arg2|\n __arg2.access_points.status(id: id)\nend\nself[\"access_point_#{id}_status\"] = JSON.parse(response.not_nil!.body)\n"}},{"html_id":"unlock(id:String,permanent:Bool=false)-instance-method","name":"unlock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L28"},"def":{"name":"unlock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg1|\n __arg1.access_points.unlock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"unlocked\", \"permanent\" => permanent.to_s}\n"}}],"types":[{"html_id":"drivers/RHBAccess/Axiomxa/Client","path":"RHBAccess/Axiomxa/Client.html","kind":"alias","full_name":"RHBAccess::Axiomxa::Client","name":"Client","abstract":false,"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Axio::Client","aliased_html":"Axio::Client","const":false,"namespace":{"html_id":"drivers/RHBAccess/Axiomxa","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa"}}]}]},{"html_id":"drivers/Rhombus","path":"Rhombus.html","kind":"module","full_name":"Rhombus","name":"Rhombus","abstract":false,"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Rhombus/SecurityInterop","path":"Rhombus/SecurityInterop.html","kind":"class","full_name":"Rhombus::SecurityInterop","name":"SecurityInterop","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"door_event(json:String)-instance-method","name":"door_event","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L76"},"def":{"name":"door_event","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"new door event detected: #{json}\"\nend\nwebhook = Webhook.new(Interface::DoorSecurity::DoorEvent.from_json(json))\n@event_count = @event_count + 1_u64\n@subscriptions.each do |sub|\n begin\n logger.debug do\n \"notifying webhook of new door event: #{sub.webhook}\"\n end\n webhook.sign(sub.secret)\n response = HTTP::Client.post(sub.webhook, HTTP::Headers {\"Content-Type\" => \"application/json\"}, webhook.to_json)\n if response.success?\n else\n logger.warn do\n \"request #{sub.webhook} failed with status: #{response.status_code}\\n#{response.body}\"\n end\n end\n rescue error\n logger.error(exception: error) do\n \"failed to notify subscription: #{sub.webhook}\"\n end\n end\nend\nself[:event_count] = @event_count\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_interop.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\norg_id = (setting?(String, :organization_id)) || \"event\"\nmonitor(\"security/#{org_id}/door\") do |_subscription, payload|\n door_event(payload)\nend\n@subscriptions = (setting?(Array(Subscription), :subscriptions)) || ([] of Subscription)\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n"}},{"html_id":"request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L31"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\n end\n if @debug_webhook\n logger.debug do\n body\n end\n end\n case method.downcase\n when \"post\"\n @subscriptions << (Subscription.from_json(body))\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::CREATED.to_i, {} of String => String, \"\"}\n when \"delete\"\n sub_webhook = (Subscription.from_json(body)).webhook\n @subscriptions.reject! do |sub|\n sub.webhook == sub_webhook\n end\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::ACCEPTED.to_i, {} of String => String, \"\"}\n when \"get\"\n all_doors = [] of JSON::Any\n security.door_list.get.each do |doors|\n all_doors.concat(doors.as_a)\n end\n {HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, {doors: all_doors}.to_json}\n when \"put\"\n door = (Interface::DoorSecurity::Door.from_json(body)).door_id\n case (security.unlock(door)).get.first.as_bool?\n in true\n {HTTP::Status::OK.to_i, {} of String => String, \"\"}\n in false\n {HTTP::Status::FORBIDDEN.to_i, {} of String => String, \"\"}\n in nil\n {HTTP::Status::NOT_IMPLEMENTED.to_i, {} of String => String, \"\"}\n end\n else\n {HTTP::Status::BAD_REQUEST.to_i, {\"Content-Type\" => \"application/json\"}, {error: \"unexpected HTTP request method: #{method}\"}.to_json}\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, error.message.to_s}\nend"}}]},{"html_id":"drivers/Rhombus/SecurityMock","path":"Rhombus/SecurityMock.html","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"card_holders:Array(CardUser)-instance-method","name":"card_holders","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L23"},"def":{"name":"card_holders","return_type":"Array(CardUser)","visibility":"Public","body":"@card_holders"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L22"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"@door_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"door_list_size = (setting?(Int32, :door_list_size)) || 30\nFaker.seed(door_list_size)\ndoor_id = 1000\ndoors = Array(Door).new(door_list_size)\ndoor_list_size.times do\n doors << (Door.new(door_id.to_s, Faker::Commerce.department))\n door_id = door_id + 1\nend\n@door_list = doors\n@card_holders = (0..10).map do\n CardUser.new(Faker::Business.credit_card_number, Faker::Name.name, Faker::Internet.safe_email)\nend\nswipe_event_period = (setting?(Int32, :swipe_event_every)) || 30\nschedule.clear\nschedule.every(swipe_event_period.seconds) do\n door = doors.sample\n action = Action::Granted\n case rand(6)\n when 0, 1, 2\n user = card_holders.sample\n when 3\n action = Action::Denied\n user = card_holders.sample\n when 4\n action = Action::Tamper\n when 5\n action = Action::RequestToExit\n end\n publish(\"security/event/door\", DoorEvent.new(module_id: module_id, security_system: \"mock\", door_id: door.door_id, action: action, card_id: user.try(&.card_id), user_name: user.try(&.user_name), user_email: user.try(&.user_email)).to_json)\nend\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/rhombus/security_mock.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L81"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"self[:last_unlocked] = door_id\ntrue\n"}}],"types":[{"html_id":"drivers/Rhombus/SecurityMock/CardUser","path":"Rhombus/SecurityMock/CardUser.html","kind":"struct","full_name":"Rhombus::SecurityMock::CardUser","name":"CardUser","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus/SecurityMock","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock"},"constructors":[{"html_id":"new(card_id:String,user_name:String,user_email:String)-class-method","name":"new","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(card_id : String, user_name : String, user_email : String)","args_html":"(card_id : String, user_name : String, user_email : String)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"new","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(card_id, user_name, user_email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_mock.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card_id:String-instance-method","name":"card_id","abstract":false,"def":{"name":"card_id","return_type":"String","visibility":"Public","body":"@card_id"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@card_id.clone, @user_name.clone, @user_email.clone)"}},{"html_id":"copy_with(card_id_card_id=@card_id,user_name_user_name=@user_name,user_email_user_email=@user_email)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"args_string":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","args_html":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"visibility":"Public","body":"self.class.new(_card_id, _user_name, _user_email)"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Rhombus/Subscription","path":"Rhombus/Subscription.html","kind":"class","full_name":"Rhombus::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(webhook:String,secret:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"args_string":"(webhook : String, secret : Nil | String = nil)","args_html":"(webhook : String, secret : Nil | String = nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L12"},"def":{"name":"new","args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(webhook, secret)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"secret:String|Nil-instance-method","name":"secret","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L10"},"def":{"name":"secret","return_type":"String | ::Nil","visibility":"Public","body":"@secret"}},{"html_id":"webhook:String-instance-method","name":"webhook","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L9"},"def":{"name":"webhook","return_type":"String","visibility":"Public","body":"@webhook"}}]},{"html_id":"drivers/Rhombus/Webhook","path":"Rhombus/Webhook.html","kind":"class","full_name":"Rhombus::Webhook","name":"Webhook","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(event:PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)-class-method","name":"new","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"args_string":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","args_html":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L27"},"def":{"name":"new","args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"visibility":"Public","body":"_ = allocate\n_.initialize(event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"action:PlaceOS::Driver::Interface::DoorSecurity::Action-instance-method","name":"action","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L22"},"def":{"name":"action","return_type":"PlaceOS::Driver::Interface::DoorSecurity::Action","visibility":"Public","body":"@action"}},{"html_id":"card_id:String|Nil-instance-method","name":"card_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L23"},"def":{"name":"card_id","return_type":"String | ::Nil","visibility":"Public","body":"@card_id"}},{"html_id":"door_id:String-instance-method","name":"door_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L19"},"def":{"name":"door_id","return_type":"String","visibility":"Public","body":"@door_id"}},{"html_id":"sign(secret:String|Nil)-instance-method","name":"sign","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"args_string":"(secret : String | Nil)","args_html":"(secret : String | Nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L37"},"def":{"name":"sign","args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"visibility":"Public","body":"if key = secret.presence\n @signature = OpenSSL::HMAC.hexdigest(:sha256, key, timestamp.to_rfc3339)\nelse\n @signature = nil\nend\nself\n"}},{"html_id":"signature:String|Nil-instance-method","name":"signature","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L21"},"def":{"name":"signature","return_type":"String | ::Nil","visibility":"Public","body":"@signature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L20"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"user_email:String|Nil-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L25"},"def":{"name":"user_email","return_type":"String | ::Nil","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String|Nil-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L24"},"def":{"name":"user_name","return_type":"String | ::Nil","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Samsung","path":"Samsung.html","kind":"module","full_name":"Samsung","name":"Samsung","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Samsung/Displays","path":"Samsung/Displays.html","kind":"module","full_name":"Samsung::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Samsung","kind":"module","full_name":"Samsung","name":"Samsung"},"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol","path":"Samsung/Displays/MDCProtocol.html","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEVICE_SETTINGS","name":"DEVICE_SETTINGS","value":"{network_standby: Bool, auto_off_timer: Bool, auto_power: Bool, volume: Num, contrast: Num, brightness: Num, sharpness: Num, colour: Num, tint: Num, red_gain: Num, green_gain: Num, blue_gain: Num}"},{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_off_timer(value:Bool,**options)-instance-method","name":"auto_off_timer","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_off_timer","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_off_timer\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_off_timer\"), data, **options)\n"}},{"html_id":"auto_power(value:Bool,**options)-instance-method","name":"auto_power","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_power","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_power\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_power\"), data, **options)\n"}},{"html_id":"blue_gain(value:Num,**options)-instance-method","name":"blue_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"blue_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"blue_gain\"), data, **options)\n"}},{"html_id":"brightness(value:Num,**options)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"brightness\"), data, **options)\n"}},{"html_id":"colour(value:Num,**options)-instance-method","name":"colour","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"colour","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"colour\"), data, **options)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L88"},"def":{"name":"connected","visibility":"Public","body":"if self[:hard_off]?.try(&.as_bool)\nelse\n do_device_config\nend\nschedule.every(30.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Num,**options)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"contrast\"), data, **options)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L96"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L215"},"def":{"name":"do_device_config","visibility":"Public","body":"{% for name, kind in DEVICE_SETTINGS %}\n %value = setting?({{ kind }}, {{ name.id.stringify }})\n {{ name.id }}(%value) if %value\n {% end %}"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L181"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::Status, Bytes.empty, priority: 0)\nif self[:hard_off]?.try(&.as_bool)\nelse\n power?\nend\n"}},{"html_id":"green_gain(value:Num,**options)-instance-method","name":"green_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"green_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"green_gain\"), data, **options)\n"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L119"},"def":{"name":"hard_off","visibility":"Public","body":"if self[:power]?.try(&.as_bool)\n do_send(Command::PanelMute, 0)\nend\ndo_send(Command::HardOff, 0)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L130"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L146"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","doc":"Adds video mute state compatible with projectors","summary":"

Adds video mute state compatible with projectors

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L140"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1 : 0\ndo_send(Command::PanelMute, state)\n"}},{"html_id":"network_standby(value:Bool,**options)-instance-method","name":"network_standby","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"network_standby","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"network_standby\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"network_standby\"), data, **options)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L62"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L82"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\n@blank = (setting?(String, :blanking_input)).try(&->Input.parse(String))\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L102"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n do_send(Command::HardOff, 1)\n do_send(Command::PanelMute, 0)\nelse\n if (blanking_input = @blank) && self[:power]?\n switch_to(blanking_input)\n end\n do_send(Command::PanelMute, 1)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L124"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::PanelMute, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L237"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .status?\n self[:hard_off] = hard_off = values[0] == 0\n if hard_off\n self[:power] = false\n end\n self[:volume] = values[1]\n self[:audio_mute] = values[2] == 1\n self[:input] = Input.from_value(values[3])\n check_power_state\n when .panel_mute?\n self[:power] = value == 0\n check_power_state\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .brightness?\n self[:brightness] = value\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n if self[:screen_split]?.try(&.as_bool)\n else\n if current_input == @input_target\n @input_target = nil\n else\n if input_target = @input_target\n switch_to(input_target)\n end\n end\n end\n when .speaker?\n self[:speaker] = SpeakerMode.from_value(value)\n when .hard_off?\n if self[:hard_off]?.try(&.as_bool)\n else\n self[:hard_off] = hard_off = value == 0\n if hard_off\n self[:power] = false\n end\n end\n when .screen_split?\n self[:screen_split] = value >= 0\n when .software_version?\n self[:software_version] = values.join\n when .serial_number?\n self[:serial_number] = values.join\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"red_gain(value:Num,**options)-instance-method","name":"red_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"red_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"red_gain\"), data, **options)\n"}},{"html_id":"serial_number-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L163"},"def":{"name":"serial_number","visibility":"Public","body":"do_send(Command::SerialNumber)"}},{"html_id":"sharpness(value:Num,**options)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"sharpness\"), data, **options)\n"}},{"html_id":"software_version-instance-method","name":"software_version","doc":"check software version","summary":"

check software version

","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L159"},"def":{"name":"software_version","visibility":"Public","body":"do_send(Command::SoftwareVersion)"}},{"html_id":"speaker_select(mode:SpeakerMode,**options)-instance-method","name":"speaker_select","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"args_string":"(mode : SpeakerMode, **options)","args_html":"(mode : SpeakerMode, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L177"},"def":{"name":"speaker_select","args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Speaker, mode.value, **options)"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L167"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"tint(value:Num,**options)-instance-method","name":"tint","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"tint","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"tint\"), data, **options)\n"}},{"html_id":"volume(value:Num,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"volume\"), data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L227"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L222"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol/Command","path":"Samsung/Displays/MDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L332"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L339"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L340"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L327"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L321"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L347"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L323"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L320"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L326"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L317"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L328"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":329,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L329"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L338"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L318"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L331"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L325"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L334"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L341"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L343"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L322"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L330"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L342"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L337"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L316"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L344"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L345"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L324"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L319"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":333,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L333"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L335"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L336"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Input","path":"Samsung/Displays/MDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Num","path":"Samsung/Displays/MDCProtocol/Num.html","kind":"alias","full_name":"Samsung::Displays::MDCProtocol::Num","name":"Num","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"}},{"html_id":"drivers/Samsung/Displays/MDCProtocol/ResponseStatus","path":"Samsung/Displays/MDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L232"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L233"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L234"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/SpeakerMode","path":"Samsung/Displays/MDCProtocol/SpeakerMode.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::SpeakerMode","name":"SpeakerMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L172"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Internal","name":"Internal","value":"0"},{"id":"External","name":"External","value":"1"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"external?-instance-method","name":"external?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L174"},"def":{"name":"external?","visibility":"Public","body":"self == External"}},{"html_id":"internal?-instance-method","name":"internal?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L173"},"def":{"name":"internal?","visibility":"Public","body":"self == Internal"}}]}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","path":"Samsung/Displays/ReducedMDCProtocol.html","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_whiteboard-instance-method","name":"clear_whiteboard","doc":"if the user has been using the display as a whiteboard\nthen the display needs to switch input","summary":"

if the user has been using the display as a whiteboard then the display needs to switch input

","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L148"},"def":{"name":"clear_whiteboard","visibility":"Public","body":"target_input = @input_target\nclear_input = @whiteboard_clear_input\nif target_input && clear_input\n (switch_to(clear_input)).get\n switch_to(target_input)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L93"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L99"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L165"},"def":{"name":"do_device_config","visibility":"Public","body":"value = setting?(Int32 | Float64, :volume)\nif value\n volume(value)\nend\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n do_send(Command::Volume, Bytes.empty, priority: 0)\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L110"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::HardOff, 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L120"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.audio? || layer.audio_video?\n mute_audio(state)\nend"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L129"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L83"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\nif clear_input = setting?(String, :whiteboard_clear_input)\n @whiteboard_clear_input = Input.parse(clear_input)\nelse\n @whiteboard_clear_input = nil\nend\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L105"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\ndo_send(Command::HardOff, state ? 1 : 0)\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L114"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::HardOff, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L190"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n when .hard_off?\n self[:power] = value != 0\n check_power_state\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L141"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"volume(value:Int32|Float64,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64, **options)","args_html":"(value : Int32 | Float64, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L170"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L180"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L175"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Command","path":"Samsung/Displays/ReducedMDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L240"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L257"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L264"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L265"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L252"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L246"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L272"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L248"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L245"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L251"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L242"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L253"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L254"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L263"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L243"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L256"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L250"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L259"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L266"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L268"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L247"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L255"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L267"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L262"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L241"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L269"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L270"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L249"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L244"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L258"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L260"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L261"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Input","path":"Samsung/Displays/ReducedMDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/ResponseStatus","path":"Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L186"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L187"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Screen","path":"Screen.html","kind":"class","full_name":"Screen","name":"Screen","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}}]},{"html_id":"drivers/ScreenTechnics","path":"ScreenTechnics.html","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics","abstract":false,"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/ScreenTechnics/Connect","path":"ScreenTechnics/Connect.html","kind":"class","full_name":"ScreenTechnics::Connect","name":"Connect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_LOOKUP","name":"CMD_LOOKUP","value":"{30 => :up, 33 => :down, 1 => :status, 36 => :stop}"},{"id":"COMMANDS","name":"COMMANDS","value":"{up: 30, down: 33, status: 1, stop: 36}"},{"id":"STATUS","name":"STATUS","value":"{0 => :moving_top, 1 => :moving_bottom, 2 => :moving_preset_1, 3 => :moving_preset_2, 4 => :moving_top, 5 => :moving_bottom, 6 => :at_top, 7 => :at_bottom, 8 => :at_preset_1, 9 => :at_preset_2, 10 => :stopped, 11 => :error, 13 => :error_timeout, 14 => :error_current, 15 => :error_rattle, 16 => :at_bottom}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/ScreenTechnics","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L44"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds, immediate: true) do\n (0...@count).each do |index|\n query_state(index)\n end\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"queue.clear\nschedule.clear\n"}},{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L68"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if down?(index)\n return\nend\nstop(index)\ndo_send(:down, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"down?(index:Int32=0)-instance-method","name":"down?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L75"},"def":{"name":"down?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_bottom\", \"at_bottom\"}.includes?(self[\"screen#{index}\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L55"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i\ncase position\nwhen MoveablePosition::Up\n up(index)\nwhen MoveablePosition::Down\n down(index)\nelse\n raise(\"invalid position requested\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 500.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@count = (setting?(Int32, :screen_count)) || 1"}},{"html_id":"query_state(index:Int32=0)-instance-method","name":"query_state","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L101"},"def":{"name":"query_state","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(:status, index, 32)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/screen_technics/connect.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L125"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Screen sent #{data}\"\nend\nparts = (data.split(/,/)).map do |__arg0|\n __arg0.strip.to_i\nend\ncmd = CMD_LOOKUP[parts[0] - 100]?\nif cmd\n index = parts[2] - 17\n case cmd\n when :up\n logger.debug do\n \"Screen#{index} moving up\"\n end\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = true\n when :down\n logger.debug do\n \"Screen#{index} moving down\"\n end\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = true\n when :stop\n logger.debug do\n \"Screen#{index} stopped\"\n end\n self[\"moving#{index}\"] = false\n screen = \"screen#{index}\"\n if {\"at_top\", \"at_bottom\"}.includes?(self[screen]?)\n else\n self[screen] = :stopped\n end\n when :status\n self[\"screen#{index}\"] = status = STATUS[parts[-1]]\n case status\n when :moving_top, :at_top\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = status == (:moving_top)\n when :moving_bottom, :at_bottom\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = status == (:moving_bottom)\n when :stopped\n self[\"moving#{index}\"] = false\n when :error, :error_timeout, :error_current, :error_rattle\n self[\"moving#{index}\"] = false\n end\n end\n task.try(&.success)\nelse\n error = \"Unknown command #{parts[0]}\"\n logger.debug do\n error\n end\n task.try(&.abort(error))\nend\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/screen_technics/connect.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L90"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i\ndo_send(:stop, index, name: \"stop#{index}\", clear_queue: emergency, priority: emergency ? (queue.priority + 50) : queue.priority)\n"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L79"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if up?(index)\n return\nend\nstop(index)\ndo_send(:up, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"up?(index:Int32=0)-instance-method","name":"up?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L86"},"def":{"name":"up?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_top\", \"at_top\"}.includes?(self[\"screen#{index}\"]?)"}}]}]},{"html_id":"drivers/SecureOS","path":"SecureOS.html","kind":"module","full_name":"SecureOS","name":"SecureOS","abstract":false,"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/SecureOS/AuthResponse","path":"SecureOS/AuthResponse.html","kind":"struct","full_name":"SecureOS::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:AuthToken-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L93"},"def":{"name":"data","return_type":"AuthToken","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L94"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/AuthToken","path":"SecureOS/AuthToken.html","kind":"struct","full_name":"SecureOS::AuthToken","name":"AuthToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L100"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/SecureOS/Camera","path":"SecureOS/Camera.html","kind":"struct","full_name":"SecureOS::Camera","name":"Camera","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L110"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L111"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L113"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L114"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"settings:JSON::Any-instance-method","name":"settings","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L115"},"def":{"name":"settings","return_type":"JSON::Any","visibility":"Public","body":"@settings"}},{"html_id":"status:JSON::Any-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L116"},"def":{"name":"status","return_type":"JSON::Any","visibility":"Public","body":"@status"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L117"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/CameraResponse","path":"SecureOS/CameraResponse.html","kind":"struct","full_name":"SecureOS::CameraResponse","name":"CameraResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Camera)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L106"},"def":{"name":"data","return_type":"Array(Camera)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L107"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/Error","path":"SecureOS/Error.html","kind":"struct","full_name":"SecureOS::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error:String-instance-method","name":"error","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L87"},"def":{"name":"error","return_type":"String","visibility":"Public","body":"@error"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L86"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"request_id:String|Int64|Nil-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L85"},"def":{"name":"request_id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@request_id"}}]},{"html_id":"drivers/SecureOS/ErrorWrapper","path":"SecureOS/ErrorWrapper.html","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Error-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L52"},"def":{"name":"data","return_type":"Error","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L51"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Event","path":"SecureOS/Event.html","kind":"struct","full_name":"SecureOS::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L73"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L72"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"parameters:JSON::Any|Nil-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L79"},"def":{"name":"parameters","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@parameters"}},{"html_id":"ticks:Int64|Nil-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L74"},"def":{"name":"ticks","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L77"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L71"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/EventWrapper","path":"SecureOS/EventWrapper.html","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Event-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L47"},"def":{"name":"data","return_type":"Event","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L46"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Response","path":"SecureOS/Response.html","kind":"class","full_name":"SecureOS::Response","name":"Response","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/SecureOS/ErrorWrapper","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper"},{"html_id":"drivers/SecureOS/EventWrapper","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper"},{"html_id":"drivers/SecureOS/StateWrapper","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"state\"\n StateWrapper.from_json(json)\nwhen \"event\"\n EventWrapper.from_json(json)\nwhen \"error\"\n ErrorWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/SecureOS/State","path":"SecureOS/State.html","kind":"struct","full_name":"SecureOS::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L59"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"states:Hash(String,Bool)-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L65"},"def":{"name":"states","return_type":"Hash(String, Bool)","visibility":"Public","body":"@states"}},{"html_id":"ticks:Int64-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L60"},"def":{"name":"ticks","return_type":"Int64","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L63"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L58"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/StateType","path":"SecureOS/StateType.html","kind":"enum","full_name":"SecureOS::StateType","name":"StateType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attached","name":"Attached","value":"0"},{"id":"Armed","name":"Armed","value":"1"},{"id":"Alarmed","name":"Alarmed","value":"2"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"instance_methods":[{"html_id":"alarmed?-instance-method","name":"alarmed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L7"},"def":{"name":"alarmed?","visibility":"Public","body":"self == Alarmed"}},{"html_id":"armed?-instance-method","name":"armed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L6"},"def":{"name":"armed?","visibility":"Public","body":"self == Armed"}},{"html_id":"attached?-instance-method","name":"attached?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L5"},"def":{"name":"attached?","visibility":"Public","body":"self == Attached"}}]},{"html_id":"drivers/SecureOS/StateWrapper","path":"SecureOS/StateWrapper.html","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:State-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L42"},"def":{"name":"data","return_type":"State","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L41"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/SubscribeRule","path":"SecureOS/SubscribeRule.html","kind":"struct","full_name":"SecureOS::SubscribeRule","name":"SubscribeRule","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(type:String,id:String,action:Symbol,states:Array(StateType)|Nil=nil,events:Array(String)|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"args_string":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","args_html":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, action, states, events)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Symbol-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L17"},"def":{"name":"action","return_type":"Symbol","visibility":"Public","body":"@action"}},{"html_id":"events:Array(String)|Nil-instance-method","name":"events","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L16"},"def":{"name":"events","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@events"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L14"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"states:Array(StateType)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L15"},"def":{"name":"states","return_type":"Array(StateType) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L13"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Watchlist","path":"SecureOS/Watchlist.html","kind":"struct","full_name":"SecureOS::Watchlist","name":"Watchlist","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L127"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L128"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L130"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L131"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/SecureOS/WatchlistResponse","path":"SecureOS/WatchlistResponse.html","kind":"struct","full_name":"SecureOS::WatchlistResponse","name":"WatchlistResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L121"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Watchlist)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L123"},"def":{"name":"data","return_type":"Array(Watchlist)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L124"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/WsApi","path":"SecureOS/WsApi.html","kind":"class","full_name":"SecureOS::WsApi","name":"WsApi","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"basic_auth:NamedTuple(username:String,password:String)-instance-method","name":"basic_auth","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth","return_type":"NamedTuple(username: String, password: String)","visibility":"Public","body":"if (__temp_1 = @basic_auth).nil?\n ::raise(::NilAssertionError.new(\"SecureOS::WsApi#basic_auth cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"basic_auth?:NamedTuple(username:String,password:String)|Nil-instance-method","name":"basic_auth?","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth?","return_type":"NamedTuple(username: String, password: String) | ::Nil","visibility":"Public","body":"@basic_auth"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"begin\n response = http_client.get(\"#{@rest_api_host}/api/v1/ws_auth\")\n if response.success?\n auth = AuthResponse.from_json(response.body)\n send({type: :auth, token: auth.data.token}.to_json, wait: false)\n else\n raise(\"Authentication failed\")\n end\n schedule.every(30.seconds) do\n send({type: :get_server_time}.to_json, name: :server_time)\n end\n schedule.every(5.minutes, immediate: true) do\n camera_list\n subscribe_all\n watchlist_list\n end\nrescue error\n logger.warn(exception: error) do\n \"Authentication failed\"\n end\n disconnect\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@rest_api_host = setting(String, :rest_api_host)\n@basic_auth = setting(NamedTuple(username: String, password: String), :basic_auth)\n@camera_types = setting(Array(String), :camera_types)\n@camera_states = setting(Array(StateType), :camera_states)\n@camera_events = setting(Array(String), :camera_events)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/secure_os/ws_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"SecureOS sent: #{raw_json}\"\nend\ntype_check = (JSON.parse(raw_json))[\"type\"]?\nif type_check\n response = Response.from_json(raw_json)\n case response\n in StateWrapper\n self[\"camera_#{response.data.id}_states\"] = response.data\n in EventWrapper\n self[\"camera_#{response.data.id}\"] = response.data\n in ErrorWrapper\n logger.warn do\n \"SecureOS error: #{response.data}\"\n end\n if response.data.error.in?({\"INVALID_AUTH_TOKEN\", \"UNAUTHORIZED\"})\n disconnect\n else\n self[\"last_error\"] = response.data\n end\n in Response\n end\nend\ntask.try(&.success)\n"}},{"html_id":"watchlist_add_lp(watchlist:String,license_plate:String,comment:String=\"\")-instance-method","name":"watchlist_add_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String, comment : String = \"\")","args_html":"(watchlist : String, license_plate : String, comment : String = "")","location":{"filename":"src/secure_os/ws_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L116"},"def":{"name":"watchlist_add_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/set\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate, comment: comment}.to_json)\n if response\n else\n logger.warn do\n \"Failed to add license plate to watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to add license plate to watchlist\"\n end\nend"}},{"html_id":"watchlist_remove_lp(watchlist:String,license_plate:String)-instance-method","name":"watchlist_remove_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String)","args_html":"(watchlist : String, license_plate : String)","location":{"filename":"src/secure_os/ws_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L136"},"def":{"name":"watchlist_remove_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/delete\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate}.to_json)\n if response\n else\n logger.warn do\n \"Failed to remove license plate from watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to remove license plate from watchlist\"\n end\nend"}}]}]},{"html_id":"drivers/Settings","path":"Settings.html","kind":"alias","full_name":"Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Core::Settings","aliased_html":"Place::Router::Core::Settings","const":false},{"html_id":"drivers/Sharp","path":"Sharp.html","kind":"module","full_name":"Sharp","name":"Sharp","abstract":false,"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sharp/PnSeries","path":"Sharp/PnSeries.html","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AUDIO","name":"AUDIO","value":"{audio1: \"ASDP 2\", audio2: \"ASDP 3\", dvi: \"ASDP 1\", dvi_alt: \"ASDA 1\", hdmi: \"ASHP 0\", hdmi_3mm: \"ASHP 1\", hdmi_rca: \"ASHP 2\", vga: \"ASAP 1\", component: \"ASCA 1\"}"},{"id":"AUDIO_RESPONSE","name":"AUDIO_RESPONSE","value":"AUDIO.to_h.invert"},{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"OPERATION_CODE","name":"OPERATION_CODE","value":"{video_input: \"INPS\", volume_status: \"VOLM\", mute_status: \"MUTE\", power_on_delay: \"PWOD\", contrast_status: \"CONT\", brightness_status: \"VLMP\", model_number: \"INF1\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sharp","kind":"module","full_name":"Sharp","name":"Sharp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L127"},"def":{"name":"auto_adjust","visibility":"Public","body":"do_send(\"AGIN 1\", timeout: 20.seconds)"}},{"html_id":"brightness(val:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L131"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nbrightness = (percentage * @brightness_max.to_f).round_away.to_i\ndo_send(\"VLMP#{brightness.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"brightness_status(priority:Int32=0,**options)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VLMP\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"send_credentials\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Display\"\n end\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L139"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\ncontrast = (percentage * @contrast_max.to_f).round_away.to_i\nmultiplier = (self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1\ncontrast = contrast * multiplier\ndo_send(\"CONT#{contrast.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"contrast_status(priority:Int32=0,**options)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"CONT\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L61"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L207"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n if self[:model_number]?\n else\n model_number\n end\n power_on_delay\n mute_status\nend"}},{"html_id":"model_number(priority:Int32=0,**options)-instance-method","name":"model_number","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"model_number","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INF1\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sharp/pn_series.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L175"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"Sharp LCD requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"Sharp LCD, requested to mute #{state}\"\n end\n do_send(\"MUTE #{state ? '1' : '0'}\")\n mute_status(50)\nend"}},{"html_id":"mute_status(priority:Int32=0,**options)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"MUTE\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sharp/pn_series.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L65"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"delay = self[:power_on_delay]?.try(&.as_i) || 5\nif state != !!self[:power]?.try(&.as_bool)\n if state\n logger.debug do\n \"-- Sharp LCD, requested to power on\"\n end\n do_send(\"POWR 1\", name: :POWR, timeout: delay.seconds + 15.seconds)\n self[:warming] = true\n self[:power] = true\n do_send(\"POWR????\", name: :POWR, timeout: 10.seconds)\n else\n logger.debug do\n \"-- Sharp LCD, requested to power off\"\n end\n do_send(\"POWR 0\", name: :POWR, timeout: 15.seconds)\n self[:power] = false\n end\nend\npower?\nmute_status(0)\nvolume_status(0)\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L88"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(\"POWR????\", **options, name: :POWR, timeout: 10.seconds)).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0,**options)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"PWOD\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sharp/pn_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L229"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-3])\nlogger.debug do\n \"-- Sharp LCD, received: #{data}\"\nend\nif data == \"Password:OK\"\n return task.try(&.success(\"Login successful\"))\nelse\n if data == \"Password:Login incorrect\"\n schedule.in(5.seconds) do\n send_credentials\n end\n return task.try(&.success(\"Sharp LCD, bad login or logged off. Attempting login..\"))\n else\n if data == \"OK\"\n return task.try(&.success)\n else\n if data == \"WAIT\"\n logger.debug do\n \"-- Sharp LCD, wait\"\n end\n return\n else\n if data == \"ERR\"\n return task.try(&.abort(\"-- Sharp LCD, error\"))\n else\n if data.size < 8\n return task.try(&.abort(\"Sharp sent out of order response: #{data}\"))\n end\n end\n end\n end\n end\nend\ncommand, value = data.split\ncase command\nwhen \"POWR\"\n self[:warming] = false\n self[:power] = value.to_i > 0\nwhen \"INPS\"\n input = Input.from_value?(value.to_i)\n self[:input] = input || \"unknown\"\n logger.debug do\n \"-- Sharp LCD, input #{self[:input]} == #{value}\"\n end\nwhen \"VOLM\"\n vol_percent = (value.to_i.to_f / @volume_max.to_f) * 100.0\n if self[:audio_mute]?.try(&.as_bool)\n else\n self[:volume] = vol_percent.round(2)\n end\nwhen \"MUTE\"\n self[:audio_mute] = (mute = value.to_i == 1)\n if mute\n self[:volume] = 0\n else\n volume_status(90)\n end\nwhen \"CONT\"\n val = value.to_i / ((self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1)\n contrast = (val.to_f / @contrast_max.to_f) * 100.0\n self[:contrast] = contrast.round(2)\nwhen \"VLMP\"\n brightness = (value.to_i.to_f / @brightness_max.to_f) * 100.0\n self[:brightness] = brightness.round(2)\nwhen \"PWOD\"\n self[:power_on_delay] = value.to_i\nwhen \"INF1\"\n self[:model_number] = value\n logger.debug do\n \"-- Sharp LCD, model number #{self[:model_number]}\"\n end\n determine_contrast_mode\nwhen \"ASDP\", \"ASDA\", \"ASHP\", \"ASAP\", \"ASCA\"\n self[:audio_input] = AUDIO_RESPONSE[data] || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"reset-instance-method","name":"reset","doc":"Resets the brightness and contrast settings","summary":"

Resets the brightness and contrast settings

","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L94"},"def":{"name":"reset","visibility":"Public","body":"do_send(\"ARST 2\")"}},{"html_id":"switch_audio(input:String)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/sharp/pn_series.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L119"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch audio to: #{input}\"\nend\ndo_send(AUDIO[input], name: \"audio\")\nmute_status(40)\nvolume_status(40)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sharp/pn_series.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L98"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch to: #{input}\"\nend\n(do_send(input.data, name: :input, delay: 2.seconds, timeout: 20.seconds)).get\nvideo_input(40)\nbrightness_status(40)\ncontrast_status(40)\n"}},{"html_id":"video_input(priority:Int32=0,**options)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INPS\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L150"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"@vol_status.try(&.cancel)\n@vol_status = schedule.in(2.seconds) do\n @vol_status = nil\n volume_status\nend\nval = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ndo_send(\"VOLM#{vol_actual.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L169"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0,**options)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VOLM\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L164"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sharp/PnSeries/Input","path":"Sharp/PnSeries/Input.html","kind":"enum","full_name":"Sharp::PnSeries::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Sharp/PnSeries","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L21"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"data-instance-method","name":"data","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L23"},"def":{"name":"data","visibility":"Public","body":"\"INPS\" + (self.value.to_s.rjust(4, '0'))"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L18"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L16"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L17"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L15"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L20"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L19"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Shure","path":"Shure.html","kind":"module","full_name":"Shure","name":"Shure","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Shure/Microphone","path":"Shure/Microphone.html","kind":"module","full_name":"Shure::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Shure","kind":"module","full_name":"Shure","name":"Shure"},"types":[{"html_id":"drivers/Shure/Microphone/MXA","path":"Shure/Microphone/MXA.html","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"}],"namespace":{"html_id":"drivers/Shure/Microphone","kind":"module","full_name":"Shure::Microphone","name":"Microphone"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L17"},"def":{"name":"connected","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\" >\")\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Mics\"\n end\n do_poll\nend\nquery_all\nif (setting?(Bool, :send_meter_levels)) != true\n set_meter_rate(0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L192"},"def":{"name":"do_poll","visibility":"Public","body":"query_device_id"}},{"html_id":"flash-instance-method","name":"flash","doc":"flash the LED for 30 seconds","summary":"

flash the LED for 30 seconds

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L81"},"def":{"name":"flash","visibility":"Public","body":"do_send(\"SET FLASH ON\")"}},{"html_id":"led(on:Bool=true)-instance-method","name":"led","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L101"},"def":{"name":"led","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"led_state_muted(on)\nled_state_unmuted(on)\n"}},{"html_id":"led_colour_muted(colour:Colour)-instance-method","name":"led_colour_muted","doc":"Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE","summary":"

Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE

","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L111"},"def":{"name":"led_colour_muted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_MUTED\", colour.to_s.upcase, name: :muted_color)"}},{"html_id":"led_colour_unmuted(colour:Colour)-instance-method","name":"led_colour_unmuted","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L119"},"def":{"name":"led_colour_unmuted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_UNMUTED\", colour.to_s.upcase, name: :unmuted_color)"}},{"html_id":"led_state_muted(on:Bool=true)-instance-method","name":"led_state_muted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L136"},"def":{"name":"led_state_muted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_MUTED\", state)\n"}},{"html_id":"led_state_unmuted(on:Bool=true)-instance-method","name":"led_state_unmuted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L127"},"def":{"name":"led_state_unmuted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_UNMUTED\", state)\n"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L56"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? \"ON\" : \"OFF\"\ndo_send(\"SET DEVICE_AUDIO_MUTE\", val, name: :mute)\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","doc":"part of the mutable interface","summary":"

part of the mutable interface

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L66"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L75"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"if number.in?(1..10)\nelse\n raise(\"must be a number between 1-10, was #{number}\")\nend\ndo_send(\"SET PRESET\", number.to_s, name: :preset)\n"}},{"html_id":"query_all-instance-method","name":"query_all","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L33"},"def":{"name":"query_all","visibility":"Public","body":"do_send(\"GET 0 ALL\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L37"},"def":{"name":"query_device_id","visibility":"Public","body":"do_send(\"GET DEVICE_ID\", name: :device_id)"}},{"html_id":"query_firmware-instance-method","name":"query_firmware","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L41"},"def":{"name":"query_firmware","visibility":"Public","body":"do_send(\"GET FW_VER\", name: :firmware)"}},{"html_id":"query_led_colour_muted-instance-method","name":"query_led_colour_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L106"},"def":{"name":"query_led_colour_muted","visibility":"Public","body":"do_send(\"GET LED_COLOR_MUTED\")"}},{"html_id":"query_led_colour_unmuted-instance-method","name":"query_led_colour_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L115"},"def":{"name":"query_led_colour_unmuted","visibility":"Public","body":"do_send(\"GET LED_COLOR_UNMUTED\")"}},{"html_id":"query_led_state-instance-method","name":"query_led_state","doc":"LED Setup","summary":"

LED Setup

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L97"},"def":{"name":"query_led_state","visibility":"Public","body":"do_send(\"GET DEV_LED_IN_STATE\")"}},{"html_id":"query_led_state_muted-instance-method","name":"query_led_state_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L132"},"def":{"name":"query_led_state_muted","visibility":"Public","body":"do_send(\"GET LED_STATE_MUTED\")"}},{"html_id":"query_led_state_unmuted-instance-method","name":"query_led_state_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L123"},"def":{"name":"query_led_state_unmuted","visibility":"Public","body":"do_send(\"GET LED_STATE_UNMUTED\")"}},{"html_id":"query_mute-instance-method","name":"query_mute","doc":"Mute commands","summary":"

Mute commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L52"},"def":{"name":"query_mute","visibility":"Public","body":"do_send(\"GET DEVICE_AUDIO_MUTE\")"}},{"html_id":"query_preset-instance-method","name":"query_preset","doc":"Preset commands","summary":"

Preset commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L71"},"def":{"name":"query_preset","visibility":"Public","body":"do_send(\"GET PRESET\")"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L141"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(bytes)\nlogger.debug do\n \"-- received: #{data}\"\nend\ndata = ((data.split(\"< \", 2))[1].gsub(/[\\{\\}]/, '\"')).rchop(\" >\")\nresp = (shellsplit(data)).map(&.strip)\nif resp[0] == \"SAMPLE\"\n resp[1..-1].each_with_index do |level, index|\n self[\"output#{index + 1}\"] = level.to_i\n end\n return\nend\nif resp[1] == \"ERR\"\n return task.try(&.abort)\nend\nif resp[1] =~ (/^[0-9]+$/)\n chann = resp[1]\n param = resp[2].try(&.downcase)\n value = resp[3].try(&.downcase)\n self[\"#{param}_#{chann}\"] = value\n return task.try(&.success)\nend\nparam = resp[1].downcase\nvalue = resp[2]\ncase param\nwhen \"device_audio_mute\"\n self[:muted] = value == \"ON\"\nwhen \"dev_led_state_muted\"\n self[:led_muted] = value == \"ON\"\nwhen \"dev_led_state_unmuted\"\n self[:led_unmuted] = value == \"ON\"\nelse\n self[param] = case value\n when \"ON\"\n true\n when \"OFF\"\n false\n when .to_i?\n value.to_i\n else\n value\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_meter_rate(rate:Int32)-instance-method","name":"set_meter_rate","doc":"rate in milliseconds","summary":"

rate in milliseconds

","abstract":false,"args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"args_string":"(rate : Int32)","args_html":"(rate : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L46"},"def":{"name":"set_meter_rate","args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"visibility":"Public","body":"if (rate == 0) || rate >= 100\nelse\n raise(\"rate must be a number greater than 100, was #{rate}\")\nend\ndo_send(\"SET METER_RATE\", rate.to_s, name: :meter_rate)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L61"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}}],"types":[{"html_id":"drivers/Shure/Microphone/MXA/Colour","path":"Shure/Microphone/MXA/Colour.html","kind":"enum","full_name":"Shure::Microphone::MXA::Colour","name":"Colour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"RED","name":"RED","value":"0"},{"id":"GREEN","name":"GREEN","value":"1"},{"id":"BLUE","name":"BLUE","value":"2"},{"id":"PINK","name":"PINK","value":"3"},{"id":"PURPLE","name":"PURPLE","value":"4"},{"id":"YELLOW","name":"YELLOW","value":"5"},{"id":"ORANGE","name":"ORANGE","value":"6"},{"id":"WHITE","name":"WHITE","value":"7"}],"namespace":{"html_id":"drivers/Shure/Microphone/MXA","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L88"},"def":{"name":"blue?","visibility":"Public","body":"self == BLUE"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L87"},"def":{"name":"green?","visibility":"Public","body":"self == GREEN"}},{"html_id":"orange?-instance-method","name":"orange?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L92"},"def":{"name":"orange?","visibility":"Public","body":"self == ORANGE"}},{"html_id":"pink?-instance-method","name":"pink?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L89"},"def":{"name":"pink?","visibility":"Public","body":"self == PINK"}},{"html_id":"purple?-instance-method","name":"purple?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L90"},"def":{"name":"purple?","visibility":"Public","body":"self == PURPLE"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L86"},"def":{"name":"red?","visibility":"Public","body":"self == RED"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L93"},"def":{"name":"white?","visibility":"Public","body":"self == WHITE"}},{"html_id":"yellow?-instance-method","name":"yellow?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L91"},"def":{"name":"yellow?","visibility":"Public","body":"self == YELLOW"}}]}]}]}]},{"html_id":"drivers/Siemens","path":"Siemens.html","kind":"module","full_name":"Siemens","name":"Siemens","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Siemens/Desigo","path":"Siemens/Desigo.html","kind":"class","full_name":"Siemens::Desigo","name":"Desigo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens","kind":"module","full_name":"Siemens","name":"Siemens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"commands(id:String)-instance-method","name":"commands","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L43"},"def":{"name":"commands","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"commands = @client.try() do |__arg3|\n __arg3.commands.get(id: id)\nend\nself[\"commands#{id}\"] = commands\n"}},{"html_id":"execute(id:String,property_name:String,command_id:String,command_inputs_for_execution:String)-instance-method","name":"execute","doc":"Because of the introspect failing on generics,\nwe can pass in the `command_inputs_for_execution` as a JSON string\n\"[{\\\"Name\\\": \\\"Value\\\", \\\"DataType\\\": \\\"ExtendedEnum\\\", \\\"Value\\\": \\\"1\\\"}]\"","summary":"

Because of the introspect failing on generics, we can pass in the command_inputs_for_execution as a JSON string "[{"Name": "Value", "DataType": "ExtendedEnum", "Value": "1"}]"

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"args_string":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","args_html":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","location":{"filename":"src/siemens/desigo.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L51"},"def":{"name":"execute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"visibility":"Public","body":"return_value = @client.try() do |__arg4|\n __arg4.commands.execute(id: id, property_name: property_name, command_id: command_id, command_inputs_for_execution: JSON.parse(command_inputs_for_execution))\nend\nself[\"execute#{id}_property#{property_name}_command#{command_id}\"] = return_value\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"base_url = config.uri.not_nil!.to_s\nusername = setting(String, :username)\npassword = setting(String, :password)\n@client = Client.new(base_url: base_url, username: username, password: password)\nspawn do\n loop do\n @client.try() do |__arg0|\n __arg0.heartbeat.signal\n end\n sleep(60)\n end\nend\n"}},{"html_id":"property_values(id:String)-instance-method","name":"property_values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L33"},"def":{"name":"property_values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"property_values = @client.try() do |__arg1|\n __arg1.property_values.get(id: id)\nend\nself[\"property_values#{id}\"] = property_values\n"}},{"html_id":"values(id:String)-instance-method","name":"values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L38"},"def":{"name":"values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"values = @client.try() do |__arg2|\n __arg2.values.get(id: id)\nend\nself[\"values#{id}\"] = values\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/Client","path":"Siemens/Desigo/Client.html","kind":"alias","full_name":"Siemens::Desigo::Client","name":"Client","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Desigo::Client","aliased_html":"Desigo::Client","const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"}},{"html_id":"drivers/Siemens/Desigo/RoomLogic","path":"Siemens/Desigo/RoomLogic.html","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_queries-instance-method","name":"do_queries","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L25"},"def":{"name":"do_queries","visibility":"Public","body":"responses = @queries.map do |q|\n {q.name, (desigo.values(q.param)).get}\nend\nresponses.each do |name, value|\n self[name] = value.as_a.first.as_h[\"Value\"][\"Value\"]\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@queries = setting(Array(Query), :desigo_queries)\n@cron_string = setting(String, :desigo_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n do_queries\nend\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/RoomLogic/Query","path":"Siemens/Desigo/RoomLogic/Query.html","kind":"struct","full_name":"Siemens::Desigo::RoomLogic::Query","name":"Query","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Siemens/Desigo/RoomLogic","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command:String-instance-method","name":"command","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command","return_type":"String","visibility":"Public","body":"@command"}},{"html_id":"command=(command:String)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@command = command"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L32"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"param:String-instance-method","name":"param","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param","return_type":"String","visibility":"Public","body":"@param"}},{"html_id":"param=(param:String)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"String"}],"args_string":"(param : String)","args_html":"(param : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"String"}],"visibility":"Public","body":"@param = param"}}]}]}]}]},{"html_id":"drivers/SigGraph","path":"SigGraph.html","kind":"alias","full_name":"SigGraph","name":"SigGraph","abstract":false,"locations":[{"filename":"src/place/router/signal_graph_spec.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph_spec.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/SignalGraph","path":"SignalGraph.html","kind":"alias","full_name":"SignalGraph","name":"SignalGraph","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/Sony","path":"Sony.html","kind":"module","full_name":"Sony","name":"Sony","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sony/Camera","path":"Sony/Camera.html","kind":"module","full_name":"Sony::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Camera/CGI","path":"Sony/Camera/CGI.html","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L302"},"def":{"name":"home","visibility":"Public","body":"action(\"/command/presetposition.cgi?HomePos=ptz-recall\", name: \"position\") do\n query_status\nend"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L156"},"def":{"name":"info?","visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=system\", priority: 0) do |response|\n response.each do |key, value|\n if {\"ModelName\", \"Serial\", \"SoftVersion\", \"ModelForm\", \"CGIVersion\"}.includes?(key)\n self[key.underscore] = value\n end\n end\n response\nend"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Implement Camera interface","summary":"

Implement Camera interface

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L252"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\npan_speed = pan_speed.to_i\ntilt_speed = tilt_speed.to_i\nrange = -100..100\nin_range(range, pan_speed)\nin_range(range, tilt_speed)\nif @invert_controls && (tilt_speed != 0)\n tilt_speed = -tilt_speed\nend\naction(\"/command/ptzf.cgi?ContinuousPanTiltZoom=#{pan_speed.to_s(16)},#{tilt_speed.to_s(16)},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = ((pan_speed != 0) || (tilt_speed != 0))\n if !@moving\n query_status\n end\n @moving\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"Implement Moveable interface","summary":"

Implement Moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L194"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\ncase position\nwhen MoveablePosition::Up, MoveablePosition::Down, MoveablePosition::Left, MoveablePosition::Right\n if @invert_controls && (position.up? || position.down?)\n position = position.up? ? MoveablePosition::Down : MoveablePosition::Up\n end\n action(\"/command/ptzf.cgi?Move=#{position.to_s.downcase},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = true\n end\nwhen MoveablePosition::In\n zoom(ZoomDirection::In)\nwhen MoveablePosition::Out\n zoom(ZoomDirection::Out)\nelse\n raise(\"unsupported direction: #{position}\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"@pantilt_speed = -100..100\nself[:pan_speed] = self[:tilt_speed] = {min: -100, max: 100, stop: 0}\nself[:has_discrete_zoom] = true\nschedule.every(60.seconds) do\n query_status\nend\nschedule.in(5.seconds) do\n query_status\n info?\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"self[:invert_controls] = @invert_controls = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Int32)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Int32))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32,zoom:Int32|Nil=nil):Nil-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"args_string":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","args_html":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L227"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"in_range(@pan_range, pan)\nin_range(@tilt_range, tilt)\nif zoom\n in_range(@zoom_range, zoom)\n action(\"/command/ptzf.cgi?AbsolutePTZF=#{pan.to_s(16)},#{tilt.to_s(16)},#{zoom.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n self[:zoom] = @zoom_raw = zoom.not_nil!\n end\nelse\n action(\"/command/ptzf.cgi?AbsolutePanTilt=#{pan.to_s(16)},#{tilt.to_s(16)},#{@max_speed.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n end\nend\n"}},{"html_id":"query_status(priority:Int32=0)-instance-method","name":"query_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L93"},"def":{"name":"query_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=ptzf\", priority: priority) do |response|\n response.each do |key, value|\n case key\n when \"AbsolutePTZF\"\n parts = value.split(\",\")\n self[:pan] = @pan = twos_complement(parts[0].to_i(16))\n self[:tilt] = @tilt = twos_complement(parts[1].to_i(16))\n @zoom_raw = parts[2].to_i(16)\n when \"PanMovementRange\"\n parts = value.split(\",\")\n pan_min = twos_complement(parts[0].to_i(16))\n pan_max = twos_complement(parts[1].to_i(16))\n @pan_range = pan_min..pan_max\n self[:pan_range] = {min: pan_min, max: pan_max}\n when \"TiltMovementRange\"\n parts = value.split(\",\")\n tilt_min = twos_complement(parts[0].to_i(16))\n tilt_max = twos_complement(parts[1].to_i(16))\n @tilt_range = tilt_min..tilt_max\n self[:tilt_range] = {min: tilt_min, max: tilt_max}\n when \"ZoomMovementRange\"\n parts = value.split(\",\")\n zoom_min = parts[0].to_i(16)\n zoom_max = parts[1].to_i(16)\n @zoom_range = zoom_min..zoom_max\n self[:zoom_range] = {min: zoom_min, max: zoom_max}\n when \"PtzfStatus\"\n parts = (value.split(\",\")).map do |state|\n Movement.parse(state)\n end[0..2]\n self[:moving] = @moving = parts.includes?(Movement::Moving)\n when \"PanTiltMaxVelocity\"\n @max_speed = value.to_i(16)\n end\n end\n self[:zoom] = @zoom_raw.not_nil!.to_f * (100.0 / @zoom_range.end.to_f)\n response\nend"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L308"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(**preset)\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L325"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L317"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {pan: @pan, tilt: @tilt, zoom: @zoom_raw}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"Implement Stoppable interface","summary":"

Implement Stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L178"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i + 1\naction(\"/command/ptzf.cgi?Move=stop,motor,image#{index}\", priority: 999, name: \"moving\", clear_queue: emergency) do\n if @zooming\n zoom(ZoomDirection::Stop)\n end\n self[:moving] = @moving = false\n query_status\nend\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L287"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nif direction.stop?\n action(\"/command/ptzf.cgi?Move=stop,zoom,image#{index}\", priority: 999, name: \"zooming\") do\n self[:zooming] = @zooming = false\n end\nelse\n action(\"/command/ptzf.cgi?Move=#{direction.out? ? \"wide\" : \"near\"},0,image#{index}\", name: \"zooming\") do\n self[:zooming] = @zooming = true\n end\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L272"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nposition = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_range.end.to_f).to_i\naction(\"/command/ptzf.cgi?AbsoluteZoom=#{zoom_value.to_s(16)}\", name: \"zooming\") do\n @zoom_raw = zoom_value\n self[:zoom] = @zoom = position\nend\n"}}],"macros":[{"html_id":"in_range(range,value)-macro","name":"in_range","abstract":false,"args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(range, value)","args_html":"(range, value)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L218"},"def":{"name":"in_range","args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":" \n{{ value }}\n = if \n{{ range }}\n.includes? \n{{ value }}\n\n \n{{ value }}\n\n \nelse\n \n{{ value }}\n < \n{{ range }}\n.begin ? \n{{ range }}\n.begin : \n{{ range }}\n.end\n \nend\n \n{{ value }}\n = twos_complement(\n{{ value }}\n)\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/CGI/Movement","path":"Sony/Camera/CGI/Movement.html","kind":"enum","full_name":"Sony::Camera::CGI::Movement","name":"Movement","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L25"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Idle","name":"Idle","value":"0"},{"id":"Moving","name":"Moving","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Sony/Camera/CGI","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI"},"instance_methods":[{"html_id":"idle?-instance-method","name":"idle?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L26"},"def":{"name":"idle?","visibility":"Public","body":"self == Idle"}},{"html_id":"moving?-instance-method","name":"moving?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L27"},"def":{"name":"moving?","visibility":"Public","body":"self == Moving"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L28"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA","path":"Sony/Camera/VISCA.html","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","doc":"clear the interface","summary":"

clear the interface

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L67"},"def":{"name":"connected","visibility":"Public","body":"reset_sequence_number\nsend_cmd(Bytes[0, 1], name: :if_clear, priority: 98)\n"}},{"html_id":"encode_position(value:UInt16):String-instance-method","name":"encode_position","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"args_string":"(value : UInt16) : String","args_html":"(value : UInt16) : String","location":{"filename":"src/sony/camera/visca.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L124"},"def":{"name":"encode_position","args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"return_type":"String","visibility":"Public","body":"io = IO::Memory.new\nio.write_bytes(value, IO::ByteFormat::BigEndian)\nbytes = io.to_slice.hexstring.rjust(4, '0')\n\"0#{bytes[0]}0#{bytes[1]}0#{bytes[2]}0#{bytes[3]}\"\n"}},{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L85"},"def":{"name":"home","visibility":"Public","body":"send_cmd(Bytes[6, 4], name: :pantilt)"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L89"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan_neg, pan_value, pan_zero = joyspeed(pan_speed, @max_pan_tilt_speed)\ntilt_neg, tilt_value, tilt_zero = joyspeed(tilt_speed, @max_pan_tilt_speed)\npan_direction = pan_zero ? \"03\" : (pan_neg ? \"01\" : \"02\")\ntilt_direction = tilt_zero ? \"03\" : (tilt_neg ? \"02\" : \"01\")\nbytes = \"0601#{pan_value}#{tilt_value}#{pan_direction}#{tilt_direction}\"\nresp = send_cmd(bytes.hexbytes, name: :joystick)\nif pan_zero && tilt_zero\n spawn do\n resp.get\n schedule.in(1.seconds) do\n pantilt?\n end\n end\nend\nresp\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L172"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","doc":"we want to tokenize the stream, ensure we only process a single packet at a time\nand that we have the complete message","summary":"

we want to tokenize the stream, ensure we only process a single packet at a time and that we have the complete message

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n if bytes.size < 4\n next 0\n end\n ((IO::Memory.new(bytes[2..3])).read_bytes(UInt16, IO::ByteFormat::BigEndian)).to_i + 8\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@presets = (setting?(Presets, :camera_presets)) || @presets\n@max_pan_tilt_speed = (setting?(UInt8, :max_pan_tilt_speed)) || 15_u8\n@zoom_speed = (setting?(UInt8, :zoom_speed)) || 3_u8\n@zoom_max = (setting?(UInt16, :zoom_max)) || 16384_u16\n@camera_address = 128_u8 | ((setting?(UInt8, :camera_no)) || 1_u8)\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan_pos:UInt16-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L39"},"def":{"name":"pan_pos","return_type":"UInt16","visibility":"Public","body":"@pan_pos"}},{"html_id":"pantilt(pan:UInt16,tilt:UInt16,speed:UInt8)-instance-method","name":"pantilt","doc":"moves to an absolute position","summary":"

moves to an absolute position

","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"args_string":"(pan : UInt16, tilt : UInt16, speed : UInt8)","args_html":"(pan : UInt16, tilt : UInt16, speed : UInt8)","location":{"filename":"src/sony/camera/visca.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L138"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"visibility":"Public","body":"speed = speed.clamp(0_u8, @max_pan_tilt_speed)\nbytes = \"0602#{Bytes[speed].hexstring.rjust(2, '0')}00#{encode_position(pan)}#{encode_position(tilt)}\"\nsend_cmd(bytes.hexbytes, name: :pantilt)\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L221"},"def":{"name":"pantilt?","visibility":"Public","body":"send_inq(Bytes[6, 18], name: :pantilt_query, priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/camera/visca.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L74"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"payload = state ? Bytes[4, 0, 2] : Bytes[4, 0, 3]\nsend_cmd(payload, name: :power)\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L79"},"def":{"name":"power?","visibility":"Public","body":"send_inq(Bytes[4, 0], name: :power_query)"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L144"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n pantilt(pan_pos, tilt_pos, @max_pan_tilt_speed)\n zoom_to(zoom_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task,sequence:UInt32|Nil=nil):Nil-instance-method","name":"received","doc":"process incoming data, tokenised so we know each data packet is exactly one message","summary":"

process incoming data, tokenised so we know each data packet is exactly one message

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"args_string":"(data, task, sequence : UInt32 | Nil = nil) : Nil","args_html":"(data, task, sequence : UInt32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/visca.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L336"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"Camera sent: 0x#{data.hexstring}\"\nend\nif sequence.nil?\n logger.info do\n \"unexpected packet received, ignoring as no sequence pending\"\n end\n return\nend\nio = IO::Memory.new(data)\npacket = io.read_bytes(Packet)\npayload = packet.payload\ncase packet.type\nwhen .device_control?\n case payload[-1]\n when 1_u8\n reset_sequence_number(directly: true)\n logger.info do\n \"sequence number error, resetting sequence\"\n end\n when 2_u8\n task.try(&.abort(\"bad request\"))\n end\n return\nwhen .device_reply?\n if task && (task.name == \"reset_sequence_number\")\n task.success\n else\n task.try(&.retry(\"sequence number reset, retrying task\"))\n end\n return\nwhen .reply?\n if sequence != packet.sequence\n logger.info do\n \"unexpected sequence number, ignoring\"\n end\n return\n end\nelse\n logger.info do\n \"unexpected packet type #{packet.type}, ignoring\"\n end\n return\nend\ncheck_command = payload[1] & 240_u8\ncase check_command\nwhen 64_u8\n logger.debug do\n \"ignoring command accepted message\"\n end\n return\nwhen 80_u8\n logger.debug do\n \"command complete message\"\n end\nwhen 96_u8\n case payload[2]\n when 2_u8\n task.try(&.abort(\"syntax error in request\"))\n when 3_u8\n schedule.in(50.milliseconds) do\n task.try(&.retry(\"camera busy\"))\n end\n when 4_u8\n task.try(&.abort(\"request was cancelled by the user\"))\n when 5_u8\n task.try(&.success)\n when 65_u8\n task.try(&.abort(\"request could not be performed\"))\n end\n return\nend\ncase task.try(&.name)\nwhen \"zoom_query\"\n @zoom_raw = zoom_value = decode_position(payload[2..5])\n self[:zoom] = @zoom_pos = zoom_value.to_f * (100.0 / @zoom_max.to_f)\nwhen \"pantilt_query\"\n @pan_pos = decode_position(payload[2..5])\n @tilt_pos = decode_position(payload[6..9])\nwhen \"zoom_to\"\n zoom?\nwhen \"pantilt\"\n pantilt?\nwhen \"power_query\"\n self[:power] = payload[-2] == 2_u8\nend\ntask.try(&.success)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L159"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"reset_sequence_number(directly:Bool=false)-instance-method","name":"reset_sequence_number","abstract":false,"args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"args_string":"(directly : Bool = false)","args_html":"(directly : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L320"},"def":{"name":"reset_sequence_number","args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"visibility":"Public","body":"packet = Packet.new\npacket.type = :device_control\npacket.sequence = @sequence = 1_u32\npacket.payload = Bytes[1_u8]\nif directly\n return transport.send(packet)\nend\nqueue(name: :reset_sequence_number, priority: 99) do |task|\n transport.send(packet, task) do |data|\n received(data, task, @sequence)\n end\nend\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L154"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"send_cmd(bytes:String)-instance-method","name":"send_cmd","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L259"},"def":{"name":"send_cmd","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_cmd(bytes.hexbytes)"}},{"html_id":"send_inq(bytes:String)-instance-method","name":"send_inq","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L287"},"def":{"name":"send_inq","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_inq(bytes.hexbytes)"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L227"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"zoom(:stop)"}},{"html_id":"tilt_pos:UInt16-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L38"},"def":{"name":"tilt_pos","return_type":"UInt16","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L203"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"speed_byte = case direction\nin .stop?\n schedule.in(500.milliseconds) do\n zoom?\n end\n 0_u8\nin .out?\n 32_u8 | @zoom_speed\nin .in?\n 48_u8 | @zoom_speed\nend\nsend_cmd(Bytes[4, 7, speed_byte], name: :zoom)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L217"},"def":{"name":"zoom?","visibility":"Public","body":"send_inq(Bytes[4, 71], name: :zoom_query, priority: 0)"}},{"html_id":"zoom_raw:UInt16-instance-method","name":"zoom_raw","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L36"},"def":{"name":"zoom_raw","return_type":"UInt16","visibility":"Public","body":"@zoom_raw"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L194"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_max.to_f).to_u16\nbytes = \"0447#{encode_position(zoom_value)}\"\nsend_cmd(bytes.hexbytes, name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet","path":"Sony/Camera/VISCA/Packet.html","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Sony::Camera::VISCA::Packet]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: Type}, {type: \"basic\", name: size, cls: UInt16, onlyif: nil, verify: nil, value: -> do\n payload.size.to_u16\nend}, {type: \"basic\", name: sequence, cls: UInt32, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: payload, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"},"doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L235"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"payload:Bytes-instance-method","name":"payload","abstract":false,"def":{"name":"payload","return_type":"Bytes","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:Bytes)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"args_string":"(payload : Bytes)","args_html":"(payload : Bytes)","def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"visibility":"Public","body":"@payload = payload"}},{"html_id":"sequence:UInt32-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt32","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt32)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"args_string":"(sequence : UInt32)","args_html":"(sequence : UInt32)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt16-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt16","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt16)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"args_string":"(size : UInt16)","args_html":"(size : UInt16)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Type)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"}],"args_string":"(type : Type)","args_html":"(type : Type)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Type"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet/Type","path":"Sony/Camera/VISCA/Packet/Type.html","kind":"enum","full_name":"Sony::Camera::VISCA::Packet::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L237"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"256_u16"},{"id":"Inquiry","name":"Inquiry","value":"272_u16"},{"id":"Reply","name":"Reply","value":"273_u16"},{"id":"DeviceSetting","name":"DeviceSetting","value":"288_u16","doc":"VISCA device setting","summary":"

VISCA device setting

"},{"id":"DeviceControl","name":"DeviceControl","value":"512_u16","doc":"reset: 0x01\nerror: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)","summary":"

reset: 0x01 error: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)

"},{"id":"DeviceReply","name":"DeviceReply","value":"513_u16","doc":"Acknowledge for reset","summary":"

Acknowledge for reset

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA/Packet","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L238"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"device_control?-instance-method","name":"device_control?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L246"},"def":{"name":"device_control?","visibility":"Public","body":"self == DeviceControl"}},{"html_id":"device_reply?-instance-method","name":"device_reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L249"},"def":{"name":"device_reply?","visibility":"Public","body":"self == DeviceReply"}},{"html_id":"device_setting?-instance-method","name":"device_setting?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L242"},"def":{"name":"device_setting?","visibility":"Public","body":"self == DeviceSetting"}},{"html_id":"inquiry?-instance-method","name":"inquiry?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L239"},"def":{"name":"inquiry?","visibility":"Public","body":"self == Inquiry"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L240"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA/Presets","path":"Sony/Camera/VISCA/Presets.html","kind":"alias","full_name":"Sony::Camera::VISCA::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/sony/camera/visca.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(UInt16, UInt16, Float64))","aliased_html":"Hash(String, {UInt16, UInt16, Float64})","const":false,"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"}}]}]},{"html_id":"drivers/Sony/Displays","path":"Sony/Displays.html","kind":"module","full_name":"Sony::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Displays/Bravia","path":"Sony/Displays/Bravia.html","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{ir_code: \"IRCC\", power: \"POWR\", volume: \"VOLU\", audio_mute: \"AMUT\", mute: \"PMUT\", channel: \"CHNN\", tv_input: \"ISRC\", input: \"INPT\", toggle_mute: \"TPMU\", pip: \"PIPI\", toggle_pip: \"TPIP\", position_pip: \"TPPP\", broadcast_address: \"BADR\", mac_address: \"MADR\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Displays","kind":"module","full_name":"Sony::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L102"},"def":{"name":"audio_mute?","visibility":"Public","body":"query(Command::AudioMute, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L57"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L126"},"def":{"name":"do_poll","visibility":"Public","body":"if self[:power]?\n input?\n mute?\n audio_mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L48"},"def":{"name":"input?","visibility":"Public","body":"query(Command::Input, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/displays/bravia.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L76"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"request(Command::Mute, state)\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L89"},"def":{"name":"mute?","visibility":"Public","body":"query(Command::Mute, priority: 0)"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/sony/displays/bravia.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L93"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::AudioMute, state)\naudio_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"self[:volume_min] = 0\nself[:volume_max] = 100\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/displays/bravia.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L67"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::Power, state)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L72"},"def":{"name":"power?","visibility":"Public","body":"query(Command::Power)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/displays/bravia.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L147"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"parsed_data = convert_binary(data[3..6])\ncmd = Command.from_response?(parsed_data)\nif cmd.nil?\n return task.try(&.abort(\"unrecognised command: #{parsed_data}\"))\nend\nparam = data[7..-1]\nif param.first? == MessageType::Error.value\n return task.try(&.abort(\"error\"))\nend\ncase MessageType.from_value?(data[2])\nwhen MessageType::Answer\n update_status(cmd, param)\n task.try(&.success)\nwhen MessageType::Notify\n update_status(cmd, param)\nelse\n logger.debug do\n \"Unhandled device response: #{begin\n data[2].chr\n rescue\n data[2]\n end}\"\n end\n task.try(&.abort(\"Unhandled device response\"))\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/displays/bravia.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching input to #{input}\"\nend\nrequest(Command::Input, input.to_param)\nself[:input] = input.to_s\ninput?\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L85"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L98"},"def":{"name":"unmute_audio","visibility":"Public","body":"mute_audio(false)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/sony/displays/bravia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L106"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"level = (level.to_f.clamp(0.0, 100.0)).round_away.to_i\nrequest(Command::Volume, level)\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L112"},"def":{"name":"volume?","visibility":"Public","body":"query(Command::Volume, priority: 0)"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L121"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L116"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sony/Displays/Bravia/Command","path":"Sony/Displays/Bravia/Command.html","kind":"enum","full_name":"Sony::Displays::Bravia::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IrCode","name":"IrCode","value":"0"},{"id":"Power","name":"Power","value":"1"},{"id":"Volume","name":"Volume","value":"2"},{"id":"AudioMute","name":"AudioMute","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Channel","name":"Channel","value":"5"},{"id":"TvInput","name":"TvInput","value":"6"},{"id":"Input","name":"Input","value":"7"},{"id":"ToggleMute","name":"ToggleMute","value":"8"},{"id":"Pip","name":"Pip","value":"9"},{"id":"TogglePip","name":"TogglePip","value":"10"},{"id":"PositionPip","name":"PositionPip","value":"11"},{"id":"BroadcastAddress","name":"BroadcastAddress","value":"12"},{"id":"MacAddress","name":"MacAddress","value":"13"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"class_methods":[{"html_id":"from_response?(message)-class-method","name":"from_response?","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"from_response?","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"case message\nwhen \"IRCC\"\n IrCode\nwhen \"POWR\"\n Power\nwhen \"VOLU\"\n Volume\nwhen \"AMUT\"\n AudioMute\nwhen \"PMUT\"\n Mute\nwhen \"CHNN\"\n Channel\nwhen \"ISRC\"\n TvInput\nwhen \"INPT\"\n Input\nwhen \"TPMU\"\n ToggleMute\nwhen \"PIPI\"\n Pip\nwhen \"TPIP\"\n TogglePip\nwhen \"TPPP\"\n PositionPip\nwhen \"BADR\"\n BroadcastAddress\nwhen \"MADR\"\n MacAddress\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"broadcast_address?-instance-method","name":"broadcast_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"broadcast_address?","visibility":"Public","body":"self == BroadcastAddress"}},{"html_id":"channel?-instance-method","name":"channel?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"channel?","visibility":"Public","body":"self == Channel"}},{"html_id":"function-instance-method","name":"function","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"function","visibility":"Public","body":"case self\nin IrCode\n \"IRCC\"\nin Power\n \"POWR\"\nin Volume\n \"VOLU\"\nin AudioMute\n \"AMUT\"\nin Mute\n \"PMUT\"\nin Channel\n \"CHNN\"\nin TvInput\n \"ISRC\"\nin Input\n \"INPT\"\nin ToggleMute\n \"TPMU\"\nin Pip\n \"PIPI\"\nin TogglePip\n \"TPIP\"\nin PositionPip\n \"TPPP\"\nin BroadcastAddress\n \"BADR\"\nin MacAddress\n \"MADR\"\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"ir_code?-instance-method","name":"ir_code?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"ir_code?","visibility":"Public","body":"self == IrCode"}},{"html_id":"mac_address?-instance-method","name":"mac_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"mac_address?","visibility":"Public","body":"self == MacAddress"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"position_pip?-instance-method","name":"position_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"position_pip?","visibility":"Public","body":"self == PositionPip"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"toggle_mute?-instance-method","name":"toggle_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_mute?","visibility":"Public","body":"self == ToggleMute"}},{"html_id":"toggle_pip?-instance-method","name":"toggle_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_pip?","visibility":"Public","body":"self == TogglePip"}},{"html_id":"tv_input?-instance-method","name":"tv_input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"tv_input?","visibility":"Public","body":"self == TvInput"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Sony/Displays/Bravia/Input","path":"Sony/Displays/Bravia/Input.html","kind":"enum","full_name":"Sony::Displays::Bravia::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L20"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Tv0","name":"Tv0","value":"0_u32"},{"id":"Hdmi0","name":"Hdmi0","value":"100000000_u32"},{"id":"Mirror0","name":"Mirror0","value":"500000000_u32"},{"id":"Vga0","name":"Vga0","value":"600000000_u32"},{"id":"Tv1","name":"Tv1","value":"1_u32"},{"id":"Hdmi1","name":"Hdmi1","value":"100000001_u32"},{"id":"Mirror1","name":"Mirror1","value":"500000001_u32"},{"id":"Vga1","name":"Vga1","value":"600000001_u32"},{"id":"Tv2","name":"Tv2","value":"2_u32"},{"id":"Hdmi2","name":"Hdmi2","value":"100000002_u32"},{"id":"Mirror2","name":"Mirror2","value":"500000002_u32"},{"id":"Vga2","name":"Vga2","value":"600000002_u32"},{"id":"Tv3","name":"Tv3","value":"3_u32"},{"id":"Hdmi3","name":"Hdmi3","value":"100000003_u32"},{"id":"Mirror3","name":"Mirror3","value":"500000003_u32"},{"id":"Vga3","name":"Vga3","value":"600000003_u32"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"constructors":[{"html_id":"from_param(value:String):self-class-method","name":"from_param","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String) : self","args_html":"(value : String) : self","location":{"filename":"src/sony/displays/bravia.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L28"},"def":{"name":"from_param","args":[{"name":"value","external_name":"value","restriction":"String"}],"return_type":"self","visibility":"Public","body":"begin\n from_value(UInt32.new(value))\nrescue\n raise(\"Unknown enum #{self} value: #{value}\")\nend"}}],"instance_methods":[{"html_id":"hdmi0?-instance-method","name":"hdmi0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi0?","visibility":"Public","body":"self == Hdmi0"}},{"html_id":"hdmi1?-instance-method","name":"hdmi1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi1?","visibility":"Public","body":"self == Hdmi1"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"mirror0?-instance-method","name":"mirror0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror0?","visibility":"Public","body":"self == Mirror0"}},{"html_id":"mirror1?-instance-method","name":"mirror1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror1?","visibility":"Public","body":"self == Mirror1"}},{"html_id":"mirror2?-instance-method","name":"mirror2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror2?","visibility":"Public","body":"self == Mirror2"}},{"html_id":"mirror3?-instance-method","name":"mirror3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror3?","visibility":"Public","body":"self == Mirror3"}},{"html_id":"to_param:String-instance-method","name":"to_param","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L34"},"def":{"name":"to_param","return_type":"String","visibility":"Public","body":"value.to_s.rjust(5, '0')"}},{"html_id":"tv0?-instance-method","name":"tv0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv0?","visibility":"Public","body":"self == Tv0"}},{"html_id":"tv1?-instance-method","name":"tv1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv1?","visibility":"Public","body":"self == Tv1"}},{"html_id":"tv2?-instance-method","name":"tv2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv2?","visibility":"Public","body":"self == Tv2"}},{"html_id":"tv3?-instance-method","name":"tv3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv3?","visibility":"Public","body":"self == Tv3"}},{"html_id":"vga0?-instance-method","name":"vga0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga0?","visibility":"Public","body":"self == Vga0"}},{"html_id":"vga1?-instance-method","name":"vga1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga1?","visibility":"Public","body":"self == Vga1"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga2?","visibility":"Public","body":"self == Vga2"}},{"html_id":"vga3?-instance-method","name":"vga3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga3?","visibility":"Public","body":"self == Vga3"}}]},{"html_id":"drivers/Sony/Displays/Bravia/MessageType","path":"Sony/Displays/Bravia/MessageType.html","kind":"enum","full_name":"Sony::Displays::Bravia::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Answer","name":"Answer","value":"65_u8"},{"id":"Control","name":"Control","value":"67_u8"},{"id":"Enquiry","name":"Enquiry","value":"69_u8"},{"id":"Notify","name":"Notify","value":"78_u8"},{"id":"Error","name":"Error","value":"70_u8"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L136"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"control?-instance-method","name":"control?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L137"},"def":{"name":"control?","visibility":"Public","body":"self == Control"}},{"html_id":"control_character-instance-method","name":"control_character","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L142"},"def":{"name":"control_character","visibility":"Public","body":"value.chr"}},{"html_id":"enquiry?-instance-method","name":"enquiry?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L138"},"def":{"name":"enquiry?","visibility":"Public","body":"self == Enquiry"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L140"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"notify?-instance-method","name":"notify?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L139"},"def":{"name":"notify?","visibility":"Public","body":"self == Notify"}}]}]}]},{"html_id":"drivers/Sony/Projector","path":"Sony/Projector.html","kind":"module","full_name":"Sony::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Projector/Fh","path":"Sony/Projector/Fh.html","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INPUTS_LOOKUP","name":"INPUTS_LOOKUP","value":"{\"hdmi1\" => Inputs::HDMI, \"dvi1\" => Inputs::DVI, \"video1\" => Inputs::Video, \"svideo1\" => Inputs::SVideo, \"rgb1\" => Inputs::RGB, \"hdbaset1\" => Inputs::HDBaseT, \"input_a\" => Inputs::InputA, \"input_b\" => Inputs::InputB, \"input_c\" => Inputs::InputC, \"input_d\" => Inputs::InputD, \"input_e\" => Inputs::InputE}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"brightness\", val.clamp(0, 100))"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness?","visibility":"Public","body":"get(\"brightness\")"}},{"html_id":"color(val:Int32)-instance-method","name":"color","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"color","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"color\", val.clamp(0, 100))"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"color?","visibility":"Public","body":"get(\"color\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L48"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"contrast\", val.clamp(0, 100))"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast?","visibility":"Public","body":"get(\"contrast\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(val:Int32)-instance-method","name":"hue","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"hue","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"hue\", val.clamp(0, 100))"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"hue?","visibility":"Public","body":"get(\"hue\")"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L99"},"def":{"name":"input?","visibility":"Public","body":"(get(\"input\")).get\nself[:input].as_s\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/fh.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L66"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"(set(\"blank\", state ? \"on\" : \"off\")).get\nself[:mute] = state\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L75"},"def":{"name":"mute?","visibility":"Public","body":"(get(\"blank\")).get\nself[:mute].as_bool\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L44"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/fh.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(set(\"power\", state ? \"on\" : \"off\")).get\nself[:power] = state\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L61"},"def":{"name":"power?","visibility":"Public","body":"get(\"power_status\")\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(response,task)-instance-method","name":"received","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(response, task)","args_html":"(response, task)","location":{"filename":"src/sony/projector/fh.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L120"},"def":{"name":"received","args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(response, task)"}},{"html_id":"sharpness(val:Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"sharpness\", val.clamp(0, 100))"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness?","visibility":"Public","body":"get(\"sharpness\")"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/sony/projector/fh.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L94"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"(set(\"input\", input.to_message)).get\nself[:input] = input.readable\n"}}],"types":[{"html_id":"drivers/Sony/Projector/Fh/Inputs","path":"Sony/Projector/Fh/Inputs.html","kind":"enum","full_name":"Sony::Projector::Fh::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"Video","name":"Video","value":"2"},{"id":"SVideo","name":"SVideo","value":"3"},{"id":"RGB","name":"RGB","value":"4"},{"id":"HDBaseT","name":"HDBaseT","value":"5"},{"id":"InputA","name":"InputA","value":"6"},{"id":"InputB","name":"InputB","value":"7"},{"id":"InputC","name":"InputC","value":"8"},{"id":"InputD","name":"InputD","value":"9"},{"id":"InputE","name":"InputE","value":"10"}],"namespace":{"html_id":"drivers/Sony/Projector/Fh","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L18"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L13"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L19"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L20"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L21"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L22"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"input_e?-instance-method","name":"input_e?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L23"},"def":{"name":"input_e?","visibility":"Public","body":"self == InputE"}},{"html_id":"readable:String-instance-method","name":"readable","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L34"},"def":{"name":"readable","return_type":"String","visibility":"Public","body":"to_s.downcase"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L17"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L16"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"to_message:String-instance-method","name":"to_message","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L25"},"def":{"name":"to_message","return_type":"String","visibility":"Public","body":"case self\nin HDMI, DVI, Video, SVideo, RGB, HDBaseT\n to_s.downcase + \"1\"\nin InputA, InputB, InputC, InputD, InputE\n to_s.underscore\nend"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L15"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Sony/Projector/PjTalk","path":"Sony/Projector/PjTalk.html","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CATEGORY","name":"ERROR_CATEGORY","value":"{1_u8 => :item_error, 2_u8 => :community_error, 16_u8 => :request_error, 32_u8 => :network_error, 240_u8 => :comms_error, 241_u8 => :ram_error}"},{"id":"ERRORS","name":"ERRORS","value":"{item_error: {1_u8 => \"Invalid Item\", 2_u8 => \"Invalid Item Request\", 3_u8 => \"Invalid Length\", 4_u8 => \"Invalid Data\", 17_u8 => \"Short Data\", 128_u8 => \"Not Applicable Item\"}, community_error: {1_u8 => \"Different Community\"}, request_error: {1_u8 => \"Invalid Version\", 2_u8 => \"Invalid Category\", 3_u8 => \"Invalid Request\", 17_u8 => \"Short Header\", 18_u8 => \"Short Community\", 19_u8 => \"Short Command\"}, network_error: {1_u8 => \"Timeout\"}, comms_error: {1_u8 => \"Timeout\", 16_u8 => \"Check Sum Error\", 32_u8 => \"Framing Error\", 48_u8 => \"Parity Error\", 64_u8 => \"Over Run Error\", 80_u8 => \"Other Comm Error\", 240_u8 => \"Unknown Response\"}, ram_error: {16_u8 => \"Read Error\", 32_u8 => \"Write Error\"}, unknown: {} of UInt8 => String}"},{"id":"METHODS","name":"METHODS","value":"[:contrast, :brightness, :color, :hue, :sharpness]"},{"id":"PJTALK_HEADER","name":"PJTALK_HEADER","value":"Bytes[2, 10]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(:get, :brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"color?","visibility":"Public","body":"do_send(:get, :color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(:get, :contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L177"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n input?\n mute?\n do_send(:get, :error_status, priority: 0)\n lamp_time?\nend"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"hue?","visibility":"Public","body":"do_send(:get, :hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L93"},"def":{"name":"input?","visibility":"Public","body":"do_send(:get, :input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L97"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(:get, :lamp_timer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L101"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(:set, :mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L110"},"def":{"name":"mute?","visibility":"Public","body":"do_send(:get, :mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.to_slice\n bytes.size < 10 ? -1 : 10 + bytes[9]\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@community = (setting?(String, :community)) || \"SONY\""}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L47"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:set, :power_on, name: :power)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:set, :power_off, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L61"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(:get, :power_status, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L191"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\nresponse_status = ResponseStatus.from_value(data[6])\npjt_command = Command.from_bytes(data[7..8])\npjt_length = data[9]\npjt_data = pjt_length > 0 ? data[10..-1] : Bytes.new(0)\nif response_status.no_good?\n category = ERROR_CATEGORY[pjt_data[0]]? || (:unknown)\n message = ERRORS[category][pjt_data[1]]? || \"unknown: category #{pjt_data[1].to_s(16)}, reason #{pjt_data[1].to_s(16)}\"\n self[:last_error] = \"#{category}: #{message}\"\n logger.debug do\n \"Command #{pjt_command} failed with #{category}: #{message}\"\n end\n return task.try(&.abort)\nend\ncase pjt_command\nwhen .power_on?\n self[:power] = true\nwhen .power_off?\n self[:power] = false\nwhen .lamp_timer?\n self[:lamp_usage] = (pjt_data[-2].to_u16 << 8) + pjt_data[-1]\nwhen .power_status?\n case pjt_data[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\nwhen .mute?\n self[:mute] = pjt_data[-1] == 1\nwhen .input?\n self[:input] = Input.from_bytes(pjt_data)\nwhen .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[pjt_command.to_s.downcase] = pjt_data[-1]\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(:get, :sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L86"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(:set, :input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/PjTalk/Command","path":"Sony/Projector/PjTalk/Command.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L130"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L148"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L138"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L139"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L137"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L135"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L140"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L133"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L142"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L134"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L132"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L131"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L136"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L141"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L144"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/CommandType","path":"Sony/Projector/PjTalk/CommandType.html","kind":"enum","full_name":"Sony::Projector::PjTalk::CommandType","name":"CommandType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L153"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L155"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L154"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/Input","path":"Sony/Projector/PjTalk/Input.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L66"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L79"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L67"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L68"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L69"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L70"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L71"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L73"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L75"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L72"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/ResponseStatus","path":"Sony/Projector/PjTalk/ResponseStatus.html","kind":"enum","full_name":"Sony::Projector::PjTalk::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"NoGood","name":"NoGood","value":"0_u8"},{"id":"Okay","name":"Okay","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"no_good?-instance-method","name":"no_good?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L187"},"def":{"name":"no_good?","visibility":"Public","body":"self == NoGood"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L188"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Sony/Projector/SerialControl","path":"Sony/Projector/SerialControl.html","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"154_u8"},{"id":"ERRORS","name":"ERRORS","value":"{0 => \"No Error\", 1 => \"Lamp Error\", 2 => \"Fan Error\", 4 => \"Cover Error\", 8 => \"Temperature Error\", 16 => \"D5V Error\", 32 => \"Power Error\", 64 => \"Warning Error\", 128 => \"NVM Data ERROR\"}"},{"id":"INDICATOR","name":"INDICATOR","value":"169_u8"},{"id":"METHODS","name":"METHODS","value":"[\"Contrast\", \"Brightness\", \"Color\", \"Hue\", \"Sharpness\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(Type::Get, Command::Brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"color?","visibility":"Public","body":"do_send(Type::Get, Command::Color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(Type::Get, Command::Contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"hue?","visibility":"Public","body":"do_send(Type::Get, Command::Hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"do_send(Type::Get, Command::Input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L81"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(Type::Get, Command::LampTimer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L85"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(Type::Set, Command::Mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L94"},"def":{"name":"mute?","visibility":"Public","body":"do_send(Type::Get, Command::Mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[DELIMITER])"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L30"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(Type::Set, Command::PowerOn, name: :power)\n do_send(Type::Set, Command::PowerOn, name: :power, delay: 3.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(Type::Set, Command::PowerOff, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L45"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(Type::Get, Command::PowerStatus, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L177"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\ncmd = data[1..2]\ntype = data[3]\nresp = data[4..5]\nchecksum = data[1..5].reduce do |a, b|\n a = a | b\nend\nif data[6] == checksum\nelse\n return task.try(&.abort(\"Checksum should be 0x#{checksum.to_s(base: 16, upcase: true)}\"))\nend\nif type == 3\n if cmd == Bytes[0, 0]\n return task.try(&.success)\n else\n return task.try(&.abort(\"Command failed with 0x#{cmd.join(&.to_s(base: 16, upcase: true))}\"))\n end\nelse\n case command = Command.from_bytes(cmd)\n when .power_on?\n self[:power] = true\n when .power_off?\n self[:power] = false\n when .lamp_timer?\n self[:lamp_usage] = (resp[-2].to_u16 << 8) + resp[-1]\n when .power_status?\n case resp[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\n when .mute?\n self[:mute] = resp[-1] == 1\n when .input?\n self[:input] = Input.from_bytes(resp)\n when .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[command.to_s.downcase] = resp[-1]\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(Type::Get, Command::Sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L70"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(Type::Set, Command::Input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/SerialControl/Command","path":"Sony/Projector/SerialControl/Command.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L153"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L143"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L144"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L142"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L140"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L145"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L138"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L147"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L139"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L137"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L136"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L141"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L146"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L149"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Input","path":"Sony/Projector/SerialControl/Input.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L50"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L63"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L51"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L52"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L53"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L54"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L55"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L57"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L59"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L56"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Type","path":"Sony/Projector/SerialControl/Type.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L158"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L160"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L159"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]}]}]}]},{"html_id":"drivers/Steinel","path":"Steinel.html","kind":"module","full_name":"Steinel","name":"Steinel","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Steinel/HPD2","path":"Steinel/HPD2.html","kind":"class","full_name":"Steinel::HPD2","name":"HPD2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{illuminance: SensorType::Illuminance, temperature: SensorType::Temperature, humidity: SensorType::Humidity, presence: SensorType::Presence, people: SensorType::PeopleCount, illuminance_zones: SensorType::Illuminance, presence_zones: SensorType::Presence, people_zones: SensorType::PeopleCount}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Steinel","kind":"module","full_name":"Steinel","name":"Steinel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L98"},"def":{"name":"get_status","visibility":"Public","body":"response = get(\"/api/sensorstatus.php\")\nlogger.debug do\n \"received #{response.body}\"\nend\nif response.success?\n status = SensorStatus.from_json(response.body.not_nil!)\n time = Time.utc.to_unix\n mod_id = module_id\n humidity = Interface::Sensor::Detail.new(SensorType::Humidity, status.humidity.to_f, time, @mac, \"humidity\", \"Humidity\", module_id: mod_id, binding: \"humidity\")\n self[:humidity] = status.humidity.to_f\n temperature = Interface::Sensor::Detail.new(SensorType::Temperature, status.temperature.to_f, time, @mac, \"temperature\", \"Temperature\", module_id: mod_id, binding: \"temperature\", unit: \"Cel\")\n self[:temperature] = status.temperature.to_f\n pres = status.person_presence.zero? ? 0.0 : 1.0\n presence = Interface::Sensor::Detail.new(SensorType::Presence, pres, time, @mac, \"presence\", \"Person Presence\", module_id: mod_id, binding: \"presence\")\n self[:presence] = pres\n people = Interface::Sensor::Detail.new(SensorType::PeopleCount, status.detected_persons.to_f, time, @mac, \"people\", \"Detected Persons\", module_id: mod_id, binding: \"people\")\n self[:people] = status.detected_persons\n illuminance = Interface::Sensor::Detail.new(SensorType::Illuminance, status.global_illuminance_lux, time, @mac, \"illuminance\", \"Illuminance\", module_id: mod_id, binding: \"illuminance\", unit: \"lx\")\n self[:illuminance] = status.global_illuminance_lux\n self[:presence_zones] = status.person_presence_zone.map do |value|\n value.zero? ? 0.0 : 1.0\n end\n presence_zones = status.person_presence_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Presence, value.zero? ? 0.0 : 1.0, time, @mac, \"presence-#{index}\", \"Person Presence in Zone#{index}\")\n end\n self[:people_zones] = status.detected_persons_zone\n people_zones = status.detected_persons_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::PeopleCount, value.to_f, time, @mac, \"people-#{index}\", \"Detected People in Zone#{index}\")\n end\n self[:illuminance_zones] = status.lux_zone\n illuminance_zones = status.lux_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Illuminance, value, time, @mac, \"illuminance-#{index}\", \"Illuminance in Zone#{index}\", unit: \"lx\")\n end\n @state = {humidity: humidity, temperature: temperature, presence: presence, people: people, illuminance: illuminance, presence_zones: presence_zones, people_zones: people_zones, illuminance_zones: illuminance_zones}\n status\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nschedule.every(5.seconds) do\n get_status\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/steinel/hpd2.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L38"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n case id\n when \"humidity\"\n state[:humidity]\n when \"temperature\"\n state[:temperature]\n when \"presence\"\n state[:presence]\n when \"people\"\n state[:people]\n when \"illuminance\"\n state[:illuminance]\n end\n else\n if index = index_str.to_i?\n case id\n when \"presence\"\n state[:presence_zones][index]?\n when \"people\"\n state[:people_zones][index]?\n when \"illuminance\"\n state[:illuminance_zones][index]?\n end\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/steinel/hpd2.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L83"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return state.values.to_a.flatten\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Interface::Sensor::Detail | Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << state[key]\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"state:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))-instance-method","name":"state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L22"},"def":{"name":"state","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail))","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"Steinel::HPD2#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))|Nil-instance-method","name":"state?","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L22"},"def":{"name":"state?","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail)) | ::Nil","visibility":"Public","body":"@state"}}],"types":[{"html_id":"drivers/Steinel/HPD2/SensorStatus","path":"Steinel/HPD2/SensorStatus.html","kind":"class","full_name":"Steinel::HPD2::SensorStatus","name":"SensorStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L151"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/steinel/hpd2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L152"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_version:String-instance-method","name":"app_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version","return_type":"String","visibility":"Public","body":"@app_version"}},{"html_id":"app_version=(app_version:String)-instance-method","name":"app_version=","abstract":false,"args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"args_string":"(app_version : String)","args_html":"(app_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version=","args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"visibility":"Public","body":"@app_version = app_version"}},{"html_id":"arm_sensor_cpu_usage:String-instance-method","name":"arm_sensor_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage","return_type":"String","visibility":"Public","body":"@arm_sensor_cpu_usage"}},{"html_id":"arm_sensor_cpu_usage=(arm_sensor_cpu_usage:String)-instance-method","name":"arm_sensor_cpu_usage=","abstract":false,"args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"args_string":"(arm_sensor_cpu_usage : String)","args_html":"(arm_sensor_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage=","args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@arm_sensor_cpu_usage = arm_sensor_cpu_usage"}},{"html_id":"average_fps5:Float64-instance-method","name":"average_fps5","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5","return_type":"Float64","visibility":"Public","body":"@average_fps5"}},{"html_id":"average_fps50:Float64-instance-method","name":"average_fps50","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50","return_type":"Float64","visibility":"Public","body":"@average_fps50"}},{"html_id":"average_fps50=(average_fps50:Float64)-instance-method","name":"average_fps50=","abstract":false,"args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"args_string":"(average_fps50 : Float64)","args_html":"(average_fps50 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50=","args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"visibility":"Public","body":"@average_fps50 = average_fps50"}},{"html_id":"average_fps5=(average_fps5:Float64)-instance-method","name":"average_fps5=","abstract":false,"args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"args_string":"(average_fps5 : Float64)","args_html":"(average_fps5 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5=","args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"visibility":"Public","body":"@average_fps5 = average_fps5"}},{"html_id":"detected_persons:Int32-instance-method","name":"detected_persons","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons","return_type":"Int32","visibility":"Public","body":"@detected_persons"}},{"html_id":"detected_persons=(detected_persons:Int32)-instance-method","name":"detected_persons=","abstract":false,"args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"args_string":"(detected_persons : Int32)","args_html":"(detected_persons : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons=","args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"visibility":"Public","body":"@detected_persons = detected_persons"}},{"html_id":"detected_persons_zone:Array(Int32)-instance-method","name":"detected_persons_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone","return_type":"Array(Int32)","visibility":"Public","body":"@detected_persons_zone"}},{"html_id":"detected_persons_zone=(detected_persons_zone:Array(Int32))-instance-method","name":"detected_persons_zone=","abstract":false,"args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"args_string":"(detected_persons_zone : Array(Int32))","args_html":"(detected_persons_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone=","args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@detected_persons_zone = detected_persons_zone"}},{"html_id":"detection_zones_present:Int32-instance-method","name":"detection_zones_present","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present","return_type":"Int32","visibility":"Public","body":"@detection_zones_present"}},{"html_id":"detection_zones_present=(detection_zones_present:Int32)-instance-method","name":"detection_zones_present=","abstract":false,"args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"args_string":"(detection_zones_present : Int32)","args_html":"(detection_zones_present : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present=","args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"visibility":"Public","body":"@detection_zones_present = detection_zones_present"}},{"html_id":"final:String-instance-method","name":"final","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L237"},"def":{"name":"final","return_type":"String","visibility":"Public","body":"@final"}},{"html_id":"final=(final:String)-instance-method","name":"final=","abstract":false,"args":[{"name":"final","external_name":"final","restriction":"String"}],"args_string":"(final : String)","args_html":"(final : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L237"},"def":{"name":"final=","args":[{"name":"final","external_name":"final","restriction":"String"}],"visibility":"Public","body":"@final = final"}},{"html_id":"fpga_version:String-instance-method","name":"fpga_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version","return_type":"String","visibility":"Public","body":"@fpga_version"}},{"html_id":"fpga_version=(fpga_version:String)-instance-method","name":"fpga_version=","abstract":false,"args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"args_string":"(fpga_version : String)","args_html":"(fpga_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version=","args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"visibility":"Public","body":"@fpga_version = fpga_version"}},{"html_id":"frame_processing_time_ms:Int32-instance-method","name":"frame_processing_time_ms","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms","return_type":"Int32","visibility":"Public","body":"@frame_processing_time_ms"}},{"html_id":"frame_processing_time_ms=(frame_processing_time_ms:Int32)-instance-method","name":"frame_processing_time_ms=","abstract":false,"args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"args_string":"(frame_processing_time_ms : Int32)","args_html":"(frame_processing_time_ms : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms=","args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"visibility":"Public","body":"@frame_processing_time_ms = frame_processing_time_ms"}},{"html_id":"git_revision:String-instance-method","name":"git_revision","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision","return_type":"String","visibility":"Public","body":"@git_revision"}},{"html_id":"git_revision=(git_revision:String)-instance-method","name":"git_revision=","abstract":false,"args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"args_string":"(git_revision : String)","args_html":"(git_revision : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision=","args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"visibility":"Public","body":"@git_revision = git_revision"}},{"html_id":"global_illuminance_lux:Float64-instance-method","name":"global_illuminance_lux","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux","return_type":"Float64","visibility":"Public","body":"@global_illuminance_lux"}},{"html_id":"global_illuminance_lux=(global_illuminance_lux:Float64)-instance-method","name":"global_illuminance_lux=","abstract":false,"args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"args_string":"(global_illuminance_lux : Float64)","args_html":"(global_illuminance_lux : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux=","args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"visibility":"Public","body":"@global_illuminance_lux = global_illuminance_lux"}},{"html_id":"global_light_value:Int32-instance-method","name":"global_light_value","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value","return_type":"Int32","visibility":"Public","body":"@global_light_value"}},{"html_id":"global_light_value=(global_light_value:Int32)-instance-method","name":"global_light_value=","abstract":false,"args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"args_string":"(global_light_value : Int32)","args_html":"(global_light_value : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value=","args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"visibility":"Public","body":"@global_light_value = global_light_value"}},{"html_id":"humidity:String-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity","return_type":"String","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:String)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"args_string":"(humidity : String)","args_html":"(humidity : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"ir_led_on:Int32-instance-method","name":"ir_led_on","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on","return_type":"Int32","visibility":"Public","body":"@ir_led_on"}},{"html_id":"ir_led_on=(ir_led_on:Int32)-instance-method","name":"ir_led_on=","abstract":false,"args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"args_string":"(ir_led_on : Int32)","args_html":"(ir_led_on : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on=","args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"visibility":"Public","body":"@ir_led_on = ir_led_on"}},{"html_id":"knx_address:String-instance-method","name":"knx_address","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address","return_type":"String","visibility":"Public","body":"@knx_address"}},{"html_id":"knx_address=(knx_address:String)-instance-method","name":"knx_address=","abstract":false,"args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"args_string":"(knx_address : String)","args_html":"(knx_address : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address=","args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"visibility":"Public","body":"@knx_address = knx_address"}},{"html_id":"knx_detected:String-instance-method","name":"knx_detected","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected","return_type":"String","visibility":"Public","body":"@knx_detected"}},{"html_id":"knx_detected=(knx_detected:String)-instance-method","name":"knx_detected=","abstract":false,"args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"args_string":"(knx_detected : String)","args_html":"(knx_detected : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected=","args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"visibility":"Public","body":"@knx_detected = knx_detected"}},{"html_id":"knx_led_state:String-instance-method","name":"knx_led_state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state","return_type":"String","visibility":"Public","body":"@knx_led_state"}},{"html_id":"knx_led_state=(knx_led_state:String)-instance-method","name":"knx_led_state=","abstract":false,"args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"args_string":"(knx_led_state : String)","args_html":"(knx_led_state : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state=","args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"visibility":"Public","body":"@knx_led_state = knx_led_state"}},{"html_id":"knx_program_mode:String-instance-method","name":"knx_program_mode","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode","return_type":"String","visibility":"Public","body":"@knx_program_mode"}},{"html_id":"knx_program_mode=(knx_program_mode:String)-instance-method","name":"knx_program_mode=","abstract":false,"args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"args_string":"(knx_program_mode : String)","args_html":"(knx_program_mode : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode=","args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"visibility":"Public","body":"@knx_program_mode = knx_program_mode"}},{"html_id":"knx_sap_number:String-instance-method","name":"knx_sap_number","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number","return_type":"String","visibility":"Public","body":"@knx_sap_number"}},{"html_id":"knx_sap_number=(knx_sap_number:String)-instance-method","name":"knx_sap_number=","abstract":false,"args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"args_string":"(knx_sap_number : String)","args_html":"(knx_sap_number : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number=","args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"visibility":"Public","body":"@knx_sap_number = knx_sap_number"}},{"html_id":"knx_version:String-instance-method","name":"knx_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version","return_type":"String","visibility":"Public","body":"@knx_version"}},{"html_id":"knx_version=(knx_version:String)-instance-method","name":"knx_version=","abstract":false,"args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"args_string":"(knx_version : String)","args_html":"(knx_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version=","args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"visibility":"Public","body":"@knx_version = knx_version"}},{"html_id":"lux_zone:Array(Float64)-instance-method","name":"lux_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone","return_type":"Array(Float64)","visibility":"Public","body":"@lux_zone"}},{"html_id":"lux_zone=(lux_zone:Array(Float64))-instance-method","name":"lux_zone=","abstract":false,"args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"args_string":"(lux_zone : Array(Float64))","args_html":"(lux_zone : Array(Float64))","location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone=","args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"visibility":"Public","body":"@lux_zone = lux_zone"}},{"html_id":"model_name:String-instance-method","name":"model_name","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name","return_type":"String","visibility":"Public","body":"@model_name"}},{"html_id":"model_name=(model_name:String)-instance-method","name":"model_name=","abstract":false,"args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"args_string":"(model_name : String)","args_html":"(model_name : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name=","args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"visibility":"Public","body":"@model_name = model_name"}},{"html_id":"person_presence:Int32-instance-method","name":"person_presence","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence","return_type":"Int32","visibility":"Public","body":"@person_presence"}},{"html_id":"person_presence=(person_presence:Int32)-instance-method","name":"person_presence=","abstract":false,"args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"args_string":"(person_presence : Int32)","args_html":"(person_presence : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence=","args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"visibility":"Public","body":"@person_presence = person_presence"}},{"html_id":"person_presence_zone:Array(Int32)-instance-method","name":"person_presence_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone","return_type":"Array(Int32)","visibility":"Public","body":"@person_presence_zone"}},{"html_id":"person_presence_zone=(person_presence_zone:Array(Int32))-instance-method","name":"person_presence_zone=","abstract":false,"args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"args_string":"(person_presence_zone : Array(Int32))","args_html":"(person_presence_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone=","args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@person_presence_zone = person_presence_zone"}},{"html_id":"running_time:String-instance-method","name":"running_time","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time","return_type":"String","visibility":"Public","body":"@running_time"}},{"html_id":"running_time=(running_time:String)-instance-method","name":"running_time=","abstract":false,"args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"args_string":"(running_time : String)","args_html":"(running_time : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time=","args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"visibility":"Public","body":"@running_time = running_time"}},{"html_id":"temperature:String-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature","return_type":"String","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:String)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"args_string":"(temperature : String)","args_html":"(temperature : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"uptime:String-instance-method","name":"uptime","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime","return_type":"String","visibility":"Public","body":"@uptime"}},{"html_id":"uptime=(uptime:String)-instance-method","name":"uptime=","abstract":false,"args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"args_string":"(uptime : String)","args_html":"(uptime : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime=","args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"visibility":"Public","body":"@uptime = uptime"}},{"html_id":"web_server_cpu_usage:String-instance-method","name":"web_server_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage","return_type":"String","visibility":"Public","body":"@web_server_cpu_usage"}},{"html_id":"web_server_cpu_usage=(web_server_cpu_usage:String)-instance-method","name":"web_server_cpu_usage=","abstract":false,"args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"args_string":"(web_server_cpu_usage : String)","args_html":"(web_server_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage=","args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@web_server_cpu_usage = web_server_cpu_usage"}}]},{"html_id":"drivers/Steinel/HPD2/SensorType","path":"Steinel/HPD2/SensorType.html","kind":"alias","full_name":"Steinel::HPD2::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"}}]}]},{"html_id":"drivers/Stripe","path":"Stripe.html","kind":"module","full_name":"Stripe","name":"Stripe","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Stripe/API","path":"Stripe/API.html","kind":"class","full_name":"Stripe::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Stripe","kind":"module","full_name":"Stripe","name":"Stripe"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_payment_method(type:String,billing_details:Hash(String,String)|Nil=nil,metadata:Hash(String,String)|Nil=nil,acss_debit:Hash(String,String)|Nil=nil,affirm:Hash(String,String)|Nil=nil,afterpay_clearpay:Hash(String,String)|Nil=nil,alipay:Hash(String,String)|Nil=nil,au_becs_debit:Hash(String,String)|Nil=nil,bacs_debit:Hash(String,String)|Nil=nil,bancontact:Hash(String,String)|Nil=nil,blik:Hash(String,String)|Nil=nil,boleto:Hash(String,String)|Nil=nil,card:Hash(String,String)|Nil=nil,customer_balance:Hash(String,String)|Nil=nil,eps:Hash(String,String)|Nil=nil,fpx:Hash(String,String)|Nil=nil,giropay:Hash(String,String)|Nil=nil,ideal:Hash(String,String)|Nil=nil,interac_present:Hash(String,String)|Nil=nil,klarna:Hash(String,String)|Nil=nil,konbini:Hash(String,String)|Nil=nil,link:Hash(String,String)|Nil=nil,oxxo:Hash(String,String)|Nil=nil,p24:Hash(String,String)|Nil=nil,paynow:Hash(String,String)|Nil=nil,promptpay:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,sepa_debit:Hash(String,String)|Nil=nil,sofort:Hash(String,String)|Nil=nil,us_bank_account:Hash(String,String)|Nil=nil,wechat_pay:Hash(String,String)|Nil=nil)-instance-method","name":"add_payment_method","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","args_html":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L22"},"def":{"name":"add_payment_method","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"payment_method = @client.not_nil!.payment_methods.create(type, billing_details, metadata, acss_debit, affirm, afterpay_clearpay, alipay, au_becs_debit, bacs_debit, bancontact, blik, boleto, card, customer_balance, eps, fpx, giropay, ideal, interac_present, klarna, konbini, link, oxxo, p24, paynow, promptpay, radar_options, sepa_debit, sofort, us_bank_account, wechat_pay)\nself[\"payment_method\"] = payment_method\n"}},{"html_id":"cancel_payment_intent(id:String,cancellation_reason:String|Nil=nil)-instance-method","name":"cancel_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"args_string":"(id : String, cancellation_reason : String | Nil = nil)","args_html":"(id : String, cancellation_reason : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L79"},"def":{"name":"cancel_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client.not_nil!.payment_intents.cancel(id: id, cancellation_reason: cancellation_reason)\nself[\"payment_intent\"] = nil\n"}},{"html_id":"confirm_payment_intent(id:String,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,capture_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"confirm_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L74"},"def":{"name":"confirm_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.confirm(id: id, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, capture_method: capture_method, error_on_requires_action: error_on_requires_action, mandate: mandate, mandate_data: mandate_data, off_session: off_session, payment_method_data: payment_method_data, payment_method_options: payment_method_options, payment_method_types: payment_method_types, radar_options: radar_options, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"create_customer(account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"create_customer","abstract":false,"args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L96"},"def":{"name":"create_customer","args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.create(account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}},{"html_id":"create_payment_intent(amount:Int32,currency:String,automatic_payment_methods:Hash(String,String)|Nil=nil,confirm:Bool|Nil=nil,customer:String|Nil=nil,description:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,statement_descriptor:String|Nil=nil,statement_descriptor_suffix:String|Nil=nil,application_fee_amount:Int32|Nil=nil,capture_method:String|Nil=nil,confrimation_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,on_behalf_of:String|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,transfer_data:Hash(String,String)|Nil=nil,transfer_group:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"create_payment_intent","abstract":false,"args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L69"},"def":{"name":"create_payment_intent","args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.create(amount: amount, currency: currency, automatic_payment_methods: automatic_payment_methods, confirm: confirm, customer: customer, description: description, metadata: metadata, off_session: off_session, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, statement_descriptor: statement_descriptor, statement_descriptor_suffix: statement_descriptor_suffix, application_fee_amount: application_fee_amount, capture_method: capture_method, confrimation_method: confrimation_method, error_on_requires_action: error_on_requires_action, mandate_data: mandate_data, on_behalf_of: on_behalf_of, payment_method_data: payment_method_data, payment_method_types: payment_method_types, payment_method_options: payment_method_options, radar_options: radar_options, return_url: return_url, transfer_data: transfer_data, transfer_group: transfer_group, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"get_customer(id:String)-instance-method","name":"get_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/stripe/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L84"},"def":{"name":"get_customer","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"self[\"customer\"] = @client.not_nil!.customers.get(id)"}},{"html_id":"get_product_prices(active:Bool|Nil=nil,currency:String|Nil=nil,product:String|Nil=nil,type:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,lookup_keys:Array(String)|Nil=nil,recurring:Hash(String,String)|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"get_product_prices","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","args_html":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L64"},"def":{"name":"get_product_prices","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"product_prices = @client.not_nil!.prices.list(active: active, currency: currency, product: product, type: type, created: created, ending_before: ending_before, limit: limit, lookup_keys: lookup_keys, recurring: recurring, starting_after: starting_after)\nself[\"product_prices\"] = product_prices\n"}},{"html_id":"list_customers(email:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_customers","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L88"},"def":{"name":"list_customers","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.list(email: email, created: created, ending_before: ending_before, limit: limit, starting_after: starting_after)"}},{"html_id":"list_payment_methods(type:String,customer:String|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_payment_methods","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L59"},"def":{"name":"list_payment_methods","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"payment_methods = @client.not_nil!.payment_methods.list(type: type, customer: customer, ending_before: ending_before, limit: limit, starting_after: starting_after)\nself[\"payment_methods\"] = payment_methods\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/stripe/api.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L15"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\napi_key = setting(String, :api_key)\n@client = Stripetease::Client.new(base_url: host_name, api_key: api_key)\n"}},{"html_id":"search_customers(query:String,limit:Int32|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"search_customers","abstract":false,"args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","args_html":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L92"},"def":{"name":"search_customers","args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.search(query: query, limit: limit, page: page)"}},{"html_id":"update_customer(id:String,customer:String|Nil=nil,account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"update_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L101"},"def":{"name":"update_customer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.update(id: id, customer: customer, account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}}],"types":[{"html_id":"drivers/Stripe/API/Client","path":"Stripe/API/Client.html","kind":"alias","full_name":"Stripe::API::Client","name":"Client","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Stripetease::Client","aliased_html":"Stripetease::Client","const":false,"namespace":{"html_id":"drivers/Stripe/API","kind":"class","full_name":"Stripe::API","name":"API"}}]}]},{"html_id":"drivers/TvOne","path":"TvOne.html","kind":"module","full_name":"TvOne","name":"TvOne","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TvOne/CorioMaster","path":"TvOne/CorioMaster.html","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TvOne","kind":"module","full_name":"TvOne","name":"TvOne"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L37"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(30.seconds) do\n if @ready\n else\n disconnect\n end\nend\nschedule.every(1.minute) do\n do_poll\nend\nspawn do\n init_connection\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:ready] = @ready = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L62"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"polling device\"\nend\nquery(\"Preset.Take\", expose_as: :preset)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"preset(id:UInt32)-instance-method","name":"preset","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/tv_one/corio_master.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L67"},"def":{"name":"preset","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"(set(\"Preset.Take\", id)).get\nself[:preset] = id\nif wins = @window_cache[id]?\n logger.debug do\n \"loading cached window state\"\n end\n self[:windows] = wins\nend\nspawn do\n windows = query_windows\n logger.debug do\n \"window cache for preset #{id} updated\"\n end\n self[:windows] = @window_cache[id] = windows\nend\nid\n"}},{"html_id":"preset_list-instance-method","name":"preset_list","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L125"},"def":{"name":"preset_list","visibility":"Public","body":"query_preset_list"}},{"html_id":"query_windows-instance-method","name":"query_windows","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L121"},"def":{"name":"query_windows","visibility":"Public","body":"deep_query(\"Windows\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/tv_one/corio_master.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L197"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received => #{data}\"\nend\nif !@ready\n if data =~ (/Interface Ready/i)\n configure_tokenizer\n self[:ready] = @ready = true\n end\n return\nend\nbody = data.lines\ncaptures = ((/!(\\w+)\\W*(.*)$/).match(body.pop)).try(&.captures)\nif captures\nelse\n return task.try(&.abort(\"\"))\nend\ntype = captures[0].as(String)\nmessage = (captures[1].as(String)).downcase\nrequest = task.try do |__arg3|\n __arg3.request_payload.try() do |__arg4|\n (__arg4.strip.downcase.split(\" \"))[0]\n end\nend\ncase type\nwhen \"Done\"\n if request && (request == message)\n response = parse_response(body, request)\n task.try(&.success(response))\n end\nwhen \"Info\"\n logger.info do\n \"#{request} => #{message}\"\n end\n task.try(&.success)\nwhen \"Error\"\n logger.error do\n message\n end\n task.try(&.abort)\nwhen \"Event\"\n logger.info do\n \"unhandled event: #{message}\"\n end\nelse\n logger.error do\n \"unhandled response: #{data}\"\n end\n task.try(&.abort)\nend\n"}},{"html_id":"switch(map:Hash(String,Array(UInt32)))-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"args_string":"(map : Hash(String, Array(UInt32)))","args_html":"(map : Hash(String, Array(UInt32)))","location":{"filename":"src/tv_one/corio_master.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L91"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"visibility":"Public","body":"results = map.flat_map do |slot, windows|\n windows.map do |id|\n window(id, \"Input\", slot)\n end\nend\nspawn do\n results.each(&.get)\n if state = status?(Hash(String, Hash(String, JSON::Any)), :windows)\n map.each do |slot, windows|\n value = JSON::Any.new(slot)\n windows.each do |id|\n if win = state[\"window#{id}\"]?\n win[\"input\"] = value\n end\n end\n end\n self[\"windows\"] = state\n end\nend\nnil\n"}},{"html_id":"sync_state-instance-method","name":"sync_state","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L52"},"def":{"name":"sync_state","visibility":"Public","body":"query(\"Preset.Take\", expose_as: :preset)\nquery_preset_list(expose_as: :presets)\ndeep_query(\"Windows\", expose_as: :windows)\ndeep_query(\"Canvases\", expose_as: :canvases)\ndeep_query(\"Layouts\", expose_as: :layouts)\nquery(\"CORIOmax.Serial_Number\", expose_as: :serial_number)\nquery(\"CORIOmax.Software_Version\", expose_as: :firmware)\n"}},{"html_id":"window(id:UInt32,property:String,value:Int64|Bool|Nil|String)-instance-method","name":"window","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"args_string":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","args_html":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","location":{"filename":"src/tv_one/corio_master.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L117"},"def":{"name":"window","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"visibility":"Public","body":"set(\"Window#{id}.#{property}\", value)"}}],"types":[{"html_id":"drivers/TvOne/CorioMaster/PresetList","path":"TvOne/CorioMaster/PresetList.html","kind":"alias","full_name":"TvOne::CorioMaster::PresetList","name":"PresetList","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, NamedTuple(name: String, canvas: String, time: Int64))","aliased_html":"Hash(Int32, {name: String, canvas: String, time: Int64})","const":false,"namespace":{"html_id":"drivers/TvOne/CorioMaster","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster"}}]}]},{"html_id":"drivers/TwentyFiveLivePro","path":"TwentyFiveLivePro.html","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L4"},{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L4"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L3"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L3"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TwentyFiveLivePro/API","path":"TwentyFiveLivePro/API.html","kind":"class","full_name":"TwentyFiveLivePro::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"availability(id:Int32,start_date:String,end_date:String,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"availability","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L93"},"def":{"name":"availability","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nbody = {\"spaces\" => [{\"spaceId\" => id, \"dates\" => {\"startDt\" => start_date, \"endDt\" => end_date}}]}\nresponse = post(\"/external/spaceAvailability.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"}, body: body.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Availability.from_json(response.body)\n"}},{"html_id":"get_event_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_event_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L256"},"def":{"name":"get_event_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/event/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::EventDetail.from_json(response.body)\n"}},{"html_id":"get_organization_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_organization_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L180"},"def":{"name":"get_organization_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/organization/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::OrganizationDetail.from_json(response.body)\n"}},{"html_id":"get_resource_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_resource_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L119"},"def":{"name":"get_resource_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/resource/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ResourceDetail.from_json(response.body)\n"}},{"html_id":"get_space_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_space_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L32"},"def":{"name":"get_space_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/space/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::SpaceDetail.from_json(response.body)\n"}},{"html_id":"list_events(space_id:Int32=1,page:Int32=1,items_per_page:Int32=100,since:String|Nil=nil,paginate:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","args_html":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L270"},"def":{"name":"list_events","args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"events = [] of Models::Event\nloop do\n params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if since\n form.add(\"created_since\", since)\n end\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/event/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nevents\n"}},{"html_id":"list_organizations(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_organizations","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L194"},"def":{"name":"list_organizations","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"organizations = [] of Models::Organization\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/organization/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\norganizations\n"}},{"html_id":"list_reservations(space_id:Int32,start_date:String,end_date:String)-instance-method","name":"list_reservations","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(space_id : Int32, start_date : String, end_date : String)","args_html":"(space_id : Int32, start_date : String, end_date : String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L241"},"def":{"name":"list_reservations","args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"start_dt\", start_date)\n form.add(\"end_dt\", end_date)\nend\nresponse = get(\"/reservations.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Reservations.from_json(response.body)\n"}},{"html_id":"list_resources(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_resources","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L133"},"def":{"name":"list_resources","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"resources = [] of Models::Resource\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/resource/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nresources\n"}},{"html_id":"list_spaces(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_spaces","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L46"},"def":{"name":"list_spaces","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"spaces = [] of Models::Space\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/space/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nspaces\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]},{"html_id":"drivers/TwentyFiveLivePro/Date","path":"TwentyFiveLivePro/Date.html","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L13"},"def":{"name":"duration","visibility":"Public","body":"end_date - start_date"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","path":"TwentyFiveLivePro/Date/Converter.html","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Date","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L24"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_rfc3339(value.read_string)"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L20"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_rfc3339)"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models","path":"TwentyFiveLivePro/Models.html","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L5"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L4"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L4"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"instance_methods":[{"html_id":"reservations:Reservations-instance-method","name":"reservations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations","return_type":"Reservations","visibility":"Public","body":"@reservations"}},{"html_id":"reservations=(reservations:Reservations)-instance-method","name":"reservations=","abstract":false,"args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"args_string":"(reservations : Reservations)","args_html":"(reservations : Reservations)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations=","args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"visibility":"Public","body":"@reservations = reservations"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Attribute","path":"TwentyFiveLivePro/Models/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","path":"TwentyFiveLivePro/Models/Availability.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","path":"TwentyFiveLivePro/Models/Availability/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:String-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id","return_type":"String","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:String)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"args_string":"(request_id : String)","args_html":"(request_id : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","path":"TwentyFiveLivePro/Models/Availability/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data/Space","path":"TwentyFiveLivePro/Models/Availability/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"available=(available:Bool)-instance-method","name":"available=","abstract":false,"args":[{"name":"available","external_name":"available","restriction":"Bool"}],"args_string":"(available : Bool)","args_html":"(available : Bool)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available=","args":[{"name":"available","external_name":"available","restriction":"Bool"}],"visibility":"Public","body":"@available = available"}},{"html_id":"conflict_type:Int64|Nil-instance-method","name":"conflict_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conflict_type"}},{"html_id":"conflict_type=(conflict_type:Int64|Nil)-instance-method","name":"conflict_type=","abstract":false,"args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"args_string":"(conflict_type : Int64 | Nil)","args_html":"(conflict_type : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type=","args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conflict_type = conflict_type"}},{"html_id":"dates:Array(Hash(String,JSON::Any))-instance-method","name":"dates","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates","return_type":"Array(Hash(String, JSON::Any))","visibility":"Public","body":"@dates"}},{"html_id":"dates=(dates:Array(Hash(String,JSON::Any)))-instance-method","name":"dates=","abstract":false,"args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"args_string":"(dates : Array(Hash(String, JSON::Any)))","args_html":"(dates : Array(Hash(String, JSON::Any)))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates=","args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"visibility":"Public","body":"@dates = dates"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_types:Array(Expanded::Conflict)|Nil-instance-method","name":"conflict_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types","return_type":"Array(Expanded::Conflict) | ::Nil","visibility":"Public","body":"@conflict_types"}},{"html_id":"conflict_types=(conflict_types:Array(Expanded::Conflict)|Nil)-instance-method","name":"conflict_types=","abstract":false,"args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"args_string":"(conflict_types : Array(Expanded::Conflict) | Nil)","args_html":"(conflict_types : Array(Expanded::Conflict) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types=","args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"visibility":"Public","body":"@conflict_types = conflict_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Category","path":"TwentyFiveLivePro/Models/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"inherit_code:Int64|Nil-instance-method","name":"inherit_code","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code","return_type":"Int64 | ::Nil","visibility":"Public","body":"@inherit_code"}},{"html_id":"inherit_code=(inherit_code:Int64|Nil)-instance-method","name":"inherit_code=","abstract":false,"args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"args_string":"(inherit_code : Int64 | Nil)","args_html":"(inherit_code : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code=","args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@inherit_code = inherit_code"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Event","path":"TwentyFiveLivePro/Models/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","path":"TwentyFiveLivePro/Models/EventDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","path":"TwentyFiveLivePro/Models/EventDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"args_string":"(id : Int64 | Nil)","args_html":"(id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Event)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items","return_type":"Array(Event)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Event))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"args_string":"(items : Array(Event))","args_html":"(items : Array(Event))","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"priority:Int64-instance-method","name":"priority","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority","return_type":"Int64","visibility":"Public","body":"@priority"}},{"html_id":"priority=(priority:Int64)-instance-method","name":"priority=","abstract":false,"args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"args_string":"(priority : Int64)","args_html":"(priority : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority=","args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"visibility":"Public","body":"@priority = priority"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"event_types:Array(Expanded::EventType)|Nil-instance-method","name":"event_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types","return_type":"Array(Expanded::EventType) | ::Nil","visibility":"Public","body":"@event_types"}},{"html_id":"event_types=(event_types:Array(Expanded::EventType)|Nil)-instance-method","name":"event_types=","abstract":false,"args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"args_string":"(event_types : Array(Expanded::EventType) | Nil)","args_html":"(event_types : Array(Expanded::EventType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types=","args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"visibility":"Public","body":"@event_types = event_types"}},{"html_id":"organizations:Array(Expanded::Organization)|Nil-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations","return_type":"Array(Expanded::Organization) | ::Nil","visibility":"Public","body":"@organizations"}},{"html_id":"organizations=(organizations:Array(Expanded::Organization)|Nil)-instance-method","name":"organizations=","abstract":false,"args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"args_string":"(organizations : Array(Expanded::Organization) | Nil)","args_html":"(organizations : Array(Expanded::Organization) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations=","args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"visibility":"Public","body":"@organizations = organizations"}},{"html_id":"parent_nodes:Array(Expanded::ParentNode)|Nil-instance-method","name":"parent_nodes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes","return_type":"Array(Expanded::ParentNode) | ::Nil","visibility":"Public","body":"@parent_nodes"}},{"html_id":"parent_nodes=(parent_nodes:Array(Expanded::ParentNode)|Nil)-instance-method","name":"parent_nodes=","abstract":false,"args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"args_string":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","args_html":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes=","args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"visibility":"Public","body":"@parent_nodes = parent_nodes"}},{"html_id":"resources:Array(Expanded::Resource)|Nil-instance-method","name":"resources","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources","return_type":"Array(Expanded::Resource) | ::Nil","visibility":"Public","body":"@resources"}},{"html_id":"resources=(resources:Array(Expanded::Resource)|Nil)-instance-method","name":"resources=","abstract":false,"args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"args_string":"(resources : Array(Expanded::Resource) | Nil)","args_html":"(resources : Array(Expanded::Resource) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources=","args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"visibility":"Public","body":"@resources = resources"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"spaces:Array(Expanded::Space)|Nil-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces","return_type":"Array(Expanded::Space) | ::Nil","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Expanded::Space)|Nil)-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"args_string":"(spaces : Array(Expanded::Space) | Nil)","args_html":"(spaces : Array(Expanded::Space) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"states:Array(Expanded::State)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states","return_type":"Array(Expanded::State) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"states=(states:Array(Expanded::State)|Nil)-instance-method","name":"states=","abstract":false,"args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"args_string":"(states : Array(Expanded::State) | Nil)","args_html":"(states : Array(Expanded::State) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states=","args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"visibility":"Public","body":"@states = states"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","path":"TwentyFiveLivePro/Models/Expanded.html","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Attribute","path":"TwentyFiveLivePro/Models/Expanded/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}},{"html_id":"attribute_name:String-instance-method","name":"attribute_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name","return_type":"String","visibility":"Public","body":"@attribute_name"}},{"html_id":"attribute_name=(attribute_name:String)-instance-method","name":"attribute_name=","abstract":false,"args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"args_string":"(attribute_name : String)","args_html":"(attribute_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name=","args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"visibility":"Public","body":"@attribute_name = attribute_name"}},{"html_id":"attribute_type:String|Nil-instance-method","name":"attribute_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type","return_type":"String | ::Nil","visibility":"Public","body":"@attribute_type"}},{"html_id":"attribute_type=(attribute_type:String|Nil)-instance-method","name":"attribute_type=","abstract":false,"args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"args_string":"(attribute_type : String | Nil)","args_html":"(attribute_type : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type=","args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attribute_type = attribute_type"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Category","path":"TwentyFiveLivePro/Models/Expanded/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"category_name:String-instance-method","name":"category_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name","return_type":"String","visibility":"Public","body":"@category_name"}},{"html_id":"category_name=(category_name:String)-instance-method","name":"category_name=","abstract":false,"args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"args_string":"(category_name : String)","args_html":"(category_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name=","args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"visibility":"Public","body":"@category_name = category_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Conflict","path":"TwentyFiveLivePro/Models/Expanded/Conflict.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_type_description:String-instance-method","name":"conflict_type_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description","return_type":"String","visibility":"Public","body":"@conflict_type_description"}},{"html_id":"conflict_type_description=(conflict_type_description:String)-instance-method","name":"conflict_type_description=","abstract":false,"args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"args_string":"(conflict_type_description : String)","args_html":"(conflict_type_description : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description=","args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"visibility":"Public","body":"@conflict_type_description = conflict_type_description"}},{"html_id":"conflict_type_id:Int64-instance-method","name":"conflict_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id","return_type":"Int64","visibility":"Public","body":"@conflict_type_id"}},{"html_id":"conflict_type_id=(conflict_type_id:Int64)-instance-method","name":"conflict_type_id=","abstract":false,"args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"args_string":"(conflict_type_id : Int64)","args_html":"(conflict_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id=","args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"visibility":"Public","body":"@conflict_type_id = conflict_type_id"}},{"html_id":"conflict_type_name:String-instance-method","name":"conflict_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name","return_type":"String","visibility":"Public","body":"@conflict_type_name"}},{"html_id":"conflict_type_name=(conflict_type_name:String)-instance-method","name":"conflict_type_name=","abstract":false,"args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"args_string":"(conflict_type_name : String)","args_html":"(conflict_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name=","args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"visibility":"Public","body":"@conflict_type_name = conflict_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Contact","path":"TwentyFiveLivePro/Models/Expanded/Contact.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64|Nil-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64|Nil)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"args_string":"(contact_id : Int64 | Nil)","args_html":"(contact_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"etag:String|Nil-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag","return_type":"String | ::Nil","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String|Nil)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"args_string":"(etag : String | Nil)","args_html":"(etag : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"family_name:String|Nil-instance-method","name":"family_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name","return_type":"String | ::Nil","visibility":"Public","body":"@family_name"}},{"html_id":"family_name=(family_name:String|Nil)-instance-method","name":"family_name=","abstract":false,"args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"args_string":"(family_name : String | Nil)","args_html":"(family_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name=","args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family_name = family_name"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/EventType","path":"TwentyFiveLivePro/Models/Expanded/EventType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::EventType","name":"EventType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"type_id:Int64-instance-method","name":"type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id","return_type":"Int64","visibility":"Public","body":"@type_id"}},{"html_id":"type_id=(type_id:Int64)-instance-method","name":"type_id=","abstract":false,"args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"args_string":"(type_id : Int64)","args_html":"(type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id=","args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"visibility":"Public","body":"@type_id = type_id"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Feature","path":"TwentyFiveLivePro/Models/Expanded/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"feature_name:String-instance-method","name":"feature_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name","return_type":"String","visibility":"Public","body":"@feature_name"}},{"html_id":"feature_name=(feature_name:String)-instance-method","name":"feature_name=","abstract":false,"args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"args_string":"(feature_name : String)","args_html":"(feature_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name=","args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"visibility":"Public","body":"@feature_name = feature_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Layout","path":"TwentyFiveLivePro/Models/Expanded/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name","return_type":"String","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"args_string":"(layout_name : String)","args_html":"(layout_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"visibility":"Public","body":"@layout_name = layout_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Organization","path":"TwentyFiveLivePro/Models/Expanded/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/OrganizationType","path":"TwentyFiveLivePro/Models/Expanded/OrganizationType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::OrganizationType","name":"OrganizationType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"organization_type_name:String-instance-method","name":"organization_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name","return_type":"String","visibility":"Public","body":"@organization_type_name"}},{"html_id":"organization_type_name=(organization_type_name:String)-instance-method","name":"organization_type_name=","abstract":false,"args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"args_string":"(organization_type_name : String)","args_html":"(organization_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name=","args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"visibility":"Public","body":"@organization_type_name = organization_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/ParentNode","path":"TwentyFiveLivePro/Models/Expanded/ParentNode.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::ParentNode","name":"ParentNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_dt:String-instance-method","name":"end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt","return_type":"String","visibility":"Public","body":"@end_dt"}},{"html_id":"end_dt=(end_dt:String)-instance-method","name":"end_dt=","abstract":false,"args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"args_string":"(end_dt : String)","args_html":"(end_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt=","args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"visibility":"Public","body":"@end_dt = end_dt"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"locator:String-instance-method","name":"locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator","return_type":"String","visibility":"Public","body":"@locator"}},{"html_id":"locator=(locator:String)-instance-method","name":"locator=","abstract":false,"args":[{"name":"locator","external_name":"locator","restriction":"String"}],"args_string":"(locator : String)","args_html":"(locator : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator=","args":[{"name":"locator","external_name":"locator","restriction":"String"}],"visibility":"Public","body":"@locator = locator"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}},{"html_id":"start_dt:String-instance-method","name":"start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt","return_type":"String","visibility":"Public","body":"@start_dt"}},{"html_id":"start_dt=(start_dt:String)-instance-method","name":"start_dt=","abstract":false,"args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"args_string":"(start_dt : String)","args_html":"(start_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt=","args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"visibility":"Public","body":"@start_dt = start_dt"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Resource","path":"TwentyFiveLivePro/Models/Expanded/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"resource_id:Int64-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id","return_type":"Int64","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:Int64)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"args_string":"(resource_id : Int64)","args_html":"(resource_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Role","path":"TwentyFiveLivePro/Models/Expanded/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}},{"html_id":"role_name:String-instance-method","name":"role_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name","return_type":"String","visibility":"Public","body":"@role_name"}},{"html_id":"role_name=(role_name:String)-instance-method","name":"role_name=","abstract":false,"args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"args_string":"(role_name : String)","args_html":"(role_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name=","args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"visibility":"Public","body":"@role_name = role_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Space","path":"TwentyFiveLivePro/Models/Expanded/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name","return_type":"String","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"args_string":"(space_formal_name : String)","args_html":"(space_formal_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/State","path":"TwentyFiveLivePro/Models/Expanded/State.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"state:Int64-instance-method","name":"state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state","return_type":"Int64","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int64)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int64"}],"args_string":"(state : Int64)","args_html":"(state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int64"}],"visibility":"Public","body":"@state = state"}},{"html_id":"state_name:String-instance-method","name":"state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name","return_type":"String","visibility":"Public","body":"@state_name"}},{"html_id":"state_name=(state_name:String)-instance-method","name":"state_name=","abstract":false,"args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"args_string":"(state_name : String)","args_html":"(state_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name=","args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"visibility":"Public","body":"@state_name = state_name"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Feature","path":"TwentyFiveLivePro/Models/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"quantity:Int64-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity","return_type":"Int64","visibility":"Public","body":"@quantity"}},{"html_id":"quantity=(quantity:Int64)-instance-method","name":"quantity=","abstract":false,"args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"args_string":"(quantity : Int64)","args_html":"(quantity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity=","args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"visibility":"Public","body":"@quantity = quantity"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Layout","path":"TwentyFiveLivePro/Models/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default_layout:Bool-instance-method","name":"default_layout","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout","return_type":"Bool","visibility":"Public","body":"@default_layout"}},{"html_id":"default_layout=(default_layout:Bool)-instance-method","name":"default_layout=","abstract":false,"args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"args_string":"(default_layout : Bool)","args_html":"(default_layout : Bool)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout=","args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"visibility":"Public","body":"@default_layout = default_layout"}},{"html_id":"layout_capacity:Int64-instance-method","name":"layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity","return_type":"Int64","visibility":"Public","body":"@layout_capacity"}},{"html_id":"layout_capacity=(layout_capacity:Int64)-instance-method","name":"layout_capacity=","abstract":false,"args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"args_string":"(layout_capacity : Int64)","args_html":"(layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity=","args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@layout_capacity = layout_capacity"}},{"html_id":"layout_diagram_id:Int64|Nil-instance-method","name":"layout_diagram_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_diagram_id"}},{"html_id":"layout_diagram_id=(layout_diagram_id:Int64|Nil)-instance-method","name":"layout_diagram_id=","abstract":false,"args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_diagram_id : Int64 | Nil)","args_html":"(layout_diagram_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id=","args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_diagram_id = layout_diagram_id"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_photo_id:Int64|Nil-instance-method","name":"layout_photo_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_photo_id"}},{"html_id":"layout_photo_id=(layout_photo_id:Int64|Nil)-instance-method","name":"layout_photo_id=","abstract":false,"args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_photo_id : Int64 | Nil)","args_html":"(layout_photo_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id=","args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_photo_id = layout_photo_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Organization","path":"TwentyFiveLivePro/Models/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String|Nil-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title","return_type":"String | ::Nil","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String|Nil)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"args_string":"(organization_title : String | Nil)","args_html":"(organization_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64|Nil-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64|Nil)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"args_string":"(organization_type_id : Int64 | Nil)","args_html":"(organization_type_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","path":"TwentyFiveLivePro/Models/OrganizationDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Organization)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items","return_type":"Array(Organization)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Organization))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"args_string":"(items : Array(Organization))","args_html":"(items : Array(Organization))","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title","return_type":"String","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"args_string":"(organization_title : String)","args_html":"(organization_title : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_categories:Array(Expanded::Category)|Nil-instance-method","name":"organization_categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@organization_categories"}},{"html_id":"organization_categories=(organization_categories:Array(Expanded::Category)|Nil)-instance-method","name":"organization_categories=","abstract":false,"args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(organization_categories : Array(Expanded::Category) | Nil)","args_html":"(organization_categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories=","args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@organization_categories = organization_categories"}},{"html_id":"organization_types:Array(Expanded::OrganizationType)|Nil-instance-method","name":"organization_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types","return_type":"Array(Expanded::OrganizationType) | ::Nil","visibility":"Public","body":"@organization_types"}},{"html_id":"organization_types=(organization_types:Array(Expanded::OrganizationType)|Nil)-instance-method","name":"organization_types=","abstract":false,"args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"args_string":"(organization_types : Array(Expanded::OrganizationType) | Nil)","args_html":"(organization_types : Array(Expanded::OrganizationType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types=","args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"visibility":"Public","body":"@organization_types = organization_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","path":"TwentyFiveLivePro/Models/PaginatedResponse.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_item_count:Int64-instance-method","name":"current_item_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count","return_type":"Int64","visibility":"Public","body":"@current_item_count"}},{"html_id":"current_item_count=(current_item_count:Int64)-instance-method","name":"current_item_count=","abstract":false,"args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"args_string":"(current_item_count : Int64)","args_html":"(current_item_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count=","args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"visibility":"Public","body":"@current_item_count = current_item_count"}},{"html_id":"items_per_page:Int64-instance-method","name":"items_per_page","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page","return_type":"Int64","visibility":"Public","body":"@items_per_page"}},{"html_id":"items_per_page=(items_per_page:Int64)-instance-method","name":"items_per_page=","abstract":false,"args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"args_string":"(items_per_page : Int64)","args_html":"(items_per_page : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page=","args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"visibility":"Public","body":"@items_per_page = items_per_page"}},{"html_id":"page_index:Int64-instance-method","name":"page_index","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index","return_type":"Int64","visibility":"Public","body":"@page_index"}},{"html_id":"page_index=(page_index:Int64)-instance-method","name":"page_index=","abstract":false,"args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"args_string":"(page_index : Int64)","args_html":"(page_index : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index=","args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"visibility":"Public","body":"@page_index = page_index"}},{"html_id":"paginate_key:Int64-instance-method","name":"paginate_key","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key","return_type":"Int64","visibility":"Public","body":"@paginate_key"}},{"html_id":"paginate_key=(paginate_key:Int64)-instance-method","name":"paginate_key=","abstract":false,"args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"args_string":"(paginate_key : Int64)","args_html":"(paginate_key : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key=","args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"visibility":"Public","body":"@paginate_key = paginate_key"}},{"html_id":"paging_link_template:String-instance-method","name":"paging_link_template","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template","return_type":"String","visibility":"Public","body":"@paging_link_template"}},{"html_id":"paging_link_template=(paging_link_template:String)-instance-method","name":"paging_link_template=","abstract":false,"args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"args_string":"(paging_link_template : String)","args_html":"(paging_link_template : String)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template=","args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"visibility":"Public","body":"@paging_link_template = paging_link_template"}},{"html_id":"total_items:Int64-instance-method","name":"total_items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items","return_type":"Int64","visibility":"Public","body":"@total_items"}},{"html_id":"total_items=(total_items:Int64)-instance-method","name":"total_items=","abstract":false,"args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"args_string":"(total_items : Int64)","args_html":"(total_items : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items=","args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"visibility":"Public","body":"@total_items = total_items"}},{"html_id":"total_pages:Int64-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages","return_type":"Int64","visibility":"Public","body":"@total_pages"}},{"html_id":"total_pages=(total_pages:Int64)-instance-method","name":"total_pages=","abstract":false,"args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"args_string":"(total_pages : Int64)","args_html":"(total_pages : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages=","args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"visibility":"Public","body":"@total_pages = total_pages"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","path":"TwentyFiveLivePro/Models/Reservations.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"engine:String|Nil-instance-method","name":"engine","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine","return_type":"String | ::Nil","visibility":"Public","body":"@engine"}},{"html_id":"engine=(engine:String|Nil)-instance-method","name":"engine=","abstract":false,"args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"args_string":"(engine : String | Nil)","args_html":"(engine : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine=","args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"visibility":"Public","body":"@engine = engine"}},{"html_id":"reservation:Array(Data)-instance-method","name":"reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation","return_type":"Array(Data)","visibility":"Public","body":"@reservation"}},{"html_id":"reservation=(reservation:Array(Data))-instance-method","name":"reservation=","abstract":false,"args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"args_string":"(reservation : Array(Data))","args_html":"(reservation : Array(Data))","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation=","args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"visibility":"Public","body":"@reservation = reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","path":"TwentyFiveLivePro/Models/Reservations/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_end_dt:Date-instance-method","name":"event_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt","return_type":"Date","visibility":"Public","body":"@event_end_dt"}},{"html_id":"event_end_dt=(event_end_dt:Date)-instance-method","name":"event_end_dt=","abstract":false,"args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"args_string":"(event_end_dt : Date)","args_html":"(event_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt=","args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"visibility":"Public","body":"@event_end_dt = event_end_dt"}},{"html_id":"event_id:Int64-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id","return_type":"Int64","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:Int64)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"args_string":"(event_id : Int64)","args_html":"(event_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_locator:String|Nil-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator","return_type":"String | ::Nil","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String|Nil)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"args_string":"(event_locator : String | Nil)","args_html":"(event_locator : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"event_name:String|Nil-instance-method","name":"event_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_name"}},{"html_id":"event_name=(event_name:String|Nil)-instance-method","name":"event_name=","abstract":false,"args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"args_string":"(event_name : String | Nil)","args_html":"(event_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name=","args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_name = event_name"}},{"html_id":"event_start_dt:Date-instance-method","name":"event_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt","return_type":"Date","visibility":"Public","body":"@event_start_dt"}},{"html_id":"event_start_dt=(event_start_dt:Date)-instance-method","name":"event_start_dt=","abstract":false,"args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"args_string":"(event_start_dt : Date)","args_html":"(event_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt=","args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"visibility":"Public","body":"@event_start_dt = event_start_dt"}},{"html_id":"event_title:String|Nil-instance-method","name":"event_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title","return_type":"String | ::Nil","visibility":"Public","body":"@event_title"}},{"html_id":"event_title=(event_title:String|Nil)-instance-method","name":"event_title=","abstract":false,"args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"args_string":"(event_title : String | Nil)","args_html":"(event_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title=","args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_title = event_title"}},{"html_id":"event_type_class:String|Nil-instance-method","name":"event_type_class","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_class"}},{"html_id":"event_type_class=(event_type_class:String|Nil)-instance-method","name":"event_type_class=","abstract":false,"args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"args_string":"(event_type_class : String | Nil)","args_html":"(event_type_class : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class=","args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_class = event_type_class"}},{"html_id":"event_type_name:String|Nil-instance-method","name":"event_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_name"}},{"html_id":"event_type_name=(event_type_name:String|Nil)-instance-method","name":"event_type_name=","abstract":false,"args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"args_string":"(event_type_name : String | Nil)","args_html":"(event_type_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name=","args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_name = event_type_name"}},{"html_id":"expected_count:Int64-instance-method","name":"expected_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count","return_type":"Int64","visibility":"Public","body":"@expected_count"}},{"html_id":"expected_count=(expected_count:Int64)-instance-method","name":"expected_count=","abstract":false,"args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"args_string":"(expected_count : Int64)","args_html":"(expected_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count=","args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"visibility":"Public","body":"@expected_count = expected_count"}},{"html_id":"last_mod_dt:Date-instance-method","name":"last_mod_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt","return_type":"Date","visibility":"Public","body":"@last_mod_dt"}},{"html_id":"last_mod_dt=(last_mod_dt:Date)-instance-method","name":"last_mod_dt=","abstract":false,"args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"args_string":"(last_mod_dt : Date)","args_html":"(last_mod_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt=","args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"visibility":"Public","body":"@last_mod_dt = last_mod_dt"}},{"html_id":"last_mod_user:String|Nil-instance-method","name":"last_mod_user","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user","return_type":"String | ::Nil","visibility":"Public","body":"@last_mod_user"}},{"html_id":"last_mod_user=(last_mod_user:String|Nil)-instance-method","name":"last_mod_user=","abstract":false,"args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"args_string":"(last_mod_user : String | Nil)","args_html":"(last_mod_user : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user=","args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_mod_user = last_mod_user"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String|Nil-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name","return_type":"String | ::Nil","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String|Nil)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"args_string":"(organization_name : String | Nil)","args_html":"(organization_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"post_event_dt:Date-instance-method","name":"post_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt","return_type":"Date","visibility":"Public","body":"@post_event_dt"}},{"html_id":"post_event_dt=(post_event_dt:Date)-instance-method","name":"post_event_dt=","abstract":false,"args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"args_string":"(post_event_dt : Date)","args_html":"(post_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt=","args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"visibility":"Public","body":"@post_event_dt = post_event_dt"}},{"html_id":"pre_event_dt:Date-instance-method","name":"pre_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt","return_type":"Date","visibility":"Public","body":"@pre_event_dt"}},{"html_id":"pre_event_dt=(pre_event_dt:Date)-instance-method","name":"pre_event_dt=","abstract":false,"args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"args_string":"(pre_event_dt : Date)","args_html":"(pre_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt=","args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"visibility":"Public","body":"@pre_event_dt = pre_event_dt"}},{"html_id":"profile_description:String-instance-method","name":"profile_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description","return_type":"String","visibility":"Public","body":"@profile_description"}},{"html_id":"profile_description=(profile_description:String)-instance-method","name":"profile_description=","abstract":false,"args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"args_string":"(profile_description : String)","args_html":"(profile_description : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description=","args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"visibility":"Public","body":"@profile_description = profile_description"}},{"html_id":"profile_id:Int64-instance-method","name":"profile_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id","return_type":"Int64","visibility":"Public","body":"@profile_id"}},{"html_id":"profile_id=(profile_id:Int64)-instance-method","name":"profile_id=","abstract":false,"args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"args_string":"(profile_id : Int64)","args_html":"(profile_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id=","args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"visibility":"Public","body":"@profile_id = profile_id"}},{"html_id":"profile_name:String|Nil-instance-method","name":"profile_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name","return_type":"String | ::Nil","visibility":"Public","body":"@profile_name"}},{"html_id":"profile_name=(profile_name:String|Nil)-instance-method","name":"profile_name=","abstract":false,"args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"args_string":"(profile_name : String | Nil)","args_html":"(profile_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name=","args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@profile_name = profile_name"}},{"html_id":"registered_count:Int64-instance-method","name":"registered_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count","return_type":"Int64","visibility":"Public","body":"@registered_count"}},{"html_id":"registered_count=(registered_count:Int64)-instance-method","name":"registered_count=","abstract":false,"args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"args_string":"(registered_count : Int64)","args_html":"(registered_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count=","args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"visibility":"Public","body":"@registered_count = registered_count"}},{"html_id":"registration_label:String|Nil-instance-method","name":"registration_label","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label","return_type":"String | ::Nil","visibility":"Public","body":"@registration_label"}},{"html_id":"registration_label=(registration_label:String|Nil)-instance-method","name":"registration_label=","abstract":false,"args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"args_string":"(registration_label : String | Nil)","args_html":"(registration_label : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label=","args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"visibility":"Public","body":"@registration_label = registration_label"}},{"html_id":"registration_url:String-instance-method","name":"registration_url","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url","return_type":"String","visibility":"Public","body":"@registration_url"}},{"html_id":"registration_url=(registration_url:String)-instance-method","name":"registration_url=","abstract":false,"args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"args_string":"(registration_url : String)","args_html":"(registration_url : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url=","args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"visibility":"Public","body":"@registration_url = registration_url"}},{"html_id":"reservation_comment_id:String|Nil-instance-method","name":"reservation_comment_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comment_id"}},{"html_id":"reservation_comment_id=(reservation_comment_id:String|Nil)-instance-method","name":"reservation_comment_id=","abstract":false,"args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"args_string":"(reservation_comment_id : String | Nil)","args_html":"(reservation_comment_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id=","args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comment_id = reservation_comment_id"}},{"html_id":"reservation_comments:String|Nil-instance-method","name":"reservation_comments","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comments"}},{"html_id":"reservation_comments=(reservation_comments:String|Nil)-instance-method","name":"reservation_comments=","abstract":false,"args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"args_string":"(reservation_comments : String | Nil)","args_html":"(reservation_comments : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments=","args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comments = reservation_comments"}},{"html_id":"reservation_end_dt:Date-instance-method","name":"reservation_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt","return_type":"Date","visibility":"Public","body":"@reservation_end_dt"}},{"html_id":"reservation_end_dt=(reservation_end_dt:Date)-instance-method","name":"reservation_end_dt=","abstract":false,"args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"args_string":"(reservation_end_dt : Date)","args_html":"(reservation_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt=","args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_end_dt = reservation_end_dt"}},{"html_id":"reservation_id:Int64-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id","return_type":"Int64","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:Int64)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"args_string":"(reservation_id : Int64)","args_html":"(reservation_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"reservation_start_dt:Date-instance-method","name":"reservation_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt","return_type":"Date","visibility":"Public","body":"@reservation_start_dt"}},{"html_id":"reservation_start_dt=(reservation_start_dt:Date)-instance-method","name":"reservation_start_dt=","abstract":false,"args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"args_string":"(reservation_start_dt : Date)","args_html":"(reservation_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt=","args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_start_dt = reservation_start_dt"}},{"html_id":"reservation_state:Int64-instance-method","name":"reservation_state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state","return_type":"Int64","visibility":"Public","body":"@reservation_state"}},{"html_id":"reservation_state=(reservation_state:Int64)-instance-method","name":"reservation_state=","abstract":false,"args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"args_string":"(reservation_state : Int64)","args_html":"(reservation_state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state=","args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"visibility":"Public","body":"@reservation_state = reservation_state"}},{"html_id":"reservation_state_name:String|Nil-instance-method","name":"reservation_state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_state_name"}},{"html_id":"reservation_state_name=(reservation_state_name:String|Nil)-instance-method","name":"reservation_state_name=","abstract":false,"args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"args_string":"(reservation_state_name : String | Nil)","args_html":"(reservation_state_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name=","args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_state_name = reservation_state_name"}},{"html_id":"space_reservation:Space-instance-method","name":"space_reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation","return_type":"Space","visibility":"Public","body":"@space_reservation"}},{"html_id":"space_reservation=(space_reservation:Space)-instance-method","name":"space_reservation=","abstract":false,"args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"args_string":"(space_reservation : Space)","args_html":"(space_reservation : Space)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation=","args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"visibility":"Public","body":"@space_reservation = space_reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data/Space","path":"TwentyFiveLivePro/Models/Reservations/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual_count:String|Nil-instance-method","name":"actual_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count","return_type":"String | ::Nil","visibility":"Public","body":"@actual_count"}},{"html_id":"actual_count=(actual_count:String|Nil)-instance-method","name":"actual_count=","abstract":false,"args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"args_string":"(actual_count : String | Nil)","args_html":"(actual_count : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count=","args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"visibility":"Public","body":"@actual_count = actual_count"}},{"html_id":"default_layout_capacity:String|Nil-instance-method","name":"default_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity","return_type":"String | ::Nil","visibility":"Public","body":"@default_layout_capacity"}},{"html_id":"default_layout_capacity=(default_layout_capacity:String|Nil)-instance-method","name":"default_layout_capacity=","abstract":false,"args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"args_string":"(default_layout_capacity : String | Nil)","args_html":"(default_layout_capacity : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity=","args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default_layout_capacity = default_layout_capacity"}},{"html_id":"formal_name:String|Nil-instance-method","name":"formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@formal_name"}},{"html_id":"formal_name=(formal_name:String|Nil)-instance-method","name":"formal_name=","abstract":false,"args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"args_string":"(formal_name : String | Nil)","args_html":"(formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name=","args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@formal_name = formal_name"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String|Nil-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name","return_type":"String | ::Nil","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String|Nil)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"args_string":"(layout_name : String | Nil)","args_html":"(layout_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@layout_name = layout_name"}},{"html_id":"selected_layout_capacity:Int64-instance-method","name":"selected_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity","return_type":"Int64","visibility":"Public","body":"@selected_layout_capacity"}},{"html_id":"selected_layout_capacity=(selected_layout_capacity:Int64)-instance-method","name":"selected_layout_capacity=","abstract":false,"args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"args_string":"(selected_layout_capacity : Int64)","args_html":"(selected_layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity=","args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@selected_layout_capacity = selected_layout_capacity"}},{"html_id":"shared:String|Nil-instance-method","name":"shared","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared","return_type":"String | ::Nil","visibility":"Public","body":"@shared"}},{"html_id":"shared=(shared:String|Nil)-instance-method","name":"shared=","abstract":false,"args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"args_string":"(shared : String | Nil)","args_html":"(shared : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared=","args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"visibility":"Public","body":"@shared = shared"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_instruction_id:String|Nil-instance-method","name":"space_instruction_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_instruction_id"}},{"html_id":"space_instruction_id=(space_instruction_id:String|Nil)-instance-method","name":"space_instruction_id=","abstract":false,"args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"args_string":"(space_instruction_id : String | Nil)","args_html":"(space_instruction_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id=","args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instruction_id = space_instruction_id"}},{"html_id":"space_instructions:String|Nil-instance-method","name":"space_instructions","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions","return_type":"String | ::Nil","visibility":"Public","body":"@space_instructions"}},{"html_id":"space_instructions=(space_instructions:String|Nil)-instance-method","name":"space_instructions=","abstract":false,"args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"args_string":"(space_instructions : String | Nil)","args_html":"(space_instructions : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions=","args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instructions = space_instructions"}},{"html_id":"space_name:String|Nil-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String|Nil)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"args_string":"(space_name : String | Nil)","args_html":"(space_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_name = space_name"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Resource","path":"TwentyFiveLivePro/Models/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","path":"TwentyFiveLivePro/Models/ResourceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","path":"TwentyFiveLivePro/Models/ResourceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Resource)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items","return_type":"Array(Resource)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Resource))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"args_string":"(items : Array(Resource))","args_html":"(items : Array(Resource))","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Role","path":"TwentyFiveLivePro/Models/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id","return_type":"Int64","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"args_string":"(contact_id : Int64)","args_html":"(contact_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Space","path":"TwentyFiveLivePro/Models/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","path":"TwentyFiveLivePro/Models/SpaceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","path":"TwentyFiveLivePro/Models/SpaceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Space)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items","return_type":"Array(Space)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Space))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"args_string":"(items : Array(Space))","args_html":"(items : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"args_string":"(attributes : Array(Attribute) | Nil)","args_html":"(attributes : Array(Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"args_string":"(categories : Array(Category) | Nil)","args_html":"(categories : Array(Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"features:Array(Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features","return_type":"Array(Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"args_string":"(features : Array(Feature) | Nil)","args_html":"(features : Array(Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"layouts:Array(Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts","return_type":"Array(Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"args_string":"(layouts : Array(Layout) | Nil)","args_html":"(layouts : Array(Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"roles:Array(Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"args_string":"(roles : Array(Role) | Nil)","args_html":"(roles : Array(Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"features:Array(Expanded::Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features","return_type":"Array(Expanded::Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Expanded::Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"args_string":"(features : Array(Expanded::Feature) | Nil)","args_html":"(features : Array(Expanded::Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"layouts:Array(Expanded::Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts","return_type":"Array(Expanded::Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Expanded::Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"args_string":"(layouts : Array(Expanded::Layout) | Nil)","args_html":"(layouts : Array(Expanded::Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}}]}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/RoomSchedule","path":"TwentyFiveLivePro/RoomSchedule.html","kind":"class","full_name":"TwentyFiveLivePro::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L32"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local\n todays_events = fetch_events(today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y%m%d\"))\n todays_events.sort_by() do |__arg1|\n __arg1.date.duration\n end.reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.date.start_date\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by? do |__arg2|\n __arg2.date.start_date\n end\n previous_event = past_events.max_by? do |__arg3|\n __arg3.date.end_date\n end\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String,since:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"args_string":"(start_date : String, end_date : String, since : String)","args_html":"(start_date : String, end_date : String, since : String)","location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L76"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"visibility":"Public","body":"relevant_events = [] of Models::Event\nevents = Array(Models::Event).from_json((twenty_five_live_pro.list_events(1, 100, since, nil)).get.not_nil!.to_json)\nevents.each do |event|\n details = Models::EventDetail.from_json((twenty_five_live_pro.get_event_details(event.id, [\"all\"], [\"all\"])).get.not_nil!.to_json)\n if expanded_info = details.content.expanded_info\n if spaces = expanded_info.spaces\n if spaces.empty?\n next\n end\n if @space_id == spaces.first.space_id\n if event_data = details.content.data\n if event_items = event_data.items\n if event_items.empty?\n next\n end\n event_items.each do |event_item|\n if date = event_item.date\n if (date.start_date.to_rfc3339.includes?(start_date)) && (date.end_date.to_rfc3339.includes?(start_date))\n relevant_events.push(Models::Event.from_json(event_item.to_json))\n end\n end\n end\n end\n end\n end\n end\n end\nend\nrelevant_events\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@space_id = setting(String, :twenty_five_live_pro_space_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/UbiPark","path":"UbiPark.html","kind":"module","full_name":"UbiPark","name":"UbiPark","abstract":false,"locations":[{"filename":"src/ubipark/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/UbiPark/API","path":"UbiPark/API.html","kind":"class","full_name":"UbiPark::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ubipark/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/UbiPark","kind":"module","full_name":"UbiPark","name":"UbiPark"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"list_products(car_park_id:Int32|Nil,tenant_id:Int32|Nil)-instance-method","name":"list_products","abstract":false,"args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","args_html":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L84"},"def":{"name":"list_products","args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif car_park_id.nil?\nelse\n query.push(\"carParkID=#{car_park_id}\")\nend\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/productList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_reasons(tenant_id:Int32|Nil)-instance-method","name":"list_reasons","abstract":false,"args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(tenant_id : Int32 | Nil)","args_html":"(tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L105"},"def":{"name":"list_reasons","args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/reasonList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_userpermits(max_records:Int32,offset:Int32,from_last_modified_time:String,car_park_id:Int32,user_id:Int32)-instance-method","name":"list_userpermits","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","location":{"filename":"src/ubipark/api.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L57"},"def":{"name":"list_userpermits","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time, \"carParkId\" => car_park_id, \"userId\" => user_id}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/userpermit/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_users(max_records:Int32,offset:Int32,from_last_modified_time:String)-instance-method","name":"list_users","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","location":{"filename":"src/ubipark/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L37"},"def":{"name":"list_users","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/user/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"make_payment(payment_id:String,promise_pay_card_name:String,user_id:String,tenant_id:Int32,product_id:String,from_date:String,to_date:String,amount:Float64)-instance-method","name":"make_payment","abstract":false,"args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"args_string":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","args_html":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","location":{"filename":"src/ubipark/api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L125"},"def":{"name":"make_payment","args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"visibility":"Public","body":"if amount < 0\n raise(\"amount can't be less than zero\")\nend\nbody = {\"paymentID\" => payment_id, \"promisePayCardName\" => promise_pay_card_name, \"userID\" => user_id, \"tenantID\" => tenant_id, \"productID\" => product_id, \"fromDate\" => from_date, \"toDate\" => to_date, \"amount\" => (\"%.2f\" % amount).to_f64}.to_json\nresponse = post(\"/api/payment/makepayment\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@tenant_id = setting(Int32, :tenant_id)\n@api_version = setting(String, :api_version)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]}]},{"html_id":"drivers/Union","path":"Union.html","kind":"struct","full_name":"Union(*T)","name":"Union","abstract":false,"superclass":{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},"ancestors":[{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"lib/http-params-serializable/src/http-params-serializable/ext/union.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/http-params-serializable/src/http-params-serializable/ext/union.cr#L2"},{"filename":"src/place/router/settings.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"FIXME: submit as PR to crystal standard lib to support this neatly","summary":"

FIXME submit as PR to crystal standard lib to support this neatly

","class_methods":[{"html_id":"from_json_object_key?(key:String)-class-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L171"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"{% for t in T %}\n instance = {{ t }}.from_json_object_key? key\n return instance unless instance.nil?\n {% end %}\nraise(JSON::ParseException.new(\"Couldn't parse #{self} from #{key}\", 176, 0))\n"}}]},{"html_id":"drivers/Vecos","path":"Vecos.html","kind":"module","full_name":"Vecos","name":"Vecos","abstract":false,"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L3"},{"filename":"src/vecos/releezme/booking.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L3"},{"filename":"src/vecos/releezme/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L3"},{"filename":"src/vecos/releezme/locker.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L3"},{"filename":"src/vecos/releezme/locker_bank.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L3"},{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L4"},{"filename":"src/vecos/releezme/locker_group.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L3"},{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L3"},{"filename":"src/vecos/releezme/locker_users.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L3"},{"filename":"src/vecos/releezme/paging.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L3"},{"filename":"src/vecos/releezme/section.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Vecos/Allocation","path":"Vecos/Allocation.html","kind":"struct","full_name":"Vecos::Allocation","name":"Allocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/allocation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_by_locker_action_on_release?:Bool-instance-method","name":"allocated_by_locker_action_on_release?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L33"},"def":{"name":"allocated_by_locker_action_on_release?","return_type":"Bool","visibility":"Public","body":"@allocated_by_locker_action_on_release"}},{"html_id":"allocated_for_package?:Bool-instance-method","name":"allocated_for_package?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L30"},"def":{"name":"allocated_for_package?","return_type":"Bool","visibility":"Public","body":"@allocated_for_package"}},{"html_id":"dynamically_allocated?:Bool-instance-method","name":"dynamically_allocated?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L18"},"def":{"name":"dynamically_allocated?","return_type":"Bool","visibility":"Public","body":"@dynamically_allocated"}},{"html_id":"expiring:Time-instance-method","name":"expiring","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L24"},"def":{"name":"expiring","return_type":"Time","visibility":"Public","body":"@expiring"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L12"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"self_releasable?:Bool-instance-method","name":"self_releasable?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L15"},"def":{"name":"self_releasable?","return_type":"Bool","visibility":"Public","body":"@self_releasable"}},{"html_id":"shared_to_user?:Bool-instance-method","name":"shared_to_user?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L27"},"def":{"name":"shared_to_user?","return_type":"Bool","visibility":"Public","body":"@shared_to_user"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L21"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"This is the internal user_id - not the user email etc","summary":"

This is the internal user_id - not the user email etc

","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L9"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Booking","path":"Vecos/Booking.html","kind":"struct","full_name":"Vecos::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/booking.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/booking.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L26"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L20"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L17"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L11"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L23"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}}]},{"html_id":"drivers/Vecos/Location","path":"Vecos/Location.html","kind":"struct","full_name":"Vecos::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/location.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:String|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L14"},"def":{"name":"time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Vecos/Locker","path":"Vecos/Locker.html","kind":"struct","full_name":"Vecos::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocked:Bool-instance-method","name":"blocked","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L20"},"def":{"name":"blocked","return_type":"Bool","visibility":"Public","body":"@blocked"}},{"html_id":"door_number:Int32-instance-method","name":"door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L35"},"def":{"name":"door_number","return_type":"Int32","visibility":"Public","body":"@door_number"}},{"html_id":"door_number_prefix:String-instance-method","name":"door_number_prefix","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L32"},"def":{"name":"door_number_prefix","return_type":"String","visibility":"Public","body":"@door_number_prefix"}},{"html_id":"dynamic_allocated:Bool|Nil-instance-method","name":"dynamic_allocated","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L41"},"def":{"name":"dynamic_allocated","return_type":"Bool | ::Nil","visibility":"Public","body":"@dynamic_allocated"}},{"html_id":"expires_date_time_utc:Time|Nil-instance-method","name":"expires_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L62"},"def":{"name":"expires_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@expires_date_time_utc"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L29"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_detected:Bool-instance-method","name":"is_detected","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L26"},"def":{"name":"is_detected","return_type":"Bool","visibility":"Public","body":"@is_detected"}},{"html_id":"is_shareable:Bool|Nil-instance-method","name":"is_shareable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L56"},"def":{"name":"is_shareable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shareable"}},{"html_id":"is_shared:Bool|Nil-instance-method","name":"is_shared","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L53"},"def":{"name":"is_shared","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shared"}},{"html_id":"is_usable:Bool-instance-method","name":"is_usable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L23"},"def":{"name":"is_usable","return_type":"Bool","visibility":"Public","body":"@is_usable"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_brick_id:String-instance-method","name":"locker_brick_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L17"},"def":{"name":"locker_brick_id","return_type":"String","visibility":"Public","body":"@locker_brick_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L11"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"number_of_allocations:Int32|Nil-instance-method","name":"number_of_allocations","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L47"},"def":{"name":"number_of_allocations","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_allocations"}},{"html_id":"number_of_digits_for_door_number:Int32-instance-method","name":"number_of_digits_for_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L68"},"def":{"name":"number_of_digits_for_door_number","return_type":"Int32","visibility":"Public","body":"@number_of_digits_for_door_number"}},{"html_id":"open_time:Int32-instance-method","name":"open_time","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L44"},"def":{"name":"open_time","return_type":"Int32","visibility":"Public","body":"@open_time"}},{"html_id":"self_release_allowed:Bool|Nil-instance-method","name":"self_release_allowed","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L38"},"def":{"name":"self_release_allowed","return_type":"Bool | ::Nil","visibility":"Public","body":"@self_release_allowed"}},{"html_id":"sequence_number:Int32-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L59"},"def":{"name":"sequence_number","return_type":"Int32","visibility":"Public","body":"@sequence_number"}},{"html_id":"shared_to_user:Bool|Nil-instance-method","name":"shared_to_user","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L50"},"def":{"name":"shared_to_user","return_type":"Bool | ::Nil","visibility":"Public","body":"@shared_to_user"}},{"html_id":"start_date_time_utc:Time|Nil-instance-method","name":"start_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L65"},"def":{"name":"start_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@start_date_time_utc"}}]},{"html_id":"drivers/Vecos/LockerBank","path":"Vecos/LockerBank.html","kind":"struct","full_name":"Vecos::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L29"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L17"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"published:Bool-instance-method","name":"published","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L20"},"def":{"name":"published","return_type":"Bool","visibility":"Public","body":"@published"}},{"html_id":"random_allocation:Bool|Nil-instance-method","name":"random_allocation","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L23"},"def":{"name":"random_allocation","return_type":"Bool | ::Nil","visibility":"Public","body":"@random_allocation"}},{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L14"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}},{"html_id":"service_mode:Bool-instance-method","name":"service_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L26"},"def":{"name":"service_mode","return_type":"Bool","visibility":"Public","body":"@service_mode"}}]},{"html_id":"drivers/Vecos/LockerBankAndLockerGroup","path":"Vecos/LockerBankAndLockerGroup.html","kind":"struct","full_name":"Vecos::LockerBankAndLockerGroup","name":"LockerBankAndLockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"locker_bank:LockerBank-instance-method","name":"locker_bank","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L9"},"def":{"name":"locker_bank","return_type":"LockerBank","visibility":"Public","body":"@locker_bank"}},{"html_id":"locker_group:LockerGroup-instance-method","name":"locker_group","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L12"},"def":{"name":"locker_group","return_type":"LockerGroup","visibility":"Public","body":"@locker_group"}}]},{"html_id":"drivers/Vecos/LockerGroup","path":"Vecos/LockerGroup.html","kind":"struct","full_name":"Vecos::LockerGroup","name":"LockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"lock_mode:Int32-instance-method","name":"lock_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L14"},"def":{"name":"lock_mode","return_type":"Int32","visibility":"Public","body":"@lock_mode"}},{"html_id":"locker_booking_feature_enabled:Bool-instance-method","name":"locker_booking_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L17"},"def":{"name":"locker_booking_feature_enabled","return_type":"Bool","visibility":"Public","body":"@locker_booking_feature_enabled"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"postal_service_feature_enabled:Bool-instance-method","name":"postal_service_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L20"},"def":{"name":"postal_service_feature_enabled","return_type":"Bool","visibility":"Public","body":"@postal_service_feature_enabled"}}]},{"html_id":"drivers/Vecos/LockerGroupStatus","path":"Vecos/LockerGroupStatus.html","kind":"struct","full_name":"Vecos::LockerGroupStatus","name":"LockerGroupStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_dynamic_lockers:Int32-instance-method","name":"allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L26"},"def":{"name":"allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_dynamic_lockers"}},{"html_id":"allocated_static_lockers:Int32-instance-method","name":"allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L38"},"def":{"name":"allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_static_lockers"}},{"html_id":"available_dynamic_lockers:Int32-instance-method","name":"available_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L23"},"def":{"name":"available_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@available_dynamic_lockers"}},{"html_id":"available_static_lockers:Int32-instance-method","name":"available_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L35"},"def":{"name":"available_static_lockers","return_type":"Int32","visibility":"Public","body":"@available_static_lockers"}},{"html_id":"blocked_allocated_dynamic_lockers:Int32-instance-method","name":"blocked_allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L29"},"def":{"name":"blocked_allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_dynamic_lockers"}},{"html_id":"blocked_allocated_static_lockers:Int32-instance-method","name":"blocked_allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L41"},"def":{"name":"blocked_allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_static_lockers"}},{"html_id":"blocked_unallocated_dynamic_lockers:Int32-instance-method","name":"blocked_unallocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L32"},"def":{"name":"blocked_unallocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_dynamic_lockers"}},{"html_id":"blocked_unallocated_static_lockers:Int32-instance-method","name":"blocked_unallocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L44"},"def":{"name":"blocked_unallocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_static_lockers"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L8"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_group_name:String-instance-method","name":"locker_group_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L11"},"def":{"name":"locker_group_name","return_type":"String","visibility":"Public","body":"@locker_group_name"}},{"html_id":"public_lockers:Int32-instance-method","name":"public_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L20"},"def":{"name":"public_lockers","return_type":"Int32","visibility":"Public","body":"@public_lockers"}},{"html_id":"unusable_lockers:Int32-instance-method","name":"unusable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L17"},"def":{"name":"unusable_lockers","return_type":"Int32","visibility":"Public","body":"@unusable_lockers"}},{"html_id":"usable_lockers:Int32-instance-method","name":"usable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L14"},"def":{"name":"usable_lockers","return_type":"Int32","visibility":"Public","body":"@usable_lockers"}}]},{"html_id":"drivers/Vecos/LockerUsers","path":"Vecos/LockerUsers.html","kind":"struct","full_name":"Vecos::LockerUsers","name":"LockerUsers","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_users.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L17"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L11"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L14"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L20"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Paging","path":"Vecos/Paging.html","kind":"struct","full_name":"Vecos::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/paging.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/paging.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"first_item_on_page:Int32-instance-method","name":"first_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L8"},"def":{"name":"first_item_on_page","return_type":"Int32","visibility":"Public","body":"@first_item_on_page"}},{"html_id":"has_next_page:Bool-instance-method","name":"has_next_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L11"},"def":{"name":"has_next_page","return_type":"Bool","visibility":"Public","body":"@has_next_page"}},{"html_id":"has_previous_page:Bool-instance-method","name":"has_previous_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L14"},"def":{"name":"has_previous_page","return_type":"Bool","visibility":"Public","body":"@has_previous_page"}},{"html_id":"is_first_page:Bool-instance-method","name":"is_first_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L17"},"def":{"name":"is_first_page","return_type":"Bool","visibility":"Public","body":"@is_first_page"}},{"html_id":"is_last_page:Bool-instance-method","name":"is_last_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L20"},"def":{"name":"is_last_page","return_type":"Bool","visibility":"Public","body":"@is_last_page"}},{"html_id":"last_item_on_page:Int32-instance-method","name":"last_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L23"},"def":{"name":"last_item_on_page","return_type":"Int32","visibility":"Public","body":"@last_item_on_page"}},{"html_id":"page_count:Int32-instance-method","name":"page_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L26"},"def":{"name":"page_count","return_type":"Int32","visibility":"Public","body":"@page_count"}},{"html_id":"page_number:Int32-instance-method","name":"page_number","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L29"},"def":{"name":"page_number","return_type":"Int32","visibility":"Public","body":"@page_number"}},{"html_id":"page_size:Int32-instance-method","name":"page_size","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L32"},"def":{"name":"page_size","return_type":"Int32","visibility":"Public","body":"@page_size"}},{"html_id":"total_item_count:Int32-instance-method","name":"total_item_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L35"},"def":{"name":"total_item_count","return_type":"Int32","visibility":"Public","body":"@total_item_count"}}]},{"html_id":"drivers/Vecos/Releezme","path":"Vecos/Releezme.html","kind":"class","full_name":"Vecos::Releezme","name":"Releezme","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bank(bank_id:String)-instance-method","name":"bank","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L170"},"def":{"name":"bank","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"LockerBank.from_json(fetch_item(\"/api/lockerbanks/#{bank_id}\"))"}},{"html_id":"bank_group_lockers_available(bank_id:String,group_id:String)-instance-method","name":"bank_group_lockers_available","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String)","args_html":"(bank_id : String, group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L183"},"def":{"name":"bank_group_lockers_available","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/#{group_id}/availablelockers?pageSize=200\")"}},{"html_id":"bank_groups(bank_id:String)-instance-method","name":"bank_groups","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L174"},"def":{"name":"bank_groups","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockergroups?pageSize=200\")"}},{"html_id":"bank_locker_allocations(bank_id:String)-instance-method","name":"bank_locker_allocations","doc":"NOTE:: Only accessible to System Control Clients","summary":"

NOTE : Only accessible to System Control Clients

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L188"},"def":{"name":"bank_locker_allocations","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/allocations?pageSize=200\")"}},{"html_id":"bank_lockers(bank_id:String)-instance-method","name":"bank_lockers","doc":"returns all the lockers in the bank without paging (but paging json is included)","summary":"

returns all the lockers in the bank without paging (but paging json is included)

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L179"},"def":{"name":"bank_lockers","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockers?pageSize=200\")"}},{"html_id":"banks-instance-method","name":"banks","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L166"},"def":{"name":"banks","visibility":"Public","body":"fetch_pages(\"/api/lockerbanks?pageSize=200\")"}},{"html_id":"bearer_token:String-instance-method","name":"bearer_token","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L106"},"def":{"name":"bearer_token","visibility":"Public","body":"@bearer_token"}},{"html_id":"book_locker(starting:Int64,ending:Int64,user_id:String,locker_id:String|Nil=nil,group_id:String|Nil=nil,bank_id:String|Nil=nil,timezone:String=\"UTC\")-instance-method","name":"book_locker","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"args_string":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = \"UTC\")","args_html":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = "UTC")","location":{"filename":"src/vecos/releezme.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L244"},"def":{"name":"book_locker","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"tz = Time::Location.load(timezone)\nresponse = post(\"/api/bookings\", body: {\"StartDateTimeUtc\" => ((Time.unix(starting)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"EndDateTimeUtc\" => ((Time.unix(ending)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"LockerGroupId\" => group_id, \"LockerBankId\" => bank_id, \"LockerId\" => locker_id, \"ExternalUserId\" => user_id}.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"bookings(user_id:String)-instance-method","name":"bookings","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L212"},"def":{"name":"bookings","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings?#{params}\")\n"}},{"html_id":"bookings_availability(user_id:String,starting:Int64,ending:Int64,section_id:String|Nil=nil,location_id:String|Nil=nil,bank_id:String|Nil=nil,group_id:String|Nil=nil,locker_id:String|Nil=nil)-instance-method","name":"bookings_availability","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","args_html":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L220"},"def":{"name":"bookings_availability","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"startDateTimeUtc\", (Time.unix(starting)).to_rfc3339)\n form.add(\"endDateTimeUtc\", (Time.unix(ending)).to_rfc3339)\n if section_id.presence\n form.add(\"sectionId\", section_id.as(String))\n end\n if location_id.presence\n form.add(\"locationId\", location_id.as(String))\n end\n if bank_id.presence\n form.add(\"lockerBankId\", bank_id.as(String))\n end\n if bank_id.presence && group_id.presence\n form.add(\"lockerBankId\", group_id.as(String))\n end\n if locker_id.presence\n form.add(\"lockerId\", locker_id.as(String))\n end\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings/availability?#{params}\")\n"}},{"html_id":"can_allocate_locker?(user_id:String):String-instance-method","name":"can_allocate_locker?","doc":"check if a user can be allocated a new locker","summary":"

check if a user can be allocated a new locker

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L274"},"def":{"name":"can_allocate_locker?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = get(\"/api/lockers/canallocate?#{params}\")\nresponse.body\n"}},{"html_id":"can_share_locker_with?(locker_id:String,owner_id:String,search:String)-instance-method","name":"can_share_locker_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, search : String)","args_html":"(locker_id : String, owner_id : String, search : String)","location":{"filename":"src/vecos/releezme.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L339"},"def":{"name":"can_share_locker_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"searchString\", search)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"companies-instance-method","name":"companies","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L114"},"def":{"name":"companies","visibility":"Public","body":"(JSON.parse(fetch_item(\"/api/companies\")))[\"Companies\"]"}},{"html_id":"fetch_item(location:String):String-instance-method","name":"fetch_item","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L97"},"def":{"name":"fetch_item","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get(location)\nif response.status_code == 401\n @expires = 1.minute.ago\nend\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nresponse.body\n"}},{"html_id":"fetch_pages(location:String):Array(JSON::Any)-instance-method","name":"fetch_pages","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : Array(JSON::Any)","args_html":"(location : String) : Array(JSON::Any)","location":{"filename":"src/vecos/releezme.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L71"},"def":{"name":"fetch_pages","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"Array(JSON::Any)","visibility":"Public","body":"append = location.includes?('?') ? '&' : '?'\nnext_page = \"#{location}#{append}pageNumber=#{1}\"\ndata = [] of JSON::Any\nloop do\n response = get(next_page)\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = (JSON.parse(response.body)).as_h\n pages = if has_paging = payload.delete(\"Paging\")\n Paging.from_json(has_paging.to_json)\n end\n data.concat(payload[payload.keys.first].as_a)\n if pages && pages.has_next_page\n else\n break\n end\n next_page = \"#{location}#{append}pageNumber=#{pages.page_number + 1}\"\nend\ndata\n"}},{"html_id":"group(group_id:String)-instance-method","name":"group","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L200"},"def":{"name":"group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"Array(LockerGroup).from_json(fetch_item(\"/api/lockergroups/#{group_id}\"))"}},{"html_id":"group_locker_banks(group_id:String)-instance-method","name":"group_locker_banks","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L204"},"def":{"name":"group_locker_banks","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockergroups/#{group_id}/lockerbanks?pageSize=200\")"}},{"html_id":"groups-instance-method","name":"groups","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L196"},"def":{"name":"groups","visibility":"Public","body":"fetch_pages(\"/api/lockergroups?pageSize=200\")"}},{"html_id":"location(location_id:String)-instance-method","name":"location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L127"},"def":{"name":"location","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"Location.from_json(fetch_item(\"/api/locations/#{location_id}\"))"}},{"html_id":"location_sections(location_id:String)-instance-method","name":"location_sections","doc":"typically these are floors in the building","summary":"

typically these are floors in the building

","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L132"},"def":{"name":"location_sections","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/locations/#{location_id}/sections?pageSize=200\")"}},{"html_id":"locations-instance-method","name":"locations","doc":"typically these are buildings","summary":"

typically these are buildings

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L123"},"def":{"name":"locations","visibility":"Public","body":"fetch_pages(\"/api/locations?pageSize=200\")"}},{"html_id":"locker_allocate(locker_id:String,user_id:String)-instance-method","name":"locker_allocate","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, user_id : String)","args_html":"(locker_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L282"},"def":{"name":"locker_allocate","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_allocate_random(bank_id:String,group_id:String,user_id:String)-instance-method","name":"locker_allocate_random","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String, user_id : String)","args_html":"(bank_id : String, group_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L291"},"def":{"name":"locker_allocate_random","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"lockerBankId\", bank_id)\n form.add(\"lockerGroupId\", group_id)\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_release(locker_id:String,user_id:String|Nil=nil):Nil-instance-method","name":"locker_release","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, user_id : String | Nil = nil) : Nil","args_html":"(locker_id : String, user_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L302"},"def":{"name":"locker_release","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"params = URI::Params.build do |form|\n if user_id.presence\n form.add(\"externalUserId\", user_id)\n end\nend\nresponse = post(\"/api/lockers/#{locker_id}/release?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"locker_shared_with?(locker_id:String,owner_id:String)-instance-method","name":"locker_shared_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String)","args_html":"(locker_id : String, owner_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L347"},"def":{"name":"locker_shared_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"locker_unlock(locker_id:String,pin_code:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, pin_code : String | Nil = nil)","args_html":"(locker_id : String, pin_code : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L310"},"def":{"name":"locker_unlock","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"pin_route = pin_code ? nil : \"/withoutpincode\"\nresponse = post(\"/api/lockers/#{locker_id}/pincode/unlock#{pin_route}\", body: pin_code)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String)-instance-method","name":"lockers_allocated_to","doc":"the lockers that are currently allocated to the specified user\nthe user ID is typically email - defined by the client","summary":"

the lockers that are currently allocated to the specified user the user ID is typically email - defined by the client

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L265"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/lockers/allocated?#{params}\")\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"client_id = setting(String, :client_id)\nclient_secret = setting(String, :client_secret)\nusername = setting(String, :username)\npassword = setting(String, :password)\nreleezme_authentication_domain = setting(String, :releezme_authentication_domain)\ntransport.before_request do |req|\n access_token = get_access_token(client_id, client_secret, username, password, releezme_authentication_domain)\n req.headers[\"Authorization\"] = access_token\n req.headers[\"Content-Type\"] = \"application/json\"\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"section(section_id:String)-instance-method","name":"section","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L145"},"def":{"name":"section","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"Section.from_json(fetch_item(\"/api/locations/#{section_id}\"))"}},{"html_id":"section_banks_allocatable(section_id:String,user_id:String)-instance-method","name":"section_banks_allocatable","doc":"banks and groups in the banks that the user can allocate to themselves","summary":"

banks and groups in the banks that the user can allocate to themselves

","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(section_id : String, user_id : String)","args_html":"(section_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L154"},"def":{"name":"section_banks_allocatable","args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/sections/#{section_id}/lockerbanklockergroups/allocatable?#{params}\")\n"}},{"html_id":"section_locker_banks(section_id:String)-instance-method","name":"section_locker_banks","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L149"},"def":{"name":"section_locker_banks","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/sections/#{section_id}/lockerbanks?pageSize=200\")"}},{"html_id":"sections-instance-method","name":"sections","doc":"all floors from all buildings in one request","summary":"

all floors from all buildings in one request

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L141"},"def":{"name":"sections","visibility":"Public","body":"fetch_pages(\"/api/sections?pageSize=200\")"}},{"html_id":"share_locker_with(locker_id:String,owner_id:String,user_id:String):Bool-instance-method","name":"share_locker_with","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, user_id : String) : Bool","args_html":"(locker_id : String, owner_id : String, user_id : String) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L320"},"def":{"name":"share_locker_with","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"sharedUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/share?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"unshare_locker(locker_id:String,owner_id:String,shared_with_internal_id:String|Nil=nil):Bool-instance-method","name":"unshare_locker","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","args_html":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L330"},"def":{"name":"unshare_locker","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/unshare/#{shared_with_internal_id}?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations","path":"Vecos/ReleezmeLocations.html","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L68"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L271"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of lockers on this level","summary":"

array of lockers on this level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L277"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for lockers in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nreleexme_section_id = @floor_mappings[zone_id]\nbanks = Array(Vecos::LockerBank).from_json((releezme.section_locker_banks(releexme_section_id)).get.to_json)\nif @door_number_lookup && @last_mapped < 3.hour.ago\n @last_mapped = Time.utc\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n self[locker.full_door_number.downcase] = locker.id\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nelse\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L60"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L258"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"releezme incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/vecos/releezme_locations.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L132"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"user_id = get_user_key(user_id)\nlocker_id = locker_id ? lookup_id(locker_id.to_s) : nil\nif expires_at\n timezone = system.timezone || \"UTC\"\n booking = if locker_id\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, locker_id, timezone: timezone)).get\n else\n group_id = get_group_id(user_id, bank_id)\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, group_id: group_id, bank_id: bank_id, timezone: timezone)).get\n end\n PlaceLocker.new(Vecos::Booking.from_json(booking.to_json))\nelse\n if locker_id\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate(locker_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n else\n group_id = get_group_id(user_id, bank_id)\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate_random(bank_id, group_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n end\nend\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L169"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\nif owner_id\n owner_id = get_user_key(owner_id)\nend\n(releezme.locker_release(locker_id, owner_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L190"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.share_locker_with(locker_id, get_user_key(owner_id), get_user_key(share_with))).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L225"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nshared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\nshared_with.map do |user|\n user.email || user.user_id\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L237"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.locker_unlock(locker_id, pin_code)).get\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L201"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nif shared_with_id\n shared_with_external_id = get_user_key(shared_with_id)\n shared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\n shared_user = shared_with.find do |user|\n user.user_id == shared_with_external_id\n end\n if shared_user\n else\n return\n end\n shared_with_id = shared_user.id\nend\n(releezme.unshare_locker(locker_id, owner_id, shared_with_id)).get\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L183"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"user_id = get_user_key(user_id)\nlockers = Array(Vecos::Locker).from_json((releezme.lockers_allocated_to(user_id)).get.to_json)\nlockers.map do |locker|\n PlaceLocker.new(locker, true)\nend\n"}},{"html_id":"lookup_id(locker_id:String):String-instance-method","name":"lookup_id","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"args_string":"(locker_id : String) : String","args_html":"(locker_id : String) : String","location":{"filename":"src/vecos/releezme_locations.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L70"},"def":{"name":"lookup_id","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if @door_number_lookup\n (status?(String, locker_id.downcase)) || locker_id\nelse\n locker_id\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L265"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@door_number_lookup = (setting?(Bool, :door_number_lookup)) || false\n@user_id_key = (setting?(String, :user_id_key)) || \"email\"\n@floor_mappings = (setting(Hash(String, Mapping), :vecos_floor_mappings)).transform_values(&.section_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\nif @door_number_lookup\n schedule.clear\n schedule.in((rand(10)).seconds) do\n @floor_mappings.each_key do |zone_id|\n device_locations(zone_id)\n end\n end\nend\n"}}],"types":[{"html_id":"drivers/Vecos/ReleezmeLocations/Mapping","path":"Vecos/ReleezmeLocations/Mapping.html","kind":"struct","full_name":"Vecos::ReleezmeLocations::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L56"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations/PlaceLocker","path":"Vecos/ReleezmeLocations/PlaceLocker.html","kind":"alias","full_name":"Vecos::ReleezmeLocations::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"}}]},{"html_id":"drivers/Vecos/Section","path":"Vecos/Section.html","kind":"struct","full_name":"Vecos::Section","name":"Section","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/section.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/section.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L14"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Vergesense","path":"Vergesense.html","kind":"module","full_name":"Vergesense","name":"Vergesense","abstract":false,"locations":[{"filename":"src/vergesense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Vergesense Data Models","summary":"

Vergesense Data Models

","types":[{"html_id":"drivers/Vergesense/Building","path":"Vergesense/Building.html","kind":"struct","full_name":"Vergesense::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L10"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"address=(address:String|Nil)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"args_string":"(address : String | Nil)","args_html":"(address : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L10"},"def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@address = address"}},{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L8"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Vergesense/BuildingWithFloors","path":"Vergesense/BuildingWithFloors.html","kind":"struct","full_name":"Vergesense::BuildingWithFloors","name":"BuildingWithFloors","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L17"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"floors=(floors:Array(Floor))-instance-method","name":"floors=","abstract":false,"args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"args_string":"(floors : Array(Floor))","args_html":"(floors : Array(Floor))","location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L17"},"def":{"name":"floors=","args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"visibility":"Public","body":"@floors = floors"}}]},{"html_id":"drivers/Vergesense/Environment","path":"Vergesense/Environment.html","kind":"struct","full_name":"Vergesense::Environment","name":"Environment","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"humidity:Sensor-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L43"},"def":{"name":"humidity","return_type":"Sensor","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:Sensor)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"args_string":"(humidity : Sensor)","args_html":"(humidity : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L43"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"iaq:Sensor|Nil-instance-method","name":"iaq","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L44"},"def":{"name":"iaq","return_type":"Sensor | ::Nil","visibility":"Public","body":"@iaq"}},{"html_id":"iaq=(iaq:Sensor|Nil)-instance-method","name":"iaq=","abstract":false,"args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"args_string":"(iaq : Sensor | Nil)","args_html":"(iaq : Sensor | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L44"},"def":{"name":"iaq=","args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"visibility":"Public","body":"@iaq = iaq"}},{"html_id":"sensor:String-instance-method","name":"sensor","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L40"},"def":{"name":"sensor","return_type":"String","visibility":"Public","body":"@sensor"}},{"html_id":"sensor=(sensor:String)-instance-method","name":"sensor=","abstract":false,"args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"args_string":"(sensor : String)","args_html":"(sensor : String)","location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L40"},"def":{"name":"sensor=","args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"visibility":"Public","body":"@sensor = sensor"}},{"html_id":"temperature:Sensor-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L45"},"def":{"name":"temperature","return_type":"Sensor","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Sensor)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"args_string":"(temperature : Sensor)","args_html":"(temperature : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L45"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L41"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L41"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/Floor","path":"Vergesense/Floor.html","kind":"struct","full_name":"Vergesense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L25"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L25"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"floor_ref_id:String-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id","return_type":"String","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"args_string":"(floor_ref_id : String)","args_html":"(floor_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L27"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L27"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/Vergesense/Geometry","path":"Vergesense/Geometry.html","kind":"struct","full_name":"Vergesense::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"coordinates:Array(Array(Array(Float64)))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L95"},"def":{"name":"coordinates","return_type":"Array(Array(Array(Float64)))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Array(Array(Float64))))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"args_string":"(coordinates : Array(Array(Array(Float64))))","args_html":"(coordinates : Array(Array(Array(Float64))))","location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L95"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L94"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L94"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Vergesense/LocationService","path":"Vergesense/LocationService.html","kind":"class","full_name":"Vergesense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L89"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L94"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfloor = @occupancy_mappings[zone_id]?\nif floor\nelse\n return [] of Nil\nend\ndesk_types = @desk_space_types\nfloor.spaces.compact_map do |space|\n loc_type = space.space_type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n people_count = space.people.try(&.count)\n if @return_empty_spaces || (people_count && people_count > 0)\n if env = space.environment\n humidity = env.humidity.value\n temperature = env.temperature.value\n iaq = env.iaq.try(&.value)\n end\n {location: loc_type, at_location: people_count || 0, map_id: space.name, level: zone_id, building: @building_mappings[zone_id]?, capacity: space.capacity, vergesense_space_id: space.ref_id, vergesense_space_type: space.space_type, area_humidity: humidity, area_temperature: temperature, area_air_quality: iaq, signs_of_life: space.signs_of_life}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L79"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vergesense/location_service.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L84"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/location_service.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@notify_updates = (setting?(Bool, :notify_updates)) || false\n@desk_space_types = (setting?(Array(String), :desk_space_types)) || [\"desk\"]\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.values.map do |z|\n level = z[:level_id]\n @building_mappings[level] = z[:building_id]\n level\nend\nbind_floor_status\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L137"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id\n else\n return nil\n end\n zone_id, _, space_id = mac.rpartition('-')\n if zone_id.empty? || space_id.empty?\n return nil\n end\n floor = @occupancy_mappings[zone_id]?\n if floor\n else\n return nil\n end\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return nil\n end\n case id\n when \"people\"\n build_sensor_details(zone_id, floor, floor_space, :people_count)\n when \"presence\"\n build_sensor_details(zone_id, floor, floor_space, :presence)\n when \"humidity\"\n build_sensor_details(zone_id, floor, floor_space, :humidity)\n when \"temp\"\n build_sensor_details(zone_id, floor, floor_space, :temperature)\n when \"air\"\n build_sensor_details(zone_id, floor, floor_space, :air_quality)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/vergesense/location_service.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L171"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n level_zone, _, space_id = mac.rpartition('-')\n if (zone_id && (zone_id != level_zone)) || space_id.empty?\n return NO_MATCH\n end\n zone_id = level_zone\nend\nif zone_id && !(@occupancy_mappings.has_key?(zone_id))\n return NO_MATCH\nend\nif space_id\n floor = @occupancy_mappings[zone_id]\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return NO_MATCH\n end\n spaces = [{zone_id, floor, floor_space}]\nelse\n if zone_id\n floor = @occupancy_mappings[zone_id]\n spaces = floor.spaces.map do |space|\n {zone_id, floor, space}\n end\n else\n spaces = @occupancy_mappings.flat_map do |__temp_1103|\n zone, floor = __temp_1103\n floor.spaces.map do |space|\n {zone, floor, space}\n end\n end\n end\nend\nif sensor_type\n spaces.compact_map do |__temp_1104|\n zone, floor, space = __temp_1104\n build_sensor_details(zone.not_nil!, floor, space, sensor_type)\n end\nelse\n spaces.flat_map do |__temp_1105|\n zone, floor, space = __temp_1105\n space_sensors(zone.not_nil!, floor, space)\n end.compact\nend\n"}}]},{"html_id":"drivers/Vergesense/MqttExport","path":"Vergesense/MqttExport.html","kind":"class","full_name":"Vergesense::MqttExport","name":"MqttExport","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/mqtt_export.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L42"},"def":{"name":"inspect_state","visibility":"Public","body":"{vergesense_subscriptions: @subscriptions, people_counts: @previous_counts}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@mqtt_root_topic = (setting(String, :mqtt_root_topic)) || \"/t/root-topic\"\n@floors_to_export = (setting(Array(String), :floors_to_export)) || ([] of String)\n@debug = (setting(Bool, :debug)) || false\nsubscriptions.clear\n@subscriptions = 0\n@floors_to_export.each do |floor|\n system.subscribe(:Vergesense_1, floor) do |_subscription, vergesense_floor_json|\n vergesense_to_mqtt(Floor.from_json(vergesense_floor_json))\n end\n @subscriptions = @subscriptions + 1\nend\n"}}]},{"html_id":"drivers/Vergesense/People","path":"Vergesense/People.html","kind":"struct","full_name":"Vergesense::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L98"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L99"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:UInt32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L101"},"def":{"name":"count","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"count=(count:UInt32|Nil)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"args_string":"(count : UInt32 | Nil)","args_html":"(count : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L101"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@count = count"}}]},{"html_id":"drivers/Vergesense/Report","path":"Vergesense/Report.html","kind":"struct","full_name":"Vergesense::Report","name":"Report","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person_count:Int32|Nil-instance-method","name":"person_count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L52"},"def":{"name":"person_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@person_count"}},{"html_id":"person_count=(person_count:Int32|Nil)-instance-method","name":"person_count=","abstract":false,"args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"args_string":"(person_count : Int32 | Nil)","args_html":"(person_count : Int32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L52"},"def":{"name":"person_count=","args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@person_count = person_count"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L51"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L51"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/RoomSensor","path":"Vergesense/RoomSensor.html","kind":"class","full_name":"Vergesense::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @floor_name).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#floor_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_name?:String|Nil-instance-method","name":"floor_name?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name?","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsystem.subscribe(:Vergesense, 1, \"init_complete\") do |_sub, value|\n if value == \"true\"\n subscribe_to_sensor\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/vergesense/room_sensor.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L96"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"verg-#{@space_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nwhen \"humidity\"\n build_sensor_details(:humidity)\nwhen \"temperature\"\n build_sensor_details(:temperature)\nwhen \"air_quality\"\n build_sensor_details(:air_quality)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/vergesense/room_sensor.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L77"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"verg-#{@space_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"space:Space-instance-method","name":"space","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:Space|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space?","return_type":"Space | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/Vergesense/Sensor","path":"Vergesense/Sensor.html","kind":"struct","full_name":"Vergesense::Sensor","name":"Sensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"units:String-instance-method","name":"units","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L33"},"def":{"name":"units","return_type":"String","visibility":"Public","body":"@units"}},{"html_id":"units=(units:String)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"String"}],"args_string":"(units : String)","args_html":"(units : String)","location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L33"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"String"}],"visibility":"Public","body":"@units = units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L34"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Float64)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64"}],"args_string":"(value : Float64)","args_html":"(value : Float64)","location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L34"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Float64"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Vergesense/Space","path":"Vergesense/Space.html","kind":"class","full_name":"Vergesense::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String|Nil-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String|Nil)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"args_string":"(building_ref_id : String | Nil)","args_html":"(building_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L64"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L64"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"environment:Environment|Nil-instance-method","name":"environment","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L69"},"def":{"name":"environment","return_type":"Environment | ::Nil","visibility":"Public","body":"@environment"}},{"html_id":"environment=(environment:Environment|Nil)-instance-method","name":"environment=","abstract":false,"args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"args_string":"(environment : Environment | Nil)","args_html":"(environment : Environment | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L69"},"def":{"name":"environment=","args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"visibility":"Public","body":"@environment = environment"}},{"html_id":"floor_key-instance-method","name":"floor_key","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L82"},"def":{"name":"floor_key","visibility":"Public","body":"\"#{building_ref_id}-#{floor_ref_id}\".strip"}},{"html_id":"floor_ref_id:String|Nil-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String|Nil)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"args_string":"(floor_ref_id : String | Nil)","args_html":"(floor_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"last_reports:Array(Report)|Nil-instance-method","name":"last_reports","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L68"},"def":{"name":"last_reports","return_type":"Array(Report) | ::Nil","visibility":"Public","body":"@last_reports"}},{"html_id":"last_reports=(last_reports:Array(Report)|Nil)-instance-method","name":"last_reports=","abstract":false,"args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"args_string":"(last_reports : Array(Report) | Nil)","args_html":"(last_reports : Array(Report) | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L68"},"def":{"name":"last_reports=","args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"visibility":"Public","body":"@last_reports = last_reports"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"motion_detected:Bool|Nil-instance-method","name":"motion_detected","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected","return_type":"Bool | ::Nil","visibility":"Public","body":"@motion_detected"}},{"html_id":"motion_detected=(motion_detected:Bool|Nil)-instance-method","name":"motion_detected=","abstract":false,"args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"args_string":"(motion_detected : Bool | Nil)","args_html":"(motion_detected : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected=","args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@motion_detected = motion_detected"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L63"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L63"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"people:People|Nil-instance-method","name":"people","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L67"},"def":{"name":"people","return_type":"People | ::Nil","visibility":"Public","body":"@people"}},{"html_id":"people=(people:People|Nil)-instance-method","name":"people=","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"args_string":"(people : People | Nil)","args_html":"(people : People | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L67"},"def":{"name":"people=","args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"visibility":"Public","body":"@people = people"}},{"html_id":"ref_id-instance-method","name":"ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L86"},"def":{"name":"ref_id","visibility":"Public","body":"(self.space_ref_id || self.floor_ref_id) || self.space_type"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"signs_of_life?:Bool|Nil-instance-method","name":"signs_of_life?","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L73"},"def":{"name":"signs_of_life?","return_type":"Bool | ::Nil","visibility":"Public","body":"if report = last_reports.try(&.first?)\n if report.timestamp >= 2.hours.ago\n report.signs_of_life\n end\nend"}},{"html_id":"space_ref_id:String|Nil-instance-method","name":"space_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_ref_id"}},{"html_id":"space_ref_id=(space_ref_id:String|Nil)-instance-method","name":"space_ref_id=","abstract":false,"args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"args_string":"(space_ref_id : String | Nil)","args_html":"(space_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id=","args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_ref_id = space_ref_id"}},{"html_id":"space_type:String|Nil-instance-method","name":"space_type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L62"},"def":{"name":"space_type","return_type":"String | ::Nil","visibility":"Public","body":"@space_type"}},{"html_id":"space_type=(space_type:String|Nil)-instance-method","name":"space_type=","abstract":false,"args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"args_string":"(space_type : String | Nil)","args_html":"(space_type : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L62"},"def":{"name":"space_type=","args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_type = space_type"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L70"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time|Nil)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"args_string":"(timestamp : Time | Nil)","args_html":"(timestamp : Time | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L70"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/VergesenseAPI","path":"Vergesense/VergesenseAPI.html","kind":"class","full_name":"Vergesense::VergesenseAPI","name":"VergesenseAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/vergesense_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_key(space_id:String)-instance-method","name":"floor_key","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L85"},"def":{"name":"floor_key","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@spaces[space_id]"}},{"html_id":"init_sync-instance-method","name":"init_sync","doc":"Performs initial sync by loading buildings / floors / spaces","summary":"

Performs initial sync by loading buildings / floors / spaces

","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L45"},"def":{"name":"init_sync","visibility":"Public","body":"begin\n @sync_lock.synchronize do\n init_buildings\n if @buildings\n init_floors\n init_spaces\n init_floors_status\n self[\"init_complete\"] = true\n end\n end\nrescue e\n logger.error do\n \"failed to perform vergesense API sync\\n#{e.inspect_with_backtrace}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.in(200.milliseconds) do\n init_sync\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :vergesense_api_key)\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@poll_every = (setting?(Int32, :poll_every)).try(&.seconds)\nschedule.clear\nif poll_time = @poll_every\n schedule.every(poll_time) do\n init_sync\n end\nend\n"}},{"html_id":"space_report_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"space_report_api","doc":"Webhook endpoint for space_report API, expects version 2","summary":"

Webhook endpoint for space_report API, expects version 2

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L65"},"def":{"name":"space_report_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"space_report API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nbegin\n remote_space = Space.from_json(body)\n logger.debug do\n \"parsed vergesense payload\"\n end\n update_floor_space(remote_space)\n update_single_floor_status(remote_space.floor_key, @floors[remote_space.floor_key]?)\nrescue e\n logger.error do\n \"failed to parse vergesense space_report API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]}]},{"html_id":"drivers/Whispir","path":"Whispir.html","kind":"module","full_name":"Whispir","name":"Whispir","abstract":false,"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Whispir/Messages","path":"Whispir/Messages.html","kind":"class","full_name":"Whispir::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/Whispir","kind":"module","full_name":"Whispir","name":"Whispir"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/whispir/messages.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/whispir/messages.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L29"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponse = post(\"/messages?apikey=#{@api_key}\", body: {to: phone_numbers.join(\";\"), subject: \"PlaceOS Notification\", body: message}.to_json, headers: {\"Content-Type\" => \"application/vnd.whispir.message-v1+json\", \"Accept\" => \"application/vnd.whispir.message-v1+json\", \"x-api-key\" => @api_key})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nlocation = response.headers[\"Location\"]?\nlogger.debug do\n \"message sent: #{location}\"\nend\nlocation\n"}}]}]},{"html_id":"drivers/Wiegand","path":"Wiegand.html","kind":"module","full_name":"Wiegand","name":"Wiegand","abstract":false,"locations":[{"filename":"src/wiegand/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Wiegand/Base","path":"Wiegand/Base.html","kind":"class","full_name":"Wiegand::Base","name":"Base","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Wiegand/Wiegand26","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26"},{"html_id":"drivers/Wiegand/Wiegand35","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"doc":"Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb","summary":"

Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb

","class_methods":[{"html_id":"count_1s(int:UInt32|UInt64)-class-method","name":"count_1s","abstract":false,"args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"args_string":"(int : UInt32 | UInt64)","args_html":"(int : UInt32 | UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L14"},"def":{"name":"count_1s","args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"visibility":"Public","body":"((int.to_s(2)).gsub(\"0\", \"\")).size"}}],"constructors":[{"html_id":"new(wiegand:UInt64,facility:UInt32,card_number:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","args_html":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L8"},"def":{"name":"new","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(wiegand, facility, card_number)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"card_number:UInt32-instance-method","name":"card_number","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L6"},"def":{"name":"card_number","return_type":"UInt32","visibility":"Public","body":"@card_number"}},{"html_id":"card_number=(card_number:UInt32)-instance-method","name":"card_number=","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(card_number : UInt32)","args_html":"(card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L6"},"def":{"name":"card_number=","args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"@card_number = card_number"}},{"html_id":"facility:UInt32-instance-method","name":"facility","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L5"},"def":{"name":"facility","return_type":"UInt32","visibility":"Public","body":"@facility"}},{"html_id":"facility=(facility:UInt32)-instance-method","name":"facility=","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"args_string":"(facility : UInt32)","args_html":"(facility : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L5"},"def":{"name":"facility=","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"visibility":"Public","body":"@facility = facility"}},{"html_id":"wiegand:UInt64-instance-method","name":"wiegand","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L4"},"def":{"name":"wiegand","return_type":"UInt64","visibility":"Public","body":"@wiegand"}},{"html_id":"wiegand=(wiegand:UInt64)-instance-method","name":"wiegand=","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L4"},"def":{"name":"wiegand=","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"@wiegand = wiegand"}}]},{"html_id":"drivers/Wiegand/Wiegand26","path":"Wiegand/Wiegand26.html","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"131070"},{"id":"CARD_PAR_MASK","name":"CARD_PAR_MASK","value":"131071"},{"id":"FAC_PAR_MASK","name":"FAC_PAR_MASK","value":"66977792"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"33423360"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-class-method","name":"from_components","doc":"Convert components to wiegand 26 card data","summary":"

Convert components to wiegand 26 card data

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L44"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = 0\nwiegand = wiegand + (card_number << 1)\nif (count_1s(card_number)).odd?\n wiegand = wiegand + (FAC_PAR_MASK ^ FACILITY_MASK)\nend\nwiegand = wiegand + (facility << 17)\nif (count_1s(facility)).even?\n wiegand = wiegand + 1\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_wiegand(wiegand:UInt64)-instance-method","name":"from_wiegand","doc":"Convert wiegand 26 card data to components\n\nHex card data: 0x21a6616\nCard Number: 13067\nCard Facility Code: 13","summary":"

Convert wiegand 26 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L30"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"card_number = (wiegand & CARD_MASK) >> 1\ncard_1s = count_1s(wiegand & CARD_PAR_MASK)\nfacility = (wiegand & FACILITY_MASK) >> 17\nfacility_1s = count_1s(wiegand & FAC_PAR_MASK)\nparity_passed = card_1s.odd? && facility_1s.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}]},{"html_id":"drivers/Wiegand/Wiegand35","path":"Wiegand/Wiegand35.html","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L59"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"4194300"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"17175674880_i64"},{"id":"PAR_EVEN_MASK","name":"PAR_EVEN_MASK","value":"14725602156_i64"},{"id":"PAR_ODD_MASK","name":"PAR_ODD_MASK","value":"7362801078_i64"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_wiegand(wiegand)-class-method","name":"from_wiegand","doc":"Convert wiegand 35 card data to components\n\n1 + 12 + 20 + 2\n1 + facility + card num + 2","summary":"

Convert wiegand 35 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"args_string":"(wiegand)","args_html":"(wiegand)","location":{"filename":"src/wiegand/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L89"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"visibility":"Public","body":"str = ((wiegand.to_s(2)).rjust(35, '0')).reverse\ndata = str.to_i(2)\neven_count = (count_1s(data & PAR_EVEN_MASK)) + (str[0] == '1' ? 1 : 0)\nodd_count = count_1s(data & PAR_ODD_MASK)\nparity_passed = odd_count.odd? && even_count.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nfacility = (data & FACILITY_MASK) >> 22\ncard_number = (data & CARD_MASK) >> 2\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-instance-method","name":"from_components","doc":"Outputs the HEX code of what is written to the swipe card\n\nHex card data: 0x06F20107F\nCard Number: 2540\nCard Facility Code: 4033","summary":"

Outputs the HEX code of what is written to the swipe card

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L70"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = (facility << 22) + (card_number << 2)\neven_count = count_1s(wiegand & PAR_EVEN_MASK)\nodd_count = count_1s(wiegand & PAR_ODD_MASK)\nif even_count.odd?\n wiegand = wiegand + (1 << 34)\nend\nif odd_count.even?\n wiegand = wiegand + 2\nend\nwiegand = ((wiegand.to_s(2)).rjust(35, '0')).reverse.to_i(2)\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}]}]},{"html_id":"drivers/WilliamsAV","path":"WilliamsAV.html","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV","abstract":false,"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM","path":"WilliamsAV/WaveCastFM.html","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TYPES","name":"TYPES","value":"{Command::TDU8_REBOOT => Type::TT_U8, Command::TDU8_RESTORE_DEFAULTS => Type::TT_U8, Command::TDU8_VU_METER_VALUE => Type::TT_U8, Command::TDU8_INPUT_GAIN => Type::TT_U8, Command::TDU8_INPUT_SOURCE => Type::TT_U8, Command::TDU8_PRESET => Type::TT_U8, Command::TDU8_HIGH_PASS => Type::TT_U8, Command::TDU8_LOW_PASS => Type::TT_U8, Command::TDU8_COMPRESSION => Type::TT_U8, Command::TDU8_USE_DHCP => Type::TT_U8, Command::TDU8_AUDIO_TX_MODE => Type::TT_U8, Command::TDU8_TTL => Type::TT_U8, Command::TDU8_SECURE_MODE => Type::TT_U8, Command::TDU8_PANEL_LOCK => Type::TT_U8, Command::TDU32_RF_TIMEOUT => Type::TT_U32, Command::TDU8_RF_CHANNEL => Type::TT_U8, Command::TDU8_RF_17_CHANNEL_MODE => Type::TT_U8, Command::TDU8_RF_POWER => Type::TT_U8, Command::TDSTR_SERVER_NAME => Type::TT_STRING, Command::TDSTR_STATIC_IP_ADDR => Type::TT_STRING, Command::TDSTR_STATIC_SUBNET_MASK => Type::TT_STRING, Command::TDSTR_STATIC_GATEWAY_ADDR => Type::TT_STRING, Command::TDSTR_MULTICAST_ADDR => Type::TT_STRING, Command::TDSTR_JOIN_CODE => Type::TT_STRING}"}],"namespace":{"html_id":"drivers/WilliamsAV","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel_number:Int32|Nil-instance-method","name":"channel_number","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L34"},"def":{"name":"channel_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@channel_number"}},{"html_id":"channel_offset-instance-method","name":"channel_offset","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L26"},"def":{"name":"channel_offset","visibility":"Public","body":"(3000 * (@channel_number || 0)) + (rand(750))"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L30"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(channel_offset.milliseconds) do\n query_state\nend"}},{"html_id":"enable_join_code(state:Bool)-instance-method","name":"enable_join_code","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L186"},"def":{"name":"enable_join_code","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_SECURE_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"input_gain(value:UInt8)-instance-method","name":"input_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L223"},"def":{"name":"input_gain","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 50_u8)\nwrite(Command::TDU8_INPUT_GAIN, value)\n"}},{"html_id":"input_source(value:InputSource)-instance-method","name":"input_source","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"args_string":"(value : InputSource)","args_html":"(value : InputSource)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L238"},"def":{"name":"input_source","args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"visibility":"Public","body":"write(Command::TDU8_INPUT_SOURCE, value.to_u8)"}},{"html_id":"lock_front_panel(state:Bool)-instance-method","name":"lock_front_panel","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L266"},"def":{"name":"lock_front_panel","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_PANEL_LOCK, state ? 1_u8 : 0_u8)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@channel_number = setting?(Int32, :channel_number)\nschedule.clear\nschedule.cron(\"* * * * *\") do\n connected\nend\n"}},{"html_id":"preset(value:Preset)-instance-method","name":"preset","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Preset"}],"args_string":"(value : Preset)","args_html":"(value : Preset)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L250"},"def":{"name":"preset","args":[{"name":"value","external_name":"value","restriction":"Preset"}],"visibility":"Public","body":"write(Command::TDU8_PRESET, value.to_u8)"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L99"},"def":{"name":"query_state","visibility":"Public","body":"if channel = channel_number\n body_data = URI::Params.build do |form|\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end.to_s\n logger.debug do\n \"switching current channel to: #{channel}\"\n end\n response = post(\"/TBL-WRITE\", body: body_data)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\nend\nresponse = get(\"/TBL-READ?All\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\ncount = 0\n(response.body.split('\\n')).each do |line|\n if line.presence\n else\n next\n end\n parts = (line.split(\",\")).map!(&.strip)\n begin\n type = Type.parse(parts[0])\n command = (Command.parse?(parts[1])) || parts[1]\n value_raw = parts[2]\n value = case type\n in Type::TT_FLOAT\n value_raw.to_f\n in Type::TT_U8, Type::TT_U32, Type::TT_S8, Type::TT_S32\n value_raw.to_i\n in Type::TT_STRING\n value_raw\n end\n set_status(command, value)\n count = count + 1\n rescue error\n raise(\"error parsing response line\\n#{error.inspect_with_backtrace}\")\n end\nend\n\"#{count} values updated\"\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L207"},"def":{"name":"reboot","visibility":"Public","body":"write(Command::TDU8_REBOOT, 1_u8)"}},{"html_id":"restore_defaults-instance-method","name":"restore_defaults","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L212"},"def":{"name":"restore_defaults","visibility":"Public","body":"write(Command::TDU8_RESTORE_DEFAULTS, 1_u8)"}},{"html_id":"set_join_code(pin:String)-instance-method","name":"set_join_code","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L191"},"def":{"name":"set_join_code","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_JOIN_CODE, pin)"}},{"html_id":"set_multicast_address(ip_address:String)-instance-method","name":"set_multicast_address","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L271"},"def":{"name":"set_multicast_address","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_MULTICAST_ADDR, ip_address)"}},{"html_id":"set_random_join_code(size:Int32=4)-instance-method","name":"set_random_join_code","doc":"creates a numeric pin size digits long","summary":"

creates a numeric pin size digits long

","abstract":false,"args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"args_string":"(size : Int32 = 4)","args_html":"(size : Int32 = 4)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L197"},"def":{"name":"set_random_join_code","args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"visibility":"Public","body":"pin = String.build do |str|\n size.times do\n (rand(9)).to_s(str)\n end\nend\nset_join_code(pin)\n"}},{"html_id":"set_ttl(value:UInt8)-instance-method","name":"set_ttl","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L260"},"def":{"name":"set_ttl","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 30_u8)\nwrite(Command::TDU8_TTL, value)\n"}},{"html_id":"set_vu_meter(value:UInt8,overload:Bool=false)-instance-method","name":"set_vu_meter","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"args_string":"(value : UInt8, overload : Bool = false)","args_html":"(value : UInt8, overload : Bool = false)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L217"},"def":{"name":"set_vu_meter","args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"visibility":"Public","body":"if overload\nelse\n value = value.clamp(0_u8, 9_u8)\nend\nwrite(Command::TDU8_VU_METER_VALUE, value)\n"}},{"html_id":"transmit_multicast(state:Bool)-instance-method","name":"transmit_multicast","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L255"},"def":{"name":"transmit_multicast","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_AUDIO_TX_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"write(command:Command,value:UInt8|UInt32|String)-instance-method","name":"write","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"args_string":"(command : Command, value : UInt8 | UInt32 | String)","args_html":"(command : Command, value : UInt8 | UInt32 | String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L165"},"def":{"name":"write","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"visibility":"Public","body":"body_data = URI::Params.build do |form|\n if channel = channel_number\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end\n form.add(\"type\", TYPES[command].to_s)\n form.add(\"id\", command.to_s)\n form.add(\"value\", value.to_s)\nend.to_s\nlogger.debug do\n \"updating setting: #{body_data}\"\nend\nresponse = post(\"/TBL-WRITE\", body: body_data)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nset_status(command, value)\n"}}],"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM/Command","path":"WilliamsAV/WaveCastFM/Command.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TDU8_REBOOT","name":"TDU8_REBOOT","value":"0"},{"id":"TDU8_RESTORE_DEFAULTS","name":"TDU8_RESTORE_DEFAULTS","value":"1"},{"id":"TDU8_VU_METER_VALUE","name":"TDU8_VU_METER_VALUE","value":"2"},{"id":"TDU8_INPUT_GAIN","name":"TDU8_INPUT_GAIN","value":"3"},{"id":"TDU8_INPUT_SOURCE","name":"TDU8_INPUT_SOURCE","value":"4"},{"id":"TDU8_PRESET","name":"TDU8_PRESET","value":"5"},{"id":"TDU8_HIGH_PASS","name":"TDU8_HIGH_PASS","value":"6"},{"id":"TDU8_LOW_PASS","name":"TDU8_LOW_PASS","value":"7"},{"id":"TDU8_COMPRESSION","name":"TDU8_COMPRESSION","value":"8"},{"id":"TDU8_USE_DHCP","name":"TDU8_USE_DHCP","value":"9"},{"id":"TDU8_AUDIO_TX_MODE","name":"TDU8_AUDIO_TX_MODE","value":"10"},{"id":"TDU8_TTL","name":"TDU8_TTL","value":"11"},{"id":"TDU8_SECURE_MODE","name":"TDU8_SECURE_MODE","value":"12"},{"id":"TDU8_PANEL_LOCK","name":"TDU8_PANEL_LOCK","value":"13"},{"id":"TDU32_RF_TIMEOUT","name":"TDU32_RF_TIMEOUT","value":"14"},{"id":"TDU8_RF_CHANNEL","name":"TDU8_RF_CHANNEL","value":"15"},{"id":"TDU8_RF_17_CHANNEL_MODE","name":"TDU8_RF_17_CHANNEL_MODE","value":"16"},{"id":"TDU8_RF_POWER","name":"TDU8_RF_POWER","value":"17"},{"id":"TDSTR_SERVER_NAME","name":"TDSTR_SERVER_NAME","value":"18"},{"id":"TDSTR_STATIC_IP_ADDR","name":"TDSTR_STATIC_IP_ADDR","value":"19"},{"id":"TDSTR_STATIC_SUBNET_MASK","name":"TDSTR_STATIC_SUBNET_MASK","value":"20"},{"id":"TDSTR_STATIC_GATEWAY_ADDR","name":"TDSTR_STATIC_GATEWAY_ADDR","value":"21"},{"id":"TDSTR_MULTICAST_ADDR","name":"TDSTR_MULTICAST_ADDR","value":"22"},{"id":"TDSTR_JOIN_CODE","name":"TDSTR_JOIN_CODE","value":"23"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tdstr_join_code?-instance-method","name":"tdstr_join_code?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L60"},"def":{"name":"tdstr_join_code?","visibility":"Public","body":"self == TDSTR_JOIN_CODE"}},{"html_id":"tdstr_multicast_addr?-instance-method","name":"tdstr_multicast_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L59"},"def":{"name":"tdstr_multicast_addr?","visibility":"Public","body":"self == TDSTR_MULTICAST_ADDR"}},{"html_id":"tdstr_server_name?-instance-method","name":"tdstr_server_name?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L55"},"def":{"name":"tdstr_server_name?","visibility":"Public","body":"self == TDSTR_SERVER_NAME"}},{"html_id":"tdstr_static_gateway_addr?-instance-method","name":"tdstr_static_gateway_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L58"},"def":{"name":"tdstr_static_gateway_addr?","visibility":"Public","body":"self == TDSTR_STATIC_GATEWAY_ADDR"}},{"html_id":"tdstr_static_ip_addr?-instance-method","name":"tdstr_static_ip_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L56"},"def":{"name":"tdstr_static_ip_addr?","visibility":"Public","body":"self == TDSTR_STATIC_IP_ADDR"}},{"html_id":"tdstr_static_subnet_mask?-instance-method","name":"tdstr_static_subnet_mask?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L57"},"def":{"name":"tdstr_static_subnet_mask?","visibility":"Public","body":"self == TDSTR_STATIC_SUBNET_MASK"}},{"html_id":"tdu32_rf_timeout?-instance-method","name":"tdu32_rf_timeout?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L51"},"def":{"name":"tdu32_rf_timeout?","visibility":"Public","body":"self == TDU32_RF_TIMEOUT"}},{"html_id":"tdu8_audio_tx_mode?-instance-method","name":"tdu8_audio_tx_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L47"},"def":{"name":"tdu8_audio_tx_mode?","visibility":"Public","body":"self == TDU8_AUDIO_TX_MODE"}},{"html_id":"tdu8_compression?-instance-method","name":"tdu8_compression?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L45"},"def":{"name":"tdu8_compression?","visibility":"Public","body":"self == TDU8_COMPRESSION"}},{"html_id":"tdu8_high_pass?-instance-method","name":"tdu8_high_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L43"},"def":{"name":"tdu8_high_pass?","visibility":"Public","body":"self == TDU8_HIGH_PASS"}},{"html_id":"tdu8_input_gain?-instance-method","name":"tdu8_input_gain?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L40"},"def":{"name":"tdu8_input_gain?","visibility":"Public","body":"self == TDU8_INPUT_GAIN"}},{"html_id":"tdu8_input_source?-instance-method","name":"tdu8_input_source?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L41"},"def":{"name":"tdu8_input_source?","visibility":"Public","body":"self == TDU8_INPUT_SOURCE"}},{"html_id":"tdu8_low_pass?-instance-method","name":"tdu8_low_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L44"},"def":{"name":"tdu8_low_pass?","visibility":"Public","body":"self == TDU8_LOW_PASS"}},{"html_id":"tdu8_panel_lock?-instance-method","name":"tdu8_panel_lock?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L50"},"def":{"name":"tdu8_panel_lock?","visibility":"Public","body":"self == TDU8_PANEL_LOCK"}},{"html_id":"tdu8_preset?-instance-method","name":"tdu8_preset?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L42"},"def":{"name":"tdu8_preset?","visibility":"Public","body":"self == TDU8_PRESET"}},{"html_id":"tdu8_reboot?-instance-method","name":"tdu8_reboot?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L37"},"def":{"name":"tdu8_reboot?","visibility":"Public","body":"self == TDU8_REBOOT"}},{"html_id":"tdu8_restore_defaults?-instance-method","name":"tdu8_restore_defaults?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L38"},"def":{"name":"tdu8_restore_defaults?","visibility":"Public","body":"self == TDU8_RESTORE_DEFAULTS"}},{"html_id":"tdu8_rf_17_channel_mode?-instance-method","name":"tdu8_rf_17_channel_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L53"},"def":{"name":"tdu8_rf_17_channel_mode?","visibility":"Public","body":"self == TDU8_RF_17_CHANNEL_MODE"}},{"html_id":"tdu8_rf_channel?-instance-method","name":"tdu8_rf_channel?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L52"},"def":{"name":"tdu8_rf_channel?","visibility":"Public","body":"self == TDU8_RF_CHANNEL"}},{"html_id":"tdu8_rf_power?-instance-method","name":"tdu8_rf_power?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L54"},"def":{"name":"tdu8_rf_power?","visibility":"Public","body":"self == TDU8_RF_POWER"}},{"html_id":"tdu8_secure_mode?-instance-method","name":"tdu8_secure_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L49"},"def":{"name":"tdu8_secure_mode?","visibility":"Public","body":"self == TDU8_SECURE_MODE"}},{"html_id":"tdu8_ttl?-instance-method","name":"tdu8_ttl?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L48"},"def":{"name":"tdu8_ttl?","visibility":"Public","body":"self == TDU8_TTL"}},{"html_id":"tdu8_use_dhcp?-instance-method","name":"tdu8_use_dhcp?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L46"},"def":{"name":"tdu8_use_dhcp?","visibility":"Public","body":"self == TDU8_USE_DHCP"}},{"html_id":"tdu8_vu_meter_value?-instance-method","name":"tdu8_vu_meter_value?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L39"},"def":{"name":"tdu8_vu_meter_value?","visibility":"Public","body":"self == TDU8_VU_METER_VALUE"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/InputSource","path":"WilliamsAV/WaveCastFM/InputSource.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::InputSource","name":"InputSource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"AnalogLineIn","name":"AnalogLineIn","value":"1"},{"id":"Mic","name":"Mic","value":"2"},{"id":"PhantomMic","name":"PhantomMic","value":"3"},{"id":"AES","name":"AES","value":"4"},{"id":"S_PDIF","name":"S_PDIF","value":"5"},{"id":"TestTone","name":"TestTone","value":"6"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"aes?-instance-method","name":"aes?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L232"},"def":{"name":"aes?","visibility":"Public","body":"self == AES"}},{"html_id":"analog_line_in?-instance-method","name":"analog_line_in?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L229"},"def":{"name":"analog_line_in?","visibility":"Public","body":"self == AnalogLineIn"}},{"html_id":"mic?-instance-method","name":"mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L230"},"def":{"name":"mic?","visibility":"Public","body":"self == Mic"}},{"html_id":"phantom_mic?-instance-method","name":"phantom_mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L231"},"def":{"name":"phantom_mic?","visibility":"Public","body":"self == PhantomMic"}},{"html_id":"s_pdif?-instance-method","name":"s_pdif?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L233"},"def":{"name":"s_pdif?","visibility":"Public","body":"self == S_PDIF"}},{"html_id":"test_tone?-instance-method","name":"test_tone?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L234"},"def":{"name":"test_tone?","visibility":"Public","body":"self == TestTone"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Preset","path":"WilliamsAV/WaveCastFM/Preset.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Preset","name":"Preset","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L242"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Voice","name":"Voice","value":"1"},{"id":"Music","name":"Music","value":"2"},{"id":"HearingAssist","name":"HearingAssist","value":"3"},{"id":"Custom","name":"Custom","value":"4"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"custom?-instance-method","name":"custom?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L246"},"def":{"name":"custom?","visibility":"Public","body":"self == Custom"}},{"html_id":"hearing_assist?-instance-method","name":"hearing_assist?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L245"},"def":{"name":"hearing_assist?","visibility":"Public","body":"self == HearingAssist"}},{"html_id":"music?-instance-method","name":"music?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L244"},"def":{"name":"music?","visibility":"Public","body":"self == Music"}},{"html_id":"voice?-instance-method","name":"voice?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L243"},"def":{"name":"voice?","visibility":"Public","body":"self == Voice"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Type","path":"WilliamsAV/WaveCastFM/Type.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L63"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TT_FLOAT","name":"TT_FLOAT","value":"0"},{"id":"TT_U8","name":"TT_U8","value":"1"},{"id":"TT_U32","name":"TT_U32","value":"2"},{"id":"TT_S8","name":"TT_S8","value":"3"},{"id":"TT_S32","name":"TT_S32","value":"4"},{"id":"TT_STRING","name":"TT_STRING","value":"5"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tt_float?-instance-method","name":"tt_float?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L64"},"def":{"name":"tt_float?","visibility":"Public","body":"self == TT_FLOAT"}},{"html_id":"tt_s32?-instance-method","name":"tt_s32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L68"},"def":{"name":"tt_s32?","visibility":"Public","body":"self == TT_S32"}},{"html_id":"tt_s8?-instance-method","name":"tt_s8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L67"},"def":{"name":"tt_s8?","visibility":"Public","body":"self == TT_S8"}},{"html_id":"tt_string?-instance-method","name":"tt_string?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L69"},"def":{"name":"tt_string?","visibility":"Public","body":"self == TT_STRING"}},{"html_id":"tt_u32?-instance-method","name":"tt_u32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L66"},"def":{"name":"tt_u32?","visibility":"Public","body":"self == TT_U32"}},{"html_id":"tt_u8?-instance-method","name":"tt_u8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L65"},"def":{"name":"tt_u8?","visibility":"Public","body":"self == TT_U8"}}]}]}]},{"html_id":"drivers/Winmate","path":"Winmate.html","kind":"module","full_name":"Winmate","name":"Winmate","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Winmate/LedLightBar","path":"Winmate/LedLightBar.html","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COLOUR_LOOKUP","name":"COLOUR_LOOKUP","value":"{16 => Led::Red, 17 => Led::Green, 18 => Led::Blue}"},{"id":"COLOURS","name":"COLOURS","value":"{Led::Red => 16_u8, Led::Green => 17_u8, Led::Blue => 18_u8}"},{"id":"COMMANDS","name":"COMMANDS","value":"{set: 97_u8, get: 96_u8}"},{"id":"DEFAULT_COLOURS","name":"DEFAULT_COLOURS","value":"{\"red\" => {red: 255_u8, green: 0_u8, blue: 0_u8}, \"green\" => {red: 0_u8, green: 255_u8, blue: 0_u8}, \"blue\" => {red: 0_u8, green: 0_u8, blue: 255_u8}, \"orange\" => {red: 200_u8, green: 0_u8, blue: 0_u8}, \"off\" => {red: 0_u8, green: 0_u8, blue: 0_u8}}"}],"namespace":{"html_id":"drivers/Winmate","kind":"module","full_name":"Winmate","name":"Winmate"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"colour(colour:String)-instance-method","name":"colour","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"String"}],"args_string":"(colour : String)","args_html":"(colour : String)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L72"},"def":{"name":"colour","args":[{"name":"colour","external_name":"colour","restriction":"String"}],"visibility":"Public","body":"colours = @colours[colour]\nself[:colour_name] = colour\ncolours.each do |component, intensity|\n led = Led.parse(component.to_s)\n set(led, intensity)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L53"},"def":{"name":"connected","visibility":"Public","body":"@buffer = String.new\ntransport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n bytes[0].to_i\nend\ndo_poll\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Polling Winmate LED\"\n end\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L68"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L121"},"def":{"name":"do_poll","visibility":"Public","body":"query(:red, priority: 0)\nquery(:green, priority: 0)\nquery(:blue, priority: 0)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"colours = (setting?(Colours, :colours)) || Colours.new\n@colours = colours.merge(DEFAULT_COLOURS)\n"}},{"html_id":"query(led:Led,**options)-instance-method","name":"query","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"}],"args_string":"(led : Led, **options)","args_html":"(led : Led, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L104"},"def":{"name":"query","args":[{"name":"led","external_name":"led","restriction":"Led"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(**options.merge({command: :get, colour: led}))"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L127"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received: #{bytes.hexstring}\"\nend\nif check_checksum(bytes)\nelse\n logger.warn do\n \"Error processing response. Possibly incorrect baud rate configured\"\n end\n return task.try(&.abort)\nend\nindicator = bytes[1]\ncolour = COLOUR_LOOKUP[indicator]?\nif colour\n self[colour.to_s.downcase] = bytes[2]\n task.try(&.success(bytes[2]))\nelse\n if indicator == 12\n else\n return task.try(&.abort)\n end\n task.try(&.success)\nend\n"}},{"html_id":"set(led:Led,value:UInt8,**options)-instance-method","name":"set","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(led : Led, value : UInt8, **options)","args_html":"(led : Led, value : UInt8, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L111"},"def":{"name":"set","args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[led.to_s.downcase] = value\ndo_send(**options.merge({command: :set, colour: led, value: value}))\n"}}],"types":[{"html_id":"drivers/Winmate/LedLightBar/Colours","path":"Winmate/LedLightBar/Colours.html","kind":"alias","full_name":"Winmate::LedLightBar::Colours","name":"Colours","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, NamedTuple(red: UInt8, green: UInt8, blue: UInt8))","aliased_html":"Hash(String, {red: UInt8, green: UInt8, blue: UInt8})","const":false,"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"}},{"html_id":"drivers/Winmate/LedLightBar/Led","path":"Winmate/LedLightBar/Led.html","kind":"enum","full_name":"Winmate::LedLightBar::Led","name":"Led","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L84"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L83"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L82"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]}]}]},{"html_id":"drivers/Xovis","path":"Xovis.html","kind":"module","full_name":"Xovis","name":"Xovis","abstract":false,"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Xovis/SensorAPI","path":"Xovis/SensorAPI.html","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"line-counts\" => SensorType::QueueSize, \"zone-occupancy-counts\" => SensorType::PeopleCount, \"zone-in-out-counts\" => SensorType::Counter}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Xovis","kind":"module","full_name":"Xovis","name":"Xovis"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capacity_data-instance-method","name":"capacity_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L146"},"def":{"name":"capacity_data","visibility":"Public","body":"response = get(\"/api/info/persistence\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlast_checked = Time.utc.to_unix\n{\"line\", \"zone-occupancy\", \"zone-in-out\"}.each do |count_name|\n xml_key_name = \"//count-#{count_name}-storage\"\n if count_data = (document.xpath_nodes(xml_key_name)).first?\n count_type = (count_name.split(\"-\", 2))[0]\n capacity = xpath_text(document, \"#{xml_key_name}/capacity\", &.to_i)\n key = \"#{count_name}-counts\"\n @state[key] = self[key] = (document.xpath_nodes(\"#{xml_key_name}/count-#{count_type}s/count-#{count_type}\")).map_with_index do |zone, index|\n attrs = {} of String => String | Int32 | Int64 | Nil\n zone.children.each do |child|\n content = child.text.strip\n attrs[child.name] = case child.name\n when \"entry-count\"\n content.to_i\n when \"first-entry\", \"last-entry\"\n content.empty? ? nil : (Time.parse!(content, \"%Y-%m-%dT%H:%M:%S%z\")).to_unix\n when \"text\"\n next\n else\n content\n end\n end\n last_entry = attrs[\"last-entry\"].as(Int64 | ::Nil)\n sensor = case count_name\n when \"line\"\n SensorDetail.new(SensorType::QueueSize, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"line-#{index}\", attrs[\"name\"].as(String))\n when \"zone-occupancy\"\n SensorDetail.new(SensorType::PeopleCount, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-occupancy-#{index}\", \"Occupancy #{attrs[\"name\"].as(String)}\")\n when \"zone-in-out\"\n SensorDetail.new(SensorType::Counter, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-in-out-#{index}\", \"In Out #{attrs[\"name\"].as(String)}\")\n else\n next\n end\n sensor.capacity = capacity\n sensor.last_entry = last_entry\n sensor.first_entry = attrs[\"first-entry\"].as(Int64 | ::Nil)\n sensor\n end.compact\n end\nend\ntrue\n"}},{"html_id":"count_data-instance-method","name":"count_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L126"},"def":{"name":"count_data","visibility":"Public","body":"response = get(\"/api/count-data\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlines = {} of String => NamedTuple(name: String, id: String, type: String, sensor: String, data: Hash(String, String | Int32 | Float32))\nlines_xml = document.xpath_nodes(\"//lines/line\")\nself[:lines] = lines_xml.map do |line|\n attrs = {} of String => String | Hash(String, Int32)\n counts = {} of String => Int32\n line.attributes.each do |attr|\n attrs[attr.name] = attr.content\n end\n line.children.each do |child|\n if child.name == \"text\"\n next\n end\n counts[child.name] = child.text.to_i\n end\n attrs[\"counts\"] = counts\n attrs\nend\n"}},{"html_id":"device_status-instance-method","name":"device_status","doc":"Combined `/info` and `/info/status`","summary":"

Combined /info and /info/status

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L198"},"def":{"name":"device_status","visibility":"Public","body":"response = get(\"/api/info/sensor-status\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nparse_type_info(document, \"version\")\nparse_type_info(document, \"temperature\")\nif sensor = parse_text_info(document, \"sensor\")\n @mac = sensor[\"serial-number\"]? || @mac\nend\nparse_text_info(document, \"illumination\")\nparse_text_info(document, \"configuration\")\nparse_text_info(document, \"operation\")\ntrue\n"}},{"html_id":"get_logs-instance-method","name":"get_logs","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L105"},"def":{"name":"get_logs","visibility":"Public","body":"response = get(\"/api/info/log\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining logs: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_token-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L98"},"def":{"name":"get_token","visibility":"Public","body":"response = get(\"/api/auth/token\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"is_alive?-instance-method","name":"is_alive?","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L118"},"def":{"name":"is_alive?","visibility":"Public","body":"begin\n response = get(\"/api/info/alive\", headers: {\"Accept\" => \"text/xml\"})\n check_success(response)\n true\nrescue\n false\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 15).seconds\n@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nquery_capacity = setting?(Bool, :query_capacity)\nquery_counts = setting?(Bool, :query_counts)\nschedule.clear\nschedule.every(@poll_rate) do\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\nschedule.every(5.minutes) do\n device_status\nend\nschedule.in(@poll_rate / 3) do\n device_status\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\n"}},{"html_id":"reset_count-instance-method","name":"reset_count","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L112"},"def":{"name":"reset_count","visibility":"Public","body":"response = get(\"/api/count-data/reset\", headers: {\"Accept\" => \"text/xml\"})\ncheck_success(response)\ntrue\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/xovis/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L54"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n return nil\n end\n index = index_str.to_i\n if sensors = @state[\"#{sensor}-counts\"]?\n sensors[index]?\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/xovis/sensor_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L81"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return @state.values.flatten.map do |__arg0|\n __arg0.as(Interface::Sensor::Detail)\n end\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << @state[key].map do |__arg1|\n __arg1.as(Interface::Sensor::Detail)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}}],"types":[{"html_id":"drivers/Xovis/SensorAPI/SensorDetail","path":"Xovis/SensorAPI/SensorDetail.html","kind":"class","full_name":"Xovis::SensorAPI::SensorDetail","name":"SensorDetail","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Xovis/SensorAPI","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"args_string":"(capacity : Int32 | Nil)","args_html":"(capacity : Int32 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"first_entry:Int64|Nil-instance-method","name":"first_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@first_entry"}},{"html_id":"first_entry=(first_entry:Int64|Nil)-instance-method","name":"first_entry=","abstract":false,"args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"args_string":"(first_entry : Int64 | Nil)","args_html":"(first_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry=","args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@first_entry = first_entry"}},{"html_id":"last_entry:Int64|Nil-instance-method","name":"last_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_entry"}},{"html_id":"last_entry=(last_entry:Int64|Nil)-instance-method","name":"last_entry=","abstract":false,"args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"args_string":"(last_entry : Int64 | Nil)","args_html":"(last_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry=","args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_entry = last_entry"}}]}]}]},{"html_id":"drivers/XYSense","path":"XYSense.html","kind":"module","full_name":"XYSense","name":"XYSense","abstract":false,"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/XYSense/LocationService","path":"XYSense/LocationService.html","kind":"class","full_name":"XYSense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/XYSense","kind":"module","full_name":"XYSense","name":"XYSense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/xy_sense/location_service.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L187"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L192"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\n@occupancy_mappings[zone_id].compact_map do |space_name, space|\n capacity = space.details.capacity\n if capacity == 1\n if space.headcount > 0\n else\n next\n end\n if location.presence && (location != \"desk\")\n next\n end\n {location: :desk, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n else\n if location.presence && (location != \"area\")\n next\n end\n {location: :area, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n end\nend\n"}},{"html_id":"floor_subscriptions-instance-method","name":"floor_subscriptions","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L134"},"def":{"name":"floor_subscriptions","visibility":"Public","body":"@floor_subscriptions.keys"}},{"html_id":"level_state_change(zone_id:String,spaces:Array(Occupancy))-instance-method","name":"level_state_change","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"args_string":"(zone_id : String, spaces : Array(Occupancy))","args_html":"(zone_id : String, spaces : Array(Occupancy))","location":{"filename":"src/xy_sense/location_service.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L157"},"def":{"name":"level_state_change","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"visibility":"Public","body":"begin\n area_occupancy = {} of String => Occupancy\n spaces.each do |space|\n space.details = @space_details[space.space_id]\n space_name = space.details.name\n if space_name\n else\n logger.warn do\n \"missing space name for id #{space.details.id}\"\n end\n next\n end\n area_occupancy[space_name] = space\n end\n @occupancy_mappings[zone_id] = area_occupancy\n area_manager.update_available({zone_id})\nrescue error\n logger.error(exception: error) do\n \"error updating level #{zone_id} space changes\"\n end\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L177"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L182"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@floor_mappings = setting(Hash(String, NamedTuple(zone_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.map do |_, detail|\n detail[:zone_id]\nend\nschedule.clear\nschedule.every(30.minutes) do\n sync_floor_states\nend\n"}},{"html_id":"sync_floor_states-instance-method","name":"sync_floor_states","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L138"},"def":{"name":"sync_floor_states","visibility":"Public","body":"logger.debug do\n \"-- updating space details...\"\nend\ndetails = update_space_details\nlogger.debug do\n \"-- details:\\n#{details}\"\nend\nlogger.debug do\n \"-- grabbing floor details...\"\nend\nxy = xy_sense\n@change_lock.synchronize do\n floor_subscriptions.each do |zone_id|\n level_state_change(zone_id, xy.status(Array(Occupancy), zone_id))\n end\nend\nlogger.debug do\n \"-- floor states synced!\"\nend\n@occupancy_mappings\n"}},{"html_id":"update_space_details-instance-method","name":"update_space_details","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L79"},"def":{"name":"update_space_details","visibility":"Public","body":"@change_lock.synchronize do\n floors = xy_sense.status(Hash(String, FloorDetails), :floors)\n space_details = {} of String => SpaceDetails\n floors.each do |floor_id, floor|\n mapping = @floor_mappings[floor_id]?\n if mapping\n else\n next\n end\n floor.spaces.each do |space|\n space_details[space.id] = space\n end\n end\n @space_details = space_details\nend"}}],"types":[{"html_id":"drivers/XYSense/LocationService/FloorDetails","path":"XYSense/LocationService/FloorDetails.html","kind":"class","full_name":"XYSense::LocationService::FloorDetails","name":"FloorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"doc":"===================================\nBindings into xy-sense data\n===================================","summary":"

=================================== Bindings into xy-sense data ===================================

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"floor_name=(floor_name:String)-instance-method","name":"floor_name=","abstract":false,"args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"args_string":"(floor_name : String)","args_html":"(floor_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name=","args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"visibility":"Public","body":"@floor_name = floor_name"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_name:String-instance-method","name":"location_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name","return_type":"String","visibility":"Public","body":"@location_name"}},{"html_id":"location_name=(location_name:String)-instance-method","name":"location_name=","abstract":false,"args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"args_string":"(location_name : String)","args_html":"(location_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name=","args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"visibility":"Public","body":"@location_name = location_name"}},{"html_id":"spaces:Array(SpaceDetails)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces","return_type":"Array(SpaceDetails)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(SpaceDetails))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"args_string":"(spaces : Array(SpaceDetails))","args_html":"(spaces : Array(SpaceDetails))","location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/XYSense/LocationService/Occupancy","path":"XYSense/LocationService/Occupancy.html","kind":"class","full_name":"XYSense::LocationService::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L61"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"collected:Time-instance-method","name":"collected","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected","return_type":"Time","visibility":"Public","body":"@collected"}},{"html_id":"collected=(collected:Time)-instance-method","name":"collected=","abstract":false,"args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"args_string":"(collected : Time)","args_html":"(collected : Time)","location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected=","args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"visibility":"Public","body":"@collected = collected"}},{"html_id":"details:SpaceDetails-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"SpaceDetails","visibility":"Public","body":"if (__temp_1 = @details).nil?\n ::raise(::NilAssertionError.new(\"XYSense::LocationService::Occupancy#details cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"details=(details:SpaceDetails)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"args_string":"(details : SpaceDetails)","args_html":"(details : SpaceDetails)","location":{"filename":"src/xy_sense/location_service.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L71"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"visibility":"Public","body":"@details = details"}},{"html_id":"details?:SpaceDetails|Nil-instance-method","name":"details?","abstract":false,"def":{"name":"details?","return_type":"SpaceDetails | ::Nil","visibility":"Public","body":"@details"}},{"html_id":"headcount:Int32-instance-method","name":"headcount","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount","return_type":"Int32","visibility":"Public","body":"@headcount"}},{"html_id":"headcount=(headcount:Int32)-instance-method","name":"headcount=","abstract":false,"args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"args_string":"(headcount : Int32)","args_html":"(headcount : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount=","args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"visibility":"Public","body":"@headcount = headcount"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:String)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L63"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L63"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/XYSense/LocationService/SpaceDetails","path":"XYSense/LocationService/SpaceDetails.html","kind":"class","full_name":"XYSense::LocationService::SpaceDetails","name":"SpaceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L57"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"category=(category:String)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"String"}],"args_string":"(category : String)","args_html":"(category : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L57"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"String"}],"visibility":"Public","body":"@category = category"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L54"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L54"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L55"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L55"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]}]}]},{"html_id":"drivers/Zencontrol","path":"Zencontrol.html","kind":"module","full_name":"Zencontrol","name":"Zencontrol","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI","path":"Zencontrol/AdvancedTPI.html","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CODES","name":"ERROR_CODES","value":"{1_u8 => \"The checksum check failed\", 2_u8 => \"A short on the DALI line was detected\", 3_u8 => \"A receive error occured\", 4_u8 => \"The command in the request is unrecognised\", 176_u8 => \"The command requested relies on a paid feature that hasn't been purchsed\", 177_u8 => \"Invalid arguments supplied for the given command in the re quest\", 178_u8 => \"The command couldn't be processed\", 179_u8 => \"The queue or buffer that's required to process the command in the request\\n is full or broken\", 180_u8 => \"The command in the request may stream multiple responses back, but this\\n feature isn't available for some reason\", 181_u8 => \"The DALI related request couldn't be processed due to an error\", 182_u8 => \"There are an insufficient number of the required resource remaining service\\n the request\", 183_u8 => \"An unexpected result occurred\"}"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L61"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L103"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(170_u8, area_id.to_u8)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L81"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(173_u8, area_id.to_u8)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n bytes.size < 3 ? 0 : (bytes[2].to_i + 4)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :api_version)) || 4_u8"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L187"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\nio = IO::Memory.new(data)\nresponse = io.read_bytes(ResponseFrame)\ncase response.type\nwhen .okay?, .no_answer?\nwhen .answer?\n if (request = task.try(&.request_payload)) && (request.sequence == response.sequence)\n case request.command\n when 173_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[area.to_s] = response.bytes[0]\n when 170_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[(area.append(\"level\")).to_s] = response.bytes[0]\n else\n logger.debug do\n \"unknown answer for #{request.command.to_s(16)}\\n - req: #{request.to_slice.hexstring}\\n - resp: #{response.to_slice.hexstring}\"\n end\n end\n end\nwhen .error?\n error_code = response.bytes[0]\n error_message = ERROR_CODES[error_code]?\n logger.error do\n \"request failed with code #{error_code}, message: #{error_message}\"\n end\n return task.try(&.abort(error_message))\nend\nif request = task.try(&.request_payload)\n if request.sequence == response.sequence\n return task.try(&.success)\n else\n return\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L89"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u32\nbasic_request(162_u8, area_id.to_u8, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L70"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nself[area.to_s] = scene\nbasic_request(161_u8, area_id.to_u8, scene)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L55"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI/Area","path":"Zencontrol/AdvancedTPI/Area.html","kind":"alias","full_name":"Zencontrol::AdvancedTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"}},{"html_id":"drivers/Zencontrol/AdvancedTPI/BasicRequest","path":"Zencontrol/AdvancedTPI/BasicRequest.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::BasicRequest","name":"BasicRequest","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::BasicRequest]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: version, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: command, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: address, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bitfield\", name: 28, cls: Zencontrol::AdvancedTPI::BasicRequest, onlyif: nil, verify: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n (((((version ^ sequence) ^ command) ^ address) ^ ((data >> 16) & 255).to_u8) ^ ((data >> 8) & 255).to_u8) ^ (data & 255).to_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L114"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"address:UInt8-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"UInt8","visibility":"Public","body":"@address"}},{"html_id":"address=(address:UInt8)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8)","args_html":"(address : UInt8)","def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"visibility":"Public","body":"@address = address"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"command:UInt8-instance-method","name":"command","abstract":false,"def":{"name":"command","return_type":"UInt8","visibility":"Public","body":"@command"}},{"html_id":"command=(command:UInt8)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"args_string":"(command : UInt8)","args_html":"(command : UInt8)","def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"visibility":"Public","body":"@command = command"}},{"html_id":"data:UInt32-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"UInt32","visibility":"Public","body":"@data"}},{"html_id":"data=(data:UInt32)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"args_string":"(data : UInt32)","args_html":"(data : UInt32)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"visibility":"Public","body":"@data = data"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"version:UInt8-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"UInt8","visibility":"Public","body":"@version"}},{"html_id":"version=(version:UInt8)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"args_string":"(version : UInt8)","args_html":"(version : UInt8)","def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"visibility":"Public","body":"@version = version"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseFrame","path":"Zencontrol/AdvancedTPI/ResponseFrame.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::ResponseFrame","name":"ResponseFrame","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::ResponseFrame]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: ResponseType}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: size, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: bytes, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: -> do\n sum = (type.to_u8 ^ sequence) ^ size\n checksum == (bytes.reduce(sum) do |acc, i|\n i ^ acc\n end)\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L175"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bytes:Bytes-instance-method","name":"bytes","abstract":false,"def":{"name":"bytes","return_type":"Bytes","visibility":"Public","body":"@bytes"}},{"html_id":"bytes=(bytes:Bytes)-instance-method","name":"bytes=","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"args_string":"(bytes : Bytes)","args_html":"(bytes : Bytes)","def":{"name":"bytes=","args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"visibility":"Public","body":"@bytes = bytes"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt8-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt8","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt8)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"args_string":"(size : UInt8)","args_html":"(size : UInt8)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:ResponseType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"ResponseType","visibility":"Public","body":"@type"}},{"html_id":"type=(type:ResponseType)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"args_string":"(type : ResponseType)","args_html":"(type : ResponseType)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_response_frame(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_response_frame","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_response_frame","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::ResponseFrame = Zencontrol::AdvancedTPI::ResponseFrame.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseType","path":"Zencontrol/AdvancedTPI/ResponseType.html","kind":"enum","full_name":"Zencontrol::AdvancedTPI::ResponseType","name":"ResponseType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L167"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Okay","name":"Okay","value":"160"},{"id":"Answer","name":"Answer","value":"161"},{"id":"NoAnswer","name":"NoAnswer","value":"162"},{"id":"Error","name":"Error","value":"163"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L169"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L171"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"no_answer?-instance-method","name":"no_answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L170"},"def":{"name":"no_answer?","visibility":"Public","body":"self == NoAnswer"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L168"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Zencontrol/ClassicTPI","path":"Zencontrol/ClassicTPI.html","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BROADCAST","name":"BROADCAST","value":"Bytes[255, 255, 255, 255, 255, 255]"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L52"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L88"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[(area.append(\"level\")).to_s]?\nend"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L70"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[area.to_s]?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L34"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :version)) || 1_u8\ncontroller = setting?(String, :controller_id)\nif controller\n @controller = (controller.rjust(12, '0')).hexbytes\nelse\n @controller = BROADCAST\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L101"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L76"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u8\narea_id = ((area.id.as(UInt32)).clamp(0, 127)).to_u8\nself[(area.append(\"level\")).to_s] = level\ndo_send(area_id, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L61"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nscene = (scene.clamp(0, 15)) + 16\narea_id = ((area.id.as(UInt32)).clamp(0, 127)) + 128\nself[area.to_s] = scene\ndo_send(area_id.to_u8, scene.to_u8)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L46"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/ClassicTPI/Area","path":"Zencontrol/ClassicTPI/Area.html","kind":"alias","full_name":"Zencontrol::ClassicTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/ClassicTPI","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI"}}]}]}]}} \ No newline at end of file diff --git a/search-index.js b/search-index.js index 0c543f7696..a3e77a4a45 100644 --- a/search-index.js +++ b/search-index.js @@ -1 +1 @@ -crystal_doc_search_index_callback({"repository_name":"drivers","body":"# PlaceOS Drivers\n\n[![CI](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml/badge.svg)](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml)\n\nManage and test [PlaceOS](https://place.technology) drivers.\n\n## Development\n\n### `harness`\n\n`harness` is a helper for easing development of PlaceOS Drivers.\n\n```\nUsage: ./harness [-h|--help] [command]\n\nHelper script for interfacing with the PlaceOS Driver spec runner\n\nCommand:\n report check all drivers' compilation status\n up starts the harness\n down stops the harness\n build builds drivers and uploads them to S3\n format formats driver code\n help display this message\n```\n\nTo spin up the test harness, clone the repository and run...\n\n```shell-session\n$ ./harness up\n```\n\nPoint a browser to [localhost:8085](http://localhost:8085), and you're good to go.\n\nWhen the environment is not in use, remember to run...\n\n```shell-session\n$ ./harness down\n```\n\nBefore committing, please run...\n\n```shell-session\n$ ./harness format\n```\n\n## Documentation\n\n- [Existing Driver Docs](https://placeos.github.io/drivers/)\n- [Writing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver)\n- [Testing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver/testing-drivers)\n- [Sending Emails](docs/guide-event-emails.md)\n- [Environment Setup](docs/setup.md)\n- [Runtime Debugging](docs/runtime-debugging.md)\n- [Directory Structure](docs/directory_structure.md)\n- [PlaceOS Spec Runner HTTP API](docs/http-api.md)\n\n## Contributing\n\n1. [Fork it](https://github.com/PlaceOS/drivers/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","program":{"html_id":"drivers/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"}],"locations":[],"repository_name":"drivers","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"CAPTURE_STATUS","name":"CAPTURE_STATUS","value":"\" \\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n 2014-02-12T15:30:00.000Z\\n 3000\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n \\n John Doe\\n \\n \\n
\\n \\n Some other capture\\n 2014-02-13T15:30:00.000Z\\n 1500\\n
Some other capture
\\n \\n \\n Steve\\n \\n \\n
\\n
\""},{"id":"DEFAULT_PASSWORD_EXCLUDE","name":"DEFAULT_PASSWORD_EXCLUDE","value":"\"0Oo1Il`'\\\\/\""},{"id":"DEFAULT_PASSWORD_LENGTH","name":"DEFAULT_PASSWORD_LENGTH","value":"6","doc":"Password defaults","summary":"

Password defaults

"},{"id":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","name":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","name":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","name":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","value":"0"},{"id":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","name":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","value":"0"},{"id":"DESK_LOC","name":"DESK_LOC","value":"{\"location\" => \"desk\", \"at_location\" => true, \"map_id\" => \"desk-4-1006\", \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"},{"id":"EXAMPLE_COLOCATION","name":"EXAMPLE_COLOCATION","value":"\"[\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1b\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 7662\\n }\\n ]\\n },\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1e\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 2386\\n }\\n ]\\n }\\n ]\""},{"id":"EXAMPLE_RESPONSE","name":"EXAMPLE_RESPONSE","value":"\"{\\\"content\\\": #{EXAMPLE_COLOCATION}}\""},{"id":"PASSWORD_LOWERCASE_CHARACTERS","name":"PASSWORD_LOWERCASE_CHARACTERS","value":"('a'..'z').to_a"},{"id":"PASSWORD_NUMBER_CHARACTERS","name":"PASSWORD_NUMBER_CHARACTERS","value":"('0'..'9').to_a"},{"id":"PASSWORD_SYMBOL_CHARACTERS","name":"PASSWORD_SYMBOL_CHARACTERS","value":"['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '-', '=', '{', '}', '[', ']', '|', '\\\\', ':', ';', '\"', '\\'', '<', '>', ',', '.', '?', '/', '`', '~']"},{"id":"PASSWORD_UPPERCASE_CHARACTERS","name":"PASSWORD_UPPERCASE_CHARACTERS","value":"('A'..'Z').to_a"},{"id":"RAW_GUEST_RESPONSE","name":"RAW_GUEST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Guest\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": false,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RAW_HASH_RESPONSE","name":"RAW_HASH_RESPONSE","value":"\"{\\n \\\"host\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJCWXpoYmV4W\\\",\\n \\\"short\\\": \\\"abc1234\\\"\\n }],\\n \\\"guest\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJaVVJsejNsb1\\\",\\n \\\"short\\\": \\\"def1234\\\"\\n }],\\n \\\"baseUrl\\\": \\\"https://somedomain.com/chat/\\\"\\n}\""},{"id":"RAW_HOST_RESPONSE","name":"RAW_HOST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Host\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": true,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RETVAL","name":"RETVAL","value":"\"{\\n \\\"space_id\\\":\\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"host_token\\\":\\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"guest_token\\\":\\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"host_url\\\": \\\"https://somedomain.com/chat/abc1234\\\",\\n \\\"guest_url\\\": \\\"https://somedomain.com/chat/def1234\\\"\\n}\""},{"id":"SPACES_RESPONSE","name":"SPACES_RESPONSE","value":"[{\"id\" => 96978, \"location\" => {\"id\" => 775, \"scalingFactor\" => nil, \"raw\" => true, \"policy\" => true}, \"name\" => \"WS7-01\", \"srf\" => {\"x\" => 91, \"y\" => 2169, \"z\" => 0}, \"marker\" => {\"type\" => \"CIRCLE\", \"data\" => \"20\"}, \"category\" => {\"id\" => 297, \"name\" => \"Assigned Desks\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => true, \"iconUrl\" => nil, \"colorScheme\" => \"#ffb3b3\", \"orderingIndex\" => 113}, \"sensingPolicyId\" => 247, \"department\" => {\"id\" => 498, \"name\" => \"Sales\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => nil}, \"subCategory\" => {\"id\" => 194, \"name\" => \"None\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => 194}, \"device\" => {\"id\" => 2016090160, \"displayName\" => \"1609010160\", \"updatedAt\" => nil, \"floorId\" => nil, \"shape\" => nil, \"coord\" => nil, \"blessId\" => 1609010160, \"blessQr\" => nil, \"accessedAt\" => \"2021-03-11T08:06:01.000+0000\", \"installedOn\" => nil, \"licenseeId\" => nil, \"hardware\" => nil, \"network\" => nil, \"itemId\" => nil}, \"markerUniqueId\" => \"K_2493713878097_18542\", \"live\" => false, \"capacity\" => 1, \"counter\" => \"NO_COUNTER\", \"serial\" => 1, \"locationId\" => 775, \"counted\" => true}].to_json"},{"id":"SYSTEM_STATUS","name":"SYSTEM_STATUS","value":"\" \\n 2014-02-12T15:02:19.037Z\\n \\n 3.0\\n \\n \\n Audio Only (Podcast). Balanced between file size & quality\\n Display Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n DualDisplay (Podcast/Vodcast/EchoPlayer). Optimized for file size & bandwidth\\n Dual Video (Podcast/Vodcast/EchoPlayer) -Balance between file size & quality\\n Dual Video (Podcast/Vodcast/EchoPlayer) -High Quality\\n Video Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n media\\n 2014-02-12T23:00:00.000Z\\n 3000\\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n John Doe\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n archive\\n \\n \\n \\n balanced\\n stereo\\n -6\\n 44100\\n 0\\n false\\n \\n \\n 1\\n dvi\\n 50\\n 50\\n 50\\n 10.0\\n 960\\n 720\\n true\\n true\\n \\n \\n 2\\n composite\\n 50\\n 50\\n 50\\n 29.97\\n 704\\n 480\\n true\\n false\\n ntsc\\n \\n \\n audio\\n aac\\n true\\n \\n 128000\\n lc\\n \\n \\n \\n graphics1\\n h264\\n \\n vbr\\n 736000\\n 1104000\\n base\\n 50\\n \\n \\n \\n graphics2\\n h264\\n \\n vbr\\n 1056000\\n 1584000\\n base\\n 150\\n \\n \\n \\n audio-archive\\n \\n file\\n audio.aac\\n \\n \\n \\n graphics1-archive\\n \\n file\\n display.h264\\n \\n \\n \\n graphics2-archive\\n \\n file\\n video.h264\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\""},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"WIRELESS_LOC","name":"WIRELESS_LOC","value":"{\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => 16.764784482481577, \"y\" => 25.435735950388988, \"lng\" => 55.274935030154325, \"lat\" => 25.201036346211698, \"variance\" => 7.944837533996209, \"last_seen\" => 1601526474, \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"}],"included_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"extended_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"class_methods":[{"html_id":"create_request(mode:String,device_name:String,modbus_device:String,md5:String,file_time:String,file_descriptor:String,file_name:String,file:String|Nil)-class-method","name":"create_request","doc":"Some of these fields may not be present in every request but\nhaving them there doesn't hurt anything so why bother removing them","summary":"

Some of these fields may not be present in every request but having them there doesn't hurt anything so why bother removing them

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"args_string":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","args_html":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","location":{"filename":"src/leviton/acquisuite_spec.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite_spec.cr#L87"},"def":{"name":"create_request","args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"visibility":"Public","body":"if file.nil?\n file = \"fileplaceholder\"\nend\n\"--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODE\\\"\\n\\n#{mode}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICENAME\\\"\\n\\n#{device_name}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICE\\\"\\n\\n#{modbus_device}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MD5CHECKSUM\\\"\\n\\n#{md5}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"FILETIME\\\"\\n\\n#{file_time}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"#{file_descriptor}\\\"; filename=\\\"#{file_name}\\\"\\nContent-Type: application/octet-stream;\\n\\n#{file}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY--\\n\"\n"}},{"html_id":"generate_password(length:Int32|Nil=DEFAULT_PASSWORD_LENGTH,exclude:String|Nil=DEFAULT_PASSWORD_EXCLUDE,minimum_lowercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_LOWERCASE,minimum_uppercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_UPPERCASE,minimum_numbers:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_NUMBERS,minimum_symbols:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_SYMBOLS):String-class-method","name":"generate_password","abstract":false,"args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"args_string":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","args_html":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","location":{"filename":"src/place/password_generator_helper.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/password_generator_helper.cr#L14"},"def":{"name":"generate_password","args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"return_type":"String","visibility":"Public","body":"length || (length = DEFAULT_PASSWORD_LENGTH)\nexclude || (exclude = DEFAULT_PASSWORD_EXCLUDE)\nminimum_lowercase || (minimum_lowercase = DEFAULT_PASSWORD_MINIMUM_LOWERCASE)\nminimum_uppercase || (minimum_uppercase = DEFAULT_PASSWORD_MINIMUM_UPPERCASE)\nminimum_numbers || (minimum_numbers = DEFAULT_PASSWORD_MINIMUM_NUMBERS)\nminimum_symbols || (minimum_symbols = DEFAULT_PASSWORD_MINIMUM_SYMBOLS)\nminimums = ((minimum_lowercase + minimum_uppercase) + minimum_numbers) + minimum_symbols\nif length < minimums\n length = minimums\nend\ncharacters = [] of Char\nif minimum_lowercase > 0\n characters = PASSWORD_LOWERCASE_CHARACTERS\nend\nif minimum_uppercase > 0\n characters = characters + PASSWORD_UPPERCASE_CHARACTERS\nend\nif minimum_numbers > 0\n characters = characters + PASSWORD_NUMBER_CHARACTERS\nend\nif minimum_symbols > 0\n characters = characters + PASSWORD_SYMBOL_CHARACTERS\nend\ncharacters = characters - exclude.chars\nif characters.empty?\n characters = (PASSWORD_LOWERCASE_CHARACTERS + PASSWORD_NUMBER_CHARACTERS) - DEFAULT_PASSWORD_EXCLUDE.chars\nend\npassword = [] of Char\nminimum_lowercase.times do\n password << (PASSWORD_LOWERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_uppercase.times do\n password << (PASSWORD_UPPERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_numbers.times do\n password << (PASSWORD_NUMBER_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_symbols.times do\n password << (PASSWORD_SYMBOL_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\n(length - minimums).times do\n password << characters.sample(random: Random::Secure)\nend\npassword.shuffle(random: Random::Secure).join\n"}}],"types":[{"html_id":"drivers/AmberTech","path":"AmberTech.html","kind":"module","full_name":"AmberTech","name":"AmberTech","abstract":false,"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AmberTech/Devices","path":"AmberTech/Devices.html","kind":"class","full_name":"AmberTech::Devices","name":"Devices","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_ip:String-instance-method","name":"current_ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L37"},"def":{"name":"current_ip","return_type":"String","visibility":"Public","body":"@current_ip"}},{"html_id":"device_info:Array(DevInfo)-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L34"},"def":{"name":"device_info","return_type":"Array(DevInfo)","visibility":"Public","body":"@device_info"}}]},{"html_id":"drivers/AmberTech/DevInfo","path":"AmberTech/DevInfo.html","kind":"class","full_name":"AmberTech::DevInfo","name":"DevInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L16"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L17"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"ip_gateway:String-instance-method","name":"ip_gateway","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L23"},"def":{"name":"ip_gateway","return_type":"String","visibility":"Public","body":"@ip_gateway"}},{"html_id":"ip_subnet:String-instance-method","name":"ip_subnet","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L20"},"def":{"name":"ip_subnet","return_type":"String","visibility":"Public","body":"@ip_subnet"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"pass:String|Nil-instance-method","name":"pass","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L25"},"def":{"name":"pass","return_type":"String | ::Nil","visibility":"Public","body":"@pass"}},{"html_id":"pass2:String|Nil-instance-method","name":"pass2","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L26"},"def":{"name":"pass2","return_type":"String | ::Nil","visibility":"Public","body":"@pass2"}},{"html_id":"status:Status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L27"},"def":{"name":"status","return_type":"Status","visibility":"Public","body":"@status"}},{"html_id":"ver:String-instance-method","name":"ver","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L15"},"def":{"name":"ver","return_type":"String","visibility":"Public","body":"@ver"}}]},{"html_id":"drivers/AmberTech/Grandview","path":"AmberTech/Grandview.html","kind":"class","full_name":"AmberTech::Grandview","name":"Grandview","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L109"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:down)"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L113"},"def":{"name":"down?","visibility":"Public","body":"{\"closed\", \"closing\"}.includes?(self[\"status\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moveable interface","summary":"

moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L30"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"command = case position\nwhen .up?, .close?, .in?\n \"/Close.js?a=100\"\nwhen .down?, .open?, .out?\n \"/Open.js?a=100\"\nelse\n raise(\"unsupported move option: #{position}\")\nend\nqueue(name: \"move\") do |task|\n response = get(command, headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 2.seconds\nschedule.every(1.minute) do\n status\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L59"},"def":{"name":"status","visibility":"Public","body":"if queue.online\n queue(name: \"status\", priority: 0) do |task|\n response = perform_status_request\n if response.success?\n task.success(parse_status(response))\n else\n task.abort(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n end\nelse\n response = perform_status_request\n if response.success?\n parse_status(response)\n end\nend"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"stoppable interface","summary":"

stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/amber_tech/grandview.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L49"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"queue(name: \"stop\", priority: 999, clear_queue: emergency) do |task|\n response = get(\"/Stop.js?a=100\", headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","doc":"compatibility with Screen Technics","summary":"

compatibility with Screen Technics

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L101"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:up)"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview.cr#L105"},"def":{"name":"up?","visibility":"Public","body":"{\"opened\", \"opening\"}.includes?(self[\"status\"]?)"}}]},{"html_id":"drivers/AmberTech/Status","path":"AmberTech/Status.html","kind":"enum","full_name":"AmberTech::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stop","name":"Stop","value":"0"},{"id":"Opening","name":"Opening","value":"1"},{"id":"Opened","name":"Opened","value":"2"},{"id":"Closing","name":"Closing","value":"3"},{"id":"Closed","name":"Closed","value":"4"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L9"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"closing?-instance-method","name":"closing?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L8"},"def":{"name":"closing?","visibility":"Public","body":"self == Closing"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == Opened"}},{"html_id":"opening?-instance-method","name":"opening?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L6"},"def":{"name":"opening?","visibility":"Public","body":"self == Opening"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L5"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/AmberTech/StatusResp","path":"AmberTech/StatusResp.html","kind":"class","full_name":"AmberTech::StatusResp","name":"StatusResp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:Status|String-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amber_tech/grandview_models.cr#L43"},"def":{"name":"status","return_type":"Status | String","visibility":"Public","body":"@status"}}]}]},{"html_id":"drivers/Amx","path":"Amx.html","kind":"module","full_name":"Amx","name":"Amx","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Amx/Svsi","path":"Amx/Svsi.html","kind":"module","full_name":"Amx::Svsi","name":"Svsi","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Amx","kind":"module","full_name":"Amx","name":"Amx"},"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","path":"Amx/Svsi/NSeriesDecoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"OutputModes","name":"OutputModes","value":"[\"auto\", \"1080p59.94\", \"1080p60\", \"720p60\", \"4K30\", \"4K25\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L41"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L49"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L208"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"live(state:Bool=true)-instance-method","name":"live","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L86"},"def":{"name":"live","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? do_send(Command::Live) : local(self[:playlist].as_i)"}},{"html_id":"local(playlist:Int32=0)-instance-method","name":"local","abstract":false,"args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"args_string":"(playlist : Int32 = 0)","args_html":"(playlist : Int32 = 0)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L90"},"def":{"name":"local","args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Local, playlist)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L72"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\n do_send(Command::Mute, name: :mute)\n do_send(Command::SetAudio, 0)\nelse\n do_send(Command::SetAudio, @previous_stream || 0)\n do_send(Command::Unmute, name: :mute)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L37"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"output_resolution(mode:String)-instance-method","name":"output_resolution","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L108"},"def":{"name":"output_resolution","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if OutputModes.includes?(mode)\nelse\n logger.error do\n \"\\\"#{mode}\\\" is not a valid resolution\"\n end\n return\nend\ndo_send(Command::ModeSet, mode)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L174"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nprop, value = data.split(':')\ncase Response.from_mapped_value?(prop.downcase)\nin Response::Stream\n self[:video] = @stream = value.to_i\nin Response::StreamAudio\n stream_id = value.to_i\n self[:audio_actual] = stream_id\n self[:audio] = stream_id == 0 ? (@mute ? 0 : @stream) : stream_id\nin Response::Name\n self[:device_name] = value\nin Response::Playmode\n self[:local_playback] = value == \"local\"\nin Response::Playlist\n self[:playlist] = value.to_i\nin Response::Mute\n self[:mute] = @mute = value == \"1\"\nin Response::ScalerBypass\n self[:scaler_active] = value != \"no\"\nin Response::Mode\n self[:output_res] = value\nin Response::InputRes\n self[:input_res] = value\nin Nil\n raise(\"Unexpected response: #{prop}\")\nend\ntask.try(&.success)\n"}},{"html_id":"scaler(state:Bool)-instance-method","name":"scaler","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L94"},"def":{"name":"scaler","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"action = state ? Command::ScalerEnable : Command::ScalerDisable\ndo_send(action, name: :scaler)\n"}},{"html_id":"switch_audio(stream_id:Int32)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L62"},"def":{"name":"switch_audio","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"@previous_stream = stream_id\nunmute\n"}},{"html_id":"switch_kvm(ip_address:String,video_follow:Bool=true)-instance-method","name":"switch_kvm","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"args_string":"(ip_address : String, video_follow : Bool = true)","args_html":"(ip_address : String, video_follow : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L67"},"def":{"name":"switch_kvm","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"visibility":"Public","body":"host = \"#{ip_address},#{video_follow ? 1 : 0}\"\ndo_send(Command::SwitchKVM, host)\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L53"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"switch_video(input)\nswitch_audio(0)\n"}},{"html_id":"switch_video(stream_id:Int32)-instance-method","name":"switch_video","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L58"},"def":{"name":"switch_video","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Set, stream_id)"}},{"html_id":"videowall(width:Int32,height:Int32,x_pos:Int32,y_pos:Int32,scale:VideowallScalingMode=VideowallScalingMode::Auto)-instance-method","name":"videowall","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"args_string":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","args_html":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L116"},"def":{"name":"videowall","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"if width > 1 && height > 1\n videowall_size(width, height)\n videowall_position(x_pos, y_pos)\n videowall_scaling(scale)\n videowall_enable\nelse\n videowall_disable\nend"}},{"html_id":"videowall_disable-instance-method","name":"videowall_disable","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L138"},"def":{"name":"videowall_disable","visibility":"Public","body":"videowall_enable(false)"}},{"html_id":"videowall_enable(state:Bool=true)-instance-method","name":"videowall_enable","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L133"},"def":{"name":"videowall_enable","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? \"on\" : \"off\"\ndo_send(Command::SetSettings, \"wallEnable\", state)\n"}},{"html_id":"videowall_position(x:Int32,y:Int32)-instance-method","name":"videowall_position","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L147"},"def":{"name":"videowall_position","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallMonPosV\", x)\ndo_send(Command::SetSettings, \"wallMonPosH\", y)\n"}},{"html_id":"videowall_scaling(scaling_mode:VideowallScalingMode)-instance-method","name":"videowall_scaling","abstract":false,"args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"args_string":"(scaling_mode : VideowallScalingMode)","args_html":"(scaling_mode : VideowallScalingMode)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L158"},"def":{"name":"videowall_scaling","args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallStretch\", scaling_mode)"}},{"html_id":"videowall_size(width:Int32,height:Int32)-instance-method","name":"videowall_size","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32)","args_html":"(width : Int32, height : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L142"},"def":{"name":"videowall_size","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallHorMons\", width)\ndo_send(Command::SetSettings, \"wallVerMons\", height)\n"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Command","path":"Amx/Svsi/NSeriesDecoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"Set","name":"Set","value":"1"},{"id":"SetSettings","name":"SetSettings","value":"2"},{"id":"SwitchKVM","name":"SwitchKVM","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Unmute","name":"Unmute","value":"5"},{"id":"SetAudio","name":"SetAudio","value":"6"},{"id":"Live","name":"Live","value":"7"},{"id":"Local","name":"Local","value":"8"},{"id":"ScalerEnable","name":"ScalerEnable","value":"9"},{"id":"ScalerDisable","name":"ScalerDisable","value":"10"},{"id":"ModeSet","name":"ModeSet","value":"11"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mode_set?-instance-method","name":"mode_set?","abstract":false,"def":{"name":"mode_set?","visibility":"Public","body":"self == ModeSet"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"scaler_disable?-instance-method","name":"scaler_disable?","abstract":false,"def":{"name":"scaler_disable?","visibility":"Public","body":"self == ScalerDisable"}},{"html_id":"scaler_enable?-instance-method","name":"scaler_enable?","abstract":false,"def":{"name":"scaler_enable?","visibility":"Public","body":"self == ScalerEnable"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"def":{"name":"set?","visibility":"Public","body":"self == Set"}},{"html_id":"set_audio?-instance-method","name":"set_audio?","abstract":false,"def":{"name":"set_audio?","visibility":"Public","body":"self == SetAudio"}},{"html_id":"set_settings?-instance-method","name":"set_settings?","abstract":false,"def":{"name":"set_settings?","visibility":"Public","body":"self == SetSettings"}},{"html_id":"switch_kvm?-instance-method","name":"switch_kvm?","abstract":false,"def":{"name":"switch_kvm?","visibility":"Public","body":"self == SwitchKVM"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Response","path":"Amx/Svsi/NSeriesDecoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stream","name":"Stream","value":"0"},{"id":"StreamAudio","name":"StreamAudio","value":"1"},{"id":"Name","name":"Name","value":"2"},{"id":"Playmode","name":"Playmode","value":"3"},{"id":"Playlist","name":"Playlist","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"ScalerBypass","name":"ScalerBypass","value":"6"},{"id":"Mode","name":"Mode","value":"7"},{"id":"InputRes","name":"InputRes","value":"8"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"input_res?-instance-method","name":"input_res?","abstract":false,"def":{"name":"input_res?","visibility":"Public","body":"self == InputRes"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playlist?-instance-method","name":"playlist?","abstract":false,"def":{"name":"playlist?","visibility":"Public","body":"self == Playlist"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"scaler_bypass?-instance-method","name":"scaler_bypass?","abstract":false,"def":{"name":"scaler_bypass?","visibility":"Public","body":"self == ScalerBypass"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}},{"html_id":"stream_audio?-instance-method","name":"stream_audio?","abstract":false,"def":{"name":"stream_audio?","visibility":"Public","body":"self == StreamAudio"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/VideowallScalingMode","path":"Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::VideowallScalingMode","name":"VideowallScalingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L152"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Fit","name":"Fit","value":"1"},{"id":"Stretch","name":"Stretch","value":"2"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L153"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"fit?-instance-method","name":"fit?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L154"},"def":{"name":"fit?","visibility":"Public","body":"self == Fit"}},{"html_id":"stretch?-instance-method","name":"stretch?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_decoder.cr#L155"},"def":{"name":"stretch?","visibility":"Public","body":"self == Stretch"}}]}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","path":"Amx/Svsi/NSeriesEncoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L8"},{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CommonCommands","name":"CommonCommands","value":"[:monitor, :monitornotify, :live, :local, :serial, :readresponse, :sendir, :sendirraw, :audioon, :audiooff, :enablehdmiaudio, :disablehdmiaudio, :autohdmiaudio, :record, :dsrecord, :dvrswitch1, :dvrswitch2, :mpeg, :mpegall, :deletempegfile, :play, :stop, :pause, :unpause, :fastforward, :rewind, :deletefile, :stepforward, :stepreverse, :stoprecord, :recordhold, :recordrelease, :playhold, :playrelease, :deleteallplaylist, :deleteallmpegs, :remotecopy, :wpswitch, :wpaudioin, :wpactive, :wpinactive, :wpaudioon, :wpaudiooff, :wpmodeon, :wpmodeoff, :wparrange, :wpbackground, :wpcrop, :wppriority, :wpbordon, :wpbordoff, :wppreset, :atrswitch, :atrmute, :atrunmute, :atrtxmute, :atrtxunmute, :atrhpvol, :atrlovol, :atrlovolup, :atrlovoldown, :atrhpvolup, :atrhpvoldown, :openrelay, :closerelay, :videowall, :script, :goto, :tcpclient, :udpclient, :reboot, :gc_serial, :gc_openrelay, :gc_closerelay, :gc_ir]"},{"id":"Modes","name":"Modes","value":"(1..8).map(&.to_s)"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"atrhpvol(ip_address:String,*args,**options)-instance-method","name":"atrhpvol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvol\", ip_address, *args, **options)"}},{"html_id":"atrhpvoldown(ip_address:String,*args,**options)-instance-method","name":"atrhpvoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvoldown\", ip_address, *args, **options)"}},{"html_id":"atrhpvolup(ip_address:String,*args,**options)-instance-method","name":"atrhpvolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvolup\", ip_address, *args, **options)"}},{"html_id":"atrlovol(ip_address:String,*args,**options)-instance-method","name":"atrlovol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovol\", ip_address, *args, **options)"}},{"html_id":"atrlovoldown(ip_address:String,*args,**options)-instance-method","name":"atrlovoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovoldown\", ip_address, *args, **options)"}},{"html_id":"atrlovolup(ip_address:String,*args,**options)-instance-method","name":"atrlovolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovolup\", ip_address, *args, **options)"}},{"html_id":"atrmute(ip_address:String,*args,**options)-instance-method","name":"atrmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrmute\", ip_address, *args, **options)"}},{"html_id":"atrswitch(ip_address:String,*args,**options)-instance-method","name":"atrswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrswitch\", ip_address, *args, **options)"}},{"html_id":"atrtxmute(ip_address:String,*args,**options)-instance-method","name":"atrtxmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxmute\", ip_address, *args, **options)"}},{"html_id":"atrtxunmute(ip_address:String,*args,**options)-instance-method","name":"atrtxunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxunmute\", ip_address, *args, **options)"}},{"html_id":"atrunmute(ip_address:String,*args,**options)-instance-method","name":"atrunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrunmute\", ip_address, *args, **options)"}},{"html_id":"audiofollow(output:InOut,*args,**options)-instance-method","name":"audiofollow","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"audiofollow","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiofollow\", get_output(output), *args, **options)"}},{"html_id":"audiooff(ip_address:String,*args,**options)-instance-method","name":"audiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiooff\", ip_address, *args, **options)"}},{"html_id":"audioon(ip_address:String,*args,**options)-instance-method","name":"audioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audioon\", ip_address, *args, **options)"}},{"html_id":"autocc(input:InOut,*args,**options)-instance-method","name":"autocc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"autocc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autocc\", get_input(input), *args, **options)"}},{"html_id":"autohdmiaudio(ip_address:String,*args,**options)-instance-method","name":"autohdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"autohdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autohdmiaudio\", ip_address, *args, **options)"}},{"html_id":"closerelay(ip_address:String,*args,**options)-instance-method","name":"closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"closerelay\", ip_address, *args, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"@lookup.each_key do |ip_address|\n monitor(ip_address, priority: 0)\n monitornotify(ip_address, priority: 0)\nend\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Maintaining Connection --\"\n end\n monitornotify(@list.first, priority: 0)\nend\n"}},{"html_id":"cropref(output:InOut,*args,**options)-instance-method","name":"cropref","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"cropref","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"cropref\", get_output(output), *args, **options)"}},{"html_id":"deleteallmpegs(ip_address:String,*args,**options)-instance-method","name":"deleteallmpegs","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallmpegs","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallmpegs\", ip_address, *args, **options)"}},{"html_id":"deleteallplaylist(ip_address:String,*args,**options)-instance-method","name":"deleteallplaylist","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallplaylist","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallplaylist\", ip_address, *args, **options)"}},{"html_id":"deletefile(ip_address:String,*args,**options)-instance-method","name":"deletefile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletefile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletefile\", ip_address, *args, **options)"}},{"html_id":"deletempegfile(ip_address:String,*args,**options)-instance-method","name":"deletempegfile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletempegfile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletempegfile\", ip_address, *args, **options)"}},{"html_id":"disablecc(input:InOut,*args,**options)-instance-method","name":"disablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"disablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablecc\", get_input(input), *args, **options)"}},{"html_id":"disablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"disablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"disablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L48"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L111"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"do_send(*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L201"},"def":{"name":"do_send","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"cmd = args.join(' ')\nlogger.debug do\n \"sending #{cmd}\"\nend\nsend(\"#{cmd}\\r\\n\", **options)\n"}},{"html_id":"dsrecord(ip_address:String,*args,**options)-instance-method","name":"dsrecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dsrecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dsrecord\", ip_address, *args, **options)"}},{"html_id":"dvioff(output:InOut,*args,**options)-instance-method","name":"dvioff","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvioff","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvioff\", get_output(output), *args, **options)"}},{"html_id":"dvion(output:InOut,*args,**options)-instance-method","name":"dvion","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvion","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvion\", get_output(output), *args, **options)"}},{"html_id":"dvrswitch1(ip_address:String,*args,**options)-instance-method","name":"dvrswitch1","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch1","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch1\", ip_address, *args, **options)"}},{"html_id":"dvrswitch2(ip_address:String,*args,**options)-instance-method","name":"dvrswitch2","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch2","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch2\", ip_address, *args, **options)"}},{"html_id":"enablecc(input:InOut,*args,**options)-instance-method","name":"enablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"enablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablecc\", get_input(input), *args, **options)"}},{"html_id":"enablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"enablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"enablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"fastforward(ip_address:String,*args,**options)-instance-method","name":"fastforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"fastforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"fastforward\", ip_address, *args, **options)"}},{"html_id":"gc_closerelay(ip_address:String,*args,**options)-instance-method","name":"gc_closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_closerelay\", ip_address, *args, **options)"}},{"html_id":"gc_ir(ip_address:String,*args,**options)-instance-method","name":"gc_ir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_ir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_ir\", ip_address, *args, **options)"}},{"html_id":"gc_openrelay(ip_address:String,*args,**options)-instance-method","name":"gc_openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_openrelay\", ip_address, *args, **options)"}},{"html_id":"gc_serial(ip_address:String,*args,**options)-instance-method","name":"gc_serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_serial\", ip_address, *args, **options)"}},{"html_id":"getStatus(output:InOut,*args,**options)-instance-method","name":"getStatus","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"getStatus","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"getStatus\", get_output(output), *args, **options)"}},{"html_id":"goto(ip_address:String,*args,**options)-instance-method","name":"goto","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"goto","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"goto\", ip_address, *args, **options)"}},{"html_id":"live(ip_address:String,*args,**options)-instance-method","name":"live","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"live","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"live\", ip_address, *args, **options)"}},{"html_id":"local(ip_address:String,*args,**options)-instance-method","name":"local","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"local","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"local\", ip_address, *args, **options)"}},{"html_id":"media_source(mode:String)-instance-method","name":"media_source","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L58"},"def":{"name":"media_source","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if mode == \"live\"\n do_send(Command::Live)\nelse\n if Modes.includes?(mode)\n do_send(Command::Local, mode)\n else\n raise(\"invalid mode #{mode}\")\n end\nend"}},{"html_id":"modeoff(input:InOut,*args,**options)-instance-method","name":"modeoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"modeoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"modeoff\", get_input(input), *args, **options)"}},{"html_id":"monitor(ip_address:String,*args,**options)-instance-method","name":"monitor","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitor","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitor\", ip_address, *args, **options)"}},{"html_id":"monitornotify(ip_address:String,*args,**options)-instance-method","name":"monitornotify","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitornotify","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitornotify\", ip_address, *args, **options)"}},{"html_id":"mpeg(ip_address:String,*args,**options)-instance-method","name":"mpeg","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpeg","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpeg\", ip_address, *args, **options)"}},{"html_id":"mpegall(ip_address:String,*args,**options)-instance-method","name":"mpegall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpegall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpegall\", ip_address, *args, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L155"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"address = index.is_a?(Int32) && (val = @encoders[index]? || @decoders[index]?) ? val : index.as(String)\nif state\n if layer.audio_video? || layer.video?\n dvioff(address)\n end\n if layer.audio_video? || layer.audio?\n audiooff(address)\n end\nelse\n if layer.audio_video? || layer.video?\n dvion(address)\n end\n if layer.audio_video? || layer.audio?\n audioon(address)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = (setting?(Hash(String, String), :inputs)) || ({} of String => String)\n@outputs = (setting?(Hash(String, String), :outputs)) || ({} of String => String)\n@encoders = @inputs.keys\n@decoders = @outputs.keys\n@lookup = @inputs.merge(@outputs)\n@list = @encoders + @decoders\n"}},{"html_id":"openrelay(ip_address:String,*args,**options)-instance-method","name":"openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"openrelay\", ip_address, *args, **options)"}},{"html_id":"pause(ip_address:String,*args,**options)-instance-method","name":"pause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"pause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"pause\", ip_address, *args, **options)"}},{"html_id":"play(ip_address:String,*args,**options)-instance-method","name":"play","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"play","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"play\", ip_address, *args, **options)"}},{"html_id":"playhold(ip_address:String,*args,**options)-instance-method","name":"playhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playhold\", ip_address, *args, **options)"}},{"html_id":"playrelease(ip_address:String,*args,**options)-instance-method","name":"playrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playrelease\", ip_address, *args, **options)"}},{"html_id":"readresponse(ip_address:String,*args,**options)-instance-method","name":"readresponse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"readresponse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"readresponse\", ip_address, *args, **options)"}},{"html_id":"reboot(ip_address:String,*args,**options)-instance-method","name":"reboot","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"reboot","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"reboot\", ip_address, *args, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L170"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nresp = data.split(':')\ncase resp.size\nwhen 13\n self[resp[0]] = {communications: resp[1] == \"1\", dvioff: resp[2] == \"1\", scaler: resp[3] == \"1\", source_detected: resp[4] == \"1\", mode: resp[5], audio_enabled: resp[6] == \"1\", video_stream: resp[7].to_i, audio_stream: resp[8] == \"follow video\" ? resp[8] : resp[8].to_i, playlist: resp[9], colorspace: resp[10], hdmiaudio: resp[11], resolution: resp[12]}\nwhen 10\n self[resp[0]] = resp\nelse\n logger.warn do\n \"unknown response type: #{resp}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"record(ip_address:String,*args,**options)-instance-method","name":"record","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"record","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"record\", ip_address, *args, **options)"}},{"html_id":"recordhold(ip_address:String,*args,**options)-instance-method","name":"recordhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordhold\", ip_address, *args, **options)"}},{"html_id":"recordrelease(ip_address:String,*args,**options)-instance-method","name":"recordrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordrelease\", ip_address, *args, **options)"}},{"html_id":"remotecopy(ip_address:String,*args,**options)-instance-method","name":"remotecopy","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"remotecopy","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"remotecopy\", ip_address, *args, **options)"}},{"html_id":"rewind(ip_address:String,*args,**options)-instance-method","name":"rewind","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"rewind","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"rewind\", ip_address, *args, **options)"}},{"html_id":"script(ip_address:String,*args,**options)-instance-method","name":"script","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"script","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"script\", ip_address, *args, **options)"}},{"html_id":"sendir(ip_address:String,*args,**options)-instance-method","name":"sendir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendir\", ip_address, *args, **options)"}},{"html_id":"sendirraw(ip_address:String,*args,**options)-instance-method","name":"sendirraw","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendirraw","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendirraw\", ip_address, *args, **options)"}},{"html_id":"serial(ip_address:String,*args,**options)-instance-method","name":"serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"serial\", ip_address, *args, **options)"}},{"html_id":"serialhex(ip_address:String,wait_time:Int32=1,*data,**options)-instance-method","name":"serialhex","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"args_string":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","args_html":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L85"},"def":{"name":"serialhex","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":2,"visibility":"Public","body":"do_send(\"serialhex\", wait_time, ip_address, *data, **options)"}},{"html_id":"stepforward(ip_address:String,*args,**options)-instance-method","name":"stepforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepforward\", ip_address, *args, **options)"}},{"html_id":"stepreverse(ip_address:String,*args,**options)-instance-method","name":"stepreverse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepreverse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepreverse\", ip_address, *args, **options)"}},{"html_id":"stop(ip_address:String,*args,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stop\", ip_address, *args, **options)"}},{"html_id":"stoprecord(ip_address:String,*args,**options)-instance-method","name":"stoprecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stoprecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stoprecord\", ip_address, *args, **options)"}},{"html_id":"switch(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L103"},"def":{"name":"switch","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n dvion(output_actual, **options)\n audioon(output_actual, **options)\n audiofollow(output_actual, **options)\n self[\"video#{output_actual}\"] = input_actual\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switch, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n output_actual = get_output(o)\n dvioff(output_actual, **options)\n audiooff(output_actual, **options)\n end\n end\nend"}},{"html_id":"switch_audio(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L131"},"def":{"name":"switch_audio","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n audioon(input_actual, **options)\n audioon(output_actual, **options)\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switchaudio, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n audiooff(get_output(o), **options)\n end\n end\nend"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L52"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::VideoSource, input, **options)"}},{"html_id":"tcpclient(ip_address:String,*args,**options)-instance-method","name":"tcpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"tcpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"tcpclient\", ip_address, *args, **options)"}},{"html_id":"udpclient(ip_address:String,*args,**options)-instance-method","name":"udpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"udpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"udpclient\", ip_address, *args, **options)"}},{"html_id":"uncompressedoff(input:InOut,*args,**options)-instance-method","name":"uncompressedoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"uncompressedoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"uncompressedoff\", get_input(input), *args, **options)"}},{"html_id":"unpause(ip_address:String,*args,**options)-instance-method","name":"unpause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"unpause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"unpause\", ip_address, *args, **options)"}},{"html_id":"videowall(ip_address:String,*args,**options)-instance-method","name":"videowall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"videowall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"videowall\", ip_address, *args, **options)"}},{"html_id":"volume(output:InOut,*args,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"volume","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"volume\", get_output(output), *args, **options)"}},{"html_id":"wpactive(ip_address:String,*args,**options)-instance-method","name":"wpactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpactive\", ip_address, *args, **options)"}},{"html_id":"wparrange(ip_address:String,*args,**options)-instance-method","name":"wparrange","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wparrange","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wparrange\", ip_address, *args, **options)"}},{"html_id":"wpaudioin(ip_address:String,*args,**options)-instance-method","name":"wpaudioin","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioin","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioin\", ip_address, *args, **options)"}},{"html_id":"wpaudiooff(ip_address:String,*args,**options)-instance-method","name":"wpaudiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudiooff\", ip_address, *args, **options)"}},{"html_id":"wpaudioon(ip_address:String,*args,**options)-instance-method","name":"wpaudioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioon\", ip_address, *args, **options)"}},{"html_id":"wpbackground(ip_address:String,*args,**options)-instance-method","name":"wpbackground","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbackground","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbackground\", ip_address, *args, **options)"}},{"html_id":"wpbordoff(ip_address:String,*args,**options)-instance-method","name":"wpbordoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordoff\", ip_address, *args, **options)"}},{"html_id":"wpbordon(ip_address:String,*args,**options)-instance-method","name":"wpbordon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordon\", ip_address, *args, **options)"}},{"html_id":"wpcrop(ip_address:String,*args,**options)-instance-method","name":"wpcrop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpcrop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpcrop\", ip_address, *args, **options)"}},{"html_id":"wpinactive(ip_address:String,*args,**options)-instance-method","name":"wpinactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpinactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpinactive\", ip_address, *args, **options)"}},{"html_id":"wpmodeoff(ip_address:String,*args,**options)-instance-method","name":"wpmodeoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeoff\", ip_address, *args, **options)"}},{"html_id":"wpmodeon(ip_address:String,*args,**options)-instance-method","name":"wpmodeon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeon\", ip_address, *args, **options)"}},{"html_id":"wppreset(ip_address:String,*args,**options)-instance-method","name":"wppreset","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppreset","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppreset\", ip_address, *args, **options)"}},{"html_id":"wppriority(ip_address:String,*args,**options)-instance-method","name":"wppriority","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppriority","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppriority\", ip_address, *args, **options)"}},{"html_id":"wpswitch(ip_address:String,*args,**options)-instance-method","name":"wpswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpswitch\", ip_address, *args, **options)"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Command","path":"Amx/Svsi/NSeriesEncoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"VideoSource","name":"VideoSource","value":"1"},{"id":"Live","name":"Live","value":"2"},{"id":"Local","name":"Local","value":"3"},{"id":"Disable","name":"Disable","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"Unmute","name":"Unmute","value":"6"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"disable?-instance-method","name":"disable?","abstract":false,"def":{"name":"disable?","visibility":"Public","body":"self == Disable"}},{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}},{"html_id":"video_source?-instance-method","name":"video_source?","abstract":false,"def":{"name":"video_source?","visibility":"Public","body":"self == VideoSource"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/InOut","path":"Amx/Svsi/NSeriesEncoder/InOut.html","kind":"alias","full_name":"Amx::Svsi::NSeriesEncoder::InOut","name":"InOut","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_switcher.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Int32 | String)","aliased_html":"Int32 | String","const":false,"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"}},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Input","path":"Amx/Svsi/NSeriesEncoder/Input.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmionly","name":"Hdmionly","value":"0"},{"id":"Vgaonly","name":"Vgaonly","value":"1"},{"id":"Hdmivga","name":"Hdmivga","value":"2"},{"id":"Vgahdmi","name":"Vgahdmi","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"hdmionly?-instance-method","name":"hdmionly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L12"},"def":{"name":"hdmionly?","visibility":"Public","body":"self == Hdmionly"}},{"html_id":"hdmivga?-instance-method","name":"hdmivga?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L14"},"def":{"name":"hdmivga?","visibility":"Public","body":"self == Hdmivga"}},{"html_id":"vgahdmi?-instance-method","name":"vgahdmi?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L15"},"def":{"name":"vgahdmi?","visibility":"Public","body":"self == Vgahdmi"}},{"html_id":"vgaonly?-instance-method","name":"vgaonly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L13"},"def":{"name":"vgaonly?","visibility":"Public","body":"self == Vgaonly"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Response","path":"Amx/Svsi/NSeriesEncoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L82"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Name","name":"Name","value":"0"},{"id":"Stream","name":"Stream","value":"1"},{"id":"Playmode","name":"Playmode","value":"2"},{"id":"Mute","name":"Mute","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L86"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L83"},"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L85"},"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/n_series_encoder.cr#L84"},"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}}]}]},{"html_id":"drivers/Amx/Svsi/VirtualSwitcher","path":"Amx/Svsi/VirtualSwitcher.html","kind":"class","full_name":"Amx::Svsi::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L22"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nconnect(map) do |mod, stream|\n if layer.all? || layer.audio?\n mod.switch_audio(stream)\n end\n if layer.all? || layer.video?\n mod.switch_video(stream)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/amx/svsi/virtual_switcher.cr#L18"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"decoders.each(&.switch_to(input))"}}]}]}]},{"html_id":"drivers/Ashrae","path":"Ashrae.html","kind":"module","full_name":"Ashrae","name":"Ashrae","abstract":false,"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Ashrae/BACnet","path":"Ashrae/BACnet.html","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L157"},"def":{"name":"connected","visibility":"Public","body":"bbmd_ip = setting?(String, :bbmd_ip)\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"device(device_id:UInt32)-instance-method","name":"device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L205"},"def":{"name":"device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device_details((get_device(device_id)).not_nil!)"}},{"html_id":"devices-instance-method","name":"devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L209"},"def":{"name":"devices","visibility":"Public","body":"device_registry.devices.map do |device|\n device_details(device)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L55"},"def":{"name":"on_load","visibility":"Public","body":"server = UDPSocket.new\nserver.bind(\"0.0.0.0\", 47808)\nserver.write_timeout = 200.milliseconds\n@udp_server = server\nqueue.timeout = 2.seconds\nclient = ::BACnet::Client::IPv4.new(0, 2.seconds)\nclient.on_transmit do |message, address|\n if address.address == Socket::IPAddress::BROADCAST\n if @bbmd_forwarding.size == 4\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::ForwardedNPDU\n message.data_link.address.ip1 = @bbmd_forwarding[0]\n message.data_link.address.ip2 = @bbmd_forwarding[1]\n message.data_link.address.ip3 = @bbmd_forwarding[2]\n message.data_link.address.ip4 = @bbmd_forwarding[3]\n message.data_link.address.port = 47808_u16\n end\n logger.debug do\n \"sending broadcase message #{message.inspect}\"\n end\n devices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\n devices.each do |dev|\n begin\n server.send(message, to: dev.address)\n rescue error\n logger.warn(exception: error) do\n \"error sending message to #{dev.address}\"\n end\n end\n end\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::DistributeBroadcastToNetwork\n payload = DispatchProtocol.new\n payload.message = DispatchProtocol::MessageType::WRITE\n payload.ip_address = @bbmd_ip.address\n payload.id_or_port = @bbmd_ip.port.to_u64\n payload.data = message.to_slice\n transport.send(payload.to_slice)\n else\n server.send(message, to: address)\n end\nend\n@bacnet_client = client\nregistry = ::BACnet::Client::DeviceRegistry.new(client, logger)\nregistry.on_new_device do |device|\n new_device_found(device)\nend\n@device_registry = registry\nspawn do\n process_data(server, client)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L128"},"def":{"name":"on_unload","visibility":"Public","body":"udp_server.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L132"},"def":{"name":"on_update","visibility":"Public","body":"bbmd_ip = (setting?(String, :bbmd_ip)) || \"\"\nbbmd_forwarding = (setting?(String, :bbmd_forwarding)) || \"\"\n@bbmd_forwarding = (bbmd_forwarding.strip.split(\".\")).select(&.presence).map(&.to_u8)\nif bbmd_ip.presence\n @bbmd_ip = Socket::IPAddress.new(bbmd_ip, 47808)\nend\n@verbose_debug = (setting?(Bool, :verbose_debug)) || false\nschedule.clear\nschedule.in(5.seconds) do\n query_known_devices\nend\npoll_period = (setting?(UInt32, :poll_period)) || 3\nschedule.every(poll_period.minutes) do\n logger.debug do\n \"--- Polling all known bacnet devices\"\n end\n keys = @mutex.synchronize do\n @devices.keys\n end\n keys.each do |device_id|\n poll_device(device_id)\n end\nend\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"packets_processed:UInt64-instance-method","name":"packets_processed","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L153"},"def":{"name":"packets_processed","visibility":"Public","body":"@packets_processed"}},{"html_id":"perform_discovery:Nil-instance-method","name":"perform_discovery","doc":"Performs a WhoIs discovery against the BACnet network","summary":"

Performs a WhoIs discovery against the BACnet network

","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L258"},"def":{"name":"perform_discovery","return_type":"Nil","visibility":"Public","body":"bacnet_client.who_is"}},{"html_id":"poll_device(device_id:UInt32)-instance-method","name":"poll_device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L232"},"def":{"name":"poll_device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device = get_device(device_id)\nif device\nelse\n return false\nend\nclient = bacnet_client\nobjects = @mutex.synchronize do\n device.objects.dup\nend\nobjects.each do |obj|\n if obj.object_type.in?(::BACnet::Client::DeviceRegistry::OBJECTS_WITH_VALUES)\n else\n next\n end\n name = object_binding(device_id, obj)\n queue(name: name, priority: 0, timeout: 500.milliseconds) do |task|\n spawn_action(task) do\n obj.sync_value(client)\n self[name] = object_value(obj)\n end\n end\n Fiber.yield\nend\ntrue\n"}},{"html_id":"query_known_devices-instance-method","name":"query_known_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L213"},"def":{"name":"query_known_devices","visibility":"Public","body":"sent = [] of UInt32\n@seen_devices.each_value do |info|\n sent << info.id.not_nil!\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\nend\ndevices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\ndevices.each do |info|\n if id = info.id\n if id.in?(sent)\n next\n end\n sent << id\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\n end\nend\n\"inspected #{sent.size} devices\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/ashrae/bacnet.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L406"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"protocol = (IO::Memory.new(data)).read_bytes(DispatchProtocol)\nlogger.debug do\n \"received message: #{protocol.message} #{protocol.ip_address}:#{protocol.id_or_port} (size #{protocol.data_size})\"\nend\nif protocol.message.received?\n message = (IO::Memory.new(protocol.data)).read_bytes(::BACnet::Message::IPv4)\n if @verbose_debug\n logger.debug do\n \"dispatch sent:\\n#{message.inspect}\"\n end\n end\n bacnet_client.received(message, @bbmd_ip)\n app = message.application\n is_iam = false\n is_cov = case app\n when ::BACnet::ConfirmedRequest\n app.service.cov_notification?\n when ::BACnet::UnconfirmedRequest\n is_iam = app.service.i_am?\n app.service.cov_notification?\n else\n false\n end\n network = message.network\n if network && is_cov\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n if network.source_specifier\n addr = network.source_address\n net = network.source.network\n end\n device = message.objects.find do |obj|\n obj.tag == 1\n end.not_nil!.to_object_id.instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, net, addr)\n end\n if network && is_iam\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n details = ::BACnet::Client::Message::IAm.parse(message)\n device = details[:object_id].instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, details[:network], details[:address])\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_seen_devices-instance-method","name":"save_seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L631"},"def":{"name":"save_seen_devices","visibility":"Public","body":"define_setting(:known_devices, @seen_devices.values)"}},{"html_id":"seen_devices:Hash(UInt32,Ashrae::DeviceAddress)-instance-method","name":"seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L463"},"def":{"name":"seen_devices","visibility":"Public","body":"@seen_devices"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/ashrae/bacnet.cr","line_number":601,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L601"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ndevice_id = mac.to_u32?\nif device_id\nelse\n return nil\nend\ndevice = get_device(device_id)\nif device\nelse\n return nil\nend\nobj_type_string, instance_id_string = id.split('[', 2)\ninstance_id = instance_id_string.rchop.to_u32?\nif instance_id\nelse\n return nil\nend\nobject_type = ObjectType.parse?(obj_type_string)\nif object_type\nelse\n return nil\nend\nobject = get_object_details(device_id, instance_id, object_type)\nif object.changed < 1.minutes.ago\n begin\n object.sync_value(bacnet_client)\n rescue error\n logger.warn(exception: error) do\n \"failed to obtain latest value for sensor at #{mac}.#{id}\"\n end\n end\nend\nto_sensor(device_id, device, object)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/ashrae/bacnet.cr","line_number":577,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L577"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n if mac\n device_id = mac.to_u32?\n if device_id\n else\n return NO_MATCH\n end\n device = get_device(device_id)\n if device\n else\n return NO_MATCH\n end\n return device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n matches = @mutex.synchronize do\n @devices.map do |__temp_100|\n device_id, device = __temp_100\n device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"update_value(device_id:UInt32,instance_id:UInt32,object_type:ObjectType)-instance-method","name":"update_value","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","args_html":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","location":{"filename":"src/ashrae/bacnet.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L264"},"def":{"name":"update_value","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"obj = get_object_details(device_id, instance_id, object_type)\nname = object_binding(device_id, obj)\nqueue(name: name, priority: 50) do |task|\n spawn_action(task) do\n obj.sync_value(bacnet_client)\n self[name] = object_value(obj)\n end\nend\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L29"},"def":{"name":"websocket_headers","visibility":"Public","body":"dispatcher_key = setting?(String, :dispatcher_key)\nHTTP::Headers {\"Authorization\" => \"Bearer #{dispatcher_key}\", \"X-Module-ID\" => module_id}\n"}},{"html_id":"write_binary(device_id:UInt32,instance_id:UInt32,value:Bool,object_type:ObjectType=ObjectType::BinaryValue)-instance-method","name":"write_binary","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L371"},"def":{"name":"write_binary","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"val = value ? 1 : 0\nobject = get_object_details(device_id, instance_id, object_type)\nval = ::BACnet::Object.new.set_value(val)\nval.short_tag = 9_u8\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, val, network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_double(device_id:UInt32,instance_id:UInt32,value:Float64,object_type:ObjectType=ObjectType::LargeAnalogValue)-instance-method","name":"write_double","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L299"},"def":{"name":"write_double","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_real(device_id:UInt32,instance_id:UInt32,value:Float32,object_type:ObjectType=ObjectType::AnalogValue)-instance-method","name":"write_real","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L281"},"def":{"name":"write_real","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_signed_int(device_id:UInt32,instance_id:UInt32,value:Int64,object_type:ObjectType=ObjectType::IntegerValue)-instance-method","name":"write_signed_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L335"},"def":{"name":"write_signed_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_string(device_id:UInt32,instance_id:UInt32,value:String,object_type:ObjectType=ObjectType::CharacterStringValue)-instance-method","name":"write_string","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L353"},"def":{"name":"write_string","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_unsigned_int(device_id:UInt32,instance_id:UInt32,value:UInt64,object_type:ObjectType=ObjectType::PositiveIntegerValue)-instance-method","name":"write_unsigned_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L317"},"def":{"name":"write_unsigned_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}}],"types":[{"html_id":"drivers/Ashrae/BACnet/DeviceInfo","path":"Ashrae/BACnet/DeviceInfo.html","kind":"alias","full_name":"Ashrae::BACnet::DeviceInfo","name":"DeviceInfo","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::Client::DeviceRegistry::DeviceInfo","aliased_html":"BACnet::Client::DeviceRegistry::DeviceInfo","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}},{"html_id":"drivers/Ashrae/BACnet/ObjectType","path":"Ashrae/BACnet/ObjectType.html","kind":"alias","full_name":"Ashrae::BACnet::ObjectType","name":"ObjectType","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet.cr#L262"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::ObjectIdentifier::ObjectType","aliased_html":"BACnet::ObjectIdentifier::ObjectType","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}}]},{"html_id":"drivers/Ashrae/BACnetDataPoints","path":"Ashrae/BACnetDataPoints.html","kind":"class","full_name":"Ashrae::BACnetDataPoints","name":"BACnetDataPoints","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_datapoints.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_datapoints.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\npoints = setting(Hash(String, String), :points)\npoints.each do |__temp_167|\n key, status = __temp_167\n bacnet.subscribe(status) do |_sub, payload|\n self[key] = JSON.parse(payload)\n end\nend\n"}}]},{"html_id":"drivers/Ashrae/DeviceAddress","path":"Ashrae/DeviceAddress.html","kind":"class","full_name":"Ashrae::DeviceAddress","name":"DeviceAddress","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"constructors":[{"html_id":"new(ip:String,id:UInt32|Nil,net:UInt16|Nil,addr:Nil|String)-class-method","name":"new","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"args_string":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","args_html":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L8"},"def":{"name":"new","args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ip, id, net, addr)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"addr:String|Nil-instance-method","name":"addr","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L14"},"def":{"name":"addr","return_type":"String | ::Nil","visibility":"Public","body":"@addr"}},{"html_id":"address-instance-method","name":"address","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L16"},"def":{"name":"address","visibility":"Public","body":"Socket::IPAddress.new(@ip, 47808)"}},{"html_id":"id:UInt32|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L12"},"def":{"name":"id","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"identifier-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L20"},"def":{"name":"identifier","visibility":"Public","body":"::BACnet::ObjectIdentifier.new(:device, @id.not_nil!)"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L11"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"net:UInt16|Nil-instance-method","name":"net","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L13"},"def":{"name":"net","return_type":"UInt16 | ::Nil","visibility":"Public","body":"@net"}}]},{"html_id":"drivers/Ashrae/DispatchProtocol","path":"Ashrae/DispatchProtocol.html","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Ashrae::DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend}, {type: \"bytes\", name: data, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L26"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}}],"types":[{"html_id":"drivers/Ashrae/DispatchProtocol/MessageType","path":"Ashrae/DispatchProtocol/MessageType.html","kind":"enum","full_name":"Ashrae::DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L28"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0"},{"id":"CLOSED","name":"CLOSED","value":"1"},{"id":"RECEIVED","name":"RECEIVED","value":"2"},{"id":"WRITE","name":"WRITE","value":"3"},{"id":"CLOSE","name":"CLOSE","value":"4"}],"namespace":{"html_id":"drivers/Ashrae/DispatchProtocol","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L33"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L30"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L29"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L31"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ashrae/bacnet_models.cr#L32"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]}]},{"html_id":"drivers/Aver","path":"Aver.html","kind":"module","full_name":"Aver","name":"Aver","abstract":false,"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Aver/Auth","path":"Aver/Auth.html","kind":"struct","full_name":"Aver::Auth","name":"Auth","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L14"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Aver/AxisSelect","path":"Aver/AxisSelect.html","kind":"enum","full_name":"Aver::AxisSelect","name":"AxisSelect","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pan","name":"Pan","value":"0"},{"id":"Tilt","name":"Tilt","value":"1"},{"id":"Zoom","name":"Zoom","value":"2"},{"id":"Focus","name":"Focus","value":"3"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L8"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L5"},"def":{"name":"pan?","visibility":"Public","body":"self == Pan"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L6"},"def":{"name":"tilt?","visibility":"Public","body":"self == Tilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L7"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Aver/Cam520Pro","path":"Aver/Cam520Pro.html","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"send(\"token:#{authenticate}\")\nschedule.clear\nschedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.minutes) do\n keep_alive\nend\npan?\ntilt?\nzoom?\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L67"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L129"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\nif pan_speed.abs >= tilt_speed.abs\n axis = AxisSelect::Pan\n stop = AxisSelect::Tilt\n dir = pan_speed >= 0.0 ? 0 : 1\n cmd = pan_speed.zero? ? 2 : 1\nelse\n stop = AxisSelect::Pan\n axis = AxisSelect::Tilt\n dir = tilt_speed >= 0.0 ? 0 : 1\n cmd = tilt_speed.zero? ? 2 : 1\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: stop.to_i, dir: dir, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: axis.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"keep_alive-instance-method","name":"keep_alive","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L95"},"def":{"name":"keep_alive","visibility":"Public","body":"send(\"alive\")"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L292"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L30"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.before_request do |request|\n logger.debug do\n \"performing request: #{request.method} #{request.path}\\n#{String.new((request.body.as(IO::Memory)).to_slice)}\"\n end\n if request.path != \"/login_name\"\n bearer = bearer_token.presence || authenticate\n request.headers[\"Authorization\"] = \"Bearer #{bearer}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\nif @username != \"spec\"\n device_host = URI.parse(config.uri.not_nil!)\n device_host.port = nil\n transport.http_uri_override = device_host\nend\n@zoom_max = setting(Int32, :zoom_max)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L219"},"def":{"name":"pan?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_p_s\"}.to_json)\n@pan_pos = parse(response, Int32)\n"}},{"html_id":"pan_direct(position:Int32)-instance-method","name":"pan_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L199"},"def":{"name":"pan_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_p\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"pan_pos:Int32-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L99"},"def":{"name":"pan_pos","return_type":"Int32","visibility":"Public","body":"@pan_pos"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy interface as no power command, camera is always on","summary":"

dummy interface as no power command, camera is always on

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/aver/cam520_pro.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L350"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L170"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n zoom_native(zoom_pos)\n pan_direct(pan_pos)\n tilt_direct(tilt_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task):Nil-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task) : Nil","args_html":"(data, task) : Nil","location":{"filename":"src/aver/cam520_pro.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"return_type":"Nil","visibility":"Public","body":"begin\n data = String.new(data)\n logger.debug do\n \"Camera sent: #{data}\"\n end\n payload = (Event.from_json(data)).data\n case payload\n in Option\n value = payload.value.to_i\n case payload.option\n in .ptz_ps?\n @pan_pos = value\n in .ptz_ts?\n @tilt_pos = value\n in .ptz_zs?\n @zoom_pos = value\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n end\n in Event\n raise(\"not possible\")\n end\nensure\n task.try(&.success)\nend"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L189"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L181"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan?\ntilt?\nzoom?\n@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/aver/cam520_pro.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L313"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"spawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Tilt.to_i, dir: 0, cmd: 2}.to_json)\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Pan.to_i, dir: 0, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: 0, cmd: 2}.to_json)\nparse(response, Nil)\n"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L228"},"def":{"name":"tilt?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_t_s\"}.to_json)\n@tilt_pos = parse(response, Int32)\n"}},{"html_id":"tilt_direct(position:Int32)-instance-method","name":"tilt_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L209"},"def":{"name":"tilt_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_t\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"tilt_pos:Int32-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L100"},"def":{"name":"tilt_pos","return_type":"Int32","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L246"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .stop?\n dir = 0\n cmd = 2\nin .out?\n dir = 1\n cmd = 1\nin .in?\n dir = 0\n cmd = 1\nend\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L279"},"def":{"name":"zoom?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_z_s\"}.to_json)\n@zoom_pos = value = parse(response, Int32)\nself[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n"}},{"html_id":"zoom_native(position:Int32)-instance-method","name":"zoom_native","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L269"},"def":{"name":"zoom_native","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_z\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"zoom_pos:Int32-instance-method","name":"zoom_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L101"},"def":{"name":"zoom_pos","return_type":"Int32","visibility":"Public","body":"@zoom_pos"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L240"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_native((percentage * @zoom_max.to_f).to_i)\n"}}],"macros":[{"html_id":"parse(response,klass=::Union(Nil,::Nil))-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"args_string":"(response, klass = ::Union(Nil, ::Nil))","args_html":"(response, klass = ::Union(Nil, ::Nil))","location":{"filename":"src/aver/cam520_pro.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L79"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"visibility":"Public","body":" check_success(\n{{ response }}\n)\n HttpResponse(\n{{ klass }}\n).from_json(\n{{ response }}\n.body.not_nil!).data\n \n"}}],"types":[{"html_id":"drivers/Aver/Cam520Pro/Presets","path":"Aver/Cam520Pro/Presets.html","kind":"alias","full_name":"Aver::Cam520Pro::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro.cr#L167"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int32, Int32, Int32))","aliased_html":"Hash(String, {Int32, Int32, Int32})","const":false,"namespace":{"html_id":"drivers/Aver/Cam520Pro","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro"}}]},{"html_id":"drivers/Aver/Event","path":"Aver/Event.html","kind":"struct","full_name":"Aver::Event","name":"Event","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Aver/EventOption","kind":"struct","full_name":"Aver::EventOption","name":"EventOption"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"event\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'event' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'event'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"option\"\n EventOption.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'event' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L28"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]},{"html_id":"drivers/Aver/EventOption","path":"Aver/EventOption.html","kind":"struct","full_name":"Aver::EventOption","name":"EventOption","abstract":false,"superclass":{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Option-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L51"},"def":{"name":"data","return_type":"Option","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Aver/HttpResponse","path":"Aver/HttpResponse.html","kind":"struct","full_name":"Aver::HttpResponse(Data)","name":"HttpResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L20"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L22"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"msg:String-instance-method","name":"msg","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L21"},"def":{"name":"msg","return_type":"String","visibility":"Public","body":"@msg"}}]},{"html_id":"drivers/Aver/Option","path":"Aver/Option.html","kind":"struct","full_name":"Aver::Option","name":"Option","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"option:OptionType-instance-method","name":"option","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L44"},"def":{"name":"option","return_type":"OptionType","visibility":"Public","body":"@option"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L45"},"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Aver/OptionType","path":"Aver/OptionType.html","kind":"enum","full_name":"Aver::OptionType","name":"OptionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PtzPS","name":"PtzPS","value":"0"},{"id":"PtzTS","name":"PtzTS","value":"1"},{"id":"PtzZS","name":"PtzZS","value":"2"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"ptz_ps?-instance-method","name":"ptz_ps?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L36"},"def":{"name":"ptz_ps?","visibility":"Public","body":"self == PtzPS"}},{"html_id":"ptz_ts?-instance-method","name":"ptz_ts?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L37"},"def":{"name":"ptz_ts?","visibility":"Public","body":"self == PtzTS"}},{"html_id":"ptz_zs?-instance-method","name":"ptz_zs?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aver/cam520_pro_models.cr#L38"},"def":{"name":"ptz_zs?","visibility":"Public","body":"self == PtzZS"}}]}]},{"html_id":"drivers/AWS","path":"AWS.html","kind":"module","full_name":"AWS","name":"AWS","abstract":false,"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AWS/SnsSms","path":"AWS/SnsSms.html","kind":"class","full_name":"AWS::SnsSms","name":"SnsSms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/AWS","kind":"module","full_name":"AWS","name":"AWS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"access_key = setting(String, :aws_access_key)\nsecret = setting(String, :aws_secret)\nuri_parts = (URI.parse(config.uri.not_nil!)).host.not_nil!.split('.')\nservice = uri_parts[0]\nregion = uri_parts[1]\n@signer = Awscr::Signer::Signers::V4.new(service, region, access_key, secret)\ntransport.before_request do |request|\n signer.sign(request)\nend\n"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/aws/sns_sms.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L36"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponses = phone_numbers.map do |number|\n params = URI::Params.build do |form|\n form.add(\"Action\", \"Publish\")\n form.add(\"PhoneNumber\", number)\n form.add(\"Message\", message)\n if source\n if source =~ (/^\\+?\\d{5,14}$/)\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.MM.SMS.OriginationNumber\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source)\n else\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.SNS.SMS.SenderID\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source.gsub(' ', '-'))\n end\n end\n end\n post(\"/?#{params}\", headers: HTTP::Headers {\"Accept\" => \"application/json\"})\nend\nresponses.each do |response|\n if response.success?\n else\n raise(\"request failed with #{response.status_code}: #{response.body}\")\n end\nend\nnil\n"}},{"html_id":"signer:Awscr::Signer::Signers::V4-instance-method","name":"signer","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L21"},"def":{"name":"signer","return_type":"Awscr::Signer::Signers::V4","visibility":"Public","body":"if (__temp_1 = @signer).nil?\n ::raise(::NilAssertionError.new(\"AWS::SnsSms#signer cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"signer?:Awscr::Signer::Signers::V4|Nil-instance-method","name":"signer?","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/aws/sns_sms.cr#L21"},"def":{"name":"signer?","return_type":"Awscr::Signer::Signers::V4 | ::Nil","visibility":"Public","body":"@signer"}}]}]},{"html_id":"drivers/Biamp","path":"Biamp.html","kind":"module","full_name":"Biamp","name":"Biamp","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L3"},{"filename":"src/biamp/tesira.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Biamp/Nexia","path":"Biamp/Nexia.html","kind":"class","full_name":"Biamp::Nexia","name":"Nexia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/nexia.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L19"},"def":{"name":"connected","visibility":"Public","body":"send(Bytes[255, 254, 1], wait: false)\nschedule.every(60.seconds, true) do\n query_device_id\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(id:Int32,level:Float64|Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L78"},"def":{"name":"fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = get_range(type)\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = level_actual + range.begin.to_f\nsend(Command[:SETD, device_id, type.mapped_value, id, index, level_actual], name: \"fader_#{id}\")\n"}},{"html_id":"mixer(id:Int32,inouts:Hash(Int32,Array(Int32))|Array(Int32),mute:Bool=false,type:Mixer=Mixer::Matrix)-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"args_string":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","args_html":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","location":{"filename":"src/biamp/nexia.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L44"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"visibility":"Public","body":"value = mute ? 0 : 1\nif inouts.is_a?(Hash)\n inouts.each do |input, outputs|\n outputs.each do |output|\n send(Command[:SET, device_id, type.mapped_value, id, input, output, value])\n end\n end\nelse\n inouts.each do |input|\n send(Command[:SET, device_id, Mixer::Auto.mapped_value, id, input, value])\n end\nend\n"}},{"html_id":"mute(id:Int32,state:Bool=true,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L106"},"def":{"name":"mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"value = state ? 1 : 0\nsend(Command[:SETD, device_id, type.mapped_value, id, index, value], name: \"mute_#{id}\")\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 30.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\", \"\\xFF\\xFE\\u0001\")\n"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/biamp/nexia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L34"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"send(Command[:RECALL, 0, \"PRESET\", number], name: \"preset_#{number}\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L30"},"def":{"name":"query_device_id","visibility":"Public","body":"send(Command[:GETD, 0, \"DEVID\"])"}},{"html_id":"query_fader(id:Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"query_fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L90"},"def":{"name":"query_fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"query_mute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L115"},"def":{"name":"query_mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/nexia.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L119"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"case response = Response.parse(data)\nin Response::FullPath\n logger.debug do\n \"Device responded #{response.message}\"\n end\n result = process_full_path_response(response)\n task.try(&.success(result))\nin Response::OK\n logger.info do\n \"OK\"\n end\n task.try(&.success)\nin Response::Error\n logger.warn do\n \"Device error: #{data}\"\n end\n task.try(&.abort(response.message))\nin Response::Invalid\n logger.error do\n \"Invalid response structure\"\n end\n task.try(&.abort(response.data))\nend"}},{"html_id":"unmute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"unmute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/nexia.cr#L111"},"def":{"name":"unmute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"mute(id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Nexia/Faders","path":"Biamp/Nexia/Faders.html","kind":"enum","full_name":"Biamp::Nexia::Faders","name":"Faders","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"MatrixCrosspoint","name":"MatrixCrosspoint","value":"3"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"4"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"5"},{"id":"AutoIn","name":"AutoIn","value":"6"},{"id":"AutoOut","name":"AutoOut","value":"7"},{"id":"IoIn","name":"IoIn","value":"8"},{"id":"IoOut","name":"IoOut","value":"9"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_crosspoint?-instance-method","name":"matrix_crosspoint?","abstract":false,"def":{"name":"matrix_crosspoint?","visibility":"Public","body":"self == MatrixCrosspoint"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mixer","path":"Biamp/Nexia/Mixer.html","kind":"enum","full_name":"Biamp::Nexia::Mixer","name":"Mixer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Matrix","name":"Matrix","value":"0"},{"id":"Standard","name":"Standard","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mutes","path":"Biamp/Nexia/Mutes.html","kind":"enum","full_name":"Biamp::Nexia::Mutes","name":"Mutes","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"AutoIn","name":"AutoIn","value":"3"},{"id":"AutoOut","name":"AutoOut","value":"4"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"5"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"6"},{"id":"IoIn","name":"IoIn","value":"7"},{"id":"IoOut","name":"IoOut","value":"8"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]}]},{"html_id":"drivers/Biamp/NTP","path":"Biamp/NTP.html","kind":"module","full_name":"Biamp::NTP","name":"NTP","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"doc":"Biamp ATP/NTP protocol utilities.\nhttps://support.biamp.com/Audia-Nexia/Control/Audia-Nexia_Text_Protocol","summary":"

Biamp ATP/NTP protocol utilities.

","types":[{"html_id":"drivers/Biamp/NTP/Command","path":"Biamp/NTP/Command.html","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"constructors":[{"html_id":"new(type:Type,device:Int32,attribute:String,instance:Int32|Nil=nil,index_1:Int32|Nil=nil,index_2:Int32|Nil=nil,value:String|Int32|Float64|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"args_string":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","args_html":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, device, attribute, instance, index_1, index_2, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @device.clone, @attribute.clone, @instance.clone, @index_1.clone, @index_2.clone, @value.clone)"}},{"html_id":"copy_with(type_type=@type,device_device=@device,attribute_attribute=@attribute,instance_instance=@instance,index_1_index_1=@index_1,index_2_index_2=@index_2,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","args_html":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L4"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _device, _attribute, _instance, _index_1, _index_2, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"index_1:Int32|Nil-instance-method","name":"index_1","abstract":false,"def":{"name":"index_1","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_1"}},{"html_id":"index_2:Int32|Nil-instance-method","name":"index_2","abstract":false,"def":{"name":"index_2","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_2"}},{"html_id":"instance:Int32|Nil-instance-method","name":"instance","abstract":false,"def":{"name":"instance","return_type":"Int32 | ::Nil","visibility":"Public","body":"@instance"}},{"html_id":"to_io(io:IO,format=nil)-instance-method","name":"to_io","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"args_string":"(io : IO, format = nil)","args_html":"(io : IO, format = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L33"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"visibility":"Public","body":"io << type\n{device, attribute, instance, index_1, index_2, value}.each do |field|\n if field.nil?\n next\n end\n (io << ' ') << field\nend\nio << '\\n'\n"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"value:String|Int32|Float64|Nil-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String | Int32 | Float64 | Nil","visibility":"Public","body":"@value"}}],"macros":[{"html_id":"[](type,*params)-macro","name":"[]","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"args_string":"(type, *params)","args_html":"(type, *params)","location":{"filename":"src/biamp/ntp.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L12"},"def":{"name":"[]","args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"splat_index":1,"visibility":"Public","body":" \n{% if (type == (:GET)) || (type == (:GETD)) %}\n {{ @type.name }}.new({{ type }}, {{ params.splat }})\n {% else %}\n {{ @type.name }}.new({{ type }}, {{ params[0...-1].splat }}, value: {{ params[-1] }})\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Biamp/NTP/Command/Type","path":"Biamp/NTP/Command/Type.html","kind":"enum","full_name":"Biamp::NTP::Command::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L18"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SET","name":"SET","value":"0"},{"id":"SETD","name":"SETD","value":"1"},{"id":"GET","name":"GET","value":"2"},{"id":"GETD","name":"GETD","value":"3"},{"id":"INC","name":"INC","value":"4"},{"id":"INCD","name":"INCD","value":"5"},{"id":"DEC","name":"DEC","value":"6"},{"id":"DECD","name":"DECD","value":"7"},{"id":"RECALL","name":"RECALL","value":"8"},{"id":"DIAL","name":"DIAL","value":"9"}],"namespace":{"html_id":"drivers/Biamp/NTP/Command","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command"},"instance_methods":[{"html_id":"dec?-instance-method","name":"dec?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L27"},"def":{"name":"dec?","visibility":"Public","body":"self == DEC"}},{"html_id":"decd?-instance-method","name":"decd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L28"},"def":{"name":"decd?","visibility":"Public","body":"self == DECD"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L30"},"def":{"name":"dial?","visibility":"Public","body":"self == DIAL"}},{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L23"},"def":{"name":"get?","visibility":"Public","body":"self == GET"}},{"html_id":"getd?-instance-method","name":"getd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L24"},"def":{"name":"getd?","visibility":"Public","body":"self == GETD"}},{"html_id":"inc?-instance-method","name":"inc?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L25"},"def":{"name":"inc?","visibility":"Public","body":"self == INC"}},{"html_id":"incd?-instance-method","name":"incd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L26"},"def":{"name":"incd?","visibility":"Public","body":"self == INCD"}},{"html_id":"recall?-instance-method","name":"recall?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L29"},"def":{"name":"recall?","visibility":"Public","body":"self == RECALL"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L21"},"def":{"name":"set?","visibility":"Public","body":"self == SET"}},{"html_id":"setd?-instance-method","name":"setd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L22"},"def":{"name":"setd?","visibility":"Public","body":"self == SETD"}}]}]},{"html_id":"drivers/Biamp/NTP/Response","path":"Biamp/NTP/Response.html","kind":"module","full_name":"Biamp::NTP::Response","name":"Response","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"class_methods":[{"html_id":"parse(data:Bytes)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L55"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"case data[0]\nwhen '#'\n response = String.new(data)\n if response.includes?(\" -ERR\")\n Error.new(response)\n else\n fields = response[1..].split\n type = Command::Type.parse(fields[0])\n device = fields[1].to_i\n attribute = fields[2]\n params = fields[3..]\n value = type.getd? ? fields[-1] : fields[-2]\n FullPath.new(response, type, device, attribute, params, value)\n end\nwhen '+'\n OK.new\nwhen '-'\n Error.new(String.new(data))\nelse\n Invalid.new(data)\nend"}}],"types":[{"html_id":"drivers/Biamp/NTP/Response/Error","path":"Biamp/NTP/Response/Error.html","kind":"struct","full_name":"Biamp::NTP::Response::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"}],"args_string":"(message : String)","args_html":"(message : String)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone)"}},{"html_id":"copy_with(message_message=@message)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"args_string":"(message _message = @message)","args_html":"(message _message = @message)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L52"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"visibility":"Public","body":"self.class.new(_message)"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Biamp/NTP/Response/FullPath","path":"Biamp/NTP/Response/FullPath.html","kind":"struct","full_name":"Biamp::NTP::Response::FullPath","name":"FullPath","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String,type:Command::Type,device:Int32,attribute:String,params:Array(String),value:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","args_html":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message, type, device, attribute, params, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone, @type.clone, @device.clone, @attribute.clone, @params.clone, @value.clone)"}},{"html_id":"copy_with(message_message=@message,type_type=@type,device_device=@device,attribute_attribute=@attribute,params_params=@params,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","args_html":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_message, _type, _device, _attribute, _params, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"params:Array(String)-instance-method","name":"params","abstract":false,"def":{"name":"params","return_type":"Array(String)","visibility":"Public","body":"@params"}},{"html_id":"type:Command::Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Command::Type","visibility":"Public","body":"@type"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Biamp/NTP/Response/Invalid","path":"Biamp/NTP/Response/Invalid.html","kind":"struct","full_name":"Biamp::NTP::Response::Invalid","name":"Invalid","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(data:Bytes)-class-method","name":"new","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"new","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"_ = allocate\n_.initialize(data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@data.clone)"}},{"html_id":"copy_with(data_data=@data)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"args_string":"(data _data = @data)","args_html":"(data _data = @data)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L53"},"def":{"name":"copy_with","args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"visibility":"Public","body":"self.class.new(_data)"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Biamp/NTP/Response/OK","path":"Biamp/NTP/Response/OK.html","kind":"struct","full_name":"Biamp::NTP::Response::OK","name":"OK","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"clone","visibility":"Public","body":"self.class.new()"}},{"html_id":"copy_with-instance-method","name":"copy_with","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/ntp.cr#L51"},"def":{"name":"copy_with","visibility":"Public","body":"self.class.new()"}}]}]}]},{"html_id":"drivers/Biamp/Tesira","path":"Biamp/Tesira.html","kind":"class","full_name":"Biamp::Tesira","name":"Tesira","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/tesira.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"FADERS","name":"FADERS","value":"{\"fader\" => \"level\", \"matrix_in\" => \"inputLevel\", \"matrix_out\" => \"outputLevel\", \"matrix_crosspoint\" => \"crosspointLevel\", \"level\" => \"fader\", \"inputLevel\" => \"matrix_in\", \"outputLevel\" => \"matrix_out\", \"crosspointLevel\" => \"matrix_crosspoint\"}"},{"id":"MIXERS","name":"MIXERS","value":"{\"matrix\" => \"crosspointLevelState\", \"mixer\" => \"crosspoint\"}"},{"id":"MUTES","name":"MUTES","value":"{\"fader\" => \"mute\", \"matrix_in\" => \"inputMute\", \"matrix_out\" => \"outputMute\", \"mute\" => \"fader\", \"inputMute\" => \"matrix_in\", \"outputMute\" => \"matrix_out\"}"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"@telnet = telnet = Telnet.new do |telnet_response|\n transport.send(telnet_response)\nend\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\nif setting(Bool, :no_password)\n do_send((setting(String, :username)) || \"admin\", wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\nend\ndo_send(\"SESSION set verbose false\", priority: 96)\nschedule.clear\nschedule.every(60.seconds) do\n do_send(\"DEVICE get serialNumber\", priority: 95)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"transport.tokenizer = nil\nschedule.clear\n"}},{"html_id":"fader(fader_id:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L103"},"def":{"name":"fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader_type = FADERS[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, fader_type, i, level), priority: 30, name: \"fade_#{fad}_#{i}\")\n self[\"#{fader_type}_#{fad}_#{i}\"] = level\n end\nend\n"}},{"html_id":"faders(ids:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L118"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader(ids, level, index, type)"}},{"html_id":"get_aliases-instance-method","name":"get_aliases","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L66"},"def":{"name":"get_aliases","visibility":"Public","body":"do_send(\"SESSION get aliases\")"}},{"html_id":"mixer(id:String,inouts:Hash(Int32,Int32|Array(Int32))|Array(Int32),mute:Bool=false,type:String=\"matrix\")-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"args_string":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = \"matrix\")","args_html":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = "matrix")","location":{"filename":"src/biamp/tesira.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L75"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mixer_type = MIXERS[type] || type\nif inouts.is_a?(Hash)\n inouts.each do |input, outs|\n outputs = ensure_array(outs)\n outputs.each do |output|\n do_send(build(id, :set, mixer_type, input, output, mute), priority: 30, name: \"mixmute_#{input}_#{output}\")\n end\n end\nelse\n inouts.each do |input|\n do_send(build(id, :set, mixer_type, input, mute), priority: 30, name: \"mixmute_#{input}\")\n end\nend\n"}},{"html_id":"mute(fader_id:Ids,value:Bool=true,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L131"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, mute_type, i, value), priority: 30, name: \"mute_#{fad}_#{i}\")\n self[\"#{mute_type}_#{fad}_#{i}_mute\"] = value\n end\nend\n"}},{"html_id":"mutes(ids:Ids,muted:Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L145"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(ids, muted, index, type)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L21"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 30.milliseconds\n"}},{"html_id":"preset(number_or_name:String|Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"args_string":"(number_or_name : String | Int32)","args_html":"(number_or_name : String | Int32)","location":{"filename":"src/biamp/tesira.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L50"},"def":{"name":"preset","args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"visibility":"Public","body":"if number_or_name.is_a?(Int32)\n do_send(\"DEVICE recallPreset #{number_or_name}\", priority: 30, name: \"preset_#{number_or_name}\")\nelse\n do_send(build(:DEVICE, :recallPresetByName, number_or_name), priority: 30, name: \"preset_#{number_or_name}\")\nend"}},{"html_id":"query_fader(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L153"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fad_type = FADERS[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, fad_type, index))\n"}},{"html_id":"query_faders(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L162"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(ids, index, type)"}},{"html_id":"query_mute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L166"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, mute_type, index))\n"}},{"html_id":"query_mutes(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L175"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_mute(ids, index, type)"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L62"},"def":{"name":"reboot","visibility":"Public","body":"do_send(\"DEVICE reboot\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/tesira.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L179"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Tesira responded -> data: #{data}\"\nend\nresult = data.split(\" \")\nif result[0] == \"-\"\n task.try(&.abort)\nend\nif data =~ (/login:|server/i)\n transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nend\ntask.try(&.success)\n"}},{"html_id":"start_audio-instance-method","name":"start_audio","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L58"},"def":{"name":"start_audio","visibility":"Public","body":"do_send(\"DEVICE startAudio\")"}},{"html_id":"unmute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L149"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(fader_id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Tesira/Ids","path":"Biamp/Tesira/Ids.html","kind":"alias","full_name":"Biamp::Tesira::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}},{"html_id":"drivers/Biamp/Tesira/Num","path":"Biamp/Tesira/Num.html","kind":"alias","full_name":"Biamp::Tesira::Num","name":"Num","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/biamp/tesira.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}}]}]},{"html_id":"drivers/Bose","path":"Bose.html","kind":"module","full_name":"Bose","name":"Bose","abstract":false,"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Bose/ControlSpaceSerial","path":"Bose/ControlSpaceSerial.html","kind":"class","full_name":"Bose::ControlSpaceSerial","name":"ControlSpaceSerial","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Bose","kind":"module","full_name":"Bose","name":"Bose"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.debug do\n \"-- maintaining connection\"\n end\n do_send(\"GS\", priority: 99)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_parameter_group-instance-method","name":"get_parameter_group","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L41"},"def":{"name":"get_parameter_group","visibility":"Public","body":"do_send(\"GS\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[13])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/bose/control_space_serial.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L45"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).rchop\nlogger.debug do\n \"ControlSpace sent: #{data}\"\nend\nparts = data.split(\" \")\ncase parts[0]\nwhen \"S\"\n self[:parameter_group] = parts[1].to_i(16)\nend\ntask.try(&.success)\n"}},{"html_id":"set_parameter_group(id:UInt8)-instance-method","name":"set_parameter_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"args_string":"(id : UInt8)","args_html":"(id : UInt8)","location":{"filename":"src/bose/control_space_serial.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/bose/control_space_serial.cr#L36"},"def":{"name":"set_parameter_group","args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"visibility":"Public","body":"(do_send(\"SS #{(id.to_s(16)).upcase}\", wait: false, name: \"set_pgroup\")).get\nself[:parameter_group] = id\n"}}]}]},{"html_id":"drivers/Cisco","path":"Cisco.html","kind":"module","full_name":"Cisco","name":"Cisco","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L4"},{"filename":"src/cisco/webex/api/messages.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L1"},{"filename":"src/cisco/webex/api/people.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L1"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L1"},{"filename":"src/cisco/webex/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L1"},{"filename":"src/cisco/webex/command.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L1"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L1"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L1"},{"filename":"src/cisco/webex/constants.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L1"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L1"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L1"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L1"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L1"},{"filename":"src/cisco/webex/models/device.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L1"},{"filename":"src/cisco/webex/models/event.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L1"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L1"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L1"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L1"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L1"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L1"},{"filename":"src/cisco/webex/models/message.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L1"},{"filename":"src/cisco/webex/models/peek.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L1"},{"filename":"src/cisco/webex/models/person.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L1"},{"filename":"src/cisco/webex/models/room.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L1"},{"filename":"src/cisco/webex/session.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L1"},{"filename":"src/cisco/webex/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L1"},{"filename":"src/cisco/webex/utils.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint","path":"Cisco/CollaborationEndpoint.html","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"instance_methods":[{"html_id":"bind_feedback(path:String,status_key:String)-instance-method","name":"bind_feedback","doc":"Bind arbitary device feedback to a status variable.","summary":"

Bind arbitary device feedback to a status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L425"},"def":{"name":"bind_feedback","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"register_feedback(path) do |value_path, value|\n if value_path == path\n self[status_key] = value\n else\n key_path = value_path.sub(path, \"\")\n hash = @status_keys[status_key]\n hash[key_path] = value\n self[status_key] = hash\n end\nend"}},{"html_id":"bind_status(path:String,status_key:String)-instance-method","name":"bind_status","doc":"Bind device status to a module status variable.","summary":"

Bind device status to a module status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L439"},"def":{"name":"bind_status","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"bind_path = \"Status/#{path.tr(\" \", \"/\")}\"\nbind_feedback(\"/#{bind_path}\", status_key)\npayload = xstatus(path)\nif (payload.size == 1) && (payload.has_key?(bind_path))\n self[status_key] = payload[bind_path]\nelse\n self[status_key] = @status_keys[status_key] = payload.transform_keys do |key|\n key.sub(path, \"\")\n end\nend\npayload\n"}},{"html_id":"clear_event(path:String)-instance-method","name":"clear_event","doc":"Clear external event subscribtions for a specific device path.","summary":"

Clear external event subscribtions for a specific device path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L481"},"def":{"name":"clear_event","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Clearing event subscription for #{path}\"\nend\nunregister_feedback(path)\n"}},{"html_id":"clear_feedback_subscriptions(connected:Bool=true)-instance-method","name":"clear_feedback_subscriptions","abstract":false,"args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool = true)","args_html":"(connected : Bool = true)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L409"},"def":{"name":"clear_feedback_subscriptions","args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"Unsubscribing all feedback\"\nend\n@status_keys.clear\nfeedback.clear\n@feedback_paths.clear\nif connected\n do_send(XAPI.xfeedback(:deregister_all))\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"reset_connection_flags\nschedule.every(2.minutes) do\n ensure_feedback_registered\nend\nschedule.every(30.seconds) do\n if @last_received > 40.seconds.ago.to_unix\n heartbeat(timeout: 35)\n else\n disconnect\n end\nend\nschedule.in(10.seconds) do\n if @ready || @init_called\n else\n init_connection\n end\n schedule.in(15.seconds) do\n if !@ready || self[\"configuration\"]?.nil?\n disconnect\n end\n end\nend\nbegin\n transport.send(\"xPreferences OutputMode JSON\\n\")\nrescue\nend\nqueue.clear(abort_current: true)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L95"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nreset_connection_flags\nclear_feedback_subscriptions(false)\nqueue.clear(abort_current: true)\nself[:ready] = false\n"}},{"html_id":"ensure_feedback_registered-instance-method","name":"ensure_feedback_registered","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L107"},"def":{"name":"ensure_feedback_registered","visibility":"Public","body":"send(\"xPreferences OutputMode JSON\\n\", priority: 0, wait: false, name: \"output_json\")\nresults = @feedback_paths.map do |path|\n request = XAPI.xfeedback(:register, path)\n do_send(request, priority: 0, name: path)\nend\nspawn do\n success = 0\n results.each do |task|\n begin\n if task.get.state.success?\n success = success + 1\n end\n rescue\n end\n end\n logger.debug do\n \"FEEDBACK REGISTERED #{success}\"\n end\n if success > 0\n else\n disconnect\n end\nend\n@feedback_paths.size\n"}},{"html_id":"feedback_paths:Array(String)-instance-method","name":"feedback_paths","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L34"},"def":{"name":"feedback_paths","return_type":"Array(String)","visibility":"Public","body":"@feedback_paths"}},{"html_id":"generate_request_uuid-instance-method","name":"generate_request_uuid","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L103"},"def":{"name":"generate_request_uuid","visibility":"Public","body":"UUID.random.to_s"}},{"html_id":"on_event(path:String,mod_id:String,channel:String)-instance-method","name":"on_event","doc":"Subscribe another module to async device events.\nCallback methods must be of arity 1 and public.","summary":"

Subscribe another module to async device events.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"args_string":"(path : String, mod_id : String, channel : String)","args_html":"(path : String, mod_id : String, channel : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L471"},"def":{"name":"on_event","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Registering callback for #{path} to #{mod_id}/#{channel}\"\nend\nregister_feedback(path) do |event_path, value|\n event_json = {event_path => value}.to_json\n logger.debug do\n \"Publishing #{path} event to #{mod_id}/#{channel} with payload #{event_json}\"\n end\n publish(\"#{mod_id}/#{channel}\", event_json)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 80.milliseconds\nqueue.timeout = 3.seconds\n@peripheral_id = setting?(String, :peripheral_id)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L51"},"def":{"name":"on_update","visibility":"Public","body":"if @ignore_update\n @ignore_update = false\n return\nend\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\ndisconnect\n"}},{"html_id":"peripheral_id:String-instance-method","name":"peripheral_id","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L20"},"def":{"name":"peripheral_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @peripheral_id).nil?\n @peripheral_id = (begin\n uuid = generate_request_uuid\n @ignore_update = true\n define_setting(:peripheral_id, uuid)\n uuid\n end)\nelse\n __temp_1\nend"}},{"html_id":"push_config-instance-method","name":"push_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L455"},"def":{"name":"push_config","visibility":"Public","body":"if config = setting?(Config, :configuration)\n xconfigurations(config)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L332"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n @last_received = Time.utc.to_unix\n payload = String.new(data)\n logger.debug do\n \"<- #{payload}\"\n end\n if transport.tokenizer.nil? && (payload =~ XAPI::LOGIN_COMPLETE)\n queue.clear(abort_current: true)\n sleep(500.milliseconds)\n transport.send(\"xPreferences OutputMode JSON\\n\")\n logger.info do\n \"initializing connection\"\n end\n spawn do\n init_connection\n end\n return\n end\n response = XAPI.parse(payload)\n if task.nil?\n return feedback.notify(response)\n end\n if task.xapi_request_id == response[\"ResultId\"]?\n command_result = task.xapi_callback.try(&.call(response))\n if command_result.nil?\n feedback.notify(response)\n end\n command_result == (:abort) ? task.abort : task.success(command_result)\n else\n feedback.notify(response)\n end\nrescue error : JSON::ParseException\n payload = (String.new(data)).strip\n case payload\n when \"OK\"\n task.try(&.success(payload))\n when \"Command not recognized.\"\n logger.error do\n \"Command not recognized: `#{task.try(&.request_payload)}`\"\n end\n task.try(&.abort(payload))\n else\n logger.debug do\n \"Malformed device response: #{error}\\n#{payload}\"\n end\n task.try(&.abort(\"Malformed device response: #{error}\"))\n end\nend"}},{"html_id":"register_feedback(path:String,&update_handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"register_feedback","doc":"Subscribe to feedback from the device.","summary":"

Subscribe to feedback from the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L376"},"def":{"name":"register_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"update_handler","external_name":"update_handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"if !@ready\n if feedback.contains?(path)\n else\n @feedback_paths << path\n @feedback_paths.uniq!\n feedback.insert(path, &update_handler)\n end\n return true\nend\nlogger.debug do\n \"Subscribing to device feedback for #{path}\"\nend\nif feedback.contains?(path)\nelse\n @feedback_paths << path\n @feedback_paths.uniq!\n request = XAPI.xfeedback(:register, path)\n result = do_send(request, name: path)\nend\nfeedback.insert(path, &update_handler)\nresult.try(&.get) || true\n"}},{"html_id":"sync_config-instance-method","name":"sync_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L461"},"def":{"name":"sync_config","visibility":"Public","body":"bind_feedback(\"/Configuration\", \"configuration\")\nsend(\"xConfiguration *\\n\", wait: false)\n"}},{"html_id":"unregister_feedback(path:String)-instance-method","name":"unregister_feedback","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L401"},"def":{"name":"unregister_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"if path == \"/\"\n return clear_feedback_subscriptions\nend\nlogger.debug do\n \"Unsubscribing feedback for #{path}\"\nend\nfeedback.remove(path)\n@feedback_paths.delete(path)\ndo_send(XAPI.xfeedback(:deregister, path))\n"}},{"html_id":"xcommand(command:String,multiline_body:String|Nil=nil,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-instance-method","name":"xcommand","doc":"Execute an xCommand on the device.","summary":"

Execute an xCommand on the device.

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L140"},"def":{"name":"xcommand","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"request = XAPI.xcommand(command, **kwargs.merge({hash_args: hash_args}))\nname = if kwargs.empty?\n command\nelse\n if kwargs.size == 1\n \"#{command} #{kwargs.keys.to_a.first}\"\n end\nend\npriority = kwargs[:priority]? || queue.priority\ndo_send(request, multiline_body, name: name, priority: priority) do |response|\n result_key = (((command.split(' ')).last(2)).join(\"\")) + \"Result\"\n command_result = response[\"CommandResponse/#{result_key}/status\"]?\n failure_result = response[\"CommandResponse/Result/Reason\"]?\n result = command_result || failure_result\n if result\n if result == \"OK\"\n result\n else\n failure_result || (failure_result = response[\"CommandResponse/#{result_key}/Reason\"]?)\n logger.error do\n failure_result.inspect\n end\n :abort\n end\n else\n logger.warn do\n \"Unexpected response format\"\n end\n :abort\n end\nend\n"}},{"html_id":"xconfiguration(path:String,hash_args:Hash(String,JSONBasic)={}ofString=>JSONBasic,**kwargs)-instance-method","name":"xconfiguration","doc":"Apply a single configuration on the device.","summary":"

Apply a single configuration on the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"args_string":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L186"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"promises = hash_args.map do |setting, value|\n apply_configuration(path, setting, value)\nend\nkwargs.each do |setting, value|\n promise = apply_configuration(path, setting, value)\n promises << promise\nend\n(Promise.all(promises)).get.first\n"}},{"html_id":"xconfigurations(config:Config)-instance-method","name":"xconfigurations","doc":"Push a configuration settings to the device.","summary":"

Push a configuration settings to the device.

","abstract":false,"args":[{"name":"config","external_name":"config","restriction":"Config"}],"args_string":"(config : Config)","args_html":"(config : Config)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L135"},"def":{"name":"xconfigurations","args":[{"name":"config","external_name":"config","restriction":"Config"}],"visibility":"Public","body":"config.each do |path, settings|\n xconfiguration(path, settings)\nend"}},{"html_id":"xstatus(path:String)-instance-method","name":"xstatus","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L229"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"request = XAPI.xstatus(path)\npromise = Promise.new(Hash(String, Enumerable::JSONComplex))\ntask = do_send(request) do |response|\n prefix = \"Status/#{(XAPI.tokenize(path)).join('/')}\"\n results = {} of String => Enumerable::JSONComplex\n response.each do |key, value|\n if key.starts_with?(prefix)\n results[key] = value\n end\n end\n if !results.empty?\n promise.resolve(results)\n results\n else\n if error = response[\"Status/status\"]? || response[\"CommandResponse/Status/status\"]?\n reason = response[\"Status/Reason\"]? || response[\"CommandResponse/Status/Reason\"]?\n xpath = response[\"Status/XPath\"]? || response[\"CommandResponse/Status/XPath\"]?\n error_msg = \"#{reason} (#{xpath})\"\n promise.reject(RuntimeError.new(error_msg))\n logger.error do\n error_msg\n end\n :abort\n else\n results[prefix] = nil\n promise.resolve(results)\n results\n end\n end\nend\nspawn do\n task.get\n if task.state == (:abort)\n promise.reject(RuntimeError.new(\"failed to obtain status: #{path}\"))\n end\nend\npromise.get\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","path":"Cisco/CollaborationEndpoint/Cameras.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"camera_move(camera_id:Int32,pan:Interface::Camera::PanDirection|Nil=nil,pan_speed:Int32|Nil=nil,tilt:Interface::Camera::TiltDirection|Nil=nil,tilt_speed:Int32|Nil=nil,zoom:Interface::Zoomable::ZoomDirection|Nil=nil,zoom_speed:Int32|Nil=nil,focus:FocusDirection|Nil=nil)-instance-method","name":"camera_move","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"args_string":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","args_html":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L43"},"def":{"name":"camera_move","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif pan_speed\n if (1..15).includes?(pan_speed)\n else\n raise(ArgumentError.new(\"\\\"pan_speed\\\" must be within #{1..15}, was #{pan_speed}\"))\n end\nend\nif tilt_speed\n if (1..15).includes?(tilt_speed)\n else\n raise(ArgumentError.new(\"\\\"tilt_speed\\\" must be within #{1..15}, was #{tilt_speed}\"))\n end\nend\nif zoom_speed\n if (1..15).includes?(zoom_speed)\n else\n raise(ArgumentError.new(\"\\\"zoom_speed\\\" must be within #{1..15}, was #{zoom_speed}\"))\n end\nend\nxcommand(\"Camera Ramp\", camera_id: camera_id, pan: pan, pan_speed: pan_speed, tilt: tilt, tilt_speed: tilt_speed, zoom: zoom, zoom_speed: zoom_speed, focus: focus)\n"}},{"html_id":"camera_position_reset(camera_id:Int32,axis:CameraAxis|Nil=nil)-instance-method","name":"camera_position_reset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"args_string":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","args_html":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L40"},"def":{"name":"camera_position_reset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nxcommand(\"Camera PositionReset\", camera_id: camera_id, axis: axis)\n"}},{"html_id":"camera_preset(preset_id:Int32)-instance-method","name":"camera_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L16"},"def":{"name":"camera_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Activate\", preset_id: preset_id)\n"}},{"html_id":"camera_remove_preset(preset_id:Int32)-instance-method","name":"camera_remove_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L24"},"def":{"name":"camera_remove_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Remove\", preset_id: preset_id)\n"}},{"html_id":"camera_store_preset(camera_id:Int32,preset_id:Int32,name:String|Nil=nil,take_snapshot:Bool|Nil=nil,default_position:Bool|Nil=nil)-instance-method","name":"camera_store_preset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"args_string":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","args_html":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L18"},"def":{"name":"camera_store_preset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Store\", camera_id: camera_id, preset_id: preset_id, name: name, take_snapshot: take_snapshot, default_position: default_position)\n"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L107"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan_speed = pan_speed.clamp(-100.0, 100.0)\ntilt_speed = tilt_speed.clamp(-100.0, 100.0)\npan = if pan_speed.zero?\n pan_speed = nil\n PanDirection::Stop\nelse\n pan_speed.negative? ? PanDirection::Left : PanDirection::Right\nend\ntilt = if tilt_speed.zero?\n tilt_speed = nil\n TiltDirection::Stop\nelse\n tilt_speed.negative? ? TiltDirection::Down : TiltDirection::Up\nend\ncam = index.to_i\nif cam.zero?\n cam = 1\nend\nif pan_speed\n percentage = pan_speed.abs / 100.0\n pan_speed_actual = (percentage * 15.0).round.to_i\nend\nif tilt_speed\n percentage = tilt_speed.abs / 100.0\n tilt_speed_actual = (percentage * 15.0).round.to_i\nend\ncamera_move(camera_id: cam, pan: pan, pan_speed: pan_speed_actual, tilt: tilt, tilt_speed: tilt_speed_actual, zoom: ZoomDirection::Stop)\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L68"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncase position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0.0, tilt_speed: position.down? ? -50.0 : 50.0, index: cam)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -50.0 : 50.0, tilt_speed: 0.0, index: cam)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out, cam)\nend\n"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L148"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npreset = presets[position]?\nif preset\nelse\n raise(\"preset '#{position}' not found on camera #{index}\")\nend\ncamera_preset(preset_id: preset)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L179"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npresets.delete(name)\nif presets.empty?\n @presets.delete(cam)\nelse\n @presets[cam] = presets\nend\nsave_presets\ntrue\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L159"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\nin_use = @presets.values.flat_map(&.values)\nnext_available = ((1..35).to_a - in_use).first\npresets[name] = next_available\ncamera_store_preset(camera_id: cam, preset_id: next_available, name: name).get\n@presets[cam] = presets\nsave_presets\ntrue\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L56"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, pan: PanDirection::Stop, tilt: TiltDirection::Stop, zoom: ZoomDirection::Stop)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L96"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, zoom: direction, zoom_speed: 6)\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L92"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"raise(\"direct zoom unsupported on this camera\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/CameraAxis","path":"Cisco/CollaborationEndpoint/Cameras/CameraAxis.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::CameraAxis","name":"CameraAxis","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L27"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"0"},{"id":"Focus","name":"Focus","value":"1"},{"id":"PanTilt","name":"PanTilt","value":"2"},{"id":"Zoom","name":"Zoom","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L28"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L29"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan_tilt?-instance-method","name":"pan_tilt?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L30"},"def":{"name":"pan_tilt?","visibility":"Public","body":"self == PanTilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L31"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/FocusDirection","path":"Cisco/CollaborationEndpoint/Cameras/FocusDirection.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::FocusDirection","name":"FocusDirection","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L34"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Far","name":"Far","value":"0"},{"id":"Near","name":"Near","value":"1"},{"id":"Stop","name":"Stop","value":"2"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"far?-instance-method","name":"far?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L35"},"def":{"name":"far?","visibility":"Public","body":"self == Far"}},{"html_id":"near?-instance-method","name":"near?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L36"},"def":{"name":"near?","visibility":"Public","body":"self == Near"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L37"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/Interface","path":"Cisco/CollaborationEndpoint/Cameras/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Cameras::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/cameras.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Config","path":"Cisco/CollaborationEndpoint/Config.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Config","name":"Config","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L132"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","aliased_html":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Feedback","path":"Cisco/CollaborationEndpoint/Feedback.html","kind":"class","full_name":"Cisco::CollaborationEndpoint::Feedback","name":"Feedback","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L2"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clear-instance-method","name":"clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L44"},"def":{"name":"clear","visibility":"Public","body":"@callbacks = Hash(String, Array(Proc(String, Enumerable::JSONComplex, Nil))).new do |h, k|\n h[k] = [] of Proc(String, Enumerable::JSONComplex, Nil)\nend"}},{"html_id":"contains?(path:String)-instance-method","name":"contains?","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L23"},"def":{"name":"contains?","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"found = false\n@callbacks.each_key do |key|\n if path.starts_with?(key)\n found = true\n break\n end\nend\nfound\n"}},{"html_id":"insert(path:String,&handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"insert","doc":"Insert a response handler block to be notified of updates effecting the\nspecified feedback path.","summary":"

Insert a response handler block to be notified of updates effecting the specified feedback path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L18"},"def":{"name":"insert","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"handler","external_name":"handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"@callbacks[path] << handler\nself\n"}},{"html_id":"notify(path:String,value:Enumerable::JSONComplex)-instance-method","name":"notify","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"args_string":"(path : String, value : Enumerable::JSONComplex)","args_html":"(path : String, value : Enumerable::JSONComplex)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L34"},"def":{"name":"notify","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"visibility":"Public","body":"@callbacks.each do |key, callbacks|\n if path.starts_with?(key)\n callbacks.each(&.call(path, value))\n end\nend"}},{"html_id":"notify(payload:Hash(String,Enumerable::JSONComplex))-instance-method","name":"notify","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"args_string":"(payload : Hash(String, Enumerable::JSONComplex))","args_html":"(payload : Hash(String, Enumerable::JSONComplex))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L40"},"def":{"name":"notify","args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"visibility":"Public","body":"payload.each do |key, value|\n notify(\"/#{key}\", value)\nend"}},{"html_id":"remove(path:String)-instance-method","name":"remove","doc":"Nuke a subtree below the path","summary":"

Nuke a subtree below the path

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/feedback.cr#L9"},"def":{"name":"remove","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"remove = [] of String\n@callbacks.each_key do |key|\n if key.starts_with?(path)\n remove << key\n end\nend\nremove.each do |key|\n @callbacks.delete(key)\nend\nself\n"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/JSONBasic","path":"Cisco/CollaborationEndpoint/JSONBasic.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","path":"Cisco/CollaborationEndpoint/Powerable.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"half_wake-instance-method","name":"half_wake","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L14"},"def":{"name":"half_wake","visibility":"Public","body":"xcommand(\"Standby HalfWake\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? powerup : half_wake\nself[:power] = state\n"}},{"html_id":"power_state(state:Interface::Powerable::PowerState)-instance-method","name":"power_state","doc":"override this to implement `PowerState::FullOff` if it is available for the device","summary":"

override this to implement PowerState::FullOff if it is available for the device

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"args_string":"(state : Interface::Powerable::PowerState)","args_html":"(state : Interface::Powerable::PowerState)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L23"},"def":{"name":"power_state","args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"visibility":"Public","body":"case state\nin .on?\n power(true)\nin .off?\n power(false)\nin .full_off?\n standby\n self[:power] = false\nend\nself[:power_state] = state\n"}},{"html_id":"powerup-instance-method","name":"powerup","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L13"},"def":{"name":"powerup","visibility":"Public","body":"xcommand(\"Standby Deactivate\")"}},{"html_id":"reset_standby_timer(delay:Int32)-instance-method","name":"reset_standby_timer","abstract":false,"args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"args_string":"(delay : Int32)","args_html":"(delay : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L16"},"def":{"name":"reset_standby_timer","args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"visibility":"Public","body":"if (1..480).includes?(delay)\nelse\n raise(ArgumentError.new(\"delay must be within #{1..480}, was #{delay}\"))\nend\nxcommand(\"Standby ResetTimer\", delay: delay)\n"}},{"html_id":"standby-instance-method","name":"standby","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L15"},"def":{"name":"standby","visibility":"Public","body":"xcommand(\"Standby Activate\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/Interface","path":"Cisco/CollaborationEndpoint/Powerable/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Powerable::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/PowerOff","path":"Cisco/CollaborationEndpoint/Powerable/PowerOff.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Powerable::PowerOff","name":"PowerOff","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Restart","name":"Restart","value":"0"},{"id":"Shutdown","name":"Shutdown","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},"instance_methods":[{"html_id":"restart?-instance-method","name":"restart?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L37"},"def":{"name":"restart?","visibility":"Public","body":"self == Restart"}},{"html_id":"shutdown?-instance-method","name":"shutdown?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/powerable.cr#L38"},"def":{"name":"shutdown?","visibility":"Public","body":"self == Shutdown"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","path":"Cisco/CollaborationEndpoint/Presentation.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"presentation_start(presentation_source:Int32|Nil=nil,sending_mode:SendingMode|Nil=nil,connector_id:Int32|Nil=nil,instance:Int32|Nil=nil)-instance-method","name":"presentation_start","abstract":false,"args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"args_string":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","args_html":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L24"},"def":{"name":"presentation_start","args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if presentation_source\n if (1..2).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..2}, was #{presentation_source}\"))\n end\nend\nif connector_id\n if (1..2).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..2}, was #{connector_id}\"))\n end\nend\nif instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nxcommand(\"Presentation Start\", presentation_source: presentation_source, sending_mode: sending_mode, connector_id: connector_id, instance: instance)\n"}},{"html_id":"presentation_stop(instance:Int32|Nil=nil,presentation_source:Int32|Nil=nil)-instance-method","name":"presentation_stop","abstract":false,"args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"args_string":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","args_html":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L29"},"def":{"name":"presentation_stop","args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nif presentation_source\n if (1..4).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..4}, was #{presentation_source}\"))\n end\nend\nxcommand(\"Presentation Stop\", instance: instance, presentation_source: presentation_source)\n"}},{"html_id":"send_presentation_to(remote:Bool)-instance-method","name":"send_presentation_to","abstract":false,"args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"args_string":"(remote : Bool)","args_html":"(remote : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L51"},"def":{"name":"send_presentation_to","args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"visibility":"Public","body":"@sending_mode = remote ? SendingMode::LocalRemote : SendingMode::LocalOnly\nself[:present_to_remote] = remote\nif input = @presenting_input\n presentation_start(presentation_source: input, sending_mode: @sending_mode)\nend\n"}},{"html_id":"switch_to(input:PresentationInputs)-instance-method","name":"switch_to","doc":"Provide compatabilty with the router module for activating presentation.","summary":"

Provide compatabilty with the router module for activating presentation.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"args_string":"(input : PresentationInputs)","args_html":"(input : PresentationInputs)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L34"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"visibility":"Public","body":"if input.none?\n @presenting_input = nil\n presentation_stop\nelse\n source = input.to_s[5..-1].to_i\n @presenting_input = source\n presentation_start(presentation_source: source, sending_mode: @sending_mode)\nend\nself[:presenting_input] = @presenting_input\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/PresentationInputs","path":"Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::PresentationInputs","name":"PresentationInputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"},{"id":"Input3","name":"Input3","value":"3"},{"id":"Input4","name":"Input4","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"input3?-instance-method","name":"input3?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L9"},"def":{"name":"input3?","visibility":"Public","body":"self == Input3"}},{"html_id":"input4?-instance-method","name":"input4?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L10"},"def":{"name":"input4?","visibility":"Public","body":"self == Input4"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/SendingMode","path":"Cisco/CollaborationEndpoint/Presentation/SendingMode.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::SendingMode","name":"SendingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LocalRemote","name":"LocalRemote","value":"0"},{"id":"LocalOnly","name":"LocalOnly","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"local_only?-instance-method","name":"local_only?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L18"},"def":{"name":"local_only?","visibility":"Public","body":"self == LocalOnly"}},{"html_id":"local_remote?-instance-method","name":"local_remote?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/presentation.cr#L17"},"def":{"name":"local_remote?","visibility":"Public","body":"self == LocalRemote"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presets","path":"Cisco/CollaborationEndpoint/Presets.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Hash(String, Int32))","aliased_html":"Hash(Int32, Hash(String, Int32))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"Camera idx => Preset name => Preset id","summary":"

Camera idx => Preset name => Preset id

"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Toogle","path":"Cisco/CollaborationEndpoint/Toogle.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L15"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"used by many of the commands","summary":"

used by many of the commands

","instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L17"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint.cr#L16"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","path":"Cisco/CollaborationEndpoint/UIExtensions.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"msg_alert(text:String,title:String|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"msg_alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L7"},"def":{"name":"msg_alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message Alert Display\", text: text, title: title, duration: duration)\n"}},{"html_id":"msg_alert_clear-instance-method","name":"msg_alert_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L6"},"def":{"name":"msg_alert_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"msg_prompt(text:String,options:Array(JSON::Any::Type),title:String|Nil=nil,feedback_id:String|Nil=nil,duration:Int64|Nil=nil)-instance-method","name":"msg_prompt","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"args_string":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","args_html":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L14"},"def":{"name":"msg_prompt","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"option_map = {} of String => JSON::Any::Type\n(\"Option.1\"..\"Option.5\").each_with_index do |key, i|\n if i >= options.size\n break\n end\n option_map[key] = options[i]\nend\nxcommand(\"UserInterface Message Prompt Display\", hash_args: Hash(String, JSON::Any::Type) {\"text\" => text, \"title\" => title, \"feedback_id\" => feedback_id, \"duration\" => duration}.merge(option_map))\n"}},{"html_id":"msg_prompt_clear-instance-method","name":"msg_prompt_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L12"},"def":{"name":"msg_prompt_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Prompt Clear\")"}},{"html_id":"msg_text(text:String,feedback_id:String,title:String|Nil=nil,duration:Int32|Nil=nil,input_type:TextInputType|Nil=nil,keyboard_state:TextKeyboardState|Nil=nil,place_holder:String|Nil=nil,submit_text:String|Nil=nil)-instance-method","name":"msg_text","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"args_string":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","args_html":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L45"},"def":{"name":"msg_text","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message TextInput Display\", text: text, feedback_id: feedback_id, title: title, duration: duration, input_type: input_type, keyboard_state: keyboard_state, place_holder: place_holder, submit_text: submit_text)\n"}},{"html_id":"msg_text_clear-instance-method","name":"msg_text_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L44"},"def":{"name":"msg_text_clear","visibility":"Public","body":"xcommand(\"UserInterface Message TextInput Clear\")"}},{"html_id":"ui_extensions_clear-instance-method","name":"ui_extensions_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L73"},"def":{"name":"ui_extensions_clear","visibility":"Public","body":"xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"ui_extensions_deploy(id:String,xml_def:String)-instance-method","name":"ui_extensions_deploy","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L65"},"def":{"name":"ui_extensions_deploy","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface Extensions Set\", xml_def, config_id: id)"}},{"html_id":"ui_extensions_list-instance-method","name":"ui_extensions_list","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L69"},"def":{"name":"ui_extensions_list","visibility":"Public","body":"xcommand(\"UserInterface Extensions List\")"}},{"html_id":"ui_set_value(widget:String,value:JSON::Any::Type|Nil=nil)-instance-method","name":"ui_set_value","abstract":false,"args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"args_string":"(widget : String, value : JSON::Any::Type | Nil = nil)","args_html":"(widget : String, value : JSON::Any::Type | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L55"},"def":{"name":"ui_set_value","args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"visibility":"Public","body":"if value.nil?\n xcommand(\"UserInterface Extensions Widget UnsetValue\", widget_id: widget)\nelse\n xcommand(\"UserInterface Extensions Widget SetValue\", value: value, widget_id: widget)\nend"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextInputType","path":"Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextInputType","name":"TextInputType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L32"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SingleLine","name":"SingleLine","value":"0"},{"id":"Numeric","name":"Numeric","value":"1"},{"id":"Password","name":"Password","value":"2"},{"id":"PIN","name":"PIN","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"numeric?-instance-method","name":"numeric?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L34"},"def":{"name":"numeric?","visibility":"Public","body":"self == Numeric"}},{"html_id":"password?-instance-method","name":"password?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L35"},"def":{"name":"password?","visibility":"Public","body":"self == Password"}},{"html_id":"pin?-instance-method","name":"pin?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L36"},"def":{"name":"pin?","visibility":"Public","body":"self == PIN"}},{"html_id":"single_line?-instance-method","name":"single_line?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L33"},"def":{"name":"single_line?","visibility":"Public","body":"self == SingleLine"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState","path":"Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextKeyboardState","name":"TextKeyboardState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L39"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L41"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/ui_extensions.cr#L40"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","path":"Cisco/CollaborationEndpoint/XAPI.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L3"},{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOL_OR","name":"BOOL_OR","value":"->(term : String) do\n ->(val : String) do\n val == term ? term : BOOLEAN.call(val)\n end\nend"},{"id":"BOOLEAN","name":"BOOLEAN","value":"->(val : String) do\n TRUTHY.includes?(val.downcase)\nend"},{"id":"COMMAND_RESPONSE","name":"COMMAND_RESPONSE","value":"Regex.union(INVALID_COMMAND, SUCCESS)"},{"id":"FALSEY","name":"FALSEY","value":"{\"false\", \"unavailable\", \"off\", \"inactive\"}"},{"id":"INVALID_COMMAND","name":"INVALID_COMMAND","value":"/(?<=Command not recognized\\.)[\\r\\n]+/","doc":"Regexp's for tokenizing the xAPI command and response structure.","summary":"

Regexp's for tokenizing the xAPI command and response structure.

"},{"id":"LOGIN_COMPLETE","name":"LOGIN_COMPLETE","value":"/Login successful/"},{"id":"PARSERS","name":"PARSERS","value":"{\"TTPAR_OnOff\" => BOOLEAN, \"TTPAR_OnOffAuto\" => BOOL_OR.call(\"Auto\"), \"TTPAR_OnOffCurrent\" => BOOL_OR.call(\"Current\"), \"TTPAR_MuteEnabled\" => BOOLEAN}"},{"id":"SUCCESS","name":"SUCCESS","value":"/(?<=OK)[\\r\\n]+/"},{"id":"TRUTHY","name":"TRUTHY","value":"{\"true\", \"available\", \"standby\", \"on\", \"active\"}"}],"including_types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"class_methods":[{"html_id":"create_action(__action__:ActionType,*args,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,priority:Int32|Nil=nil,**kwargs)-class-method","name":"create_action","doc":"Serialize an xAPI action into transmittable command.","summary":"

Serialize an xAPI action into transmittable command.

","abstract":false,"args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"args_string":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","args_html":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L45"},"def":{"name":"create_action","args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":1,"visibility":"Public","body":"[__action__.to_s.camelcase(lower: true), args.compact_map(&.to_s), hash_args.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend, kwargs.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend.to_a.compact!].flatten.join(\" \")"}},{"html_id":"parse(data:String)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L31"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"(JSON.parse(data)).as_h.flatten_xapi_json"}},{"html_id":"tokenize(path:String)-class-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L101"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split(/[\\s\\/\\\\]/)).reject(&.empty?)"}},{"html_id":"value_convert(value:String,valuespace:String|Nil=nil)-class-method","name":"value_convert","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"args_string":"(value : String, valuespace : String | Nil = nil)","args_html":"(value : String, valuespace : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L15"},"def":{"name":"value_convert","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"begin\n parser = PARSERS[valuespace]?\n if parser\n else\n return value.to_i64\n end\n parser.call(value)\nrescue\n check = value.downcase\n if check.in?(TRUTHY)\n true\n else\n if check.in?(FALSEY)\n false\n else\n value\n end\n end\nend"}},{"html_id":"xcommand(path:String,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-class-method","name":"xcommand","doc":"Serialize an xCommand into transmittable command.","summary":"

Serialize an xCommand into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L71"},"def":{"name":"xcommand","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"create_action(ActionType::XCommand, path, **kwargs.merge({hash_args: hash_args}))"}},{"html_id":"xconfiguration(path:String,setting:String,value:JSON::Any::Type)-class-method","name":"xconfiguration","doc":"Serialize an xConfiguration action into a transmittable command.","summary":"

Serialize an xConfiguration action into a transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"args_string":"(path : String, setting : String, value : JSON::Any::Type)","args_html":"(path : String, setting : String, value : JSON::Any::Type)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L80"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"visibility":"Public","body":"create_action(ActionType::XConfiguration, path, hash_args: {setting => value})"}},{"html_id":"xfeedback(action:FeedbackAction,path:String|Nil=nil)-class-method","name":"xfeedback","doc":"Serialize a xFeedback subscription request.","summary":"

Serialize a xFeedback subscription request.

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"args_string":"(action : FeedbackAction, path : String | Nil = nil)","args_html":"(action : FeedbackAction, path : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L92"},"def":{"name":"xfeedback","args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"visibility":"Public","body":"if path\n xpath = tokenize(path)\n create_action(ActionType::XFeedback, action, \"/#{xpath.join('/')}\")\nelse\n create_action(ActionType::XFeedback, action)\nend"}},{"html_id":"xstatus(path:String)-class-method","name":"xstatus","doc":"Serialize an xStatus request into transmittable command.","summary":"

Serialize an xStatus request into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L87"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"create_action(ActionType::XStatus, path)"}}],"macros":[{"html_id":"command(cmd_name,**params)-macro","name":"command","abstract":false,"args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"args_string":"(cmd_name, **params)","args_html":"(cmd_name, **params)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L106"},"def":{"name":"command","args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":" \n{% for cmd, name in cmd_name %}\n def {{ name.id }}(\n {% for param, klass in params %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {% if klass.is_a?(RangeLiteral) %}\n {{ param.id }} : Int32{% if optional %}? = nil{% end %},\n {% else %}\n {{ param.id }} : {{ klass }}{% if optional %}? = nil{% end %},\n {% end %}\n {% end %}\n )\n {% for param, klass in params %}\n {% if klass.is_a?(RangeLiteral) %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n {% if optional %} if {{ param.id }}{% end %}\n raise ArgumentError.new(\"#{ {{ param.stringify }} } must be within #{ {{ klass }} }, was #{ {{ param.id }} }\") unless ({{ klass }}).includes?({{ param.id }})\n {% if optional %}end{% end %}\n {% end %}\n {% end %}\n\n # send the command\n xcommand(\n {{ cmd }},\n {% for param, klass in params %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {{ param.id }}: {{ param.id }},\n {% end %}\n )\n end\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/ActionType","path":"Cisco/CollaborationEndpoint/XAPI/ActionType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::ActionType","name":"ActionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L29"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"XConfiguration","name":"XConfiguration","value":"0"},{"id":"XCommand","name":"XCommand","value":"1"},{"id":"XStatus","name":"XStatus","value":"2"},{"id":"XFeedback","name":"XFeedback","value":"3"},{"id":"XPreferences","name":"XPreferences","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"x_command?-instance-method","name":"x_command?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L31"},"def":{"name":"x_command?","visibility":"Public","body":"self == XCommand"}},{"html_id":"x_configuration?-instance-method","name":"x_configuration?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L30"},"def":{"name":"x_configuration?","visibility":"Public","body":"self == XConfiguration"}},{"html_id":"x_feedback?-instance-method","name":"x_feedback?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L33"},"def":{"name":"x_feedback?","visibility":"Public","body":"self == XFeedback"}},{"html_id":"x_preferences?-instance-method","name":"x_preferences?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L34"},"def":{"name":"x_preferences?","visibility":"Public","body":"self == XPreferences"}},{"html_id":"x_status?-instance-method","name":"x_status?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L32"},"def":{"name":"x_status?","visibility":"Public","body":"self == XStatus"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/FeedbackAction","path":"Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::FeedbackAction","name":"FeedbackAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L37"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Register","name":"Register","value":"0"},{"id":"Deregister","name":"Deregister","value":"1"},{"id":"DeregisterAll","name":"DeregisterAll","value":"2"},{"id":"List","name":"List","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"deregister?-instance-method","name":"deregister?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L39"},"def":{"name":"deregister?","visibility":"Public","body":"self == Deregister"}},{"html_id":"deregister_all?-instance-method","name":"deregister_all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L40"},"def":{"name":"deregister_all?","visibility":"Public","body":"self == DeregisterAll"}},{"html_id":"list?-instance-method","name":"list?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L41"},"def":{"name":"list?","visibility":"Public","body":"self == List"}},{"html_id":"register?-instance-method","name":"register?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/xapi.cr#L38"},"def":{"name":"register?","visibility":"Public","body":"self == Register"}}]}]}]},{"html_id":"drivers/Cisco/DNASpaces","path":"Cisco/DNASpaces.html","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L9"},{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IOT_SENSORS","name":"IOT_SENSORS","value":"{SensorType::Presence, SensorType::PeopleCount, SensorType::Humidity, SensorType::AirQuality, SensorType::SoundPressure, SensorType::Temperature}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate-instance-method","name":"activate","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L98"},"def":{"name":"activate","visibility":"Public","body":"if @activation_token.empty?\n return\nend\nresponse = get(\"/client/v1/partner/partnerPublicKey/\")\nif response.success?\nelse\n raise(\"failed to obtain partner public key, code #{response.status_code}\")\nend\nlogger.debug do\n \"public key requested: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: Array(ActivactionPublicKey)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining partner public key: #{payload[:message]}\")\nend\npublic_key = payload[:data][0].public_key\npayload, header = JWT.decode(@activation_token, public_key, JWT::Algorithm::RS256, @verify_activation_key)\napp_id = payload[\"appId\"].as_s\nref_id = payload[\"activationRefId\"].as_s\ntenant_id = payload[\"tenantId\"].as_i64.to_s\nresponse = post(\"/client/v1/partner/activateOnPremiseApp\", headers: {\"Content-Type\" => \"application/json\", \"Authorization\" => \"Bearer #{@activation_token}\"}, body: {appId: app_id, activationRefId: ref_id}.to_json)\nif response.success?\nelse\n raise(\"failed to obtain API key, code #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"application activated: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: NamedTuple(apiKey: String)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining API key: #{payload[:message]}\")\nend\napi_key = payload[:data][:apiKey]\nlogger.debug do\n \"saving API key: #{tenant_id}, #{api_key}\"\nend\ndefine_setting(:tenant_id, tenant_id)\ndefine_setting(:dna_spaces_api_key, api_key)\ndefine_setting(:dna_spaces_activation_key, \"\")\nlogger.debug do\n \"settings saved! Starting stream\"\nend\n@api_key = api_key\n@tenant_id = tenant_id\n@description_lock.synchronize do\n if !@streaming\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":530,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L530"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"if location = locate_mac(mac_address)\n {location: \"wireless\", assigned_to: format_username(location.raw_user_id), mac_address: format_mac(mac_address)}\nend"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L241"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago.to_unix\nremove_keys = [] of String\nlocations do |locs|\n locs.each do |mac, location|\n if location.last_seen < old\n remove_keys << mac\n end\n end\n remove_keys.each do |mac|\n locs.delete(mac)\n end\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L541"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of Nil\nend\nfloors = [] of String\nadjustments = {} of String => Tuple(Float64, Float64, Float64, Float64)\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n offset_x = (data[\"offset_x\"]? || 0.0).as(Float64)\n offset_y = (data[\"offset_y\"]? || 0.0).as(Float64)\n map_width = (data[\"map_width\"]? || -1.0).as(Float64)\n map_height = (data[\"map_height\"]? || -1.0).as(Float64)\n adjustments[floor_id] = {offset_x, offset_y, map_width, map_height}\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of Nil\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago.to_unix\nmatching = locations(&.compact_map do |mac, loc|\n if loc.last_seen < oldest_location\n too_old = too_old + 1\n next\n end\n if (floors & loc.location_mappings.values).empty?\n wrong_floor = wrong_floor + 1\n next\n end\n loc.device.mac_address = mac\n loc\nend)\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.map_id).flat_map do |map_id, locations|\n map_width = -1.0\n map_height = -1.0\n offset_x = 0.0\n offset_y = 0.0\n locations.first.location_mappings.each_value do |location_id|\n if level_data = adjustments[location_id]?\n offset_x, offset_y, map_width, map_height = level_data\n break\n end\n end\n if (map_width == -1.0) || (map_height == -1.0)\n if map_size = get_map_details(map_id)\n map_width = map_width > -1.0 ? map_width : (map_size.length - offset_x)\n map_height = map_height > -1.0 ? map_height : (map_size.width - offset_y)\n end\n end\n locations.compact_map do |loc|\n if loc.is_a?(WebexTelemetryUpdate)\n next\n end\n lat = loc.latitude\n lon = loc.longitude\n {location: :wireless, coordinates_from: \"top-left\", x: loc.x_pos - offset_x, y: loc.y_pos - offset_y, lon: lon, lat: lat, s2_cell_id: ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, mac: loc.device.mac_address, variance: loc.unc, last_seen: loc.last_seen, map_width: map_width, map_height: map_height, ssid: loc.ssid, manufacturer: loc.device.manufacturer, os: loc.device.os}\n end\nend\n"}},{"html_id":"devices(&)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L191"},"def":{"name":"devices","yields":1,"block_arity":1,"visibility":"Public","body":"@dev_lock.synchronize do\n yield @devices\nend"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":632,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L632"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L636"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_location_info(location_id:String)-instance-method","name":"get_location_info","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L165"},"def":{"name":"get_location_info","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/partners/v1/locations/#{location_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain location id #{location_id}, code #{response.status_code}\")\nend\nLocationInfo.from_json(response.body.not_nil!)\n"}},{"html_id":"get_map_details(map_id:String)-instance-method","name":"get_map_details","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L223"},"def":{"name":"get_map_details","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"map = @map_lock.synchronize do\n @map_details[map_id]?\nend\nif !map\n response = get(\"/api/partners/v1/maps/#{map_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\n if !response.success?\n message = \"failed to obtain map id #{map_id}, code #{response.status_code}\"\n logger.warn do\n message\n end\n return nil\n end\n map = (MapInfo.from_json(response.body.not_nil!)).dimension\n @map_lock.synchronize do\n @map_details[map_id] = map\n end\nend\nmap\n"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L213"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"MAC Locations: #{locations(&.keys)}\"\nend\n{tracking: locations(&.size), events_received: @events_received}\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L207"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"formatted_address = format_mac(address)\nlocations do |locs|\n locs[formatted_address]?\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"=============================\nLocatable interface\n=============================","summary":"

============================= Locatable interface =============================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L443"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"if macs = user_lookup(username.presence || email.presence.not_nil!)\n location_max_age = @max_location_age.ago.to_unix\n macs.compact_map do |mac|\n if location = locate_mac(mac)\n if location.is_a?(WebexTelemetryUpdate)\n next\n end\n if location.last_seen > location_max_age\n location.device.mac_address = mac\n location\n end\n end\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end.map do |location|\n lat = location.latitude\n lon = location.longitude\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"top-left\", \"x\" => location.x_pos, \"y\" => location.y_pos, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, \"mac\" => location.device.mac_address, \"variance\" => location.unc, \"last_seen\" => location.last_seen, \"dna_floor_id\" => location.map_id, \"ssid\" => location.ssid, \"manufacturer\" => location.device.manufacturer, \"os\" => location.device.os}\n map_width = 0.0\n map_height = 0.0\n offset_x = 0.0\n offset_y = 0.0\n location.location_mappings.each_value do |location_id|\n if level_data = @floorplan_mappings[location_id]?\n level_data.each do |key, value|\n case key\n when \"offset_x\"\n offset_x = value.as(Float64)\n loc[\"x\"] = location.x_pos - offset_x\n when \"offset_y\"\n offset_y = value.as(Float64)\n loc[\"y\"] = location.y_pos - offset_y\n when \"map_width\"\n map_width = value.as(Float64)\n when \"map_height\"\n map_height = value.as(Float64)\n else\n loc[key] = value\n end\n end\n break\n end\n end\n if map_width > 0.0 && map_height > 0.0\n loc[\"map_width\"] = map_width\n loc[\"map_height\"] = map_height\n else\n if map_size = get_map_details(location.map_id)\n loc[\"map_width\"] = map_width > 0.0 ? map_width : (map_size.length - offset_x)\n loc[\"map_height\"] = map_height > 0.0 ? map_height : (map_size.width - offset_y)\n end\n end\n loc\n end\nelse\n [] of Nil\nend"}},{"html_id":"locations(&)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L187"},"def":{"name":"locations","yields":1,"block_arity":1,"visibility":"Public","body":"@loc_lock.synchronize do\n yield @locations\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":525,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L525"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(user_lookup(username.presence || email.presence.not_nil!)).try(&.to_a) || ([] of String)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L48"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close\n@stream_active = false\nupdate_monitoring_status(running: false)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L65"},"def":{"name":"on_update","visibility":"Public","body":"@max_location_age = ((setting?(UInt32, :max_location_age)) || 10).minutes\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@debug_stream = (setting?(Bool, :debug_stream)) || false\n@verify_activation_key = (setting?(Bool, :verify_activation_key)) || false\nschedule.clear\nschedule.every(30.minutes) do\n cleanup_caches\nend\nschedule.every(5.minutes) do\n update_monitoring_status\nend\nschedule.in(5.seconds) do\n update_monitoring_status\nend\n@activation_token = (setting?(String, :dna_spaces_activation_key)) || \"\"\nif @activation_token.empty?\n @api_key = setting(String, :dna_spaces_api_key)\n @tenant_id = (setting(String | Int64, :tenant_id)).to_s\nelse\n @api_key = (setting?(String, :dna_spaces_api_key)) || \"\"\n @tenant_id = (setting?(String | Int64, :tenant_id)).try(&.to_s) || \"\"\n if @api_key.empty?\n schedule.in(5.seconds) do\n activate\n end\n end\nend\n@description_lock.synchronize do\n if !@streaming && !@api_key.empty?\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"seen_locations-instance-method","name":"seen_locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L177"},"def":{"name":"seen_locations","visibility":"Public","body":"@description_lock.synchronize do\n @location_descriptions.dup\nend"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L114"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nmac = format_mac(mac)\ndevice = devices do |dev|\n dev[mac]?\nend\nif device\nelse\n return nil\nend\nfilter = SensorType.parse(id)\ncase device\nin IotTelemetry, WebexTelemetryUpdate\n (to_sensors(nil, filter, device)).first?\nin DeviceLocationUpdate\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/sensor_interface.cr#L85"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nfilter = type ? SensorType.parse(type) : nil\nif filter && !(filter.in?(IOT_SENSORS))\n return NO_MATCH\nend\nif mac\n mac = format_mac(mac)\n device = devices do |dev|\n dev[mac]?\n end\n if device\n else\n return NO_MATCH\n end\n return case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\ndevice_values = devices(&.values)\ndevice_values.flat_map do |device|\n case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\n"}},{"html_id":"update_monitoring_status(running:Bool=true):Nil-instance-method","name":"update_monitoring_status","doc":"This provides the DNA Spaces dashboard with stream consumption status","summary":"

This provides the DNA Spaces dashboard with stream consumption status

","abstract":false,"args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"args_string":"(running : Bool = true) : Nil","args_html":"(running : Bool = true) : Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L647"},"def":{"name":"update_monitoring_status","args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = put(\"/api/partners/v1/monitoring/status\", headers: {\"Content-Type\" => \"application/json\", \"X-API-KEY\" => @api_key}, body: {data: {overallStatus: {status: running ? \"up\" : \"down\", notices: [] of Nil}, instanceDetails: {ipAddress: \"\", instanceId: module_id}, cloudFirehose: {status: @stream_active ? \"connected\" : \"disconnected\", lastReceived: @last_received}, localFirehose: {status: \"disconnected\", lastReceived: 0}, subsystems: [] of Nil}}.to_json)\nif response.success?\nelse\n raise(\"failed to update status, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"user_lookup(&)-instance-method","name":"user_lookup","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L198"},"def":{"name":"user_lookup","yields":1,"block_arity":1,"visibility":"Public","body":"@user_loc.synchronize do\n yield @user_lookup\nend"}},{"html_id":"user_lookup(user_id:String)-instance-method","name":"user_lookup","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L202"},"def":{"name":"user_lookup","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"formatted_user = format_username(user_id)\nuser_lookup do |lookup|\n lookup[formatted_user]?\nend\n"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/ActivactionPublicKey","path":"Cisco/DNASpaces/ActivactionPublicKey.html","kind":"class","full_name":"Cisco::DNASpaces::ActivactionPublicKey","name":"ActivactionPublicKey","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"public_key-instance-method","name":"public_key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L11"},"def":{"name":"public_key","visibility":"Public","body":"\"-----BEGIN PUBLIC KEY-----\\n#{@public_key}\\n-----END PUBLIC KEY-----\\n\""}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/activation_publickey.cr#L6"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivaction","path":"Cisco/DNASpaces/AppActivaction.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivaction","name":"AppActivaction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance_name:String-instance-method","name":"instance_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L20"},"def":{"name":"instance_name","return_type":"String","visibility":"Public","body":"@instance_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L13"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"reference_id:String-instance-method","name":"reference_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L17"},"def":{"name":"reference_id","return_type":"String","visibility":"Public","body":"@reference_id"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L10"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/app_activaction.cr#L7"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","path":"Cisco/DNASpaces/AppActivactionWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L109"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L110"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:AppActivaction-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L113"},"def":{"name":"payload","return_type":"AppActivaction","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/BlePayload","path":"Cisco/DNASpaces/BlePayload.html","kind":"class","full_name":"Cisco::DNASpaces::BlePayload","name":"BlePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data","return_type":"String","visibility":"Public","body":"@data"}},{"html_id":"data=(data:String)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"@data = data"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdate","path":"Cisco/DNASpaces/BleRssiUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdate","name":"BleRssiUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L48"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"notification:RssiNotification-instance-method","name":"notification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L47"},"def":{"name":"notification","return_type":"RssiNotification","visibility":"Public","body":"@notification"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","path":"Cisco/DNASpaces/BleRssiUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L123"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L123"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L124"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:BleRssiUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L127"},"def":{"name":"payload","return_type":"BleRssiUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Device","path":"Cisco/DNASpaces/Device.html","kind":"class","full_name":"Cisco::DNASpaces::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L7"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"email-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L16"},"def":{"name":"email","visibility":"Public","body":"@email.try(&.downcase)"}},{"html_id":"email_raw:String?-instance-method","name":"email_raw","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L20"},"def":{"name":"email_raw","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L27"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L24"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L30"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L42"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L13"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L43"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os_version:String|Nil-instance-method","name":"os_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L46"},"def":{"name":"os_version","return_type":"String | ::Nil","visibility":"Public","body":"@os_version"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L33"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L12"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L47"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCount","path":"Cisco/DNASpaces/DeviceCount.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCount","name":"DeviceCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"associated_count:Int32-instance-method","name":"associated_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L9"},"def":{"name":"associated_count","return_type":"Int32","visibility":"Public","body":"@associated_count"}},{"html_id":"estimated_capacity_percentage:Float64-instance-method","name":"estimated_capacity_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L21"},"def":{"name":"estimated_capacity_percentage","return_type":"Float64","visibility":"Public","body":"@estimated_capacity_percentage"}},{"html_id":"estimated_density:Float64-instance-method","name":"estimated_density","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L18"},"def":{"name":"estimated_density","return_type":"Float64","visibility":"Public","body":"@estimated_density"}},{"html_id":"estimated_probing_count:Int32-instance-method","name":"estimated_probing_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L12"},"def":{"name":"estimated_probing_count","return_type":"Int32","visibility":"Public","body":"@estimated_probing_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L6"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"probing_randomized_percentage:Float64-instance-method","name":"probing_randomized_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_count.cr#L15"},"def":{"name":"probing_randomized_percentage","return_type":"Float64","visibility":"Public","body":"@probing_randomized_percentage"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","path":"Cisco/DNASpaces/DeviceCountWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L116"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L117"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceCount-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L120"},"def":{"name":"payload","return_type":"DeviceCount","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntry","path":"Cisco/DNASpaces/DeviceEntry.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntry","name":"DeviceEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"days_sinc_last_visit:Int32-instance-method","name":"days_sinc_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L25"},"def":{"name":"days_sinc_last_visit","return_type":"Int32","visibility":"Public","body":"@days_sinc_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L22"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L16"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L13"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L19"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_entry.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","path":"Cisco/DNASpaces/DeviceEntryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L53"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L54"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceEntry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L57"},"def":{"name":"payload","return_type":"DeviceEntry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExit","path":"Cisco/DNASpaces/DeviceExit.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExit","name":"DeviceExit","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L34"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L22"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L19"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L28"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L25"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L31"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L37"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L16"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_exit.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","path":"Cisco/DNASpaces/DeviceExitWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L60"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L61"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceExit-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L64"},"def":{"name":"payload","return_type":"DeviceExit","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdate","path":"Cisco/DNASpaces/DeviceLocationUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdate","name":"DeviceLocationUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L33"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L21"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L38"},"def":{"name":"has_position?","visibility":"Public","body":"true"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L34"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L46"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L35"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L12"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L9"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L36"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"@unc"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L15"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L27"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_location_update.cr#L30"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","path":"Cisco/DNASpaces/DeviceLocationUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L82"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceLocationUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L85"},"def":{"name":"payload","return_type":"DeviceLocationUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresence","path":"Cisco/DNASpaces/DevicePresence.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresence","name":"DevicePresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_devices_count:Int32-instance-method","name":"active_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L50"},"def":{"name":"active_devices_count","return_type":"Int32","visibility":"Public","body":"@active_devices_count"}},{"html_id":"days_since_last_visit:Int32-instance-method","name":"days_since_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L23"},"def":{"name":"days_since_last_visit","return_type":"Int32","visibility":"Public","body":"@days_since_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L11"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L44"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L29"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L26"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_date_time:String-instance-method","name":"exit_date_time","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L35"},"def":{"name":"exit_date_time","return_type":"String","visibility":"Public","body":"@exit_date_time"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L32"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_devices_count:Int32-instance-method","name":"inactive_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L53"},"def":{"name":"inactive_devices_count","return_type":"Int32","visibility":"Public","body":"@inactive_devices_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L12"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L7"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L17"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L14"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L41"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L47"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L38"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L20"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/device_presence.cr#L10"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","path":"Cisco/DNASpaces/DevicePresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L96"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DevicePresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L99"},"def":{"name":"payload","return_type":"DevicePresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Dimension","path":"Cisco/DNASpaces/Dimension.html","kind":"class","full_name":"Cisco::DNASpaces::Dimension","name":"Dimension","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L8"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L6"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"offset_x:Float64-instance-method","name":"offset_x","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L11"},"def":{"name":"offset_x","return_type":"Float64","visibility":"Public","body":"@offset_x"}},{"html_id":"offset_y:Float64-instance-method","name":"offset_y","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L14"},"def":{"name":"offset_y","return_type":"Float64","visibility":"Public","body":"@offset_y"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L7"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/Cisco/DNASpaces/Events","path":"Cisco/DNASpaces/Events.html","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper"},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive"},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper"},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is used to map the various events into a simpler data structure","summary":"

This is used to map the various events into a simpler data structure

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"event type hint","summary":"

event type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"eventType\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'eventType' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'eventType'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"KEEP_ALIVE\"\n KeepAlive.from_json(json)\nwhen \"DEVICE_ENTRY\"\n DeviceEntryWrapper.from_json(json)\nwhen \"DEVICE_EXIT\"\n DeviceExitWrapper.from_json(json)\nwhen \"PROFILE_UPDATE\"\n ProfileUpdateWrapper.from_json(json)\nwhen \"LOCATION_CHANGE\"\n LocationChangeWrapper.from_json(json)\nwhen \"DEVICE_LOCATION_UPDATE\"\n DeviceLocationUpdateWrapper.from_json(json)\nwhen \"TP_PEOPLE_COUNT_UPDATE\"\n PeopleCountUpdateWrapper.from_json(json)\nwhen \"DEVICE_PRESENCE\"\n DevicePresenceWrapper.from_json(json)\nwhen \"USER_PRESENCE\"\n UserPresenceWrapper.from_json(json)\nwhen \"APP_ACTIVATION\"\n AppActivactionWrapper.from_json(json)\nwhen \"DEVICE_COUNT\"\n DeviceCountWrapper.from_json(json)\nwhen \"BLE_RSSI_UPDATE\"\n BleRssiUpdateWrapper.from_json(json)\nwhen \"IOT_TELEMETRY\"\n IotTelemetryWrapper.from_json(json)\nwhen \"WEBEX_TELEMETRY\"\n WebexTelemetryUpdateWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'eventType' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L42"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"record_timestamp:Int64-instance-method","name":"record_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L33"},"def":{"name":"record_timestamp","return_type":"Int64","visibility":"Public","body":"@record_timestamp"}},{"html_id":"record_uid:String-instance-method","name":"record_uid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L30"},"def":{"name":"record_uid","return_type":"String","visibility":"Public","body":"@record_uid"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L36"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L39"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotDeviceInfo","path":"Cisco/DNASpaces/IotDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::IotDeviceInfo","name":"IotDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"device_name=(device_name:String)-instance-method","name":"device_name=","abstract":false,"args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"args_string":"(device_name : String)","args_html":"(device_name : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name=","args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"visibility":"Public","body":"@device_name = device_name"}},{"html_id":"firmware_version:String-instance-method","name":"firmware_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version","return_type":"String","visibility":"Public","body":"@firmware_version"}},{"html_id":"firmware_version=(firmware_version:String)-instance-method","name":"firmware_version=","abstract":false,"args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"args_string":"(firmware_version : String)","args_html":"(firmware_version : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version=","args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"visibility":"Public","body":"@firmware_version = firmware_version"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer","return_type":"String","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"args_string":"(manufacturer : String)","args_html":"(manufacturer : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L26"},"def":{"name":"os","visibility":"Public","body":"type"}},{"html_id":"raw_id:String-instance-method","name":"raw_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id","return_type":"String","visibility":"Public","body":"@raw_id"}},{"html_id":"raw_id=(raw_id:String)-instance-method","name":"raw_id=","abstract":false,"args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"args_string":"(raw_id : String)","args_html":"(raw_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id=","args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"visibility":"Public","body":"@raw_id = raw_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotPosition","path":"Cisco/DNASpaces/IotPosition.html","kind":"class","full_name":"Cisco::DNASpaces::IotPosition","name":"IotPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L32"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L44"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L45"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L46"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"time_located:Int64-instance-method","name":"time_located","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located","return_type":"Int64","visibility":"Public","body":"@time_located"}},{"html_id":"time_located=(time_located:Int64)-instance-method","name":"time_located=","abstract":false,"args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"args_string":"(time_located : Int64)","args_html":"(time_located : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located=","args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"visibility":"Public","body":"@time_located = time_located"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L38"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L41"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetry","path":"Cisco/DNASpaces/IotTelemetry.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetry","name":"IotTelemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_pressure-instance-method","name":"air_pressure","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L165"},"def":{"name":"air_pressure","visibility":"Public","body":"if pressure = @air_pressure_actual\n pressure[:pressure]\nend"}},{"html_id":"air_pressure_actual:NamedTuple(pressure:Float64)|Nil-instance-method","name":"air_pressure_actual","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L127"},"def":{"name":"air_pressure_actual","return_type":"NamedTuple(pressure: Float64) | ::Nil","visibility":"Public","body":"@air_pressure_actual"}},{"html_id":"air_quality-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L147"},"def":{"name":"air_quality","visibility":"Public","body":"if index = @air_quality_index\n index[:airQualityIndex]\nend"}},{"html_id":"air_quality_index:NamedTuple(airQualityIndex:Float64)|Nil-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L118"},"def":{"name":"air_quality_index","return_type":"NamedTuple(airQualityIndex: Float64) | ::Nil","visibility":"Public","body":"@air_quality_index"}},{"html_id":"ambient_noise-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L143"},"def":{"name":"ambient_noise","visibility":"Public","body":"tele_presence_data.try(&.ambient_noise)"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L177"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .humidity?\n \"#{mac}->humidity->humidityInPercentage\"\nwhen .air_quality?\n \"#{mac}->airQuality->airQualityIndex\"\nwhen .people_count?\n \"#{mac}->tpData->peopleCount\"\nwhen .temperature?\n \"#{mac}->temperature->temperatureInCelsius\"\nend"}},{"html_id":"confidence_factor(*args,**options)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.confidence_factor(*args, **options)"}},{"html_id":"confidence_factor(*args,**options,&)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.confidence_factor(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"detected_position:IotPosition|Nil-instance-method","name":"detected_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L98"},"def":{"name":"detected_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@detected_position"}},{"html_id":"device:IotDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L95"},"def":{"name":"device","return_type":"IotDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device_rtc:Int64-instance-method","name":"device_rtc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L106"},"def":{"name":"device_rtc","return_type":"Int64","visibility":"Public","body":"@device_rtc"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L204"},"def":{"name":"has_position?","visibility":"Public","body":"!!(@detected_position || @placed_position)"}},{"html_id":"humidity-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L159"},"def":{"name":"humidity","visibility":"Public","body":"if humidity = @humidity_percent\n humidity[:humidityInPercentage]\nend"}},{"html_id":"humidity_percent:NamedTuple(humidityInPercentage:Float64)|Nil-instance-method","name":"humidity_percent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L124"},"def":{"name":"humidity_percent","return_type":"NamedTuple(humidityInPercentage: Float64) | ::Nil","visibility":"Public","body":"@humidity_percent"}},{"html_id":"last_seen-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L228"},"def":{"name":"last_seen","visibility":"Public","body":"tele_presence_data.try(&.time_stamp) || (has_position? ? position.time_located : device_rtc)"}},{"html_id":"last_seen=(time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":""}],"args_string":"(time)","args_html":"(time)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L232"},"def":{"name":"last_seen=","args":[{"name":"time","external_name":"time","restriction":""}],"visibility":"Public","body":"if tele_data = tele_presence_data\n tele_data.time_stamp = time\nelse\n if has_position?\n position.time_located = time\n else\n @device_rtc = time\n end\nend\ntime\n"}},{"html_id":"latitude(*args,**options)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.latitude(*args, **options)"}},{"html_id":"latitude(*args,**options,&)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.latitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L103"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L194"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude(*args,**options)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.longitude(*args, **options)"}},{"html_id":"longitude(*args,**options,&)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.longitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id(*args,**options)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.map_id(*args, **options)"}},{"html_id":"map_id(*args,**options,&)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.map_id(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id=(id)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L220"},"def":{"name":"map_id=","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"position.map_id = id"}},{"html_id":"people_count-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L135"},"def":{"name":"people_count","visibility":"Public","body":"tele_presence_data.try(&.people_count)"}},{"html_id":"pir_trigger:NamedTuple(timestamp:Int64)|Nil-instance-method","name":"pir_trigger","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L130"},"def":{"name":"pir_trigger","return_type":"NamedTuple(timestamp: Int64) | ::Nil","visibility":"Public","body":"@pir_trigger"}},{"html_id":"pir_triggered-instance-method","name":"pir_triggered","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L171"},"def":{"name":"pir_triggered","visibility":"Public","body":"if pir_trigger = @pir_trigger\n pir_trigger[:timestamp]\nend"}},{"html_id":"placed_position:IotPosition|Nil-instance-method","name":"placed_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L101"},"def":{"name":"placed_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@placed_position"}},{"html_id":"position:IotPosition-instance-method","name":"position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L208"},"def":{"name":"position","return_type":"IotPosition","visibility":"Public","body":"(@detected_position || @placed_position).not_nil!"}},{"html_id":"presence-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L139"},"def":{"name":"presence","visibility":"Public","body":"tele_presence_data.try(&.presence)"}},{"html_id":"raw_header:Int64-instance-method","name":"raw_header","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L109"},"def":{"name":"raw_header","return_type":"Int64","visibility":"Public","body":"@raw_header"}},{"html_id":"raw_payload:String-instance-method","name":"raw_payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L112"},"def":{"name":"raw_payload","return_type":"String","visibility":"Public","body":"@raw_payload"}},{"html_id":"raw_user_id-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L243"},"def":{"name":"raw_user_id","visibility":"Public","body":"\"\""}},{"html_id":"sequence_num:Int64-instance-method","name":"sequence_num","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L115"},"def":{"name":"sequence_num","return_type":"Int64","visibility":"Public","body":"@sequence_num"}},{"html_id":"ssid-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L251"},"def":{"name":"ssid","visibility":"Public","body":"\"IoT\""}},{"html_id":"tele_presence_data:TpData|Nil-instance-method","name":"tele_presence_data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L133"},"def":{"name":"tele_presence_data","return_type":"TpData | ::Nil","visibility":"Public","body":"@tele_presence_data"}},{"html_id":"temperature-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L153"},"def":{"name":"temperature","visibility":"Public","body":"if temp = @temperature_celsius\n temp[:temperatureInCelsius]\nend"}},{"html_id":"temperature_celsius:NamedTuple(temperatureInCelsius:Float64)|Nil-instance-method","name":"temperature_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L121"},"def":{"name":"temperature_celsius","return_type":"NamedTuple(temperatureInCelsius: Float64) | ::Nil","visibility":"Public","body":"@temperature_celsius"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L247"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"3.0"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L224"},"def":{"name":"visit_id","visibility":"Public","body":"\"unknown for IoT\""}},{"html_id":"x_pos(*args,**options)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.x_pos(*args, **options)"}},{"html_id":"x_pos(*args,**options,&)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.x_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"y_pos(*args,**options)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.y_pos(*args, **options)"}},{"html_id":"y_pos(*args,**options,&)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.y_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","path":"Cisco/DNASpaces/IotTelemetryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L131"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:IotTelemetry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L134"},"def":{"name":"payload","return_type":"IotTelemetry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","path":"Cisco/DNASpaces/KeepAlive.html","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L46"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L48"},"def":{"name":"payload","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/Location","path":"Cisco/DNASpaces/Location.html","kind":"class","full_name":"Cisco::DNASpaces::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"descriptions(mappings={}ofString=>String)-instance-method","name":"descriptions","doc":"Maps location_ids to location names","summary":"

Maps location_ids to location names

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L25"},"def":{"name":"descriptions","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.descriptions(mappings))\nmappings[location_id] = name\nmappings\n"}},{"html_id":"details(mappings={}ofString=>String)-instance-method","name":"details","doc":"Maps tag names to location_ids","summary":"

Maps tag names to location_ids

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L18"},"def":{"name":"details","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.details(mappings))\ntags.each do |tag|\n mappings[tag] = location_id\nend\nmappings\n"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L7"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"parent:Location|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L15"},"def":{"name":"parent","return_type":"Location | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","doc":"TODO:: this might be better as an enum\nif there are only limited types","summary":"

TODO : this might be better as an enum if there are only limited types

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location.cr#L13"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange","path":"Cisco/DNASpaces/LocationChange.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_type:String-instance-method","name":"change_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L7"},"def":{"name":"change_type","return_type":"String","visibility":"Public","body":"@change_type"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L8"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/LocationChange/LocationDetails","path":"Cisco/DNASpaces/LocationChange/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L25"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L22"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L24"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L27"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L28"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"metadata:Array(Metadata)-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L30"},"def":{"name":"metadata","return_type":"Array(Metadata)","visibility":"Public","body":"@metadata"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L23"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L21"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange/Metadata","path":"Cisco/DNASpaces/LocationChange/Metadata.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L13"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"values:Array(String)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_change.cr#L14"},"def":{"name":"values","return_type":"Array(String)","visibility":"Public","body":"@values"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","path":"Cisco/DNASpaces/LocationChangeWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L74"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L75"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:LocationChange-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L78"},"def":{"name":"payload","return_type":"LocationChange","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationDetails","path":"Cisco/DNASpaces/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L12"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L9"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L11"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L14"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L15"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L10"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/location_details.cr#L7"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationInfo","path":"Cisco/DNASpaces/LocationInfo.html","kind":"class","full_name":"Cisco::DNASpaces::LocationInfo","name":"LocationInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L156"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L157"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:LocationDetails-instance-method","name":"details","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L162"},"def":{"name":"details","return_type":"LocationDetails","visibility":"Public","body":"@details"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces.cr#L159"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}]},{"html_id":"drivers/Cisco/DNASpaces/MapInfo","path":"Cisco/DNASpaces/MapInfo.html","kind":"class","full_name":"Cisco::DNASpaces::MapInfo","name":"MapInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dimension:Cisco::DNASpaces::Dimension-instance-method","name":"dimension","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L29"},"def":{"name":"dimension","return_type":"Cisco::DNASpaces::Dimension","visibility":"Public","body":"@dimension"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L21"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_height:Float64-instance-method","name":"image_height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L27"},"def":{"name":"image_height","return_type":"Float64","visibility":"Public","body":"@image_height"}},{"html_id":"image_width:Float64-instance-method","name":"image_width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/map_info.cr#L24"},"def":{"name":"image_width","return_type":"Float64","visibility":"Public","body":"@image_width"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdate","path":"Cisco/DNASpaces/PeopleCountUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdate","name":"PeopleCountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is triggered from telepresence devices","summary":"

This is triggered from telepresence devices

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L25"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L19"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L22"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L9"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L13"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L10"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L28"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L16"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L31"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"tp_device_id:String-instance-method","name":"tp_device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/people_count_update.cr#L8"},"def":{"name":"tp_device_id","return_type":"String","visibility":"Public","body":"@tp_device_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","path":"Cisco/DNASpaces/PeopleCountUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L88"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L89"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:PeopleCountUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L92"},"def":{"name":"payload","return_type":"PeopleCountUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","path":"Cisco/DNASpaces/ProfileUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L68"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:Device-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L71"},"def":{"name":"payload","return_type":"Device","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiMeasurement","path":"Cisco/DNASpaces/RssiMeasurement.html","kind":"class","full_name":"Cisco::DNASpaces::RssiMeasurement","name":"RssiMeasurement","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"antenna_id:Int32-instance-method","name":"antenna_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id","return_type":"Int32","visibility":"Public","body":"@antenna_id"}},{"html_id":"antenna_id=(antenna_id:Int32)-instance-method","name":"antenna_id=","abstract":false,"args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"args_string":"(antenna_id : Int32)","args_html":"(antenna_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id=","args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"visibility":"Public","body":"@antenna_id = antenna_id"}},{"html_id":"band_id:Int32-instance-method","name":"band_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id","return_type":"Int32","visibility":"Public","body":"@band_id"}},{"html_id":"band_id=(band_id:Int32)-instance-method","name":"band_id=","abstract":false,"args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"args_string":"(band_id : Int32)","args_html":"(band_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id=","args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"visibility":"Public","body":"@band_id = band_id"}},{"html_id":"if_slot_id:Int32-instance-method","name":"if_slot_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id","return_type":"Int32","visibility":"Public","body":"@if_slot_id"}},{"html_id":"if_slot_id=(if_slot_id:Int32)-instance-method","name":"if_slot_id=","abstract":false,"args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"args_string":"(if_slot_id : Int32)","args_html":"(if_slot_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id=","args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"visibility":"Public","body":"@if_slot_id = if_slot_id"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiNotification","path":"Cisco/DNASpaces/RssiNotification.html","kind":"class","full_name":"Cisco::DNASpaces::RssiNotification","name":"RssiNotification","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"measurements:Array(RssiMeasurement)-instance-method","name":"measurements","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements","return_type":"Array(RssiMeasurement)","visibility":"Public","body":"@measurements"}},{"html_id":"measurements=(measurements:Array(RssiMeasurement))-instance-method","name":"measurements=","abstract":false,"args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"args_string":"(measurements : Array(RssiMeasurement))","args_html":"(measurements : Array(RssiMeasurement))","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements=","args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"visibility":"Public","body":"@measurements = measurements"}},{"html_id":"payload:BlePayload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload","return_type":"BlePayload","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:BlePayload)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"args_string":"(payload : BlePayload)","args_html":"(payload : BlePayload)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"visibility":"Public","body":"@payload = payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/TpData","path":"Cisco/DNASpaces/TpData.html","kind":"class","full_name":"Cisco::DNASpaces::TpData","name":"TpData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"active_calls=(active_calls:Int32)-instance-method","name":"active_calls=","abstract":false,"args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"args_string":"(active_calls : Int32)","args_html":"(active_calls : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls=","args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"visibility":"Public","body":"@active_calls = active_calls"}},{"html_id":"air_quality_index:Float64-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index","return_type":"Float64","visibility":"Public","body":"@air_quality_index"}},{"html_id":"air_quality_index=(air_quality_index:Float64)-instance-method","name":"air_quality_index=","abstract":false,"args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"args_string":"(air_quality_index : Float64)","args_html":"(air_quality_index : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index=","args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"visibility":"Public","body":"@air_quality_index = air_quality_index"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_noise=(ambient_noise:Int32)-instance-method","name":"ambient_noise=","abstract":false,"args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"args_string":"(ambient_noise : Int32)","args_html":"(ambient_noise : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise=","args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"visibility":"Public","body":"@ambient_noise = ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"dryness_score=(dryness_score:Int32)-instance-method","name":"dryness_score=","abstract":false,"args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"args_string":"(dryness_score : Int32)","args_html":"(dryness_score : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score=","args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"visibility":"Public","body":"@dryness_score = dryness_score"}},{"html_id":"humidity_in_percentage:Float64-instance-method","name":"humidity_in_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage","return_type":"Float64","visibility":"Public","body":"@humidity_in_percentage"}},{"html_id":"humidity_in_percentage=(humidity_in_percentage:Float64)-instance-method","name":"humidity_in_percentage=","abstract":false,"args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"args_string":"(humidity_in_percentage : Float64)","args_html":"(humidity_in_percentage : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage=","args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"visibility":"Public","body":"@humidity_in_percentage = humidity_in_percentage"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"people_count=(people_count:Int32)-instance-method","name":"people_count=","abstract":false,"args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"args_string":"(people_count : Int32)","args_html":"(people_count : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count=","args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"visibility":"Public","body":"@people_count = people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L88"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"presentation_state=(presentation_state:Int32)-instance-method","name":"presentation_state=","abstract":false,"args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"args_string":"(presentation_state : Int32)","args_html":"(presentation_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state=","args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"visibility":"Public","body":"@presentation_state = presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"standby_state=(standby_state:Int32)-instance-method","name":"standby_state=","abstract":false,"args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"args_string":"(standby_state : Int32)","args_html":"(standby_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state=","args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"visibility":"Public","body":"@standby_state = standby_state"}},{"html_id":"temperature_in_celsius:Float64-instance-method","name":"temperature_in_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius","return_type":"Float64","visibility":"Public","body":"@temperature_in_celsius"}},{"html_id":"temperature_in_celsius=(temperature_in_celsius:Float64)-instance-method","name":"temperature_in_celsius=","abstract":false,"args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"args_string":"(temperature_in_celsius : Float64)","args_html":"(temperature_in_celsius : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius=","args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"visibility":"Public","body":"@temperature_in_celsius = temperature_in_celsius"}},{"html_id":"time_stamp:Int64-instance-method","name":"time_stamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp","return_type":"Int64","visibility":"Public","body":"@time_stamp"}},{"html_id":"time_stamp=(time_stamp:Int64)-instance-method","name":"time_stamp=","abstract":false,"args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"args_string":"(time_stamp : Int64)","args_html":"(time_stamp : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp=","args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"visibility":"Public","body":"@time_stamp = time_stamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence","path":"Cisco/DNASpaces/UserPresence.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_users_count:UserCount-instance-method","name":"active_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L79"},"def":{"name":"active_users_count","return_type":"UserCount","visibility":"Public","body":"@active_users_count"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L64"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L61"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L70"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L67"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_users_count:UserCount-instance-method","name":"inactive_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L82"},"def":{"name":"inactive_users_count","return_type":"UserCount","visibility":"Public","body":"@inactive_users_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L52"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L46"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L55"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L76"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L51"},"def":{"name":"user","return_type":"User","visibility":"Public","body":"@user"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L73"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L58"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L49"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/UserPresence/User","path":"Cisco/DNASpaces/UserPresence/User.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L13"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L16"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L20"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L17"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L23"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L15"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L26"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L14"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence/UserCount","path":"Cisco/DNASpaces/UserPresence/UserCount.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::UserCount","name":"UserCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"total_users:Int64-instance-method","name":"total_users","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L42"},"def":{"name":"total_users","return_type":"Int64","visibility":"Public","body":"@total_users"}},{"html_id":"users_with_user_id:Int64-instance-method","name":"users_with_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L36"},"def":{"name":"users_with_user_id","return_type":"Int64","visibility":"Public","body":"@users_with_user_id"}},{"html_id":"users_without_user_id:Int64-instance-method","name":"users_without_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/user_presence.cr#L39"},"def":{"name":"users_without_user_id","return_type":"Int64","visibility":"Public","body":"@users_without_user_id"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","path":"Cisco/DNASpaces/UserPresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L102"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L103"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:UserPresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L106"},"def":{"name":"payload","return_type":"UserPresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexDeviceInfo","path":"Cisco/DNASpaces/WebexDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::WebexDeviceInfo","name":"WebexDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html","summary":"

https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L22"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L15"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L34"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"serial_number:String-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L25"},"def":{"name":"serial_number","return_type":"String","visibility":"Public","body":"@serial_number"}},{"html_id":"software_version:String-instance-method","name":"software_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L28"},"def":{"name":"software_version","return_type":"String","visibility":"Public","body":"@software_version"}},{"html_id":"type:String-instance-method","name":"type","doc":"these fields are named to be compatible with the IoT field names","summary":"

these fields are named to be compatible with the IoT field names

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L19"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"workspace_id:String-instance-method","name":"workspace_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L31"},"def":{"name":"workspace_id","return_type":"String","visibility":"Public","body":"@workspace_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetry","path":"Cisco/DNASpaces/WebexTelemetry.html","kind":"struct","full_name":"Cisco::DNASpaces::WebexTelemetry","name":"WebexTelemetry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L49"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"@air_quality"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L55"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_temp:Float64|Nil-instance-method","name":"ambient_temp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L52"},"def":{"name":"ambient_temp","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_temp"}},{"html_id":"count:Int32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L43"},"def":{"name":"count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"presence:Bool|Nil-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L40"},"def":{"name":"presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@presence"}},{"html_id":"relative_humidity:Float64|Nil-instance-method","name":"relative_humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L58"},"def":{"name":"relative_humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"@relative_humidity"}},{"html_id":"sound_level:Float64|Nil-instance-method","name":"sound_level","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L46"},"def":{"name":"sound_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@sound_level"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdate","path":"Cisco/DNASpaces/WebexTelemetryUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdate","name":"WebexTelemetryUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L61"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L62"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L83"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @air_quality).nil?\n @air_quality = (telemetries.compact_map(&.air_quality).first?)\nelse\n __temp_1\nend"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L91"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @ambient_noise).nil?\n @ambient_noise = (telemetries.compact_map(&.ambient_noise).first?)\nelse\n __temp_1\nend"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L128"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .presence?\n \"#{mac}->presence\"\nwhen .humidity?\n \"#{mac}->humidity\"\nwhen .air_quality?\n \"#{mac}->air_quality\"\nwhen .people_count?\n \"#{mac}->people_count\"\nwhen .temperature?\n \"#{mac}->temperature\"\nwhen .sound_pressure?\n \"#{mac}->ambient_noise\"\nend"}},{"html_id":"device:WebexDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device","return_type":"WebexDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device=(device:WebexDeviceInfo)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"args_string":"(device : WebexDeviceInfo)","args_html":"(device : WebexDeviceInfo)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"visibility":"Public","body":"@device = device"}},{"html_id":"humidity:Float64|Nil-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L79"},"def":{"name":"humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @humidity).nil?\n @humidity = (telemetries.compact_map(&.relative_humidity).first?)\nelse\n __temp_1\nend"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @last_seen).nil?\n @last_seen = (Time.utc.to_unix_ms)\nelse\n __temp_1\nend"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L165"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L71"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @people_count).nil?\n @people_count = (telemetries.compact_map(&.count).first? || 0)\nelse\n __temp_1\nend"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L75"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @presence).nil?\n @presence = (telemetries.compact_map(&.presence).first? || (people_count > 0))\nelse\n __temp_1\nend"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L157"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"telemetries:Array(WebexTelemetry)-instance-method","name":"telemetries","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries","return_type":"Array(WebexTelemetry)","visibility":"Public","body":"if (__temp_1 = @telemetries).nil?\n @telemetries = ([] of WebexTelemetry)\nelse\n __temp_1\nend"}},{"html_id":"telemetries=(telemetries:Array(WebexTelemetry))-instance-method","name":"telemetries=","abstract":false,"args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"args_string":"(telemetries : Array(WebexTelemetry))","args_html":"(telemetries : Array(WebexTelemetry))","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries=","args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"visibility":"Public","body":"@telemetries = telemetries"}},{"html_id":"temperature:Float64|Nil-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L87"},"def":{"name":"temperature","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @temperature).nil?\n @temperature = (telemetries.compact_map(&.ambient_temp).first?)\nelse\n __temp_1\nend"}},{"html_id":"update_telemetry-instance-method","name":"update_telemetry","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L95"},"def":{"name":"update_telemetry","visibility":"Public","body":"telemetries.each do |telemetry|\n if !telemetry.presence.nil?\n @presence = telemetry.presence\n next\n end\n if count = telemetry.count\n @people_count = count\n next\n end\n if float = telemetry.relative_humidity\n @humidity = float\n next\n end\n if float = telemetry.air_quality\n @air_quality = float\n next\n end\n if float = telemetry.ambient_temp\n @temperature = float\n next\n end\n if float = telemetry.ambient_noise\n @ambient_noise = float\n end\nend"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/webex_telemetry.cr#L153"},"def":{"name":"visit_id","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","path":"Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L137"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L138"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:WebexTelemetryUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/dna_spaces/events.cr#L141"},"def":{"name":"payload","return_type":"WebexTelemetryUpdate","visibility":"Public","body":"@payload"}}]}]},{"html_id":"drivers/Cisco/Ise","path":"Cisco/Ise.html","kind":"module","full_name":"Cisco::Ise","name":"Ise","abstract":false,"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Ise/Guests","path":"Cisco/Ise/Guests.html","kind":"class","full_name":"Cisco::Ise::Guests","name":"Guests","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/vnd.com.cisco.ise.identity.guestuser.2.0+xml\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest(event_start:Int64,attendee_email:String,attendee_name:String,company_name:String|Nil=nil,phone_number:String=\"0123456789\",sms_service_provider:String|Nil=nil,guest_type:String|Nil=nil,portal_id:String|Nil=nil)-instance-method","name":"create_guest","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"args_string":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = \"0123456789\", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","args_html":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = "0123456789", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L49"},"def":{"name":"create_guest","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"guest_names = attendee_name.split\nfirst_name_index_end = guest_names.size > 1 ? -2 : -1\nfirst_name = guest_names[0..first_name_index_end].join(' ')\nlast_name = guest_names[-1]\nusername = genererate_username(first_name, last_name)\nif setting?(Bool, :test)\n return {\"username\" => username, \"password\" => UUID.random.to_s[0..3]}.merge(@custom_data)\nend\nsms_service_provider || (sms_service_provider = @sms_service_provider)\nguest_type || (guest_type = @guest_type)\nportal_id || (portal_id = @portal_id)\ntime_object = (Time.unix(event_start)).in(@timezone)\nfrom_date = time_object.at_beginning_of_day.to_s(TIME_FORMAT)\nto_date = time_object.at_end_of_day.to_s(TIME_FORMAT)\ncompany_name || (company_name = ((attendee_email.split('@'))[1].split('.'))[0].capitalize)\nxml_string = \"\\n \"\nif @location\n xml_string = xml_string + \"\\n \"\nend\nxml_string = xml_string + \"\\n \\n #{from_date}\"\nif @location\n xml_string = xml_string + \"\\n #{@location}\"\nend\nxml_string = xml_string + \"\\n #{to_date}\\n 1\\n \\n \\n #{company_name}\\n #{attendee_email}\\n #{first_name}\\n #{last_name}\\n English\\n #{phone_number}\"\nif sms_service_provider\n xml_string = xml_string + \"\\n #{sms_service_provider}\"\nend\nxml_string = xml_string + \"\\n #{username}\\n \\n #{guest_type}\\n #{portal_id}\\n \"\nresponse = post(\"/guestuser/\", body: xml_string, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\nguest_id = (response.headers[\"Location\"].split('/')).last\n(guest_crendentials(guest_id)).merge(@custom_data)\n"}},{"html_id":"guest_crendentials(id:String)-instance-method","name":"guest_crendentials","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L136"},"def":{"name":"guest_crendentials","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/guestuser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nparsed_body = XML.parse(response.body)\nguest_user = parsed_body.first_element_child.not_nil!\nguest_info = guest_user.children.find do |c|\n c.name == \"guestInfo\"\nend.not_nil!\n{\"username\" => guest_info.children.find do |c|\n c.name == \"userName\"\nend.not_nil!.content, \"password\" => guest_info.children.find do |c|\n c.name == \"password\"\nend.not_nil!.content}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@basic_auth = \"Basic #{Base64.strict_encode(\"#{setting?(String, :username)}:#{setting?(String, :password)}\")}\"\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@location = setting?(String, :location)\n@sms_service_provider = setting?(String, :sms_service_provider)\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, JSON::Any::Type), :custom_data)) || ({} of String => JSON::Any::Type)\n"}},{"html_id":"test2-instance-method","name":"test2","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L160"},"def":{"name":"test2","visibility":"Public","body":"xml_string = \"\\n\\n\\n08/06/2014 23:22\\n08/07/2014 23:22\\n1\\n\\n\\nNew Company\\njohn@example.com\\nJohn\\nDoe\\nEnglish\\n9999998877\\nGlobal Default\\nautoguestuser1\\n\\nDaily\\nsponsor\\nportal101\\ninterview\\n\"\ntest_xml(xml_string)\n"}},{"html_id":"test_json(json:String)-instance-method","name":"test_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L186"},"def":{"name":"test_json","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: json, headers: {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"test_xml(xml_string:String)-instance-method","name":"test_xml","abstract":false,"args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"args_string":"(xml_string : String)","args_html":"(xml_string : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/guest_users.cr#L151"},"def":{"name":"test_xml","args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: (XML.parse(xml_string)).to_s, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}}]},{"html_id":"drivers/Cisco/Ise/Models","path":"Cisco/Ise/Models.html","kind":"module","full_name":"Cisco::Ise::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"types":[{"html_id":"drivers/Cisco/Ise/Models/InternalUser","path":"Cisco/Ise/Models/InternalUser.html","kind":"class","full_name":"Cisco::Ise::Models::InternalUser","name":"InternalUser","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Ise/Models","kind":"module","full_name":"Cisco::Ise::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_password:Bool-instance-method","name":"change_password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password","return_type":"Bool","visibility":"Public","body":"@change_password"}},{"html_id":"change_password=(change_password:Bool)-instance-method","name":"change_password=","abstract":false,"args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"args_string":"(change_password : Bool)","args_html":"(change_password : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password=","args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"visibility":"Public","body":"@change_password = change_password"}},{"html_id":"custom_attributes:Hash(String,String)-instance-method","name":"custom_attributes","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes","return_type":"Hash(String, String)","visibility":"Public","body":"@custom_attributes"}},{"html_id":"custom_attributes=(custom_attributes:Hash(String,String))-instance-method","name":"custom_attributes=","abstract":false,"args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"args_string":"(custom_attributes : Hash(String, String))","args_html":"(custom_attributes : Hash(String, String))","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes=","args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@custom_attributes = custom_attributes"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"enabled=(enabled:Bool)-instance-method","name":"enabled=","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"args_string":"(enabled : Bool)","args_html":"(enabled : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled=","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"visibility":"Public","body":"@enabled = enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"identity_groups:String|Nil-instance-method","name":"identity_groups","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups","return_type":"String | ::Nil","visibility":"Public","body":"@identity_groups"}},{"html_id":"identity_groups=(identity_groups:String|Nil)-instance-method","name":"identity_groups=","abstract":false,"args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"args_string":"(identity_groups : String | Nil)","args_html":"(identity_groups : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups=","args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"visibility":"Public","body":"@identity_groups = identity_groups"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"password:String|Nil-instance-method","name":"password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password","return_type":"String | ::Nil","visibility":"Public","body":"@password"}},{"html_id":"password=(password:String|Nil)-instance-method","name":"password=","abstract":false,"args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(password : String | Nil)","args_html":"(password : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password=","args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"@password = password"}},{"html_id":"password_store:String-instance-method","name":"password_store","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store","return_type":"String","visibility":"Public","body":"@password_store"}},{"html_id":"password_store=(password_store:String)-instance-method","name":"password_store=","abstract":false,"args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"args_string":"(password_store : String)","args_html":"(password_store : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store=","args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"visibility":"Public","body":"@password_store = password_store"}}]}]},{"html_id":"drivers/Cisco/Ise/NetworkAccess","path":"Cisco/Ise/NetworkAccess.html","kind":"class","full_name":"Cisco::Ise::NetworkAccess","name":"NetworkAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/network_access.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/json\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_internal_user(email:String,name:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,password:String|Nil=nil,identity_groups:Array(String)=[]ofString)-instance-method","name":"create_internal_user","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","args_html":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L75"},"def":{"name":"create_internal_user","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"name || (name = email)\npassword || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = Models::InternalUser.from_json({name: name, email: email, password: password, firstName: first_name, lastName: last_name, description: description, identityGroups: identity_groups.join(\",\")}.to_json)\nif @debug\n logger.debug do\n \"Creating Internal User: #{internal_user.to_json}\"\n end\nend\nresponse = post(\"/internaluser/\", body: {\"InternalUser\" => internal_user}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"Failed to create internal user, code #{response.status_code}\\n#{response.body}\")\nend\nuser = get_internal_user_by_name(name)\nuser.password = password\nuser\n"}},{"html_id":"get_internal_user_by_email(email:String)-instance-method","name":"get_internal_user_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L156"},"def":{"name":"get_internal_user_by_email","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/?filter=email.CONTAINS.#{email}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\nresources = parsed_body[\"SearchResult\"].as_h[\"resources\"].as_a\nif resources.empty?\n raise(\"returned body has no resources\")\nend\nget_internal_user_by_id(resources.first.as_h[\"id\"].to_s)\n"}},{"html_id":"get_internal_user_by_id(id:String)-instance-method","name":"get_internal_user_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L122"},"def":{"name":"get_internal_user_by_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by id, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"get_internal_user_by_name(name:String)-instance-method","name":"get_internal_user_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L139"},"def":{"name":"get_internal_user_by_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/name/#{name}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by name, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/network_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L49"},"def":{"name":"on_update","visibility":"Public","body":"username = setting?(String, :username)\npassword = setting?(String, :password)\n@basic_auth = [\"Basic\", Base64.strict_encode([username, password].join(\":\"))].join(\" \")\n@debug = (setting?(Bool, :debug)) || false\n@test_mode = (setting?(Bool, :test)) || false\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@sms_service_provider = setting?(String, :sms_service_provider)\n@password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, String), :custom_data)) || ({} of String => String)\nif @debug\n logger.debug do\n \"Basic auth details: #{@basic_auth}\"\n end\nend\n"}},{"html_id":"update_internal_user_identity_groups_by_email(email:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, identity_groups : Array(String))","args_html":"(email : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L258"},"def":{"name":"update_internal_user_identity_groups_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_email(email)\nupdate_internal_user_identity_groups_by_id(internal_user.id.to_s, identity_groups)\n"}},{"html_id":"update_internal_user_identity_groups_by_id(id:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(id : String, identity_groups : Array(String))","args_html":"(id : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L232"},"def":{"name":"update_internal_user_identity_groups_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_id(id)\nresponse = put(\"/internaluser/#{internal_user.id}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_identity_groups_by_name(name:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(name : String, identity_groups : Array(String))","args_html":"(name : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L246"},"def":{"name":"update_internal_user_identity_groups_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"response = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_email(email:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(email : String, password : String | Nil = nil)","args_html":"(email : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L218"},"def":{"name":"update_internal_user_password_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = get_internal_user_by_email(email)\nupdate_internal_user_password_by_id(internal_user.id.to_s, password)\n"}},{"html_id":"update_internal_user_password_by_id(id:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(id : String, password : String | Nil = nil)","args_html":"(id : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L176"},"def":{"name":"update_internal_user_password_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/#{id}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_name(name:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(name : String, password : String | Nil = nil)","args_html":"(name : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ise/network_access.cr#L197"},"def":{"name":"update_internal_user_password_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}}]}]},{"html_id":"drivers/Cisco/Meraki","path":"Cisco/Meraki.html","kind":"module","full_name":"Cisco::Meraki","name":"Meraki","abstract":false,"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L6"},{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L4"},{"filename":"src/cisco/meraki/scanning_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"\"%FT%T%z\""}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"doc":"Meraki MQTT Data Models","summary":"

Meraki MQTT Data Models

","types":[{"html_id":"drivers/Cisco/Meraki/AlertType","path":"Cisco/Meraki/AlertType.html","kind":"enum","full_name":"Cisco::Meraki::AlertType","name":"AlertType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L365"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PortConnected","name":"PortConnected","value":"0"},{"id":"PortDisconnected","name":"PortDisconnected","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"port_connected?-instance-method","name":"port_connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L366"},"def":{"name":"port_connected?","visibility":"Public","body":"self == PortConnected"}},{"html_id":"port_disconnected?-instance-method","name":"port_disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L367"},"def":{"name":"port_disconnected?","visibility":"Public","body":"self == PortDisconnected"}}]},{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","path":"Cisco/Meraki/CameraAnalytics.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601_MS","name":"ISO8601_MS","value":"\"%FT%T.%3N%z\""}],"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ts:Time-instance-method","name":"ts","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts","return_type":"Time","visibility":"Public","body":"@ts"}},{"html_id":"ts=(ts:Time)-instance-method","name":"ts=","abstract":false,"args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"args_string":"(ts : Time)","args_html":"(ts : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts=","args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"visibility":"Public","body":"@ts = ts"}},{"html_id":"zones:Hash(Int64,PeopleCount)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones","return_type":"Hash(Int64, PeopleCount)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Hash(Int64,PeopleCount))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"args_string":"(zones : Hash(Int64, PeopleCount))","args_html":"(zones : Hash(Int64, PeopleCount))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"visibility":"Public","body":"@zones = zones"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraAnalytics/PeopleCount","path":"Cisco/Meraki/CameraAnalytics/PeopleCount.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics::PeopleCount","name":"PeopleCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person:Int32-instance-method","name":"person","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person","return_type":"Int32","visibility":"Public","body":"@person"}},{"html_id":"person=(person:Int32)-instance-method","name":"person=","abstract":false,"args":[{"name":"person","external_name":"person","restriction":"Int32"}],"args_string":"(person : Int32)","args_html":"(person : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person=","args":[{"name":"person","external_name":"person","restriction":"Int32"}],"visibility":"Public","body":"@person = person"}}]}]},{"html_id":"drivers/Cisco/Meraki/CameraZone","path":"Cisco/Meraki/CameraZone.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L302"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L303"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"distance:Float64-instance-method","name":"distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance","return_type":"Float64","visibility":"Public","body":"@distance"}},{"html_id":"distance=(distance:Float64)-instance-method","name":"distance=","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"args_string":"(distance : Float64)","args_html":"(distance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance=","args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"visibility":"Public","body":"@distance = distance"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L315"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"label:String-instance-method","name":"label","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L317"},"def":{"name":"label","return_type":"String","visibility":"Public","body":"@label"}},{"html_id":"mid_point-instance-method","name":"mid_point","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L325"},"def":{"name":"mid_point","visibility":"Public","body":"mid_x = (region.x0.to_f64 + region.x1.to_f64) / 2.0\nmid_y = (region.y0.to_f64 + region.y1.to_f64) / 2.0\n{mid_x, mid_y}\n"}},{"html_id":"region:Region-instance-method","name":"region","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L320"},"def":{"name":"region","return_type":"Region","visibility":"Public","body":"@region"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L316"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L331"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @x).nil?\n @x = (begin\n xpos, @y = mid_point\n xpos\n end)\nelse\n __temp_1\nend"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L336"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @y).nil?\n @y = (begin\n @x, ypos = mid_point\n ypos\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraZone/Region","path":"Cisco/Meraki/CameraZone/Region.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone::Region","name":"Region","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L305"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraZone","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L306"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x0:String-instance-method","name":"x0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L308"},"def":{"name":"x0","return_type":"String","visibility":"Public","body":"@x0"}},{"html_id":"x1:String-instance-method","name":"x1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L310"},"def":{"name":"x1","return_type":"String","visibility":"Public","body":"@x1"}},{"html_id":"y0:String-instance-method","name":"y0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L309"},"def":{"name":"y0","return_type":"String","visibility":"Public","body":"@y0"}},{"html_id":"y1:String-instance-method","name":"y1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L311"},"def":{"name":"y1","return_type":"String","visibility":"Public","body":"@y1"}}]}]},{"html_id":"drivers/Cisco/Meraki/CaptivePortal","path":"Cisco/Meraki/CaptivePortal.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"JSON_HEADERS","name":"JSON_HEADERS","value":"{\"Content-Type\" => \"application/json\"}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"challenge(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"challenge","doc":"Webhook for providing guest access","summary":"

Webhook for providing guest access

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L94"},"def":{"name":"challenge","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"guest access attempt: #{method},\\nheaders #{headers},\\nbody #{body}\"\n end\n challenge = ChallengePayload.from_json(body)\n check_code = challenge.code\n guest_codes = generate_guest_data(challenge.email, Time.utc.to_unix, challenge.timezone)\n matched = (guest_codes.scan(/.{#{@code_length}}/)).count do |code|\n code[0] == check_code\n end > 0\n if matched\n challenge.expires = @access_duration.from_now\n @guests[format_mac(challenge.client_mac)] = challenge\n @granted = @granted + 1_u64\n self[:granted_access] = @granted\n redirect_url = \"#{challenge.base_grant_url}?duration=#{@access_duration.to_i}&continue_url=#{challenge.user_continue || @success_url}\"\n response = {redirect_to: redirect_url}.to_json\n logger.debug do\n \"successful joined network #{challenge.inspect}\"\n end\n {HTTP::Status::OK, JSON_HEADERS, response}\n else\n @denied = @denied + 1_u64\n self[:denied_access] = @denied\n logger.debug do\n \"failed wifi access attempt by #{challenge.inspect}\"\n end\n {HTTP::Status::NOT_ACCEPTABLE, JSON_HEADERS, \"{}\"}\n end\nrescue error\n @errors = @errors + 1_u64\n self[:errors] = @errors\n last_error = error.inspect_with_backtrace\n self[:last_error] = last_error\n logger.error do\n \"failed to parse wifi challenge payload\\n#{error}\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR, EMPTY_HEADERS, nil}\nend"}},{"html_id":"generate_guest_data(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_data","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L58"},"def":{"name":"generate_guest_data","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_zone = time_zone.presence ? Time::Location.load(time_zone.not_nil!) : @default_timezone\ndate = ((Time.unix(time)).in(time_zone)).to_s(@date_format)\nguest_string = \"#{email.downcase}-#{date}-#{@wifi_secret}\"\n((OpenSSL::Digest.new(\"SHA256\")).update(guest_string)).final.hexstring\n"}},{"html_id":"generate_guest_token(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_token","doc":"Splits the SHA256 into code length and then randomly selects one","summary":"

Splits the SHA256 into code length and then randomly selects one

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L67"},"def":{"name":"generate_guest_token","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"(((generate_guest_data(email, time, time_zone)).scan(/.{#{@code_length}}/)).sample(1))[0][0]"}},{"html_id":"guests:Hash(String,Cisco::Meraki::CaptivePortal::ChallengePayload)-instance-method","name":"guests","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L49"},"def":{"name":"guests","visibility":"Public","body":"@guests"}},{"html_id":"lookup(mac:String)-instance-method","name":"lookup","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L54"},"def":{"name":"lookup","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@guests[format_mac(mac)]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@wifi_secret = (setting?(String, :wifi_secret)) || \"anything really\"\n@date_format = (setting?(String, :date_format)) || \"%Y%m%d\"\n@success_url = (setting?(String, :success_url)) || \"https://place.technology/\"\n@access_duration = ((setting?(Int32, :access_duration)) || 12).hours\n@code_length = (setting?(Int32, :code_length)) || 4\ntime_zone = (setting?(String, :default_timezone)).presence\nif time_zone\n @default_timezone = Time::Location.load(time_zone)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CaptivePortal/ChallengePayload","path":"Cisco/Meraki/CaptivePortal/ChallengePayload.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal::ChallengePayload","name":"ChallengePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CaptivePortal","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"base_grant_url:String-instance-method","name":"base_grant_url","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url","return_type":"String","visibility":"Public","body":"@base_grant_url"}},{"html_id":"base_grant_url=(base_grant_url:String)-instance-method","name":"base_grant_url=","abstract":false,"args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"args_string":"(base_grant_url : String)","args_html":"(base_grant_url : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url=","args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"visibility":"Public","body":"@base_grant_url = base_grant_url"}},{"html_id":"client_ip:String-instance-method","name":"client_ip","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip","return_type":"String","visibility":"Public","body":"@client_ip"}},{"html_id":"client_ip=(client_ip:String)-instance-method","name":"client_ip=","abstract":false,"args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"args_string":"(client_ip : String)","args_html":"(client_ip : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip=","args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"visibility":"Public","body":"@client_ip = client_ip"}},{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"code:String-instance-method","name":"code","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code","return_type":"String","visibility":"Public","body":"@code"}},{"html_id":"code=(code:String)-instance-method","name":"code=","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"}],"args_string":"(code : String)","args_html":"(code : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"String"}],"visibility":"Public","body":"@code = code"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expires:Time|Nil-instance-method","name":"expires","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires","return_type":"Time | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time|Nil)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"args_string":"(expires : Time | Nil)","args_html":"(expires : Time | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@expires = expires"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_continue:String|Nil-instance-method","name":"user_continue","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue","return_type":"String | ::Nil","visibility":"Public","body":"@user_continue"}},{"html_id":"user_continue=(user_continue:String|Nil)-instance-method","name":"user_continue=","abstract":false,"args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"args_string":"(user_continue : String | Nil)","args_html":"(user_continue : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue=","args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user_continue = user_continue"}}]}]},{"html_id":"drivers/Cisco/Meraki/Client","path":"Cisco/Meraki/Client.html","kind":"class","full_name":"Cisco::Meraki::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"first_seen:String-instance-method","name":"first_seen","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen","return_type":"String","visibility":"Public","body":"@first_seen"}},{"html_id":"first_seen=(first_seen:String)-instance-method","name":"first_seen=","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"args_string":"(first_seen : String)","args_html":"(first_seen : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen=","args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"visibility":"Public","body":"@first_seen = first_seen"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"ip:String|Nil-instance-method","name":"ip","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip","return_type":"String | ::Nil","visibility":"Public","body":"@ip"}},{"html_id":"ip6:String|Nil-instance-method","name":"ip6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6","return_type":"String | ::Nil","visibility":"Public","body":"@ip6"}},{"html_id":"ip6=(ip6:String|Nil)-instance-method","name":"ip6=","abstract":false,"args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"args_string":"(ip6 : String | Nil)","args_html":"(ip6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6=","args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6 = ip6"}},{"html_id":"ip6_local:String|Nil-instance-method","name":"ip6_local","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local","return_type":"String | ::Nil","visibility":"Public","body":"@ip6_local"}},{"html_id":"ip6_local=(ip6_local:String|Nil)-instance-method","name":"ip6_local=","abstract":false,"args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"args_string":"(ip6_local : String | Nil)","args_html":"(ip6_local : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local=","args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6_local = ip6_local"}},{"html_id":"ip=(ip:String|Nil)-instance-method","name":"ip=","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"args_string":"(ip : String | Nil)","args_html":"(ip : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip=","args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip = ip"}},{"html_id":"last_seen:Time-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen","return_type":"Time","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"args_string":"(last_seen : Time)","args_html":"(last_seen : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"recent_device_mac:String|Nil-instance-method","name":"recent_device_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_mac"}},{"html_id":"recent_device_mac=(recent_device_mac:String|Nil)-instance-method","name":"recent_device_mac=","abstract":false,"args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"args_string":"(recent_device_mac : String | Nil)","args_html":"(recent_device_mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac=","args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_mac = recent_device_mac"}},{"html_id":"recent_device_serial:String|Nil-instance-method","name":"recent_device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_serial"}},{"html_id":"recent_device_serial=(recent_device_serial:String|Nil)-instance-method","name":"recent_device_serial=","abstract":false,"args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"args_string":"(recent_device_serial : String | Nil)","args_html":"(recent_device_serial : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial=","args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_serial = recent_device_serial"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}},{"html_id":"switch_port:Int32-instance-method","name":"switch_port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L151"},"def":{"name":"switch_port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @switch_port).nil?\n @switch_port = ((@switchport.as(String)).to_i)\nelse\n __temp_1\nend"}},{"html_id":"switchport:String|Nil-instance-method","name":"switchport","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport","return_type":"String | ::Nil","visibility":"Public","body":"@switchport"}},{"html_id":"switchport=(switchport:String|Nil)-instance-method","name":"switchport=","abstract":false,"args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"args_string":"(switchport : String | Nil)","args_html":"(switchport : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport=","args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"visibility":"Public","body":"@switchport = switchport"}},{"html_id":"time_added:Time-instance-method","name":"time_added","abstract":false,"def":{"name":"time_added","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_added).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::Client#time_added cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_added=(time_added:Time)-instance-method","name":"time_added=","abstract":false,"args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"args_string":"(time_added : Time)","args_html":"(time_added : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L148"},"def":{"name":"time_added=","args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"visibility":"Public","body":"@time_added = time_added"}},{"html_id":"time_added?:Time|Nil-instance-method","name":"time_added?","abstract":false,"def":{"name":"time_added?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_added"}},{"html_id":"user:String|Nil-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"vlan:String|Nil-instance-method","name":"vlan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan","return_type":"String | ::Nil","visibility":"Public","body":"@vlan"}},{"html_id":"vlan=(vlan:String|Nil)-instance-method","name":"vlan=","abstract":false,"args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"args_string":"(vlan : String | Nil)","args_html":"(vlan : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan=","args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"visibility":"Public","body":"@vlan = vlan"}}]},{"html_id":"drivers/Cisco/Meraki/ConnectionType","path":"Cisco/Meraki/ConnectionType.html","kind":"enum","full_name":"Cisco::Meraki::ConnectionType","name":"ConnectionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":360,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L360"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Wired","name":"Wired","value":"0"},{"id":"Wireless","name":"Wireless","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"wired?-instance-method","name":"wired?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L361"},"def":{"name":"wired?","visibility":"Public","body":"self == Wired"}},{"html_id":"wireless?-instance-method","name":"wireless?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L362"},"def":{"name":"wireless?","visibility":"Public","body":"self == Wireless"}}]},{"html_id":"drivers/Cisco/Meraki/CountType","path":"Cisco/Meraki/CountType.html","kind":"enum","full_name":"Cisco::Meraki::CountType","name":"CountType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"People","name":"People","value":"0"},{"id":"Vehicles","name":"Vehicles","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"people?-instance-method","name":"people?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L44"},"def":{"name":"people?","visibility":"Public","body":"self == People"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L46"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicles?-instance-method","name":"vehicles?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L45"},"def":{"name":"vehicles?","visibility":"Public","body":"self == Vehicles"}}]},{"html_id":"drivers/Cisco/Meraki/Crossing","path":"Cisco/Meraki/Crossing.html","kind":"struct","full_name":"Cisco::Meraki::Crossing","name":"Crossing","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event:CrossingEvent-instance-method","name":"event","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L95"},"def":{"name":"event","return_type":"CrossingEvent","visibility":"Public","body":"@event"}},{"html_id":"label:String|Nil-instance-method","name":"label","doc":"getter object_id : Int64","summary":"

getter object_id : Int64

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L94"},"def":{"name":"label","return_type":"String | ::Nil","visibility":"Public","body":"@label"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L92"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"type:CrossingObject-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L96"},"def":{"name":"type","return_type":"CrossingObject","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingEvent","path":"Cisco/Meraki/CrossingEvent.html","kind":"enum","full_name":"Cisco::Meraki::CrossingEvent","name":"CrossingEvent","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossingIn","name":"CrossingIn","value":"0"},{"id":"CrossingOut","name":"CrossingOut","value":"1"},{"id":"Expired","name":"Expired","value":"2"},{"id":"Appeared","name":"Appeared","value":"3"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"appeared?-instance-method","name":"appeared?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L85"},"def":{"name":"appeared?","visibility":"Public","body":"self == Appeared"}},{"html_id":"crossing_in?-instance-method","name":"crossing_in?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L82"},"def":{"name":"crossing_in?","visibility":"Public","body":"self == CrossingIn"}},{"html_id":"crossing_out?-instance-method","name":"crossing_out?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L83"},"def":{"name":"crossing_out?","visibility":"Public","body":"self == CrossingOut"}},{"html_id":"expired?-instance-method","name":"expired?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L84"},"def":{"name":"expired?","visibility":"Public","body":"self == Expired"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingObject","path":"Cisco/Meraki/CrossingObject.html","kind":"enum","full_name":"Cisco::Meraki::CrossingObject","name":"CrossingObject","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Person","name":"Person","value":"0"},{"id":"Vehicle","name":"Vehicle","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"person?-instance-method","name":"person?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L76"},"def":{"name":"person?","visibility":"Public","body":"self == Person"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L78"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicle?-instance-method","name":"vehicle?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L77"},"def":{"name":"vehicle?","visibility":"Public","body":"self == Vehicle"}}]},{"html_id":"drivers/Cisco/Meraki/Dashboard","path":"Cisco/Meraki/Dashboard.html","kind":"class","full_name":"Cisco::Meraki::Dashboard","name":"Dashboard","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/dashboard.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK.to_i, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch(location:String)-instance-method","name":"fetch","doc":"Perform fetch with the required API request limits in place","summary":"

Perform fetch with the required API request limits in place

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L69"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"req(location, &.body)"}},{"html_id":"fetch_all(location:String)-instance-method","name":"fetch_all","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L74"},"def":{"name":"fetch_all","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"responses = [] of String\nreq_all_pages(location) do |response|\n responses << response.body\nend\nresponses\n"}},{"html_id":"get_zones(camera_serial:String)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"args_string":"(camera_serial : String)","args_html":"(camera_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L183"},"def":{"name":"get_zones","args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{camera_serial}/camera/analytics/zones\") do |response|\n Array(CameraZone).from_json(response.body)\nend"}},{"html_id":"networks(organization_id:String)-instance-method","name":"networks","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L142"},"def":{"name":"networks","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"nets = [] of Network\nreq_all_pages(\"/api/v1/organizations/#{organization_id}/networks?perPage=1000\") do |response|\n nets.concat(Array(Network).from_json(response.body))\nend\nnets\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L38"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@scanning_validator = (setting?(String, :meraki_validator)) || \"\"\n@scanning_secret = (setting?(String, :meraki_secret)) || \"\"\n@api_key = (setting?(String, :meraki_api_key)) || \"\"\n@scanning_api_filter = (setting?(MessageType, :scanning_api_filter)) || MessageType::WiFi\n@rate_limit = (setting?(Int32, :rate_limit)) || 4\n@wait_time = 1.second / @rate_limit\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n"}},{"html_id":"organizations-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L135"},"def":{"name":"organizations","visibility":"Public","body":"req(\"/api/v1/organizations?perPage=1000\") do |response|\n Array(Organization).from_json(response.body)\nend"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil,statuses:String=\"Online\")-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = \"Online\")","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = "Online")","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L151"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"perPage\", \"1000\")\n form.add(\"timespan\", timespan.to_s)\n form.add(\"statuses[]\", statuses)\n if connection\n form.add(\"recentDeviceConnections[]\", connection.to_s)\n end\nend\nclients = [] of Client\nreq_all_pages(\"/api/v1/networks/#{network_id}/clients?#{params}\") do |response|\n clients.concat(Array(Client).from_json(response.body))\nend\nif device_serial\n clients.select! do |client|\n client.recent_device_serial == device_serial\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nelse\n clients.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nend\n"}},{"html_id":"port_status(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"port_status","doc":"a webhook for obtaining changes in port status","summary":"

a webhook for obtaining changes in port status

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L228"},"def":{"name":"port_status","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Webhook Alert received: #{method},\\nheaders #{headers},\\nbody #{body}\"\nend\nself[:port_update] = WebhookAlert.from_json(body)\nSUCCESS_RESPONSE\n"}},{"html_id":"ports_statuses(device_serial:String)-instance-method","name":"ports_statuses","abstract":false,"args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"args_string":"(device_serial : String)","args_html":"(device_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L177"},"def":{"name":"ports_statuses","args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{device_serial}/switch/ports/statuses\") do |response|\n Array(PortStatusResponse).from_json(response.body)\nend"}},{"html_id":"scanning_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"scanning_api","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/dashboard.cr#L190"},"def":{"name":"scanning_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nif method == \"GET\"\n return {HTTP::Status::OK.to_i, EMPTY_HEADERS, @scanning_validator}\nend\nif !(body.starts_with?(\"{\\\"version\\\":\\\"3.0\\\"\"))\n logger.warn do\n \"unknown scanning API message received:\\n#{body[0..96]}\"\n end\n return SUCCESS_RESPONSE\nend\nbegin\n seen = DevicesSeen.from_json(body)\n logger.debug do\n \"parsed meraki payload\"\n end\n if !@scanning_api_filter.none? && (seen.message_type != @scanning_api_filter)\n logger.debug do\n \"ignoring message type: #{seen.message_type}\"\n end\n return SUCCESS_RESPONSE\n end\n if seen.secret == @scanning_secret\n else\n raise(\"secret mismatch, sent: #{seen.secret}\")\n end\n self[seen.data.network_id] = seen.data.observations\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]},{"html_id":"drivers/Cisco/Meraki/Data","path":"Cisco/Meraki/Data.html","kind":"class","full_name":"Cisco::Meraki::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L276"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L277"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"network_id=(network_id:String)-instance-method","name":"network_id=","abstract":false,"args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"args_string":"(network_id : String)","args_html":"(network_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id=","args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"visibility":"Public","body":"@network_id = network_id"}},{"html_id":"observations:Array(Observation)-instance-method","name":"observations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations","return_type":"Array(Observation)","visibility":"Public","body":"@observations"}},{"html_id":"observations=(observations:Array(Observation))-instance-method","name":"observations=","abstract":false,"args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"args_string":"(observations : Array(Observation))","args_html":"(observations : Array(Observation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations=","args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"visibility":"Public","body":"@observations = observations"}}]},{"html_id":"drivers/Cisco/Meraki/DeskMappings","path":"Cisco/Meraki/DeskMappings.html","kind":"struct","full_name":"Cisco::Meraki::DeskMappings","name":"DeskMappings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L343"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L346"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"ports:Hash(Int32,String)-instance-method","name":"ports","doc":"port_id => desk_id","summary":"

port_id => desk_id

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L349"},"def":{"name":"ports","return_type":"Hash(Int32, String)","visibility":"Public","body":"@ports"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L345"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}}]},{"html_id":"drivers/Cisco/Meraki/DetectedDesks","path":"Cisco/Meraki/DetectedDesks.html","kind":"class","full_name":"Cisco::Meraki::DetectedDesks","name":"DetectedDesks","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api_version:Int32-instance-method","name":"api_version","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L17"},"def":{"name":"api_version","return_type":"Int32","visibility":"Public","body":"@api_version"}},{"html_id":"desks:Array(Tuple(Float64,Float64,Float64,Float64,Float64,Float64,Float64))-instance-method","name":"desks","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L26"},"def":{"name":"desks","return_type":"Array(Tuple(Float64, Float64, Float64, Float64, Float64, Float64, Float64))","visibility":"Public","body":"@desks"}},{"html_id":"time_string:String|Nil-instance-method","name":"time_string","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L24"},"def":{"name":"time_string","return_type":"String | ::Nil","visibility":"Public","body":"@time_string"}},{"html_id":"time_unix:Int64|Nil-instance-method","name":"time_unix","doc":"Time in milliseconds v3,","summary":"

Time in milliseconds v3,

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L21"},"def":{"name":"time_unix","return_type":"Int64 | ::Nil","visibility":"Public","body":"@time_unix"}}]},{"html_id":"drivers/Cisco/Meraki/DeviceLocation","path":"Cisco/Meraki/DeviceLocation.html","kind":"class","full_name":"Cisco::Meraki::DeviceLocation","name":"DeviceLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L162"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"calculate_location(floor:FloorPlan,device:NetworkDevice,time:Time):DeviceLocation-class-method","name":"calculate_location","abstract":false,"args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","args_html":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L173"},"def":{"name":"calculate_location","args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"return_type":"DeviceLocation","visibility":"Public","body":"distance = Geo.calculate_xy(floor.top_left, floor.bottom_left, floor.bottom_right, device, floor.to_distance)\nDeviceLocation.new(distance.x, distance.y, device.lng, device.lat, 25_f64, floor.id, floor.name, time)\n"}},{"html_id":"new(x:Float64|String|Nil,y:Float64|String|Nil,lng:Float64|Nil,lat:Float64|Nil,variance:Float64,floor_plan_id:Nil|String,floor_plan_name:Nil|String,time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"args_string":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","args_html":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L165"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y, lng, lat, variance, floor_plan_id, floor_plan_name, time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L163"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client:Client|Nil-instance-method","name":"client","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client","return_type":"Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"client=(client:Client|Nil)-instance-method","name":"client=","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"args_string":"(client : Client | Nil)","args_html":"(client : Client | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client=","args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"visibility":"Public","body":"@client = client"}},{"html_id":"floor_plan:FloorPlanLocation|Nil-instance-method","name":"floor_plan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan","return_type":"FloorPlanLocation | ::Nil","visibility":"Public","body":"@floor_plan"}},{"html_id":"floor_plan=(floor_plan:FloorPlanLocation|Nil)-instance-method","name":"floor_plan=","abstract":false,"args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"args_string":"(floor_plan : FloorPlanLocation | Nil)","args_html":"(floor_plan : FloorPlanLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan=","args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"visibility":"Public","body":"@floor_plan = floor_plan"}},{"html_id":"floor_plan_id-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L237"},"def":{"name":"floor_plan_id","visibility":"Public","body":"wifi_floor_plan_id || floor_plan.try(&.id)"}},{"html_id":"floor_plan_name-instance-method","name":"floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L241"},"def":{"name":"floor_plan_name","visibility":"Public","body":"wifi_floor_plan_name || floor_plan.try(&.name)"}},{"html_id":"get_x:Float64|Nil-instance-method","name":"get_x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L221"},"def":{"name":"get_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = x || floor_plan.try(&.x)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"get_y:Float64|Nil-instance-method","name":"get_y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L229"},"def":{"name":"get_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = y || floor_plan.try(&.y)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64|Nil)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"args_string":"(lat : Float64 | Nil)","args_html":"(lat : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64|Nil)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"args_string":"(lng : Float64 | Nil)","args_html":"(lng : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"nearest_ap_tags:Array(String)-instance-method","name":"nearest_ap_tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @nearest_ap_tags).nil?\n @nearest_ap_tags = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"nearest_ap_tags=(nearest_ap_tags:Array(String))-instance-method","name":"nearest_ap_tags=","abstract":false,"args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"args_string":"(nearest_ap_tags : Array(String))","args_html":"(nearest_ap_tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags=","args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"visibility":"Public","body":"@nearest_ap_tags = nearest_ap_tags"}},{"html_id":"rssi_records:Array(RSSI)-instance-method","name":"rssi_records","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records","return_type":"Array(RSSI)","visibility":"Public","body":"@rssi_records"}},{"html_id":"rssi_records=(rssi_records:Array(RSSI))-instance-method","name":"rssi_records=","abstract":false,"args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"args_string":"(rssi_records : Array(RSSI))","args_html":"(rssi_records : Array(RSSI))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records=","args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"visibility":"Public","body":"@rssi_records = rssi_records"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}},{"html_id":"variance:Float64-instance-method","name":"variance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance","return_type":"Float64","visibility":"Public","body":"@variance"}},{"html_id":"variance=(variance:Float64)-instance-method","name":"variance=","abstract":false,"args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"args_string":"(variance : Float64)","args_html":"(variance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance=","args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"visibility":"Public","body":"@variance = variance"}},{"html_id":"wifi_floor_plan_id:String|Nil-instance-method","name":"wifi_floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_id=(wifi_floor_plan_id:String|Nil)-instance-method","name":"wifi_floor_plan_id=","abstract":false,"args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_id : String | Nil)","args_html":"(wifi_floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id=","args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_id = wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_name:String|Nil-instance-method","name":"wifi_floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_name"}},{"html_id":"wifi_floor_plan_name=(wifi_floor_plan_name:String|Nil)-instance-method","name":"wifi_floor_plan_name=","abstract":false,"args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_name : String | Nil)","args_html":"(wifi_floor_plan_name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name=","args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_name = wifi_floor_plan_name"}},{"html_id":"x:Float64|String|Nil-instance-method","name":"x","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x","return_type":"Float64 | String | Nil","visibility":"Public","body":"@x"}},{"html_id":"x!-instance-method","name":"x!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L213"},"def":{"name":"x!","visibility":"Public","body":"get_x.not_nil!"}},{"html_id":"x=(x:Float64|String|Nil)-instance-method","name":"x=","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"args_string":"(x : Float64 | String | Nil)","args_html":"(x : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|String|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y","return_type":"Float64 | String | Nil","visibility":"Public","body":"@y"}},{"html_id":"y!-instance-method","name":"y!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L217"},"def":{"name":"y!","visibility":"Public","body":"get_y.not_nil!"}},{"html_id":"y=(y:Float64|String|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"args_string":"(y : Float64 | String | Nil)","args_html":"(y : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/DevicesSeen","path":"Cisco/Meraki/DevicesSeen.html","kind":"class","full_name":"Cisco::Meraki::DevicesSeen","name":"DevicesSeen","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L290"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L291"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"secret:String-instance-method","name":"secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret","return_type":"String","visibility":"Public","body":"@secret"}},{"html_id":"secret=(secret:String)-instance-method","name":"secret=","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String"}],"args_string":"(secret : String)","args_html":"(secret : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret=","args":[{"name":"secret","external_name":"secret","restriction":"String"}],"visibility":"Public","body":"@secret = secret"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}},{"html_id":"version=(version:String)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"String"}],"args_string":"(version : String)","args_html":"(version : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"String"}],"visibility":"Public","body":"@version = version"}}]},{"html_id":"drivers/Cisco/Meraki/Entrances","path":"Cisco/Meraki/Entrances.html","kind":"class","full_name":"Cisco::Meraki::Entrances","name":"Entrances","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L72"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n @count = ((counts[:person] || counts[:vehicle]) || 0)\nelse\n __temp_1\nend"}},{"html_id":"count_type:CountType-instance-method","name":"count_type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L61"},"def":{"name":"count_type","return_type":"CountType","visibility":"Public","body":"if (__temp_1 = @count_type).nil?\n @count_type = (if counts[:person]\n CountType::People\n else\n if counts[:vehicle]\n CountType::Vehicles\n else\n CountType::Unknown\n end\n end)\nelse\n __temp_1\nend"}},{"html_id":"counts:NamedTuple(person:Int32|Nil,vehicle:Int32|Nil)-instance-method","name":"counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L55"},"def":{"name":"counts","return_type":"NamedTuple(person: Int32 | ::Nil, vehicle: Int32 | ::Nil)","visibility":"Public","body":"@counts"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L53"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Cisco/Meraki/FloorMapping","path":"Cisco/Meraki/FloorMapping.html","kind":"class","full_name":"Cisco::Meraki::FloorMapping","name":"FloorMapping","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:String|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L10"},"def":{"name":"building_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"camera_serials:Array(String)-instance-method","name":"camera_serials","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L8"},"def":{"name":"camera_serials","return_type":"Array(String)","visibility":"Public","body":"@camera_serials"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L9"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlan","path":"Cisco/Meraki/FloorPlan.html","kind":"class","full_name":"Cisco::Meraki::FloorPlan","name":"FloorPlan","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_left:Geo::Point-instance-method","name":"bottom_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left","return_type":"Geo::Point","visibility":"Public","body":"@bottom_left"}},{"html_id":"bottom_left=(bottom_left:Geo::Point)-instance-method","name":"bottom_left=","abstract":false,"args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"args_string":"(bottom_left : Geo::Point)","args_html":"(bottom_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left=","args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_left = bottom_left"}},{"html_id":"bottom_right:Geo::Point-instance-method","name":"bottom_right","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right","return_type":"Geo::Point","visibility":"Public","body":"@bottom_right"}},{"html_id":"bottom_right=(bottom_right:Geo::Point)-instance-method","name":"bottom_right=","abstract":false,"args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"args_string":"(bottom_right : Geo::Point)","args_html":"(bottom_right : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right=","args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_right = bottom_right"}},{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Float64)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Float64"}],"args_string":"(height : Float64)","args_html":"(height : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Float64"}],"visibility":"Public","body":"@height = height"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"to_distance-instance-method","name":"to_distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L74"},"def":{"name":"to_distance","visibility":"Public","body":"Geo::Distance.new(width, height)"}},{"html_id":"top_left:Geo::Point-instance-method","name":"top_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left","return_type":"Geo::Point","visibility":"Public","body":"@top_left"}},{"html_id":"top_left=(top_left:Geo::Point)-instance-method","name":"top_left=","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"args_string":"(top_left : Geo::Point)","args_html":"(top_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left=","args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@top_left = top_left"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlanLocation","path":"Cisco/Meraki/FloorPlanLocation.html","kind":"class","full_name":"Cisco::Meraki::FloorPlanLocation","name":"FloorPlanLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo","path":"Cisco/Meraki/Geo.html","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo","abstract":false,"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EarthRadiusApprox","name":"EarthRadiusApprox","value":"6371000.7900","doc":"radius in meters, approx as we're using a perfect sphere the same volume as the earth","summary":"

radius in meters, approx as we're using a perfect sphere the same volume as the earth

"},{"id":"Radians","name":"Radians","value":"Math::PI / 180_f64"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"calculate_xy(top_left:Point,bottom_left:Point,bottom_right:Point,position,distance:Distance)-class-method","name":"calculate_xy","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"args_string":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","args_html":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L29"},"def":{"name":"calculate_xy","args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"visibility":"Public","body":"y_base = geo_distance(top_left, bottom_left)\na = geo_distance(top_left, position)\nc = geo_distance(bottom_left, position)\nx_raw = triangle_height(a, y_base, c)\nx_base = geo_distance(bottom_left, bottom_right)\na = geo_distance(bottom_left, position)\nc = geo_distance(bottom_right, position)\ny_raw = triangle_height(a, x_base, c)\npercentage_height = y_raw / y_base\npercentage_width = x_raw / x_base\nDistance.new(distance.x * percentage_width, distance.y * percentage_height)\n"}},{"html_id":"geo_distance(start:Point,ending)-class-method","name":"geo_distance","doc":"https://www.movable-type.co.uk/scripts/latlong.html\nreturns the distance in meters","summary":"

https://www.movable-type.co.uk/scripts/latlong.html returns the distance in meters

","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"args_string":"(start : Point, ending)","args_html":"(start : Point, ending)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L54"},"def":{"name":"geo_distance","args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"visibility":"Public","body":"lat_diff = (ending.lat - start.lat) * Radians\nlng_diff = (ending.lng - start.lng) * Radians\nstart_lat_radian = start.lat * Radians\nend_lng_radian = ending.lng * Radians\na = ((Math.sin(lat_diff / 2_f64)) * (Math.sin(lat_diff / 2_f64))) + ((((Math.cos(start_lat_radian)) * (Math.cos(end_lng_radian))) * (Math.sin(lng_diff / 2_f64))) * (Math.sin(lng_diff / 2_f64)))\nc = 2_f64 * (Math.atan2(Math.sqrt(a), Math.sqrt(1_f64 - a)))\nEarthRadiusApprox * c\n"}},{"html_id":"triangle_height(a:Float64,base:Float64,c:Float64)-class-method","name":"triangle_height","doc":"https://www.omnicalculator.com/math/triangle-height","summary":"

https://www.omnicalculator.com/math/triangle-height

","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"args_string":"(a : Float64, base : Float64, c : Float64)","args_html":"(a : Float64, base : Float64, c : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L70"},"def":{"name":"triangle_height","args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"visibility":"Public","body":"(0.5 * (Math.sqrt(((((a + base) + c) * ((base + c) - a)) * ((a - base) + c)) * ((a + base) - c)))) / base"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Geo/Distance","path":"Cisco/Meraki/Geo/Distance.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Distance","name":"Distance","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L22"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo/Point","path":"Cisco/Meraki/Geo/Point.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(lat:Float64,lng:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"args_string":"(lat : Float64, lng : Float64)","args_html":"(lat : Float64, lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L12"},"def":{"name":"new","args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lat, lng)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]}]},{"html_id":"drivers/Cisco/Meraki/LatestRecord","path":"Cisco/Meraki/LatestRecord.html","kind":"class","full_name":"Cisco::Meraki::LatestRecord","name":"LatestRecord","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"nearest_ap_mac:String-instance-method","name":"nearest_ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac","return_type":"String","visibility":"Public","body":"@nearest_ap_mac"}},{"html_id":"nearest_ap_mac=(nearest_ap_mac:String)-instance-method","name":"nearest_ap_mac=","abstract":false,"args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"args_string":"(nearest_ap_mac : String)","args_html":"(nearest_ap_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac=","args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"visibility":"Public","body":"@nearest_ap_mac = nearest_ap_mac"}},{"html_id":"nearest_ap_rssi:Int32-instance-method","name":"nearest_ap_rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi","return_type":"Int32","visibility":"Public","body":"@nearest_ap_rssi"}},{"html_id":"nearest_ap_rssi=(nearest_ap_rssi:Int32)-instance-method","name":"nearest_ap_rssi=","abstract":false,"args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"args_string":"(nearest_ap_rssi : Int32)","args_html":"(nearest_ap_rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi=","args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"visibility":"Public","body":"@nearest_ap_rssi = nearest_ap_rssi"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations","path":"Cisco/Meraki/Locations.html","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L94"},"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"camera_analytics(serial:String)-instance-method","name":"camera_analytics","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":711,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L711"},"def":{"name":"camera_analytics","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{serial}/camera/analytics/live\") do |response|\n CameraAnalytics.from_json(response)\nend"}},{"html_id":"cameras:Array(Cisco::Meraki::NetworkDevice)-instance-method","name":"cameras","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":726,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L726"},"def":{"name":"cameras","visibility":"Public","body":"@cameras"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L418"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = user_mac_mappings(&.[]?(lookup))\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L638"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing IP and location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago\nremove_keys = [] of String\n@ip_lookup.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_lookup.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => MAC mappings\"\nend\nremove_keys.clear\n@ip_usernames.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_usernames.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => Username mappings\"\nend\nremove_keys.clear\n@client_details.each do |mac, client|\n if client.time_added < old\n remove_keys << mac\n end\nend\nremove_keys.each do |mac|\n @client_details.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} client details\"\nend\nremove_keys.clear\n@locations.each do |mac, location|\n if location.time < old\n if client = @client_details[mac]?\n if client.time_added < old\n remove_keys << mac\n end\n else\n remove_keys << mac\n end\n end\nend\nremove_keys.each do |mac|\n @locations.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\n"}},{"html_id":"desk_details:Hash(String,DetectedDesks)-instance-method","name":"desk_details","doc":"serial => desks detected","summary":"

serial => desks detected

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L221"},"def":{"name":"desk_details","return_type":"Hash(String, DetectedDesks)","visibility":"Public","body":"@desk_details"}},{"html_id":"desk_locations(zone_id:String)-instance-method","name":"desk_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1260"},"def":{"name":"desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"serials = @zone_lookup[zone_id]? || ([] of String)\nreturn_empty_spaces = @return_empty_spaces\nexpiry_time = desk_data_expiry_time\nserials.compact_map do |serial|\n desks = @desk_mappings[serial]?\n if desks\n else\n next\n end\n if desk_details[serial]?\n else\n next\n end\n floor = @floor_lookup[serial]\n illumination = lux[serial]?\n desks.compact_map do |desk|\n desk_id = desk.label\n occupied = is_occupied?(desk_id, expiry_time)\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: desk_id, level: floor.level_id, building: floor.building_id, capacity: 1, area_lux: illumination, merakimv: serial}\n end\nend.flatten\n"}},{"html_id":"desk_mappings:Hash(String,Array(CameraZone))-instance-method","name":"desk_mappings","doc":"Camera serial => [desk location]","summary":"

Camera serial => [desk location]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1258"},"def":{"name":"desk_mappings","return_type":"Hash(String, Array(CameraZone))","visibility":"Public","body":"@desk_mappings"}},{"html_id":"desk_occupancy:Hash(String,Array(Tuple(Int64,Bool)))-instance-method","name":"desk_occupancy","doc":"=================\nCamera Desk data:\n=================\ndesk_id => [{time, occupied}]","summary":"

================= Camera Desk data: ================= desk_id => [{time, occupied}]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1195"},"def":{"name":"desk_occupancy","return_type":"Hash(String, Array(Tuple(Int64, Bool)))","visibility":"Public","body":"@desk_occupancy"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L510"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\ncase location.presence\nwhen \"wireless\"\n wireless_locations(zone_id)\nwhen \"desk\"\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(cam_locs[0]) | typeof(desk_locs[0])).new(cam_locs.size + desk_locs.size)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nwhen nil\n wireless_locs = wireless_locations(zone_id)\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(wireless_locs[0]) | typeof(cam_locs[0]) | typeof(desk_locs[0])).new((wireless_locs.size + cam_locs.size) + desk_locs.size)\n combind.concat(wireless_locs)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nelse\n [] of String\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":935,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L935"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L400"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"hostname_ownership(hostname:String,username:String|Nil):Nil-instance-method","name":"hostname_ownership","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(hostname : String, username : String | Nil) : Nil","args_html":"(hostname : String, username : String | Nil) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1006,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1006"},"def":{"name":"hostname_ownership","args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"macs = @mac_hostnames.compact_map do |__temp_192|\n mac, host = __temp_192\n host == hostname ? mac : nil\nend\nif username && username.presence\n user_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(mac, username, storage)\n end\n end\nelse\n macs.each do |mac|\n @mac_hostnames.delete(mac)\n end\nend\n"}},{"html_id":"inspect_foorplans:Hash(String,Cisco::Meraki::FloorPlan)-instance-method","name":"inspect_foorplans","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L269"},"def":{"name":"inspect_foorplans","visibility":"Public","body":"@floorplan_sizes"}},{"html_id":"inspect_network_devices:Hash(String,Cisco::Meraki::NetworkDevice)-instance-method","name":"inspect_network_devices","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L274"},"def":{"name":"inspect_network_devices","visibility":"Public","body":"@network_devices"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L279"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"IP Mappings: #{@ip_lookup.keys}\\n\\nMAC Locations: #{@locations.keys}\\n\\nClient Details: #{@client_details.keys}\"\nend\n{ip_mappings: @ip_lookup.size, tracking: @locations.size, client_details: @client_details.size}\n"}},{"html_id":"ip_username_mappings(ip_map:Array(Tuple(String,String,String,String|Nil))):Nil-instance-method","name":"ip_username_mappings","abstract":false,"args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"args_string":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","args_html":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":943,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L943"},"def":{"name":"ip_username_mappings","args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"return_type":"Nil","visibility":"Public","body":"now = Time.utc\nuser_mac_mappings do |storage|\n ip_map.each do |__temp_191|\n ip, username, domain, hostname = __temp_191\n username = format_username(username)\n @ip_usernames[ip] = Lookup.new(now, username)\n if lookup = @ip_lookup[ip]?\n map_user_mac(lookup.mac, username, storage)\n end\n end\nend\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L264"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@locations[format_mac(address)]?"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"returns locations based on most recently seen\nversus most accurate location","summary":"

returns locations based on most recently seen versus most accurate location

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L431"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n location_max_age = @max_location_age.ago\n (Array(String).from_json(macs)).compact_map do |mac|\n if location = locate_mac(mac)\n client = @client_details[mac]?\n if @regex_filter_device_os\n if client && client.os\n if (/#{@regex_filter_device_os}/).match(client.os.not_nil!)\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS does not match regex filter\"\n end\n next\n end\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS is UNKNOWN\"\n end\n next\n end\n end\n location.client = client\n location.mac = mac\n if client && client.time_added > location_max_age\n location\n else\n if location.time > location_max_age\n location\n end\n end\n end\n end.sort! do |a, b|\n b.time <=> a.time\n end.map do |location|\n lat = location.lat\n lon = location.lng\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => location.x, \"y\" => location.y, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, \"mac\" => location.mac, \"variance\" => location.variance, \"last_seen\" => location.time.to_unix, \"meraki_floor_id\" => location.floor_plan_id, \"meraki_floor_name\" => location.floor_plan_name}\n if level_data = @floorplan_mappings[location.floor_plan_id]?\n level_data.each do |k, v|\n loc[k] = v\n end\n end\n if map_size = @floorplan_sizes[location.floor_plan_id]?\n loc[\"map_width\"] = map_size.width\n loc[\"map_height\"] = map_size.height\n end\n if client = location.client\n if client.manufacturer\n loc[\"manufacturer\"] = client.manufacturer\n end\n if client.os\n loc[\"os\"] = client.os\n end\n if client.ssid\n loc[\"ssid\"] = client.ssid\n end\n end\n loc\n end\nelse\n [] of Nil\nend\n"}},{"html_id":"locateable-instance-method","name":"locateable","doc":"Returns the list of users who can be located","summary":"

Returns the list of users who can be located

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L288"},"def":{"name":"locateable","visibility":"Public","body":"too_old = @max_location_age.ago\n@client_details.compact_map do |mac, client|\n location = @locations[mac]?\n if location && ((location.time > too_old) || (client.time_added > too_old))\n client.user\n end\nend\n"}},{"html_id":"lookup_ip(address:String)-instance-method","name":"lookup_ip","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L260"},"def":{"name":"lookup_ip","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@ip_lookup[address.downcase]?"}},{"html_id":"lux:Hash(String,Float64)-instance-method","name":"lux","doc":"serial => lux","summary":"

serial => lux

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L224"},"def":{"name":"lux","return_type":"Hash(String, Float64)","visibility":"Public","body":"@lux"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":958,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L958"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"mac_hostnames:Hash(String,String)-instance-method","name":"mac_hostnames","doc":"User lookup helpers using device hostnames","summary":"

User lookup helpers using device hostnames

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":981,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L981"},"def":{"name":"mac_hostnames","return_type":"Hash(String, String)","visibility":"Public","body":"@mac_hostnames"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L409"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"map_users_to_macs(network_id:String|Nil=nil)-instance-method","name":"map_users_to_macs","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L310"},"def":{"name":"map_users_to_macs","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"mapping users to device MACs\"\nend\nclients = poll_clients(network_id)\nnew_devices = 0\nupdated_dev = 0\nnow = Time.utc\nlogger.debug do\n \"mapping found #{clients.size} devices\"\nend\nuser_mac_mappings do |storage|\n clients.each do |client|\n user_mac = format_mac(client.mac)\n client.time_added = now\n if hostname = client.description\n @mac_hostnames[user_mac] = hostname\n end\n user_id = client.user\n if user_id\n @ignore_usernames.each do |name|\n if user_id.starts_with?(name)\n client.user = user_id = nil\n break\n end\n end\n end\n if user_id.nil?\n if known_id = storage[user_mac]?\n client.user = known_id\n end\n end\n @client_details[user_mac] = client\n if user_id\n else\n next\n end\n was_update, was_new = map_user_mac(user_mac, user_id, storage)\n if was_update\n updated_dev = updated_dev + 1\n end\n if was_new\n new_devices = new_devices + 1\n end\n end\nend\nlogger.debug do\n \"mapping assigned #{new_devices} new devices, #{updated_dev} user updated\"\nend\nnil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L84"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@default_network = (setting?(String, :default_network_id)) || \"\"\n@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@acceptable_confidence = (setting?(Float64, :acceptable_confidence)) || 5.0\n@maximum_uncertainty = (setting?(Float64, :maximum_uncertainty)) || 25.0\n@override_min_variance = (setting?(Float64, :override_min_variance)) || 0.0\n@regex_filter_device_os = setting?(String, :regex_filter_device_os)\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\n@confidence_time = @max_location_age / 3\n@drift_location_age = @max_location_age - @confidence_time\n@time_multiplier = 1.0 / (@drift_location_age.to_i - @confidence_time.to_i).to_f64\n@confidence_multiplier = 1.0 / (@maximum_uncertainty.to_i - @acceptable_confidence.to_i).to_f64\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\ndisable_username_lookup = (setting?(Bool, :disable_username_lookup)) || false\nschedule.clear\ninit_wired_port_mappings\nif @default_network.presence\n schedule.every(59.seconds) do\n update_sensor_cache\n end\n if disable_username_lookup\n else\n schedule.every(2.minutes) do\n map_users_to_macs\n end\n end\n schedule.every(29.minutes) do\n sync_floorplan_sizes\n end\n schedule.in(30.milliseconds) do\n sync_floorplan_sizes\n update_sensor_cache\n end\nend\nschedule.every(30.minutes) do\n cleanup_caches\nend\nsubscriptions.clear\nif @default_network.presence\n dashboard.subscribe(@default_network) do |_subscription, new_value|\n parse_new_locations(new_value)\n end\nend\nzones = config.control_system.not_nil!.zones\nspawn do\n find_building(zones)\nend\nif system.exists?(:MerakiMQTT)\n mqtt_module = system[:MerakiMQTT]\n mqtt_module.subscribe(:floor_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @floor_lookup = Hash(String, FloorMapping).from_json(new_value)\n if @zone_lookup.empty?\n else\n update_desk_mappings\n end\n end\n mqtt_module.subscribe(:zone_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @zone_lookup = Hash(String, Array(String)).from_json(new_value)\n if @floor_lookup.empty?\n else\n update_desk_mappings\n end\n end\n schedule.every(10.minutes) do\n update_desk_mappings\n end\n mqtt_module.subscribe(:camera_updated) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n _time, camera_serial = Tuple(Int64, String).from_json(new_value)\n if @desk_mappings.has_key?(camera_serial)\n check_camera_status(mqtt_module, camera_serial)\n end\n end\nend\n"}},{"html_id":"parse_new_locations(payload:String):Nil-instance-method","name":"parse_new_locations","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(payload : String) : Nil","args_html":"(payload : String) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":763,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L763"},"def":{"name":"parse_new_locations","args":[{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"if @debug_payload\n logger.debug do\n payload\n end\nend\nlocations_updated = 0\nbegin\n observations = Array(Observation).from_json(payload)\n logger.debug do\n \"parsed meraki payload\"\n end\n ignore_older = @max_location_age.ago.in(Time::Location::UTC)\n drift_older = @drift_location_age.ago.in(Time::Location::UTC)\n current_time = Time.utc\n observations.each do |observation|\n client_mac = format_mac(observation.client_mac)\n existing = @locations[client_mac]?\n if @debug_webhook\n logger.debug do\n \"parsing new observation for #{client_mac}\"\n end\n end\n if @regex_filter_device_os\n client = @client_details[format_mac(observation.client_mac)]?\n if client.nil? || (/#{@regex_filter_device_os}/).match(client.os || \"\").nil?\n if @debug_webhook\n logger.debug do\n \"FILTERED OUT #{client_mac}: OS \\\"#{observation.os}\\\" did not match \\\"#{@regex_filter_device_os}\\\"\"\n end\n end\n next\n end\n end\n location = parse(existing, ignore_older, drift_older, observation)\n if location\n @locations[client_mac] = location\n locations_updated = locations_updated + 1\n end\n update_ipv4(observation.ipv4, client_mac, current_time)\n update_ipv6(observation.ipv6.try(&.downcase), client_mac, current_time)\n end\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{payload}\"\n end\nend\nlogger.debug do\n \"updated #{locations_updated} locations\"\nend\n"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil)-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L297"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nArray(Client).from_json((dashboard.poll_clients(network_id, timespan, connection, device_serial)).get.to_json)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1163"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ncam_state = @camera_analytics[format_mac(mac)]?\nif cam_state\nelse\n return nil\nend\narea_str, _, sensor_type = id.rpartition('-')\nfilter = case sensor_type\nwhen \"people\"\n SensorType::PeopleCount\nwhen \"presence\"\n SensorType::Presence\nelse\n return nil\nend\narea_id = area_str.to_i64?\nif area_id\nelse\n return nil\nend\nzone_count = cam_state[:details].zones[area_id]?.try(&.person)\nif zone_count\nelse\n return nil\nend\n(to_sensors(nil, filter, **cam_state)).find do |sensor|\n sensor.id == id\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1148"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && !(type.in?({\"Presence\", \"PeopleCount\"}))\n return NO_MATCH\nend\nfilter = type ? SensorType.parse(type) : nil\nif mac\n cam_state = @camera_analytics[format_mac(mac)]?\n if cam_state\n else\n return NO_MATCH\n end\n return to_sensors(zone_id, filter, **cam_state)\nend\n@camera_analytics.values.flat_map do |cam_data|\n to_sensors(zone_id, filter, **cam_data)\nend\n"}},{"html_id":"sync_floorplan_sizes(network_id:String|Nil=nil)-instance-method","name":"sync_floorplan_sizes","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L676"},"def":{"name":"sync_floorplan_sizes","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"syncing floor plan sizes for network #{network_id}\"\nend\nfloor_plans = {} of String => FloorPlan\nreq_all(\"/api/v1/networks/#{network_id}/floorPlans?perPage=1000\") do |response|\n (Array(FloorPlan).from_json(response)).each do |plan|\n floor_plans[plan.id] = plan\n end\n nil\nend\n@floorplan_sizes = floor_plans\nnetwork_devices = {} of String => NetworkDevice\ncameras = [] of NetworkDevice\nreq_all(\"/api/v1/networks/#{network_id}/devices?perPage=1000\") do |response|\n (Array(NetworkDevice).from_json(response)).each do |device|\n if device.firmware.starts_with?(\"cam\")\n cameras << device\n end\n if device.floor_plan_id\n else\n next\n end\n network_devices[format_mac(device.mac)] = device\n end\n nil\nend\n@network_devices = network_devices\n@cameras = cameras\n{floor_plans, network_devices}\n"}},{"html_id":"update_desk_mappings-instance-method","name":"update_desk_mappings","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1297"},"def":{"name":"update_desk_mappings","visibility":"Public","body":"desk_mappings = Hash(String, Array(CameraZone)).new\n@floor_lookup.keys.each do |serial|\n begin\n desk_mappings[serial] = (Array(CameraZone).from_json((dashboard.get_zones(serial)).get.to_json)).reject!() do |__arg7|\n __arg7.id == \"0\"\n end\n rescue error\n logger.warn(exception: error) do\n \"fetching zones for camera: #{serial}\"\n end\n end\nend\n@desk_mappings = desk_mappings\nmqtt_module = system[:MerakiMQTT]\ndesk_mappings.keys.each do |camera_serial|\n check_camera_status(mqtt_module, camera_serial)\nend\n"}},{"html_id":"update_sensor_cache-instance-method","name":"update_sensor_cache","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":728,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L728"},"def":{"name":"update_sensor_cache","visibility":"Public","body":"analytics = {} of String => CamAnalytics\ncameras.each do |cam|\n begin\n mappings = @floorplan_mappings[cam.floor_plan_id]?\n counts = camera_analytics(cam.serial)\n mac = format_mac(cam.mac)\n if mappings\n analytics[mac] = {camera: cam, details: counts, building: mappings[\"building\"]?.as(String | ::Nil), level: mappings[\"level\"]?.as(String | ::Nil)}\n else\n analytics[mac] = {camera: cam, details: counts, building: nil.as(String | ::Nil), level: nil.as(String | ::Nil)}\n end\n counts.zones.each do |area_id, count|\n self[\"people-#{mac}-#{area_id}\"] = count.person\n self[\"presence-#{mac}-#{area_id}\"] = count.person > 0\n end\n rescue error\n logger.debug(exception: error) do\n \"failed to obtain analytics for #{cam.name} (serial: #{cam.serial})\"\n end\n end\nend\n@camera_analytics = analytics\n"}},{"html_id":"wired_desk_locations(zone_id:String)-instance-method","name":"wired_desk_locations","doc":"grabs the wired desk data for a level","summary":"

grabs the wired desk data for a level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L1064"},"def":{"name":"wired_desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"return_empty_spaces = @return_empty_spaces\nserials = if zone_id == @building_zone\n @level_serials.values.flatten\nelse\n @level_serials[zone_id]? || ([] of String)\nend\nserials.compact_map do |serial|\n ports = @port_status[serial]?\n if ports\n else\n next\n end\n ports.map do |__temp_193|\n port_num, port = __temp_193\n occupied = port.status.connected? ? 1 : 0\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: port.desk_id, level: port.level_id, building: @building_zone, capacity: 1, mac: port.mac, port: port_num, switch: port.switch_serial}\n end\nend.flatten\n"}},{"html_id":"wireless_locations(zone_id:String)-instance-method","name":"wireless_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":534,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L534"},"def":{"name":"wireless_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"floors = [] of String\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of String\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago\nmatching = @locations.compact_map do |mac, loc|\n client = @client_details[mac]?\n loc.client = client\n if loc.time < oldest_location\n if client\n if client.time_added < oldest_location\n too_old = too_old + 1\n next\n end\n else\n too_old = too_old + 1\n next\n end\n end\n if !(floors.includes?(loc.floor_plan_id))\n wrong_floor = wrong_floor + 1\n next\n end\n loc.mac = mac\n loc\nend\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.floor_plan_id).flat_map do |floor_id, locations|\n map_width = -1.0\n map_height = -1.0\n if map_size = @floorplan_sizes[floor_id]?\n map_width = map_size.width\n map_height = map_size.height\n else\n if mappings = @floorplan_mappings[floor_id]?\n map_width = (mappings[\"width\"]? || map_width).as(Float64)\n map_height = (mappings[\"height\"]? || map_width).as(Float64)\n end\n end\n locations.compact_map do |loc|\n lat = loc.lat\n lon = loc.lng\n if client = @client_details[loc.mac]?\n manufacturer = client.manufacturer\n os = client.os\n ssid = client.ssid\n end\n if (x = loc.x) && (y = loc.y)\n if x.is_a?(Float64) && y.is_a?(Float64)\n if (loc.x.as(Float64)).nan? || (loc.y.as(Float64)).nan?\n logger.warn do\n \"ignoring bad location for #{loc.mac}, NaN\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, unexpected value #{loc.x.inspect}\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, no coordinates provided\"\n end\n next\n end\n {location: :wireless, coordinates_from: \"bottom-left\", x: loc.x, y: loc.y, lon: lon, lat: lat, s2_cell_id: lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, mac: loc.mac, variance: loc.variance, last_seen: loc.time.to_unix, map_width: map_width, map_height: map_height, manufacturer: manufacturer, os: os, ssid: ssid}\n end\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Locations/CamAnalytics","path":"Cisco/Meraki/Locations/CamAnalytics.html","kind":"alias","full_name":"Cisco::Meraki::Locations::CamAnalytics","name":"CamAnalytics","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":717,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L717"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String | Nil, level: String | Nil)","aliased_html":"{camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String?, level: String?}","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}},{"html_id":"drivers/Cisco/Meraki/Locations/Lookup","path":"Cisco/Meraki/Locations/Lookup.html","kind":"struct","full_name":"Cisco::Meraki::Locations::Lookup","name":"Lookup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"},"constructors":[{"html_id":"new(time:Time,mac:String)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"args_string":"(time : Time, mac : String)","args_html":"(time : Time, mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L252"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time, mac)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations/WiredDesks","path":"Cisco/Meraki/Locations/WiredDesks.html","kind":"alias","full_name":"Cisco::Meraki::Locations::WiredDesks","name":"WiredDesks","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/meraki_locations.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(Int32, String))","aliased_html":"Hash(String, Hash(Int32, String))","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}}]},{"html_id":"drivers/Cisco/Meraki/LuxLevel","path":"Cisco/Meraki/LuxLevel.html","kind":"class","full_name":"Cisco::Meraki::LuxLevel","name":"LuxLevel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lux:Float64-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L40"},"def":{"name":"lux","return_type":"Float64","visibility":"Public","body":"@lux"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","doc":"Not actually provided for this message, but here for testing","summary":"

Not actually provided for this message, but here for testing

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt_models.cr#L38"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @timestamp).nil?\n @timestamp = (Time.utc.to_unix)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/MessageType","path":"Cisco/Meraki/MessageType.html","kind":"enum","full_name":"Cisco::Meraki::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L284"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"WiFi","name":"WiFi","value":"1"},{"id":"Bluetooth","name":"Bluetooth","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"bluetooth?-instance-method","name":"bluetooth?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L287"},"def":{"name":"bluetooth?","visibility":"Public","body":"self == Bluetooth"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L285"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"wi_fi?-instance-method","name":"wi_fi?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L286"},"def":{"name":"wi_fi?","visibility":"Public","body":"self == WiFi"}}]},{"html_id":"drivers/Cisco/Meraki/MQTT","path":"Cisco/Meraki/MQTT.html","kind":"class","full_name":"Cisco::Meraki::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LUX_ID","name":"LUX_ID","value":"\"lux\""},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SUBS","name":"SUBS","value":"{\"/merakimv/+/net.meraki.detector\", \"/merakimv/+/light\", \"/merakimv/+/0\", \"/merakimv/+/crossing/+\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L149"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\nend\n"}},{"html_id":"crossing_people:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_people","doc":"Serial => count","summary":"

Serial => count

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L192"},"def":{"name":"crossing_people","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_people).nil?\n @crossing_people = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"crossing_vehicle:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_vehicle","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L196"},"def":{"name":"crossing_vehicle","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_vehicle).nil?\n @crossing_vehicle = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L163"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"lux:Hash(String,Tuple(Float64,Int64))-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L200"},"def":{"name":"lux","return_type":"Hash(String, Tuple(Float64, Int64))","visibility":"Public","body":"@lux"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L80"},"def":{"name":"on_load","visibility":"Public","body":"@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L85"},"def":{"name":"on_unload","visibility":"Public","body":""}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\nzone_lookup = Hash(String, Array(String)).new do |h, k|\n h[k] = [] of String\nend\nfloor_lookup = {} of String => FloorMapping\nfloor_mappings = (setting?(Array(FloorMapping), :floor_mappings)) || ([] of FloorMapping)\nfloor_mappings.each do |mapping|\n mapping.camera_serials.each do |serial|\n zone_lookup[mapping.level_id] << serial\n if mapping.building_id\n zone_lookup[mapping.building_id.not_nil!] << serial\n end\n floor_lookup[serial] = mapping\n end\nend\nself[:floor_lookup] = @floor_lookup = floor_lookup\nself[:zone_lookup] = zone_lookup\nexisting = @subs\n@subs = SUBS.to_a\n@line_crossing = line_crossing_combined = (setting?(Hash(String, Array(String)), :line_crossing_combined)) || ({} of String => Array(String))\nline_crossing_mapping = {} of String => String\nline_crossing_combined.each do |name, serials|\n serials.each do |serial|\n line_crossing_mapping[serial] = name\n end\nend\n@crossing_lookup = line_crossing_mapping\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif !(setting?(Bool, :disable_line_crossing_reset))\n time_zone = (setting?(String, :timezone)).presence || \"America/New_York\"\n tz = Time::Location.load(time_zone)\n schedule.cron(\"30 3 * * *\", tz) do\n crossing_people.each_key do |key|\n self[\"camera_mvx-#{key}_person\"] = 0\n end\n crossing_people.clear\n crossing_vehicle.each_key do |key|\n self[\"camera_mvx-#{key}_vehicle\"] = 0\n end\n crossing_vehicle.clear\n end\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n client.unsubscribe(sub)\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"people_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L179"},"def":{"name":"people_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @people_counts).nil?\n @people_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L168"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\n@mqtt.not_nil!.ping\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L173"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L254"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif id == \"lux\"\n (add_lux_values([] of Detail, mac)).first?\nelse\n if id.starts_with?(\"zone\")\n zone, count_type = id.split('_', 2)\n zone = zone[4..-1]\n sensor_type = SensorType::PeopleCount\n lookup = case count_type\n when \"people\"\n people_counts\n when \"vehicles\"\n sensor_type = SensorType::Counter\n vehicle_counts\n end\n if lookup\n if counts = lookup[mac]?\n if count = counts[zone]?\n to_sensor(sensor_type, mac, \"zone#{zone}_#{count_type}\", count[0], count[1])\n end\n end\n end\n else\n nil\n end\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L291"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n serial_filter = nil\n if zone_id && !@floor_lookup.empty?\n serial_filter = [] of String\n @floor_lookup.each do |serial, floor|\n if {floor.level_id, floor.building_id}.includes?(zone_id)\n serial_filter << serial\n end\n end\n end\n sensors = [] of Detail\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n case filter\n when nil\n add_lux_values(sensors, mac, serial_filter)\n add_people_counts(sensors, mac, serial_filter)\n add_vehicle_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .people_count?\n add_people_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n when .counter?\n add_vehicle_counts(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .illuminance?\n add_lux_values(sensors, mac, serial_filter)\n else\n sensors\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"vehicle_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"vehicle_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/mqtt.cr#L185"},"def":{"name":"vehicle_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @vehicle_counts).nil?\n @vehicle_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/Network","path":"Cisco/Meraki/Network.html","kind":"class","full_name":"Cisco::Meraki::Network","name":"Network","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"enrollment_string:String|Nil-instance-method","name":"enrollment_string","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string","return_type":"String | ::Nil","visibility":"Public","body":"@enrollment_string"}},{"html_id":"enrollment_string=(enrollment_string:String|Nil)-instance-method","name":"enrollment_string=","abstract":false,"args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"args_string":"(enrollment_string : String | Nil)","args_html":"(enrollment_string : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string=","args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"@enrollment_string = enrollment_string"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"organization_id:String-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id","return_type":"String","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:String)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"product_types:Array(String)-instance-method","name":"product_types","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types","return_type":"Array(String)","visibility":"Public","body":"@product_types"}},{"html_id":"product_types=(product_types:Array(String))-instance-method","name":"product_types=","abstract":false,"args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"args_string":"(product_types : Array(String))","args_html":"(product_types : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types=","args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"visibility":"Public","body":"@product_types = product_types"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"time_zone=(time_zone:String)-instance-method","name":"time_zone=","abstract":false,"args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"args_string":"(time_zone : String)","args_html":"(time_zone : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone=","args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"visibility":"Public","body":"@time_zone = time_zone"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/NetworkDevice","path":"Cisco/Meraki/NetworkDevice.html","kind":"class","full_name":"Cisco::Meraki::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"floor_plan_id:String|Nil-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_plan_id"}},{"html_id":"floor_plan_id=(floor_plan_id:String|Nil)-instance-method","name":"floor_plan_id=","abstract":false,"args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(floor_plan_id : String | Nil)","args_html":"(floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id=","args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_plan_id = floor_plan_id"}},{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"location:DeviceLocation|Nil-instance-method","name":"location","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location","return_type":"DeviceLocation | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:DeviceLocation|Nil)-instance-method","name":"location=","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"args_string":"(location : DeviceLocation | Nil)","args_html":"(location : DeviceLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"model:String-instance-method","name":"model","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:String)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"@serial = serial"}}]},{"html_id":"drivers/Cisco/Meraki/Observation","path":"Cisco/Meraki/Observation.html","kind":"class","full_name":"Cisco::Meraki::Observation","name":"Observation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L259"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L260"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"ipv4:String|Nil-instance-method","name":"ipv4","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4","return_type":"String | ::Nil","visibility":"Public","body":"@ipv4"}},{"html_id":"ipv4=(ipv4:String|Nil)-instance-method","name":"ipv4=","abstract":false,"args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"args_string":"(ipv4 : String | Nil)","args_html":"(ipv4 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4=","args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv4 = ipv4"}},{"html_id":"ipv6:String|Nil-instance-method","name":"ipv6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6","return_type":"String | ::Nil","visibility":"Public","body":"@ipv6"}},{"html_id":"ipv6=(ipv6:String|Nil)-instance-method","name":"ipv6=","abstract":false,"args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"args_string":"(ipv6 : String | Nil)","args_html":"(ipv6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6=","args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv6 = ipv6"}},{"html_id":"latest_record:LatestRecord-instance-method","name":"latest_record","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record","return_type":"LatestRecord","visibility":"Public","body":"@latest_record"}},{"html_id":"latest_record=(latest_record:LatestRecord)-instance-method","name":"latest_record=","abstract":false,"args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"args_string":"(latest_record : LatestRecord)","args_html":"(latest_record : LatestRecord)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record=","args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"visibility":"Public","body":"@latest_record = latest_record"}},{"html_id":"locations:Array(DeviceLocation)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations","return_type":"Array(DeviceLocation)","visibility":"Public","body":"@locations"}},{"html_id":"locations=(locations:Array(DeviceLocation))-instance-method","name":"locations=","abstract":false,"args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"args_string":"(locations : Array(DeviceLocation))","args_html":"(locations : Array(DeviceLocation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations=","args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"visibility":"Public","body":"@locations = locations"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}}]},{"html_id":"drivers/Cisco/Meraki/Organization","path":"Cisco/Meraki/Organization.html","kind":"class","full_name":"Cisco::Meraki::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api:NamedTuple(enabled:Bool)-instance-method","name":"api","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api","return_type":"NamedTuple(enabled: Bool)","visibility":"Public","body":"@api"}},{"html_id":"api=(api:NamedTuple(enabled:Bool))-instance-method","name":"api=","abstract":false,"args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"args_string":"(api : NamedTuple(enabled: Bool))","args_html":"(api : NamedTuple(enabled: Bool))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api=","args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"visibility":"Public","body":"@api = api"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/PortState","path":"Cisco/Meraki/PortState.html","kind":"enum","full_name":"Cisco::Meraki::PortState","name":"PortState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L400"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Connected","name":"Connected","value":"0"},{"id":"Disconnected","name":"Disconnected","value":"1"},{"id":"Disabled","name":"Disabled","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"connected?-instance-method","name":"connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L401"},"def":{"name":"connected?","visibility":"Public","body":"self == Connected"}},{"html_id":"disabled?-instance-method","name":"disabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L403"},"def":{"name":"disabled?","visibility":"Public","body":"self == Disabled"}},{"html_id":"disconnected?-instance-method","name":"disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L402"},"def":{"name":"disconnected?","visibility":"Public","body":"self == Disconnected"}}]},{"html_id":"drivers/Cisco/Meraki/PortStatusResponse","path":"Cisco/Meraki/PortStatusResponse.html","kind":"class","full_name":"Cisco::Meraki::PortStatusResponse","name":"PortStatusResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_id:String-instance-method","name":"desk_id","abstract":false,"def":{"name":"desk_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @desk_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#desk_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"desk_id=(desk_id:String)-instance-method","name":"desk_id=","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String)","args_html":"(desk_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":428,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L428"},"def":{"name":"desk_id=","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"visibility":"Public","body":"@desk_id = desk_id"}},{"html_id":"desk_id?:String|Nil-instance-method","name":"desk_id?","abstract":false,"def":{"name":"desk_id?","return_type":"String | ::Nil","visibility":"Public","body":"@desk_id"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L415"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_uplink?:Bool-instance-method","name":"is_uplink?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L419"},"def":{"name":"is_uplink?","return_type":"Bool","visibility":"Public","body":"@is_uplink"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#level_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"level_id=(level_id:String)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String)","args_html":"(level_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L431"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_id?:String|Nil-instance-method","name":"level_id?","abstract":false,"def":{"name":"level_id?","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"port:Int32-instance-method","name":"port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L413"},"def":{"name":"port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @port).nil?\n @port = (port_id.to_i)\nelse\n __temp_1\nend"}},{"html_id":"port_id:String-instance-method","name":"port_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L410"},"def":{"name":"port_id","return_type":"String","visibility":"Public","body":"@port_id"}},{"html_id":"status:PortState-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L416"},"def":{"name":"status","return_type":"PortState","visibility":"Public","body":"@status"}},{"html_id":"switch_serial:String-instance-method","name":"switch_serial","abstract":false,"def":{"name":"switch_serial","return_type":"String","visibility":"Public","body":"if (__temp_1 = @switch_serial).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#switch_serial cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"switch_serial=(switch_serial:String)-instance-method","name":"switch_serial=","abstract":false,"args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"args_string":"(switch_serial : String)","args_html":"(switch_serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L422"},"def":{"name":"switch_serial=","args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"visibility":"Public","body":"@switch_serial = switch_serial"}},{"html_id":"switch_serial?:String|Nil-instance-method","name":"switch_serial?","abstract":false,"def":{"name":"switch_serial?","return_type":"String | ::Nil","visibility":"Public","body":"@switch_serial"}}]},{"html_id":"drivers/Cisco/Meraki/RSSI","path":"Cisco/Meraki/RSSI.html","kind":"class","full_name":"Cisco::Meraki::RSSI","name":"RSSI","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L154"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L155"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}}]},{"html_id":"drivers/Cisco/Meraki/WebhookAlert","path":"Cisco/Meraki/WebhookAlert.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alert_data:PortData-instance-method","name":"alert_data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L387"},"def":{"name":"alert_data","return_type":"PortData","visibility":"Public","body":"@alert_data"}},{"html_id":"alert_type:AlertType-instance-method","name":"alert_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":384,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L384"},"def":{"name":"alert_type","return_type":"AlertType","visibility":"Public","body":"@alert_type"}},{"html_id":"device_serial:String-instance-method","name":"device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L390"},"def":{"name":"device_serial","return_type":"String","visibility":"Public","body":"@device_serial"}},{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":381,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L381"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L395"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"alert_data.port_num"}},{"html_id":"shared_secret:String-instance-method","name":"shared_secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L393"},"def":{"name":"shared_secret","return_type":"String","visibility":"Public","body":"@shared_secret"}}],"types":[{"html_id":"drivers/Cisco/Meraki/WebhookAlert/PortData","path":"Cisco/Meraki/WebhookAlert/PortData.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert::PortData","name":"PortData","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L373"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/WebhookAlert","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L374"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L377"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"@port_num"}}]}]},{"html_id":"drivers/Cisco/Meraki/ZoneDetails","path":"Cisco/Meraki/ZoneDetails.html","kind":"struct","full_name":"Cisco::Meraki::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":352,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L352"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L353"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Cisco/RoomKit","path":"Cisco/RoomKit.html","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L45"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}],"instance_methods":[{"html_id":"autofocus_diagnostics_start(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_start","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L248"},"def":{"name":"autofocus_diagnostics_start","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Start\", camera_id: camera_id)\n"}},{"html_id":"autofocus_diagnostics_stop(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_stop","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L252"},"def":{"name":"autofocus_diagnostics_stop","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Stop\", camera_id: camera_id)\n"}},{"html_id":"bookings(days:Int32|Nil=nil,day_offset:Int32|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L163"},"def":{"name":"bookings","args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if days\n if (1..365).includes?(days)\n else\n raise(ArgumentError.new(\"\\\"days\\\" must be within #{1..365}, was #{days}\"))\n end\nend\nif day_offset\n if (0..365).includes?(day_offset)\n else\n raise(ArgumentError.new(\"\\\"day_offset\\\" must be within #{0..365}, was #{day_offset}\"))\n end\nend\nxcommand(\"Bookings List\", days: days, day_offset: day_offset, limit: limit, offset: offset)\n"}},{"html_id":"call_accept(call_id:Int32|Nil=nil)-instance-method","name":"call_accept","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L169"},"def":{"name":"call_accept","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Accept\", call_id: call_id)"}},{"html_id":"call_place_on_hold(call_id:Int32|Nil=nil)-instance-method","name":"call_place_on_hold","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L172"},"def":{"name":"call_place_on_hold","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Hold\", call_id: call_id)"}},{"html_id":"call_reject(call_id:Int32|Nil=nil)-instance-method","name":"call_reject","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L170"},"def":{"name":"call_reject","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Reject\", call_id: call_id)"}},{"html_id":"call_resume(call_id:Int32|Nil=nil)-instance-method","name":"call_resume","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L173"},"def":{"name":"call_resume","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Resume\", call_id: call_id)"}},{"html_id":"camera_select(connector_id:Int32|Nil=nil,layout:VideoLayout|Nil=nil,source_id:Int32|Nil=nil)-instance-method","name":"camera_select","abstract":false,"args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"args_string":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","args_html":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L202"},"def":{"name":"camera_select","args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if connector_id\n if (1..3).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..3}, was #{connector_id}\"))\n end\nend\nif source_id\n if (1..3).includes?(source_id)\n else\n raise(ArgumentError.new(\"\\\"source_id\\\" must be within #{1..3}, was #{source_id}\"))\n end\nend\nxcommand(\"Video Input SetMainVideoSource\", connector_id: connector_id, layout: layout, source_id: source_id)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L60"},"def":{"name":"connected","visibility":"Public","body":"super()\nschedule.in(40.seconds) do\n if self[\"calls\"]?.nil?\n disconnect\n end\nend\n"}},{"html_id":"dial(number:String,protocol:DialProtocol|Nil=nil,call_rate:Int32|Nil=nil,call_type:CallType|Nil=nil)-instance-method","name":"dial","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"args_string":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","args_html":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L191"},"def":{"name":"dial","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"visibility":"Public","body":"if call_rate\n if (64..6000).includes?(call_rate)\n else\n raise(ArgumentError.new(\"\\\"call_rate\\\" must be within #{64..6000}, was #{call_rate}\"))\n end\nend\nxcommand(\"Dial\", number: number, protocol: protocol, call_rate: call_rate, call_type: call_type)\n"}},{"html_id":"dtmf_send(d_t_m_f_string:String,call_id:Int32|Nil=nil)-instance-method","name":"dtmf_send","abstract":false,"args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","args_html":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L175"},"def":{"name":"dtmf_send","args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if call_id\n if (0..65534).includes?(call_id)\n else\n raise(ArgumentError.new(\"\\\"call_id\\\" must be within #{0..65534}, was #{call_id}\"))\n end\nend\nxcommand(\"Call DTMFSend\", d_t_m_f_string: d_t_m_f_string, call_id: call_id)\n"}},{"html_id":"hangup(call_id:Int32|Nil=nil)-instance-method","name":"hangup","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L171"},"def":{"name":"hangup","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Disconnect\", call_id: call_id)"}},{"html_id":"mic_mute(state:Bool=true)-instance-method","name":"mic_mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L298"},"def":{"name":"mic_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? mic_mute_on : mic_mute_off"}},{"html_id":"mic_mute_off-instance-method","name":"mic_mute_off","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L121"},"def":{"name":"mic_mute_off","visibility":"Public","body":"xcommand(\"Audio Microphones Unmute\")"}},{"html_id":"mic_mute_on-instance-method","name":"mic_mute_on","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L120"},"def":{"name":"mic_mute_on","visibility":"Public","body":"xcommand(\"Audio Microphones Mute\")"}},{"html_id":"mic_mute_toggle-instance-method","name":"mic_mute_toggle","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L122"},"def":{"name":"mic_mute_toggle","visibility":"Public","body":"xcommand(\"Audio Microphones ToggleMute\")"}},{"html_id":"phonebook_search(search_string:String,phonebook_type:PhonebookType|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"phonebook_search","abstract":false,"args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L276"},"def":{"name":"phonebook_search","args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Phonebook Search\", search_string: search_string, phonebook_type: phonebook_type, limit: limit, offset: offset)"}},{"html_id":"play_sound(sound:Sound,loop:Toogle|Nil=nil)-instance-method","name":"play_sound","abstract":false,"args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"args_string":"(sound : Sound, loop : Toogle | Nil = nil)","args_html":"(sound : Sound, loop : Toogle | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L158"},"def":{"name":"play_sound","args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"visibility":"Public","body":"xcommand(\"Audio Sound Play\", sound: sound, loop: loop)"}},{"html_id":"presentation_mode(value:PresentationMode)-instance-method","name":"presentation_mode","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"args_string":"(value : PresentationMode)","args_html":"(value : PresentationMode)","location":{"filename":"src/cisco/room_kit.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L302"},"def":{"name":"presentation_mode","args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"visibility":"Public","body":"case value\nin .remote?\n presentation_start(sending_mode: :LocalRemote)\nin .local?\n @presentation_mode = PresentationMode::Local\n presentation_start(sending_mode: :LocalOnly)\nin .none?\n @presentation_mode = PresentationMode::None\n presentation_stop\nend"}},{"html_id":"reboot(action:PowerOff|Nil=nil)-instance-method","name":"reboot","abstract":false,"args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"args_string":"(action : PowerOff | Nil = nil)","args_html":"(action : PowerOff | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L288"},"def":{"name":"reboot","args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"visibility":"Public","body":"xcommand(\"SystemUnit Boot\", action: action)"}},{"html_id":"selfview(mode:Toogle|Nil=nil,full_screen_mode:Toogle|Nil=nil,p_i_p_position:PiPPosition|Nil=nil,on_monitor_role:MonitorRole|Nil=nil)-instance-method","name":"selfview","abstract":false,"args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"args_string":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","args_html":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L241"},"def":{"name":"selfview","args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Selfview Set\", mode: mode, full_screen_mode: full_screen_mode, p_i_p_position: p_i_p_position, on_monitor_role: on_monitor_role)"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/room_kit.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L340"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == config.ip\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/room_kit.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L322"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"show_camera_pip(visible:Bool)-instance-method","name":"show_camera_pip","abstract":false,"args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"args_string":"(visible : Bool)","args_html":"(visible : Bool)","location":{"filename":"src/cisco/room_kit.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L293"},"def":{"name":"show_camera_pip","args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"visibility":"Public","body":"mode = visible ? Toogle::On : Toogle::Off\nselfview(mode: mode)\n"}},{"html_id":"speaker_track(state:Bool=true)-instance-method","name":"speaker_track","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L267"},"def":{"name":"speaker_track","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? speaker_track_activate : speaker_track_deactivate"}},{"html_id":"speaker_track_activate-instance-method","name":"speaker_track_activate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L262"},"def":{"name":"speaker_track_activate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Activate\")"}},{"html_id":"speaker_track_deactivate-instance-method","name":"speaker_track_deactivate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L265"},"def":{"name":"speaker_track_deactivate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Deactivate\")"}},{"html_id":"speaker_track_diagnostics_start-instance-method","name":"speaker_track_diagnostics_start","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L256"},"def":{"name":"speaker_track_diagnostics_start","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Start\")"}},{"html_id":"speaker_track_diagnostics_stop-instance-method","name":"speaker_track_diagnostics_stop","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L259"},"def":{"name":"speaker_track_diagnostics_stop","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Stop\")"}},{"html_id":"stop_sound-instance-method","name":"stop_sound","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L161"},"def":{"name":"stop_sound","visibility":"Public","body":"xcommand(\"Audio Sound Stop\")"}},{"html_id":"video_layout(layout_family:LayoutFamily,target:LayoutTarget|Nil=nil)-instance-method","name":"video_layout","abstract":false,"args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"args_string":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","args_html":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L220"},"def":{"name":"video_layout","args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Layout LayoutFamily Set\", layout_family: layout_family, target: target)"}},{"html_id":"webview_clear-instance-method","name":"webview_clear","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L285"},"def":{"name":"webview_clear","visibility":"Public","body":"xcommand(\"UserInterface WebView Clear\")"}},{"html_id":"webview_display(url:String)-instance-method","name":"webview_display","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/room_kit.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L282"},"def":{"name":"webview_display","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface WebView Display\", url: url)"}}],"types":[{"html_id":"drivers/Cisco/RoomKit/CallType","path":"Cisco/RoomKit/CallType.html","kind":"enum","full_name":"Cisco::RoomKit::CallType","name":"CallType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L187"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L188"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Cisco/RoomKit/DialProtocol","path":"Cisco/RoomKit/DialProtocol.html","kind":"enum","full_name":"Cisco::RoomKit::DialProtocol","name":"DialProtocol","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L179"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"H320","name":"H320","value":"0"},{"id":"H323","name":"H323","value":"1"},{"id":"Sip","name":"Sip","value":"2"},{"id":"Spark","name":"Spark","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"h320?-instance-method","name":"h320?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L180"},"def":{"name":"h320?","visibility":"Public","body":"self == H320"}},{"html_id":"h323?-instance-method","name":"h323?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L181"},"def":{"name":"h323?","visibility":"Public","body":"self == H323"}},{"html_id":"sip?-instance-method","name":"sip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L182"},"def":{"name":"sip?","visibility":"Public","body":"self == Sip"}},{"html_id":"spark?-instance-method","name":"spark?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L183"},"def":{"name":"spark?","visibility":"Public","body":"self == Spark"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutFamily","path":"Cisco/RoomKit/LayoutFamily.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutFamily","name":"LayoutFamily","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L207"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Equal","name":"Equal","value":"1"},{"id":"Overlay","name":"Overlay","value":"2"},{"id":"Prominent","name":"Prominent","value":"3"},{"id":"Single","name":"Single","value":"4"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L208"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L209"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L210"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"prominent?-instance-method","name":"prominent?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L211"},"def":{"name":"prominent?","visibility":"Public","body":"self == Prominent"}},{"html_id":"single?-instance-method","name":"single?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L212"},"def":{"name":"single?","visibility":"Public","body":"self == Single"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutTarget","path":"Cisco/RoomKit/LayoutTarget.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutTarget","name":"LayoutTarget","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L215"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Local","name":"Local","value":"0"},{"id":"Remote","name":"Remote","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L216"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L217"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/MonitorRole","path":"Cisco/RoomKit/MonitorRole.html","kind":"enum","full_name":"Cisco::RoomKit::MonitorRole","name":"MonitorRole","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L234"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"First","name":"First","value":"0"},{"id":"Second","name":"Second","value":"1"},{"id":"Third","name":"Third","value":"2"},{"id":"Fourth","name":"Fourth","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"first?-instance-method","name":"first?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L235"},"def":{"name":"first?","visibility":"Public","body":"self == First"}},{"html_id":"fourth?-instance-method","name":"fourth?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L238"},"def":{"name":"fourth?","visibility":"Public","body":"self == Fourth"}},{"html_id":"second?-instance-method","name":"second?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L236"},"def":{"name":"second?","visibility":"Public","body":"self == Second"}},{"html_id":"third?-instance-method","name":"third?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L237"},"def":{"name":"third?","visibility":"Public","body":"self == Third"}}]},{"html_id":"drivers/Cisco/RoomKit/PhonebookType","path":"Cisco/RoomKit/PhonebookType.html","kind":"enum","full_name":"Cisco::RoomKit::PhonebookType","name":"PhonebookType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L271"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Corporate","name":"Corporate","value":"0"},{"id":"Local","name":"Local","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"corporate?-instance-method","name":"corporate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L272"},"def":{"name":"corporate?","visibility":"Public","body":"self == Corporate"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L273"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}}]},{"html_id":"drivers/Cisco/RoomKit/PiPPosition","path":"Cisco/RoomKit/PiPPosition.html","kind":"enum","full_name":"Cisco::RoomKit::PiPPosition","name":"PiPPosition","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L224"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CenterLeft","name":"CenterLeft","value":"0"},{"id":"CenterRight","name":"CenterRight","value":"1"},{"id":"LowerLeft","name":"LowerLeft","value":"2"},{"id":"LowerRight","name":"LowerRight","value":"3"},{"id":"UpperCenter","name":"UpperCenter","value":"4"},{"id":"UpperLeft","name":"UpperLeft","value":"5"},{"id":"UpperRight","name":"UpperRight","value":"6"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"center_left?-instance-method","name":"center_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L225"},"def":{"name":"center_left?","visibility":"Public","body":"self == CenterLeft"}},{"html_id":"center_right?-instance-method","name":"center_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L226"},"def":{"name":"center_right?","visibility":"Public","body":"self == CenterRight"}},{"html_id":"lower_left?-instance-method","name":"lower_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L227"},"def":{"name":"lower_left?","visibility":"Public","body":"self == LowerLeft"}},{"html_id":"lower_right?-instance-method","name":"lower_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L228"},"def":{"name":"lower_right?","visibility":"Public","body":"self == LowerRight"}},{"html_id":"upper_center?-instance-method","name":"upper_center?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L229"},"def":{"name":"upper_center?","visibility":"Public","body":"self == UpperCenter"}},{"html_id":"upper_left?-instance-method","name":"upper_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L230"},"def":{"name":"upper_left?","visibility":"Public","body":"self == UpperLeft"}},{"html_id":"upper_right?-instance-method","name":"upper_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L231"},"def":{"name":"upper_right?","visibility":"Public","body":"self == UpperRight"}}]},{"html_id":"drivers/Cisco/RoomKit/PresentationMode","path":"Cisco/RoomKit/PresentationMode.html","kind":"enum","full_name":"Cisco::RoomKit::PresentationMode","name":"PresentationMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L51"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Local","name":"Local","value":"1"},{"id":"Remote","name":"Remote","value":"2"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L53"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L52"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L54"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/Sound","path":"Cisco/RoomKit/Sound.html","kind":"enum","full_name":"Cisco::RoomKit::Sound","name":"Sound","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L133"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Alert","name":"Alert","value":"0"},{"id":"Bump","name":"Bump","value":"1"},{"id":"Busy","name":"Busy","value":"2"},{"id":"CallDisconnect","name":"CallDisconnect","value":"3"},{"id":"CallInitiate","name":"CallInitiate","value":"4"},{"id":"CallWaiting","name":"CallWaiting","value":"5"},{"id":"Dial","name":"Dial","value":"6"},{"id":"KeyInput","name":"KeyInput","value":"7"},{"id":"KeyInputDelete","name":"KeyInputDelete","value":"8"},{"id":"KeyTone","name":"KeyTone","value":"9"},{"id":"Nav","name":"Nav","value":"10"},{"id":"NavBack","name":"NavBack","value":"11"},{"id":"Notification","name":"Notification","value":"12"},{"id":"OK","name":"OK","value":"13"},{"id":"PresentationConnect","name":"PresentationConnect","value":"14"},{"id":"Ringing","name":"Ringing","value":"15"},{"id":"SignIn","name":"SignIn","value":"16"},{"id":"SpecialInfo","name":"SpecialInfo","value":"17"},{"id":"TelephoneCall","name":"TelephoneCall","value":"18"},{"id":"VideoCall","name":"VideoCall","value":"19"},{"id":"VolumeAdjust","name":"VolumeAdjust","value":"20"},{"id":"WakeUp","name":"WakeUp","value":"21"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"alert?-instance-method","name":"alert?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L134"},"def":{"name":"alert?","visibility":"Public","body":"self == Alert"}},{"html_id":"bump?-instance-method","name":"bump?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L135"},"def":{"name":"bump?","visibility":"Public","body":"self == Bump"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L136"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"call_disconnect?-instance-method","name":"call_disconnect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L137"},"def":{"name":"call_disconnect?","visibility":"Public","body":"self == CallDisconnect"}},{"html_id":"call_initiate?-instance-method","name":"call_initiate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L138"},"def":{"name":"call_initiate?","visibility":"Public","body":"self == CallInitiate"}},{"html_id":"call_waiting?-instance-method","name":"call_waiting?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L139"},"def":{"name":"call_waiting?","visibility":"Public","body":"self == CallWaiting"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L140"},"def":{"name":"dial?","visibility":"Public","body":"self == Dial"}},{"html_id":"key_input?-instance-method","name":"key_input?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L141"},"def":{"name":"key_input?","visibility":"Public","body":"self == KeyInput"}},{"html_id":"key_input_delete?-instance-method","name":"key_input_delete?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L142"},"def":{"name":"key_input_delete?","visibility":"Public","body":"self == KeyInputDelete"}},{"html_id":"key_tone?-instance-method","name":"key_tone?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L143"},"def":{"name":"key_tone?","visibility":"Public","body":"self == KeyTone"}},{"html_id":"nav?-instance-method","name":"nav?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L144"},"def":{"name":"nav?","visibility":"Public","body":"self == Nav"}},{"html_id":"nav_back?-instance-method","name":"nav_back?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L145"},"def":{"name":"nav_back?","visibility":"Public","body":"self == NavBack"}},{"html_id":"notification?-instance-method","name":"notification?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L146"},"def":{"name":"notification?","visibility":"Public","body":"self == Notification"}},{"html_id":"ok?-instance-method","name":"ok?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L147"},"def":{"name":"ok?","visibility":"Public","body":"self == OK"}},{"html_id":"presentation_connect?-instance-method","name":"presentation_connect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L148"},"def":{"name":"presentation_connect?","visibility":"Public","body":"self == PresentationConnect"}},{"html_id":"ringing?-instance-method","name":"ringing?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L149"},"def":{"name":"ringing?","visibility":"Public","body":"self == Ringing"}},{"html_id":"sign_in?-instance-method","name":"sign_in?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L150"},"def":{"name":"sign_in?","visibility":"Public","body":"self == SignIn"}},{"html_id":"special_info?-instance-method","name":"special_info?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L151"},"def":{"name":"special_info?","visibility":"Public","body":"self == SpecialInfo"}},{"html_id":"telephone_call?-instance-method","name":"telephone_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L152"},"def":{"name":"telephone_call?","visibility":"Public","body":"self == TelephoneCall"}},{"html_id":"video_call?-instance-method","name":"video_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L153"},"def":{"name":"video_call?","visibility":"Public","body":"self == VideoCall"}},{"html_id":"volume_adjust?-instance-method","name":"volume_adjust?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L154"},"def":{"name":"volume_adjust?","visibility":"Public","body":"self == VolumeAdjust"}},{"html_id":"wake_up?-instance-method","name":"wake_up?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L155"},"def":{"name":"wake_up?","visibility":"Public","body":"self == WakeUp"}}]},{"html_id":"drivers/Cisco/RoomKit/Toogle","path":"Cisco/RoomKit/Toogle.html","kind":"enum","full_name":"Cisco::RoomKit::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L130"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L129"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/RoomKit/VideoLayout","path":"Cisco/RoomKit/VideoLayout.html","kind":"enum","full_name":"Cisco::RoomKit::VideoLayout","name":"VideoLayout","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L197"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"PIP","name":"PIP","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L198"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_kit.cr#L199"},"def":{"name":"pip?","visibility":"Public","body":"self == PIP"}}]}]},{"html_id":"drivers/Cisco/RoomOS","path":"Cisco/RoomOS.html","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_os.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_os.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_os.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/room_os.cr#L38"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}]},{"html_id":"drivers/Cisco/SpacesRoom","path":"Cisco/SpacesRoom.html","kind":"class","full_name":"Cisco::SpacesRoom","name":"SpacesRoom","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/spaces_room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality, SensorType::SoundPressure}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L19"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :cisco_spaces_system)).presence || config.control_system.not_nil!.id\n@module_name = (setting?(String, :cisco_spaces_module)).presence || \"Cisco_Spaces\"\n@room_id = setting(String, :space_room_id)\n"}},{"html_id":"room_id:String-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L20"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/spaces_room.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L52"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == @room_id\nelse\n return nil\nend\n::Union(Interface::Sensor::Detail, ::Nil).from_json((cisco_spaces.sensors(@room_id, id)).get.to_json)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/spaces_room.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L39"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @room_id)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nArray(Interface::Sensor::Detail).from_json((cisco_spaces.sensors(type, @room_id, zone_id)).get.to_json)\n"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/spaces_room.cr#L18"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Cisco/Switch","path":"Cisco/Switch.html","kind":"module","full_name":"Cisco::Switch","name":"Switch","abstract":false,"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Switch/SnoopingCatalyst","path":"Cisco/Switch/SnoopingCatalyst.html","kind":"class","full_name":"Cisco::Switch::SnoopingCatalyst","name":"SnoopingCatalyst","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Switch","kind":"module","full_name":"Cisco::Switch","name":"Switch"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(1.second) do\n query_connected_devices\nend\nschedule.every(1.minute) do\n query_connected_devices\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nqueue.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\n\", \"--More--\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@ignore_macs = ::Set.new(((setting?(Hash(String, String), :ignore_macs)) || ({} of String => String)).values)\nself[:name] = @switch_name = setting?(String, :switch_name)\nself[:ip_address] = config.ip.not_nil!.downcase\nself[:building] = setting?(String, :building)\nself[:level] = setting?(String, :level)\nself[:last_successful_query]? || (self[:last_successful_query] = 0)\n"}},{"html_id":"query_connected_devices-instance-method","name":"query_connected_devices","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L87"},"def":{"name":"query_connected_devices","visibility":"Public","body":"begin\n if @querying_devices\n return\n end\n @querying_devices = true\n logger.debug do\n \"Querying for connected devices\"\n end\n query_interface_status.get\n sleep(3.seconds)\n query_mac_addresses.get\n sleep(3.seconds)\n query_snooping_bindings.get\n sleep(2.seconds)\n nil\nensure\n @querying_devices = false\nend"}},{"html_id":"query_interface_status-instance-method","name":"query_interface_status","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L71"},"def":{"name":"query_interface_status","visibility":"Public","body":"do_send(\"show interfaces status\")"}},{"html_id":"query_mac_addresses-instance-method","name":"query_mac_addresses","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L75"},"def":{"name":"query_mac_addresses","visibility":"Public","body":"@interface_macs.clear\ndo_send(\"show mac address-table\")\n"}},{"html_id":"query_snooping_bindings-instance-method","name":"query_snooping_bindings","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L80"},"def":{"name":"query_snooping_bindings","visibility":"Public","body":"@snooping.clear\ndo_send(\"show ip dhcp snooping binding\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Switch sent: #{data}\"\nend\nif @hostname.nil?\n parts = data.split(\">\")\n if parts.size == 2\n self[:hostname] = @hostname = parts[0]\n return task.try(&.success)\n end\nend\ncase data\nwhen /More/\n send(\" \", priority: 99, retries: 0)\n return task.try(&.success)\nwhen /STATIC|DYNAMIC/\n parts = (data.split(/\\s+/)).reject(&.empty?)\n mac = format(parts[1])\n interface = normalise(parts[-1])\n if mac && interface\n @interface_macs[interface] = mac\n end\n return :success\nwhen /%LINK/\n interface = normalise(((data.split(\",\"))[0].split(/\\s/))[-1])\n if data =~ (/Up:/)\n logger.debug do\n \"Notify Up: #{interface}\"\n end\n @check_interface << interface\n else\n if data =~ (/Down:/)\n logger.debug do\n \"Notify Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\n end\n self[:interfaces] = @check_interface\n return task.try(&.success)\nwhen .starts_with?(\"Total number\")\n logger.debug do\n \"Processing #{@snooping.size} bindings\"\n end\n checked = Set(String).new\n devices = {} of String => NamedTuple(mac: String, ip: String)\n state_changed = false\n @snooping.each do |mac, ip, interface|\n if @check_interface.includes?(interface)\n else\n next\n end\n if @interface_macs[interface]? == mac\n else\n next\n end\n if checked.includes?(interface)\n next\n end\n checked << interface\n iface = @devices[interface]? || {mac: \"\", ip: \"\"}\n if (iface[:ip] != ip) || (iface[:mac] != mac)\n logger.debug do\n \"New connection on #{interface} with #{ip}: #{mac}\"\n end\n devices[interface] = {mac: mac, ip: ip}\n state_changed = true\n else\n devices[interface] = iface\n end\n end\n if state_changed\n @devices = devices\n self[:devices] = devices\n end\n if @check_interface != checked\n @check_interface = checked\n self[:interfaces] = checked\n end\n self[:last_successful_query] = Time.utc.to_unix\n return task.try(&.success)\nend\nentries = (data.split(/\\s+/)).reject(&.empty?)\ncase entries\nwhen .includes?(\"connected\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n else\n logger.debug do\n \"Interface Up: #{interface}\"\n end\n @check_interface << interface\n end\nwhen .includes?(\"notconnect\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n logger.debug do\n \"Interface Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\nelse\n if entries.size > 2\n interface = normalise(entries[-1])\n if @check_interface.includes?(interface)\n mac = entries[0]\n if mac =~ (/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/)\n mac = format(mac)\n ip = entries[1]\n if @ignore_macs.includes?(mac[0..5])\n else\n @snooping << {mac, ip, interface}\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"run(command:String)-instance-method","name":"run","doc":"Don't want the every day user using this method","summary":"

Don't want the every day user using this method

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/switch/snooping_catalyst.cr#L67"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"do_send(command)"}}]}]},{"html_id":"drivers/Cisco/UIExtender","path":"Cisco/UIExtender.html","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IGNORE_METHODS","name":"IGNORE_METHODS","value":"[\"on_load\", \"on_unload\", \"on_update\"] of ::String","doc":"Build a list of all callback methods that have been defined.\n\nCallback methods are denoted being single arity and beginning with `on_`.","summary":"

Build a list of all callback methods that have been defined.

"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"alert(text:String,title:String=\"\",duration:Int32=0)-instance-method","name":"alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"args_string":"(text : String, title : String = \"\", duration : Int32 = 0)","args_html":"(text : String, title : String = "", duration : Int32 = 0)","location":{"filename":"src/cisco/ui_extender.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L200"},"def":{"name":"alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Display\", hash_args: {Text: text, Title: title, Duration: duration})"}},{"html_id":"clear_alert-instance-method","name":"clear_alert","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L211"},"def":{"name":"clear_alert","visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"clear_extensions-instance-method","name":"clear_extensions","doc":"Clear any deployed UI extensions.","summary":"

Clear any deployed UI extensions.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L75"},"def":{"name":"clear_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"close_panel-instance-method","name":"close_panel","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L82"},"def":{"name":"close_panel","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Panel Close\")"}},{"html_id":"deploy_extensions(id:String,xml_def:String)-instance-method","name":"deploy_extensions","doc":"Push a UI definition build with the in-room control editor to the device.","summary":"

Push a UI definition build with the in-room control editor to the device.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L65"},"def":{"name":"deploy_extensions","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Set\", xml_def, {\"config_id\" => id})"}},{"html_id":"highlight(id:String,state:Bool=true,momentary:Bool=false,time:Int32=500)-instance-method","name":"highlight","doc":"Set the highlight state for a button widget.","summary":"

Set the highlight state for a button widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"args_string":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","args_html":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","location":{"filename":"src/cisco/ui_extender.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L145"},"def":{"name":"highlight","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"visibility":"Public","body":"value = state ? \"active\" : \"inactive\"\nif momentary\n schedule.in(time.milliseconds) do\n highlight(id, !state)\n nil\n end\nend\nset(id, value)\n"}},{"html_id":"label(id:String,value:String|Bool|Nil)-instance-method","name":"label","doc":"Set the text label used on text or spinner widget.","summary":"

Set the text label used on text or spinner widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L152"},"def":{"name":"label","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"link_widget(id:String,bindings:Binding)-instance-method","name":"link_widget","doc":"Wire up a widget based on a binding target.","summary":"

Wire up a widget based on a binding target.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"args_string":"(id : String, bindings : Binding)","args_html":"(id : String, bindings : Binding)","location":{"filename":"src/cisco/ui_extender.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L328"},"def":{"name":"link_widget","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"visibility":"Public","body":"logger.debug do\n \"setting up bindings for #{id}\"\nend\nbinding = case bindings\nin String\n (([\"clicked\", \"changed\", \"status\"] of ::String).product([bindings])).to_h\nin Hash(String, Hash(String, Hash(String, Array(String)) | String) | String)\n bindings\nend\nbinding.each do |type, target|\n if type == \"status\"\n case target\n in String\n mod, state = target.split(\".\")\n link_feedback(id, mod, state)\n in Hash(String, String | Hash(String, Array(String)))\n mod, state = target.first\n link_feedback(id, mod, state.as(String))\n end\n else\n handler = build_handler(target)\n if handler\n @event_handlers[{id, type}] = handler\n else\n logger.warn do\n \"invalid #{type} binding for #{id}\"\n end\n end\n end\nend\n"}},{"html_id":"list_extensions-instance-method","name":"list_extensions","doc":"Retrieve the extensions currently loaded.","summary":"

Retrieve the extensions currently loaded.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L70"},"def":{"name":"list_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions List\")"}},{"html_id":"on_extensions_widget_action(event:Hash(String,JSON::Any))-instance-method","name":"on_extensions_widget_action","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"args_string":"(event : Hash(String, JSON::Any))","args_html":"(event : Hash(String, JSON::Any))","location":{"filename":"src/cisco/ui_extender.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L159"},"def":{"name":"on_extensions_widget_action","args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"logger.debug do\n \"received widget action update #{event}\"\nend\ncurrent_key = event.keys.first\ncase current_key\nwhen \"/Event/UserInterface/Extensions/Widget/Action/WidgetId\"\n @action_merged[\"WidgetId\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action\", \"/Event/UserInterface/Extensions/Widget/Action/Value\"\n @action_merged[\"Value\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action/Type\"\n @action_merged[\"Type\"] = event[current_key]\nelse\n logger.debug do\n \"ignoring key #{current_key} processing widget_action event\"\n end\nend\nlogger.debug do\n \"current action state: #{@action_merged}\"\nend\nif @action_merged.size == 3\nelse\n return\nend\nid, value, type = @action_merged.values_at(\"WidgetId\", \"Value\", \"Type\")\n@action_merged = {} of String => JSON::Any\nlogger.debug do\n \"#{id} #{type} = #{value}\"\nend\nid = id.as_s\ntype = type.as_s\nif [\"\", \"increment\", \"decrement\"].includes?(value.raw)\nelse\n self[id] = value\nend\nbegin\n handler = @event_handlers.fetch([id, type], nil)\n handler.try(&.call(value))\nrescue e\n logger.error(exception: e) do\n \"error in binding for #{id}.#{type}\"\n end\nend\nself[:__event_stream] = {id: id, type: type, value: value}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"on_update(true)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L27"},"def":{"name":"on_unload","visibility":"Public","body":"clear_extensions\nunbind\n"}},{"html_id":"on_update(loading=false)-instance-method","name":"on_update","abstract":false,"args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"args_string":"(loading = false)","args_html":"(loading = false)","location":{"filename":"src/cisco/ui_extender.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L37"},"def":{"name":"on_update","args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"visibility":"Public","body":"if loading\nelse\n begin\n clear_events\n rescue\n end\nend\ncodec_mod = (setting?(String, :codec)) || \"VidConf_1\"\nif system.exists?(codec_mod)\nelse\n logger.warn do\n \"could not find codec #{codec_mod}\"\n end\n return\nend\nui_layout = setting?(String, :cisco_ui_layout)\nbindings = (setting?(Bindings, :cisco_ui_bindings)) || ({} of String => Binding)\nbind(codec_mod) do\n if ui_layout\n deploy_extensions(\"PlaceOS\", ui_layout)\n end\n bindings.each do |id, config|\n link_widget(id, config)\n end\nend\n"}},{"html_id":"set(id:String,value:String|Bool|Nil)-instance-method","name":"set","doc":"Set the value of a widget.","summary":"

Set the value of a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L119"},"def":{"name":"set","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"switch(id:String,state:Bool|Nil=nil)-instance-method","name":"switch","doc":"Set the state of a switch widget.","summary":"

Set the state of a switch widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"args_string":"(id : String, state : Bool | Nil = nil)","args_html":"(id : String, state : Bool | Nil = nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L138"},"def":{"name":"switch","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if state.nil?\n state = !(status?(Bool, id))\nend\nvalue = state ? \"on\" : \"off\"\nset(id, value)\n"}},{"html_id":"sync_widget_state-instance-method","name":"sync_widget_state","doc":"Push the current module state to the device.","summary":"

Push the current module state to the device.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L262"},"def":{"name":"sync_widget_state","visibility":"Public","body":"@__status__.each do |key, value|\n if key == \"connected\"\n next\n end\n if key =~ (/^__.*/)\n next\n end\n case value\n when .starts_with?(\"\\\"\")\n set(key, String.from_json(value))\n when \"true\", \"false\"\n set(key, value == \"true\")\n end\nend"}},{"html_id":"unset(id:String)-instance-method","name":"unset","doc":"Clear the value associated with a widget.","summary":"

Clear the value associated with a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L124"},"def":{"name":"unset","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"clearing #{id}\"\nend\nupdate = codec.xcommand(\"UserInterface Extensions Widget UnsetValue\", hash_args: {WidgetId: id})\nPromise.defer do\n update.get\n self[id] = nil\n nil.as(String | Nil)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/UIExtender/Binding","path":"Cisco/UIExtender/Binding.html","kind":"alias","full_name":"Cisco::UIExtender::Binding","name":"Binding","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"}},{"html_id":"drivers/Cisco/UIExtender/Bindings","path":"Cisco/UIExtender/Bindings.html","kind":"alias","full_name":"Cisco::UIExtender::Bindings","name":"Bindings","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/ui_extender.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"},"doc":"id => binding","summary":"

id => binding

"}]},{"html_id":"drivers/Cisco/Webex","path":"Cisco/Webex.html","kind":"module","full_name":"Cisco::Webex","name":"Webex","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L2"},{"filename":"src/cisco/webex/api/people.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L2"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L2"},{"filename":"src/cisco/webex/client.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L2"},{"filename":"src/cisco/webex/command.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L2"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L2"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L2"},{"filename":"src/cisco/webex/constants.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L2"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L2"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L2"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L2"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L2"},{"filename":"src/cisco/webex/models/device.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L2"},{"filename":"src/cisco/webex/models/event.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L2"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L2"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L2"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L2"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L2"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L2"},{"filename":"src/cisco/webex/models/message.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L2"},{"filename":"src/cisco/webex/models/peek.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L2"},{"filename":"src/cisco/webex/models/person.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L2"},{"filename":"src/cisco/webex/models/room.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L2"},{"filename":"src/cisco/webex/session.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L2"},{"filename":"src/cisco/webex/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L2"},{"filename":"src/cisco/webex/utils.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Webex/Api","path":"Cisco/Webex/Api.html","kind":"module","full_name":"Cisco::Webex::Api","name":"Api","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L3"},{"filename":"src/cisco/webex/api/people.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L3"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Api/Messages","path":"Cisco/Webex/Api/Messages.html","kind":"class","full_name":"Cisco::Webex::Api::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/messages.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/People","path":"Cisco/Webex/Api/People.html","kind":"class","full_name":"Cisco::Webex::Api::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/people.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/people.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"me:Models::Person-instance-method","name":"me","abstract":false,"location":{"filename":"src/cisco/webex/api/people.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/people.cr#L8"},"def":{"name":"me","return_type":"Models::Person","visibility":"Public","body":"response = @session.get([Constants::PEOPLE_ENDPOINT, \"/\", \"me\"].join(\"\"))\nModels::Person.from_json(response.body)\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/Rooms","path":"Cisco/Webex/Api/Rooms.html","kind":"class","full_name":"Cisco::Webex::Api::Rooms","name":"Rooms","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/rooms.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/api/rooms.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]}]},{"html_id":"drivers/Cisco/Webex/Client","path":"Cisco/Webex/Client.html","kind":"class","full_name":"Cisco::Webex::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/client.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(name:String,access_token:String,emails:String,session:Session,commands:Array(Command))-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"args_string":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","args_html":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L10"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, access_token, emails, session, commands)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"keywords:Hash(String,Command)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords","return_type":"Hash(String, Command)","visibility":"Public","body":"@keywords"}},{"html_id":"keywords=(keywords:Hash(String,Command))-instance-method","name":"keywords=","abstract":false,"args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"args_string":"(keywords : Hash(String, Command))","args_html":"(keywords : Hash(String, Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords=","args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"visibility":"Public","body":"@keywords = keywords"}},{"html_id":"messages:Cisco::Webex::Api::Messages-instance-method","name":"messages","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L31"},"def":{"name":"messages","visibility":"Public","body":"@messages"}},{"html_id":"people:Cisco::Webex::Api::People-instance-method","name":"people","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L27"},"def":{"name":"people","visibility":"Public","body":"@people"}},{"html_id":"rooms:Cisco::Webex::Api::Rooms-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L23"},"def":{"name":"rooms","visibility":"Public","body":"@rooms"}},{"html_id":"run:Void-instance-method","name":"run","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L124"},"def":{"name":"run","return_type":"Void","visibility":"Public","body":"device = device()\n@socket = socket = HTTP::WebSocket.new(URI.parse(device.websocket_url))\nsocket.on_message do |message|\n process_incoming_websocket_message(socket, message)\nend\nsocket.on_binary do |binary|\n process_incoming_websocket_message(socket, String.new(binary))\nend\nmessage = {\"id\" => UUID.random.to_s, \"type\" => \"authorization\", \"trackingId\" => [\"webex\", \"-\", UUID.random.to_s].join(\"\"), \"data\" => {\"token\" => [\"Bearer\", @access_token].join(\" \")}}\nsocket.send(message.to_json)\nsocket.run\n"}},{"html_id":"socket:HTTP::WebSocket|Nil-instance-method","name":"socket","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L8"},"def":{"name":"socket","return_type":"HTTP::WebSocket | ::Nil","visibility":"Public","body":"@socket"}},{"html_id":"socket=(socket:HTTP::WebSocket|Nil)-instance-method","name":"socket=","abstract":false,"args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"args_string":"(socket : HTTP::WebSocket | Nil)","args_html":"(socket : HTTP::WebSocket | Nil)","location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L8"},"def":{"name":"socket=","args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"visibility":"Public","body":"@socket = socket"}},{"html_id":"stop:Void-instance-method","name":"stop","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/client.cr#L148"},"def":{"name":"stop","return_type":"Void","visibility":"Public","body":"@socket.close"}}]},{"html_id":"drivers/Cisco/Webex/Command","path":"Cisco/Webex/Command.html","kind":"class","full_name":"Cisco::Webex::Command","name":"Command","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/command.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo"},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L5"},"def":{"name":"description","return_type":"String","visibility":"Public","body":""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":true,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L6"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":""}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/command.cr#L4"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":""}}]},{"html_id":"drivers/Cisco/Webex/Commands","path":"Cisco/Webex/Commands.html","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands","abstract":false,"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L3"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","path":"Cisco/Webex/Commands/Echo.html","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply replies your message!\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => message.text}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/echo.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"echo\"]"}}]},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","path":"Cisco/Webex/Commands/Greeting.html","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/greeting.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply responds to hello, hi, how are you, etc.\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => \"👋\"}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/commands/greeting.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"hello\", \"hi\"]"}}]}]},{"html_id":"drivers/Cisco/Webex/Constants","path":"Cisco/Webex/Constants.html","kind":"module","full_name":"Cisco::Webex::Constants","name":"Constants","abstract":false,"locations":[{"filename":"src/cisco/webex/constants.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/constants.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_BASE_URL","name":"DEFAULT_BASE_URL","value":"\"https://webexapis.com/v1/\""},{"id":"DEFAULT_DEVICE_URL","name":"DEFAULT_DEVICE_URL","value":"\"https://wdm-a.wbx2.com/wdm/api/v1/\""},{"id":"DEFAULT_SINGLE_REQUEST_TIMEOUT","name":"DEFAULT_SINGLE_REQUEST_TIMEOUT","value":"60"},{"id":"DEFAULT_WAIT_ON_RATE_LIMIT","name":"DEFAULT_WAIT_ON_RATE_LIMIT","value":"true"},{"id":"DEVICE","name":"DEVICE","value":"{\"deviceType\" => \"DESKTOP\", \"localizedModel\" => \"crystal\", \"model\" => \"crystal\", \"name\" => UUID.random.to_s, \"systemName\" => \"webex-bot-client\", \"systemVersion\" => VERSION}"},{"id":"MESSAGES_ENDPOINT","name":"MESSAGES_ENDPOINT","value":"\"messages\""},{"id":"PEOPLE_ENDPOINT","name":"PEOPLE_ENDPOINT","value":"\"people\""},{"id":"ROOMS_ENDPOINT","name":"ROOMS_ENDPOINT","value":"\"rooms\""},{"id":"STATUS_CODES","name":"STATUS_CODES","value":"{200 => \"Successful request with body content.\", 204 => \"Successful request without body content.\", 400 => \"The request was invalid or cannot be otherwise served.\", 401 => \"Authentication credentials were missing or incorrect.\", 403 => \"The request is understood, but it has been refused or access is not allowed.\", 404 => \"The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.\", 405 => \"The request was made to a resource using an HTTP request method that is not supported.\", 409 => \"The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.\", 410 => \"The requested resource is no longer available.\", 415 => \"The request was made to a resource without specifying a media type or used a media type that is not supported.\", 423 => \"The requested resource is temporarily unavailable. A `Retry-After` header may be present that specifies how many seconds you need to wait before attempting the request again.\", 429 => \"Too many requests have been sent in a given amount of time and the request has been rate limited. A `Retry-After` header should be present that specifies how many seconds you need to wait before a successful request can be made.\", 500 => \"Something went wrong on the server. If the issue persists, feel free to contact the Webex Developer Support team (https://developer.webex.com/support).\", 502 => \"The server received an invalid response from an upstream server while processing the request. Try again later.\", 503 => \"Server is overloaded with requests. Try again later.\"}"},{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/drivers/drivers/src/cisco/webex\\\"`).chomp.stringify.downcase }}"},{"id":"WEBEX_TEAMS_DATETIME_FORMAT","name":"WEBEX_TEAMS_DATETIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%fZ\""}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"}},{"html_id":"drivers/Cisco/Webex/Exceptions","path":"Cisco/Webex/Exceptions.html","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions","abstract":false,"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L3"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L3"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L3"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Exceptions/Argument","path":"Cisco/Webex/Exceptions/Argument.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/argument.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/Method","path":"Cisco/Webex/Exceptions/Method.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Method","name":"Method","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/method.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/method.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/RateLimit","path":"Cisco/Webex/Exceptions/RateLimit.html","kind":"class","full_name":"Cisco::Webex::Exceptions::RateLimit","name":"RateLimit","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/rate_limit.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/StatusCode","path":"Cisco/Webex/Exceptions/StatusCode.html","kind":"class","full_name":"Cisco::Webex::Exceptions::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/exceptions/status_code.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect","path":"Cisco/Webex/InstantConnect.html","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest_bearer(user_id:String,display_name:String,expiry:Int64|Nil=nil)-instance-method","name":"create_guest_bearer","doc":"Cisco docs on the subject:\n* Guest JWT: https://developer.webex.com/docs/guest-issuer\n* Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/","summary":"

Cisco docs on the subject: * Guest JWT: https://developer.webex.com/docs/guest-issuer * Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","args_html":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L34"},"def":{"name":"create_guest_bearer","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"expires_at = expiry || 12.hours.from_now.to_unix\nJWT.encode({sub: user_id, name: display_name, iss: @webex_guest_issuer, iat: 3.minutes.ago.to_unix, exp: expires_at}, Base64.decode_string(@webex_guest_secret), :hs256)\n"}},{"html_id":"create_meeting(room_id:String)-instance-method","name":"create_meeting","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L45"},"def":{"name":"create_meeting","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"expiry = 24.hours.from_now.to_unix\nrequest = {aud: @jwt_audience, provideShortUrls: true, jwt: {sub: room_id, exp: expiry}}.to_json\nget_meeting_details(get_hash(request))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@webex_guest_issuer = (setting?(String, :webex_guest_issuer)) || \"\"\n@webex_guest_secret = (setting?(String, :webex_guest_secret)) || \"\"\n@audience_setting = (setting?(String, :jwt_audience)) || \"a4d886b0-979f-4e2c-a958-3e8c14605e51\"\n@bot_access_token = setting(String, :bot_access_token)\n"}}],"types":[{"html_id":"drivers/Cisco/Webex/InstantConnect/JoseEncryptResponse","path":"Cisco/Webex/InstantConnect/JoseEncryptResponse.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::JoseEncryptResponse","name":"JoseEncryptResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L84"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L85"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L91"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"guest:Array(MeetingDetails)-instance-method","name":"guest","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L88"},"def":{"name":"guest","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@guest"}},{"html_id":"host:Array(MeetingDetails)-instance-method","name":"host","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L87"},"def":{"name":"host","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@host"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect/MeetingDetails","path":"Cisco/Webex/InstantConnect/MeetingDetails.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::MeetingDetails","name":"MeetingDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cipher:String-instance-method","name":"cipher","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L97"},"def":{"name":"cipher","return_type":"String","visibility":"Public","body":"@cipher"}},{"html_id":"short:String-instance-method","name":"short","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/instant_connect.cr#L98"},"def":{"name":"short","return_type":"String","visibility":"Public","body":"@short"}}]}]},{"html_id":"drivers/Cisco/Webex/Models","path":"Cisco/Webex/Models.html","kind":"module","full_name":"Cisco::Webex::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L3"},{"filename":"src/cisco/webex/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L3"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L3"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L3"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L3"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L3"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L3"},{"filename":"src/cisco/webex/models/message.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L3"},{"filename":"src/cisco/webex/models/peek.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L3"},{"filename":"src/cisco/webex/models/person.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L3"},{"filename":"src/cisco/webex/models/room.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Device","path":"Cisco/Webex/Models/Device.html","kind":"class","full_name":"Cisco::Webex::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"websocket_url:String-instance-method","name":"websocket_url","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url","return_type":"String","visibility":"Public","body":"@websocket_url"}},{"html_id":"websocket_url=(websocket_url:String)-instance-method","name":"websocket_url=","abstract":false,"args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"args_string":"(websocket_url : String)","args_html":"(websocket_url : String)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url=","args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"visibility":"Public","body":"@websocket_url = websocket_url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Event","path":"Cisco/Webex/Models/Event.html","kind":"class","full_name":"Cisco::Webex::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data","return_type":"Events::Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"args_string":"(data : Events::Data)","args_html":"(data : Events::Data)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"filter_message:Bool-instance-method","name":"filter_message","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message","return_type":"Bool","visibility":"Public","body":"@filter_message"}},{"html_id":"filter_message=(filter_message:Bool)-instance-method","name":"filter_message=","abstract":false,"args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"args_string":"(filter_message : Bool)","args_html":"(filter_message : Bool)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message=","args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"visibility":"Public","body":"@filter_message = filter_message"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sequence_number:Int64-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number","return_type":"Int64","visibility":"Public","body":"@sequence_number"}},{"html_id":"sequence_number=(sequence_number:Int64)-instance-method","name":"sequence_number=","abstract":false,"args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"args_string":"(sequence_number : Int64)","args_html":"(sequence_number : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number=","args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"visibility":"Public","body":"@sequence_number = sequence_number"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}},{"html_id":"tracking_id=(tracking_id:String)-instance-method","name":"tracking_id=","abstract":false,"args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"args_string":"(tracking_id : String)","args_html":"(tracking_id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id=","args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"visibility":"Public","body":"@tracking_id = tracking_id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events","path":"Cisco/Webex/Models/Events.html","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events","abstract":false,"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L4"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L4"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L4"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L4"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Events/Activity","path":"Cisco/Webex/Models/Events/Activity.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Activity","name":"Activity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actor:Actor-instance-method","name":"actor","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor","return_type":"Actor","visibility":"Public","body":"@actor"}},{"html_id":"actor=(actor:Actor)-instance-method","name":"actor=","abstract":false,"args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"args_string":"(actor : Actor)","args_html":"(actor : Actor)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor=","args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"visibility":"Public","body":"@actor = actor"}},{"html_id":"client_temp_id:String|Nil-instance-method","name":"client_temp_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id","return_type":"String | ::Nil","visibility":"Public","body":"@client_temp_id"}},{"html_id":"client_temp_id=(client_temp_id:String|Nil)-instance-method","name":"client_temp_id=","abstract":false,"args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"args_string":"(client_temp_id : String | Nil)","args_html":"(client_temp_id : String | Nil)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id=","args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client_temp_id = client_temp_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"target:Target-instance-method","name":"target","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target","return_type":"Target","visibility":"Public","body":"@target"}},{"html_id":"target=(target:Target)-instance-method","name":"target=","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target)","args_html":"(target : Target)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target=","args":[{"name":"target","external_name":"target","restriction":"Target"}],"visibility":"Public","body":"@target = target"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"verb:String-instance-method","name":"verb","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb","return_type":"String","visibility":"Public","body":"@verb"}},{"html_id":"verb=(verb:String)-instance-method","name":"verb=","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"}],"args_string":"(verb : String)","args_html":"(verb : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb=","args":[{"name":"verb","external_name":"verb","restriction":"String"}],"visibility":"Public","body":"@verb = verb"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Actor","path":"Cisco/Webex/Models/Events/Actor.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Actor","name":"Actor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/actor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"entry_uuid:String-instance-method","name":"entry_uuid","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid","return_type":"String","visibility":"Public","body":"@entry_uuid"}},{"html_id":"entry_uuid=(entry_uuid:String)-instance-method","name":"entry_uuid=","abstract":false,"args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"args_string":"(entry_uuid : String)","args_html":"(entry_uuid : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid=","args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"visibility":"Public","body":"@entry_uuid = entry_uuid"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"organisation_id:String-instance-method","name":"organisation_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id","return_type":"String","visibility":"Public","body":"@organisation_id"}},{"html_id":"organisation_id=(organisation_id:String)-instance-method","name":"organisation_id=","abstract":false,"args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"args_string":"(organisation_id : String)","args_html":"(organisation_id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id=","args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"visibility":"Public","body":"@organisation_id = organisation_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Data","path":"Cisco/Webex/Models/Events/Data.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/data.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activity:Activity-instance-method","name":"activity","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity","return_type":"Activity","visibility":"Public","body":"@activity"}},{"html_id":"activity=(activity:Activity)-instance-method","name":"activity=","abstract":false,"args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"args_string":"(activity : Activity)","args_html":"(activity : Activity)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity=","args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"visibility":"Public","body":"@activity = activity"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Target","path":"Cisco/Webex/Models/Events/Target.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Target","name":"Target","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/target.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Type","path":"Cisco/Webex/Models/Events/Type.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Type","name":"Type","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]}]},{"html_id":"drivers/Cisco/Webex/Models/Message","path":"Cisco/Webex/Models/Message.html","kind":"class","full_name":"Cisco::Webex::Models::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/message.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Array(String)|Nil-instance-method","name":"attachments","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@attachments"}},{"html_id":"attachments=(attachments:Array(String)|Nil)-instance-method","name":"attachments=","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"args_string":"(attachments : Array(String) | Nil)","args_html":"(attachments : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments=","args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@attachments = attachments"}},{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"files:Array(String)|Nil-instance-method","name":"files","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@files"}},{"html_id":"files=(files:Array(String)|Nil)-instance-method","name":"files=","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"args_string":"(files : Array(String) | Nil)","args_html":"(files : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files=","args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@files = files"}},{"html_id":"html:String|Nil-instance-method","name":"html","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html","return_type":"String | ::Nil","visibility":"Public","body":"@html"}},{"html_id":"html=(html:String|Nil)-instance-method","name":"html=","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"args_string":"(html : String | Nil)","args_html":"(html : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html=","args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"visibility":"Public","body":"@html = html"}},{"html_id":"id:String-instance-method","name":"id","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"markdown:String|Nil-instance-method","name":"markdown","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown","return_type":"String | ::Nil","visibility":"Public","body":"@markdown"}},{"html_id":"markdown=(markdown:String|Nil)-instance-method","name":"markdown=","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"args_string":"(markdown : String | Nil)","args_html":"(markdown : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown=","args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"visibility":"Public","body":"@markdown = markdown"}},{"html_id":"mentioned_groups:Array(String)|Nil-instance-method","name":"mentioned_groups","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_groups"}},{"html_id":"mentioned_groups=(mentioned_groups:Array(String)|Nil)-instance-method","name":"mentioned_groups=","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_groups : Array(String) | Nil)","args_html":"(mentioned_groups : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups=","args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_groups = mentioned_groups"}},{"html_id":"mentioned_people:Array(String)|Nil-instance-method","name":"mentioned_people","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_people"}},{"html_id":"mentioned_people=(mentioned_people:Array(String)|Nil)-instance-method","name":"mentioned_people=","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_people : Array(String) | Nil)","args_html":"(mentioned_people : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people=","args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_people = mentioned_people"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"person_email:String-instance-method","name":"person_email","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email","return_type":"String","visibility":"Public","body":"@person_email"}},{"html_id":"person_email=(person_email:String)-instance-method","name":"person_email=","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"args_string":"(person_email : String)","args_html":"(person_email : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email=","args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"visibility":"Public","body":"@person_email = person_email"}},{"html_id":"person_id:String-instance-method","name":"person_id","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id","return_type":"String","visibility":"Public","body":"@person_id"}},{"html_id":"person_id=(person_id:String)-instance-method","name":"person_id=","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"args_string":"(person_id : String)","args_html":"(person_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id=","args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"visibility":"Public","body":"@person_id = person_id"}},{"html_id":"room_id:String-instance-method","name":"room_id","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"room_id=(room_id:String)-instance-method","name":"room_id=","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id=","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"@room_id = room_id"}},{"html_id":"room_type:String-instance-method","name":"room_type","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"room_type=(room_type:String)-instance-method","name":"room_type=","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"args_string":"(room_type : String)","args_html":"(room_type : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type=","args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"visibility":"Public","body":"@room_type = room_type"}},{"html_id":"text:String-instance-method","name":"text","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}},{"html_id":"text=(text:String)-instance-method","name":"text=","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text=","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"@text = text"}},{"html_id":"to_person_email:String|Nil-instance-method","name":"to_person_email","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_email"}},{"html_id":"to_person_email=(to_person_email:String|Nil)-instance-method","name":"to_person_email=","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"args_string":"(to_person_email : String | Nil)","args_html":"(to_person_email : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email=","args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_email = to_person_email"}},{"html_id":"to_person_id:String|Nil-instance-method","name":"to_person_id","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_id"}},{"html_id":"to_person_id=(to_person_id:String|Nil)-instance-method","name":"to_person_id=","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"args_string":"(to_person_id : String | Nil)","args_html":"(to_person_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id=","args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_id = to_person_id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/Cisco/Webex/Models/Peek","path":"Cisco/Webex/Models/Peek.html","kind":"class","full_name":"Cisco::Webex::Models::Peek","name":"Peek","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/peek.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Type-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data","return_type":"Events::Type","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Type)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"args_string":"(data : Events::Type)","args_html":"(data : Events::Type)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"visibility":"Public","body":"@data = data"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Person","path":"Cisco/Webex/Models/Person.html","kind":"class","full_name":"Cisco::Webex::Models::Person","name":"Person","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/person.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Room","path":"Cisco/Webex/Models/Room.html","kind":"class","full_name":"Cisco::Webex::Models::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"creator_id:String-instance-method","name":"creator_id","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id","return_type":"String","visibility":"Public","body":"@creator_id"}},{"html_id":"creator_id=(creator_id:String)-instance-method","name":"creator_id=","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"args_string":"(creator_id : String)","args_html":"(creator_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id=","args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"visibility":"Public","body":"@creator_id = creator_id"}},{"html_id":"id:String-instance-method","name":"id","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"is_locked:Bool-instance-method","name":"is_locked","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked","return_type":"Bool","visibility":"Public","body":"@is_locked"}},{"html_id":"is_locked=(is_locked:Bool)-instance-method","name":"is_locked=","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"args_string":"(is_locked : Bool)","args_html":"(is_locked : Bool)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked=","args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"visibility":"Public","body":"@is_locked = is_locked"}},{"html_id":"last_activity:String-instance-method","name":"last_activity","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity","return_type":"String","visibility":"Public","body":"@last_activity"}},{"html_id":"last_activity=(last_activity:String)-instance-method","name":"last_activity=","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"args_string":"(last_activity : String)","args_html":"(last_activity : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity=","args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"visibility":"Public","body":"@last_activity = last_activity"}},{"html_id":"owner_id:String-instance-method","name":"owner_id","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id","return_type":"String","visibility":"Public","body":"@owner_id"}},{"html_id":"owner_id=(owner_id:String)-instance-method","name":"owner_id=","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(owner_id : String)","args_html":"(owner_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id=","args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"@owner_id = owner_id"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"team_id=(team_id:String|Nil)-instance-method","name":"team_id=","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(team_id : String | Nil)","args_html":"(team_id : String | Nil)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id=","args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@team_id = team_id"}},{"html_id":"title:String-instance-method","name":"title","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","doc":"The room type.","summary":"

The room type.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","doc":"The room type.","summary":"

The room type.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Cisco/Webex/Session","path":"Cisco/Webex/Session.html","kind":"class","full_name":"Cisco::Webex::Session","name":"Session","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/session.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(access_token:String)-class-method","name":"new","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L13"},"def":{"name":"new","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"base_url=(base_url:String)-instance-method","name":"base_url=","abstract":false,"args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"args_string":"(base_url : String)","args_html":"(base_url : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url=","args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"visibility":"Public","body":"@base_url = base_url"}},{"html_id":"delete(url:String,**kwargs):Halite::Response-instance-method","name":"delete","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L76"},"def":{"name":"delete","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"DELETE\", url, **kwargs)"}},{"html_id":"get(url:String,**kwargs):Halite::Response-instance-method","name":"get","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L61"},"def":{"name":"get","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"GET\", url, **kwargs)"}},{"html_id":"post(url:String,**kwargs):Halite::Response-instance-method","name":"post","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L66"},"def":{"name":"post","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"POST\", url, **kwargs)"}},{"html_id":"put(url:String,**kwargs):Halite::Response-instance-method","name":"put","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L71"},"def":{"name":"put","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"PUT\", url, **kwargs)"}},{"html_id":"request(method:String,url:String,**kwargs):Halite::Response-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(method : String, url : String, **kwargs) : Halite::Response","args_html":"(method : String, url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L16"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"absolute_url = ((URI.parse(base_url)).resolve(url)).to_s\n@client.headers({\"Authorization\" => [\"Bearer\", @access_token].join(\" \")})\n@client.headers({\"Content-Type\" => \"application/json;charset=utf-8\"})\n@client.timeout(single_request_timeout)\nloop do\n case method\n when \"GET\"\n response = @client.get(absolute_url, **kwargs)\n when \"POST\"\n response = @client.post(absolute_url, **kwargs)\n when \"PUT\"\n response = @client.put(absolute_url, **kwargs)\n when \"DELETE\"\n response = @client.delete(absolute_url, **kwargs)\n else\n raise(Exceptions::Method.new(\"The request-method type is invalid.\"))\n end\n begin\n status_code = StatusCode.new(response.status_code)\n if response.status_code == 429\n raise(Exceptions::RateLimit.new(status_code.message))\n end\n if !status_code.valid?\n raise(Exceptions::StatusCode.new(status_code.message))\n end\n return response\n rescue e : Exceptions::StatusCode\n Log.error(exception: e) do\n end\n rescue e : Exceptions::RateLimit\n Log.error(exception: e) do\n end\n retry_after = (response.headers[\"Retry-After\"]? || \"15\").to_i * 1000\n sleep(retry_after)\n end\nend\n"}},{"html_id":"single_request_timeout:Int32-instance-method","name":"single_request_timeout","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout","return_type":"Int32","visibility":"Public","body":"@single_request_timeout"}},{"html_id":"single_request_timeout=(single_request_timeout:Int32)-instance-method","name":"single_request_timeout=","abstract":false,"args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"args_string":"(single_request_timeout : Int32)","args_html":"(single_request_timeout : Int32)","location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout=","args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"visibility":"Public","body":"@single_request_timeout = single_request_timeout"}},{"html_id":"user_agent:String-instance-method","name":"user_agent","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent","return_type":"String","visibility":"Public","body":"@user_agent"}},{"html_id":"user_agent=(user_agent:String)-instance-method","name":"user_agent=","abstract":false,"args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"args_string":"(user_agent : String)","args_html":"(user_agent : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent=","args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"visibility":"Public","body":"@user_agent = user_agent"}},{"html_id":"wait_on_rate_limit:Bool-instance-method","name":"wait_on_rate_limit","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit","return_type":"Bool","visibility":"Public","body":"@wait_on_rate_limit"}},{"html_id":"wait_on_rate_limit=(wait_on_rate_limit:Bool)-instance-method","name":"wait_on_rate_limit=","abstract":false,"args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"args_string":"(wait_on_rate_limit : Bool)","args_html":"(wait_on_rate_limit : Bool)","location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit=","args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"visibility":"Public","body":"@wait_on_rate_limit = wait_on_rate_limit"}}]},{"html_id":"drivers/Cisco/Webex/StatusCode","path":"Cisco/Webex/StatusCode.html","kind":"class","full_name":"Cisco::Webex::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(code:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/cisco/webex/status_code.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L6"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L18"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"Constants::STATUS_CODES[@code]"}},{"html_id":"valid?:Bool-instance-method","name":"valid?","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/status_code.cr#L9"},"def":{"name":"valid?","return_type":"Bool","visibility":"Public","body":"case @code\nwhen 200, 204\n true\nelse\n false\nend"}}]},{"html_id":"drivers/Cisco/Webex/Utils","path":"Cisco/Webex/Utils.html","kind":"module","full_name":"Cisco::Webex::Utils","name":"Utils","abstract":false,"locations":[{"filename":"src/cisco/webex/utils.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"hash_from_items_with_values(**kwargs)-class-method","name":"hash_from_items_with_values","abstract":false,"location":{"filename":"src/cisco/webex/utils.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L4"},"def":{"name":"hash_from_items_with_values","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"kwargs = kwargs.map do |k, v|\n if (v != nil) && (v != \"\")\n {\"#{k}\" => v}\n end\nend\nkwargs.reject!(nil)\nkwargs = kwargs.reduce do |acc, i|\n acc.try(&.merge(i.not_nil!))\nend\nkwargs\n"}},{"html_id":"named_tuple_from_hash(hash)-class-method","name":"named_tuple_from_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":""}],"args_string":"(hash)","args_html":"(hash)","location":{"filename":"src/cisco/webex/utils.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/utils.cr#L17"},"def":{"name":"named_tuple_from_hash","args":[{"name":"hash","external_name":"hash","restriction":""}],"visibility":"Public","body":"named_tuple = NamedTuple.new(roomId: String, text: String)\nnamed_tuple.from(hash)\n"}}]}]}]},{"html_id":"drivers/Clipsal","path":"Clipsal.html","kind":"module","full_name":"Clipsal","name":"Clipsal","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Clipsal/CBus","path":"Clipsal/CBus.html","kind":"class","full_name":"Clipsal::CBus","name":"CBus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"},{"id":"RAMP_RATES","name":"RAMP_RATES","value":"{(...2000_u32) => 0_u8, (2000_u32...6000_u32) => 1_u8, (6000_u32...10000_u32) => 2_u8, (10000_u32...15000_u32) => 3_u8, (15000_u32...25000_u32) => 4_u8, (25000_u32...35000_u32) => 5_u8, (35000_u32...50000_u32) => 6_u8, (50000_u32...75000_u32) => 7_u8, (75000_u32...105000_u32) => 8_u8, (105000_u32...150000_u32) => 9_u8, (150000_u32...240000_u32) => 10_u8, (240000_u32...360000_u32) => 11_u8, (360000_u32...510000_u32) => 12_u8, (510000_u32...720000_u32) => 13_u8, (720000_u32...960000_u32) => 14_u8, (960000_u32...) => 15_u8}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Clipsal","kind":"module","full_name":"Clipsal","name":"Clipsal"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"send(\"|||\\r\", priority: 99)\nschedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n send(\"|||\\r\", priority: 0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L35"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L116"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 56)\nself[Area.new(group.to_u32, append: \"level\")]?\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L60"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 202)\nself[Area.new(group.to_u32)]?\n"}},{"html_id":"lookup_ramp_rate(fade_time:UInt32):UInt8-instance-method","name":"lookup_ramp_rate","abstract":false,"args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(fade_time : UInt32) : UInt8","args_html":"(fade_time : UInt32) : UInt8","location":{"filename":"src/clipsal/c_bus.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L84"},"def":{"name":"lookup_ramp_rate","args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"return_type":"UInt8","visibility":"Public","body":"range = RAMP_RATES.keys.find(&.includes?(fade_time))\nrate = RAMP_RATES[range]\n((rate & 15_u8) << 3) | 2_u8\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@trigger_groups = (setting?(Array(UInt8), :trigger_groups)) || [202_u8]"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/clipsal/c_bus.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L121"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"payload = String.new(data)\nlogger.debug do\n \"CBus sent: #{payload}\"\nend\ndata = payload[1..-2].hexbytes\nif !(check_checksum(data))\n return task.try(&.abort(\"CBus checksum failed\"))\nend\nif data[0] != 5\n logger.debug do\n \"was not a Point -> MultiPoint response: type 0x#{data[0].to_s(16)}\"\n end\n return\nend\napplication = data[1]\ncommands = data[3..-2].to_a\nwhile commands.size > 0\n current = commands.shift\n case application\n when .in?(@trigger_groups)\n area = if application == 202_u8\n Area.new(commands.shift.to_u32)\n else\n Area.new(commands.shift.to_u32, channel: application.to_u32)\n end\n case current\n when 2\n self[area] = commands.shift\n when 1\n self[area] = 0\n when 121\n self[area] = 255\n when 9\n logger.debug do\n \"trigger kill request: grp 0x#{commands[0].to_s(16)}\"\n end\n else\n logger.debug do\n \"unknown trigger group request 0x#{current.to_s(16)}\"\n end\n break\n end\n when 48..95\n case current\n when 1\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 0.0\n when 121\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 100.0\n when 2\n group = commands.shift\n value = commands.shift\n area = Area.new(group.to_u32, append: \"blind\")\n if value == 255\n self[area] = :up\n else\n if value == 5\n self[area] = :stopped\n end\n end\n when 26\n group = commands.shift\n value = commands.shift\n if value == 0\n self[Area.new(group.to_u32, append: \"blind\")] = :down\n end\n when 9\n logger.debug do\n \"terminate ramp request: grp 0x#{commands[0].to_s(16)}\"\n end\n commands.shift\n else\n if ((current & 133) == 0) && commands.size > 1\n logger.debug do\n \"ramp request: grp 0x#{commands[0].to_s(16)} - level 0x#{commands[1].to_s(16)}\"\n end\n commands.shift(2)\n else\n logger.debug do\n \"unknown lighting request 0x#{current.to_s(16)}\"\n end\n break\n end\n end\n else\n logger.debug do\n \"unknown application request app 0x#{application.to_s(16)}\"\n end\n break\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L94"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 56)\nlevel = level.clamp(0.0, 100.0)\nlevel_byte = (level * LEVEL_PERCENTAGE).to_u8\ngroup = (group & 255).to_u8\nrate = lookup_ramp_rate(fade_time)\nstop_f = cmd_string(Bytes[5, 56, 0, 9, group])\ncommand = stop_f + (cmd_string(Bytes[5, application, 0, rate, group, level_byte]))\nself[\"#{area}_level\"] = level\nsend(command, name: \"level_#{application}_#{group}\")\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L50"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 202)\naction = scene & 255\ncommand = Bytes[5, application, 0, 2, group, action.to_u8]\nself[area] = action\ndo_send(command)\n"}},{"html_id":"stop_fading(group:UInt8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"args_string":"(group : UInt8)","args_html":"(group : UInt8)","location":{"filename":"src/clipsal/c_bus.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L111"},"def":{"name":"stop_fading","args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[5, 56, 0, 9, group])"}}],"types":[{"html_id":"drivers/Clipsal/CBus/Area","path":"Clipsal/CBus/Area.html","kind":"alias","full_name":"Clipsal::CBus::Area","name":"Area","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/clipsal/c_bus.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Clipsal/CBus","kind":"class","full_name":"Clipsal::CBus","name":"CBus"}}]}]},{"html_id":"drivers/Company3M","path":"Company3M.html","kind":"module","full_name":"Company3M","name":"Company3M","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Company3M/Displays","path":"Company3M/Displays.html","kind":"module","full_name":"Company3M::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Company3M","kind":"module","full_name":"Company3M","name":"Company3M"},"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay","path":"Company3M/Displays/WallDisplay.html","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Company3M/Displays","kind":"module","full_name":"Company3M::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L111"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:brightness, value)\n"}},{"html_id":"colour_temp(value:ColourTemp)-instance-method","name":"colour_temp","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"args_string":"(value : ColourTemp)","args_html":"(value : ColourTemp)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L132"},"def":{"name":"colour_temp","args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"visibility":"Public","body":"set(:colour_temp, value)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L50"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L116"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:contrast, value)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L54"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L58"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"Polling device for connectivity heartbeat\"\nend\ntarget = @power_target\nif target.nil?\nelse\n power(target, priority: 0)\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L84"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"set(:audio_mute, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@monitor_id = (setting?(MonitorID, :monitor_id)) || MonitorID::All"}},{"html_id":"power(state:Bool,**options)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool, **options)","args_html":"(state : Bool, **options)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L72"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if state != @power_target\n self[:power_target] = @power_target = state\nend\nset(:power, state, **options)\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L144"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"response = begin\n parse_response(bytes)\nrescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse 3M packet\"\n end\n return task.try(&.abort)\nend\nif response.success?\nelse\n logger.warn do\n \"Device error: #{response.inspect}\"\n end\n return task.try(&.abort)\nend\nlogger.debug do\n \"Device response received: #{response.inspect}\"\nend\nself[response.command.to_s.underscore] = response.value\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:Int32|Float64)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L121"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:sharpness, value)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L92"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"set(:input, input)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L105"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"percentage = (in_range(level)) / 100.0\nadjusted = (percentage * 30.0).round_away.to_i\nset(:volume, adjusted)\n"}}],"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay/ColourTemp","path":"Company3M/Displays/WallDisplay/ColourTemp.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ColourTemp","name":"ColourTemp","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L126"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"K9300","name":"K9300","value":"0"},{"id":"K6500","name":"K6500","value":"1"},{"id":"User","name":"User","value":"2"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"k6500?-instance-method","name":"k6500?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L128"},"def":{"name":"k6500?","visibility":"Public","body":"self == K6500"}},{"html_id":"k9300?-instance-method","name":"k9300?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L127"},"def":{"name":"k9300?","visibility":"Public","body":"self == K9300"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L129"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Command","path":"Company3M/Displays/WallDisplay/Command.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Brightness","name":"Brightness","value":"272_u16"},{"id":"Contrast","name":"Contrast","value":"274_u16"},{"id":"Sharpness","name":"Sharpness","value":"396_u16"},{"id":"ColourTemp","name":"ColourTemp","value":"596_u16"},{"id":"Volume","name":"Volume","value":"98_u16"},{"id":"AudioMute","name":"AudioMute","value":"141_u16"},{"id":"Input","name":"Input","value":"715_u16"},{"id":"Power","name":"Power","value":"3_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L191"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L186"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"colour_temp?-instance-method","name":"colour_temp?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L189"},"def":{"name":"colour_temp?","visibility":"Public","body":"self == ColourTemp"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L187"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L192"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L193"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L188"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L190"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Input","path":"Company3M/Displays/WallDisplay/Input.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"2"},{"id":"DisplayPort","name":"DisplayPort","value":"3"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L15"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L14"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageSender","path":"Company3M/Displays/WallDisplay/MessageSender.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageSender","name":"MessageSender","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L176"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PC","name":"PC","value":"48"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"pc?-instance-method","name":"pc?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L177"},"def":{"name":"pc?","visibility":"Public","body":"self == PC"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageType","path":"Company3M/Displays/WallDisplay/MessageType.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L180"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"69_u8"},{"id":"Reply","name":"Reply","value":"70_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L181"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L182"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MonitorID","path":"Company3M/Displays/WallDisplay/MonitorID.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MonitorID","name":"MonitorID","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L163"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"42_u8"},{"id":"A","name":"A","value":"65_u8"},{"id":"B","name":"B","value":"66_u8"},{"id":"C","name":"C","value":"67_u8"},{"id":"D","name":"D","value":"68_u8"},{"id":"E","name":"E","value":"69_u8"},{"id":"F","name":"F","value":"70_u8"},{"id":"G","name":"G","value":"71_u8"},{"id":"H","name":"H","value":"72_u8"},{"id":"I","name":"I","value":"73_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"a?-instance-method","name":"a?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L165"},"def":{"name":"a?","visibility":"Public","body":"self == A"}},{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L164"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"b?-instance-method","name":"b?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L166"},"def":{"name":"b?","visibility":"Public","body":"self == B"}},{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L167"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"d?-instance-method","name":"d?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L168"},"def":{"name":"d?","visibility":"Public","body":"self == D"}},{"html_id":"e?-instance-method","name":"e?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L169"},"def":{"name":"e?","visibility":"Public","body":"self == E"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L170"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"g?-instance-method","name":"g?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L171"},"def":{"name":"g?","visibility":"Public","body":"self == G"}},{"html_id":"h?-instance-method","name":"h?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L172"},"def":{"name":"h?","visibility":"Public","body":"self == H"}},{"html_id":"i?-instance-method","name":"i?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L173"},"def":{"name":"i?","visibility":"Public","body":"self == I"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/RequestPacket","path":"Company3M/Displays/WallDisplay/RequestPacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::RequestPacket","name":"RequestPacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::RequestPacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 1_u8\nend}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 48_u8\nend}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: sender, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: -> do\n (10.to_s(16)).upcase.rjust(2, '0')\nend, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: set_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 3_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L202"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"command=(command:Command)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"}],"args_string":"(command : Command)","args_html":"(command : Command)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L217"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"Command"}],"visibility":"Public","body":"code = (command.value.to_s(16)).upcase.rjust(4, '0')\nself.op_code_page = code[0..1]\nself.op_code = code[2..3]\ncommand\n"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"sender:MessageSender-instance-method","name":"sender","abstract":false,"def":{"name":"sender","return_type":"MessageSender","visibility":"Public","body":"@sender"}},{"html_id":"sender=(sender:MessageSender)-instance-method","name":"sender=","abstract":false,"args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"args_string":"(sender : MessageSender)","args_html":"(sender : MessageSender)","def":{"name":"sender=","args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"visibility":"Public","body":"@sender = sender"}},{"html_id":"set_value:String-instance-method","name":"set_value","abstract":false,"def":{"name":"set_value","return_type":"String","visibility":"Public","body":"@set_value"}},{"html_id":"set_value=(set_value:String)-instance-method","name":"set_value=","abstract":false,"args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"args_string":"(set_value : String)","args_html":"(set_value : String)","def":{"name":"set_value=","args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"visibility":"Public","body":"@set_value = set_value"}},{"html_id":"value=(val:Int32)-instance-method","name":"value=","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L224"},"def":{"name":"value=","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"self.set_value = (val.to_s(16)).upcase.rjust(4, '0')"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResponsePacket","path":"Company3M/Displays/WallDisplay/ResponsePacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::ResponsePacket","name":"ResponsePacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::ResponsePacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"enum\", name: receiver, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"enum\", name: result_code, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: ResultCode}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: reply_type, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: max_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"string\", name: current_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: bcc, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: delimiter, cls: UInt8, onlyif: nil, verify: nil, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L230"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bcc:UInt8-instance-method","name":"bcc","abstract":false,"def":{"name":"bcc","return_type":"UInt8","visibility":"Public","body":"@bcc"}},{"html_id":"bcc=(bcc:UInt8)-instance-method","name":"bcc=","abstract":false,"args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"args_string":"(bcc : UInt8)","args_html":"(bcc : UInt8)","def":{"name":"bcc=","args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"visibility":"Public","body":"@bcc = bcc"}},{"html_id":"command:Command-instance-method","name":"command","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L250"},"def":{"name":"command","return_type":"Command","visibility":"Public","body":"if (__temp_1 = @command).nil?\n @command = (Command.from_value(\"#{op_code_page}#{op_code}\".to_i(16)))\nelse\n __temp_1\nend"}},{"html_id":"current_value:String-instance-method","name":"current_value","abstract":false,"def":{"name":"current_value","return_type":"String","visibility":"Public","body":"@current_value"}},{"html_id":"current_value=(current_value:String)-instance-method","name":"current_value=","abstract":false,"args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"args_string":"(current_value : String)","args_html":"(current_value : String)","def":{"name":"current_value=","args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"visibility":"Public","body":"@current_value = current_value"}},{"html_id":"delimiter:UInt8-instance-method","name":"delimiter","abstract":false,"def":{"name":"delimiter","return_type":"UInt8","visibility":"Public","body":"@delimiter"}},{"html_id":"delimiter=(delimiter:UInt8)-instance-method","name":"delimiter=","abstract":false,"args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"args_string":"(delimiter : UInt8)","args_html":"(delimiter : UInt8)","def":{"name":"delimiter=","args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"visibility":"Public","body":"@delimiter = delimiter"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"max_value:String-instance-method","name":"max_value","abstract":false,"def":{"name":"max_value","return_type":"String","visibility":"Public","body":"@max_value"}},{"html_id":"max_value=(max_value:String)-instance-method","name":"max_value=","abstract":false,"args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"args_string":"(max_value : String)","args_html":"(max_value : String)","def":{"name":"max_value=","args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"visibility":"Public","body":"@max_value = max_value"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"receiver:MessageSender-instance-method","name":"receiver","abstract":false,"def":{"name":"receiver","return_type":"MessageSender","visibility":"Public","body":"@receiver"}},{"html_id":"receiver=(receiver:MessageSender)-instance-method","name":"receiver=","abstract":false,"args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"args_string":"(receiver : MessageSender)","args_html":"(receiver : MessageSender)","def":{"name":"receiver=","args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"visibility":"Public","body":"@receiver = receiver"}},{"html_id":"reply_type:String-instance-method","name":"reply_type","abstract":false,"def":{"name":"reply_type","return_type":"String","visibility":"Public","body":"@reply_type"}},{"html_id":"reply_type=(reply_type:String)-instance-method","name":"reply_type=","abstract":false,"args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"args_string":"(reply_type : String)","args_html":"(reply_type : String)","def":{"name":"reply_type=","args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"visibility":"Public","body":"@reply_type = reply_type"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"result_code:ResultCode-instance-method","name":"result_code","abstract":false,"def":{"name":"result_code","return_type":"ResultCode","visibility":"Public","body":"@result_code"}},{"html_id":"result_code=(result_code:ResultCode)-instance-method","name":"result_code=","abstract":false,"args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"args_string":"(result_code : ResultCode)","args_html":"(result_code : ResultCode)","def":{"name":"result_code=","args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"visibility":"Public","body":"@result_code = result_code"}},{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L254"},"def":{"name":"success?","visibility":"Public","body":"self.result_code.success?"}},{"html_id":"value-instance-method","name":"value","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L258"},"def":{"name":"value","visibility":"Public","body":"raw_val = self.current_value.to_i(16)\ncase self.command\nin .brightness?, .contrast?, .sharpness?\n raw_val\nin .volume?\n (raw_val / 30.0) * 100.0\nin .audio_mute?, .power?\n raw_val == 1\nin .colour_temp?\n ColourTemp.from_value(raw_val)\nin .input?\n Input.from_value(raw_val)\nend\n"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResultCode","path":"Company3M/Displays/WallDisplay/ResultCode.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ResultCode","name":"ResultCode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L196"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Success","name":"Success","value":"12336_u16"},{"id":"Unsupported","name":"Unsupported","value":"12337_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L197"},"def":{"name":"success?","visibility":"Public","body":"self == Success"}},{"html_id":"unsupported?-instance-method","name":"unsupported?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/company_3m/displays/wall_display.cr#L198"},"def":{"name":"unsupported?","visibility":"Public","body":"self == Unsupported"}}]}]}]}]},{"html_id":"drivers/Crestron","path":"Crestron.html","kind":"module","full_name":"Crestron","name":"Crestron","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Crestron/AspectRatio","path":"Crestron/AspectRatio.html","kind":"enum","full_name":"Crestron::AspectRatio","name":"AspectRatio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MaintainAspectRatio","name":"MaintainAspectRatio","value":"0"},{"id":"StretchToFit","name":"StretchToFit","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"maintain_aspect_ratio?-instance-method","name":"maintain_aspect_ratio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L12"},"def":{"name":"maintain_aspect_ratio?","visibility":"Public","body":"self == MaintainAspectRatio"}},{"html_id":"stretch_to_fit?-instance-method","name":"stretch_to_fit?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L13"},"def":{"name":"stretch_to_fit?","visibility":"Public","body":"self == StretchToFit"}}]},{"html_id":"drivers/Crestron/CresNext","path":"Crestron/CresNext.html","kind":"class","full_name":"Crestron::CresNext","name":"CresNext","abstract":true,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/cres_next.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"}],"subclasses":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Parent module for Crestron DM NVX devices.","summary":"

Parent module for Crestron DM NVX devices.

","instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(10.minutes) do\n maintain_session\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"maintain_session-instance-method","name":"maintain_session","doc":"========================================\nHTTP for updates and session maintenance\n========================================","summary":"

======================================== HTTP for updates and session maintenance ========================================

","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L96"},"def":{"name":"maintain_session","visibility":"Public","body":"response = get(\"/Device/DeviceInfo\")\nif response.success?\nelse\n return logout\nend\nlogger.debug do\n \"Maintaining Session:\\n#{response.body}\"\nend\n"}},{"html_id":"manual_send(payload:JSON::Any)-instance-method","name":"manual_send","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(payload : JSON::Any)","args_html":"(payload : JSON::Any)","location":{"filename":"src/crestron/cres_next.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L82"},"def":{"name":"manual_send","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"data = payload.to_json\nlogger.debug do\n \"Sending: #{data}\"\nend\nsend(data, wait: false)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/cres_next.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L88"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\n"}},{"html_id":"tokenize(path:String)-instance-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/crestron/cres_next.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L33"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split('/')).reject(&.empty?)"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next.cr#L15"},"def":{"name":"websocket_headers","visibility":"Public","body":"authenticate\nheaders = HTTP::Headers.new\ntransport.cookies.add_request_headers(headers)\nif @xsrf_token.empty?\nelse\n headers[\"CREST-XSRF-TOKEN\"] = @xsrf_token\nend\nheaders[\"User-Agent\"] = \"advanced-rest-client\"\nheaders\n"}}]},{"html_id":"drivers/Crestron/CresNextAuth","path":"Crestron/CresNextAuth.html","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth","abstract":false,"locations":[{"filename":"src/crestron/cres_next_auth.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/OccupancySensor","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"authenticate-instance-method","name":"authenticate","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L6"},"def":{"name":"authenticate","visibility":"Public","body":"logger.debug do\n \"Authenticating\"\nend\nuri = URI.parse(config.uri.not_nil!)\nhost = uri.host\nresponse = post(\"/userlogin.html\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Referer\" => \"https://#{host}/userlogin.html\", \"Origin\" => \"https://#{host}\"}, body: URI::Params.build do |form|\n form.add(\"login\", setting(String, :username))\n form.add(\"passwd\", setting(String, :password))\nend)\ncase response.status_code\nwhen 200, 302\n auth_cookies = [\"AuthByPasswd\", \"iv\", \"tag\", \"userid\", \"userstr\"] of ::String\n if (auth_cookies - response.cookies.to_h.keys).empty?\n @xsrf_token = response.headers[\"CREST-XSRF-TOKEN\"]? || \"\"\n logger.debug do\n \"Authenticated\"\n end\n else\n error = \"Device did not return all auth information\"\n end\nwhen 403\n error = \"Invalid credentials\"\nelse\n error = \"Unexpected response (HTTP #{response.status})\"\nend\nif error\n logger.error do\n error\n end\n raise(error)\nend\n"}},{"html_id":"logout-instance-method","name":"logout","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/cres_next_auth.cr#L43"},"def":{"name":"logout","visibility":"Public","body":"begin\n response = post(\"/logout\")\n case response.status\n when 302\n logger.debug do\n \"Logout successful\"\n end\n true\n else\n logger.warn do\n \"Unexpected response (HTTP #{response.status})\"\n end\n false\n end\nensure\n @xsrf_token = \"\"\n transport.cookies.clear\n schedule.clear\n disconnect\nend"}}]},{"html_id":"drivers/Crestron/Fusion","path":"Crestron/Fusion.html","kind":"class","full_name":"Crestron::Fusion","name":"Fusion","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/fusion.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_room(room_id:String)-instance-method","name":"delete_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L128"},"def":{"name":"delete_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"DELETE\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_action(action_id:String)-instance-method","name":"get_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"args_string":"(action_id : String)","args_html":"(action_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L61"},"def":{"name":"get_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/actions/#{action_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_actions(name:String|Nil,room_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_actions","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L51"},"def":{"name":"get_actions","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif room_id\n params[\"room\"] = room_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/actions\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_alerts(node_ids:Array(String)|Nil=nil,room_ids:Array(String)|Nil=nil,start_time:String|Nil=nil,end_time:String|Nil=nil,severity:Int32|Nil=nil,active_alerts:Bool=true)-instance-method","name":"get_alerts","doc":"Severity should be in the range 1-4","summary":"

Severity should be in the range 1-4

","abstract":false,"args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"args_string":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","args_html":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","location":{"filename":"src/crestron/fusion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L86"},"def":{"name":"get_alerts","args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"visibility":"Public","body":"params = URI::Params.new\nif node_ids\n params[\"nodes\"] = node_ids.join(',')\nend\nif room_ids\n params[\"rooms\"] = room_ids.join(',')\nend\nif start_time\n params[\"start\"] = start_time\nend\nif end_time\n params[\"end\"] = end_time\nend\nif severity\n params[\"severity\"] = severity.to_s\nend\nif active_alerts\n params[\"activeAlerts\"] = active_alerts.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_room(room_id:String)-instance-method","name":"get_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L118"},"def":{"name":"get_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_rooms(name:String|Nil,node_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_rooms","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L108"},"def":{"name":"get_rooms","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif node_id\n params[\"node\"] = node_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_value(symbol_id:String,attribute_id:String)-instance-method","name":"get_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String)","args_html":"(symbol_id : String, attribute_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L142"},"def":{"name":"get_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}/#{attribute_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_values(symbol_id:String)-instance-method","name":"get_signal_values","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"args_string":"(symbol_id : String)","args_html":"(symbol_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L137"},"def":{"name":"get_signal_values","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/fusion.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@security_level = setting(Int32, :security_level)\n@user_id = setting(String, :user_id)\n@api_pass_code = setting(String, :api_pass_code)\n@content_type = \"application/\" + (setting(String, :content_type))\n"}},{"html_id":"post_room(room_xml_or_json:String)-instance-method","name":"post_room","abstract":false,"args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_xml_or_json : String)","args_html":"(room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L103"},"def":{"name":"post_room","args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"POST\", \"/rooms\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_room(room_id:String,room_xml_or_json:String)-instance-method","name":"put_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_id : String, room_xml_or_json : String)","args_html":"(room_id : String, room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L123"},"def":{"name":"put_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"PUT\", \"/rooms/#{room_id}\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_signal_value(symbol_id:String,attribute_id:String,value:String)-instance-method","name":"put_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String, value : String)","args_html":"(symbol_id : String, attribute_id : String, value : String)","location":{"filename":"src/crestron/fusion.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L147"},"def":{"name":"put_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.new\nparams[\"value\"] = value\nresponse = perform_request(\"PUT\", \"/signalvalues/#{symbol_id}/#{attribute_id}\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"send_action(action_id:String|Nil,room_id:String|Nil=nil,node_id:String|Nil=nil)-instance-method","name":"send_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"args_string":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","args_html":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/fusion.cr#L66"},"def":{"name":"send_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif room_id\n params[\"room\"] = room_id\nend\nif node_id\n params[\"node\"] = node_id\nend\npath = if (id = action_id) && !id.empty?\n \"/actions/#{id}\"\nelse\n \"/actions\"\nend\nresponse = perform_request(\"POST\", path, params)\nJSON.parse(response.body)\n"}}]},{"html_id":"drivers/Crestron/NvxAddressManager","path":"Crestron/NvxAddressManager.html","kind":"class","full_name":"Crestron::NvxAddressManager","name":"NvxAddressManager","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_address_manager.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MULTICAST_ADDRESSES","name":"MULTICAST_ADDRESSES","value":"::IPAddress::IPv4.new(\"224.0.0.0/4\")","doc":"https://github.com/Sija/ipaddress.cr","summary":"

https://github.com/Sija/ipaddress.cr

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"addr = setting(String, :base_address)\nbase_addr = ::IPAddress::IPv4.new(addr)\n@base_address = base_addr.to_u32\nif MULTICAST_ADDRESSES.includes?(base_addr)\nelse\n logger.warn do\n \"#{addr} is not a valid multicast address\"\n end\nend\n@block_size = setting(Int32, :block_size)\n"}},{"html_id":"readdress_streams-instance-method","name":"readdress_streams","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_address_manager.cr#L38"},"def":{"name":"readdress_streams","visibility":"Public","body":"logger.debug do\n \"readdressing devices\"\nend\naddress_pairs = encoders.zip(addresses)\ninteractions = address_pairs.map_with_index(1) do |__temp_230, idx|\n mod, ip_u32 = __temp_230\n ip = ::IPAddress::IPv4.parse_u32(ip_u32)\n logger.debug do\n \"setting encoder #{idx} to #{ip}\"\n end\n mod.multicast_address(ip.to_s)\nend\nfailed = 0\ninteractions.each do |request|\n begin\n request.get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"addressing NVX devices\"\n end\n end\nend\nif failed == 0\nelse\n raise(\"#{failed} failed to set stream address\")\nend\ninteractions.size\n"}}]},{"html_id":"drivers/Crestron/NvxRx","path":"Crestron/NvxRx.html","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(mode:AspectRatio)-instance-method","name":"aspect_ratio","doc":"aspect ratio defined in nvx_rx_models","summary":"

aspect ratio defined in nvx_rx_models

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"args_string":"(mode : AspectRatio)","args_html":"(mode : AspectRatio)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L100"},"def":{"name":"aspect_ratio","args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"visibility":"Public","body":"logger.debug do\n \"setting output aspect ratio mode: #{mode}\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{AspectRatioMode: mode}]}], name: :aspect_ratio)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"super()\naudio_follows_video = setting?(Bool, :audio_follows_video)\n@audio_follows_video = audio_follows_video.nil? ? true : audio_follows_video\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Receiver\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Receiver\"\nend\nquery(\"/XioSubscription/Subscriptions\") do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\nend\nschedule.every(1.hour) do\n query(\"/XioSubscription/Subscriptions\", priority: 5) do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\n end\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L85"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L81"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"switch_layer(map.keys.first, layer)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L59"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}}],"types":[{"html_id":"drivers/Crestron/NvxRx/Input","path":"Crestron/NvxRx/Input.html","kind":"alias","full_name":"Crestron::NvxRx::Input","name":"Input","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/Output","path":"Crestron/NvxRx/Output.html","kind":"alias","full_name":"Crestron::NvxRx::Output","name":"Output","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Int32","aliased_html":"Int32","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/SourceType","path":"Crestron/NvxRx/SourceType.html","kind":"enum","full_name":"Crestron::NvxRx::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L229"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_rx.cr#L230"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Crestron/NvxScalerControl","path":"Crestron/NvxScalerControl.html","kind":"class","full_name":"Crestron::NvxScalerControl","name":"NvxScalerControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_scaler_control.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_scaler_control.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SCALE_TO_FIT_BOUNDS","name":"SCALE_TO_FIT_BOUNDS","value":"((16 / 9) * 0.95)..((16 / 9) * 1.05)","doc":"Window of aspect ratio's to detect as 16:9 - allows for +/-5% for\nslightly off-shape windows","summary":"

Window of aspect ratio's to detect as 16:9 - allows for +/-5% for slightly off-shape windows

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_scaler_control.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_scaler_control.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@links = (setting?(Hash(String, String), :link_scalers)) || ({} of String => String)"}}]},{"html_id":"drivers/Crestron/NvxTx","path":"Crestron/NvxTx.html","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L21"},"def":{"name":"connected","visibility":"Public","body":"super()\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Transmitter\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Transmitter\"\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"emulate_input_sync(state:Bool=true,idx:Int32=1)-instance-method","name":"emulate_input_sync","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"args_string":"(state : Bool = true, idx : Int32 = 1)","args_html":"(state : Bool = true, idx : Int32 = 1)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L66"},"def":{"name":"emulate_input_sync","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"self[\"input_#{idx}_sync\"] = state"}},{"html_id":"multicast_address(address:String)-instance-method","name":"multicast_address","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L61"},"def":{"name":"multicast_address","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"setting multicast address to #{address}\"\nend\nupdate(\"/StreamTransmit/Streams\", [{MulticastAddress: address}], name: :multicast_address)\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L47"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nupdate(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\nif raw_json.includes?(\"AudioVideoInputOutput\")\nelse\n return\nend\npayload = JSON.parse(raw_json)\nif av_inputs = (payload.dig?(\"Device\", \"AudioVideoInputOutput\", \"Inputs\")).try(&.as_a?)\n av_inputs.each do |input|\n name = input[\"Name\"]?.try(&.as_s) || \"\"\n idx = case name\n when /input(\\d+)/\n $~[1].to_i.succ\n when /input-(\\d+)/\n $~[1].to_i\n else\n 1\n end\n sync = (input.dig?(\"Ports\", 0, \"IsSyncDetected\")).try(&.as_bool?)\n if sync.nil?\n else\n self[\"input_#{idx}_sync\"] = sync\n end\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L37"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching to #{input}\"\nend\n(update(\"/DeviceSpecific\", {VideoSource: input, AudioSource: \"AudioFollowsVideo\"}, name: :switch)).get\nupdate_source_info\n"}}],"types":[{"html_id":"drivers/Crestron/NvxTx/Input","path":"Crestron/NvxTx/Input.html","kind":"enum","full_name":"Crestron::NvxTx::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"}],"namespace":{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_tx.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]}]},{"html_id":"drivers/Crestron/OccupancySensor","path":"Crestron/OccupancySensor.html","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/occupancy_sensor.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L36"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nauthenticate\npoll_device_state\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false"}},{"html_id":"get_sensor_details-instance-method","name":"get_sensor_details","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L126"},"def":{"name":"get_sensor_details","visibility":"Public","body":"Detail.new(type: :presence, value: @occupied ? 1.0 : 0.0, last_seen: @connected ? Time.utc.to_unix : @last_update, mac: @mac, id: nil, name: @name, module_id: module_id, binding: \"presence\", status: @connected ? Status::Normal : Status::Fault)"}},{"html_id":"last_update:Int64-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L26"},"def":{"name":"last_update","return_type":"Int64","visibility":"Public","body":"@last_update"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.hour) do\n poll_device_state\nend\n"}},{"html_id":"poll_counter:UInt64-instance-method","name":"poll_counter","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L27"},"def":{"name":"poll_counter","return_type":"UInt64","visibility":"Public","body":"@poll_counter"}},{"html_id":"poll_device_state:Nil-instance-method","name":"poll_device_state","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L47"},"def":{"name":"poll_device_state","return_type":"Nil","visibility":"Public","body":"response = get(\"/Device\")\nif response.success?\nelse\n raise(\"unexpected response code: #{response.status_code}\")\nend\npayload = JSON.parse(response.body)\n@last_update = Time.utc.to_unix\nself[:occupied] = @occupied = (payload.dig(\"Device\", \"OccupancySensor\", \"IsRoomOccupied\")).as_bool\nself[:presence] = @occupied ? 1.0 : 0.0\nself[:mac] = @mac = format_mac((payload.dig(\"Device\", \"DeviceInfo\", \"MacAddress\")).as_s)\nself[:name] = @name = (payload.dig(\"Device\", \"DeviceInfo\", \"Name\")).as_s?\n@poll_counter = @poll_counter + 1\nif @long_polling\nelse\n long_poll\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L120"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif @mac == mac\nelse\n return nil\nend\nget_sensor_details\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/occupancy_sensor.cr#L108"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @mac)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\n[get_sensor_details]\n"}}]},{"html_id":"drivers/Crestron/Receiver","path":"Crestron/Receiver.html","kind":"module","full_name":"Crestron::Receiver","name":"Receiver","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"}},{"html_id":"drivers/Crestron/SourceType","path":"Crestron/SourceType.html","kind":"enum","full_name":"Crestron::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L17"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L18"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Crestron/Transmitter","path":"Crestron/Transmitter.html","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/nvx_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Interface for enumerating devices","summary":"

Interface for enumerating devices

"},{"html_id":"drivers/Crestron/VirtualSwitcher","path":"Crestron/VirtualSwitcher.html","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_OUTPUT","name":"DUMMY_OUTPUT","value":"[] of Int32"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"available_inputs-instance-method","name":"available_inputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L112"},"def":{"name":"available_inputs","visibility":"Public","body":"encoder_name_map.keys"}},{"html_id":"available_outputs-instance-method","name":"available_outputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L116"},"def":{"name":"available_outputs","visibility":"Public","body":"decoder_name_map.keys"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"only support muting the outputs, no unmuting","summary":"

only support muting the outputs, no unmuting

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L89"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n SwitchLayer::Audio\nin MuteLayer::Video\n SwitchLayer::Video\nin MuteLayer::AudioVideo\n SwitchLayer::All\nend\nswitch({\"none\" => [index]}, switch_layer)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@audio = setting?(AudioSink, :audio_sink)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy to supress errors in routing","summary":"

dummy to supress errors in routing

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L42"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"receivers-instance-method","name":"receivers","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L58"},"def":{"name":"receivers","visibility":"Public","body":"system.implementing(Crestron::Receiver)"}},{"html_id":"switch(map:Hash(Input,Array(Output|Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L140"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.video?) || layer.audio?\nelse\n return\nend\nlogger.debug do\n \"switching #{layer}: #{map}\"\nend\nconnect(map, layer) do |mod, __temp_231|\n video, audio = __temp_231\n case layer\n in .all?\n switch_audio_to(audio)\n mod.switch_to(video)\n in .audio?\n switch_audio_to(audio)\n in .video?\n inp = case video\n in JSON::Any\n video.as_s? || video.as_i\n in String\n video\n end\n mod.switch({inp => DUMMY_OUTPUT}, layer)\n in .data?, .data2?\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L103"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"stream = get_streams(input)\nif stream\nelse\n return\nend\nswitch_audio_to(stream[1])\nreceivers.switch_to(stream[0])\n"}},{"html_id":"transmitters-instance-method","name":"transmitters","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L54"},"def":{"name":"transmitters","visibility":"Public","body":"system.implementing(Crestron::Transmitter)"}}],"types":[{"html_id":"drivers/Crestron/VirtualSwitcher/AudioSink","path":"Crestron/VirtualSwitcher/AudioSink.html","kind":"class","full_name":"Crestron::VirtualSwitcher::AudioSink","name":"AudioSink","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Crestron/VirtualSwitcher","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L31"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L30"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L29"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/crestron/virtual_switcher.cr#L32"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]}]}]},{"html_id":"drivers/Delta","path":"Delta.html","kind":"module","full_name":"Delta","name":"Delta","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L3"},{"filename":"src/delta/models/generic_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L3"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L3"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L3"},{"filename":"src/delta/models/list_sites_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L3"},{"filename":"src/delta/models/local_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L3"},{"filename":"src/delta/models/object.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L3"},{"filename":"src/delta/models/property_identifier.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L3"},{"filename":"src/delta/models/reference.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L3"},{"filename":"src/delta/models/value_property.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Delta/API","path":"Delta/API.html","kind":"class","full_name":"Delta::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_object_value(site_name:String,device_number:String|UInt32,object_type:String,instance:String|UInt32)-instance-method","name":"get_object_value","doc":"get value of property from object through instance","summary":"

get value of property from object through instance

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L103"},"def":{"name":"get_object_value","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"visibility":"Public","body":"path = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}/#{object_type},#{instance}\")\nresponse = fetch(path)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ValueProperty.from_json(response.body)\n"}},{"html_id":"list_device_objects(site_name:String,device_number:String|UInt32)-instance-method","name":"list_device_objects","doc":"list objects from device resource","summary":"

list objects from device resource

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L77"},"def":{"name":"list_device_objects","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"visibility":"Public","body":"skip = 0\nobjects = [] of Models::Object\npath = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListObjectsByDeviceNumber.from_json(response.body)\n body.json_unmapped.each do |key, obj|\n value = obj.as_h\n object_type, instance = key.split(',', 2)\n objects.push(Models::Object.new(object_type, instance, base: value[\"$base\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\nobjects\n"}},{"html_id":"list_devices(site_name:String)-instance-method","name":"list_devices","doc":"list devices for site","summary":"

list devices for site

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"args_string":"(site_name : String)","args_html":"(site_name : String)","location":{"filename":"src/delta/api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L49"},"def":{"name":"list_devices","args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"visibility":"Public","body":"skip = 0\ndevices = [] of Models::Device\npath = URI.encode_path(\"/api/.bacnet/#{site_name}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListDevicesBySiteNameResponse.from_json(response.body)\n body.json_unmapped.keys.each do |key|\n value = body.json_unmapped[key].as_h\n devices.push(Models::Device.new(id: key.to_u32, base: value[\"$base\"].to_s, node_type: value[\"nodeType\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\ndevices\n"}},{"html_id":"list_sites-instance-method","name":"list_sites","doc":"list all sites","summary":"

list all sites

","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L43"},"def":{"name":"list_sites","visibility":"Public","body":"response = Models::ListSitesResponse.from_json((fetch(\"/api/.bacnet\")).body)\nresponse.json_unmapped.keys\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/api.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":"@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n@debug = (setting?(Bool, :debug)) || false\n"}}]},{"html_id":"drivers/Delta/Models","path":"Delta/Models.html","kind":"module","full_name":"Delta::Models","name":"Models","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L4"},{"filename":"src/delta/models/generic_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L4"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L4"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L4"},{"filename":"src/delta/models/list_sites_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L4"},{"filename":"src/delta/models/local_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L4"},{"filename":"src/delta/models/object.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L4"},{"filename":"src/delta/models/property_identifier.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L4"},{"filename":"src/delta/models/reference.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L4"},{"filename":"src/delta/models/value_property.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"types":[{"html_id":"drivers/Delta/Models/Device","path":"Delta/Models/Device.html","kind":"struct","full_name":"Delta::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(id:UInt32,base:String,node_type:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(id : UInt32, base : String, node_type : String, display_name : String)","args_html":"(id : UInt32, base : String, node_type : String, display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L20"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, base, node_type, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/device.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L18"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L18"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:UInt32-instance-method","name":"id","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L9"},"def":{"name":"id","return_type":"UInt32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:UInt32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L15"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/device.cr#L15"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/GenericValue","path":"Delta/Models/GenericValue.html","kind":"struct","full_name":"Delta::Models::GenericValue","name":"GenericValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/generic_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/generic_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/generic_value.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/ListDevicesBySiteNameResponse","path":"Delta/Models/ListDevicesBySiteNameResponse.html","kind":"struct","full_name":"Delta::Models::ListDevicesBySiteNameResponse","name":"ListDevicesBySiteNameResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"collection:String|Nil-instance-method","name":"collection","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection","return_type":"String | ::Nil","visibility":"Public","body":"@collection"}},{"html_id":"collection=(collection:String|Nil)-instance-method","name":"collection=","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"args_string":"(collection : String | Nil)","args_html":"(collection : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection=","args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"visibility":"Public","body":"@collection = collection"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}}]},{"html_id":"drivers/Delta/Models/ListObjectsByDeviceNumber","path":"Delta/Models/ListObjectsByDeviceNumber.html","kind":"struct","full_name":"Delta::Models::ListObjectsByDeviceNumber","name":"ListObjectsByDeviceNumber","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/ListSitesResponse","path":"Delta/Models/ListSitesResponse.html","kind":"struct","full_name":"Delta::Models::ListSitesResponse","name":"ListSitesResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_sites_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/LocalValue","path":"Delta/Models/LocalValue.html","kind":"struct","full_name":"Delta::Models::LocalValue","name":"LocalValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/local_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/local_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"real:GenericValue-instance-method","name":"real","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L12"},"def":{"name":"real","return_type":"GenericValue","visibility":"Public","body":"@real"}},{"html_id":"real=(real:GenericValue)-instance-method","name":"real=","abstract":false,"args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"args_string":"(real : GenericValue)","args_html":"(real : GenericValue)","location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/local_value.cr#L12"},"def":{"name":"real=","args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"visibility":"Public","body":"@real = real"}}]},{"html_id":"drivers/Delta/Models/Object","path":"Delta/Models/Object.html","kind":"struct","full_name":"Delta::Models::Object","name":"Object","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/object.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(object_type:String,instance:String,base:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(object_type : String, instance : String, base : String, display_name : String)","args_html":"(object_type : String, instance : String, base : String, display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L17"},"def":{"name":"new","args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object_type, instance, base, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/object.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"instance:UInt32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L9"},"def":{"name":"instance","return_type":"UInt32","visibility":"Public","body":"@instance"}},{"html_id":"instance=(instance:UInt32)-instance-method","name":"instance=","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"args_string":"(instance : UInt32)","args_html":"(instance : UInt32)","location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L9"},"def":{"name":"instance=","args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"visibility":"Public","body":"@instance = instance"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L8"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/object.cr#L8"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}}]},{"html_id":"drivers/Delta/Models/PropertyIdentifier","path":"Delta/Models/PropertyIdentifier.html","kind":"struct","full_name":"Delta::Models::PropertyIdentifier","name":"PropertyIdentifier","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/property_identifier.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/Reference","path":"Delta/Models/Reference.html","kind":"struct","full_name":"Delta::Models::Reference","name":"Reference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/reference.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/reference.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"device_identifier:GenericValue-instance-method","name":"device_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier","return_type":"GenericValue","visibility":"Public","body":"@device_identifier"}},{"html_id":"device_identifier=(device_identifier:GenericValue)-instance-method","name":"device_identifier=","abstract":false,"args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"args_string":"(device_identifier : GenericValue)","args_html":"(device_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier=","args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@device_identifier = device_identifier"}},{"html_id":"object_identifier:GenericValue-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier","return_type":"GenericValue","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"args_string":"(object_identifier : GenericValue)","args_html":"(object_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"property_identifier:PropertyIdentifier-instance-method","name":"property_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier","return_type":"PropertyIdentifier","visibility":"Public","body":"@property_identifier"}},{"html_id":"property_identifier=(property_identifier:PropertyIdentifier)-instance-method","name":"property_identifier=","abstract":false,"args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"args_string":"(property_identifier : PropertyIdentifier)","args_html":"(property_identifier : PropertyIdentifier)","location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier=","args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"visibility":"Public","body":"@property_identifier = property_identifier"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L12"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/reference.cr#L12"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Delta/Models/ValueProperty","path":"Delta/Models/ValueProperty.html","kind":"struct","full_name":"Delta::Models::ValueProperty","name":"ValueProperty","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/value_property.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/value_property.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"cov_increment:GenericValue|Nil-instance-method","name":"cov_increment","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@cov_increment"}},{"html_id":"cov_increment=(cov_increment:GenericValue|Nil)-instance-method","name":"cov_increment=","abstract":false,"args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"args_string":"(cov_increment : GenericValue | Nil)","args_html":"(cov_increment : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment=","args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@cov_increment = cov_increment"}},{"html_id":"description:GenericValue|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L73"},"def":{"name":"description","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:GenericValue|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"args_string":"(description : GenericValue | Nil)","args_html":"(description : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L73"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"event_state:GenericValue|Nil-instance-method","name":"event_state","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@event_state"}},{"html_id":"event_state=(event_state:GenericValue|Nil)-instance-method","name":"event_state=","abstract":false,"args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"args_string":"(event_state : GenericValue | Nil)","args_html":"(event_state : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state=","args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@event_state = event_state"}},{"html_id":"exchange_flags:GenericValue|Nil-instance-method","name":"exchange_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_flags"}},{"html_id":"exchange_flags=(exchange_flags:GenericValue|Nil)-instance-method","name":"exchange_flags=","abstract":false,"args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_flags : GenericValue | Nil)","args_html":"(exchange_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags=","args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_flags = exchange_flags"}},{"html_id":"exchange_type:GenericValue|Nil-instance-method","name":"exchange_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_type"}},{"html_id":"exchange_type=(exchange_type:GenericValue|Nil)-instance-method","name":"exchange_type=","abstract":false,"args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_type : GenericValue | Nil)","args_html":"(exchange_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type=","args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_type = exchange_type"}},{"html_id":"last_error:GenericValue|Nil-instance-method","name":"last_error","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_error"}},{"html_id":"last_error=(last_error:GenericValue|Nil)-instance-method","name":"last_error=","abstract":false,"args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"args_string":"(last_error : GenericValue | Nil)","args_html":"(last_error : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error=","args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_error = last_error"}},{"html_id":"last_sent:GenericValue|Nil-instance-method","name":"last_sent","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_sent"}},{"html_id":"last_sent=(last_sent:GenericValue|Nil)-instance-method","name":"last_sent=","abstract":false,"args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"args_string":"(last_sent : GenericValue | Nil)","args_html":"(last_sent : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent=","args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_sent = last_sent"}},{"html_id":"local_flags:LocalValue|Nil-instance-method","name":"local_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags","return_type":"LocalValue | ::Nil","visibility":"Public","body":"@local_flags"}},{"html_id":"local_flags=(local_flags:GenericValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(local_flags : GenericValue | Nil)","args_html":"(local_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L37"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_flags=(local_flags:LocalValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"args_string":"(local_flags : LocalValue | Nil)","args_html":"(local_flags : LocalValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_ref:Reference|Nil-instance-method","name":"local_ref","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref","return_type":"Reference | ::Nil","visibility":"Public","body":"@local_ref"}},{"html_id":"local_ref=(local_ref:Reference|Nil)-instance-method","name":"local_ref=","abstract":false,"args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"args_string":"(local_ref : Reference | Nil)","args_html":"(local_ref : Reference | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref=","args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"visibility":"Public","body":"@local_ref = local_ref"}},{"html_id":"object_identifier:GenericValue|Nil-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue|Nil)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"args_string":"(object_identifier : GenericValue | Nil)","args_html":"(object_identifier : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"object_name:GenericValue|Nil-instance-method","name":"object_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_name"}},{"html_id":"object_name=(object_name:GenericValue|Nil)-instance-method","name":"object_name=","abstract":false,"args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"args_string":"(object_name : GenericValue | Nil)","args_html":"(object_name : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name=","args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_name = object_name"}},{"html_id":"object_type:GenericValue|Nil-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:GenericValue|Nil)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"args_string":"(object_type : GenericValue | Nil)","args_html":"(object_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"out_of_service:GenericValue|Nil-instance-method","name":"out_of_service","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@out_of_service"}},{"html_id":"out_of_service=(out_of_service:GenericValue|Nil)-instance-method","name":"out_of_service=","abstract":false,"args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"args_string":"(out_of_service : GenericValue | Nil)","args_html":"(out_of_service : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service=","args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@out_of_service = out_of_service"}},{"html_id":"present_value:GenericValue|Nil-instance-method","name":"present_value","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@present_value"}},{"html_id":"present_value=(present_value:GenericValue|Nil)-instance-method","name":"present_value=","abstract":false,"args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"args_string":"(present_value : GenericValue | Nil)","args_html":"(present_value : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value=","args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@present_value = present_value"}},{"html_id":"reliability:GenericValue|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:GenericValue|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"args_string":"(reliability : GenericValue | Nil)","args_html":"(reliability : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"send_frequency:GenericValue|Nil-instance-method","name":"send_frequency","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@send_frequency"}},{"html_id":"send_frequency=(send_frequency:GenericValue|Nil)-instance-method","name":"send_frequency=","abstract":false,"args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"args_string":"(send_frequency : GenericValue | Nil)","args_html":"(send_frequency : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency=","args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@send_frequency = send_frequency"}},{"html_id":"status_flags:GenericValue|Nil-instance-method","name":"status_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@status_flags"}},{"html_id":"status_flags=(status_flags:GenericValue|Nil)-instance-method","name":"status_flags=","abstract":false,"args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(status_flags : GenericValue | Nil)","args_html":"(status_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags=","args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@status_flags = status_flags"}},{"html_id":"subscribers:Hash(String,JSON::Any)|Nil-instance-method","name":"subscribers","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@subscribers"}},{"html_id":"subscribers=(subscribers:Hash(String,JSON::Any)|Nil)-instance-method","name":"subscribers=","abstract":false,"args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(subscribers : Hash(String, JSON::Any) | Nil)","args_html":"(subscribers : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers=","args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@subscribers = subscribers"}},{"html_id":"units:GenericValue|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L70"},"def":{"name":"units","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"units=(units:GenericValue|Nil)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"args_string":"(units : GenericValue | Nil)","args_html":"(units : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/models/value_property.cr#L70"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@units = units"}}]}]},{"html_id":"drivers/Delta/UNOnext","path":"Delta/UNOnext.html","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"NO_OBJECTS","name":"NO_OBJECTS","value":"[] of Models::Object"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{0 => SensorType::Temperature, 1 => SensorType::Humidity, 2 => SensorType::AirQuality, 4 => SensorType::PPM, 5 => SensorType::Illuminance}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Detail))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L44"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Detail))","visibility":"Public","body":"@cached_data"}},{"html_id":"manager_mappings:Array(ManMap)-instance-method","name":"manager_mappings","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L43"},"def":{"name":"manager_mappings","return_type":"Array(ManMap)","visibility":"Public","body":"@manager_mappings"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@manager_mappings = setting(Array(ManMap), :manager_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Detail)).new do |hash, key|\n hash[key] = [] of Detail\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/delta/uno_next.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L49"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"unonext-\"))\n else\n return nil\n end\n device_id = (mac.lchop(\"unonext-\")).to_u32?\n index = id.to_u32?\n if device_id && index\n else\n return nil\n end\n build_sensor_details(device_id, index)\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/delta/uno_next.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L73"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.values.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"unonext-\")\n else\n return NO_MATCH\n end\nend\nresult = if zone_id\n cached_data[zone_id]? || ([] of Detail)\nelse\n manager_mappings.flat_map do |man_map|\n cached_data[man_map.level_zone]? || ([] of Detail)\n end\nend\nif sensor_type && mac\n result.reject! do |details|\n (details.type != sensor_type) || (details.mac != mac)\n end\nelse\n if sensor_type\n result.reject! do |details|\n details.type != sensor_type\n end\n else\n if mac\n result.reject! do |details|\n details.mac != mac\n end\n end\n end\nend\nresult\n"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L42"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}}],"types":[{"html_id":"drivers/Delta/UNOnext/ManMap","path":"Delta/UNOnext/ManMap.html","kind":"struct","full_name":"Delta::UNOnext::ManMap","name":"ManMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/UNOnext","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,managers:Array(UInt32))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"args_string":"(building_zone : String, level_zone : String, managers : Array(UInt32))","args_html":"(building_zone : String, level_zone : String, managers : Array(UInt32))","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, managers)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/uno_next.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @managers.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,managers_managers=@managers)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/uno_next.cr#L27"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _managers)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"managers:Array(UInt32)-instance-method","name":"managers","abstract":false,"def":{"name":"managers","return_type":"Array(UInt32)","visibility":"Public","body":"@managers"}}]}]},{"html_id":"drivers/Delta/ZenPIRLocation","path":"Delta/ZenPIRLocation.html","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Location))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L53"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Location))","visibility":"Public","body":"@cached_data"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/delta/zen_pir_location.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L68"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L73"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location.presence && (location != \"area\")\n return [] of Location\nend\n@cached_data[zone_id]? || ([] of Location)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L58"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L63"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@zen_id = setting(UInt32, :zen_id)\n@pir_mappings = setting(Array(PIRMap), :pir_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Location)).new do |hash, key|\n hash[key] = [] of Location\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"pir_mappings:Array(PIRMap)-instance-method","name":"pir_mappings","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L52"},"def":{"name":"pir_mappings","return_type":"Array(PIRMap)","visibility":"Public","body":"@pir_mappings"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L50"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}},{"html_id":"zen_id:UInt32-instance-method","name":"zen_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L51"},"def":{"name":"zen_id","return_type":"UInt32","visibility":"Public","body":"@zen_id"}}],"types":[{"html_id":"drivers/Delta/ZenPIRLocation/Location","path":"Delta/ZenPIRLocation/Location.html","kind":"struct","full_name":"Delta::ZenPIRLocation::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L83"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(level:String,map_id:String,area_id:String,capacity:Int32,at_location:Int32,zen_device_id:UInt32,zen_object_id:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"args_string":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","args_html":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L96"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, map_id, area_id, capacity, at_location, zen_device_id, zen_object_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L84"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"at_location:Int32-instance-method","name":"at_location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location","return_type":"Int32","visibility":"Public","body":"@at_location"}},{"html_id":"at_location=(at_location:Int32)-instance-method","name":"at_location=","abstract":false,"args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"args_string":"(at_location : Int32)","args_html":"(at_location : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location=","args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"visibility":"Public","body":"@at_location = at_location"}},{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(level : String)","args_html":"(level : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"@level = level"}},{"html_id":"location:Symbol-instance-method","name":"location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L86"},"def":{"name":"location","return_type":"Symbol","visibility":"Public","body":"@location"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"zen_device_id:UInt32-instance-method","name":"zen_device_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id","return_type":"UInt32","visibility":"Public","body":"@zen_device_id"}},{"html_id":"zen_device_id=(zen_device_id:UInt32)-instance-method","name":"zen_device_id=","abstract":false,"args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"args_string":"(zen_device_id : UInt32)","args_html":"(zen_device_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id=","args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_device_id = zen_device_id"}},{"html_id":"zen_object_id:UInt32-instance-method","name":"zen_object_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id","return_type":"UInt32","visibility":"Public","body":"@zen_object_id"}},{"html_id":"zen_object_id=(zen_object_id:UInt32)-instance-method","name":"zen_object_id=","abstract":false,"args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"args_string":"(zen_object_id : UInt32)","args_html":"(zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id=","args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_object_id = zen_object_id"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIR","path":"Delta/ZenPIRLocation/PIR.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIR","name":"PIR","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(pir:UInt32,map:String)-class-method","name":"new","abstract":false,"args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"args_string":"(pir : UInt32, map : String)","args_html":"(pir : UInt32, map : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"new","args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pir, map)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@pir.clone, @map.clone)"}},{"html_id":"copy_with(pir_pir=@pir,map_map=@map)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"args_string":"(pir _pir = @pir, map _map = @map)","args_html":"(pir _pir = @pir, map _map = @map)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L30"},"def":{"name":"copy_with","args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"visibility":"Public","body":"self.class.new(_pir, _map)"}},{"html_id":"map:String-instance-method","name":"map","abstract":false,"def":{"name":"map","return_type":"String","visibility":"Public","body":"@map"}},{"html_id":"pir:UInt32-instance-method","name":"pir","abstract":false,"def":{"name":"pir","return_type":"UInt32","visibility":"Public","body":"@pir"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIRMap","path":"Delta/ZenPIRLocation/PIRMap.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIRMap","name":"PIRMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,pirs:Array(PIR))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"args_string":"(building_zone : String, level_zone : String, pirs : Array(PIR))","args_html":"(building_zone : String, level_zone : String, pirs : Array(PIR))","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, pirs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @pirs.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,pirs_pirs=@pirs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/delta/zen_pir_location.cr#L34"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _pirs)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"pirs:Array(PIR)-instance-method","name":"pirs","abstract":false,"def":{"name":"pirs","return_type":"Array(PIR)","visibility":"Public","body":"@pirs"}}]}]}]},{"html_id":"drivers/Denon","path":"Denon.html","kind":"module","full_name":"Denon","name":"Denon","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"","summary":"","types":[{"html_id":"drivers/Denon/Amplifier","path":"Denon/Amplifier.html","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Denon","kind":"module","full_name":"Denon","name":"Denon"},"types":[{"html_id":"drivers/Denon/Amplifier/AvReceiver","path":"Denon/Amplifier/AvReceiver.html","kind":"class","full_name":"Denon::Amplifier::AvReceiver","name":"AvReceiver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power: :PW, power_query: :\"PW?\", mute: :MU, mute_query: :\"MU?\", volume: :MV, volume_query: :\"MV?\", input: :SI, input_query: :\"SI?\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"}],"namespace":{"html_id":"drivers/Denon/Amplifier","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L65"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.info do\n \"-- Polling Denon AVR\"\n end\n power?\n do_send(:input, priority: 0, name: :input)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L80"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"input(input:String=\"\")-instance-method","name":"input","doc":"Just here for documentation (there are many more)\n\nINPUTS = [:cd, :tuner, :dvd, :bd, :tv, :\"sat/cbl\", :dvr, :game, :game2, :\"v.aux\", :dock]","summary":"

Just here for documentation (there are many more)

","abstract":false,"args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"args_string":"(input : String = \"\")","args_html":"(input : String = "")","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L148"},"def":{"name":"input","args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"visibility":"Public","body":"status = input.upcase\nif status != self[:input]\n input = input.to_s.upcase\n do_send(:input, input, name: :input)\nend\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L156"},"def":{"name":"input?","visibility":"Public","body":"do_send(:input_query, priority: 0, name: :input_query)"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L104"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"req = state ? \"ON\" : \"OFF\"\nif self[:mute] == req\n return\nend\ndo_send(:mute, req, name: :mute)\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L99"},"def":{"name":"mute?","visibility":"Public","body":"self[:mute] = \"OFF\"\ndo_send(:mute_query, priority: 0, name: :mute_query)\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L110"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:volume_min] = 0\nself[:volume_max] = @volume_range.max\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L60"},"def":{"name":"on_update","visibility":"Public","body":"self[:max_waits] = 10\nself[:timeout] = 3000\n"}},{"html_id":"power(state:Bool=false)-instance-method","name":"power","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L84"},"def":{"name":"power","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state && ((self[:power] == \"OFF\") || (self[:power] == \"STANDBY\"))\n do_send(:power, \"ON\", delay: 3.milliseconds, name: :power)\nelse\n if !state && (self[:power] == \"ON\")\n do_send(:power, \"STANDBY\", delay: 3.milliseconds, name: :power)\n end\nend"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L93"},"def":{"name":"power?","visibility":"Public","body":"do_send(:power_query, priority: 0, name: :power_query)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.info do\n \"Denon sent #{data.inspect}\"\nend\nif task\nelse\n return\nend\ncmd = data[0..1]\nval = data[2..-2]\ncase cmd\nwhen \"PW\"\n self[:power] = val\nwhen \"SI\"\n self[:input] = val\nwhen \"MV\"\n vol_percent = ((val.to_f * 2) / @volume_range.end.to_f) * 100.0\n self[:volume] = vol_percent\nwhen \"MU\"\n self[:mute] = val\nelse\n return :ignore\nend\ntask.try(&.success)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L114"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L118"},"def":{"name":"unmute_audio","visibility":"Public","body":"unmute"}},{"html_id":"volume(level:Float64|Int32=0)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"args_string":"(level : Float64 | Int32 = 0)","args_html":"(level : Float64 | Int32 = 0)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L122"},"def":{"name":"volume","args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\nif self[:volume] == level\n return\nend\npercentage = level / 100.0\nvalue = (percentage * @volume_range.end.to_f).round_away.to_i\nstep = value % 2\nactual = value / 2\nreq = actual.to_s.rjust(2, '0')\nif step != 0\n req = req + \"5\"\nend\ndo_send(:volume, req, name: :volume)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/denon/amplifier/av_receiver.cr#L141"},"def":{"name":"volume?","visibility":"Public","body":"do_send(:volume_query, priority: 0, name: :volume_query)"}}]}]}]},{"html_id":"drivers/DigitalIO","path":"DigitalIO.html","kind":"class","full_name":"DigitalIO","name":"DigitalIO","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv_spec.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv_spec.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"ir(index:Int32,command:String)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String)","args_html":"(index : Int32, command : String)","location":{"filename":"src/global_cache/ir_tv_spec.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv_spec.cr#L6"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@called = @called + 1\nself[:call_count] = @called\nnil\n"}}]},{"html_id":"drivers/Digraph","path":"Digraph.html","kind":"alias","full_name":"Digraph","name":"Digraph","abstract":false,"locations":[{"filename":"src/place/router/digraph_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Digraph(N, E)","aliased_html":"Place::Router::Digraph(N, E)","const":false},{"html_id":"drivers/DispatchProtocol","path":"DispatchProtocol.html","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: typeof(MessageType::RECEIVED.value), onlyif: nil, verify: nil, value: nil, encoding: nil, enum_type: DispatchProtocol::MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil, endian: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend, endian: nil}, {type: \"bytes\", name: data, cls: Slice(UInt8), onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L4"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}],"types":[{"html_id":"drivers/DispatchProtocol/MessageType","path":"DispatchProtocol/MessageType.html","kind":"enum","full_name":"DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L6"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0_u8"},{"id":"CLOSED","name":"CLOSED","value":"1_u8"},{"id":"RECEIVED","name":"RECEIVED","value":"2_u8"},{"id":"WRITE","name":"WRITE","value":"3_u8"},{"id":"CLOSE","name":"CLOSE","value":"4_u8"}],"namespace":{"html_id":"drivers/DispatchProtocol","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L11"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L8"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L9"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/knx/disptach_model.cr#L10"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]},{"html_id":"drivers/Echo360","path":"Echo360.html","kind":"module","full_name":"Echo360","name":"Echo360","abstract":false,"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Echo360/DeviceCapture","path":"Echo360/DeviceCapture.html","kind":"class","full_name":"Echo360::DeviceCapture","name":"DeviceCapture","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CHECK","name":"CHECK","value":"{\"next\", \"current\"}"},{"id":"STATUS_CMDS","name":"STATUS_CMDS","value":"{system_status: :system, capture_status: :captures, next: :next_capture, current: :current_capture, state: :monitoring}"}],"namespace":{"html_id":"drivers/Echo360","kind":"module","full_name":"Echo360","name":"Echo360"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"capture","doc":"This will auto-start a recording","summary":"

This will auto-start a recording

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L70"},"def":{"name":"capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/new_capture\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"capture_status-instance-method","name":"capture_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"capture_status","visibility":"Public","body":"response = get(\"/status/captures\")\nprocess_status(check(response))\n"}},{"html_id":"captures-instance-method","name":"captures","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L57"},"def":{"name":"captures","visibility":"Public","body":"response = get(\"/diagnostics/recovery/saved-content\")\nself[:captures] = (check(response))[\"captures\"][\"capture\"]\n"}},{"html_id":"current-instance-method","name":"current","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"current","visibility":"Public","body":"response = get(\"/status/current_capture\")\nprocess_status(check(response))\n"}},{"html_id":"extend(duration:Int32)-instance-method","name":"extend","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"args_string":"(duration : Int32)","args_html":"(duration : Int32)","location":{"filename":"src/echo360/device_capture.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L90"},"def":{"name":"extend","args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"duration\", duration.to_s)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"next-instance-method","name":"next","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"next","visibility":"Public","body":"response = get(\"/status/next_capture\")\nprocess_status(check(response))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(15.seconds) do\n logger.debug do\n \"-- Polling Capture\"\n end\n system_status\n capture_status\nend\n"}},{"html_id":"pause-instance-method","name":"pause","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L97"},"def":{"name":"pause","visibility":"Public","body":"response = post(\"/capture/pause\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L52"},"def":{"name":"reboot","visibility":"Public","body":"(post(\"/diagnostics/reboot\")).success?"}},{"html_id":"record-instance-method","name":"record","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L111"},"def":{"name":"record","visibility":"Public","body":"start"}},{"html_id":"restart_application-instance-method","name":"restart_application","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L47"},"def":{"name":"restart_application","visibility":"Public","body":"(post(\"/diagnostics/restart_all\")).success?"}},{"html_id":"resume-instance-method","name":"resume","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L107"},"def":{"name":"resume","visibility":"Public","body":"start"}},{"html_id":"start-instance-method","name":"start","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L102"},"def":{"name":"start","visibility":"Public","body":"response = post(\"/capture/record\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"state-instance-method","name":"state","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"state","visibility":"Public","body":"response = get(\"/status/monitoring\")\nprocess_status(check(response))\n"}},{"html_id":"stop-instance-method","name":"stop","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L115"},"def":{"name":"stop","visibility":"Public","body":"response = post(\"/capture/stop\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"system_status-instance-method","name":"system_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L36"},"def":{"name":"system_status","visibility":"Public","body":"response = get(\"/status/system\")\nprocess_status(check(response))\n"}},{"html_id":"test_capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"test_capture","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L80"},"def":{"name":"test_capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"upload(id:String)-instance-method","name":"upload","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/echo360/device_capture.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/echo360/device_capture.cr#L63"},"def":{"name":"upload","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/diagnostics/recovery/#{id}/upload\")\nif response.success?\nelse\n raise(\"upload request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}}]}]},{"html_id":"drivers/Embedia","path":"Embedia.html","kind":"module","full_name":"Embedia","name":"Embedia","abstract":false,"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Embedia/ControlPoint","path":"Embedia/ControlPoint.html","kind":"class","full_name":"Embedia::ControlPoint","name":"ControlPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{stop: 40, down: 78, up: 75, next_extent_preset: 79, previous_extent_preset: 80, close: 22, open: 26, next_tilt_preset: 7, previous_tilt_preset: 4, clear_override: 76}"}],"namespace":{"html_id":"drivers/Embedia","kind":"module","full_name":"Embedia","name":"Embedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_override(address:UInt8,**options)-instance-method","name":"clear_override","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"clear_override","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 76], **options)"}},{"html_id":"close(address:UInt8,**options)-instance-method","name":"close","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"close","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 22], **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"Maintaining connection\"\n end\n query_sensor(0)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"down(address:UInt8,**options)-instance-method","name":"down","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"down","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 78], **options)"}},{"html_id":"extent_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L54"},"def":{"name":"extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 29 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"extent_preset#{address}\")\n"}},{"html_id":"next_extent_preset(address:UInt8,**options)-instance-method","name":"next_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"next_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 79], **options)"}},{"html_id":"next_tilt_preset(address:UInt8,**options)-instance-method","name":"next_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"next_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 7], **options)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 200.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"open(address:UInt8,**options)-instance-method","name":"open","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"open","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 26], **options)"}},{"html_id":"previous_extent_preset(address:UInt8,**options)-instance-method","name":"previous_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"previous_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 80], **options)"}},{"html_id":"previous_tilt_preset(address:UInt8,**options)-instance-method","name":"previous_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"previous_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 4], **options)"}},{"html_id":"query_sensor(address:UInt8,**options)-instance-method","name":"query_sensor","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L64"},"def":{"name":"query_sensor","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 3, 0, 1, 0, 1], **options)"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/embedia/control_point.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L74"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n raw_data = (String.new(bytes)).strip\n data = raw_data[1..-3].hexbytes\n address = data[0]\n func = data[1]\n case func\n when 3\n \"sensor response #{raw_data} on address 0x#{address.to_s(16)}\"\n else\n \"sent #{raw_data} on address 0x#{address.to_s(16)}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stop(address:UInt8,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"stop","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 40], **options)"}},{"html_id":"tilt_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L59"},"def":{"name":"tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 57 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"tilt_preset#{address}\")\n"}},{"html_id":"up(address:UInt8,**options)-instance-method","name":"up","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/embedia/control_point.cr#L46"},"def":{"name":"up","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 75], **options)"}}]}]},{"html_id":"drivers/Enumerable","path":"Enumerable.html","kind":"module","full_name":"Enumerable(T)","name":"Enumerable","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"The `Enumerable` mixin provides collection classes with several traversal, searching,\nfiltering and querying methods.\n\nIncluding types must provide an `each` method, which yields successive members\nof the collection.\n\nFor example:\n\n```\nclass Three\n include Enumerable(Int32)\n\n def each(&)\n yield 1\n yield 2\n yield 3\n end\nend\n\nthree = Three.new\nthree.to_a # => [1, 2, 3]\nthree.select &.odd? # => [1, 3]\nthree.all? { |x| x < 10 } # => true\n```\n\nNote that most search and filter methods traverse an Enumerable eagerly,\nproducing an `Array` as the result. For a lazy alternative refer to\nthe `Iterator` and `Iterable` modules.","summary":"

The Enumerable mixin provides collection classes with several traversal, searching, filtering and querying methods.

","instance_methods":[{"html_id":"flatten_xapi_json(parent_prefix:String|Nil=nil,delimiter:String=\"/\")-instance-method","name":"flatten_xapi_json","abstract":false,"args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"args_string":"(parent_prefix : String | Nil = nil, delimiter : String = \"/\")","args_html":"(parent_prefix : String | Nil = nil, delimiter : String = "/")","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L40"},"def":{"name":"flatten_xapi_json","args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"visibility":"Public","body":"res = {} of String => JSONComplex\nself.each_with_index do |elem, i|\n if elem.is_a?(Tuple)\n k, v = elem\n else\n k, v = i, elem\n if id = v.as_h?.try(&.delete(\"id\"))\n k = id\n end\n end\n key = parent_prefix ? \"#{parent_prefix}#{delimiter}#{k}\" : k.to_s\n raw = v.raw\n case raw\n in Array(JSON::Any)\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n in Hash(String, JSON::Any)\n value = raw[\"Value\"]?\n if value && value.as_h?.nil?\n valuespaceref = raw[\"valueSpaceRef\"]?.try do |__arg1|\n (__arg1.as_s.split('/')).last\n end\n res[key] = Cisco::CollaborationEndpoint::XAPI.value_convert(value.as_s, valuespaceref)\n else\n if id\n res[key] = raw.flatten_xapi_json(delimiter: delimiter)\n else\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n end\n end\n in JSONBasic\n res[key] = raw\n end\nend\nres\n"}}],"types":[{"html_id":"drivers/Enumerable/JSONBasic","path":"Enumerable/JSONBasic.html","kind":"alias","full_name":"Enumerable::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}},{"html_id":"drivers/Enumerable/JSONComplex","path":"Enumerable/JSONComplex.html","kind":"alias","full_name":"Enumerable::JSONComplex","name":"JSONComplex","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/collaboration_endpoint/response.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}}]},{"html_id":"drivers/Epson","path":"Epson.html","kind":"module","full_name":"Epson","name":"Epson","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Epson/Projector","path":"Epson/Projector.html","kind":"module","full_name":"Epson::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Epson","kind":"module","full_name":"Epson","name":"Epson"},"types":[{"html_id":"drivers/Epson/Projector/EscVp21","path":"Epson/Projector/EscVp21.html","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{power: \"PWR\", input: \"SOURCE\", volume: \"VOL\", av_mute: \"MUTE\", video_mute: \"MSEL\", error: \"ERR\", lamp: \"LAMP\"}"},{"id":"ERRORS","name":"ERRORS","value":"[\"00: no error\", \"01: fan error\", \"03: lamp failure at power on\", \"04: high internal temperature\", \"06: lamp error\", \"07: lamp cover door open\", \"08: cinema filter error\", \"09: capacitor is disconnected\", \"0A: auto iris error\", \"0B: subsystem error\", \"0C: low air flow error\", \"0D: air flow sensor error\", \"0E: ballast power supply error\", \"0F: shutter error\", \"10: peltiert cooling error\", \"11: pump cooling error\", \"12: static iris error\", \"13: power supply unit error\", \"14: exhaust shutter error\", \"15: obstacle detection error\", \"16: IF board discernment error\"]"},{"id":"RESPONSE","name":"RESPONSE","value":"COMMAND.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Epson/Projector","kind":"module","full_name":"Epson::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L33"},"def":{"name":"connected","visibility":"Public","body":"send(\"ESC/VP.net\\u0010\\u0003\\u0000\\u0000\\u0000\\u0000\")\nschedule.every(52.seconds, true) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L39"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L221"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 20) && @power_stable\n input?\n video_mute?\n volume?\nend\ndo_send(:lamp, priority: 20)\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L73"},"def":{"name":"input?","visibility":"Public","body":"(do_send(:input, priority: 0)).get\nself[:input]\n"}},{"html_id":"inspect_error-instance-method","name":"inspect_error","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L145"},"def":{"name":"inspect_error","visibility":"Public","body":"do_send(:error, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L98"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"case layer\nwhen .audio_video?\n do_send(:av_mute, state ? \"ON\" : \"OFF\", name: :mute)\n do_send(:av_mute, name: :\"mute?\", priority: 0)\nwhen .video?\n do_send(:video_mute, state ? \"ON\" : \"OFF\", name: :video_mute)\n video_mute?\nwhen .audio?\n val = state ? 0.0 : @unmute_volume\n volume(val)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:type] = :projector\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L43"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n @power_target = true\n logger.debug do\n \"-- epson Proj, requested to power on\"\n end\n do_send(:power, \"ON\", delay: 40.seconds, name: \"power\", priority: 99)\nelse\n @power_target = false\n logger.debug do\n \"-- epson Proj, requested to power off\"\n end\n do_send(:power, \"OFF\", delay: 10.seconds, name: \"power\", priority: 99)\nend\n@power_stable = false\nself[:power] = state\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L58"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power, **options)).get\n@power_actual || false\n"}},{"html_id":"power_actual:Bool|Nil-instance-method","name":"power_actual","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L22"},"def":{"name":"power_actual","return_type":"Bool | ::Nil","visibility":"Public","body":"@power_actual"}},{"html_id":"power_stable?:Bool-instance-method","name":"power_stable?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L23"},"def":{"name":"power_stable?","return_type":"Bool","visibility":"Public","body":"@power_stable"}},{"html_id":"power_target?:Bool-instance-method","name":"power_target?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L24"},"def":{"name":"power_target?","return_type":"Bool","visibility":"Public","body":"@power_target"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if data.size <= 2\n return task.try(&.success)\nend\ndata = String.new(data[1..-2])\nlogger.debug do\n \"epson Proj sent: #{data}\"\nend\ndata = data.split('=')\ncase RESPONSE[data[0]]\nwhen :error\n if data[1]?\n code = data[1].to_i(16)\n self[:last_error] = ERRORS[code]? || \"#{data[1]}: unknown error code #{code}\"\n return task.try(&.success(\"Epson PJ error was #{self[:last_error]}\"))\n else\n return task.try(&.abort(\"Epson PJ sent error response for #{task.not_nil!.name || \"unknown\"}\"))\n end\nwhen :power\n state = data[1].to_i\n @power_actual = powered = state < 3\n warming = state == 2\n cooling = state == 3\n if warming || cooling\n schedule.in(5.seconds) do\n power?(priority: 10)\n end\n else\n if !@power_stable\n if @power_actual == @power_target\n @power_stable = true\n else\n power(@power_target)\n end\n end\n end\n if @power_stable\n self[:power] = powered\n end\n self[:warming] = warming\n self[:cooling] = cooling\n if powered == @power_target\n if powered\n else\n self[:video_mute] = false\n end\n end\nwhen :av_mute\n self[:video_mute] = self[:audio_mute] = data[1] == \"ON\"\n self[:volume] = 0.0\nwhen :video_mute\n self[:video_mute] = data[1] == \"ON\"\nwhen :volume\n vol = data[1].to_i\n vol_percent = (vol.to_f / 255.0) * 100.0\n self[:volume] = vol_percent\n mute = vol == 0\n if mute\n self[:audio_mute] = mute\n end\n if mute\n else\n @unmute_volume || (@unmute_volume = vol_percent)\n end\nwhen :lamp\n self[:lamp_usage] = data[1].to_i\nwhen :input\n self[:input] = (Input.from_value(data[1].to_i(16))) || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L63"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- epson Proj, requested to switch to: #{input}\"\nend\ndo_send(:input, input.value.to_s(16), name: :input)\nself[:input] = input\nself[:video_mute] = false\ninput?\n"}},{"html_id":"video_mute?-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L116"},"def":{"name":"video_mute?","visibility":"Public","body":"(do_send(:video_mute, priority: 0)).get\n!!self[:video_mute]?.try(&.as_bool)\n"}},{"html_id":"volume(vol:Float64|Int32,**options)-instance-method","name":"volume","doc":"Volume commands are sent using the inpt command","summary":"

Volume commands are sent using the inpt command

","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"args_string":"(vol : Float64 | Int32, **options)","args_html":"(vol : Float64 | Int32, **options)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L79"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * 255.0).round_away.to_i\nif (mute = vol == 0.0) && self[:volume]?\n @unmute_volume = self[:volume].as_f\nend\ndo_send(:volume, vol_actual, **options, name: :volume)\nself[:volume] = vol\nself[:audio_mute] = mute\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L93"},"def":{"name":"volume?","visibility":"Public","body":"(do_send(:volume, priority: 0)).get\nself[:volume]?.try(&.as_f)\n"}}],"types":[{"html_id":"drivers/Epson/Projector/EscVp21/Input","path":"Epson/Projector/EscVp21/Input.html","kind":"enum","full_name":"Epson::Projector::EscVp21::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"48"},{"id":"HDBaseT","name":"HDBaseT","value":"128"}],"namespace":{"html_id":"drivers/Epson/Projector/EscVp21","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21"},"instance_methods":[{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L12"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/epson/projector/esc_vp21.cr#L11"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}}]}]}]}]},{"html_id":"drivers/Exterity","path":"Exterity.html","kind":"module","full_name":"Exterity","name":"Exterity","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Exterity/AvediaPlayer","path":"Exterity/AvediaPlayer.html","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity","kind":"module","full_name":"Exterity","name":"Exterity"},"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R92xx","path":"Exterity/AvediaPlayer/R92xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R92xx","name":"R92xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L40"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.info do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L52"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L56"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L72"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L60"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L76"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.info do\n \"Exterity sent #{data}\"\nend\nif @ready\n if data =~ (/sh: .* not found/i)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 2.seconds, priority: 95)\n return :failure\n end\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Exterity Control Interface| Exit/i)\n logger.info do\n \"-- got the control interface message, we're READY now\"\n end\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n logger.info do\n \"-- got the login: prompt\"\n end\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\n do_send(\"6\", wait: false, delay: 2.seconds, priority: 96)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 200.milliseconds, priority: 95)\n schedule.in(20.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n else\n if logger.info do\n \"Somehow we got here #{data}\"\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L48"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L64"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r92xx.cr#L68"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}]},{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","path":"Exterity/AvediaPlayer/R93xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L4"},{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L39"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"channel_name(name:String)-instance-method","name":"channel_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L75"},"def":{"name":"channel_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(set(:currentChannel_name, name, name: :name)).get\ncurrent_channel_name\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"current_channel-instance-method","name":"current_channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L94"},"def":{"name":"current_channel","visibility":"Public","body":"get(:currentChannel)"}},{"html_id":"current_channel_name-instance-method","name":"current_channel_name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L98"},"def":{"name":"current_channel_name","visibility":"Public","body":"get(:currentChannel_name)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L51"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L55"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L71"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"channel_lookup = {} of String => ChannelDetail\nif channel_details = setting?(Array(ChannelDetail), :channel_details)\n self[:channel_details] = channel_details\n channel_details.each do |lookup|\n channel_lookup[lookup.channel] = lookup\n end\nelse\n self[:channel_details] = nil\nend\n@channel_lookup = channel_lookup\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L59"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L75"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Exterity sent #{data}\"\nend\nif @ready\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Terminal Control Interface/i)\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 2.seconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 2.seconds, priority: 97)\n schedule.in(5.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L47"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L63"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/r93xx.cr#L67"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}],"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R93xx/ChannelDetail","path":"Exterity/AvediaPlayer/R93xx/ChannelDetail.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx::ChannelDetail","name":"ChannelDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L29"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L28"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/exterity/avedia_player/m93xx.cr#L27"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]}]}]},{"html_id":"drivers/Extron","path":"Extron.html","kind":"module","full_name":"Extron","name":"Extron","abstract":false,"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Extron/Matrix","path":"Extron/Matrix.html","kind":"class","full_name":"Extron::Matrix","name":"Matrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/matrix.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MUTE_INPUT","name":"MUTE_INPUT","value":"0_u16"}],"included_modules":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute(state:Bool=true,group:Int32=2)-instance-method","name":"audio_mute","doc":"Sets the audio mute *state* on the specified *group*.\n\nNOTE: mute groups may differ from volume groups depending on device\nconfiguration. Default group (2) is program audio.","summary":"

Sets the audio mute state on the specified group.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"args_string":"(state : Bool = true, group : Int32 = 2)","args_html":"(state : Bool = true, group : Int32 = 2)","location":{"filename":"src/extron/matrix.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L212"},"def":{"name":"audio_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"device_state = state ? '1' : '0'\nsend(Command[\"\\eD\", group, '*', device_state, \"GRPM\\r\"], Response::GroupMute) do\n state\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n query_device_info\nend"}},{"html_id":"device_size-instance-method","name":"device_size","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L60"},"def":{"name":"device_size","visibility":"Public","body":"if (__temp_1 = @device_size).nil?\n @device_size = (begin\n empty = MatrixSize.new(0_u16, 0_u16)\n SwitcherInformation.new(empty, empty)\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nif config.role.ssh?\nelse\n @ready = false\n transport.tokenizer = nil\nend\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/extron/matrix.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L82"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"output = index.to_u16\nif output > 0\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n MatrixLayer::Aud\nin MuteLayer::Video\n MatrixLayer::Vid\nin MuteLayer::AudioVideo\n MatrixLayer::All\nend\nif state\n record_mute(output, switch_layer)\n switch_one(MUTE_INPUT, output, switch_layer)\nelse\n video_input = audio_input = MUTE_INPUT\n if switch_layer.all? || switch_layer.vid?\n video_input = (@muted_video.delete(output)) || MUTE_INPUT\n end\n if switch_layer.all? || switch_layer.aud?\n audio_input = (@muted_audio.delete(output)) || MUTE_INPUT\n end\n if audio_input > 0\n switch_one(audio_input, output, MatrixLayer::Aud)\n end\n if video_input > 0\n switch_one(video_input, output, MatrixLayer::Vid)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L29"},"def":{"name":"on_load","visibility":"Public","body":"if config.role.ssh?\n @ready = true\n transport.tokenizer = Tokenizer.new(DELIMITER)\nend\nqueue.delay = 200.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"inputs = (setting?(UInt16, :input_count)) || 8_u16\noutputs = (setting?(UInt16, :output_count)) || 1_u16\nio = MatrixSize.new(inputs, outputs)\n@device_size = SwitcherInformation.new(video: io, audio: io)\n"}},{"html_id":"query_device_info-instance-method","name":"query_device_info","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L65"},"def":{"name":"query_device_info","visibility":"Public","body":"send(Command['I'], Response::SwitcherInformation) do |info|\n video_io = MatrixSize.new(info.video.inputs, info.video.outputs)\n audio_io = MatrixSize.new(info.audio.inputs, info.audio.outputs)\n @device_size = SwitcherInformation.new(video: video_io, audio: audio_io)\n self[:video_matrix] = \"#{info.video.inputs}x#{info.video.outputs}\"\n self[:audio_matrix] = \"#{info.audio.inputs}x#{info.audio.outputs}\"\n info\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","doc":"Response callback for async responses.","summary":"

Response callback for async responses.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/matrix.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L240"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Ready #{@ready}, Received #{String.new(data)}\"\nend\nif !@ready\n payload = String.new(data)\n if payload =~ (/Copyright/i)\n if password = setting?(String, :password)\n send(\"#{password}\\r\", wait: false, priority: 99)\n end\n transport.tokenizer = Tokenizer.new(DELIMITER)\n @ready = true\n schedule.in(1.second) do\n query_device_info\n end\n end\n return\nend\ncase response = Response.parse(data, as: Response::Unsolicited)\nin Tie\n update_io(response)\nin Error, Response::ParseError\n logger.error do\n response\n end\n task.try(&.abort)\n return\nin Time\n query_device_info\nin String\n logger.info do\n response\n end\nin Nil\nend\ntask.try(&.success)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","doc":"Implementing switchable interface","summary":"

Implementing switchable interface

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/matrix.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L118"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"extron_layer = case layer\nin Nil, .all?\n MatrixLayer::All\nin .audio?\n MatrixLayer::Aud\nin .video?\n MatrixLayer::Vid\nin .data?, .data2?\n logger.debug do\n \"layer #{layer} not available on extron matrix\"\n end\n return\nend\nif (map.size == 1) && (map.first_value.size == 1)\n switch_one(map.first_key, map.first_value.first, extron_layer)\nelse\n switch_map(map, extron_layer)\nend\n"}},{"html_id":"switch_layer(input:Input,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_layer","doc":"Connect *input* to all outputs at the specified *layer*.","summary":"

Connect input to all outputs at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L154"},"def":{"name":"switch_layer","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio = {} of UInt16 => UInt16\nend\nif layer.all? || layer.aud?\n @muted_video = {} of UInt16 => UInt16\nend\nsend(Command[input, layer], Response::Switch, name: \"present-#{input}-#{layer}\", &->update_io(Switch))\n"}},{"html_id":"switch_map(map:SignalMap,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_map","doc":"Applies a `SignalMap` as a single operation. All included ties will take\nsimultaneously on the device.","summary":"

Applies a SignalMap as a single operation.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","args_html":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L162"},"def":{"name":"switch_map","args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if map.size == 1\n outp = map.first_value\n if outp.is_a?(Array)\n if outp.size == 1\n return switch_one(map.first_key, outp.first, layer)\n end\n else\n return switch_one(map.first_key, outp, layer)\n end\nend\nties = map.flat_map do |__temp_236|\n input, outputs = __temp_236\n if outputs.is_a?(Enumerable)\n outputs.each.map do |output|\n if layer.all? || layer.aud?\n @muted_audio.delete(output)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(output)\n end\n Tie.new(input, output, layer)\n end\n else\n if layer.all? || layer.aud?\n @muted_audio.delete(outputs)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(outputs)\n end\n Tie.new(input, outputs, layer)\n end\nend\nconflicts = ties - ties.uniq(&.output)\nif conflicts.empty?\nelse\n raise(ArgumentError.new(\"map contains conflicts for output(s) #{conflicts.join(\", \", &.output)}\"))\nend\nsend(Command[\"\\e+Q\", ties.map do |tie|\n [tie.input, '*', tie.output, tie.layer]\nend, '\\r'], Response::Qik) do\n ties.each(&->update_io(Tie))\nend\n"}},{"html_id":"switch_one(input:Input,output:Output,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_one","doc":"Connect a signal *input* to an *output* at the specified *layer*.\n\n`0` may be used as either an input or output to specify a disconnection at\nthe corresponding signal point. For example, to disconnect input 1 from all\noutputs is is currently feeding `switch(1, 0)`.","summary":"

Connect a signal input to an output at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L147"},"def":{"name":"switch_one","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio.delete(output)\nend\nif layer.all? || layer.vid?\n @muted_video.delete(output)\nend\nsend(Command[input, '*', output, layer], Response::Tie, name: \"switch-#{output}-#{layer}\", &->update_io(Tie))\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/extron/matrix.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L134"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}},{"html_id":"volume(level:Float64|Int32,group:Int32=1)-instance-method","name":"volume","doc":"Sets the audio volume *level* (0..100) on the specified mix *group*.","summary":"

Sets the audio volume level (0..100) on the specified mix group.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"args_string":"(level : Float64 | Int32, group : Int32 = 1)","args_html":"(level : Float64 | Int32, group : Int32 = 1)","location":{"filename":"src/extron/matrix.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L199"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\ndevice_level = (level * 10.0).round_away.to_i - 1000\nsend(Command[\"\\eD\", group, '*', device_level, \"GRPM\\r\"], Response::GroupVolume) do\n level\nend\n"}}],"types":[{"html_id":"drivers/Extron/Matrix/Outputs","path":"Extron/Matrix/Outputs.html","kind":"alias","full_name":"Extron::Matrix::Outputs","name":"Outputs","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(UInt16)","aliased_html":"Array(UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}},{"html_id":"drivers/Extron/Matrix/SignalMap","path":"Extron/Matrix/SignalMap.html","kind":"alias","full_name":"Extron::Matrix::SignalMap","name":"SignalMap","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/matrix.cr#L140"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(UInt16, Array(UInt16) | UInt16)","aliased_html":"Hash(UInt16, Array(UInt16) | UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}}]},{"html_id":"drivers/Extron/SIS","path":"Extron/SIS.html","kind":"module","full_name":"Extron::SIS","name":"SIS","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L9"},{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"SPECIAL_CHARS","name":"SPECIAL_CHARS","value":"\"+-,@=‘[]{}<>`“;:|?\".chars","doc":"Illegal characters for use in property names.","summary":"

Illegal characters for use in property names.

"},{"id":"SSH_PORT","name":"SSH_PORT","value":"22023"},{"id":"TELNET_PORT","name":"TELNET_PORT","value":"23"}],"including_types":[{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"doc":"Implementation, types and utilities for working with the Extron Simple\nInstruction Set (SIS) device control protocol.\n\nThis protocol is used for control of all Extron signal distribution,\nprocessing and general audio-visual products via SSH, telnet and serial\ncontrol.","summary":"

Implementation, types and utilities for working with the Extron Simple Instruction Set (SIS) device control protocol.

","types":[{"html_id":"drivers/Extron/SIS/Command","path":"Extron/SIS/Command.html","kind":"struct","full_name":"Extron::SIS::Command(*T)","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Structure for representing a SIS device command.\n\nCommands are composed from a set of *fields*. The contents and types of these\nare arbitrary, however they must be capable of serialising to an IO.","summary":"

Structure for representing a SIS device command.

","constructors":[{"html_id":"new(*fields:*T)-class-method","name":"new","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"args_string":"(*fields : *T)","args_html":"(*fields : *T)","location":{"filename":"src/extron/sis/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L6"},"def":{"name":"new","args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"splat_index":0,"visibility":"Public","body":"_ = Command(*T).allocate\n_.initialize(*fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_io(io:IO,format=IO::ByteFormat::SystemEndian)-instance-method","name":"to_io","doc":"Writes `self` to the passed *io*.","summary":"

Writes self to the passed io.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"args_string":"(io : IO, format = IO::ByteFormat::SystemEndian)","args_html":"(io : IO, format = IO::ByteFormat::SystemEndian)","location":{"filename":"src/extron/sis/command.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L18"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"visibility":"Public","body":"@fields.each.flatten.each do |field|\n if field.is_a?(Enum)\n io.write_byte(field.value)\n else\n io << field\n end\nend"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Serialises `self` in a format suitable for log messages.","summary":"

Serialises self in a format suitable for log messages.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/extron/sis/command.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L11"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << '‹'\nto_io(io)\nio << '›'\n"}}],"macros":[{"html_id":"[](*fields)-macro","name":"[]","doc":"Syntactical suger for `Command` definition. Provides the ability to express\ncommand fields in the same way as `Byte` objects and other similar\ncollections from the Crystal std lib.","summary":"

Syntactical suger for Command definition.

","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":""}],"args_string":"(*fields)","args_html":"(*fields)","location":{"filename":"src/extron/sis/command.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/command.cr#L31"},"def":{"name":"[]","args":[{"name":"fields","external_name":"fields","restriction":""}],"splat_index":0,"visibility":"Public","body":" Extron::SIS::Command.new(\n{{ *fields }}\n)\n \n"}}]},{"html_id":"drivers/Extron/SIS/Error","path":"Extron/SIS/Error.html","kind":"enum","full_name":"Extron::SIS::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"InvalidInput","name":"InvalidInput","value":"1"},{"id":"InvalidCommand","name":"InvalidCommand","value":"10"},{"id":"InvalidPresent","name":"InvalidPresent","value":"11"},{"id":"InvalidOutput","name":"InvalidOutput","value":"12"},{"id":"InvalidParameter","name":"InvalidParameter","value":"13"},{"id":"InvalidForConfig","name":"InvalidForConfig","value":"14"},{"id":"Timeout","name":"Timeout","value":"17"},{"id":"Busy","name":"Busy","value":"22"},{"id":"PrivilegesViolation","name":"PrivilegesViolation","value":"24"},{"id":"DeviceNotPresent","name":"DeviceNotPresent","value":"25"},{"id":"MaxConnectionsExceeded","name":"MaxConnectionsExceeded","value":"26"},{"id":"InvalidEventNumber","name":"InvalidEventNumber","value":"27"},{"id":"FileNotFound","name":"FileNotFound","value":"28"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Device error numbers","summary":"

Device error numbers

","instance_methods":[{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L30"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"device_not_present?-instance-method","name":"device_not_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L32"},"def":{"name":"device_not_present?","visibility":"Public","body":"self == DeviceNotPresent"}},{"html_id":"file_not_found?-instance-method","name":"file_not_found?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L35"},"def":{"name":"file_not_found?","visibility":"Public","body":"self == FileNotFound"}},{"html_id":"invalid_command?-instance-method","name":"invalid_command?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L24"},"def":{"name":"invalid_command?","visibility":"Public","body":"self == InvalidCommand"}},{"html_id":"invalid_event_number?-instance-method","name":"invalid_event_number?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L34"},"def":{"name":"invalid_event_number?","visibility":"Public","body":"self == InvalidEventNumber"}},{"html_id":"invalid_for_config?-instance-method","name":"invalid_for_config?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L28"},"def":{"name":"invalid_for_config?","visibility":"Public","body":"self == InvalidForConfig"}},{"html_id":"invalid_input?-instance-method","name":"invalid_input?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L23"},"def":{"name":"invalid_input?","visibility":"Public","body":"self == InvalidInput"}},{"html_id":"invalid_output?-instance-method","name":"invalid_output?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L26"},"def":{"name":"invalid_output?","visibility":"Public","body":"self == InvalidOutput"}},{"html_id":"invalid_parameter?-instance-method","name":"invalid_parameter?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L27"},"def":{"name":"invalid_parameter?","visibility":"Public","body":"self == InvalidParameter"}},{"html_id":"invalid_present?-instance-method","name":"invalid_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L25"},"def":{"name":"invalid_present?","visibility":"Public","body":"self == InvalidPresent"}},{"html_id":"max_connections_exceeded?-instance-method","name":"max_connections_exceeded?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L33"},"def":{"name":"max_connections_exceeded?","visibility":"Public","body":"self == MaxConnectionsExceeded"}},{"html_id":"privileges_violation?-instance-method","name":"privileges_violation?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L31"},"def":{"name":"privileges_violation?","visibility":"Public","body":"self == PrivilegesViolation"}},{"html_id":"retryable?-instance-method","name":"retryable?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L37"},"def":{"name":"retryable?","visibility":"Public","body":"timeout? || busy?"}},{"html_id":"timeout?-instance-method","name":"timeout?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L29"},"def":{"name":"timeout?","visibility":"Public","body":"self == Timeout"}}]},{"html_id":"drivers/Extron/SIS/Input","path":"Extron/SIS/Input.html","kind":"alias","full_name":"Extron::SIS::Input","name":"Input","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/MatrixLayer","path":"Extron/SIS/MatrixLayer.html","kind":"enum","full_name":"Extron::SIS::MatrixLayer","name":"MatrixLayer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L47"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"33_u8"},{"id":"Aud","name":"Aud","value":"36_u8"},{"id":"Vid","name":"Vid","value":"37_u8"},{"id":"RGB","name":"RGB","value":"38_u8"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Layers for targetting signal distribution operations.","summary":"

Layers for targetting signal distribution operations.

","instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L48"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"aud?-instance-method","name":"aud?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L49"},"def":{"name":"aud?","visibility":"Public","body":"self == Aud"}},{"html_id":"includes_audio?-instance-method","name":"includes_audio?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L57"},"def":{"name":"includes_audio?","visibility":"Public","body":"All || Aud"}},{"html_id":"includes_video?-instance-method","name":"includes_video?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L53"},"def":{"name":"includes_video?","visibility":"Public","body":"(All || Vid) || RGB"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L51"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"vid?-instance-method","name":"vid?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L50"},"def":{"name":"vid?","visibility":"Public","body":"self == Vid"}}]},{"html_id":"drivers/Extron/SIS/MatrixSize","path":"Extron/SIS/MatrixSize.html","kind":"struct","full_name":"Extron::SIS::MatrixSize","name":"MatrixSize","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a switching layer.","summary":"

IO capacity for a switching layer.

","constructors":[{"html_id":"new(inputs:Input,outputs:Output)-class-method","name":"new","abstract":false,"args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"args_string":"(inputs : Input, outputs : Output)","args_html":"(inputs : Input, outputs : Output)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"new","args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"visibility":"Public","body":"_ = allocate\n_.initialize(inputs, outputs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@inputs.clone, @outputs.clone)"}},{"html_id":"copy_with(inputs_inputs=@inputs,outputs_outputs=@outputs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"args_string":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","args_html":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L69"},"def":{"name":"copy_with","args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"visibility":"Public","body":"self.class.new(_inputs, _outputs)"}},{"html_id":"inputs:Input-instance-method","name":"inputs","abstract":false,"def":{"name":"inputs","return_type":"Input","visibility":"Public","body":"@inputs"}},{"html_id":"outputs:Output-instance-method","name":"outputs","abstract":false,"def":{"name":"outputs","return_type":"Output","visibility":"Public","body":"@outputs"}}]},{"html_id":"drivers/Extron/SIS/Ok","path":"Extron/SIS/Ok.html","kind":"struct","full_name":"Extron::SIS::Ok","name":"Ok","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Symbolic type for representating a successfull interactions no useful data.","summary":"

Symbolic type for representating a successfull interactions no useful data.

","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L19"},"def":{"name":"initialize","visibility":"Public","body":""}}]},{"html_id":"drivers/Extron/SIS/Output","path":"Extron/SIS/Output.html","kind":"alias","full_name":"Extron::SIS::Output","name":"Output","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/Response","path":"Extron/SIS/Response.html","kind":"module","full_name":"Extron::SIS::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"locations":[{"filename":"src/extron/sis/response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Clock","name":"Clock","value":"Raw.map do |date|\n Time.parse_utc(date, \"%a, %d %b %Y %T\")\nend","doc":"Part of the copyright banner, but appears on a new line so will tokenize as\nas standalone message.","summary":"

Part of the copyright banner, but appears on a new line so will tokenize as as standalone message.

"},{"id":"Copyright","name":"Copyright","value":"((Parse.string(\"(c) Copyright\")) + Raw).map(&.join)","doc":"Copyright message shown on connect.","summary":"

Copyright message shown on connect.

"},{"id":"DeviceError","name":"DeviceError","value":"(Parse.char('E')) >> Parse.integer.map do |e|\n SIS::Error.new(e.to_i)\nend","doc":"Error codes returned from the device.","summary":"

Error codes returned from the device.

"},{"id":"Empty","name":"Empty","value":"(Parse.string(\"\\r\\n\")) >> (Parse.const(nil))"},{"id":"GroupMute","name":"GroupMute","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), state <= BoolField, Parse.const({state, group})})","doc":"Group audio mute update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group audio mute update / response.

"},{"id":"GroupVolume","name":"GroupVolume","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), (_) <= (Parse.char('-')), level <= (num(Int32)).map do |val|\n val * -1\nend, Parse.const({level, group})})","doc":"Group volume update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group volume update / response.

"},{"id":"MatrixSize","name":"MatrixSize","value":"Parse.do({inputs <= (num(Input)), (_) <= (Parse.char('X')), outputs <= (num(Output)), Parse.const(SIS::MatrixSize.new(inputs, outputs))})"},{"id":"Qik","name":"Qik","value":"(Parse.string(\"Qik\")) >> (Parse.const(Ok.new))","doc":"Quick response, occurs following quick tie, or switching interaction from\nthe device's front panel.","summary":"

Quick response, occurs following quick tie, or switching interaction from the device's front panel.

"},{"id":"Raw","name":"Raw","value":"(((Parse.char ^ Delimiter) * (0..)) << (Delimiter * (0..1))).map(&.join)","doc":"Parse a full command response as a String. Delimiter is optional as it may\nhave already been dropped by an upstream tokenizer.","summary":"

Parse a full command response as a String.

"},{"id":"Switch","name":"Switch","value":"Parse.do({input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Switch.new(input, layer))})","doc":"Broadcast or single output route update.","summary":"

Broadcast or single output route update.

"},{"id":"SwitcherInformation","name":"SwitcherInformation","value":"Parse.do({(_) <= (Parse.char('V')), video <= MatrixSize, (_) <= (Parse.char(' ')), (_) <= (Parse.char('A')), audio <= MatrixSize, Parse.const(SIS::SwitcherInformation.new(video, audio))})"},{"id":"Tie","name":"Tie","value":"Parse.do({output <= ((Parse.string(\"Out\")) >> (num(Output))), (_) <= (Parse.char(' ')), input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Tie.new(input, output, layer))})","doc":"Matrix signal route update.","summary":"

Matrix signal route update.

"},{"id":"Unsolicited","name":"Unsolicited","value":"(((DeviceError | Tie) | Copyright) | Clock) | Empty","doc":"Async messages that can be expected outside of a command -> response flow.","summary":"

Async messages that can be expected outside of a command -> response flow.

"}],"included_modules":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Parsers for responses and asynchronous messages originating from Extron SIS\ndevices.","summary":"

Parsers for responses and asynchronous messages originating from Extron SIS devices.

","class_methods":[{"html_id":"parse(data:String,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : String, as parser : Parser(T)) forall T","args_html":"(data : String, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L11"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"((parser | DeviceError) | \"unhandled device response\").parse(data)"}},{"html_id":"parse(data:Bytes,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : Bytes, as parser : Parser(T)) forall T","args_html":"(data : Bytes, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis/response.cr#L16"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"parse(String.new(data), parser)"}}]},{"html_id":"drivers/Extron/SIS/Switch","path":"Extron/SIS/Switch.html","kind":"struct","full_name":"Extron::SIS::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a broadcast signal path, or single output switch.","summary":"

Struct for representing a broadcast signal path, or single output switch.

","constructors":[{"html_id":"new(input:Input,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer)","args_html":"(input : Input, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, layer _layer = @layer)","args_html":"(input _input = @input, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L66"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}}]},{"html_id":"drivers/Extron/SIS/SwitcherInformation","path":"Extron/SIS/SwitcherInformation.html","kind":"struct","full_name":"Extron::SIS::SwitcherInformation","name":"SwitcherInformation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a full device.","summary":"

IO capacity for a full device.

","constructors":[{"html_id":"new(video:MatrixSize,audio:MatrixSize)-class-method","name":"new","abstract":false,"args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"args_string":"(video : MatrixSize, audio : MatrixSize)","args_html":"(video : MatrixSize, audio : MatrixSize)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"new","args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"visibility":"Public","body":"_ = allocate\n_.initialize(video, audio)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"audio:MatrixSize-instance-method","name":"audio","abstract":false,"def":{"name":"audio","return_type":"MatrixSize","visibility":"Public","body":"@audio"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@video.clone, @audio.clone)"}},{"html_id":"copy_with(video_video=@video,audio_audio=@audio)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"args_string":"(video _video = @video, audio _audio = @audio)","args_html":"(video _video = @video, audio _audio = @audio)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L72"},"def":{"name":"copy_with","args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"visibility":"Public","body":"self.class.new(_video, _audio)"}},{"html_id":"video:MatrixSize-instance-method","name":"video","abstract":false,"def":{"name":"video","return_type":"MatrixSize","visibility":"Public","body":"@video"}}]},{"html_id":"drivers/Extron/SIS/Tie","path":"Extron/SIS/Tie.html","kind":"struct","full_name":"Extron::SIS::Tie","name":"Tie","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a matrix signal path.","summary":"

Struct for representing a matrix signal path.

","constructors":[{"html_id":"new(input:Input,output:Output,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer)","args_html":"(input : Input, output : Output, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/sis.cr#L63"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}},{"html_id":"output:Output-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Output","visibility":"Public","body":"@output"}}]}]},{"html_id":"drivers/Extron/UsbExtenderPlus","path":"Extron/UsbExtenderPlus.html","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus","abstract":false,"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"types":[{"html_id":"drivers/Extron/UsbExtenderPlus/Endpoint","path":"Extron/UsbExtenderPlus/Endpoint.html","kind":"class","full_name":"Extron::UsbExtenderPlus::Endpoint","name":"Endpoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"query_joins"}},{"html_id":"join(mac:String)-instance-method","name":"join","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L91"},"def":{"name":"join","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"mac = (mac.gsub(/\\-|\\:/, \"\")).downcase\nlogger.debug do\n \"joining with #{mac}\"\nend\n(send(\"2f03f4a2020000000302#{mac}\".hexbytes, delay: 600.milliseconds)).get\nquery_joins\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 300.milliseconds\nself[:joined_to] = @joined_to\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"self[:mac_address] = ((setting(String, :mac_address)).gsub(/\\-|\\:/, \"\")).downcase\nself[:ip] = config.ip\nself[:port] = config.port\nself[:location] = setting(String, :location)\nschedule.clear\nschedule.every(2.minutes) do\n logger.debug do\n \"-- polling extron USB device\"\n end\n if query_joins.success?\n if self[:connected]\n else\n set_connected_state(true)\n end\n end\nend\n"}},{"html_id":"query_joins-instance-method","name":"query_joins","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L50"},"def":{"name":"query_joins","visibility":"Public","body":"task = (send(\"2f03f4a2000000000300\".hexbytes)).get\nif !task.state.success?\n if self[:connected]\n set_connected_state(false)\n end\n logger.warn do\n \"Extron USB Device Probably Offline: #{config.ip}\\nJoin query failed.\"\n end\nend\ntask.state\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"resp = data.hexstring\nlogger.debug do\n \"Extron USB sent: #{resp}\"\nend\ncheck = resp[0..21]\nif (check == \"2f03f4a200000000030100\") || (check == \"2f03f4a200000000030101\")\n self[:is_host] = check[-1] == '0'\n macs = (resp[22..-1].scan(/.{12}/)).map(&.to_s)\n logger.debug do\n \"Extron USB joined with: #{macs}\"\n end\n self[:joined_to] = @joined_to = macs\nelse\n case resp\n when \"2f03f4a2010000000003\"\n logger.debug do\n \"Extron USB responded to UDP ping\"\n end\n when \"2f03f4a2020000000003\"\n logger.debug do\n \"join/unjoin success\"\n end\n when \"2f03f4a2020000000308\"\n logger.debug do\n \"join/unjoin might have failed..\"\n end\n else\n logger.info do\n \"Unknown response from extron: #{resp}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"unjoin(from:String|Int32)-instance-method","name":"unjoin","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"args_string":"(from : String | Int32)","args_html":"(from : String | Int32)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L74"},"def":{"name":"unjoin","args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"visibility":"Public","body":"mac = case from\nin Int32\n @joined_to[from]\nin String\n formatted = (from.gsub(/\\-|\\:/, \"\")).downcase\n if @joined_to.includes?(formatted)\n formatted\n end\nend\nif mac\n (send_unjoin(mac)).get\n query_joins\nelse\n logger.debug do\n \"not currently joined to #{from}\"\n end\nend\n"}},{"html_id":"unjoin_all-instance-method","name":"unjoin_all","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/endpoint.cr#L59"},"def":{"name":"unjoin_all","visibility":"Public","body":"unjoins = [] of PlaceOS::Driver::Task\nif @joined_to.empty?\n logger.debug do\n \"nothing to unjoin from\"\n end\nend\n@joined_to.each do |mac|\n unjoins << (send_unjoin(mac))\nend\nunjoins.each(&.get)\nquery_joins\n"}}]},{"html_id":"drivers/Extron/UsbExtenderPlus/VirtualSwitcher","path":"Extron/UsbExtenderPlus/VirtualSwitcher.html","kind":"class","full_name":"Extron::UsbExtenderPlus::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_macs:Hash(String,Int32)-instance-method","name":"device_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L26"},"def":{"name":"device_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @device_macs).nil?\n @device_macs = (begin\n hash = {} of String => Int32\n devices.each_with_index do |device, index|\n hash[device.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"host_macs:Hash(String,Int32)-instance-method","name":"host_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L18"},"def":{"name":"host_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @host_macs).nil?\n @host_macs = (begin\n hash = {} of String => Int32\n hosts.each_with_index do |host, index|\n hash[host.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","doc":"lazily obtain host and device mac addresses","summary":"

lazily obtain host and device mac addresses

","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@host_macs = nil\n@device_macs = nil\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L54"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.data?) || layer.data2?\nelse\n return\nend\nmap.each do |host_idx, device_idxs|\n if host_idx == 0\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to 0\"\n end\n next\n end\n perform_unjoin(device)\n end\n next\n end\n host = hosts[host_idx - 1]?\n if host\n else\n logger.warn do\n \"host not found in switch USB_Host_#{host_idx} => #{device_idxs}\"\n end\n next\n end\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to USB_Host_#{host_idx}\"\n end\n next\n end\n perform_join(host, device)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"0 == unjoin, input is the host index","summary":"

0 == unjoin, input is the host index

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/extron/usb_extender_plus/virtual_switcher.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input == 0\n unjoin_all\nelse\n host = hosts[input - 1]\n host_mac = host.status(String, :mac_address)\n unjoin_all_devices\n unjoin_all_hosts\n devices.each do |device|\n perform_join(host, device)\n end\nend"}}]}]}]},{"html_id":"drivers/Floorsense","path":"Floorsense.html","kind":"module","full_name":"Floorsense","name":"Floorsense","abstract":false,"locations":[{"filename":"src/floorsense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Floorsense Data Models","summary":"

Floorsense Data Models

","types":[{"html_id":"drivers/Floorsense/AuthInfo","path":"Floorsense/AuthInfo.html","kind":"class","full_name":"Floorsense::AuthInfo","name":"AuthInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"sessionid:String-instance-method","name":"sessionid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L73"},"def":{"name":"sessionid","return_type":"String","visibility":"Public","body":"@sessionid"}},{"html_id":"sessionid=(sessionid:String)-instance-method","name":"sessionid=","abstract":false,"args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"args_string":"(sessionid : String)","args_html":"(sessionid : String)","location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L73"},"def":{"name":"sessionid=","args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"visibility":"Public","body":"@sessionid = sessionid"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L72"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L72"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/Floorsense/Booking","path":"Floorsense/Booking.html","kind":"class","full_name":"Floorsense::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L286"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L286"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L312"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L312"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L298"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L295"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String|Nil-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String|Nil)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"args_string":"(booked_by_email : String | Nil)","args_html":"(booked_by_email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_name:String|Nil-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String|Nil)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"args_string":"(booked_by_name : String | Nil)","args_html":"(booked_by_name : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L291"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L291"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L290"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L290"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L289"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L289"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L310"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L310"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"checked_in?-instance-method","name":"checked_in?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L345"},"def":{"name":"checked_in?","visibility":"Public","body":"!checked_in.nil? && checked_in.not_nil!"}},{"html_id":"checked_in_at:Int64|Nil-instance-method","name":"checked_in_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_in_at"}},{"html_id":"checked_in_at=(checked_in_at:Int64|Nil)-instance-method","name":"checked_in_at=","abstract":false,"args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_in_at : Int64 | Nil)","args_html":"(checked_in_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at=","args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_in_at = checked_in_at"}},{"html_id":"checked_out?-instance-method","name":"checked_out?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L341"},"def":{"name":"checked_out?","visibility":"Public","body":"!checked_out_at.nil?"}},{"html_id":"checked_out_at:Int64|Nil-instance-method","name":"checked_out_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_out_at"}},{"html_id":"checked_out_at=(checked_out_at:Int64|Nil)-instance-method","name":"checked_out_at=","abstract":false,"args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_out_at : Int64 | Nil)","args_html":"(checked_out_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at=","args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_out_at = checked_out_at"}},{"html_id":"deleted:Bool|Nil-instance-method","name":"deleted","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L305"},"def":{"name":"deleted","return_type":"Bool | ::Nil","visibility":"Public","body":"@deleted"}},{"html_id":"deleted=(deleted:Bool|Nil)-instance-method","name":"deleted=","abstract":false,"args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"args_string":"(deleted : Bool | Nil)","args_html":"(deleted : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L305"},"def":{"name":"deleted=","args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@deleted = deleted"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L349"},"def":{"name":"deleted?","visibility":"Public","body":"action == \"cancelled\""}},{"html_id":"deleted_at:Int64|Nil-instance-method","name":"deleted_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@deleted_at"}},{"html_id":"deleted_at=(deleted_at:Int64|Nil)-instance-method","name":"deleted_at=","abstract":false,"args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"args_string":"(deleted_at : Int64 | Nil)","args_html":"(deleted_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at=","args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@deleted_at = deleted_at"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L321"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L321"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"floor_id:String|Nil-instance-method","name":"floor_id","abstract":false,"def":{"name":"floor_id","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @floor_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::Booking#floor_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_id=(floor_id:String|Nil)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"args_string":"(floor_id : String | Nil)","args_html":"(floor_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L324"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_id?:String|Nil|Nil-instance-method","name":"floor_id?","abstract":false,"def":{"name":"floor_id?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floorsense_booking_id:String|Nil-instance-method","name":"floorsense_booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L331"},"def":{"name":"floorsense_booking_id","return_type":"String | ::Nil","visibility":"Public","body":"ext_data = extension_data\nif ext_data\nelse\n return\nend\next_data[\"floorsense_booking_id\"]?.try(&.as_s)\n"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L288"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L288"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L326"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"is_deleted?-instance-method","name":"is_deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L353"},"def":{"name":"is_deleted?","visibility":"Public","body":"!!deleted && !deleted_at.nil?"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L314"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L314"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L313"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L313"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L311"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L311"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L337"},"def":{"name":"released?","visibility":"Public","body":"checked_out? || booking_end <= Time.local.to_unix"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L296"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L296"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L292"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L292"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L303"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L303"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L302"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L302"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L304"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L304"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L308"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L308"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Floorsense/BookingsSync","path":"Floorsense/BookingsSync.html","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_floorsense_log:Nil-instance-method","name":"check_floorsense_log","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L198"},"def":{"name":"check_floorsense_log","return_type":"Nil","visibility":"Public","body":"last_event_id = @last_event_id\nif last_event_id.nil?\n recent = (floorsense.event_log({49, 50, 53})).get.as_a\n if !recent.empty?\n last = recent.last\n @last_event_id = last[\"eventid\"].as_i64\n @last_event_at = last[\"eventtime\"].as_i64\n end\n return\nend\nevents = Array(LogEntry).from_json(floorsense.event_log(codes: {49, 50, 53}, after: @last_event_at, limit: 500).get.to_json)\nevents.reject! do |event|\n event.eventid <= last_event_id\nend\nif events.empty?\n return\nend\nlogger.debug do\n \"parsing floorsense event log, #{events.size} new events\"\nend\n@last_event_id = events.last.eventid\nevents.each do |event|\n begin\n booking = BookingStatus.from_json((floorsense.get_booking(event.bkid)).get.to_json)\n floor_details = @floor_mappings[booking.planid.to_s]?\n if floor_details\n else\n next\n end\n booking_key = booking.key\n if booking_key\n else\n next\n end\n case event.code\n when 49\n if booking.booking_type != \"adhoc\"\n next\n end\n user_email = booking.user.not_nil!.email.try(&.downcase)\n if user_email.nil?\n logger.warn do\n \"no user email defined for floorsense user #{booking.user.not_nil!.name}\"\n end\n next\n end\n user = (staff_api.user(user_email)).get\n user_id = user[\"id\"]\n user_name = user[\"name\"]\n logger.debug do\n \"new floorsense booking found #{booking}\"\n end\n staff_api.create_booking(booking_start: booking.start, booking_end: booking.finish, time_zone: @time_zone.to_s, booking_type: @booking_type, asset_id: to_place_asset_id(booking_key), user_id: user_id, user_email: user_email, user_name: user_name, zones: [floor_details[:building_id]?, floor_details[:level_id]].compact, checked_in: true, extension_data: {floorsense_id: event.bkid}).get\n when 50\n if booking.released >= booking.finish || booking.released <= booking.start\n next\n end\n if place_booking = get_place_booking(booking, floor_details)\n staff_api.update_booking(booking_id: place_booking.id, booking_end: booking.released).get\n else\n logger.warn do\n \"no booking found for released booking #{booking.booking_id}\"\n end\n end\n when 51\n when 52\n when 53\n begin\n if desc = booking.desc\n place_booking = Booking.from_json((staff_api.get_booking(desc.to_i64)).get.to_json)\n staff_api.booking_check_in(place_booking.id, booking.confirmed)\n end\n rescue ArgumentError\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"while processing #{event.eventid}\\n#{event.inspect}\"\n end\n end\nend\n"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":599,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L599"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(placeos_user_id:String):String-instance-method","name":"get_floorsense_user","doc":"===================================\nSync Users\n===================================","summary":"

=================================== Sync Users ===================================

","abstract":false,"args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"args_string":"(placeos_user_id : String) : String","args_html":"(placeos_user_id : String) : String","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":550,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L550"},"def":{"name":"get_floorsense_user","args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"users = floorsense.user_list(description: placeos_user_id).get.as_a\nuser_id = users.first?.try() do |__arg5|\n __arg5[\"uid\"].as_s\nend\ncard_number = nil\nbegin\n place_user = (staff_api.user(placeos_user_id)).get\n name = place_user[\"name\"].as_s\n email = place_user[\"email\"].as_s\n card_number = place_user[\"card_number\"]?.try(&.as_s)\n user_id || (user_id = (floorsense.create_user(name, email, placeos_user_id)).get[\"uid\"].as_s)\nrescue error\n if user_id\n return user_id\n else\n raise(error)\n end\nend\nif (user_id && card_number) && !card_number.empty?\n ensure_card_synced(card_number, user_id)\nend\nuser_id.not_nil!\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L51"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking_changed(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L59"},"def":{"name":"on_update","visibility":"Public","body":"@key_prefix = (setting?(String, :key_prefix)) || \"\"\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@strip_leading_zero = (setting?(Bool, :strip_leading_zero)) || false\n@zero_padding_size = (setting?(Int32, :zero_padding_size)) || 7\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.in(@poll_rate / 2) do\n schedule.every(@poll_rate * 10) do\n sync_bookings\n end\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L616"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L345"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L349"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"@sync_lock.synchronize do\n do_sync_floor(zone)\nend"}},{"html_id":"to_floor_key(asset_id:String)-instance-method","name":"to_floor_key","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L98"},"def":{"name":"to_floor_key","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"if @key_prefix.presence\n asset_id = asset_id.lstrip(@key_prefix)\nend\nif @strip_leading_zero\n asset_id = asset_id.rjust(@zero_padding_size, '0')\nend\nasset_id\n"}},{"html_id":"to_place_asset_id(key:String)-instance-method","name":"to_place_asset_id","doc":"===================================\nDesk ID manipulation\n===================================","summary":"

=================================== Desk ID manipulation ===================================

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L93"},"def":{"name":"to_place_asset_id","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"if @strip_leading_zero\n key = key.lstrip('0')\nend\n\"#{@key_prefix}#{key}\"\n"}}],"types":[{"html_id":"drivers/Floorsense/BookingsSync/Booking","path":"Floorsense/BookingsSync/Booking.html","kind":"class","full_name":"Floorsense::BookingsSync::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense/BookingsSync","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L631"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L646"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":643,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L643"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":661,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L661"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]}]},{"html_id":"drivers/Floorsense/BookingStatus","path":"Floorsense/BookingStatus.html","kind":"class","full_name":"Floorsense::BookingStatus","name":"BookingStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L243"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L244"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L271"},"def":{"name":"active","return_type":"Bool","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool"}],"args_string":"(active : Bool)","args_html":"(active : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L271"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool"}],"visibility":"Public","body":"@active = active"}},{"html_id":"booking_id:String-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L253"},"def":{"name":"booking_id","return_type":"String","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:String)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L253"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L250"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L250"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L264"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L264"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confexpiry:Int64|Nil-instance-method","name":"confexpiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@confexpiry"}},{"html_id":"confexpiry=(confexpiry:Int64|Nil)-instance-method","name":"confexpiry=","abstract":false,"args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"args_string":"(confexpiry : Int64 | Nil)","args_html":"(confexpiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry=","args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@confexpiry = confexpiry"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L272"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L272"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"confmethod:Int32|Nil-instance-method","name":"confmethod","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L261"},"def":{"name":"confmethod","return_type":"Int32 | ::Nil","visibility":"Public","body":"@confmethod"}},{"html_id":"confmethod=(confmethod:Int32|Nil)-instance-method","name":"confmethod=","abstract":false,"args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"args_string":"(confmethod : Int32 | Nil)","args_html":"(confmethod : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L261"},"def":{"name":"confmethod=","args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@confmethod = confmethod"}},{"html_id":"conftime:Int64|Nil-instance-method","name":"conftime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L260"},"def":{"name":"conftime","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conftime"}},{"html_id":"conftime=(conftime:Int64|Nil)-instance-method","name":"conftime=","abstract":false,"args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"args_string":"(conftime : Int64 | Nil)","args_html":"(conftime : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L260"},"def":{"name":"conftime=","args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conftime = conftime"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L256"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L256"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L255"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L255"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L258"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L258"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L266"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L266"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L246"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L246"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @place_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::BookingStatus#place_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L279"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"place_id?:String|Nil-instance-method","name":"place_id?","abstract":false,"def":{"name":"place_id?","return_type":"String | ::Nil","visibility":"Public","body":"@place_id"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L265"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L265"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L273"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L273"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L270"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L270"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L269"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L269"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L257"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L257"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L247"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L247"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L276"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L276"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/Floorsense/ControllerInfo","path":"Floorsense/ControllerInfo.html","kind":"class","full_name":"Floorsense::ControllerInfo","name":"ControllerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L409"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L409"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"desks:Bool-instance-method","name":"desks","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L413"},"def":{"name":"desks","return_type":"Bool","visibility":"Public","body":"@desks"}},{"html_id":"desks=(desks:Bool)-instance-method","name":"desks=","abstract":false,"args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"args_string":"(desks : Bool)","args_html":"(desks : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L413"},"def":{"name":"desks=","args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"visibility":"Public","body":"@desks = desks"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L415"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L415"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location1:String-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L417"},"def":{"name":"location1","return_type":"String","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String"}],"args_string":"(location1 : String)","args_html":"(location1 : String)","location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L417"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L418"},"def":{"name":"location2","return_type":"String","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String"}],"args_string":"(location2 : String)","args_html":"(location2 : String)","location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L418"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L419"},"def":{"name":"location3","return_type":"String","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String"}],"args_string":"(location3 : String)","args_html":"(location3 : String)","location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L419"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"location4:String-instance-method","name":"location4","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L420"},"def":{"name":"location4","return_type":"String","visibility":"Public","body":"@location4"}},{"html_id":"location4=(location4:String)-instance-method","name":"location4=","abstract":false,"args":[{"name":"location4","external_name":"location4","restriction":"String"}],"args_string":"(location4 : String)","args_html":"(location4 : String)","location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L420"},"def":{"name":"location4=","args":[{"name":"location4","external_name":"location4","restriction":"String"}],"visibility":"Public","body":"@location4 = location4"}},{"html_id":"locations-instance-method","name":"locations","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L424"},"def":{"name":"locations","visibility":"Public","body":"{location1, location2, location3, location4}"}},{"html_id":"lockers:Bool-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L412"},"def":{"name":"lockers","return_type":"Bool","visibility":"Public","body":"@lockers"}},{"html_id":"lockers=(lockers:Bool)-instance-method","name":"lockers=","abstract":false,"args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"args_string":"(lockers : Bool)","args_html":"(lockers : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L412"},"def":{"name":"lockers=","args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"visibility":"Public","body":"@lockers = lockers"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L422"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"mode=(mode:String)-instance-method","name":"mode=","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L422"},"def":{"name":"mode=","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"@mode = mode"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L416"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L416"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"online:Bool-instance-method","name":"online","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L411"},"def":{"name":"online","return_type":"Bool","visibility":"Public","body":"@online"}},{"html_id":"online=(online:Bool)-instance-method","name":"online=","abstract":false,"args":[{"name":"online","external_name":"online","restriction":"Bool"}],"args_string":"(online : Bool)","args_html":"(online : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L411"},"def":{"name":"online=","args":[{"name":"online","external_name":"online","restriction":"Bool"}],"visibility":"Public","body":"@online = online"}}]},{"html_id":"drivers/Floorsense/CustomBookingsSync","path":"Floorsense/CustomBookingsSync.html","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","name":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"floorsense\""},{"id":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","name":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"smartalock\""}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L689"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"if foor_id = (locations.eui64_to_desk_id(id.downcase)).get.raw\n floor_desk_id = foor_id.as(String)\n place_id = floor_desk_id\n level_id = nil\n building = nil\n @desk_mapping_cache.each do |level, lookup|\n if meta = lookup[floor_desk_id]?\n level_id = level\n place_id = meta.place_id || floor_desk_id\n building = meta.building\n break\n end\n end\n if level_id\n {level: level_id, desk_id: place_id, building_id: building}\n end\nelse\n logger.warn do\n \"No desk found for #{id}\"\n end\nend"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L249"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n current.concat(bookings)\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L651"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nif @user_lookup == \"email\"\n placeos_staff_id = placeos_staff_id.downcase\n floorsense_users = floorsense.user_list(email: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg7|\n __arg7[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nelse\n floorsense_users = floorsense.user_list(description: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg8|\n __arg8[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L78"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n if (@zone_mappings.keys & (Booking.from_json(payload)).zones).empty?\n else\n booking_changed(Booking.from_json(payload))\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_lookup_key = (setting?(String, :floorsense_lookup_key)).presence || \"floorsensedeskid\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n@meta_ext_static = (setting?(Hash(String, String), :meta_ext_static)) || ({} of String => String)\ntime_zone = (setting?(String, :time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.every(@poll_rate * 10) do\n sync_bookings\nend\nschedule.in(1.seconds) do\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L266"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}, include_checked_out: true).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,building_id:String|Nil)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, building_id : String | Nil)","args_html":"(zone_id : String, building_id : String | Nil)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":927,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L927"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"desk_lookup = {} of String => DeskMeta\nbegin\n metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\n lookup_key = @floorsense_lookup_key\n metadata.each do |desk|\n desk = desk.as_h\n place_id = desk[\"id\"]?.try() do |__arg11|\n __arg11.as_s.presence\n end\n if place_id\n else\n next\n end\n floor_id = desk[lookup_key]?.try() do |__arg12|\n __arg12.as_s.presence\n end\n if floor_id\n else\n next\n end\n ext_data = {\"floorsense_id\" => JSON::Any.new(floor_id)}\n title = desk[\"name\"]?.try(&.as_s) || place_id\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk[meta_key]?\n ext_data[ext_key] = value\n end\n end\n @meta_ext_static.each do |key, value|\n ext_data[key] = JSON::Any.new(value)\n end\n ids = DeskMeta.new(place_id, floor_id, building_id, title, ext_data)\n desk_lookup[place_id] = ids\n desk_lookup[floor_id] = ids\n end\n desk_lookup\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain desk metadata for #{zone_id}\"\n end\n desk_lookup\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L193"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_busy:Hash(String,Bool)-instance-method","name":"sync_busy","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L197"},"def":{"name":"sync_busy","return_type":"Hash(String, Bool)","visibility":"Public","body":"@sync_busy"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L201"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"__temp_247 = zone\n@sync_queue[__temp_247] = @sync_queue[__temp_247] + 1\nif !@sync_busy[zone]\n spawn do\n queue_sync_floor(zone)\n end\n Fiber.yield\n :syncing\nelse\n :queued\nend\n"}},{"html_id":"sync_queue:Hash(String,Int32)-instance-method","name":"sync_queue","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L198"},"def":{"name":"sync_queue","return_type":"Hash(String, Int32)","visibility":"Public","body":"@sync_queue"}},{"html_id":"sync_times:Hash(String,Array(Float64))-instance-method","name":"sync_times","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L199"},"def":{"name":"sync_times","return_type":"Hash(String, Array(Float64))","visibility":"Public","body":"@sync_times"}}],"types":[{"html_id":"drivers/Floorsense/CustomBookingsSync/PlaceUser","path":"Floorsense/CustomBookingsSync/PlaceUser.html","kind":"alias","full_name":"Floorsense::CustomBookingsSync::PlaceUser","name":"PlaceUser","abstract":false,"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/custom_bookings_sync.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::User","aliased_html":"PlaceOS::Client::API::Models::User","const":false,"namespace":{"html_id":"drivers/Floorsense/CustomBookingsSync","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync"}}]},{"html_id":"drivers/Floorsense/DeskInfo","path":"Floorsense/DeskInfo.html","kind":"class","full_name":"Floorsense::DeskInfo","name":"DeskInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L176"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::DeskInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L189"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"desk_type:String|Nil-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L185"},"def":{"name":"desk_type","return_type":"String | ::Nil","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String|Nil)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"args_string":"(desk_type : String | Nil)","args_html":"(desk_type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L185"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskheight:Int32|Nil-instance-method","name":"deskheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L182"},"def":{"name":"deskheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@deskheight"}},{"html_id":"deskheight=(deskheight:Int32|Nil)-instance-method","name":"deskheight=","abstract":false,"args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"args_string":"(deskheight : Int32 | Nil)","args_html":"(deskheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L182"},"def":{"name":"deskheight=","args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@deskheight = deskheight"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L179"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L179"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L180"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L180"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L181"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L181"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L186"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L186"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}}]},{"html_id":"drivers/Floorsense/DeskMeta","path":"Floorsense/DeskMeta.html","kind":"struct","full_name":"Floorsense::DeskMeta","name":"DeskMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"doc":"Websocket payloads","summary":"

Websocket payloads

","constructors":[{"html_id":"new(place_id:String,floor_id:String,building:Nil|String,title:String,ext_data:Hash(String,JSON::Any))-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","args_html":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","location":{"filename":"src/floorsense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L9"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, floor_id, building, title, ext_data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L14"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"building=(building:String|Nil)-instance-method","name":"building=","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"args_string":"(building : String | Nil)","args_html":"(building : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L14"},"def":{"name":"building=","args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building = building"}},{"html_id":"ext_data:Hash(String,JSON::Any)-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L15"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@ext_data"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L13"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L13"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L12"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L12"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Floorsense/DeskStatus","path":"Floorsense/DeskStatus.html","kind":"class","full_name":"Floorsense::DeskStatus","name":"DeskStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L141"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L142"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L167"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L167"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"cached:Bool-instance-method","name":"cached","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L145"},"def":{"name":"cached","return_type":"Bool","visibility":"Public","body":"@cached"}},{"html_id":"cached=(cached:Bool)-instance-method","name":"cached=","abstract":false,"args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"args_string":"(cached : Bool)","args_html":"(cached : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L145"},"def":{"name":"cached=","args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"visibility":"Public","body":"@cached = cached"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L144"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L144"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L170"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L170"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L155"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Time)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Time"}],"args_string":"(created : Time)","args_html":"(created : Time)","location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L155"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Time"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desk_type:String-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L162"},"def":{"name":"desk_type","return_type":"String","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"args_string":"(desk_type : String)","args_html":"(desk_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L162"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskid:Int32-instance-method","name":"deskid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L149"},"def":{"name":"deskid","return_type":"Int32","visibility":"Public","body":"@deskid"}},{"html_id":"deskid=(deskid:Int32)-instance-method","name":"deskid=","abstract":false,"args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"args_string":"(deskid : Int32)","args_html":"(deskid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L149"},"def":{"name":"deskid=","args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"visibility":"Public","body":"@deskid = deskid"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L159"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L159"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"features:Int32-instance-method","name":"features","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L164"},"def":{"name":"features","return_type":"Int32","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Int32)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Int32"}],"args_string":"(features : Int32)","args_html":"(features : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L164"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Int32"}],"visibility":"Public","body":"@features = features"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L163"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L163"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"freq:String-instance-method","name":"freq","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L165"},"def":{"name":"freq","return_type":"String","visibility":"Public","body":"@freq"}},{"html_id":"freq=(freq:String)-instance-method","name":"freq=","abstract":false,"args":[{"name":"freq","external_name":"freq","restriction":"String"}],"args_string":"(freq : String)","args_html":"(freq : String)","location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L165"},"def":{"name":"freq=","args":[{"name":"freq","external_name":"freq","restriction":"String"}],"visibility":"Public","body":"@freq = freq"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L166"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L166"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:String-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L152"},"def":{"name":"hardware","return_type":"String","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:String)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"args_string":"(hardware : String)","args_html":"(hardware : String)","location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L152"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"hwfeat:Int32-instance-method","name":"hwfeat","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat","return_type":"Int32","visibility":"Public","body":"@hwfeat"}},{"html_id":"hwfeat=(hwfeat:Int32)-instance-method","name":"hwfeat=","abstract":false,"args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"args_string":"(hwfeat : Int32)","args_html":"(hwfeat : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat=","args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"visibility":"Public","body":"@hwfeat = hwfeat"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L156"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L156"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"netid:Int32-instance-method","name":"netid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L147"},"def":{"name":"netid","return_type":"Int32","visibility":"Public","body":"@netid"}},{"html_id":"netid=(netid:Int32)-instance-method","name":"netid=","abstract":false,"args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"args_string":"(netid : Int32)","args_html":"(netid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L147"},"def":{"name":"netid=","args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"visibility":"Public","body":"@netid = netid"}},{"html_id":"occupied:Bool-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L157"},"def":{"name":"occupied","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L157"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime","return_type":"Int32","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"args_string":"(occupiedtime : Int32)","args_html":"(occupiedtime : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L168"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L168"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L171"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L171"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reservable:Bool-instance-method","name":"reservable","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L146"},"def":{"name":"reservable","return_type":"Bool","visibility":"Public","body":"@reservable"}},{"html_id":"reservable=(reservable:Bool)-instance-method","name":"reservable=","abstract":false,"args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"args_string":"(reservable : Bool)","args_html":"(reservable : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L146"},"def":{"name":"reservable=","args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"visibility":"Public","body":"@reservable = reservable"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L169"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L169"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L148"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L148"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L158"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L158"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket","path":"Floorsense/DesksWebsocket.html","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate_booking(booking_id:String|Int64,controller_id:String|Int32|Int64|Nil=nil,key:String|Nil=nil,eui64:String|Nil=nil,userpresent:Bool|Nil=nil)-instance-method","name":"activate_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":648,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L648"},"def":{"name":"activate_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if key.nil?\n else\n form.add(\"key\", key.to_s)\n end\n if userpresent.nil?\n else\n form.add(\"userpresent\", userpresent.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"all_lockers-instance-method","name":"all_lockers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L295"},"def":{"name":"all_lockers","visibility":"Public","body":"if @locker_controllers.empty?\nelse\n return @locker_controllers.values\nend\nsync_locker_list.values\n"}},{"html_id":"at_location(controller_id:String|Int32|Int64,desk_key:String)-instance-method","name":"at_location","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(controller_id : String | Int32 | Int64, desk_key : String)","args_html":"(controller_id : String | Int32 | Int64, desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L964"},"def":{"name":"at_location","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/user-locate?cid=#{controller_id}&desk_key=#{desk_key}\", headers: default_headers)\nlogger.debug do\n \"at_location response: #{response.body}\"\nend\nusers = parse(response, Array(User))\nusers.first?\n"}},{"html_id":"bank_list(controller_id:String|Int32|Int64)-instance-method","name":"bank_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L251"},"def":{"name":"bank_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\nend\nresponse = get(\"/restapi/bank-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"bookings(plan_id:String,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"args_string":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","args_html":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L615"},"def":{"name":"bookings","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 15.minutes.from_now.to_unix)\nuri = \"/restapi/floorplan-booking?planid=#{plan_id}&start=#{period_start}&finish=#{period_end}\"\nresponse = get(uri, headers: default_headers)\nbookings_map = parse(response, Hash(String, Array(BookingStatus)))\nbookings_map.each do |_id, bookings|\n bookings.each do |booking|\n booking.user = get_user(booking.uid)\n end\nend\nbookings_map\n"}},{"html_id":"check_subscriptions-instance-method","name":"check_subscriptions","doc":"used to poll the websocket to check for liveliness","summary":"

used to poll the websocket to check for liveliness

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L95"},"def":{"name":"check_subscriptions","visibility":"Public","body":"ws_get(\"/restapi/subscribe\")"}},{"html_id":"clear_user_cache!-instance-method","name":"clear_user_cache!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":972,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L972"},"def":{"name":"clear_user_cache!","visibility":"Public","body":"@user_cache.clear"}},{"html_id":"confirm_booking(booking_id:String|Int64)-instance-method","name":"confirm_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L636"},"def":{"name":"confirm_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-confirm\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"method\", \"1\")\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"ws_post(\"/auth\", {user: \"kiosk\"}.to_json, priority: 99, name: \"auth\")"}},{"html_id":"controller_list(locker:Bool|Nil=nil,desks:Bool|Nil=nil)-instance-method","name":"controller_list","abstract":false,"args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"args_string":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","args_html":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L236"},"def":{"name":"controller_list","args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if locker\n form.add(\"locks\", \"true\")\n end\n if desks\n form.add(\"desks\", \"true\")\n end\nend\nresponse = get(\"/restapi/slave-list?#{query}\", headers: default_headers)\ncontrollers = parse(response, Array(ControllerInfo))\nmappings = {} of Int32 => ControllerInfo\ncontrollers.each do |ctrl|\n mappings[ctrl.controller_id] = ctrl\nend\nif locker.nil? && desks.nil?\n self[:controllers] = mappings\nend\n@controllers = mappings\n"}},{"html_id":"create_booking(user_id:String|Int64,plan_id:String|Int32,key:String,description:String|Nil=nil,starting:Int64|Nil=nil,ending:Int64|Nil=nil,time_zone:String|Nil=nil,booking_type:String=\"advance\")-instance-method","name":"create_booking","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"args_string":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = \"advance\")","args_html":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = "advance")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":688,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L688"},"def":{"name":"create_booking","args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"desks_on_plan = desks(plan_id)\ndesk = desks_on_plan.find() do |__arg5|\n __arg5.key == key\nend\nif desk\nelse\n raise(\"could not find desk #{key} on plan #{plan_id}\")\nend\nnow = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nstarting || (starting = now.at_beginning_of_day.to_unix)\nending || (ending = now.at_end_of_day.to_unix)\nresponse = post(\"/restapi/booking-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id.to_s)\n form.add(\"cid\", desk.cid.to_s)\n form.add(\"key\", key)\n form.add(\"bktype\", booking_type)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n form.add(\"start\", starting.to_s)\n form.add(\"finish\", ending.to_s)\n form.add(\"confexpiry\", ending.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"create_rfid(user_id:String,card_number:String,description:String|Nil=nil)-instance-method","name":"create_rfid","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(user_id : String, card_number : String, description : String | Nil = nil)","args_html":"(user_id : String, card_number : String, description : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":886,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L886"},"def":{"name":"create_rfid","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id)\n form.add(\"csn\", card_number)\n if description\n form.add(\"desc\", description.not_nil!)\n end\nend)\nparse(response, User) do |resp|\n resp || (JSON::Any.new(true))\nend\n"}},{"html_id":"create_user(name:String,email:String,description:String|Nil=nil,extid:String|Nil=nil,pin:String|Nil=nil,usertype:String=\"user\")-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"args_string":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = \"user\")","args_html":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = "user")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":860,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L860"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/user-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"name\", name)\n form.add(\"email\", email)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if pin\n form.add(\"pin\", pin.not_nil!)\n end\n if extid\n form.add(\"extid\", extid.not_nil!)\n end\n form.add(\"usertype\", \"user\")\nend)\nuser = parse(response, User)\n@user_cache[user.uid] = user\nuser\n"}},{"html_id":"default_headers-instance-method","name":"default_headers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L198"},"def":{"name":"default_headers","visibility":"Public","body":"{\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"delete_rfid(card_number:String)-instance-method","name":"delete_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":904,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L904"},"def":{"name":"delete_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-delete\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"csn\", card_number)\nend)\ncheck_success(response)\n"}},{"html_id":"desk_control(desk_key:String,led_state:LedState|Nil=nil,led_colour:LedColour|Nil=nil,desk_power:DeskPower|Nil=nil,desk_height:DeskHeight|Int32|Nil=nil,qi_mode:QiMode|Nil=nil,reboot:Bool=false,clean:Bool=false)-instance-method","name":"desk_control","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"args_string":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","args_html":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":790,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L790"},"def":{"name":"desk_control","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = post(\"/restapi/desk-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n form.add(\"key\", desk_key)\n if led_state\n form.add(\"led\", led_state.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour.to_s.downcase)\n end\n if desk_power\n form.add(\"desk-power\", desk_power.to_s.downcase)\n end\n if desk_height\n form.add(\"desk-height\", desk_height.to_s.downcase)\n end\n if qi_mode\n form.add(\"qi-mode\", qi_mode.to_s.downcase)\n end\n if reboot\n form.add(\"reboot\", \"true\")\n end\n if clean\n form.add(\"clean\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"desk_controllers:Hash(String,DeskInfo)-instance-method","name":"desk_controllers","doc":"Desk key => controller id","summary":"

Desk key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L45"},"def":{"name":"desk_controllers","return_type":"Hash(String, DeskInfo)","visibility":"Public","body":"@desk_controllers"}},{"html_id":"desk_info(desk_key:String)-instance-method","name":"desk_info","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":760,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L760"},"def":{"name":"desk_info","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = get(\"/restapi/desk-status?cid=#{controller_id}&key=#{desk_key}\", headers: default_headers)\ndesk_info = parse(response, DeskInfo)\ndesk_info\n"}},{"html_id":"desk_list(controller_id:String|Int32|Int64)-instance-method","name":"desk_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L755"},"def":{"name":"desk_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/desk-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(DeskInfo))\n"}},{"html_id":"desk_scan(eui64:String,key:String|Int64|Nil=nil,cid:String|Nil=nil,uid:String|Nil=nil)-instance-method","name":"desk_scan","doc":"More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a","summary":"

More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a

","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","args_html":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":669,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L669"},"def":{"name":"desk_scan","args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/desk-scan\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"eui64\", eui64.to_s)\n form.add(\"key\", key.to_s)\n if cid.nil?\n else\n form.add(\"cid\", cid.to_s)\n end\n if uid.nil?\n else\n form.add(\"uid\", uid.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"desks(plan_id:String|Int32)-instance-method","name":"desks","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"args_string":"(plan_id : String | Int32)","args_html":"(plan_id : String | Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":610,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L610"},"def":{"name":"desks","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"/restapi/floorplan-desk?planid=#{plan_id}\", headers: default_headers)\nparse(response, Array(DeskStatus))\n"}},{"html_id":"event_log(codes:Array(String|Int32),event_id:Int64|Nil=nil,after:Int64|Nil=nil,limit:Int32=1)-instance-method","name":"event_log","abstract":false,"args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"args_string":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","args_html":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":945,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L945"},"def":{"name":"event_log","args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"codes\", codes.join(\",\", &.to_s))\n if after\n form.add(\"after\", after.not_nil!.to_s)\n end\n if event_id\n form.add(\"event_id\", event_id.not_nil!.to_s)\n end\n form.add(\"limit\", limit.to_s)\nend\nresponse = get(\"/restapi/event-log?#{query}\", headers: default_headers)\nlogs = parse(response, Array(LogEntry))\nlogs.sort do |a, b|\n if a.eventtime == b.eventtime\n a.eventid <=> b.eventid\n else\n a.eventtime <=> b.eventtime\n end\nend\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L133"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floors-instance-method","name":"floors","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L605"},"def":{"name":"floors","visibility":"Public","body":"response = get(\"/restapi/floorplan-list\", headers: default_headers)\nparse(response, Array(Floor))\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L629"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/booking?bkid=#{booking_id}\", headers: default_headers)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"get_desk_height(desk_key:String):Int32|Nil-instance-method","name":"get_desk_height","doc":"return nil on unknown height","summary":"

return nil on unknown height

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Int32 | Nil","args_html":"(desk_key : String) : Int32 | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":830,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L830"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Int32 | ::Nil","visibility":"Public","body":"(desk_info(desk_key)).deskheight"}},{"html_id":"get_desk_power(desk_key:String):Bool|Nil-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Bool | Nil","args_html":"(desk_key : String) : Bool | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":848,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L848"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"get_locker_reservation(reservation_id:String)-instance-method","name":"get_locker_reservation","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L354"},"def":{"name":"get_locker_reservation","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if reservation_id\n form.add(\"resid\", reservation_id)\n end\nend\nresponse = get(\"/restapi/res?#{query}\", headers: default_headers)\nparse(response, LockerBooking)\n"}},{"html_id":"get_rfid(card_number:String)-instance-method","name":"get_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":916,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L916"},"def":{"name":"get_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/rfid?csn=#{card_number}\", headers: default_headers)\nparse(response, RFID)\n"}},{"html_id":"get_setting(key:String,user_id:String|Nil=nil)-instance-method","name":"get_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, user_id : String | Nil = nil)","args_html":"(key : String, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L275"},"def":{"name":"get_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"key\", key)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = get(\"/restapi/setting?#{query}\", headers: default_headers)\nparse(response, Setting)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L142"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/restapi/login\", body: \"username=#{URI.encode_www_form(@username)}&password=#{URI.encode_www_form(@password)}\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"})\ndata = response.body.not_nil!\nlogger.debug do\n \"received login response #{data}\"\nend\nif response.success?\n resp = Resp(AuthInfo).from_json(data)\n token = resp.info.not_nil!.token\n payload, _ = JWT.decode(token, verify: false, validate: false)\n @auth_expiry = (Time.unix(payload[\"exp\"].as_i64)) - 5.minutes\n @auth_token = \"Bearer #{token}\"\nelse\n case response.status_code\n when 401\n resp = Resp(AuthInfo).from_json(data)\n logger.warn do\n \"#{resp.message} (#{resp.code})\"\n end\n else\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":921,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L921"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"existing = @user_cache[user_id]?\nif existing\n return existing\nend\nresponse = get(\"/restapi/user?uid=#{user_id}\", headers: default_headers)\nuser = parse(response, User)\n@user_cache[user_id] = user\nuser\n"}},{"html_id":"locate(key:String,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locate","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":976,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L976"},"def":{"name":"locate","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"uri = if controller_id\n \"/restapi/user-locate?cid=#{controller_id}&key=#{URI.encode_www_form(key)}\"\nelse\n \"/restapi/user-locate?name=#{URI.encode_www_form(key)}\"\nend\nresponse = get(uri, headers: default_headers)\nparse(response, Array(UserLocation))\n"}},{"html_id":"locker(locker_key:String)-instance-method","name":"locker","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L305"},"def":{"name":"locker","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = get(\"/restapi/locker-status?cid=#{lock.controller_id}&bid=#{lock.bus_id}&lid=#{lock.locker_id}\", headers: default_headers)\nparse(response, LockerInfo)\n"}},{"html_id":"locker_change_pin(reservation_id:String,pin:Int32)-instance-method","name":"locker_change_pin","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"args_string":"(reservation_id : String, pin : Int32)","args_html":"(reservation_id : String, pin : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L416"},"def":{"name":"locker_change_pin","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/restapi/res\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"pin\", pin.to_s)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_control(locker_key:String,light:Bool|Nil=nil,led:LedState|Nil=nil,led_colour:String|Nil=nil,buzzer:String|Nil=nil,usb_charging:String|Nil=nil,detect:Bool|Nil=nil)-instance-method","name":"locker_control","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"args_string":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","args_html":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L323"},"def":{"name":"locker_control","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"bid\", lock.bus_id.to_s)\n form.add(\"lid\", lock.locker_id.to_s)\n if !light.nil?\n form.add(\"light\", light ? \"on\" : \"off\")\n end\n if led\n form.add(\"led\", led.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour)\n end\n if buzzer\n form.add(\"buzzer\", buzzer)\n end\n if usb_charging\n form.add(\"usbchg\", usb_charging)\n end\n if detect\n form.add(\"detect\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_controllers:Hash(String,LockerInfo)-instance-method","name":"locker_controllers","doc":"Locker key => controller id","summary":"

Locker key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L42"},"def":{"name":"locker_controllers","return_type":"Hash(String, LockerInfo)","visibility":"Public","body":"@locker_controllers"}},{"html_id":"locker_info(locker_key:String)-instance-method","name":"locker_info","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L311"},"def":{"name":"locker_info","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_controllers[locker_key]"}},{"html_id":"locker_release(reservation_id:String)-instance-method","name":"locker_release","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L403"},"def":{"name":"locker_release","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_reservation(locker_key:String|Nil,user_id:String,type:String|Nil=nil,duration:Int32|Nil=nil,restype:String=\"adhoc\",controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locker_reservation","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"args_string":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = \"adhoc\", controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = "adhoc", controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L363"},"def":{"name":"locker_reservation","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"visibility":"Public","body":"controller_id || (controller_id = @locker_controllers[locker_key].controller_id)\nresponse = post(\"/restapi/res-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n if locker_key.presence\n form.add(\"key\", locker_key.to_s)\n end\n form.add(\"uid\", user_id)\n if type\n form.add(\"type\", type)\n end\n if duration\n form.add(\"duration\", duration.to_s)\n end\n form.add(\"restype\", restype)\nend)\nparse(response, LockerBooking)\n"}},{"html_id":"locker_reservations(active:Bool|Nil=nil,user_id:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,shared:Bool|Nil=nil)-instance-method","name":"locker_reservations","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","args_html":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L390"},"def":{"name":"locker_reservations","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if user_id\n form.add(\"uid\", user_id)\n end\n if active\n form.add(\"active\", \"1\")\n end\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if shared\n form.add(\"shared\", \"1\")\n end\nend\nresponse = get(\"/restapi/res-list?#{query}\", headers: default_headers)\nparse(response, Array(LockerBooking))\n"}},{"html_id":"locker_share(reservation_id:String,user_id:String,duration:UInt32|Nil=nil)-instance-method","name":"locker_share","doc":"POST res-share","summary":"

POST res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"args_string":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","args_html":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L458"},"def":{"name":"locker_share","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-share\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\n if duration\n form.add(\"duration\", duration.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_shared?(reservation_id:String)-instance-method","name":"locker_shared?","doc":"GET res-share","summary":"

GET res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L452"},"def":{"name":"locker_shared?","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/res-share?resid=#{reservation_id}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"locker_unlock(locker_key:String,user_id:String|Nil=nil,pin:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","args_html":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L430"},"def":{"name":"locker_unlock","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-unlock\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"key\", locker_key)\n if user_id.presence\n form.add(\"uid\", user_id.to_s)\n end\n if pin.presence\n form.add(\"pin\", pin.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_unshare(reservation_id:String,user_id:String)-instance-method","name":"locker_unshare","doc":"POST res-unshare","summary":"

POST res-unshare

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(reservation_id : String, user_id : String)","args_html":"(reservation_id : String, user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":477,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L477"},"def":{"name":"locker_unshare","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\nend)\ncheck_success(response)\n"}},{"html_id":"lockers(controller_id:String|Int32|Int64)-instance-method","name":"lockers","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L300"},"def":{"name":"lockers","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/locker-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(LockerInfo))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L52"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@ws_username = (setting?(String, :ws_username)) || @username\n@ws_password = (setting?(String, :ws_password)) || @password\nif uri_override = setting?(String, :http_uri_override)\n transport.http_uri_override = URI.parse(uri_override)\nelse\n transport.http_uri_override = nil\nend\ntransport.before_request do |request|\n logger.debug do\n \"requesting: #{request.method} #{request.path}?#{request.query}\\n#{request.body}\"\n end\nend\nschedule.clear\nschedule.every(1.hour) do\n sync_locker_list\nend\nschedule.in(5.seconds) do\n sync_locker_list\nend\nschedule.every(1.minute) do\n check_subscriptions\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L99"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n string = (String.new(data)).rstrip\n logger.debug do\n \"websocket sent: #{string}\"\n end\n payload = Payload.from_json(string)\n case payload\n in Response\n if !payload.result\n logger.warn do\n \"task #{task.try(&.name)} failed..\"\n end\n return task.try(&.abort)\n end\n case task.try(&.name)\n when \"auth\"\n logger.debug do\n \"authentication success!\"\n end\n ws_post(\"/sub\", {mask: 255}.to_json, name: \"sub\")\n when \"sub\"\n logger.debug do\n \"subscribed to events\"\n end\n else\n logger.warn do\n \"unknown task: #{(task.try(&.name)).inspect}\"\n end\n end\n task.try(&.success)\n in Event\n self[\"event_#{payload.code}\"] = payload.info || payload.message\n in Payload\n logger.error do\n \"base class, this case will never occur\"\n end\n end\nrescue error\n logger.error(exception: error) do\n \"failed to parse: #{string.inspect}\"\n end\nend"}},{"html_id":"release_booking(booking_id:String|Int64)-instance-method","name":"release_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":727,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L727"},"def":{"name":"release_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build(&.add(\"bkid\", booking_id.to_s)))\ncheck_success(response)\n"}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","doc":"desk height is in mm","summary":"

desk height is in mm

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L826"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_control(desk_key, desk_height: desk_height)"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","doc":"desk_power on / off / nil == auto","summary":"

desk_power on / off / nil == auto

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":834,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L834"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"power = case desk_power\nwhen true\n DeskPower::On\nwhen false\n DeskPower::Off\nwhen nil\n DeskPower::Policy\nelse\n raise(\"unknown power state: #{desk_power}\")\nend\ndesk_control(desk_key, desk_power: power)\n"}},{"html_id":"set_setting(key:String,value:JSON::Any,user_id:String|Nil=nil)-instance-method","name":"set_setting","doc":"example keys: \"desk_height_sit\", \"desk_height_stand\"","summary":"

example keys: "desk_height_sit", "desk_height_stand"

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","args_html":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L285"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"body = URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"value\", value.to_json)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = post(\"/restapi/setting\", headers: default_headers, body: body)\nresponse.success?\n"}},{"html_id":"settings_list(group_id:Int32|Nil=nil,user_group_id:Int32|Nil=nil,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"settings_list","abstract":false,"args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L260"},"def":{"name":"settings_list","args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if group_id\n form.add(\"groupid\", group_id.to_s)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\nend\nresponse = get(\"/restapi/setting-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"sync_locker_list-instance-method","name":"sync_locker_list","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L205"},"def":{"name":"sync_locker_list","visibility":"Public","body":"lockers = {} of String => LockerInfo\ndesks = {} of String => DeskInfo\ncontroller_list.each do |controller_id, controller|\n if controller.lockers\n else\n next\n end\n begin\n (lockers(controller_id)).each do |locker|\n if locker.key\n else\n next\n end\n locker.controller_id = controller_id\n lockers[locker.key.not_nil!] = locker\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining locker list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\n begin\n (desk_list(controller_id)).each do |desk|\n if desk.key\n else\n next\n end\n desk.controller_id = controller_id\n desks[desk.key.not_nil!] = desk\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\nend\n@desk_controllers = desks\n@locker_controllers = lockers\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L137"},"def":{"name":"token_expired?","visibility":"Public","body":"now = Time.utc\n@auth_expiry < now\n"}},{"html_id":"update_booking(booking_id:String|Int64,privacy:Bool|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":737,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L737"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"privacy\", privacy.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"user_groups_list(in_use:Bool=true)-instance-method","name":"user_groups_list","abstract":false,"args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"args_string":"(in_use : Bool = true)","args_html":"(in_use : Bool = true)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":854,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L854"},"def":{"name":"user_groups_list","args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"visibility":"Public","body":"query = in_use ? \"inuse=1\" : \"\"\nresponse = get(\"/restapi/usergroup-list?#{query}\", headers: default_headers)\nparse(response, Array(UserGroup))\n"}},{"html_id":"user_list(email:String|Nil=nil,name:String|Nil=nil,description:String|Nil=nil,user_group_id:String|Int32|Nil=nil,limit:Int32=500,offset:Int32=0)-instance-method","name":"user_list","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","args_html":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":931,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L931"},"def":{"name":"user_list","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if email\n form.add(\"email\", email.not_nil!)\n end\n if name\n form.add(\"name\", name.not_nil!)\n end\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\n form.add(\"limit\", limit.to_s)\n form.add(\"offset\", offset.to_s)\nend\nresponse = get(\"/restapi/user-list?#{query}\", headers: default_headers)\nparse(response, Array(User))\n"}},{"html_id":"voucher(voucher_id:String,pin:String)-instance-method","name":"voucher","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L597"},"def":{"name":"voucher","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/voucher?vid=#{voucher_id}&pin=#{pin}\", headers: default_headers)\nparse(response, Voucher)\n"}},{"html_id":"voucher_activate(voucher_id:String,pin:String)-instance-method","name":"voucher_activate","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":582,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L582"},"def":{"name":"voucher_activate","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/voucher-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"vid\", voucher_id)\n form.add(\"pin\", pin)\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_create(template_key:String,user_name:String,user_email:String,user_id:String|Nil=nil,reservation_id:String|Nil=nil,locker_key:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,notes:String|Nil=nil,validfrom:Int64|Nil=nil,validto:Int64|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"voucher_create","abstract":false,"args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":547,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L547"},"def":{"name":"voucher_create","args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", template_key)\n form.add(\"name\", user_name)\n form.add(\"email\", user_email)\n if user_id.nil?\n else\n form.add(\"uid\", user_id)\n end\n if reservation_id.nil?\n else\n form.add(\"resid\", reservation_id.to_s)\n end\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if locker_key.nil?\n else\n form.add(\"key\", locker_key.to_s)\n end\n if notes.nil?\n else\n form.add(\"notes\", notes.to_s)\n end\n if validfrom.nil?\n else\n form.add(\"validfrom\", validfrom.to_s)\n end\n if validto.nil?\n else\n form.add(\"validto\", validto.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\nend)\nparse(response, NamedTuple(user: User, voucher: Voucher))\n"}},{"html_id":"voucher_template(key:String,subject:String,desc:String,bodyhtml:String,body:String,createuser:Bool|Nil=nil,email:Bool|Nil=nil,unlock:Bool|Nil=nil,createunlock:Bool|Nil=nil,createres:Bool|Nil=nil,release:Bool|Nil=nil,cardswipe:Bool|Nil=nil,maxuse:Int32|Nil=nil,duration:Int32|Nil=nil,validperiod:Int32|Nil=nil,restype:String|Nil=nil,activatemessage:String|Nil=nil,vouchermessage:String|Nil=nil)-instance-method","name":"voucher_template","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"args_string":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","args_html":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L498"},"def":{"name":"voucher_template","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"subject\", subject)\n form.add(\"desc\", desc)\n form.add(\"bodyhtml\", bodyhtml)\n form.add(\"body\", body)\n if createuser.nil?\n else\n form.add(\"createuser\", createuser.to_s)\n end\n if email.nil?\n else\n form.add(\"email\", email.to_s)\n end\n if unlock.nil?\n else\n form.add(\"unlock\", unlock.to_s)\n end\n if createunlock.nil?\n else\n form.add(\"createunlock\", createunlock.to_s)\n end\n if createres.nil?\n else\n form.add(\"createres\", createres.to_s)\n end\n if release.nil?\n else\n form.add(\"release\", release.to_s)\n end\n if cardswipe.nil?\n else\n form.add(\"cardswipe\", cardswipe.to_s)\n end\n if maxuse.nil?\n else\n form.add(\"maxuse\", maxuse.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\n if validperiod.nil?\n else\n form.add(\"validperiod\", validperiod.to_s)\n end\n if restype.nil?\n else\n form.add(\"restype\", restype.to_s)\n end\n if activatemessage.nil?\n else\n form.add(\"activatemessage\", activatemessage.to_s)\n end\n if vouchermessage.nil?\n else\n form.add(\"vouchermessage\", vouchermessage.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_templates-instance-method","name":"voucher_templates","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L493"},"def":{"name":"voucher_templates","visibility":"Public","body":"response = get(\"/restapi/voucher-template\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"ws_get(uri:String,**options)-instance-method","name":"ws_get","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String, **options)","args_html":"(uri : String, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L88"},"def":{"name":"ws_get","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"GET #{uri}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}},{"html_id":"ws_post(uri:String,body:String|Nil=nil,**options)-instance-method","name":"ws_post","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(uri : String, body : String | Nil = nil, **options)","args_html":"(uri : String, body : String | Nil = nil, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L81"},"def":{"name":"ws_post","args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"POST #{uri}\\r\\n#{body.presence ? body : \"{}\"}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}}],"macros":[{"html_id":"parse(response,klass,&modify)-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"args_string":"(response, klass, &modify)","args_html":"(response, klass, &modify)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L181"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"block_arg":{"name":"modify","external_name":"modify","restriction":""},"visibility":"Public","body":" check_success(\n{{ response }}\n)\n \n%resp_body\n = \n{{ response }}\n.body\n begin\n check_response Resp(\n{{ klass }}\n).from_json(\n%resp_body\n.not_nil!) \n{{ modify }}\n\n rescue \nerror\n begin\n response = Response.from_json(\n%resp_body\n)\n raise \"#{response.message} (#{response.code})\" unless response.result\n raise \"unexpected response type: #{\n%resp_body\n}\"\n rescue\n logger.debug \n{ \"failed to parse response: #{\n%resp_body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/Floorsense/DesksWebsocket/DeskHeight","path":"Floorsense/DesksWebsocket/DeskHeight.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskHeight","name":"DeskHeight","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":779,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L779"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sit","name":"Sit","value":"0"},{"id":"Stand","name":"Stand","value":"1"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"sit?-instance-method","name":"sit?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":780,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L780"},"def":{"name":"sit?","visibility":"Public","body":"self == Sit"}},{"html_id":"stand?-instance-method","name":"stand?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":781,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L781"},"def":{"name":"stand?","visibility":"Public","body":"self == Stand"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/DeskPower","path":"Floorsense/DesksWebsocket/DeskPower.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskPower","name":"DeskPower","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":773,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L773"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Policy","name":"Policy","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L775"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":774,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L774"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"policy?-instance-method","name":"policy?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":776,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L776"},"def":{"name":"policy?","visibility":"Public","body":"self == Policy"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedColour","path":"Floorsense/DesksWebsocket/LedColour.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedColour","name":"LedColour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":767,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L767"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":770,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L770"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":769,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L769"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L768"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedState","path":"Floorsense/DesksWebsocket/LedState.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedState","name":"LedState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Off","name":"Off","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Slow","name":"Slow","value":"2"},{"id":"Medium","name":"Medium","value":"3"},{"id":"Fast","name":"Fast","value":"4"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"fast?-instance-method","name":"fast?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L320"},"def":{"name":"fast?","visibility":"Public","body":"self == Fast"}},{"html_id":"medium?-instance-method","name":"medium?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L319"},"def":{"name":"medium?","visibility":"Public","body":"self == Medium"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L316"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L317"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"slow?-instance-method","name":"slow?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L318"},"def":{"name":"slow?","visibility":"Public","body":"self == Slow"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/QiMode","path":"Floorsense/DesksWebsocket/QiMode.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::QiMode","name":"QiMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L784"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":787,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L787"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":786,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L786"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":785,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/desks_websocket.cr#L785"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]}]},{"html_id":"drivers/Floorsense/Event","path":"Floorsense/Event.html","kind":"class","full_name":"Floorsense::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L30"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"info:JSON::Any|Nil-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L32"},"def":{"name":"info","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L31"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L29"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/Floor","path":"Floorsense/Floor.html","kind":"class","full_name":"Floorsense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L229"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"imgheight:Int32|Nil-instance-method","name":"imgheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L236"},"def":{"name":"imgheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgheight"}},{"html_id":"imgheight=(imgheight:Int32|Nil)-instance-method","name":"imgheight=","abstract":false,"args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"args_string":"(imgheight : Int32 | Nil)","args_html":"(imgheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L236"},"def":{"name":"imgheight=","args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgheight = imgheight"}},{"html_id":"imgname:String|Nil-instance-method","name":"imgname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L234"},"def":{"name":"imgname","return_type":"String | ::Nil","visibility":"Public","body":"@imgname"}},{"html_id":"imgname=(imgname:String|Nil)-instance-method","name":"imgname=","abstract":false,"args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"args_string":"(imgname : String | Nil)","args_html":"(imgname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L234"},"def":{"name":"imgname=","args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@imgname = imgname"}},{"html_id":"imgwidth:Int32|Nil-instance-method","name":"imgwidth","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgwidth"}},{"html_id":"imgwidth=(imgwidth:Int32|Nil)-instance-method","name":"imgwidth=","abstract":false,"args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"args_string":"(imgwidth : Int32 | Nil)","args_html":"(imgwidth : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth=","args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgwidth = imgwidth"}},{"html_id":"location1:String|Nil-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L238"},"def":{"name":"location1","return_type":"String | ::Nil","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String|Nil)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"args_string":"(location1 : String | Nil)","args_html":"(location1 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L238"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String|Nil-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L239"},"def":{"name":"location2","return_type":"String | ::Nil","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String|Nil)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"args_string":"(location2 : String | Nil)","args_html":"(location2 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L239"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String|Nil-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L240"},"def":{"name":"location3","return_type":"String | ::Nil","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String|Nil)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"args_string":"(location3 : String | Nil)","args_html":"(location3 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L240"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L232"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L232"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L231"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L231"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}}]},{"html_id":"drivers/Floorsense/LocationService","path":"Floorsense/LocationService.html","kind":"class","full_name":"Floorsense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/location_service.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/location_service.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L150"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"cid=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n user = (floorsense.at_location(floor_mac[\"cid\"], floor_mac[\"key\"])).get\n {location: \"desk\", assigned_to: user[\"name\"].as_s, mac_address: mac_address}\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L163"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of Nil\nend\nbuilding = @building_mappings[zone_id]?\nraw_desks = (floorsense.desks(plan_id)).get.to_json\ndesks = (Array(DeskStatus).from_json(raw_desks)).compact_map do |desk|\n @eui64_to_desk_id[desk.eui64] = desk.key\n if desk.occupied\n {location: :desk, at_location: 1, map_id: desk.key, level: zone_id, building: building, capacity: 1, mac: \"cid=#{desk.cid}&key=#{desk.key}\", floorsense_status: desk.status, floorsense_desk_type: desk.desk_type}\n end\nend\ncurrent = [] of BookingStatus\nif @include_bookings\n raw_bookings = (floorsense.bookings(plan_id)).get.to_json\n (Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\n end\nend\ncurrent.map do |booking|\n {location: :booking, type: \"desk\", checked_in: booking.active, asset_id: booking.key, booking_id: booking.booking_id, building: building, level: zone_id, ends_at: booking.finish, mac: \"cid=#{booking.cid}&key=#{booking.key}\", staff_email: booking.user.try do |__arg2|\n __arg2.email.try(&.downcase)\n end, staff_name: booking.user.try(&.name)}\nend + desks\n"}},{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L57"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@eui64_to_desk_id[id]?"}},{"html_id":"get_desk_height_sit-instance-method","name":"get_desk_height_sit","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L113"},"def":{"name":"get_desk_height_sit","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_sit\", uid)).get[\"value\"]\n"}},{"html_id":"get_desk_height_stand-instance-method","name":"get_desk_height_stand","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L119"},"def":{"name":"get_desk_height_stand","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_stand\", uid)).get[\"value\"]\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/location_service.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L69"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_place_user_id:String-instance-method","name":"get_place_user_id","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L107"},"def":{"name":"get_place_user_id","return_type":"String","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"must be invoked by a user\")\nend\nuser_id\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L140"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/location_service.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L145"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"@include_bookings = (setting?(Bool, :include_bookings)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n"}},{"html_id":"set_desk_height_sit(value:UInt32)-instance-method","name":"set_desk_height_sit","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L125"},"def":{"name":"set_desk_height_sit","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_sit\", value, uid)\n"}},{"html_id":"set_desk_height_stand(value:UInt32)-instance-method","name":"set_desk_height_stand","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/location_service.cr#L131"},"def":{"name":"set_desk_height_stand","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_stand\", value, uid)\n"}}]},{"html_id":"drivers/Floorsense/LockerBooking","path":"Floorsense/LockerBooking.html","kind":"class","full_name":"Floorsense::LockerBooking","name":"LockerBooking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L110"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Int32-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L130"},"def":{"name":"active","return_type":"Int32","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Int32)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Int32"}],"args_string":"(active : Int32)","args_html":"(active : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L130"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Int32"}],"visibility":"Public","body":"@active = active"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L117"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L117"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L112"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L112"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L114"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L114"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L125"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L125"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"lastopened:Int64-instance-method","name":"lastopened","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L128"},"def":{"name":"lastopened","return_type":"Int64","visibility":"Public","body":"@lastopened"}},{"html_id":"lastopened=(lastopened:Int64)-instance-method","name":"lastopened=","abstract":false,"args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"args_string":"(lastopened : Int64)","args_html":"(lastopened : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L128"},"def":{"name":"lastopened=","args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"visibility":"Public","body":"@lastopened = lastopened"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L126"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L126"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L131"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L131"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L129"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L129"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L133"},"def":{"name":"released?","visibility":"Public","body":"self.active == 1"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L127"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L127"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L113"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L113"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L138"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L138"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L123"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L123"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Floorsense/LockerInfo","path":"Floorsense/LockerInfo.html","kind":"class","full_name":"Floorsense::LockerInfo","name":"LockerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bus_id:Int32-instance-method","name":"bus_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L82"},"def":{"name":"bus_id","return_type":"Int32","visibility":"Public","body":"@bus_id"}},{"html_id":"bus_id=(bus_id:Int32)-instance-method","name":"bus_id=","abstract":false,"args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"args_string":"(bus_id : Int32)","args_html":"(bus_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L82"},"def":{"name":"bus_id=","args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"visibility":"Public","body":"@bus_id = bus_id"}},{"html_id":"canid:Int32-instance-method","name":"canid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L79"},"def":{"name":"canid","return_type":"Int32","visibility":"Public","body":"@canid"}},{"html_id":"canid=(canid:Int32)-instance-method","name":"canid=","abstract":false,"args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"args_string":"(canid : Int32)","args_html":"(canid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L79"},"def":{"name":"canid=","args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"visibility":"Public","body":"@canid = canid"}},{"html_id":"closed:Bool|Nil-instance-method","name":"closed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L93"},"def":{"name":"closed","return_type":"Bool | ::Nil","visibility":"Public","body":"@closed"}},{"html_id":"closed=(closed:Bool|Nil)-instance-method","name":"closed=","abstract":false,"args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"args_string":"(closed : Bool | Nil)","args_html":"(closed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L93"},"def":{"name":"closed=","args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@closed = closed"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L91"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L91"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::LockerInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L106"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"disabled:Bool-instance-method","name":"disabled","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L90"},"def":{"name":"disabled","return_type":"Bool","visibility":"Public","body":"@disabled"}},{"html_id":"disabled=(disabled:Bool)-instance-method","name":"disabled=","abstract":false,"args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"args_string":"(disabled : Bool)","args_html":"(disabled : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L90"},"def":{"name":"disabled=","args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"visibility":"Public","body":"@disabled = disabled"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L89"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L89"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L98"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L98"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:Int32|Nil-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L99"},"def":{"name":"hardware","return_type":"Int32 | ::Nil","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:Int32|Nil)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"args_string":"(hardware : Int32 | Nil)","args_html":"(hardware : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L99"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L101"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L101"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"locker_id:Int32-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L85"},"def":{"name":"locker_id","return_type":"Int32","visibility":"Public","body":"@locker_id"}},{"html_id":"locker_id=(locker_id:Int32)-instance-method","name":"locker_id=","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"args_string":"(locker_id : Int32)","args_html":"(locker_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L85"},"def":{"name":"locker_id=","args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"visibility":"Public","body":"@locker_id = locker_id"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L87"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L87"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"resid:String|Nil-instance-method","name":"resid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L103"},"def":{"name":"resid","return_type":"String | ::Nil","visibility":"Public","body":"@resid"}},{"html_id":"resid=(resid:String|Nil)-instance-method","name":"resid=","abstract":false,"args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"args_string":"(resid : String | Nil)","args_html":"(resid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L103"},"def":{"name":"resid=","args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resid = resid"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L88"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L88"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L100"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L100"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L96"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L96"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}},{"html_id":"uid:String|Nil-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L97"},"def":{"name":"uid","return_type":"String | ::Nil","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String|Nil)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(uid : String | Nil)","args_html":"(uid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L97"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"usbcharger:Bool|Nil-instance-method","name":"usbcharger","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharger"}},{"html_id":"usbcharger=(usbcharger:Bool|Nil)-instance-method","name":"usbcharger=","abstract":false,"args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"args_string":"(usbcharger : Bool | Nil)","args_html":"(usbcharger : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger=","args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharger = usbcharger"}},{"html_id":"usbcharging:Bool|Nil-instance-method","name":"usbcharging","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharging"}},{"html_id":"usbcharging=(usbcharging:Bool|Nil)-instance-method","name":"usbcharging=","abstract":false,"args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"args_string":"(usbcharging : Bool | Nil)","args_html":"(usbcharging : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging=","args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharging = usbcharging"}},{"html_id":"usbcurrent:Int32|Nil-instance-method","name":"usbcurrent","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent","return_type":"Int32 | ::Nil","visibility":"Public","body":"@usbcurrent"}},{"html_id":"usbcurrent=(usbcurrent:Int32|Nil)-instance-method","name":"usbcurrent=","abstract":false,"args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"args_string":"(usbcurrent : Int32 | Nil)","args_html":"(usbcurrent : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent=","args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@usbcurrent = usbcurrent"}}]},{"html_id":"drivers/Floorsense/LockerLocationService","path":"Floorsense/LockerLocationService.html","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L382"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lc=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n controller_id = floor_mac[\"lc\"]\n locker_key = floor_mac[\"lk\"]\n reservations = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n if reservation = reservations.find do |booking|\n booking.key == locker_key\n end\n {location: \"locker\", assigned_to: get_user_email(reservation.user_id), mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"controllers:Hash(Int32,ControllerInfo)-instance-method","name":"controllers","doc":"Controller id => Controller info","summary":"

Controller id => Controller info

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L50"},"def":{"name":"controllers","return_type":"Hash(Int32, ControllerInfo)","visibility":"Public","body":"@controllers"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L412"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\ncontroller_list = @zone_mappings[zone_id]?\nif controller_list\nelse\n return [] of Nil\nend\nbuilding = @zone_building\ncontroller_list.flat_map do |controller_id|\n bookings = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n bookings.map do |booking|\n PlaceLocker.new(get_locker_bank(booking.key), booking, @zone_building, zone_id)\n end\nend\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L106"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nlogger.debug do\n \"found place id: #{placeos_staff_id}\"\nend\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nlogger.debug do\n \"found #{floorsense_users.size} matching floorsense users\"\nend\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_locker_bank(locker_key:String)-instance-method","name":"get_locker_bank","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L403"},"def":{"name":"get_locker_bank","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"if bank_id = @locker_key_to_bank[locker_key]?\n return bank_id\nend\nbank_id = (floorsense.locker_info(locker_key)).get[\"controller_id\"].as_i64\n@locker_key_to_bank[locker_key] = bank_id\n"}},{"html_id":"get_place_user_id(floorsense_id:String|Int64):String-instance-method","name":"get_place_user_id","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L148"},"def":{"name":"get_place_user_id","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nplace_lookup = case @floorsense_filter\nwhen \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\nelse\n floor_user[\"desc\"].as_s\nend\nif (place_lookup.starts_with?(\"user-\")) && !(place_lookup.includes?('@'))\n return place_lookup\nend\n(staff_api.user(place_lookup)).get[\"id\"].as_s\n"}},{"html_id":"get_user_email(floorsense_id:String|Int64):String-instance-method","name":"get_user_email","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L161"},"def":{"name":"get_user_email","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nbegin\n floor_user[\"email\"].as_s\nrescue\n place_lookup = case @floorsense_filter\n when \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\n else\n floor_user[\"desc\"].as_s\n end\n (staff_api.user(place_lookup)).get[\"email\"].as_s\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L370"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L192"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(user_id)\nif expires_at\n duration = (expires_at - Time.local.to_unix) // 60\nend\nbooking = LockerBooking.from_json(floorsense.locker_reservation(locker_key: locker_id, user_id: floorsense_user_id, duration: duration, controller_id: bank_id).get.to_json)\nlevel = nil\n@zone_mappings.each do |level_zone, controllers|\n if bank_id.in?(controllers)\n level = level_zone\n break\n end\nend\nPlaceLocker.new(bank_id, booking, @zone_building, level)\n"}},{"html_id":"locker_banks-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L88"},"def":{"name":"locker_banks","visibility":"Public","body":"banks = {} of Int32 => Array(JSON::Any)\n@controllers.each_key do |controller_id|\n if json = (begin\n (floorsense.bank_list(controller_id)).get\n rescue\n nil\n end)\n banks[controller_id] = json.as_a\n end\nend\nbanks\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L228"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nif place_id = owner_id.presence\n floorsense_user_id = get_floorsense_user(place_id)\nend\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_release(reservation.reservation_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L273"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(owner_id)\nshare_with = get_floorsense_user(share_with)\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_share(reservation.reservation_id, share_with)).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L324"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n return (floorsense.locker_shared?(reservation.reservation_id)).get.as_a.map do |shared_with|\n get_place_user_id(shared_with[\"uid\"].as_s)\n end\nend\n[] of String\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L347"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if owner_id.presence\n floorsense_user_id = get_floorsense_user(owner_id.to_s)\nend\nfloorsense.locker_unlock(locker_key: locker_id.to_s, user_id: floorsense_user_id, pin: pin_code)\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L293"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n res_id = reservation.reservation_id\n if shared_with = shared_with_id.presence\n shared_with_id = get_floorsense_user(shared_with)\n (floorsense.locker_unshare(res_id, shared_with_id)).get\n else\n (floorsense.locker_shared?(res_id)).get.as_a.map do |shared_with|\n (floorsense.locker_unshare(res_id, shared_with[\"uid\"].as_s)).get\n end\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L251"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(user_id)\n(Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id).get.to_json)).compact_map do |floor_booking|\n level = nil\n @zone_mappings.each do |level_zone, controllers|\n if floor_booking.controller_id.in?(controllers)\n level = level_zone\n break\n end\n end\n if level\n PlaceLocker.new(get_locker_bank(floor_booking.key), floor_booking, @zone_building, level)\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L375"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@building_location = setting(String, :locker_building_location)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :locker_floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n"}},{"html_id":"zone_building:String|Nil-instance-method","name":"zone_building","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L57"},"def":{"name":"zone_building","return_type":"String | ::Nil","visibility":"Public","body":"@zone_building"}},{"html_id":"zone_mappings:Hash(String,Array(Int32))-instance-method","name":"zone_mappings","doc":"level zone_id => controller ids","summary":"

level zone_id => controller ids

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L56"},"def":{"name":"zone_mappings","return_type":"Hash(String, Array(Int32))","visibility":"Public","body":"@zone_mappings"}}],"types":[{"html_id":"drivers/Floorsense/LockerLocationService/PlaceLocker","path":"Floorsense/LockerLocationService/PlaceLocker.html","kind":"alias","full_name":"Floorsense::LockerLocationService::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/locker_location_service.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Floorsense/LockerLocationService","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService"}}]},{"html_id":"drivers/Floorsense/LogEntry","path":"Floorsense/LogEntry.html","kind":"class","full_name":"Floorsense::LogEntry","name":"LogEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L376"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L377"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","doc":"booking id","summary":"

booking id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L388"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","doc":"booking id","summary":"

booking id

","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L388"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"code:Int32-instance-method","name":"code","doc":"the event code","summary":"

the event code

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L385"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32)-instance-method","name":"code=","doc":"the event code","summary":"

the event code

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L385"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"@code = code"}},{"html_id":"eventid:Int64-instance-method","name":"eventid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L379"},"def":{"name":"eventid","return_type":"Int64","visibility":"Public","body":"@eventid"}},{"html_id":"eventid=(eventid:Int64)-instance-method","name":"eventid=","abstract":false,"args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"args_string":"(eventid : Int64)","args_html":"(eventid : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L379"},"def":{"name":"eventid=","args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"visibility":"Public","body":"@eventid = eventid"}},{"html_id":"eventtime:Int64-instance-method","name":"eventtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L394"},"def":{"name":"eventtime","return_type":"Int64","visibility":"Public","body":"@eventtime"}},{"html_id":"eventtime=(eventtime:Int64)-instance-method","name":"eventtime=","abstract":false,"args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"args_string":"(eventtime : Int64)","args_html":"(eventtime : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L394"},"def":{"name":"eventtime=","args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"visibility":"Public","body":"@eventtime = eventtime"}},{"html_id":"key:String-instance-method","name":"key","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L382"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L382"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}}]},{"html_id":"drivers/Floorsense/MobileCheckinLogic","path":"Floorsense/MobileCheckinLogic.html","kind":"class","full_name":"Floorsense::MobileCheckinLogic","name":"MobileCheckinLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_scanned(id:String,user_id:String,booking_minutes:Int32|Nil=nil)-instance-method","name":"eui64_scanned","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"args_string":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","args_html":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L31"},"def":{"name":"eui64_scanned","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"#{user_id} scanned mac #{id}\"\nend\ndesk_details = (booking_sync.eui64_to_desk_id(id)).get\nif desk_details.raw.nil?\n raise(\"could not find eui64 id: #{id}\")\nend\nlogger.debug do\n \"desk details found: #{desk_details.inspect}\"\nend\nlevel_zone = desk_details[\"level\"].as_s\nplace_desk = desk_details[\"desk_id\"].as_s\nbuilding_raw = desk_details[\"building_id\"]?.try(&.raw)\nbuild_zone = building_raw.try do |__arg2|\n __arg2.as(String)\nend\nlogger.debug do\n \"located #{place_desk} for #{user_id}\"\nend\nnow = Time.utc.to_unix\nbooking = staff_api.query_bookings(type: \"desk\", zones: [level_zone]).get.as_a.find do |book|\n ((book[\"asset_id\"].as_s == place_desk) && book[\"booking_start\"].as_i64 <= now) && book[\"booking_end\"].as_i64 > now\nend\nif booking\n owner_id = booking[\"user_id\"].as_s\n if owner_id == user_id\n checkin_out = !booking[\"checked_in\"].as_bool\n booking_id = booking[\"id\"].as_i64\n logger.debug do\n \"found existing booking #{booking_id} with current checked-in status #{!checkin_out}\"\n end\n if checkin_out\n (staff_api.booking_check_in(booking_id, true)).get.as_bool\n \"checked-in\"\n else\n now = 1.minute.ago.to_unix\n staff_api.update_booking(booking_id: booking_id, booking_end: now, checked_in: false).get\n \"checked-out\"\n end\n else\n logger.debug do\n \"#{user_id} scanned desk owned by #{owner_id}\"\n end\n \"forbidden\"\n end\nelse\n booking_period = booking_minutes.try(&.minutes) || @booking_period\n now = Time.local(@time_zone)\n future = booking_period ? (now + booking_period) : now.at_end_of_day\n user_details = (staff_api.user(user_id)).get\n zones = [level_zone]\n if build_zone\n zones.unshift(build_zone)\n end\n title = place_desk\n ext_data = {} of String => JSON::Any\n begin\n logger.debug do\n \"obtaining metadata for desk #{place_desk} on level #{level_zone}\"\n end\n if desk_details = placeos_desk_metadata(level_zone, place_desk)\n if bookable = desk_details[\"bookable\"]?\n if (bookable.as_s?.try(&.upcase) == \"FALSE\") || (bookable.as_bool? == false)\n return \"forbidden\"\n end\n end\n title = desk_details[\"name\"]?.try(&.as_s) || place_desk\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk_details[meta_key]?\n ext_data[ext_key] = value\n end\n end\n else\n logger.warn do\n \"desk details not found!\"\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk metadata\"\n end\n end\n logger.debug do\n \"creating new booking for #{user_id} on #{place_desk}\"\n end\n staff_api.create_booking(booking_type: \"desk\", asset_id: place_desk, user_id: user_id, user_email: user_details[\"email\"], user_name: user_details[\"name\"], zones: zones, booking_start: now.to_unix, booking_end: future.to_unix, checked_in: true, approved: true, title: title, time_zone: @time_zone.name, extension_data: ext_data).get\n \"adhoc\"\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"time_zone = (setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@booking_period = (setting?(Int32, :booking_period)).try(&.minutes)\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,asset_id:String)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(zone_id : String, asset_id : String)","args_html":"(zone_id : String, asset_id : String)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/mobile_checkin_logic.cr#L133"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\nmetadata.each do |desk|\n place_id = desk[\"id\"]?.try(&.as_s)\n if place_id\n else\n next\n end\n if place_id == asset_id\n return desk.as_h\n end\nend\nnil\n"}}]},{"html_id":"drivers/Floorsense/Payload","path":"Floorsense/Payload.html","kind":"class","full_name":"Floorsense::Payload","name":"Payload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Floorsense/Event","kind":"class","full_name":"Floorsense::Event","name":"Event"},{"html_id":"drivers/Floorsense/Response","kind":"class","full_name":"Floorsense::Response","name":"Response"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"event\"\n Event.from_json(json)\nwhen \"response\"\n Response.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/Floorsense/Resp","path":"Floorsense/Resp.html","kind":"class","full_name":"Floorsense::Resp(T)","name":"Resp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L56"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32|Nil)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"args_string":"(code : Int32 | Nil)","args_html":"(code : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L56"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@code = code"}},{"html_id":"info:T|Nil-instance-method","name":"info","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L59"},"def":{"name":"info","return_type":"T | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"info=(info:T|Nil)-instance-method","name":"info=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"args_string":"(info : T | Nil)","args_html":"(info : T | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L59"},"def":{"name":"info=","args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"visibility":"Public","body":"@info = info"}},{"html_id":"message:String|Nil-instance-method","name":"message","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L55"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"message=(message:String|Nil)-instance-method","name":"message=","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(message : String | Nil)","args_html":"(message : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L55"},"def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"@message = message"}},{"html_id":"msg_type:String-instance-method","name":"msg_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L51"},"def":{"name":"msg_type","return_type":"String","visibility":"Public","body":"@msg_type"}},{"html_id":"msg_type=(msg_type:String)-instance-method","name":"msg_type=","abstract":false,"args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"args_string":"(msg_type : String)","args_html":"(msg_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L51"},"def":{"name":"msg_type=","args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"visibility":"Public","body":"@msg_type = msg_type"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L52"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"result=(result:Bool)-instance-method","name":"result=","abstract":false,"args":[{"name":"result","external_name":"result","restriction":"Bool"}],"args_string":"(result : Bool)","args_html":"(result : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L52"},"def":{"name":"result=","args":[{"name":"result","external_name":"result","restriction":"Bool"}],"visibility":"Public","body":"@result = result"}}]},{"html_id":"drivers/Floorsense/Response","path":"Floorsense/Response.html","kind":"class","full_name":"Floorsense::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L38"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"info-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L42"},"def":{"name":"info","visibility":"Public","body":"@info || (JSON.parse(\"{}\"))"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L39"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L37"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L36"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/RFID","path":"Floorsense/RFID.html","kind":"class","full_name":"Floorsense::RFID","name":"RFID","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L397"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L398"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"csn:String-instance-method","name":"csn","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L400"},"def":{"name":"csn","return_type":"String","visibility":"Public","body":"@csn"}},{"html_id":"csn=(csn:String)-instance-method","name":"csn=","abstract":false,"args":[{"name":"csn","external_name":"csn","restriction":"String"}],"args_string":"(csn : String)","args_html":"(csn : String)","location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L400"},"def":{"name":"csn=","args":[{"name":"csn","external_name":"csn","restriction":"String"}],"visibility":"Public","body":"@csn = csn"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L402"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L402"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L401"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L401"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Setting","path":"Floorsense/Setting.html","kind":"class","full_name":"Floorsense::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L66"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L66"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L65"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L65"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Floorsense/User","path":"Floorsense/User.html","kind":"class","full_name":"Floorsense::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L358"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L359"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L364"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L364"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L362"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L362"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expiry:Int64|Nil-instance-method","name":"expiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L366"},"def":{"name":"expiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"expiry=(expiry:Int64|Nil)-instance-method","name":"expiry=","abstract":false,"args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(expiry : Int64 | Nil)","args_html":"(expiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L366"},"def":{"name":"expiry=","args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@expiry = expiry"}},{"html_id":"extid:String|Nil-instance-method","name":"extid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L371"},"def":{"name":"extid","return_type":"String | ::Nil","visibility":"Public","body":"@extid"}},{"html_id":"extid=(extid:String|Nil)-instance-method","name":"extid=","abstract":false,"args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"args_string":"(extid : String | Nil)","args_html":"(extid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L371"},"def":{"name":"extid=","args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@extid = extid"}},{"html_id":"lastlogin:Int64|Nil-instance-method","name":"lastlogin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin","return_type":"Int64 | ::Nil","visibility":"Public","body":"@lastlogin"}},{"html_id":"lastlogin=(lastlogin:Int64|Nil)-instance-method","name":"lastlogin=","abstract":false,"args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"args_string":"(lastlogin : Int64 | Nil)","args_html":"(lastlogin : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin=","args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@lastlogin = lastlogin"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L363"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L363"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"pin:String|Nil-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L368"},"def":{"name":"pin","return_type":"String | ::Nil","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String|Nil)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(pin : String | Nil)","args_html":"(pin : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L368"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"privacy:Int32|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L373"},"def":{"name":"privacy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Int32|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"args_string":"(privacy : Int32 | Nil)","args_html":"(privacy : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L373"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reslimit:Int64|Nil-instance-method","name":"reslimit","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L367"},"def":{"name":"reslimit","return_type":"Int64 | ::Nil","visibility":"Public","body":"@reslimit"}},{"html_id":"reslimit=(reslimit:Int64|Nil)-instance-method","name":"reslimit=","abstract":false,"args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"args_string":"(reslimit : Int64 | Nil)","args_html":"(reslimit : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L367"},"def":{"name":"reslimit=","args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@reslimit = reslimit"}},{"html_id":"ugroupid:Int64|Nil-instance-method","name":"ugroupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ugroupid"}},{"html_id":"ugroupid=(ugroupid:Int64|Nil)-instance-method","name":"ugroupid=","abstract":false,"args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"args_string":"(ugroupid : Int64 | Nil)","args_html":"(ugroupid : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid=","args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ugroupid = ugroupid"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L361"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L361"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"uidtoken:String|Nil-instance-method","name":"uidtoken","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken","return_type":"String | ::Nil","visibility":"Public","body":"@uidtoken"}},{"html_id":"uidtoken=(uidtoken:String|Nil)-instance-method","name":"uidtoken=","abstract":false,"args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"args_string":"(uidtoken : String | Nil)","args_html":"(uidtoken : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken=","args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uidtoken = uidtoken"}},{"html_id":"usertype:String|Nil-instance-method","name":"usertype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L372"},"def":{"name":"usertype","return_type":"String | ::Nil","visibility":"Public","body":"@usertype"}},{"html_id":"usertype=(usertype:String|Nil)-instance-method","name":"usertype=","abstract":false,"args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"args_string":"(usertype : String | Nil)","args_html":"(usertype : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L372"},"def":{"name":"usertype=","args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usertype = usertype"}}]},{"html_id":"drivers/Floorsense/UserGroup","path":"Floorsense/UserGroup.html","kind":"class","full_name":"Floorsense::UserGroup","name":"UserGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L198"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L198"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L196"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L196"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L197"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L197"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Floorsense/UserLocation","path":"Floorsense/UserLocation.html","kind":"class","full_name":"Floorsense::UserLocation","name":"UserLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool|Nil-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L225"},"def":{"name":"active","return_type":"Bool | ::Nil","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool|Nil)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil)","args_html":"(active : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L225"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@active = active"}},{"html_id":"cid:Int32|Nil-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L220"},"def":{"name":"cid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32|Nil)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"args_string":"(cid : Int32 | Nil)","args_html":"(cid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L220"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool|Nil-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L224"},"def":{"name":"confirmed","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool|Nil)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"args_string":"(confirmed : Bool | Nil)","args_html":"(confirmed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L224"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"finish:Time|Nil-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L213"},"def":{"name":"finish","return_type":"Time | ::Nil","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Time|Nil)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"args_string":"(finish : Time | Nil)","args_html":"(finish : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L213"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"floorname:String|Nil-instance-method","name":"floorname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L219"},"def":{"name":"floorname","return_type":"String | ::Nil","visibility":"Public","body":"@floorname"}},{"html_id":"floorname=(floorname:String|Nil)-instance-method","name":"floorname=","abstract":false,"args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"args_string":"(floorname : String | Nil)","args_html":"(floorname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L219"},"def":{"name":"floorname=","args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floorname = floorname"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L217"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L217"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"groupname:String|Nil-instance-method","name":"groupname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L222"},"def":{"name":"groupname","return_type":"String | ::Nil","visibility":"Public","body":"@groupname"}},{"html_id":"groupname=(groupname:String|Nil)-instance-method","name":"groupname=","abstract":false,"args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"args_string":"(groupname : String | Nil)","args_html":"(groupname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L222"},"def":{"name":"groupname=","args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@groupname = groupname"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L218"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L218"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L204"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L204"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"occupied:Bool|Nil-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L216"},"def":{"name":"occupied","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool|Nil)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"args_string":"(occupied : Bool | Nil)","args_html":"(occupied : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L216"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32|Nil-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32|Nil)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"args_string":"(occupiedtime : Int32 | Nil)","args_html":"(occupiedtime : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L215"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L215"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L223"},"def":{"name":"privacy","return_type":"Bool | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(privacy : Bool | Nil)","args_html":"(privacy : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L223"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"start:Time|Nil-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L210"},"def":{"name":"start","return_type":"Time | ::Nil","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Time|Nil)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"args_string":"(start : Time | Nil)","args_html":"(start : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L210"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L205"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L205"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Voucher","path":"Floorsense/Voucher.html","kind":"class","full_name":"Floorsense::Voucher","name":"Voucher","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L429"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L430"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardswipe:Bool-instance-method","name":"cardswipe","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe","return_type":"Bool","visibility":"Public","body":"@cardswipe"}},{"html_id":"cardswipe=(cardswipe:Bool)-instance-method","name":"cardswipe=","abstract":false,"args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"args_string":"(cardswipe : Bool)","args_html":"(cardswipe : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe=","args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"visibility":"Public","body":"@cardswipe = cardswipe"}},{"html_id":"controller_id:String-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L442"},"def":{"name":"controller_id","return_type":"String","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:String)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"args_string":"(controller_id : String)","args_html":"(controller_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L442"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L448"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L448"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"duration:Int64-instance-method","name":"duration","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L450"},"def":{"name":"duration","return_type":"Int64","visibility":"Public","body":"@duration"}},{"html_id":"duration=(duration:Int64)-instance-method","name":"duration=","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"args_string":"(duration : Int64)","args_html":"(duration : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L450"},"def":{"name":"duration=","args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"visibility":"Public","body":"@duration = duration"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L433"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L433"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expired:Int64-instance-method","name":"expired","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L451"},"def":{"name":"expired","return_type":"Int64","visibility":"Public","body":"@expired"}},{"html_id":"expired=(expired:Int64)-instance-method","name":"expired=","abstract":false,"args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"args_string":"(expired : Int64)","args_html":"(expired : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L451"},"def":{"name":"expired=","args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"visibility":"Public","body":"@expired = expired"}},{"html_id":"lastuse:Int64-instance-method","name":"lastuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L432"},"def":{"name":"lastuse","return_type":"Int64","visibility":"Public","body":"@lastuse"}},{"html_id":"lastuse=(lastuse:Int64)-instance-method","name":"lastuse=","abstract":false,"args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"args_string":"(lastuse : Int64)","args_html":"(lastuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L432"},"def":{"name":"lastuse=","args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"visibility":"Public","body":"@lastuse = lastuse"}},{"html_id":"locker_key:String-instance-method","name":"locker_key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L439"},"def":{"name":"locker_key","return_type":"String","visibility":"Public","body":"@locker_key"}},{"html_id":"locker_key=(locker_key:String)-instance-method","name":"locker_key=","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L439"},"def":{"name":"locker_key=","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_key = locker_key"}},{"html_id":"maxuse:Int64-instance-method","name":"maxuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L453"},"def":{"name":"maxuse","return_type":"Int64","visibility":"Public","body":"@maxuse"}},{"html_id":"maxuse=(maxuse:Int64)-instance-method","name":"maxuse=","abstract":false,"args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"args_string":"(maxuse : Int64)","args_html":"(maxuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L453"},"def":{"name":"maxuse=","args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"visibility":"Public","body":"@maxuse = maxuse"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L461"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L461"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L462"},"def":{"name":"notes","return_type":"String","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String"}],"args_string":"(notes : String)","args_html":"(notes : String)","location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L462"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"notified:Int64-instance-method","name":"notified","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L455"},"def":{"name":"notified","return_type":"Int64","visibility":"Public","body":"@notified"}},{"html_id":"notified=(notified:Int64)-instance-method","name":"notified=","abstract":false,"args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"args_string":"(notified : Int64)","args_html":"(notified : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L455"},"def":{"name":"notified=","args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"visibility":"Public","body":"@notified = notified"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L447"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L447"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"release:Bool-instance-method","name":"release","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L449"},"def":{"name":"release","return_type":"Bool","visibility":"Public","body":"@release"}},{"html_id":"release=(release:Bool)-instance-method","name":"release=","abstract":false,"args":[{"name":"release","external_name":"release","restriction":"Bool"}],"args_string":"(release : Bool)","args_html":"(release : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L449"},"def":{"name":"release=","args":[{"name":"release","external_name":"release","restriction":"Bool"}],"visibility":"Public","body":"@release = release"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L454"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L454"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"template:String-instance-method","name":"template","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L460"},"def":{"name":"template","return_type":"String","visibility":"Public","body":"@template"}},{"html_id":"template=(template:String)-instance-method","name":"template=","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"}],"args_string":"(template : String)","args_html":"(template : String)","location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L460"},"def":{"name":"template=","args":[{"name":"template","external_name":"template","restriction":"String"}],"visibility":"Public","body":"@template = template"}},{"html_id":"unlock:Bool-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L459"},"def":{"name":"unlock","return_type":"Bool","visibility":"Public","body":"@unlock"}},{"html_id":"unlock=(unlock:Bool)-instance-method","name":"unlock=","abstract":false,"args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"args_string":"(unlock : Bool)","args_html":"(unlock : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L459"},"def":{"name":"unlock=","args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"visibility":"Public","body":"@unlock = unlock"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L467"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L467"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}},{"html_id":"usecount:Int64-instance-method","name":"usecount","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L452"},"def":{"name":"usecount","return_type":"Int64","visibility":"Public","body":"@usecount"}},{"html_id":"usecount=(usecount:Int64)-instance-method","name":"usecount=","abstract":false,"args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"args_string":"(usecount : Int64)","args_html":"(usecount : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L452"},"def":{"name":"usecount=","args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"visibility":"Public","body":"@usecount = usecount"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L466"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L466"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"validfrom:Int64-instance-method","name":"validfrom","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L456"},"def":{"name":"validfrom","return_type":"Int64","visibility":"Public","body":"@validfrom"}},{"html_id":"validfrom=(validfrom:Int64)-instance-method","name":"validfrom=","abstract":false,"args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"args_string":"(validfrom : Int64)","args_html":"(validfrom : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L456"},"def":{"name":"validfrom=","args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"visibility":"Public","body":"@validfrom = validfrom"}},{"html_id":"validto:Int64-instance-method","name":"validto","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L457"},"def":{"name":"validto","return_type":"Int64","visibility":"Public","body":"@validto"}},{"html_id":"validto=(validto:Int64)-instance-method","name":"validto=","abstract":false,"args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"args_string":"(validto : Int64)","args_html":"(validto : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L457"},"def":{"name":"validto=","args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"visibility":"Public","body":"@validto = validto"}},{"html_id":"voucher_id:String-instance-method","name":"voucher_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id","return_type":"String","visibility":"Public","body":"@voucher_id"}},{"html_id":"voucher_id=(voucher_id:String)-instance-method","name":"voucher_id=","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"args_string":"(voucher_id : String)","args_html":"(voucher_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id=","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"visibility":"Public","body":"@voucher_id = voucher_id"}}]}]},{"html_id":"drivers/Freespace","path":"Freespace.html","kind":"module","full_name":"Freespace","name":"Freespace","abstract":false,"locations":[{"filename":"src/freespace/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Freespace/Category","path":"Freespace/Category.html","kind":"class","full_name":"Freespace::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"color_scheme:String|Nil-instance-method","name":"color_scheme","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L75"},"def":{"name":"color_scheme","return_type":"String | ::Nil","visibility":"Public","body":"@color_scheme"}},{"html_id":"color_scheme=(color_scheme:String|Nil)-instance-method","name":"color_scheme=","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"args_string":"(color_scheme : String | Nil)","args_html":"(color_scheme : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L75"},"def":{"name":"color_scheme=","args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"visibility":"Public","body":"@color_scheme = color_scheme"}},{"html_id":"icon_url:String|Nil-instance-method","name":"icon_url","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L71"},"def":{"name":"icon_url","return_type":"String | ::Nil","visibility":"Public","body":"@icon_url"}},{"html_id":"icon_url=(icon_url:String|Nil)-instance-method","name":"icon_url=","abstract":false,"args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"args_string":"(icon_url : String | Nil)","args_html":"(icon_url : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L71"},"def":{"name":"icon_url=","args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@icon_url = icon_url"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L58"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L59"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L59"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"ordering_index:Int32|Nil-instance-method","name":"ordering_index","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L78"},"def":{"name":"ordering_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@ordering_index"}},{"html_id":"ordering_index=(ordering_index:Int32|Nil)-instance-method","name":"ordering_index=","abstract":false,"args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"args_string":"(ordering_index : Int32 | Nil)","args_html":"(ordering_index : Int32 | Nil)","location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L78"},"def":{"name":"ordering_index=","args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@ordering_index = ordering_index"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L62"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L62"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"show_in_analytics:Bool-instance-method","name":"show_in_analytics","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics","return_type":"Bool","visibility":"Public","body":"@show_in_analytics"}},{"html_id":"show_in_analytics=(show_in_analytics:Bool)-instance-method","name":"show_in_analytics=","abstract":false,"args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"args_string":"(show_in_analytics : Bool)","args_html":"(show_in_analytics : Bool)","location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics=","args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"visibility":"Public","body":"@show_in_analytics = show_in_analytics"}},{"html_id":"show_on_signage:Bool-instance-method","name":"show_on_signage","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage","return_type":"Bool","visibility":"Public","body":"@show_on_signage"}},{"html_id":"show_on_signage=(show_on_signage:Bool)-instance-method","name":"show_on_signage=","abstract":false,"args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"args_string":"(show_on_signage : Bool)","args_html":"(show_on_signage : Bool)","location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage=","args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"visibility":"Public","body":"@show_on_signage = show_on_signage"}}]},{"html_id":"drivers/Freespace/Device","path":"Freespace/Device.html","kind":"class","full_name":"Freespace::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L84"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L84"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L87"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L87"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Freespace/Location","path":"Freespace/Location.html","kind":"class","full_name":"Freespace::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L37"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L37"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"policy:Bool-instance-method","name":"policy","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L44"},"def":{"name":"policy","return_type":"Bool","visibility":"Public","body":"@policy"}},{"html_id":"policy=(policy:Bool)-instance-method","name":"policy=","abstract":false,"args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"args_string":"(policy : Bool)","args_html":"(policy : Bool)","location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L44"},"def":{"name":"policy=","args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"visibility":"Public","body":"@policy = policy"}},{"html_id":"raw:Bool-instance-method","name":"raw","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L43"},"def":{"name":"raw","return_type":"Bool","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:Bool)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"args_string":"(raw : Bool)","args_html":"(raw : Bool)","location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L43"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"visibility":"Public","body":"@raw = raw"}}]},{"html_id":"drivers/Freespace/SensorAPI","path":"Freespace/SensorAPI.html","kind":"class","full_name":"Freespace::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/sensor_api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/freespace/sensor_api.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L207"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"client:STOMP::Client-instance-method","name":"client","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L54"},"def":{"name":"client","return_type":"STOMP::Client","visibility":"Public","body":"if (__temp_1 = @client).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SensorAPI#client cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"client?:STOMP::Client|Nil-instance-method","name":"client?","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L54"},"def":{"name":"client?","return_type":"STOMP::Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L66"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nhostname = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\n@client = STOMP::Client.new(hostname)\nsend(client.stomp.to_s)\nschedule.clear\nschedule.in(5.seconds) do\n @auth_key = nil\nend\nschedule.every(10.seconds) do\n heart_beat\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L212"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nloctions = @zone_mappings[zone_id]?\nif loctions\nelse\n return [] of Nil\nend\nloctions.flat_map do |loc_id|\n location_id = loc_id.to_i64\n loc_details = @floor_mappings[loc_id]\n @space_state.values.compact_map do |activity|\n if ((activity.location_id != location_id) || (activity.state == 0)) || activity.capacity > 1\n next\n end\n {location: activity.capacity == 1 ? \"desk\" : \"area\", at_location: activity.state, map_id: activity.name, level: loc_details[:level_id], building: loc_details[:building_id], capacity: activity.capacity}\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L79"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n@spaces.clear\n@auth_key = @client = nil\n"}},{"html_id":"get_location(location_id:String|Int64):Array(Space)-instance-method","name":"get_location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"args_string":"(location_id : String | Int64) : Array(Space)","args_html":"(location_id : String | Int64) : Array(Space)","location":{"filename":"src/freespace/sensor_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L113"},"def":{"name":"get_location","args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"return_type":"Array(Space)","visibility":"Public","body":"response = http(\"POST\", \"/api/locations/#{location_id}/spaces\", headers: {\"X-Auth-Key\" => get_token, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nif response.success?\nelse\n raise(\"issue obtaining to location #{location_id}: status code #{response.status_code}\\n#{response.body}\")\nend\nspaces = Array(Space).from_json(response.body)\nspaces.each do |space|\n @spaces[space.id] = space\nend\nspaces\n"}},{"html_id":"get_token:String-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L135"},"def":{"name":"get_token","return_type":"String","visibility":"Public","body":"auth_key = @auth_key\nif auth_key\n return auth_key\nend\nresponse = http(\"POST\", \"/login\", headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"login response: #{response.body}\"\nend\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nschedule.in(5.seconds) do\n @auth_key = nil\nend\n@auth_key = response.headers[\"X-Auth-Key\"]\n"}},{"html_id":"heart_beat-instance-method","name":"heart_beat","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L86"},"def":{"name":"heart_beat","visibility":"Public","body":"send((client.send(\"/beat/#{Time.utc.to_unix}\")).to_s, wait: false, priority: 0)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L197"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/freespace/sensor_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L202"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_mappings.clear\n@floor_mappings.each do |location_id, details|\n @zone_mappings[details[:level_id]] << location_id\n @zone_mappings[details[:building_id]] << location_id\nend\nif @connected\n disconnect\nend\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/freespace/sensor_api.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L157"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"frame = STOMP::Frame.new(bytes)\ncase frame.command\nwhen .connected?\n client.negotiate(frame)\n @floor_mappings.keys.each do |location_id|\n begin\n subscribe_location(location_id)\n rescue error\n logger.error(exception: error) do\n \"failed to subscribe to #{location_id}, skipping\"\n end\n end\n end\nwhen .message?\n activity = SpaceActivity.from_json(frame.body_text)\n if space = @spaces[activity.space_id]?\n activity.location_id = space.location_id\n activity.capacity = space.capacity\n activity.name = space.name\n @space_state[activity.space_id] = activity\n self[\"space-#{activity.space_id}\"] = {location: space.location_id, name: space.name, capacity: space.capacity, count: activity.state, last_updated: activity.utc_epoch}\n self[\"last_change\"] = Time.utc.to_unix\n else\n logger.warn do\n \"unknown space id: #{activity.space_id}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"spaces_details:Hash(Int64,Freespace::Space)-instance-method","name":"spaces_details","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L103"},"def":{"name":"spaces_details","visibility":"Public","body":"@spaces"}},{"html_id":"spaces_state:Hash(Int64,Freespace::SpaceActivity)-instance-method","name":"spaces_state","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L108"},"def":{"name":"spaces_state","visibility":"Public","body":"@space_state"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","doc":"We need an API key to connect to the websocket","summary":"

We need an API key to connect to the websocket

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/sensor_api.cr#L48"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"X-Auth-Key\" => get_token}"}}]},{"html_id":"drivers/Freespace/Space","path":"Freespace/Space.html","kind":"class","full_name":"Freespace::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L92"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L93"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L115"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L115"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:Category-instance-method","name":"category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L105"},"def":{"name":"category","return_type":"Category","visibility":"Public","body":"@category"}},{"html_id":"category=(category:Category)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"Category"}],"args_string":"(category : Category)","args_html":"(category : Category)","location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L105"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"Category"}],"visibility":"Public","body":"@category = category"}},{"html_id":"counted:Bool-instance-method","name":"counted","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L124"},"def":{"name":"counted","return_type":"Bool","visibility":"Public","body":"@counted"}},{"html_id":"counted=(counted:Bool)-instance-method","name":"counted=","abstract":false,"args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"args_string":"(counted : Bool)","args_html":"(counted : Bool)","location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L124"},"def":{"name":"counted=","args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"visibility":"Public","body":"@counted = counted"}},{"html_id":"department:Category-instance-method","name":"department","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L106"},"def":{"name":"department","return_type":"Category","visibility":"Public","body":"@department"}},{"html_id":"department=(department:Category)-instance-method","name":"department=","abstract":false,"args":[{"name":"department","external_name":"department","restriction":"Category"}],"args_string":"(department : Category)","args_html":"(department : Category)","location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L106"},"def":{"name":"department=","args":[{"name":"department","external_name":"department","restriction":"Category"}],"visibility":"Public","body":"@department = department"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L110"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device=(device:Device)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Device"}],"args_string":"(device : Device)","args_html":"(device : Device)","location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L110"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"Device"}],"visibility":"Public","body":"@device = device"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L95"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"live:Bool-instance-method","name":"live","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L114"},"def":{"name":"live","return_type":"Bool","visibility":"Public","body":"@live"}},{"html_id":"live=(live:Bool)-instance-method","name":"live=","abstract":false,"args":[{"name":"live","external_name":"live","restriction":"Bool"}],"args_string":"(live : Bool)","args_html":"(live : Bool)","location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L114"},"def":{"name":"live=","args":[{"name":"live","external_name":"live","restriction":"Bool"}],"visibility":"Public","body":"@live = live"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L96"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L96"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L123"},"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L123"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"marker:Hash(String,JSON::Any)-instance-method","name":"marker","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L101"},"def":{"name":"marker","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@marker"}},{"html_id":"marker=(marker:Hash(String,JSON::Any))-instance-method","name":"marker=","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"args_string":"(marker : Hash(String, JSON::Any))","args_html":"(marker : Hash(String, JSON::Any))","location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L101"},"def":{"name":"marker=","args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@marker = marker"}},{"html_id":"marker_unique_id:String|Nil-instance-method","name":"marker_unique_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id","return_type":"String | ::Nil","visibility":"Public","body":"@marker_unique_id"}},{"html_id":"marker_unique_id=(marker_unique_id:String|Nil)-instance-method","name":"marker_unique_id=","abstract":false,"args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"args_string":"(marker_unique_id : String | Nil)","args_html":"(marker_unique_id : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id=","args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@marker_unique_id = marker_unique_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L97"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L97"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"sensing_policy_id:Int32-instance-method","name":"sensing_policy_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id","return_type":"Int32","visibility":"Public","body":"@sensing_policy_id"}},{"html_id":"sensing_policy_id=(sensing_policy_id:Int32)-instance-method","name":"sensing_policy_id=","abstract":false,"args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"args_string":"(sensing_policy_id : Int32)","args_html":"(sensing_policy_id : Int32)","location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id=","args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"visibility":"Public","body":"@sensing_policy_id = sensing_policy_id"}},{"html_id":"serial:Int32-instance-method","name":"serial","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L120"},"def":{"name":"serial","return_type":"Int32","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:Int32)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"args_string":"(serial : Int32)","args_html":"(serial : Int32)","location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L120"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"visibility":"Public","body":"@serial = serial"}},{"html_id":"srf:SRF-instance-method","name":"srf","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L98"},"def":{"name":"srf","return_type":"SRF","visibility":"Public","body":"@srf"}},{"html_id":"srf=(srf:SRF)-instance-method","name":"srf=","abstract":false,"args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"args_string":"(srf : SRF)","args_html":"(srf : SRF)","location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L98"},"def":{"name":"srf=","args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"visibility":"Public","body":"@srf = srf"}},{"html_id":"sub_category:Category-instance-method","name":"sub_category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L104"},"def":{"name":"sub_category","return_type":"Category","visibility":"Public","body":"@sub_category"}},{"html_id":"sub_category=(sub_category:Category)-instance-method","name":"sub_category=","abstract":false,"args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"args_string":"(sub_category : Category)","args_html":"(sub_category : Category)","location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L104"},"def":{"name":"sub_category=","args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"visibility":"Public","body":"@sub_category = sub_category"}}]},{"html_id":"drivers/Freespace/SpaceActivity","path":"Freespace/SpaceActivity.html","kind":"class","full_name":"Freespace::SpaceActivity","name":"SpaceActivity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @capacity).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#capacity cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L24"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"capacity?:Int32|Nil-instance-method","name":"capacity?","abstract":false,"def":{"name":"capacity?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L7"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L7"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @location_id).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#location_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L21"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_id?:Int64|Nil-instance-method","name":"location_id?","abstract":false,"def":{"name":"location_id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L27"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"presence?-instance-method","name":"presence?","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L16"},"def":{"name":"presence?","visibility":"Public","body":"@state > 0"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"state:Int32-instance-method","name":"state","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L14"},"def":{"name":"state","return_type":"Int32","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int32)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int32"}],"args_string":"(state : Int32)","args_html":"(state : Int32)","location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L14"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int32"}],"visibility":"Public","body":"@state = state"}},{"html_id":"utc_epoch:Int64-instance-method","name":"utc_epoch","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch","return_type":"Int64","visibility":"Public","body":"@utc_epoch"}},{"html_id":"utc_epoch=(utc_epoch:Int64)-instance-method","name":"utc_epoch=","abstract":false,"args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"args_string":"(utc_epoch : Int64)","args_html":"(utc_epoch : Int64)","location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch=","args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"visibility":"Public","body":"@utc_epoch = utc_epoch"}}]},{"html_id":"drivers/Freespace/SRF","path":"Freespace/SRF.html","kind":"class","full_name":"Freespace::SRF","name":"SRF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Int32-instance-method","name":"x","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L50"},"def":{"name":"x","return_type":"Int32","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Int32)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"}],"args_string":"(x : Int32)","args_html":"(x : Int32)","location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L50"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Int32"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Int32-instance-method","name":"y","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L51"},"def":{"name":"y","return_type":"Int32","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Int32)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(y : Int32)","args_html":"(y : Int32)","location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L51"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"@y = y"}},{"html_id":"z:Int32-instance-method","name":"z","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L52"},"def":{"name":"z","return_type":"Int32","visibility":"Public","body":"@z"}},{"html_id":"z=(z:Int32)-instance-method","name":"z=","abstract":false,"args":[{"name":"z","external_name":"z","restriction":"Int32"}],"args_string":"(z : Int32)","args_html":"(z : Int32)","location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/freespace/models.cr#L52"},"def":{"name":"z=","args":[{"name":"z","external_name":"z","restriction":"Int32"}],"visibility":"Public","body":"@z = z"}}]}]},{"html_id":"drivers/Gallagher","path":"Gallagher.html","kind":"module","full_name":"Gallagher","name":"Gallagher","abstract":false,"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Gallagher/AccessGroup","path":"Gallagher/AccessGroup.html","kind":"class","full_name":"Gallagher::AccessGroup","name":"AccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L185"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L186"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholders:NamedTuple(href:String)-instance-method","name":"cardholders","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@cardholders"}},{"html_id":"cardholders=(cardholders:NamedTuple(href:String))-instance-method","name":"cardholders=","abstract":false,"args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"args_string":"(cardholders : NamedTuple(href: String))","args_html":"(cardholders : NamedTuple(href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders=","args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"visibility":"Public","body":"@cardholders = cardholders"}},{"html_id":"children:Array(NamedTuple(href:String,name:String))|Nil-instance-method","name":"children","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children","return_type":"Array(NamedTuple(href: String, name: String)) | ::Nil","visibility":"Public","body":"@children"}},{"html_id":"children=(children:Array(NamedTuple(href:String,name:String))|Nil)-instance-method","name":"children=","abstract":false,"args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"args_string":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","args_html":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children=","args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"visibility":"Public","body":"@children = children"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(id:String,href:String)-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division","return_type":"NamedTuple(id: String, href: String)","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(id:String,href:String))-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"args_string":"(division : NamedTuple(id: String, href: String))","args_html":"(division : NamedTuple(id: String, href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"visibility":"Public","body":"@division = division"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent:NamedTuple(href:String|Nil,name:String)|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent","return_type":"NamedTuple(href: String | ::Nil, name: String) | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:NamedTuple(href:String|Nil,name:String)|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"args_string":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","args_html":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"visibility":"Public","body":"@parent = parent"}}]},{"html_id":"drivers/Gallagher/AccessGroupMembership","path":"Gallagher/AccessGroupMembership.html","kind":"class","full_name":"Gallagher::AccessGroupMembership","name":"AccessGroupMembership","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L213"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L214"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholder:NamedTuple(href:String,name:String)-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder","return_type":"NamedTuple(href: String, name: String)","visibility":"Public","body":"@cardholder"}},{"html_id":"cardholder=(cardholder:NamedTuple(href:String,name:String))-instance-method","name":"cardholder=","abstract":false,"args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"args_string":"(cardholder : NamedTuple(href: String, name: String))","args_html":"(cardholder : NamedTuple(href: String, name: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder=","args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"visibility":"Public","body":"@cardholder = cardholder"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Card","path":"Gallagher/Card.html","kind":"struct","full_name":"Gallagher::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(href:Nil|String,status:NamedTuple(value:String,type:Nil|String)|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"args_string":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","args_html":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L133"},"def":{"name":"new","args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(href, status)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ble_facility_id:Int64|Nil-instance-method","name":"ble_facility_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ble_facility_id"}},{"html_id":"ble_facility_id=(ble_facility_id:Int64|Nil)-instance-method","name":"ble_facility_id=","abstract":false,"args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"args_string":"(ble_facility_id : Int64 | Nil)","args_html":"(ble_facility_id : Int64 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id=","args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ble_facility_id = ble_facility_id"}},{"html_id":"card_serial_number:String|Nil-instance-method","name":"card_serial_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"card_serial_number=(card_serial_number:String|Nil)-instance-method","name":"card_serial_number=","abstract":false,"args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"args_string":"(card_serial_number : String | Nil)","args_html":"(card_serial_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number=","args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@card_serial_number = card_serial_number"}},{"html_id":"credential_class:String|Nil-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class","return_type":"String | ::Nil","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String|Nil)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"args_string":"(credential_class : String | Nil)","args_html":"(credential_class : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"credential_id:String|Nil-instance-method","name":"credential_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id","return_type":"String | ::Nil","visibility":"Public","body":"@credential_id"}},{"html_id":"credential_id=(credential_id:String|Nil)-instance-method","name":"credential_id=","abstract":false,"args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"args_string":"(credential_id : String | Nil)","args_html":"(credential_id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id=","args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_id = credential_id"}},{"html_id":"e2e_key:String|Nil-instance-method","name":"e2e_key","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key","return_type":"String | ::Nil","visibility":"Public","body":"@e2e_key"}},{"html_id":"e2e_key=(e2e_key:String|Nil)-instance-method","name":"e2e_key=","abstract":false,"args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"args_string":"(e2e_key : String | Nil)","args_html":"(e2e_key : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key=","args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@e2e_key = e2e_key"}},{"html_id":"facility_code:String|Nil-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code","return_type":"String | ::Nil","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String|Nil)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"args_string":"(facility_code : String | Nil)","args_html":"(facility_code : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"invitation:Invitation|Nil-instance-method","name":"invitation","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation","return_type":"Invitation | ::Nil","visibility":"Public","body":"@invitation"}},{"html_id":"invitation=(invitation:Invitation|Nil)-instance-method","name":"invitation=","abstract":false,"args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"args_string":"(invitation : Invitation | Nil)","args_html":"(invitation : Invitation | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation=","args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"visibility":"Public","body":"@invitation = invitation"}},{"html_id":"issue_level:Int32|Nil-instance-method","name":"issue_level","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_level"}},{"html_id":"issue_level=(issue_level:Int32|Nil)-instance-method","name":"issue_level=","abstract":false,"args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"args_string":"(issue_level : Int32 | Nil)","args_html":"(issue_level : Int32 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level=","args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@issue_level = issue_level"}},{"html_id":"number:String|Nil-instance-method","name":"number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number","return_type":"String | ::Nil","visibility":"Public","body":"@number"}},{"html_id":"number=(number:String|Nil)-instance-method","name":"number=","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(number : String | Nil)","args_html":"(number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number=","args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@number = number"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:NamedTuple(href:String|Nil,name:String|Nil)|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:NamedTuple(href:String|Nil,name:String|Nil)|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"args_string":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","args_html":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Cardholder","path":"Gallagher/Cardholder.html","kind":"class","full_name":"Gallagher::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(first_name:Nil|String,last_name:Nil|String,short_name:Nil|String,description:Nil|String,authorised:Bool|Nil,cards:Array(Gallagher::Card)|Hash(String,Array(Gallagher::Card))|Nil,access_groups:Array(Gallagher::CardholderAccessGroup)|Hash(String,Array(Gallagher::CardholderAccessGroup))|Nil,division:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"args_string":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","args_html":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(first_name, last_name, short_name, description, authorised, cards, access_groups, division)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil-instance-method","name":"access_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups","return_type":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil","visibility":"Public","body":"@access_groups"}},{"html_id":"access_groups=(access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil)-instance-method","name":"access_groups=","abstract":false,"args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"args_string":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","args_html":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups=","args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"visibility":"Public","body":"@access_groups = access_groups"}},{"html_id":"authorised:Bool|Nil-instance-method","name":"authorised","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised","return_type":"Bool | ::Nil","visibility":"Public","body":"@authorised"}},{"html_id":"authorised=(authorised:Bool|Nil)-instance-method","name":"authorised=","abstract":false,"args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"args_string":"(authorised : Bool | Nil)","args_html":"(authorised : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised=","args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@authorised = authorised"}},{"html_id":"cards:Array(Card)|Hash(String,Array(Card))|Nil-instance-method","name":"cards","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards","return_type":"Array(Card) | Hash(String, Array(Card)) | ::Nil","visibility":"Public","body":"@cards"}},{"html_id":"cards=(cards:Array(Card)|Hash(String,Array(Card))|Nil)-instance-method","name":"cards=","abstract":false,"args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"args_string":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","args_html":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards=","args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"visibility":"Public","body":"@cards = cards"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(href:String)|Nil-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(href:String)|Nil)-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(division : NamedTuple(href: String) | Nil)","args_html":"(division : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@division = division"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_accessed:Time|Nil-instance-method","name":"last_accessed","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed","return_type":"Time | ::Nil","visibility":"Public","body":"@last_accessed"}},{"html_id":"last_accessed=(last_accessed:Time|Nil)-instance-method","name":"last_accessed=","abstract":false,"args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"args_string":"(last_accessed : Time | Nil)","args_html":"(last_accessed : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed=","args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@last_accessed = last_accessed"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"usercode:String|Nil-instance-method","name":"usercode","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode","return_type":"String | ::Nil","visibility":"Public","body":"@usercode"}},{"html_id":"usercode=(usercode:String|Nil)-instance-method","name":"usercode=","abstract":false,"args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"args_string":"(usercode : String | Nil)","args_html":"(usercode : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode=","args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usercode = usercode"}}]},{"html_id":"drivers/Gallagher/CardholderAccessGroup","path":"Gallagher/CardholderAccessGroup.html","kind":"class","full_name":"Gallagher::CardholderAccessGroup","name":"CardholderAccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(access_group:NamedTuple(href:Nil|String,name:Nil|String),from:Time|Nil=nil,until__arg0:Time|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"args_string":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","args_html":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L181"},"def":{"name":"new","args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_group, from, __arg0)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"access_group:NamedTuple(href:String|Nil,name:String|Nil)-instance-method","name":"access_group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil)","visibility":"Public","body":"@access_group"}},{"html_id":"access_group=(access_group:NamedTuple(href:String|Nil,name:String|Nil))-instance-method","name":"access_group=","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"args_string":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","args_html":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group=","args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"visibility":"Public","body":"@access_group = access_group"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/CardType","path":"Gallagher/CardType.html","kind":"class","full_name":"Gallagher::CardType","name":"CardType","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_card_states:Array(String)-instance-method","name":"available_card_states","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states","return_type":"Array(String)","visibility":"Public","body":"@available_card_states"}},{"html_id":"available_card_states=(available_card_states:Array(String))-instance-method","name":"available_card_states=","abstract":false,"args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"args_string":"(available_card_states : Array(String))","args_html":"(available_card_states : Array(String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states=","args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"visibility":"Public","body":"@available_card_states = available_card_states"}},{"html_id":"credential_class:String-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class","return_type":"String","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"args_string":"(credential_class : String)","args_html":"(credential_class : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"facility_code:String-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code","return_type":"String","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"args_string":"(facility_code : String)","args_html":"(facility_code : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"maximum_number:String|Nil-instance-method","name":"maximum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number","return_type":"String | ::Nil","visibility":"Public","body":"@maximum_number"}},{"html_id":"maximum_number=(maximum_number:String|Nil)-instance-method","name":"maximum_number=","abstract":false,"args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"args_string":"(maximum_number : String | Nil)","args_html":"(maximum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number=","args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@maximum_number = maximum_number"}},{"html_id":"minimum_number:String|Nil-instance-method","name":"minimum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number","return_type":"String | ::Nil","visibility":"Public","body":"@minimum_number"}},{"html_id":"minimum_number=(minimum_number:String|Nil)-instance-method","name":"minimum_number=","abstract":false,"args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"args_string":"(minimum_number : String | Nil)","args_html":"(minimum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number=","args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@minimum_number = minimum_number"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/DoorDetails","path":"Gallagher/DoorDetails.html","kind":"class","full_name":"Gallagher::DoorDetails","name":"DoorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L38"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L36"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/Event","path":"Gallagher/Event.html","kind":"struct","full_name":"Gallagher::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L232"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L233"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card:Card|Nil-instance-method","name":"card","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L243"},"def":{"name":"card","return_type":"Card | ::Nil","visibility":"Public","body":"@card"}},{"html_id":"cardholder:IdName|Nil-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L244"},"def":{"name":"cardholder","return_type":"IdName | ::Nil","visibility":"Public","body":"@cardholder"}},{"html_id":"group:IdName-instance-method","name":"group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L235"},"def":{"name":"group","return_type":"IdName","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L239"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"matching_type?(types:Array(Int32)|Nil)-instance-method","name":"matching_type?","abstract":false,"args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"args_string":"(types : Array(Int32) | Nil)","args_html":"(types : Array(Int32) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L246"},"def":{"name":"matching_type?","args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"visibility":"Public","body":"if types\nelse\n return true\nend\ntypes.map(&.to_s).includes?(type.id)\n"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L241"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"source:IdName-instance-method","name":"source","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L237"},"def":{"name":"source","return_type":"IdName","visibility":"Public","body":"@source"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L240"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:IdName-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L236"},"def":{"name":"type","return_type":"IdName","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Gallagher/Events","path":"Gallagher/Events.html","kind":"struct","full_name":"Gallagher::Events","name":"Events","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L252"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L253"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(Event)-instance-method","name":"events","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L255"},"def":{"name":"events","return_type":"Array(Event)","visibility":"Public","body":"@events"}},{"html_id":"update_url-instance-method","name":"update_url","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L258"},"def":{"name":"update_url","visibility":"Public","body":"updates[:href]"}},{"html_id":"updates:NamedTuple(href:String)-instance-method","name":"updates","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L256"},"def":{"name":"updates","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@updates"}}]},{"html_id":"drivers/Gallagher/IdName","path":"Gallagher/IdName.html","kind":"struct","full_name":"Gallagher::IdName","name":"IdName","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L226"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L229"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Gallagher/Invitation","path":"Gallagher/Invitation.html","kind":"class","full_name":"Gallagher::Invitation","name":"Invitation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"mobile=(mobile:String|Nil)-instance-method","name":"mobile=","abstract":false,"args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"args_string":"(mobile : String | Nil)","args_html":"(mobile : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile=","args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mobile = mobile"}},{"html_id":"single_factor_only:Bool|Nil-instance-method","name":"single_factor_only","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@single_factor_only"}},{"html_id":"single_factor_only=(single_factor_only:Bool|Nil)-instance-method","name":"single_factor_only=","abstract":false,"args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"args_string":"(single_factor_only : Bool | Nil)","args_html":"(single_factor_only : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only=","args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@single_factor_only = single_factor_only"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"args_string":"(status : String | Nil)","args_html":"(status : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/Gallagher/PDF","path":"Gallagher/PDF.html","kind":"class","full_name":"Gallagher::PDF","name":"PDF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"doc":"Personal Data Field","summary":"

Personal Data Field

","constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L16"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default:String|Nil-instance-method","name":"default","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default","return_type":"String | ::Nil","visibility":"Public","body":"@default"}},{"html_id":"default=(default:String|Nil)-instance-method","name":"default=","abstract":false,"args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"args_string":"(default : String | Nil)","args_html":"(default : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default=","args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default = default"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"required:Bool|Nil-instance-method","name":"required","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required","return_type":"Bool | ::Nil","visibility":"Public","body":"@required"}},{"html_id":"required=(required:Bool|Nil)-instance-method","name":"required=","abstract":false,"args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"args_string":"(required : Bool | Nil)","args_html":"(required : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required=","args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@required = required"}},{"html_id":"server_display_name:String|Nil-instance-method","name":"server_display_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name","return_type":"String | ::Nil","visibility":"Public","body":"@server_display_name"}},{"html_id":"server_display_name=(server_display_name:String|Nil)-instance-method","name":"server_display_name=","abstract":false,"args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"args_string":"(server_display_name : String | Nil)","args_html":"(server_display_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name=","args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@server_display_name = server_display_name"}},{"html_id":"unique:Bool|Nil-instance-method","name":"unique","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique","return_type":"Bool | ::Nil","visibility":"Public","body":"@unique"}},{"html_id":"unique=(unique:Bool|Nil)-instance-method","name":"unique=","abstract":false,"args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"args_string":"(unique : Bool | Nil)","args_html":"(unique : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique=","args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@unique = unique"}}]},{"html_id":"drivers/Gallagher/RestAPI","path":"Gallagher/RestAPI.html","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"access_group_member?(group_id:String|Int32,cardholder_id:String|Int32):String|Nil-instance-method","name":"access_group_member?","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L402"},"def":{"name":"access_group_member?","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"String | ::Nil","visibility":"Public","body":"group_id = group_id.to_s\ndetails = (get_cardholder(cardholder_id)).access_groups\naccess_groups = case details\nin Array(CardholderAccessGroup)\n details\nin Hash(String, Array(CardholderAccessGroup))\n details.values.flatten\nin Nil\n return nil\nend\naccess = access_groups.find do |group|\n if href = group.access_group[:href]\n href.ends_with?(group_id)\n end\nend\naccess.try(&.href)\n"}},{"html_id":"access_groups_endpoint:String-instance-method","name":"access_groups_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L123"},"def":{"name":"access_groups_endpoint","return_type":"String","visibility":"Public","body":"@access_groups_endpoint"}},{"html_id":"access_zones_endpoint:String-instance-method","name":"access_zones_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L124"},"def":{"name":"access_zones_endpoint","return_type":"String","visibility":"Public","body":"@access_zones_endpoint"}},{"html_id":"add_access_group_member(group_id:String|Int32,cardholder_id:String|Int32,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"add_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L433"},"def":{"name":"add_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"if from_unix\n from_time = Time.unix(from_unix)\nend\nif until_unix\n until_time = Time.unix(until_unix)\nend\ngroup = CardholderAccessGroup.new({href: \"#{@uri_base}#{@access_groups_endpoint}/#{group_id}\".as(String | ::Nil), name: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, access_groups: [group])\n"}},{"html_id":"card_holder_id_lookup(email:String):String|Int64|Nil-instance-method","name":"card_holder_id_lookup","doc":"using an email address, lookup the security system id for a user","summary":"

using an email address, lookup the security system id for a user

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L653"},"def":{"name":"card_holder_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(query_cardholders(email, @unique_pdf_name)).first?.try(&.id)"}},{"html_id":"card_holder_lookup(id:String|Int64):CardHolderDetails-instance-method","name":"card_holder_lookup","doc":"given a card holder id, lookup the details of the card holder","summary":"

given a card holder id, lookup the details of the card holder

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : CardHolderDetails","args_html":"(id : String | Int64) : CardHolderDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L658"},"def":{"name":"card_holder_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"CardHolderDetails","visibility":"Public","body":"details = get_cardholder(id.to_s)\nfirst_name = details.first_name\nlast_name = details.last_name\nshort_name = details.short_name\nname = if first_name.presence\n \"#{first_name} #{last_name}\"\nelse\n short_name || \"\"\nend\nemail_key = \"@#{@unique_pdf_name}\"\nCardHolder.new(id, name, details.json_unmapped[email_key]?.try(&.as_s))\n"}},{"html_id":"card_types_endpoint:String-instance-method","name":"card_types_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L127"},"def":{"name":"card_types_endpoint","return_type":"String","visibility":"Public","body":"@card_types_endpoint"}},{"html_id":"cardholder_exists?(filter:String)-instance-method","name":"cardholder_exists?","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L366"},"def":{"name":"cardholder_exists?","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"!(query_cardholders(filter)).empty?"}},{"html_id":"cardholders_endpoint:String-instance-method","name":"cardholders_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L125"},"def":{"name":"cardholders_endpoint","return_type":"String","visibility":"Public","body":"@cardholders_endpoint"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L118"},"def":{"name":"connected","visibility":"Public","body":"query_endpoints"}},{"html_id":"create_cardholder(first_name:String,last_name:String,description:String=\"acardholder\",authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"create_cardholder","doc":"#\nCreate a new cardholder.\n@param first_name [String] The first name of the new cardholder. Either this or last name is required (but we should assume both are for most instances).\n@param last_name [String] The last name of the new cardholder. Either this or first name is required (but we should assume both are for most instances).\n@option options [String] :division The division to add the cardholder to. This is required when making the request to create the cardholder but if none is passed the `default_division` is used.\n@option options [Hash] :pdfs A hash containing all PDFs to add to the user in the form `{ some_pdf_name: some_pdf_value, another_pdf_name: another_pdf_value }`.\n@option options [Array] :cards An array of cards to be added to this cardholder which can include both virtual and physical cards.\n@option options [Array] :access_groups An array of access groups to add this cardholder to. These may include `from` and `until` fields to dictate temporary access.\n@option options [Array] :competencies An array of competencies to add this cardholder to.\n@return [Hash] The cardholder that was created.","summary":"

\n \n \nCreate a new cardholder.

","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(first_name : String, last_name : String, description : String = \"a cardholder\", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(first_name : String, last_name : String, description : String = "a cardholder", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L278"},"def":{"name":"create_cardholder","args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"short_name || (short_name = \"#{first_name} #{last_name}\")\nshort_name = short_name[0..15]\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, cards, access_groups, division_href || @default_division.not_nil!)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = post(@cardholders_endpoint, headers: @headers, body: payload)\nCardholder.from_json(process(response))\n"}},{"html_id":"delete_card(href:String)-instance-method","name":"delete_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L361"},"def":{"name":"delete_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = delete(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"failed to delete card #{href}\")\nend\n"}},{"html_id":"delete_href(href:String)-instance-method","name":"delete_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L527"},"def":{"name":"delete_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"delete_card(href)"}},{"html_id":"disable_card(href:String)-instance-method","name":"disable_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L354"},"def":{"name":"disable_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"uri = get_path(href)\ncardholder_id = (uri.split('/'))[-3]\ncard = Card.new(uri, {value: @disabled_card_value, type: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, update_cards: [card])\n"}},{"html_id":"divisions_endpoint:String-instance-method","name":"divisions_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L126"},"def":{"name":"divisions_endpoint","return_type":"String","visibility":"Public","body":"@divisions_endpoint"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":567,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L567"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"doors.map do |d|\n Door.new(d.id, d.name)\nend"}},{"html_id":"doors-instance-method","name":"doors","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":557,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L557"},"def":{"name":"doors","visibility":"Public","body":"response = get(@doors_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\n(NamedTuple(results: Array(DoorDetails)).from_json(response.body))[:results]\n"}},{"html_id":"doors_endpoint:String-instance-method","name":"doors_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L130"},"def":{"name":"doors_endpoint","return_type":"String","visibility":"Public","body":"@doors_endpoint"}},{"html_id":"events_endpoint:String-instance-method","name":"events_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L128"},"def":{"name":"events_endpoint","return_type":"String","visibility":"Public","body":"@events_endpoint"}},{"html_id":"free_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"free_zone","doc":"forces a zone to be free, that is doors are unlocked","summary":"

forces a zone to be free, that is doors are unlocked

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L464"},"def":{"name":"free_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/free\", headers: @headers)\nresponse.success?\n"}},{"html_id":"get_access_group(id:String)-instance-method","name":"get_access_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L377"},"def":{"name":"get_access_group","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"access group request failed with #{response.status_code}\\n#{response.body}\")\nend\nAccessGroup.from_json(response.body)\n"}},{"html_id":"get_access_group_members(id:String)-instance-method","name":"get_access_group_members","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L391"},"def":{"name":"get_access_group_members","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}/cardholders\", headers: @headers)\nif response.success?\nelse\n raise(\"access group members request failed with #{response.status_code}\\n#{response.body}\")\nend\njson = response.body\nbegin\n NamedTuple(cardholders: Array(NamedTuple(href: String | ::Nil, cardholder: NamedTuple(name: String, href: String | ::Nil)))).from_json(json)\nrescue error\n logger.warn(exception: error) do\n \"#get_access_group_members failed to parse:\\n#{json}\"\n end\nend\n"}},{"html_id":"get_access_groups(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_access_groups","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L383"},"def":{"name":"get_access_groups","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_groups_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"access groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(AccessGroup, response.body)\n"}},{"html_id":"get_base64_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_base64_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L230"},"def":{"name":"get_base64_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nBase64.strict_encode(response.body)\n"}},{"html_id":"get_card_type(id:String|Int32|Nil=nil)-instance-method","name":"get_card_type","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"args_string":"(id : String | Int32 | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L261"},"def":{"name":"get_card_type","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"visibility":"Public","body":"card = (id || @default_card_type) || (raise(\"no default card type provided\"))\nresponse = get(\"#{@card_types_endpoint}/#{card}\", headers: @headers)\nif response.success?\nelse\n raise(\"card type request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardType.from_json(response.body)\n"}},{"html_id":"get_cardholder(id:String|Int32)-instance-method","name":"get_cardholder","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"args_string":"(id : String | Int32)","args_html":"(id : String | Int32)","location":{"filename":"src/gallagher/rest_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L237"},"def":{"name":"get_cardholder","args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardholder.from_json(response.body)\n"}},{"html_id":"get_division(id:String)-instance-method","name":"get_division","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":440,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L440"},"def":{"name":"get_division","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@divisions_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"division request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_divisions(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_divisions","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":446,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L446"},"def":{"name":"get_divisions","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@divisions_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"divisions request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"get_event_groups-instance-method","name":"get_event_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L490"},"def":{"name":"get_event_groups","visibility":"Public","body":"response = get(\"#{@events_endpoint}/groups\", headers: @headers)\nif response.success?\nelse\n raise(\"event groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_events-instance-method","name":"get_events","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":484,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L484"},"def":{"name":"get_events","visibility":"Public","body":"response = get(@events_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"events request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_href(href:String)-instance-method","name":"get_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":521,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L521"},"def":{"name":"get_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = get(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"generic request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L224"},"def":{"name":"get_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_pdfs(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_pdfs","doc":"#\nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.\nThey will usually be for things like email address, employee ID or some other field specific to whoever is hosting the Gallagher instance.\nAllows retrieval of the PDFs used in the Gallagher instance, primarily so we can get the PDF's ID and use that to filter cardholders based on that PDF.\n\n@param name [String] The name of the PDF which we want to retrieve. This will only return one result (as the PDF names are unique).\n@return [Hash] A list of PDF results and a next link for pagination (we will generally have less than 100 PDFs so 'next' link will mostly be unused):\n@example An example response:\n {\n \"results\": [\n {\n \"name\": \"email\",\n \"id\": \"5516\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/5516\"\n },\n {\n \"name\": \"cellphone\",\n \"id\": \"9998\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/9998\",\n \"serverDisplayName\": \"Site B\"\n }\n ],\n \"next\": {\n \"href\": \"https://localhost:8904/api/personal_data_fields?pos=900&sort=id\"\n }\n }","summary":"

\n \n \nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.

","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L216"},"def":{"name":"get_pdfs","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@pdfs_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(PDF, response.body)\n"}},{"html_id":"get_zones(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L454"},"def":{"name":"get_zones","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_zones_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"zones request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L69"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nspawn do\n event_monitor\nend\nschedule.every(1.minutes) do\n query_endpoints\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L79"},"def":{"name":"on_unload","visibility":"Public","body":"@poll_events = false"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L91"},"def":{"name":"on_update","visibility":"Public","body":"uri = URI.parse(config.uri.not_nil!)\n@uri_base || (@uri_base = \"#{uri.scheme}://#{uri.host}\")\napi_key = setting(String, :api_key)\n@api_key = \"GGL-API-KEY #{api_key}\"\n@door_event_channel = (setting?(String, :door_event_channel)) || \"event\"\nnew_map = {} of String => EventMap\n((setting?(Array(EventMap), :event_mappings)) || ([] of EventMap)).each do |event|\n new_map[event.group.to_s] = event\nend\n@event_map = new_map\n@unique_pdf_name = setting(String, :unique_pdf_name)\n@default_division = setting?(String, :default_division_href)\n@default_facility_code = setting?(String, :default_facility_code)\n@default_card_type = setting?(String, :default_card_type_href)\n@default_access_group = setting?(String, :default_access_group_href)\n@disabled_card_value = (setting(::Union(String, ::Nil), :disabled_card_value)) || \"Disabled (manually)\"\n@headers = {\"Authorization\" => @api_key, \"Content-Type\" => \"application/json\"}\n"}},{"html_id":"pdfs_endpoint:String-instance-method","name":"pdfs_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L129"},"def":{"name":"pdfs_endpoint","return_type":"String","visibility":"Public","body":"@pdfs_endpoint"}},{"html_id":"query_card_types-instance-method","name":"query_card_types","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L255"},"def":{"name":"query_card_types","visibility":"Public","body":"response = get(@card_types_endpoint, {\"top\" => \"10000\"}, headers: @headers)\nif response.success?\nelse\n raise(\"card types request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(CardType, response.body)\n"}},{"html_id":"query_cardholders(filter:String,pdf_name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"query_cardholders","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","args_html":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L243"},"def":{"name":"query_cardholders","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"pdf_id = \"pdf_\" + (pdf_name ? (get_pdfs(pdf_name)).first.id : @fixed_pdf_id).not_nil!\nquery = {pdf_id => exact_match ? \"\\\"#{filter}\\\"\" : filter, \"top\" => \"10000\"}\nresponse = get(@cardholders_endpoint, query, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder query request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(Cardholder, response.body)\n"}},{"html_id":"query_endpoints-instance-method","name":"query_endpoints","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L138"},"def":{"name":"query_endpoints","visibility":"Public","body":"response = get(\"/api\", headers: @headers)\nif response.success?\nelse\n raise(\"endpoints request failed with #{response.status_code}\\n#{response.body}\")\nend\npayload = JSON.parse(response.body)\nlogger.debug do\n \"endpoints query returned:\\n#{payload.inspect}\"\nend\napi_version = SemanticVersion.parse((payload[\"version\"].as_s.split('.'))[0..2].join('.'))\nraw_uri = payload[\"features\"][\"cardholders\"][\"cardholders\"][\"href\"].as_s\nuri = URI.parse(raw_uri)\n@uri_base = \"#{uri.scheme}://#{uri.host}\"\n@cardholders_endpoint = get_path(raw_uri)\n@divisions_endpoint = @cardholders_endpoint.sub(\"cardholders\", \"divisions\")\n@access_groups_endpoint = get_path(payload[\"features\"][\"accessGroups\"][\"accessGroups\"][\"href\"].as_s)\n@access_zones_endpoint = get_path(payload[\"features\"][\"accessZones\"][\"accessZones\"][\"href\"].as_s)\n@events_endpoint = get_path(payload[\"features\"][\"events\"][\"events\"][\"href\"].as_s)\nbegin\n @doors_endpoint = get_path(payload[\"features\"][\"doors\"][\"doors\"][\"href\"].as_s)\nrescue error\n logger.debug(exception: error) do\n \"error locating doors feature URI\"\n end\nend\nif api_version >= (SemanticVersion.parse(\"8.10.0\"))\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"assign\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"personalDataFields\"][\"personalDataFields\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name}, @headers)\nelse\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"cardTypes\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"items\"][\"items\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name, \"type\" => \"33\"}, @headers)\nend\nif response.success?\n logger.debug do\n \"PDFS request returned:\\n#{response.body}\"\n end\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nresults = (JSON.parse(response.body))[\"results\"].as_a\nif results.empty?\nelse\n @fixed_pdf_id = results.first[\"id\"].as_s\nend\n"}},{"html_id":"remove_access_group_member(group_id:String|Int32,cardholder_id:String|Int32):Bool-instance-method","name":"remove_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","location":{"filename":"src/gallagher/rest_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L423"},"def":{"name":"remove_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"Bool","visibility":"Public","body":"if href = access_group_member?(group_id, cardholder_id)\n response = delete(get_path(href), headers: @headers)\n if response.success?\n else\n raise(\"remove access group member request failed with #{response.status_code}\\n#{response.body}\")\n end\n true\nelse\n false\nend"}},{"html_id":"remove_cardholder_access(id:String|Nil=nil,href:String|Nil=nil)-instance-method","name":"remove_cardholder_access","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil = nil, href : String | Nil = nil)","args_html":"(id : String | Nil = nil, href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L370"},"def":{"name":"remove_cardholder_access","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"update_cardholder(id, href, authorised: false)"}},{"html_id":"reset_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"reset_zone","doc":"returns the zone to it's default scheduled state, removing any overrides","summary":"

returns the zone to it's default scheduled state, removing any overrides

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L478"},"def":{"name":"reset_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/cancel\", headers: @headers)\nresponse.success?\n"}},{"html_id":"secure_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"secure_zone","doc":"forces a zone to be secure and require a swipe card to access","summary":"

forces a zone to be secure and require a swipe card to access

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L471"},"def":{"name":"secure_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/secure\", headers: @headers)\nresponse.success?\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":572,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L572"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@doors_endpoint}/#{door_id}/open\", headers: @headers)\nresponse.success?\n"}},{"html_id":"update_cardholder(id:String|Int32|Nil=nil,href:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,remove_cards:Array(Card)|Nil=nil,update_cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,remove_access_groups:Array(CardholderAccessGroup)|Nil=nil,update_access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"update_cardholder","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L305"},"def":{"name":"update_cardholder","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"url = href ? get_path(href) : \"#{@cardholders_endpoint}/#{id.not_nil!}\"\nif (cards || remove_cards) || update_cards\n card_updates = {} of String => Array(Card)\n if cards\n card_updates[\"add\"] = cards\n end\n if update_cards\n card_updates[\"update\"] = update_cards\n end\n if remove_cards\n card_updates[\"remove\"] = remove_cards.map do |card|\n Card.new(card.href, nil)\n end\n end\nend\nif (access_groups || remove_access_groups) || update_access_groups\n groups_update = {} of String => Array(CardholderAccessGroup)\n if access_groups\n groups_update[\"add\"] = access_groups\n end\n if update_access_groups\n groups_update[\"update\"] = update_access_groups\n end\n if remove_access_groups\n groups_update[\"remove\"] = remove_access_groups\n end\nend\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, card_updates, groups_update, division_href)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = patch(url, headers: @headers, body: payload)\nresult = process(response)\nresult.presence && (Cardholder.from_json(result))\n"}},{"html_id":"uri_base:String-instance-method","name":"uri_base","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base","return_type":"String","visibility":"Public","body":"if (__temp_1 = @uri_base).nil?\n ::raise(::NilAssertionError.new(\"Gallagher::RestAPI#uri_base cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"uri_base?:String|Nil-instance-method","name":"uri_base?","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base?","return_type":"String | ::Nil","visibility":"Public","body":"@uri_base"}},{"html_id":"zone_access_add_member(zone_id:String|Int64,card_holder_id:String|Int64,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"zone_access_add_member","doc":"add a member to the zone","summary":"

add a member to the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":692,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L692"},"def":{"name":"zone_access_add_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"add_access_group_member(zone_id.to_s, card_holder_id.to_s, from_unix, until_unix)"}},{"html_id":"zone_access_id_lookup(name:String,exact_match:Bool=true):String|Int64|Nil-instance-method","name":"zone_access_id_lookup","doc":"using a name, lookup the access zone id","summary":"

using a name, lookup the access zone id

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","args_html":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L674"},"def":{"name":"zone_access_id_lookup","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(get_access_groups(name, exact_match)).first?.try(&.id)"}},{"html_id":"zone_access_lookup(id:String|Int64):ZoneDetails-instance-method","name":"zone_access_lookup","doc":"given an access zone id, lookup the details of the zone","summary":"

given an access zone id, lookup the details of the zone

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : ZoneDetails","args_html":"(id : String | Int64) : ZoneDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":679,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L679"},"def":{"name":"zone_access_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"ZoneDetails","visibility":"Public","body":"details = get_access_group(id.to_s)\nZoneInfo.new(id, details.name, details.description)\n"}},{"html_id":"zone_access_member?(zone_id:String|Int64,card_holder_id:String|Int64):String|Int64|Nil-instance-method","name":"zone_access_member?","doc":"return the id that represents the access permission (truthy indicates access)","summary":"

return the id that represents the access permission (truthy indicates access)

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L686"},"def":{"name":"zone_access_member?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"access_group_member?(zone_id.to_s, card_holder_id.to_s)"}},{"html_id":"zone_access_remove_member(zone_id:String|Int64,card_holder_id:String|Int64)-instance-method","name":"zone_access_remove_member","doc":"remove a member from the zone","summary":"

remove a member from the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":698,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L698"},"def":{"name":"zone_access_remove_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"visibility":"Public","body":"remove_access_group_member(zone_id.to_s, card_holder_id.to_s)"}}],"macros":[{"html_id":"get_results(klass,response)-macro","name":"get_results","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"args_string":"(klass, response)","args_html":"(klass, response)","location":{"filename":"src/gallagher/rest_api.cr","line_number":496,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L496"},"def":{"name":"get_results","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%body\n = \n{{ response }}\n\n begin\n \n%results\n = Results(\n{{ klass }}\n).from_json \n%body\n\n \n%result_array\n = \n%results\n.results\n loop do\n \n%next_uri\n = \n%results\n.next_uri\n break unless \n%next_uri\n\n \n%body\n = get_raw(\n%next_uri\n[:href])\n \n%results\n = Results(\n{{ klass }}\n).from_json(\n%body\n)\n \n%result_array\n.concat \n%results\n.results\n \nend\n \n%result_array\n\n rescue \nerror\n logger.debug \n{ \"failed to parse response body:\\n#{\n%body\n}\\n\" }\n raise \nerror\n \nend\n \n"}}],"types":[{"html_id":"drivers/Gallagher/RestAPI/BadRequest","path":"Gallagher/RestAPI/BadRequest.html","kind":"class","full_name":"Gallagher::RestAPI::BadRequest","name":"BadRequest","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":555,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L555"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/CardHolder","path":"Gallagher/RestAPI/CardHolder.html","kind":"struct","full_name":"Gallagher::RestAPI::CardHolder","name":"CardHolder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L641"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,email)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"args_string":"(id, name, email)","args_html":"(id, name, email)","location":{"filename":"src/gallagher/rest_api.cr","line_number":642,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L642"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L641"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/Gallagher/RestAPI/CardHolderDetails","path":"Gallagher/RestAPI/CardHolderDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::CardHolderDetails","name":"CardHolderDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L638"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/Conflict","path":"Gallagher/RestAPI/Conflict.html","kind":"class","full_name":"Gallagher::RestAPI::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L551"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/EventMap","path":"Gallagher/RestAPI/EventMap.html","kind":"struct","full_name":"Gallagher::RestAPI::EventMap","name":"EventMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(group:Int32,types:Array(Int32)|Nil,action:Action)-class-method","name":"new","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"args_string":"(group : Int32, types : Array(Int32) | Nil, action : Action)","args_html":"(group : Int32, types : Array(Int32) | Nil, action : Action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"new","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"visibility":"Public","body":"_ = allocate\n_.initialize(group, types, action)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Action-instance-method","name":"action","abstract":false,"def":{"name":"action","return_type":"Action","visibility":"Public","body":"@action"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@group.clone, @types.clone, @action.clone)"}},{"html_id":"copy_with(group_group=@group,types_types=@types,action_action=@action)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"args_string":"(group _group = @group, types _types = @types, action _action = @action)","args_html":"(group _group = @group, types _types = @types, action _action = @action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L65"},"def":{"name":"copy_with","args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"visibility":"Public","body":"self.class.new(_group, _types, _action)"}},{"html_id":"group:Int32-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"Int32","visibility":"Public","body":"@group"}},{"html_id":"types:Array(Int32)|Nil-instance-method","name":"types","abstract":false,"def":{"name":"types","return_type":"Array(Int32) | ::Nil","visibility":"Public","body":"@types"}}]},{"html_id":"drivers/Gallagher/RestAPI/NotFound","path":"Gallagher/RestAPI/NotFound.html","kind":"class","full_name":"Gallagher::RestAPI::NotFound","name":"NotFound","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":553,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L553"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneDetails","path":"Gallagher/RestAPI/ZoneDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::ZoneDetails","name":"ZoneDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L639"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneInfo","path":"Gallagher/RestAPI/ZoneInfo.html","kind":"struct","full_name":"Gallagher::RestAPI::ZoneInfo","name":"ZoneInfo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L646"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,description)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"args_string":"(id, name, description)","args_html":"(id, name, description)","location":{"filename":"src/gallagher/rest_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L647"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api.cr#L646"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]}]},{"html_id":"drivers/Gallagher/Results","path":"Gallagher/Results.html","kind":"class","full_name":"Gallagher::Results(ResultType)","name":"Results","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_uri:NamedTuple(href:String)|Nil-instance-method","name":"next_uri","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@next_uri"}},{"html_id":"next_uri=(next_uri:NamedTuple(href:String)|Nil)-instance-method","name":"next_uri=","abstract":false,"args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(next_uri : NamedTuple(href: String) | Nil)","args_html":"(next_uri : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri=","args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@next_uri = next_uri"}},{"html_id":"results:Array(ResultType)-instance-method","name":"results","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results","return_type":"Array(ResultType)","visibility":"Public","body":"@results"}},{"html_id":"results=(results:Array(ResultType))-instance-method","name":"results=","abstract":false,"args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"args_string":"(results : Array(ResultType))","args_html":"(results : Array(ResultType))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results=","args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"visibility":"Public","body":"@results = results"}}]},{"html_id":"drivers/Gallagher/ZoneSchedule","path":"Gallagher/ZoneSchedule.html","kind":"class","full_name":"Gallagher::ZoneSchedule","name":"ZoneSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/zone_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L25"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_presence:Bool|Nil-instance-method","name":"last_presence","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L44"},"def":{"name":"last_presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@last_presence"}},{"html_id":"last_status:String|Nil-instance-method","name":"last_status","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L43"},"def":{"name":"last_status","return_type":"String | ::Nil","visibility":"Public","body":"@last_status"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :gallagher_system)).presence || config.control_system.not_nil!.id\n@state_mappings = setting(Hash(String, String), :state_mappings)\n@zone_id = (setting?(String | Int64, :zone_id)) || (setting(String | Int64, :door_zone_id))\n@presence_timeout = ((setting?(Int32, :presence_timeout)) || 30).minutes\n"}},{"html_id":"state_mappings:Hash(String,String)-instance-method","name":"state_mappings","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L29"},"def":{"name":"state_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@state_mappings"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L24"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zone_id:String|Int64-instance-method","name":"zone_id","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gallagher/zone_schedule.cr#L28"},"def":{"name":"zone_id","return_type":"String | Int64","visibility":"Public","body":"@zone_id"}}]}]},{"html_id":"drivers/GlobalCache","path":"GlobalCache.html","kind":"module","full_name":"GlobalCache","name":"GlobalCache","abstract":false,"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GlobalCache/Gc100","path":"GlobalCache/Gc100.html","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"}],"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"@relay_config = {} of String => Hash(Int32, String)\n@port_config = {} of String => Tuple(String, Int32)\nschedule.clear\nschedule.every(10.seconds, true) do\n logger.debug do\n \"-- Polling GC100\"\n end\n if status?(Bool, :config_indexed)\n do_send(\"get_NET,0:1\", priority: 0, wait: false)\n else\n get_devices\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L41"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_devices-instance-method","name":"get_devices","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L45"},"def":{"name":"get_devices","visibility":"Public","body":"do_send(\"getdevices\")"}},{"html_id":"ir(index:Int32,command:String,**options)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String, **options)","args_html":"(index : Int32, command : String, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L60"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"sendir,1:#{index},#{command}\", **options)"}},{"html_id":"ir_status?(index:Int32,**options)-instance-method","name":"ir_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L89"},"def":{"name":"ir_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\nself[:num_relays] = 0\nself[:num_ir] = 0\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/global_cache/gc_100.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L98"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nlogger.debug do\n \"GlobalCache sent #{data}\"\nend\ndata = data.split(',')\ntask_name = task.try(&.name) || \"unknown\"\ncase data[0]\nwhen \"state\", \"statechange\"\n type, index = self[:port_config][data[1]]\n self[\"#{type}#{index}\"] = data[2] == \"1\"\nwhen \"device\"\n address = data[1]\n number, type = data[2].split(' ')\n type = type.downcase\n __temp_697 = type\n @relay_config[__temp_697]? || (@relay_config[__temp_697] = {} of Int32 => String)\n current = @relay_config[type].size\n (current..((current + number.to_i) - 1)).each_with_index(1) do |i, dev_index|\n port = \"#{address}:#{dev_index}\"\n @relay_config[type][i] = port\n @port_config[port] = {type, i}\n end\n return task.try(&.success)\nwhen \"endlistdevices\"\n if @relay_config[\"relay\"]?\n self[:num_relays] = @relay_config[\"relay\"].size\n end\n if @relay_config[\"relaysensor\"]?\n @relay_config[\"relaysensor\"][1] = \"1:2\"\n @relay_config[\"relaysensor\"][2] = \"1:3\"\n @relay_config[\"relaysensor\"][3] = \"1:4\"\n self[:num_relays] = @relay_config[\"relaysensor\"].size\n end\n if @relay_config[\"ir\"]?\n self[:num_ir] = @relay_config[\"ir\"].size\n end\n self[:relay_config] = @relay_config\n self[:port_config] = @port_config\n logger.debug do\n \"self[:relay_config] is #{self[:relay_config]}\"\n end\n logger.debug do\n \"self[:port_config] is #{self[:port_config]}\"\n end\n @relay_config = {} of String => Hash(Int32, String)\n @port_config = {} of String => Tuple(String, Int32)\n self[:config_indexed] = true\n return task.try(&.success)\nend\nif data.size == 1\n error = case (data[0].split(' '))[1].to_i\n when 1\n \"Command was missing the carriage return delimiter\"\n when 2\n \"Invalid module address when looking for version\"\n when 3\n \"Invalid module address\"\n when 4\n \"Invalid connector address\"\n when 5\n \"Connector address 1 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 6\n \"Connector address 2 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 7\n \"Connector address 3 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 8\n \"Offset is set to an even transition number, but should be set to an odd transition number in the IR command\"\n when 9\n \"Maximum number of transitions exceeded (256 total on/off transitions allowed)\"\n when 10\n \"Number of transitions in the IR command is not even (the same number of on and off transitions is required)\"\n when 11\n \"Contact closure command sent to a module that is not a relay\"\n when 12\n \"Missing carriage return. All commands must end with a carriage return\"\n when 13\n \"State was requested of an invalid connector address, or the connector is programmed as IR out and not sensor in.\"\n when 14\n \"Command sent to the unit is not supported by the GC-100\"\n when 15\n \"Maximum number of IR transitions exceeded\"\n when 16\n \"Invalid number of IR transitions (must be an even number)\"\n when 21\n \"Attempted to send an IR command to a non-IR module\"\n when 23\n \"Command sent is not supported by this type of module\"\n else\n \"Unknown error\"\n end\n return task.try(&.abort(\"GlobalCache error for command #{task_name}: #{error}\"))\nend\ntask.try(&.success)\n"}},{"html_id":"relay(state:Bool,index:Int32=0,**options)-instance-method","name":"relay","doc":"`**options` here will be passed to the `task` to allow for different priorities","summary":"

**options here will be passed to the task to allow for different priorities

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(state : Bool, index : Int32 = 0, **options)","args_html":"(state : Bool, index : Int32 = 0, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L49"},"def":{"name":"relay","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n relays = (self[:relay_config][\"relay\"]? || self[:relay_config][\"relaysensor\"]?).not_nil!.as_h\n logger.debug do\n \"relays = #{relays}\"\n end\n connector = relays[index.to_s]\n do_send(\"setstate,#{connector},#{state ? 1 : 0}\", **options)\nelse\n logger.warn do\n \"Attempted to set relay on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"relay_status?(index:Int32,**options)-instance-method","name":"relay_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L80"},"def":{"name":"relay_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n connector = self[:relay_config][\"relay\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"set_ir(index:Int32,mode:IrMode,**options)-instance-method","name":"set_ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"args_string":"(index : Int32, mode : IrMode, **options)","args_html":"(index : Int32, mode : IrMode, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L71"},"def":{"name":"set_ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"set_IR,#{connector},#{mode}\", **options)\nelse\n logger.warn do\n \"Attempted to set IR mode on GlobalCache that does not exist: #{index}\"\n end\nend"}}],"types":[{"html_id":"drivers/GlobalCache/Gc100/IrMode","path":"GlobalCache/Gc100/IrMode.html","kind":"enum","full_name":"GlobalCache::Gc100::IrMode","name":"IrMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L64"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IR","name":"IR","value":"0"},{"id":"SENSOR","name":"SENSOR","value":"1"},{"id":"SENSOR_NOTIFY","name":"SENSOR_NOTIFY","value":"2"},{"id":"IR_NOCARRIER","name":"IR_NOCARRIER","value":"3"}],"namespace":{"html_id":"drivers/GlobalCache/Gc100","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100"},"instance_methods":[{"html_id":"ir?-instance-method","name":"ir?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L65"},"def":{"name":"ir?","visibility":"Public","body":"self == IR"}},{"html_id":"ir_nocarrier?-instance-method","name":"ir_nocarrier?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L68"},"def":{"name":"ir_nocarrier?","visibility":"Public","body":"self == IR_NOCARRIER"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L66"},"def":{"name":"sensor?","visibility":"Public","body":"self == SENSOR"}},{"html_id":"sensor_notify?-instance-method","name":"sensor_notify?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/gc_100.cr#L67"},"def":{"name":"sensor_notify?","visibility":"Public","body":"self == SENSOR_NOTIFY"}}]}]},{"html_id":"drivers/GlobalCache/IRTV","path":"GlobalCache/IRTV.html","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(id:String,ir_set:String=\"\",ir_index:Int32=0)-instance-method","name":"channel","doc":"Actually send the IR commands, via the globalcache","summary":"

Actually send the IR commands, via the globalcache

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"args_string":"(id : String, ir_set : String = \"\", ir_index : Int32 = 0)","args_html":"(id : String, ir_set : String = "", ir_index : Int32 = 0)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L146"},"def":{"name":"channel","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"visibility":"Public","body":"if ir_set.presence\nelse\n ir_set = @default_ir_set\nend\nif ir_index == 0\n ir_index = @default_ir_index\nend\nresult = @channel_lookup[id].ir_commands.map do |ir_command_name|\n (system[@globalcache].ir(ir_index, @ir_commands[ir_set][ir_command_name])).get\n sleep(500.milliseconds)\nend\nself[:current_channel] = id\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L119"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache = setting(String, :globalcache_module)\n@default_ir_set = setting(String, :default_ir_set)\n@default_ir_index = setting(Int32, :default_ir_index)\n@channels = setting(Array(Channel), :channel_details)\nupdated_channel_lookup = {} of String => Channel\n@channels.each do |channel|\n updated_channel_lookup[channel.channel] = channel\nend\n@channel_lookup = updated_channel_lookup\nglobalcache_ir_sets = setting(Hash(String, String), :globalcache_ir_sets)\nupdated_ir_commands = {} of String => Hash(String, String)\nglobalcache_ir_sets.each do |device, all_commands|\n updated_ir_commands[device] = parse_all_commands(all_commands)\nend\n@ir_commands = updated_ir_commands\nself[:channel_details] = @channels\nself[:ir_commands] = @ir_commands\n"}}],"types":[{"html_id":"drivers/GlobalCache/IRTV/Channel","path":"GlobalCache/IRTV/Channel.html","kind":"class","full_name":"GlobalCache::IRTV::Channel","name":"Channel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GlobalCache/IRTV","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L87"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L86"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"ir_commands:Array(String)-instance-method","name":"ir_commands","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L88"},"def":{"name":"ir_commands","return_type":"Array(String)","visibility":"Public","body":"@ir_commands"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/ir_tv.cr#L85"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/GlobalCache/ProjectorScreen","path":"GlobalCache/ProjectorScreen.html","kind":"class","full_name":"GlobalCache::ProjectorScreen","name":"ProjectorScreen","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down-instance-method","name":"down","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L50"},"def":{"name":"down","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_down)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache_module = (setting(String, :globalcache_module)) || \"DigitalIO_1\"\n@relay_method = (setting(String, :globalcache_relay_method)) || \"pulse\"\n@relay_index_down = (setting(Int32, :globalcache_relay_index_down)) || 0\n@relay_index_up = (setting(Int32, :globalcache_relay_index_up)) || 1\n@relay_pulse_milliseconds = (setting(Int32, :globalcache_relay_pulse_milliseconds)) || 1000\n"}},{"html_id":"up-instance-method","name":"up","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen.cr#L39"},"def":{"name":"up","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_up)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}}]}]},{"html_id":"drivers/GoBright","path":"GoBright.html","kind":"module","full_name":"GoBright","name":"GoBright","abstract":false,"locations":[{"filename":"src/gobright/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GoBright/AccessToken","path":"GoBright/AccessToken.html","kind":"struct","full_name":"GoBright::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L195"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"expires_at:Time-instance-method","name":"expires_at","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L198"},"def":{"name":"expires_at","return_type":"Time","visibility":"Public","body":"expires_in.seconds.from_now"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L196"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}}]},{"html_id":"drivers/GoBright/Amenity","path":"GoBright/Amenity.html","kind":"struct","full_name":"GoBright::Amenity","name":"Amenity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_for_desk:Bool|Nil-instance-method","name":"available_for_desk","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L101"},"def":{"name":"available_for_desk","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_desk"}},{"html_id":"available_for_parking:Bool|Nil-instance-method","name":"available_for_parking","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L104"},"def":{"name":"available_for_parking","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_parking"}},{"html_id":"available_for_room:Bool|Nil-instance-method","name":"available_for_room","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L98"},"def":{"name":"available_for_room","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_room"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L93"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L94"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L92"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"order:Int32|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L95"},"def":{"name":"order","return_type":"Int32 | ::Nil","visibility":"Public","body":"@order"}}]},{"html_id":"drivers/GoBright/API","path":"GoBright/API.html","kind":"class","full_name":"GoBright::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings(starting:Int64,ending:Int64,location_id:String|Array(String)|Nil=nil,space_id:String|Array(String)|Nil=nil)-instance-method","name":"bookings","doc":"the list of booking occurances in the time period specified","summary":"

the list of booking occurances in the time period specified

","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","args_html":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L121"},"def":{"name":"bookings","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"1000\")\n form.add(\"include\", \"spaces,organizer,attendees\")\n form.add(\"start\", (Time.unix(starting)).to_rfc3339)\n form.add(\"end\", (Time.unix(ending)).to_rfc3339)\n if location_id\n location_ids = location_id.is_a?(Array) ? location_id : [location_id]\n location_ids.each do |loc|\n form.add(\"locationIds\", loc)\n end\n end\n if space_id\n space_ids = space_id.is_a?(Array) ? space_id : [space_id]\n space_ids.each do |space|\n form.add(\"spaceIds\", space)\n end\n end\nend\nArray(Occurrence).from_json(fetch(\"/api/v2.0/bookings/occurrences?#{params}\"))\n"}},{"html_id":"fetch(location:String):String-instance-method","name":"fetch","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/gobright/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L25"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"next_page = location\nappend = location.includes?('?') ? '&' : '?'\nString.build do |str|\n str << \"[\"\n loop do\n logger.debug do\n \"requesting: #{next_page}\"\n end\n response = get(next_page, headers: HTTP::Headers {\"Authorization\" => get_token, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = begin\n Response.from_json(response.body)\n rescue error : JSON::SerializableError\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(error)\n end\n if data = payload.data || payload.items\n str << data.strip[1..-2]\n end\n continuation = payload.paging.try(&.token)\n total_items = payload.paging.try(&.total)\n if continuation\n next_page = \"#{location}#{append}continuationToken=#{continuation}\"\n else\n if total_items\n uri = URI.parse(next_page)\n params = uri.query_params\n skip = params[\"pagingSkip\"]?.try(&.to_i) || 0\n taking = params[\"pagingTake\"]?.try(&.to_i) || 100\n if (skip + taking) >= total_items\n break\n end\n params[\"pagingSkip\"] = (skip + taking).to_s\n uri.query_params = params\n next_page = uri.to_s\n else\n break\n end\n end\n str << \",\"\n end\n str << \"]\"\nend\n"}},{"html_id":"live_occupancy(location:String,type:SpaceType|Nil=nil)-instance-method","name":"live_occupancy","doc":"the occupancy status of the spaces","summary":"

the occupancy status of the spaces

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"args_string":"(location : String, type : SpaceType | Nil = nil)","args_html":"(location : String, type : SpaceType | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L144"},"def":{"name":"live_occupancy","args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n form.add(\"filterLocationId\", location)\n if type\n form.add(\"filterSpaceType\", type.value.to_s)\n end\nend\nArray(Occupancy).from_json(fetch(\"/api/v2.0/occupancy/space/live?#{params}\"))\n"}},{"html_id":"locations-instance-method","name":"locations","doc":"the list of buildings, levels, areas etc","summary":"

the list of buildings, levels, areas etc

","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L84"},"def":{"name":"locations","visibility":"Public","body":"Array(Location).from_json(fetch(\"/api/v2.0/locations?pagingTake=100\"))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}},{"html_id":"spaces(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces","doc":"a list of spaces in the locations. rooms, desks and parking","summary":"

a list of spaces in the locations.

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L89"},"def":{"name":"spaces","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"LocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"SpaceTypes\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces?#{params}\"))\n"}},{"html_id":"spaces_state(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces_state","doc":"Paged list of state per space, filtered by location/spacetype","summary":"

Paged list of state per space, filtered by location/spacetype

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/api.cr#L105"},"def":{"name":"spaces_state","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"filterLocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"filterSpaceType\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces/state?#{params}\"))\n"}}]},{"html_id":"drivers/GoBright/ApprovalState","path":"GoBright/ApprovalState.html","kind":"enum","full_name":"GoBright::ApprovalState","name":"ApprovalState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L203"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Inactive","name":"Inactive","value":"0"},{"id":"NeedsApproval","name":"NeedsApproval","value":"1"},{"id":"Approved","name":"Approved","value":"2"},{"id":"Rejected","name":"Rejected","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"approved?-instance-method","name":"approved?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L206"},"def":{"name":"approved?","visibility":"Public","body":"self == Approved"}},{"html_id":"inactive?-instance-method","name":"inactive?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L204"},"def":{"name":"inactive?","visibility":"Public","body":"self == Inactive"}},{"html_id":"needs_approval?-instance-method","name":"needs_approval?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L205"},"def":{"name":"needs_approval?","visibility":"Public","body":"self == NeedsApproval"}},{"html_id":"rejected?-instance-method","name":"rejected?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L207"},"def":{"name":"rejected?","visibility":"Public","body":"self == Rejected"}}]},{"html_id":"drivers/GoBright/Attendee","path":"GoBright/Attendee.html","kind":"struct","full_name":"GoBright::Attendee","name":"Attendee","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L222"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"email_address=(email_address:String|Nil)-instance-method","name":"email_address=","abstract":false,"args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"args_string":"(email_address : String | Nil)","args_html":"(email_address : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L222"},"def":{"name":"email_address=","args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email_address = email_address"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L223"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L223"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/GoBright/BookingType","path":"GoBright/BookingType.html","kind":"enum","full_name":"GoBright::BookingType","name":"BookingType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L210"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"BookingOnRoom","name":"BookingOnRoom","value":"0"},{"id":"ServiceOnly","name":"ServiceOnly","value":"1"},{"id":"BookingOnDesk","name":"BookingOnDesk","value":"2"},{"id":"BookingAsTeam","name":"BookingAsTeam","value":"3"},{"id":"BookingOnParking","name":"BookingOnParking","value":"4"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"booking_as_team?-instance-method","name":"booking_as_team?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L214"},"def":{"name":"booking_as_team?","visibility":"Public","body":"self == BookingAsTeam"}},{"html_id":"booking_on_desk?-instance-method","name":"booking_on_desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L213"},"def":{"name":"booking_on_desk?","visibility":"Public","body":"self == BookingOnDesk"}},{"html_id":"booking_on_parking?-instance-method","name":"booking_on_parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L215"},"def":{"name":"booking_on_parking?","visibility":"Public","body":"self == BookingOnParking"}},{"html_id":"booking_on_room?-instance-method","name":"booking_on_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L211"},"def":{"name":"booking_on_room?","visibility":"Public","body":"self == BookingOnRoom"}},{"html_id":"service_only?-instance-method","name":"service_only?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L212"},"def":{"name":"service_only?","visibility":"Public","body":"self == ServiceOnly"}}]},{"html_id":"drivers/GoBright/DeskPeriod","path":"GoBright/DeskPeriod.html","kind":"struct","full_name":"GoBright::DeskPeriod","name":"DeskPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L67"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L64"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L55"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L61"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L58"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Location","path":"GoBright/Location.html","kind":"struct","full_name":"GoBright::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_desk_periods:DeskPeriod|Nil-instance-method","name":"booking_desk_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L142"},"def":{"name":"booking_desk_periods","return_type":"DeskPeriod | ::Nil","visibility":"Public","body":"@booking_desk_periods"}},{"html_id":"booking_parking_periods:ParkingPeriod|Nil-instance-method","name":"booking_parking_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L145"},"def":{"name":"booking_parking_periods","return_type":"ParkingPeriod | ::Nil","visibility":"Public","body":"@booking_parking_periods"}},{"html_id":"full_path:String|Nil-instance-method","name":"full_path","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L130"},"def":{"name":"full_path","return_type":"String | ::Nil","visibility":"Public","body":"@full_path"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L133"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L110"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_id:String|Nil-instance-method","name":"image_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L139"},"def":{"name":"image_id","return_type":"String | ::Nil","visibility":"Public","body":"@image_id"}},{"html_id":"level:Int64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L127"},"def":{"name":"level","return_type":"Int64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L118"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name_indented:String|Nil-instance-method","name":"name_indented","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L121"},"def":{"name":"name_indented","return_type":"String | ::Nil","visibility":"Public","body":"@name_indented"}},{"html_id":"old_id:Int64|Nil-instance-method","name":"old_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L113"},"def":{"name":"old_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@old_id"}},{"html_id":"order:Int64|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L124"},"def":{"name":"order","return_type":"Int64 | ::Nil","visibility":"Public","body":"@order"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L116"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"visitor_kiosk_enabled:Bool|Nil-instance-method","name":"visitor_kiosk_enabled","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L136"},"def":{"name":"visitor_kiosk_enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@visitor_kiosk_enabled"}}]},{"html_id":"drivers/GoBright/LocationService","path":"GoBright/LocationService.html","kind":"class","full_name":"GoBright::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCHES","name":"NO_MATCHES","value":"[] of String"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L72"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"cache_space_details-instance-method","name":"cache_space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L75"},"def":{"name":"cache_space_details","visibility":"Public","body":"space_details = {} of String => Space\n(Array(Space).from_json(gobright.spaces.get.to_json)).each do |space|\n space_details[space.id] = space\nend\n@space_details = space_details\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/gobright/location_service.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L126"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"checking ownership of: #{mac_address}\"\nend\nif mac_address.starts_with?(\"gobright-\")\nelse\n return\nend\nid = (mac_address.split(\"gobright-\"))[1]\n@cached_booking_data.each do |zone_id, lookup|\n if booking = lookup[id]?\n return {location: \"booking\", assigned_to: booking.organizer.try(&.email_address) || (booking.attendees.first.email_address.as(String)), mac_address: mac_address}\n end\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L143"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && !(location.in?({\"desk\", \"area\", \"booking\"}))\n return [] of Nil\nend\ngobright_location_id = @floor_mappings[zone_id]\nspaces = {} of String => Space\nspace_details.each_value do |space|\n if space.location_id == gobright_location_id\n else\n next\n end\n spaces[space.id] = space.dup\nend\noccupancy = Array(Occupancy).from_json((gobright.live_occupancy(gobright_location_id, @default_space_type)).get.to_json)\noccupancy.each do |details|\n space = spaces[details.id]?\n if space\n else\n next\n end\n space.occupied = details.occupied? || false\nend\ndesk_types = @desk_space_types\noccupancy_locs = spaces.values.compact_map do |space|\n loc_type = space.type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n if (occupied = space.occupied?) || @return_empty_spaces\n {location: loc_type, at_location: occupied ? 1 : 0, map_id: space.name, level: zone_id, building: building_id, capacity: space.capacity || 1, gobright_location_id: gobright_location_id, gobright_space_name: space.name, gobright_space_type: space.type, gobright_space_id: space.id}\n end\nend\nif location && (location != \"booking\")\n return spaces\nend\nbookings = Array(Occurrence).from_json((gobright.bookings(1.minutes.ago.to_unix, 10.minutes.from_now.to_unix, gobright_location_id)).get.to_json)\nlookup = {} of String => Occurrence\nbooking_locs = bookings.compact_map do |occurrence|\n space = nil\n occurrence.spaces.each do |details|\n space = spaces[details.id]?\n if space\n break\n end\n end\n if space\n else\n next\n end\n occurrence.zone_id = zone_id\n occurrence.matched_space = space\n lookup[occurrence.id] = occurrence\n map_booking(occurrence, space, zone_id)\nend\n@cached_booking_data[zone_id] = lookup\nbooking_locs.map() do |__arg6|\n __arg6.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend + occupancy_locs.map() do |__arg7|\n __arg7.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L64"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L59"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"if (__temp_1 = @level_details).nil?\n @level_details = (Hash(String, LevelCapacity).from_json(area_management.level_details.get.to_json))\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"NOTE:: we could keep track of current bookings and then use that information to assign ownership of a desk\nif the desks are being booked via the check-in/check-out\nthis would allow us to locate","summary":"

NOTE : we could keep track of current bookings and then use that information to assign ownership of a desk if the desks are being booked via the check-in/check-out this would allow us to locate

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L93"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for user #{email}\"\nend\nmatches = [] of Occurrence\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n else\n next\n end\n matches << booking\n end\nend\nmatches.compact_map do |booking|\n zone_id = booking.zone_id\n map_booking(booking, booking.matched_space, zone_id, level_details[zone_id]?.try(&.desk_mappings))\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/gobright/location_service.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L114"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"if email\nelse\n return NO_MATCHES\nend\nlogger.debug do\n \"checking if any bookings for email: #{email}\"\nend\nmatches = [] of String\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n matches << \"gobright-#{booking.id}\"\n end\n end\nend\nmatches\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@desk_space_types = (setting?(Array(SpaceType), :desk_space_types)) || [SpaceType::Desk]\n@default_space_type = (setting?(SpaceType, :default_space_type)) || nil\n@floor_mappings = (setting(Hash(String, Mapping), :gobright_floor_mappings)).transform_values(&.location_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\ntimezone = Time::Location.load(system.timezone.presence || \"Australia/Sydney\")\nschedule.clear\nschedule.cron((setting?(String, :space_cache_cron)) || \"0 5 * * *\", timezone) do\n cache_space_details\nend\nschedule.every(10.minutes) do\n @level_details = nil\nend\n"}},{"html_id":"space_details:Hash(String,Space)-instance-method","name":"space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L73"},"def":{"name":"space_details","return_type":"Hash(String, Space)","visibility":"Public","body":"if (__temp_1 = @space_details).nil?\n @space_details = (cache_space_details)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/GoBright/LocationService/LevelCapacity","path":"GoBright/LocationService/LevelCapacity.html","kind":"struct","full_name":"GoBright::LocationService::LevelCapacity","name":"LevelCapacity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_mappings:Hash(String,String)-instance-method","name":"desk_mappings","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L42"},"def":{"name":"desk_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@desk_mappings"}}]},{"html_id":"drivers/GoBright/LocationService/Mapping","path":"GoBright/LocationService/Mapping.html","kind":"struct","full_name":"GoBright::LocationService::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/location_service.cr#L36"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}}]}]},{"html_id":"drivers/GoBright/Metadata","path":"GoBright/Metadata.html","kind":"struct","full_name":"GoBright::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L11"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"status_code:Int32|Nil-instance-method","name":"status_code","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L8"},"def":{"name":"status_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status_code"}},{"html_id":"validation_errors:Array(Hash(String,String))|Nil-instance-method","name":"validation_errors","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L14"},"def":{"name":"validation_errors","return_type":"Array(Hash(String, String)) | ::Nil","visibility":"Public","body":"@validation_errors"}}]},{"html_id":"drivers/GoBright/Occupancy","path":"GoBright/Occupancy.html","kind":"struct","full_name":"GoBright::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L182"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L183"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L186"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"occupied?:Bool|Nil-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L189"},"def":{"name":"occupied?","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}}]},{"html_id":"drivers/GoBright/Occurrence","path":"GoBright/Occurrence.html","kind":"struct","full_name":"GoBright::Occurrence","name":"Occurrence","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L226"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L227"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approval_state:ApprovalState|Nil-instance-method","name":"approval_state","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L244"},"def":{"name":"approval_state","return_type":"ApprovalState | ::Nil","visibility":"Public","body":"@approval_state"}},{"html_id":"approval_state=(approval_state:ApprovalState|Nil)-instance-method","name":"approval_state=","abstract":false,"args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"args_string":"(approval_state : ApprovalState | Nil)","args_html":"(approval_state : ApprovalState | Nil)","location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L244"},"def":{"name":"approval_state=","args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"visibility":"Public","body":"@approval_state = approval_state"}},{"html_id":"attendee_amount:Int32|Nil-instance-method","name":"attendee_amount","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount","return_type":"Int32 | ::Nil","visibility":"Public","body":"@attendee_amount"}},{"html_id":"attendee_amount=(attendee_amount:Int32|Nil)-instance-method","name":"attendee_amount=","abstract":false,"args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"args_string":"(attendee_amount : Int32 | Nil)","args_html":"(attendee_amount : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount=","args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@attendee_amount = attendee_amount"}},{"html_id":"attendees:Array(Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L260"},"def":{"name":"attendees","return_type":"Array(Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"attendees=(attendees:Array(Attendee))-instance-method","name":"attendees=","abstract":false,"args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"args_string":"(attendees : Array(Attendee))","args_html":"(attendees : Array(Attendee))","location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L260"},"def":{"name":"attendees=","args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"visibility":"Public","body":"@attendees = attendees"}},{"html_id":"booking_type:BookingType-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L235"},"def":{"name":"booking_type","return_type":"BookingType","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:BookingType)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"args_string":"(booking_type : BookingType)","args_html":"(booking_type : BookingType)","location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L235"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"composed_id:String-instance-method","name":"composed_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L232"},"def":{"name":"composed_id","return_type":"String","visibility":"Public","body":"@composed_id"}},{"html_id":"composed_id=(composed_id:String)-instance-method","name":"composed_id=","abstract":false,"args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"args_string":"(composed_id : String)","args_html":"(composed_id : String)","location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L232"},"def":{"name":"composed_id=","args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"visibility":"Public","body":"@composed_id = composed_id"}},{"html_id":"confirmation_active:Bool|Nil-instance-method","name":"confirmation_active","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmation_active"}},{"html_id":"confirmation_active=(confirmation_active:Bool|Nil)-instance-method","name":"confirmation_active=","abstract":false,"args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"args_string":"(confirmation_active : Bool | Nil)","args_html":"(confirmation_active : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active=","args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmation_active = confirmation_active"}},{"html_id":"confirmation_window_end:String|Nil-instance-method","name":"confirmation_window_end","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_end"}},{"html_id":"confirmation_window_end=(confirmation_window_end:String|Nil)-instance-method","name":"confirmation_window_end=","abstract":false,"args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_end : String | Nil)","args_html":"(confirmation_window_end : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end=","args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_end = confirmation_window_end"}},{"html_id":"confirmation_window_start:String|Nil-instance-method","name":"confirmation_window_start","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_start"}},{"html_id":"confirmation_window_start=(confirmation_window_start:String|Nil)-instance-method","name":"confirmation_window_start=","abstract":false,"args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_start : String | Nil)","args_html":"(confirmation_window_start : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start=","args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_start = confirmation_window_start"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L256"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L256"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L229"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L229"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"intention_type:Int32|Nil-instance-method","name":"intention_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L238"},"def":{"name":"intention_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@intention_type"}},{"html_id":"intention_type=(intention_type:Int32|Nil)-instance-method","name":"intention_type=","abstract":false,"args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"args_string":"(intention_type : Int32 | Nil)","args_html":"(intention_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L238"},"def":{"name":"intention_type=","args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@intention_type = intention_type"}},{"html_id":"is_anonymously_booked:Bool|Nil-instance-method","name":"is_anonymously_booked","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_anonymously_booked"}},{"html_id":"is_anonymously_booked=(is_anonymously_booked:Bool|Nil)-instance-method","name":"is_anonymously_booked=","abstract":false,"args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"args_string":"(is_anonymously_booked : Bool | Nil)","args_html":"(is_anonymously_booked : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked=","args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_anonymously_booked = is_anonymously_booked"}},{"html_id":"license_plate:String|Nil-instance-method","name":"license_plate","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L250"},"def":{"name":"license_plate","return_type":"String | ::Nil","visibility":"Public","body":"@license_plate"}},{"html_id":"license_plate=(license_plate:String|Nil)-instance-method","name":"license_plate=","abstract":false,"args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"args_string":"(license_plate : String | Nil)","args_html":"(license_plate : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L250"},"def":{"name":"license_plate=","args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"visibility":"Public","body":"@license_plate = license_plate"}},{"html_id":"matched_space:Space-instance-method","name":"matched_space","abstract":false,"def":{"name":"matched_space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @matched_space).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#matched_space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"matched_space=(matched_space:Space)-instance-method","name":"matched_space=","abstract":false,"args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"args_string":"(matched_space : Space)","args_html":"(matched_space : Space)","location":{"filename":"src/gobright/models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L278"},"def":{"name":"matched_space=","args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"visibility":"Public","body":"@matched_space = matched_space"}},{"html_id":"matched_space?:Space|Nil-instance-method","name":"matched_space?","abstract":false,"def":{"name":"matched_space?","return_type":"Space | ::Nil","visibility":"Public","body":"@matched_space"}},{"html_id":"organizer:Attendee|Nil-instance-method","name":"organizer","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L258"},"def":{"name":"organizer","return_type":"Attendee | ::Nil","visibility":"Public","body":"@organizer"}},{"html_id":"organizer=(organizer:Attendee|Nil)-instance-method","name":"organizer=","abstract":false,"args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"args_string":"(organizer : Attendee | Nil)","args_html":"(organizer : Attendee | Nil)","location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L258"},"def":{"name":"organizer=","args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"visibility":"Public","body":"@organizer = organizer"}},{"html_id":"recurrence_type:Int32|Nil-instance-method","name":"recurrence_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@recurrence_type"}},{"html_id":"recurrence_type=(recurrence_type:Int32|Nil)-instance-method","name":"recurrence_type=","abstract":false,"args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"args_string":"(recurrence_type : Int32 | Nil)","args_html":"(recurrence_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type=","args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@recurrence_type = recurrence_type"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L259"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L259"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L253"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L253"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}},{"html_id":"subject:String|Nil-instance-method","name":"subject","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L257"},"def":{"name":"subject","return_type":"String | ::Nil","visibility":"Public","body":"@subject"}},{"html_id":"subject=(subject:String|Nil)-instance-method","name":"subject=","abstract":false,"args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"args_string":"(subject : String | Nil)","args_html":"(subject : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L257"},"def":{"name":"subject=","args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"visibility":"Public","body":"@subject = subject"}},{"html_id":"zone_id:String-instance-method","name":"zone_id","abstract":false,"def":{"name":"zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @zone_id).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#zone_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"zone_id=(zone_id:String)-instance-method","name":"zone_id=","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/gobright/models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L275"},"def":{"name":"zone_id=","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"@zone_id = zone_id"}},{"html_id":"zone_id?:String|Nil-instance-method","name":"zone_id?","abstract":false,"def":{"name":"zone_id?","return_type":"String | ::Nil","visibility":"Public","body":"@zone_id"}}]},{"html_id":"drivers/GoBright/Paging","path":"GoBright/Paging.html","kind":"struct","full_name":"GoBright::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L24"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"total:Int32|Nil-instance-method","name":"total","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L21"},"def":{"name":"total","return_type":"Int32 | ::Nil","visibility":"Public","body":"@total"}}]},{"html_id":"drivers/GoBright/ParkingPeriod","path":"GoBright/ParkingPeriod.html","kind":"struct","full_name":"GoBright::ParkingPeriod","name":"ParkingPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L70"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L71"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L86"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L83"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L74"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L80"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L77"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Response","path":"GoBright/Response.html","kind":"struct","full_name":"GoBright::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L34"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"items:String|Nil-instance-method","name":"items","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L37"},"def":{"name":"items","return_type":"String | ::Nil","visibility":"Public","body":"@items"}},{"html_id":"metadata:Metadata|Nil-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L31"},"def":{"name":"metadata","return_type":"Metadata | ::Nil","visibility":"Public","body":"@metadata"}},{"html_id":"paging:Paging|Nil-instance-method","name":"paging","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L40"},"def":{"name":"paging","return_type":"Paging | ::Nil","visibility":"Public","body":"@paging"}}]},{"html_id":"drivers/GoBright/Space","path":"GoBright/Space.html","kind":"class","full_name":"GoBright::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L156"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"amenities:Array(Amenity)-instance-method","name":"amenities","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L160"},"def":{"name":"amenities","return_type":"Array(Amenity)","visibility":"Public","body":"@amenities"}},{"html_id":"capacity:Int64|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L170"},"def":{"name":"capacity","return_type":"Int64 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L169"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L158"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"integration_external_id:String|Nil-instance-method","name":"integration_external_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L173"},"def":{"name":"integration_external_id","return_type":"String | ::Nil","visibility":"Public","body":"@integration_external_id"}},{"html_id":"is_bookable:Bool|Nil-instance-method","name":"is_bookable","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L176"},"def":{"name":"is_bookable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_bookable"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L166"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L159"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L179"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupied?:Bool-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L179"},"def":{"name":"occupied?","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"type:SpaceType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L163"},"def":{"name":"type","return_type":"SpaceType | ::Nil","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/GoBright/SpaceType","path":"GoBright/SpaceType.html","kind":"enum","full_name":"GoBright::SpaceType","name":"SpaceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L148"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Room","name":"Room","value":"0"},{"id":"Desk","name":"Desk","value":"1"},{"id":"CombinedRoom","name":"CombinedRoom","value":"2"},{"id":"Parking","name":"Parking","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"combined_room?-instance-method","name":"combined_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L151"},"def":{"name":"combined_room?","visibility":"Public","body":"self == CombinedRoom"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L150"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}},{"html_id":"parking?-instance-method","name":"parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L152"},"def":{"name":"parking?","visibility":"Public","body":"self == Parking"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/gobright/models.cr#L149"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}}]}]},{"html_id":"drivers/Halite","path":"Halite.html","kind":"module","full_name":"Halite","name":"Halite","abstract":false,"locations":[{"filename":"lib/halite/src/halite.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite.cr#L4"},{"filename":"lib/halite/src/halite/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/chainable.cr#L3"},{"filename":"lib/halite/src/halite/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/client.cr#L8"},{"filename":"lib/halite/src/halite/error.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/error.cr#L1"},{"filename":"lib/halite/src/halite/feature.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/feature.cr#L1"},{"filename":"lib/halite/src/halite/features/cache.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/features/cache.cr#L5"},{"filename":"lib/halite/src/halite/features/logging.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/features/logging.cr#L10"},{"filename":"lib/halite/src/halite/form_data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/form_data.cr#L4"},{"filename":"lib/halite/src/halite/header_link.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/header_link.cr#L1"},{"filename":"lib/halite/src/halite/mime_type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/mime_type.cr#L1"},{"filename":"lib/halite/src/halite/options.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options.cr#L4"},{"filename":"lib/halite/src/halite/options/follow.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options/follow.cr#L1"},{"filename":"lib/halite/src/halite/options/timeout.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/options/timeout.cr#L1"},{"filename":"lib/halite/src/halite/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/rate_limit.cr#L1"},{"filename":"lib/halite/src/halite/redirector.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/redirector.cr#L1"},{"filename":"lib/halite/src/halite/request.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/request.cr#L1"},{"filename":"lib/halite/src/halite/response.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/response.cr#L1"},{"filename":"lib/quantum/src/quantum/extensions/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/quantum/src/quantum/extensions/client.cr#L1"},{"filename":"lib/sabo/src/sabo/ext/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/sabo/src/sabo/ext/client.cr#L1"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/stripetease/src/stripetease/extensions/chainable.cr#L1"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Halite/Chainable","kind":"module","full_name":"Halite::Chainable","name":"Chainable"},{"html_id":"drivers/Halite/FeatureRegister","kind":"module","full_name":"Halite::FeatureRegister","name":"FeatureRegister"}],"types":[{"html_id":"drivers/Halite/Chainable","path":"Halite/Chainable.html","kind":"module","full_name":"Halite::Chainable","name":"Chainable","abstract":false,"locations":[{"filename":"lib/halite/src/halite/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/halite/src/halite/chainable.cr#L4"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/stripetease/src/stripetease/extensions/chainable.cr#L2"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Halite","kind":"module","full_name":"Halite","name":"Halite"},"instance_methods":[{"html_id":"cookies(cookies:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"cookies","doc":"Make a request with the given cookies\n\n```\nHalite.cookies({\"private-token\", \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.cookies({private-token: \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given cookies

","abstract":false,"args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L189"},"def":{"name":"cookies","args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_cookies(cookies))"}},{"html_id":"headers(headers:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"headers","doc":"Make a request with the given headers\n\n```\nHalite.headers({\"Content-Type\", \"application/json\", \"Connection\": \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.headers({content_type: \"application/json\", connection: \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given headers

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/cisco/webex/extensions/chainable.cr#L166"},"def":{"name":"headers","args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_headers(headers))"}}]}]},{"html_id":"drivers/Helvar","path":"Helvar.html","kind":"module","full_name":"Helvar","name":"Helvar","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Helvar/Net","path":"Helvar/Net.html","kind":"class","full_name":"Helvar::Net","name":"Net","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_METHODS","name":"CMD_METHODS","value":"{group_scene: 11, device_scene: 12, group_level: 13, device_level: 14, group_proportion: 15, device_proportion: 16, group_modify_proportion: 17, device_modify_proportion: 18, group_emergency_test: 19, device_emergency_test: 20, group_emergency_duration_test: 21, device_emergency_duration_test: 22, group_emergency_stop: 23, device_emergency_stop: 24, query_lamp_hours: 70, query_ballast_hours: 71, query_max_voltage: 72, query_min_voltage: 73, query_max_temp: 74, query_min_temp: 75, query_device_types_with_addresses: 100, query_clusters: 101, query_routers: 102, query_LSIB: 103, query_device_type: 104, query_description_group: 105, query_description_device: 106, query_workgroup_name: 107, query_workgroup_membership: 108, query_last_scene: 109, query_device_state: 110, query_device_disabled: 111, query_lamp_failure: 112, query_device_faulty: 113, query_missing: 114, query_emergency_battery_failure: 129, query_measurement: 150, query_inputs: 151, query_load: 152, query_power_consumption: 160, query_group_power_consumption: 161, query_group: 164, query_groups: 165, query_scene_names: 166, query_scene_info: 167, query_emergency_func_test_time: 170, query_emergency_func_test_state: 171, query_emergency_duration_time: 172, query_emergency_duration_state: 173, query_emergency_battery_charge: 174, query_emergency_battery_time: 175, query_emergency_total_lamp_time: 176, query_time: 185, query_longitude: 186, query_latitude: 187, query_time_zone: 188, query_daylight_savings: 189, query_software_version: 190, query_helvar_net: 191}"},{"id":"COMMANDS","name":"COMMANDS","value":"{\"group_scene\" => \"11\", \"device_scene\" => \"12\", \"group_level\" => \"13\", \"device_level\" => \"14\", \"group_proportion\" => \"15\", \"device_proportion\" => \"16\", \"group_modify_proportion\" => \"17\", \"device_modify_proportion\" => \"18\", \"group_emergency_test\" => \"19\", \"device_emergency_test\" => \"20\", \"group_emergency_duration_test\" => \"21\", \"device_emergency_duration_test\" => \"22\", \"group_emergency_stop\" => \"23\", \"device_emergency_stop\" => \"24\", \"query_lamp_hours\" => \"70\", \"query_ballast_hours\" => \"71\", \"query_max_voltage\" => \"72\", \"query_min_voltage\" => \"73\", \"query_max_temp\" => \"74\", \"query_min_temp\" => \"75\", \"query_device_types_with_addresses\" => \"100\", \"query_clusters\" => \"101\", \"query_routers\" => \"102\", \"query_LSIB\" => \"103\", \"query_device_type\" => \"104\", \"query_description_group\" => \"105\", \"query_description_device\" => \"106\", \"query_workgroup_name\" => \"107\", \"query_workgroup_membership\" => \"108\", \"query_last_scene\" => \"109\", \"query_device_state\" => \"110\", \"query_device_disabled\" => \"111\", \"query_lamp_failure\" => \"112\", \"query_device_faulty\" => \"113\", \"query_missing\" => \"114\", \"query_emergency_battery_failure\" => \"129\", \"query_measurement\" => \"150\", \"query_inputs\" => \"151\", \"query_load\" => \"152\", \"query_power_consumption\" => \"160\", \"query_group_power_consumption\" => \"161\", \"query_group\" => \"164\", \"query_groups\" => \"165\", \"query_scene_names\" => \"166\", \"query_scene_info\" => \"167\", \"query_emergency_func_test_time\" => \"170\", \"query_emergency_func_test_state\" => \"171\", \"query_emergency_duration_time\" => \"172\", \"query_emergency_duration_state\" => \"173\", \"query_emergency_battery_charge\" => \"174\", \"query_emergency_battery_time\" => \"175\", \"query_emergency_total_lamp_time\" => \"176\", \"query_time\" => \"185\", \"query_longitude\" => \"186\", \"query_latitude\" => \"187\", \"query_time_zone\" => \"188\", \"query_daylight_savings\" => \"189\", \"query_software_version\" => \"190\", \"query_helvar_net\" => \"191\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"0\" => \"success\", \"1\" => \"invalid group index parameter\", \"2\" => \"invalid cluster parameter\", \"3\" => \"invalid router\", \"4\" => \"invalid router subnet\", \"5\" => \"invalid device parameter\", \"6\" => \"invalid sub device parameter\", \"7\" => \"invalid block parameter\", \"8\" => \"invalid scene\", \"9\" => \"cluster does not exist\", \"10\" => \"router does not exist\", \"11\" => \"device does not exist\", \"12\" => \"property does not exist\", \"13\" => \"invalid RAW message size\", \"14\" => \"invalid messages type\", \"15\" => \"invalid message command\", \"16\" => \"missing ASCII terminator\", \"17\" => \"missing ASCII parameter\", \"18\" => \"incompatible version\"}"},{"id":"PARAMS","name":"PARAMS","value":"{\"V\" => :ver, \"Q\" => :seq, \"C\" => :cmd, \"A\" => :ack, \"@\" => :addr, \"F\" => :fade, \"T\" => :time, \"L\" => :level, \"G\" => :group, \"S\" => :scene, \"B\" => :block, \"N\" => :latitude, \"E\" => :longitude, \"Z\" => :time_zone, \"P\" => :proportion, \"D\" => :display_screen, \"Y\" => :daylight_savings, \"O\" => :force_store_scene, \"K\" => :constant_light_scene}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Helvar","kind":"module","full_name":"Helvar","name":"Helvar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Helvar\"\n end\n if poll_group = @poll_group\n get_current_preset(poll_group)\n else\n query_software_version\n end\nend"}},{"html_id":"device_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"22\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"24\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"20\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"14\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"18\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"16\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"device_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"12\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(group:Int32)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L67"},"def":{"name":"get_current_preset","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_last_scene(group: group, name: \"query_scene#{group}\")"}},{"html_id":"group_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"21\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"23\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"19\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"13\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"17\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"15\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"group_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"11\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"light_level(group:Int32,level:Int32,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, level : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, level : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L55"},"def":{"name":"light_level","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}_level\"] = level\ngroup_level(group: group, level: level, fade: fade, name: \"group_level#{group}\")\n"}},{"html_id":"lighting(group:Int32,state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(group : Int32, state : Bool)","args_html":"(group : Int32, state : Bool)","location":{"filename":"src/helvar/net.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L50"},"def":{"name":"lighting","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(group, level)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L337"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"group = check_arguments(area)\nif scene = (get_current_preset(group)).get(response_required: true).payload.to_i\n payload = (query_scene_levels(group)).get(response_required: true).payload\n levels = Array(Int32).from_json(payload)\n self[\"area#{group}_level\"] = levels[scene]\nend\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L328"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"get_current_preset(check_arguments(area))"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"#\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(Int32, :version)) || 2\n@ignore_blocks = (setting?(Bool, :ignore_blocks)) || true\n@poll_group = setting?(Int32, :poll_group)\n"}},{"html_id":"query_ballast_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_ballast_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_ballast_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"71\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_clusters(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_clusters","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_clusters","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"101\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_daylight_savings(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_daylight_savings","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_daylight_savings","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"189\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_device(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_device","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_description_device","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"106\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_description_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"105\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_disabled(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_disabled","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_disabled","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"111\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_faulty(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_faulty","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_faulty","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"113\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"110\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_type(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_type","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_type","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"104\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_types_with_addresses(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_types_with_addresses","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_device_types_with_addresses","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"100\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_charge(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_charge","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_charge","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"174\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"129\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"175\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"173\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"172\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"171\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"170\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_total_lamp_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_total_lamp_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_total_lamp_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"176\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"164\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_group_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"161\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_groups(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_groups","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_groups","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"165\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_helvar_net(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_helvar_net","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_helvar_net","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"191\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_inputs(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_inputs","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_inputs","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"151\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"112\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"70\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_last_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_last_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_last_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"109\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_latitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_latitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_latitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"187\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_load(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_load","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_load","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"152\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_longitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_longitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_longitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"186\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_LSIB(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_LSIB","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_LSIB","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"103\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_max_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"74\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_max_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"72\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_measurement(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_measurement","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_measurement","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"150\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_min_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"75\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_min_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"73\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_missing(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_missing","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_missing","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"114\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"160\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_routers(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_routers","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_routers","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"102\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_info(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_info","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_scene_info","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"167\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_levels(group:Int32)-instance-method","name":"query_scene_levels","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L71"},"def":{"name":"query_scene_levels","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_scene_info(group: group, name: \"query_scene#{group}_info\")"}},{"html_id":"query_scene_names(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_names","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_scene_names","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"166\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_software_version(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_software_version","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_software_version","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"190\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"185\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time_zone(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time_zone","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_time_zone","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"188\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_membership(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_membership","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_membership","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"108\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_name(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_name","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_name","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"107\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/helvar/net.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L181"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Helvar sent: #{data}\"\nend\ntask_name = task.try(&.name)\ndata = data[0..-2]\nstart_of_message = data.index(/[\\?\\>\\!]V:/i)\nif start_of_message != 0\n logger.warn do\n \"Lighting error response: #{data[0...start_of_message]}\"\n end\n data = data[start_of_message..-1]\nend\ndata = data.delete(\"$\")\nindicator = data[0]\ncase indicator\nwhen '?', '>'\n data = data[1..-1]\n parts = data.split(\"=\")\n data = parts[0]\n value = parts[1]?\n params = {} of Symbol => String\n (data.split(\",\")).each do |param|\n parts = param.split(\":\")\n if parts.size > 1\n params[PARAMS[parts[0]]] = parts[1]\n else\n if parts[0][0] == '@'\n params[:addr] == parts[0][1..-1]\n else\n logger.debug do\n \"unknown param type #{param}\"\n end\n end\n end\n end\n ack = params[:ack]?\n if ack\n if ack != \"1\"\n return task.try(&.abort(\"request failed\"))\n end\n return task.try(&.success)\n end\n cmd = COMMANDS[params[:cmd]]\n case cmd\n when \"query_last_scene\"\n scene = value.try(&.to_i)\n group = params[:group]\n self[\"area#{group}\"] = scene\n if task_name == \"query_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_scene\"\n block = params[:block]\n group = params[:group]\n scene = params[:scene].to_i\n if block\n if @ignore_blocks\n self[\"area#{group}\"] = scene\n else\n self[\"area#{group}_#{block}\"] = scene\n end\n else\n self[\"area#{group}\"] = scene\n end\n if task_name == \"group_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_level\"\n if task_name == \"group_level#{params[:group]}\"\n task.not_nil!.success\n end\n when \"query_scene_info\"\n group = params[:group]\n if value && (task_name == \"query_scene#{group}_info\")\n levels = ((value.split(\",L\"))[0].split(',')).map(&.to_i)\n task.not_nil!.success(levels)\n end\n else\n logger.debug do\n \"unknown response value\\n#{cmd} = #{value}\"\n end\n end\nwhen '!'\n error = ERRORS[(data.split(\"=\"))[1]]\n error = \"#{error} for #{data}\"\n self[:last_error] = error\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nelse\n logger.info do\n \"unknown request #{data}\"\n end\nend\nif task_name\nelse\n task.try(&.success)\nend\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L332"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\nlight_level(area_id, level.round_even.to_i, fade_time.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L324"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"trigger(check_arguments(area), scene.to_i, fade_time.to_i)"}},{"html_id":"trigger(group:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L61"},"def":{"name":"trigger","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}\"] = scene\ngroup_scene(group: group, scene: scene, fade: fade, name: \"group_scene#{group}\")\n"}}],"macros":[{"html_id":"build_command_hash-macro","name":"build_command_hash","doc":"Generate a String => String hash based on the data above","summary":"

Generate a String => String hash based on the data above

","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L147"},"def":{"name":"build_command_hash","visibility":"Public","body":" COMMANDS = \n{\n \n{% for name, command in CMD_METHODS %}\n {{ name.id.stringify }} => {{ command.id.stringify }},\n {% end %}\n\n }\n COMMANDS.merge!(COMMANDS.invert)\n \n"}}],"types":[{"html_id":"drivers/Helvar/Net/Area","path":"Helvar/Net/Area.html","kind":"alias","full_name":"Helvar::Net::Area","name":"Area","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/helvar/net.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Helvar/Net","kind":"class","full_name":"Helvar::Net","name":"Net"}}]}]},{"html_id":"drivers/Hitachi","path":"Hitachi.html","kind":"module","full_name":"Hitachi","name":"Hitachi","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Hitachi/Projector","path":"Hitachi/Projector.html","kind":"module","full_name":"Hitachi::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Hitachi","kind":"module","full_name":"Hitachi","name":"Hitachi"},"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","path":"Hitachi/Projector/CpTwSeriesBasic.html","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Commands","name":"Commands","value":"{power_on: \"BA D2 01 00 00 60 01 00\", power_off: \"2A D3 01 00 00 60 00 00\", hdmi: \"0E D2 01 00 00 20 03 00\", hdmi2: \"6E D6 01 00 00 20 0D 00\", mute_video: \"6E F1 01 00 A0 20 01 00\", unmute_video: \"FE F0 01 00 A0 20 00 00\", mute_audio: \"D6 D2 01 00 02 20 01 00\", unmute_audio: \"46 D3 01 00 02 20 00 00\", lamp_hours_reset: \"58 DC 06 00 30 70 00 00\", filter_hours_reset: \"98 C6 06 00 40 70 00 00\", \"power?\": \"19 D3 02 00 00 60 00 00\", \"input?\": \"CD D2 02 00 00 20 00 00\", \"error?\": \"D9 D8 02 00 20 60 00 00\", \"freeze?\": \"B0 D2 02 00 02 30 00 00\", \"audio_mute?\": \"75 D3 02 00 02 20 00 00\", \"video_mute?\": \"CD F0 02 00 A0 20 00 00\", \"lamp?\": \"C2 FF 02 00 90 10 00 00\", \"filter?\": \"C2 F0 02 00 A0 10 00 00\"}","doc":"Note: commands have spaces in between each byte for readability","summary":"

Note: commands have spaces in between each byte for readability

"},{"id":"GetRequests","name":"GetRequests","value":"[:\"power?\", :\"input?\", :\"error?\", :\"freeze?\", :\"audio_mute?\", :\"video_mute?\", :\"lamp?\", :\"filter?\"] of ::Symbol"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Hitachi/Projector","kind":"module","full_name":"Hitachi::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?(**options)-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"audio_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"audio_mute?\", **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L32"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n poll_1\nend\nschedule.every(10.minutes, true) do\n poll_2\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L53"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@recover_power = nil\n@recover_input = nil\n"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"error?\", **options)"}},{"html_id":"filter?(**options)-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"filter?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"filter?\", **options)"}},{"html_id":"filter_hours_reset-instance-method","name":"filter_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L109"},"def":{"name":"filter_hours_reset","visibility":"Public","body":"do_send(:filter_hours_reset)\nfilter?\n"}},{"html_id":"freeze?(**options)-instance-method","name":"freeze?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"freeze?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"freeze?\", **options)"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"input?\", **options)"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"lamp?\", **options)"}},{"html_id":"lamp_hours_reset-instance-method","name":"lamp_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L104"},"def":{"name":"lamp_hours_reset","visibility":"Public","body":"do_send(:lamp_hours_reset)\nlamp?\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L77"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L95"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_audio)\nelse\n do_send(:unmute_audio)\nend\naudio_mute?\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L86"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_video)\nelse\n do_send(:unmute_video)\nend\nvideo_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nqueue.timeout = 5.seconds\nqueue.retries = 3\nself[:type] = :projector\n"}},{"html_id":"poll_1-instance-method","name":"poll_1","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L37"},"def":{"name":"poll_1","visibility":"Public","body":"power?(priority: 0).get\nif self[:power]?.try(&.as_bool)\n input?(priority: 0)\n audio_mute?(priority: 0)\n video_mute?(priority: 0)\n freeze?(priority: 0)\nend\n"}},{"html_id":"poll_2-instance-method","name":"poll_2","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L47"},"def":{"name":"poll_2","visibility":"Public","body":"lamp?(priority: 0)\nfilter?(priority: 0)\nerror?(priority: 0)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L59"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off)\nend\npower?\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"power?\", **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L139"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data}\"\nend\ncommand = task.try(&.name)\ncase Response.from_value(data[0])\nwhen .ack?\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"NAK response\"))\nwhen .error?\n task.try(&.abort(\"Error response\"))\nwhen .data?\n if command\n case command\n when \"power?\"\n self[:power] = data[1] == 1\n self[:cooling] = data[1] == 2\n if self[:power]? == @power_target\n @power_target = nil\n else\n if @power_target && @recover_power.nil?\n logger.debug do\n \"recovering power state #{self[:power]} != target #{@power_target}\"\n end\n @recover_power = schedule.in(3.seconds) do\n @recover_power = nil\n power(@power_target.not_nil!)\n end\n end\n end\n when \"input?\"\n input = Input.from_value?(data[1])\n self[:input] = input || \"unknown\"\n if @input_target\n if input == @input_target\n @input_target = nil\n else\n if @recover_input.nil?\n logger.debug do\n \"recovering input #{self[:input]} != target #{@input_target}\"\n end\n @recover_input = schedule.in(3.seconds) do\n @recover_input = nil\n switch_to(@input_target.not_nil!)\n end\n end\n end\n end\n when \"error?\"\n self[:error_status] = (Error.from_value?(data[1])) || \"unknown\"\n when \"freeze?\"\n self[:frozen] = data[1] == 1\n when \"audio_mute?\"\n self[:audio_mute] = data[1] == 1\n when \"video_mute?\"\n self[:video_mute] = data[1] == 1\n when \"lamp?\"\n self[:lamp] = data[1] * data[2]\n when \"filter?\"\n self[:filter] = data[1] * data[2]\n end\n task.try(&.success)\n else\n task.try(&.abort(\"data received for unknown command\"))\n end\nwhen .busy?\n if (data[1] == 4) && (data[2] == 0)\n task.try(&.abort(\"authentication enabled, please disable\"))\n else\n task.try(&.retry(\"projector busy, retrying\"))\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L71"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ndo_send(input.to_s.downcase)\ninput?\n"}},{"html_id":"video_mute?(**options)-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"video_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"video_mute?\", **options)"}}],"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Error","path":"Hitachi/Projector/CpTwSeriesBasic/Error.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Normal","name":"Normal","value":"0"},{"id":"Cover","name":"Cover","value":"1"},{"id":"Fan","name":"Fan","value":"2"},{"id":"Lamp","name":"Lamp","value":"3"},{"id":"Temp","name":"Temp","value":"4"},{"id":"AirFlow","name":"AirFlow","value":"5"},{"id":"Cold","name":"Cold","value":"6"},{"id":"Filter","name":"Filter","value":"7"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"air_flow?-instance-method","name":"air_flow?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L134"},"def":{"name":"air_flow?","visibility":"Public","body":"self == AirFlow"}},{"html_id":"cold?-instance-method","name":"cold?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L135"},"def":{"name":"cold?","visibility":"Public","body":"self == Cold"}},{"html_id":"cover?-instance-method","name":"cover?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L130"},"def":{"name":"cover?","visibility":"Public","body":"self == Cover"}},{"html_id":"fan?-instance-method","name":"fan?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L131"},"def":{"name":"fan?","visibility":"Public","body":"self == Fan"}},{"html_id":"filter?-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L136"},"def":{"name":"filter?","visibility":"Public","body":"self == Filter"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L132"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"normal?-instance-method","name":"normal?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L129"},"def":{"name":"normal?","visibility":"Public","body":"self == Normal"}},{"html_id":"temp?-instance-method","name":"temp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L133"},"def":{"name":"temp?","visibility":"Public","body":"self == Temp"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Input","path":"Hitachi/Projector/CpTwSeriesBasic/Input.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L122"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmi","name":"Hdmi","value":"3"},{"id":"Hdmi2","name":"Hdmi2","value":"13"},{"id":"HdbaSet","name":"HdbaSet","value":"17"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"hdba_set?-instance-method","name":"hdba_set?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L125"},"def":{"name":"hdba_set?","visibility":"Public","body":"self == HdbaSet"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L124"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L123"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Response","path":"Hitachi/Projector/CpTwSeriesBasic/Response.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L114"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"6"},{"id":"Nak","name":"Nak","value":"21"},{"id":"Error","name":"Error","value":"28"},{"id":"Data","name":"Data","value":"29"},{"id":"Busy","name":"Busy","value":"31"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L115"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L119"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"data?-instance-method","name":"data?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L118"},"def":{"name":"data?","visibility":"Public","body":"self == Data"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L117"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/hitachi/projector/cp_tw_series_basic.cr#L116"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Infosilem","path":"Infosilem.html","kind":"module","full_name":"Infosilem","name":"Infosilem","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L4"},{"filename":"src/infosilem/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Infosilem/Campus","path":"Infosilem/Campus.html","kind":"class","full_name":"Infosilem::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String)","location":{"filename":"src/infosilem/campus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L35"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"response = @integration.try(&.call(operation: \"StartTransfer\", body: {\"StartTransferOptions\" => Sabo::Parameter.from_hash(start_transfer_options(username: setting(String, :username), password: setting(String, :password)))}))\ntransfer_id = response.try(&.result)\nresponse = @booking.try(&.call(operation: \"RoomBookingOccurrence_ExportAll\", body: {\"TransferID\" => Sabo::Parameter.new(transfer_id.to_s), \"Options\" => Sabo::Parameter.from_hash(booking_options(building: building_id, room: room_id, start_date: start_date, end_date: end_date, start_time: start_date, end_time: end_date))}))\n@integration.try(&.call(operation: \"EndTransfer\", body: end_transfer_body(transfer_id: transfer_id.to_s)))\nself[\"room_#{room_id}_bookings_#{start_date}_#{end_date}\"] = response.try() do |__arg4|\n __arg4.result[\"ObjectData\"][\"ReservationOccurrences\"][\"ReservationOccurrence\"]?\nend || ([] of Int32)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/campus.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@integration = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/Integration/Integration.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n@booking = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/ExportOnly/RoomBookingPub.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n"}}],"types":[{"html_id":"drivers/Infosilem/Campus/Client","path":"Infosilem/Campus/Client.html","kind":"alias","full_name":"Infosilem::Campus::Client","name":"Client","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/campus.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Sabo::Client","aliased_html":"Sabo::Client","const":false,"namespace":{"html_id":"drivers/Infosilem/Campus","kind":"class","full_name":"Infosilem::Campus","name":"Campus"}}]},{"html_id":"drivers/Infosilem/DateTimeConvertor","path":"Infosilem/DateTimeConvertor.html","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/DateTimeConvertor","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L37"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_local(\"#{Time.local.to_s(\"%F\")} #{value.read_string}\", \"%F %H:%M:%S\")"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L33"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%H:%M:%S\"))"}}]},{"html_id":"drivers/Infosilem/Event","path":"Infosilem/Event.html","kind":"class","full_name":"Infosilem::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflicting:Int32|Nil-instance-method","name":"conflicting","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L15"},"def":{"name":"conflicting","return_type":"Int32 | ::Nil","visibility":"Public","body":"@conflicting"}},{"html_id":"conflicting=(conflicting:Int32|Nil)-instance-method","name":"conflicting=","abstract":false,"args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"args_string":"(conflicting : Int32 | Nil)","args_html":"(conflicting : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L15"},"def":{"name":"conflicting=","args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@conflicting = conflicting"}},{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L23"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L23"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L9"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L9"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L25"},"def":{"name":"duration","visibility":"Public","body":"end_time - start_time"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L21"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Time)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"args_string":"(end_time : Time)","args_html":"(end_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L21"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"number_of_attendees:Int32|Nil-instance-method","name":"number_of_attendees","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_attendees"}},{"html_id":"number_of_attendees=(number_of_attendees:Int32|Nil)-instance-method","name":"number_of_attendees=","abstract":false,"args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"args_string":"(number_of_attendees : Int32 | Nil)","args_html":"(number_of_attendees : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees=","args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@number_of_attendees = number_of_attendees"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L18"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Time)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"args_string":"(start_time : Time)","args_html":"(start_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L18"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Infosilem/IntegerConverter","path":"Infosilem/IntegerConverter.html","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/IntegerConverter","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L49"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"value.read_string.to_i"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/models.cr#L45"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s)"}}]},{"html_id":"drivers/Infosilem/MockCampus","path":"Infosilem/MockCampus.html","kind":"class","full_name":"Infosilem::MockCampus","name":"MockCampus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/mock_campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String):Array(JSON::Any)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","location":{"filename":"src/infosilem/mock_campus.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L226"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"@response"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/mock_campus.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/mock_campus.cr#L222"},"def":{"name":"on_update","visibility":"Public","body":"@response = (setting?(Array(JSON::Any), :response)) || ([] of JSON::Any)"}}]},{"html_id":"drivers/Infosilem/RoomSchedule","path":"Infosilem/RoomSchedule.html","kind":"class","full_name":"Infosilem::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L34"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local.to_s(\"%Y-%m-%d\")\n todays_events = Array(Event).from_json(fetch_events(today, today))\n todays_events.sort_by(&.duration).reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.start_time\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by?(&.start_time)\n previous_event = past_events.max_by?(&.end_time)\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(start_date : String, end_date : String)","args_html":"(start_date : String, end_date : String)","location":{"filename":"src/infosilem/room_schedule.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L77"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"events = (infosilem.bookings?(@building_id, @room_id, start_date, end_date)).get.to_json\nif @debug\n logger.debug do\n \"Infosilem Campus returned: #{events}\"\n end\nend\nevents\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/infosilem/room_schedule.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@building_id = setting(String, :infosilem_building_id)\n@room_id = setting(String, :infosilem_room_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/InnerRange","path":"InnerRange.html","kind":"module","full_name":"InnerRange","name":"InnerRange","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/InnerRange/Integriti","path":"InnerRange/Integriti.html","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L10"},{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PERMISSION_REGEX","name":"PERMISSION_REGEX","value":"/ID\\:\\s+(?[a-f0-9\\-]+)\\s+added/"},{"id":"PROPS","name":"PROPS","value":"{\"SystemInfo\" => \"ProductEdition,ProductVersion,ProtocolVersion\", \"RemoveResult\" => \"NumberOfItemsRemoved,Message\", \"AddResult\" => \"NumberOfItemsAdded,Message\", \"AddOrUpdateResult\" => \"ID,Address,Message\", \"PermissionGroup\" => \"attr_PartitionID,SiteName,SiteID,ID,Name,Address\", \"SiteKeyword\" => \"ID,Name,PartitionID\", \"Area\" => \"ID,Name,Site\", \"Partition\" => \"ID,Name,ParentId,PartitionId,ShortName\", \"User\" => \"ID,Name,SiteID,SiteName,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"FullUser\" => \"ID,Name,Site,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"UserPermission\" => \"ID,What,ManagedByActiveDirectory,User,Deny,Expired\", \"CardFormat\" => \"ID,Name,SiteID,SiteName,Notes,Address,Site\", \"CardTemplate\" => \"ID,Name,SiteID,SiteName,Notes,Address,SiteCodeNumber,Site,Format\", \"Card\" => \"ID,Name,CardNumberNumeric,CardNumber,CardData,CardSerialNumber,IssueNumber,State,ExpiryDateTime,StartDateTime,LastUsed,CloudCredentialId,CloudCredentialType,CloudCredentialPoolId,CloudCredentialInvitationId,CloudCredentialInvitationCode,CloudCredentialCommunicationHandler,ManagedByActiveDirectory,Site,User,CardType\", \"Door\" => \"ID,Name,Site\", \"Review\" => \"ID,Text,UTCTimeGenerated,Type,Transition\"} of String => String"},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%9N\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_entry(type:String,fields:UpdateFields,return_object:Bool=false)-instance-method","name":"add_entry","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, fields : UpdateFields, return_object : Bool = false)","args_html":"(type : String, fields : UpdateFields, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":482,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L482"},"def":{"name":"add_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"add(type, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"add_or_update(payload:String,return_object:Bool=false)-instance-method","name":"add_or_update","doc":"This is the only way to add or update a database entry...","summary":"

This is the only way to add or update a database entry...

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(payload : String, return_object : Bool = false)","args_html":"(payload : String, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L447"},"def":{"name":"add_or_update","args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"if return_object\n check(post(\"/v2/User/AddOrUpdate?IncludeObjectInResult=true\", body: payload))\nelse\n check(post(\"/v2/User/AddOrUpdate\", body: payload))\nend"}},{"html_id":"add_to_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"add_to_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L387"},"def":{"name":"add_to_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/addToCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"api_version:String-instance-method","name":"api_version","doc":"http://20.213.104.2:80/restapi/ApiVersion/v2","summary":"

http://20.213.104.2:80/restapi/ApiVersion/v2

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L359"},"def":{"name":"api_version","return_type":"String","visibility":"Public","body":"document = check(get(\"/ApiVersion\"))\nuri = URI.parse(document.first_element_child.try(&.content).as(String))\nPath[uri.path].basename\n"}},{"html_id":"area(id:Int64|String)-instance-method","name":"area","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":579,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L579"},"def":{"name":"area","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Area/#{id}?#{prop_param(\"Area\")}\"))\nextract_area(document)\n"}},{"html_id":"areas(site_id:Int32|Nil=nil)-instance-method","name":"areas","doc":"roughly zones in a building","summary":"

roughly zones in a building

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":568,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L568"},"def":{"name":"areas","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"areas = [] of Area\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Area\", filter) do |row|\n areas << (extract_area(row))\nend\nareas\n"}},{"html_id":"assign_card_to_user(user_id:String,card_template:String,card_number:String,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true)-instance-method","name":"assign_card_to_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","args_html":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","location":{"filename":"src/inner_range/integriti.cr","line_number":1130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1130"},"def":{"name":"assign_card_to_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nif candidate = cards(template: card_template, number: card_number).first?\n set_card_user(candidate.id, user_id)\nelse\n card_id = create_card(card_number: card_number, user_id: user_id, partition_id: partition_id, site_id: site_id, card_template: card_template, externally_managed: externally_managed)\n candidate = cards(template: card_template, number: card_number).first\nend\ncandidate\n"}},{"html_id":"build_filter(filter:Filter):String-instance-method","name":"build_filter","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"args_string":"(filter : Filter) : String","args_html":"(filter : Filter) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L247"},"def":{"name":"build_filter","args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"return_type":"String","visibility":"Public","body":"XML.build(indent: \" \") do |xml|\n xml.element(\"FilterExpression\", {\"xmlns:xsd\" => \"http://www.w3.org/2001/XMLSchema\", \"xmlns:xsi\" => \"http://www.w3.org/2001/XMLSchema-instance\", \"xsi:type\" => \"AggregateExpression\"}) do\n xml.element(\"OperatorType\") do\n xml.text(\"And\")\n end\n xml.element(\"SubExpressions\") do\n filter.each do |key, value|\n if value.nil?\n next\n end\n xml.element(\"FilterExpression\", {\"xsi:type\" => \"PropertyExpression\"}) do\n xml.element(\"PropertyName\") do\n xml.text(key)\n end\n xml.element(\"OperatorType\") do\n xml.text(\"Equals\")\n end\n xml.element(\"Args\") do\n compare_type = case value\n in String\n \"xsd:string\"\n in Bool\n \"xsd:boolean\"\n in Int32\n \"xsd:int\"\n in Int64\n \"xsd:long\"\n in Float32\n \"xsd:float\"\n in Float64\n \"xsd:double\"\n in Nil\n raise(\"nil values not supported\")\n end\n xml.element(\"anyType\", {\"xsi:type\" => compare_type}) do\n xml.text(value.to_s)\n end\n end\n end\n end\n end\n end\nend"}},{"html_id":"card(id:String)-instance-method","name":"card","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L872"},"def":{"name":"card","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Card/#{id}?#{prop_param(\"Card\")}\"))\nextract_card(document)\n"}},{"html_id":"card_templates(site_id:Int32|Nil=nil)-instance-method","name":"card_templates","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L926"},"def":{"name":"card_templates","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"templates = [] of CardTemplate\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"CardTemplate\", filter) do |row|\n templates << (extract_card_template(row))\nend\ntemplates\n"}},{"html_id":"cards(site_id:Int32|Nil=nil,user_id:String|Nil=nil,template:String|Nil=nil,number:String|Nil=nil)-instance-method","name":"cards","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":853,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L853"},"def":{"name":"cards","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"cards = [] of Card\nfilter = Filter {\"CardNumber\" => number, \"Site.ID\" => site_id, \"User.Address\" => user_id, \"CardType.Address\" => template}\npaginate_request(\"User\", \"Card\", filter) do |row|\n cards << (extract_card(row))\nend\ncards\n"}},{"html_id":"cf_email:String-instance-method","name":"cf_email","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L77"},"def":{"name":"cf_email","return_type":"String","visibility":"Public","body":"@cf_email"}},{"html_id":"cf_origo:String-instance-method","name":"cf_origo","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L79"},"def":{"name":"cf_origo","return_type":"String","visibility":"Public","body":"@cf_origo"}},{"html_id":"cf_phone:String-instance-method","name":"cf_phone","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L78"},"def":{"name":"cf_phone","return_type":"String","visibility":"Public","body":"@cf_phone"}},{"html_id":"cf_virtual_card:String-instance-method","name":"cf_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L18"},"def":{"name":"cf_virtual_card","return_type":"String","visibility":"Public","body":"@cf_virtual_card"}},{"html_id":"create_card(card_number:String|Int64,user_id:String|Nil=nil,partition_id:String|Int32|Nil=nil,site_id:String|Int64|Nil=nil,card_template:String|Nil=nil,externally_managed:Bool|Nil=nil):String-instance-method","name":"create_card","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","args_html":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":878,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L878"},"def":{"name":"create_card","args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"String","visibility":"Public","body":"if user_id\n user_ref = Ref.new(\"User\", user_id, partition_id)\nend\nif site_id\n site_ref = Ref.new(\"SiteKeyword\", site_id.to_s)\nend\nif card_template\n card_type = Ref.new(\"CardTemplate\", card_template, partition_id)\nend\ncard = extract_add_or_update_result(add_entry(\"Card\", UpdateFields {\"CardNumber\" => card_number, \"Site\" => site_ref, \"User\" => user_ref, \"CardType\" => card_type, \"ManagedByActiveDirectory\" => externally_managed}.compact!))\ncard.id.as(String)\n"}},{"html_id":"create_user(name:String,email:String,phone:String|Nil=nil,site_id:String|Int64|Nil=nil):String-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"args_string":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","args_html":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L677"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"return_type":"String","visibility":"Public","body":"first_name, second_name = name.split(' ', 2)\nuser = extract_add_or_update_result(add_entry(\"User\", UpdateFields {\"FirstName\" => first_name, \"SecondName\" => second_name, \"Site\" => Ref.new(\"SiteKeyword\", (site_id || default_site_id).to_s), cf_email => email.strip.downcase, cf_phone => phone}.compact!))\nuser.address.as(String)\n"}},{"html_id":"default_partition_id:Int32-instance-method","name":"default_partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L76"},"def":{"name":"default_partition_id","return_type":"Int32","visibility":"Public","body":"@default_partition_id"}},{"html_id":"default_site_id:Int32-instance-method","name":"default_site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L75"},"def":{"name":"default_site_id","return_type":"Int32","visibility":"Public","body":"@default_site_id"}},{"html_id":"default_unlock_time:Int32-instance-method","name":"default_unlock_time","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L74"},"def":{"name":"default_unlock_time","return_type":"Int32","visibility":"Public","body":"@default_unlock_time"}},{"html_id":"delete_permission(user_id:String,permission_id:String)-instance-method","name":"delete_permission","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(user_id : String, permission_id : String)","args_html":"(user_id : String, permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":791,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L791"},"def":{"name":"delete_permission","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\", {\"ID\" => permission_id}) do\n xml.element(\"ID\") do\n xml.text(permission_id)\n end\n end\nend\nextract_remove_result(modify_collection(\"User\", user_id, \"Permissions\", payload, add: false))\n"}},{"html_id":"door(id:Int64|String)-instance-method","name":"door","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L964"},"def":{"name":"door","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Door/#{id}?#{prop_param(\"Door\")}\"))\nextract_integriti_door(document)\n"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1056,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1056"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"(doors(default_site_id)).map do |door|\n Door.new(door.id.to_s, door.name)\nend"}},{"html_id":"doors(site_id:Int32|Nil=nil)-instance-method","name":"doors","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L953"},"def":{"name":"doors","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"doors = [] of IntegritiDoor\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Door\", filter) do |row|\n doors << (extract_integriti_door(row))\nend\ndoors\n"}},{"html_id":"grant_access(name:String,email:String,group_id:String,starting:Int64|Nil=nil,ending:Int64|Nil=nil,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true):AccessDetails-instance-method","name":"grant_access","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","args_html":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1093,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1093"},"def":{"name":"grant_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"return_type":"AccessDetails","visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: site_id)\nresult = modify_user_permissions(user_id: user_id, group_id: group_id, partition_id: partition_id, add: true, externally_managed: externally_managed, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], \"\")\n"}},{"html_id":"grant_guest_access(name:String,email:String,starting:Int64,ending:Int64):AccessDetails-instance-method","name":"grant_guest_access","doc":"a function for granting guests access to a building\nshould return a payload that can be encoded into a QR code\nthe response is expected to be hexstring","summary":"

a function for granting guests access to a building should return a payload that can be encoded into a QR code the response is expected to be hexstring

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","args_html":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1160"},"def":{"name":"grant_guest_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"return_type":"AccessDetails","visibility":"Public","body":"if guest_access_configured?\nelse\n raise(\"guest access is not configured\")\nend\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: @default_site_id)\ncard = cards(user_id: user_id).find do |card|\n card.template.try(&.address) == @guest_card_template\nend\nif card\nelse\n card = create_guest_card(user_id)\nend\nresult = modify_user_permissions(user_id: user_id, group_id: @guest_access_group, partition_id: @default_partition_id, add: true, externally_managed: true, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], card.card_data_hex)\n"}},{"html_id":"guest_access_configured?:Bool-instance-method","name":"guest_access_configured?","doc":"return true if we can grant guest access","summary":"

return true if we can grant guest access

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1196"},"def":{"name":"guest_access_configured?","return_type":"Bool","visibility":"Public","body":"!@guest_access_group.presence.nil? && !@guest_card_template.presence.nil?"}},{"html_id":"guest_access_group:String-instance-method","name":"guest_access_group","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L81"},"def":{"name":"guest_access_group","return_type":"String","visibility":"Public","body":"@guest_access_group"}},{"html_id":"guest_card_template:String-instance-method","name":"guest_card_template","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L80"},"def":{"name":"guest_card_template","return_type":"String","visibility":"Public","body":"@guest_card_template"}},{"html_id":"has_virtual_card?:Bool-instance-method","name":"has_virtual_card?","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L42"},"def":{"name":"has_virtual_card?","return_type":"Bool","visibility":"Public","body":"email = get_user_email\nintegriti.users(email: email).get[0][\"origo\"].as_bool? || false\n"}},{"html_id":"long_poll_seconds:Int32-instance-method","name":"long_poll_seconds","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L73"},"def":{"name":"long_poll_seconds","return_type":"Int32","visibility":"Public","body":"@long_poll_seconds"}},{"html_id":"managed_users_in_group(group_address:String):Hash(String,String)-instance-method","name":"managed_users_in_group","abstract":false,"args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"args_string":"(group_address : String) : Hash(String, String)","args_html":"(group_address : String) : Hash(String, String)","location":{"filename":"src/inner_range/integriti.cr","line_number":718,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L718"},"def":{"name":"managed_users_in_group","args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"user_ids = user_permissions(group_id: group_address, externally_managed: true).map do |permission|\n permission.user.address.as(String)\nend\nemail_user_id = Hash(String, String).new(\"\", user_ids.size)\nuser_ids.each do |user_id|\n document = check(get(\"/v2/User/User/#{user_id}\"))\n if email = extract_user(document).@email\n email_user_id[email.downcase] = user_id\n end\nend\nlogger.debug do\n \"found #{email_user_id.size} user to email mappings\"\nend\nemail_user_id\n"}},{"html_id":"modify_user_permissions(user_id:String,group_id:String,partition_id:String|Int32|Nil=nil,add:Bool=true,externally_managed:Bool=true,expires_at:Int64|Nil=nil,valid_from:Int64|Nil=nil)-instance-method","name":"modify_user_permissions","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","args_html":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":739,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L739"},"def":{"name":"modify_user_permissions","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\") do\n xml.element(\"What\") do\n (Ref.new(\"PermissionGroup\", group_id, partition_id)).to_xml(xml)\n end\n if add\n xml.element(\"GrantAccess\") do\n xml.text(\"True\")\n end\n if externally_managed\n xml.element(\"ManagedByActiveDirectory\") do\n xml.text(\"True\")\n end\n end\n if expires_at\n expiry = ((Time.unix(expires_at)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"ExpiryDateTime\") do\n xml.text(expiry)\n end\n end\n if valid_from\n starting = ((Time.unix(valid_from)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"StartDateTime\") do\n xml.text(starting)\n end\n end\n end\n end\nend\nresponse = modify_collection(\"User\", user_id, \"Permissions\", payload, add: add)\nadd ? extract_add_result(response) : extract_remove_result(response)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"@cf_virtual_card = (setting?(String, :custom_field_hid_origo)) || \"cf_HasVirtualCard\""}},{"html_id":"partition(id:Int64|String)-instance-method","name":"partition","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":608,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L608"},"def":{"name":"partition","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Partition/#{id}?#{prop_param(\"Partition\")}\"))\nextract_partition(document)\n"}},{"html_id":"partitions(parent_id:Int32|Nil=nil)-instance-method","name":"partitions","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"args_string":"(parent_id : Int32 | Nil = nil)","args_html":"(parent_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L597"},"def":{"name":"partitions","args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"partitions = [] of Partition\nfilter = Filter {\"ParentId\" => parent_id}\npaginate_request(\"User\", \"Partition\", filter) do |row|\n partitions << (extract_partition(row))\nend\npartitions\n"}},{"html_id":"permission_group(id:Int64|String)-instance-method","name":"permission_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L527"},"def":{"name":"permission_group","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/PermissionGroup/#{id}\"))\nextract_site(document)\n"}},{"html_id":"permission_groups(site_id:Int32|Nil=nil):Array(PermissionGroup)-instance-method","name":"permission_groups","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","args_html":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","location":{"filename":"src/inner_range/integriti.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L516"},"def":{"name":"permission_groups","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"return_type":"Array(PermissionGroup)","visibility":"Public","body":"pgroups = [] of PermissionGroup\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"PermissionGroup\", filter, summary_only: true) do |row|\n pgroups << (extract_permission_group(row))\nend\npgroups\n"}},{"html_id":"remove_from_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"remove_from_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":392,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L392"},"def":{"name":"remove_from_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/removeFromCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"remove_virtual_card:Nil-instance-method","name":"remove_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L37"},"def":{"name":"remove_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => false})\n"}},{"html_id":"request_virtual_card:Nil-instance-method","name":"request_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_hid_virtual_pass.cr#L32"},"def":{"name":"request_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => true})\n"}},{"html_id":"review_access(filter:Filter,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_access","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":1018,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1018"},"def":{"name":"review_access","args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"Review\", filter, page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"review_predefined_access(query_id:String|Int64,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_predefined_access","abstract":false,"args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":984,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L984"},"def":{"name":"review_predefined_access","args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"PredefinedFilter/#{query_id}\", page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"revoke_guest_access(details:JSON::Any)-instance-method","name":"revoke_guest_access","doc":"delete the permission from user","summary":"

delete the permission from user

","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/inner_range/integriti.cr","line_number":1191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1191"},"def":{"name":"revoke_guest_access","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"details = Guest.from_json(details.to_json)\ndelete_permission(details.user_id, details.permission_id)\n"}},{"html_id":"set_card_user(card_id:String,user_id:String|Nil,partition_id:String|Int32|Nil=nil)-instance-method","name":"set_card_user","doc":"sets or unsets the user associated with this card","summary":"

sets or unsets the user associated with this card

","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"args_string":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","args_html":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":914,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L914"},"def":{"name":"set_card_user","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"visibility":"Public","body":"if user_id\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => Ref.new(\"User\", user_id, partition_id)}, attribute: \"ID\")\nelse\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => nil}, attribute: \"ID\")\nend"}},{"html_id":"set_user_primary_permission_group(user_id:String,permission_group_id:String|Nil)-instance-method","name":"set_user_primary_permission_group","doc":"sets or unsets the Permission Group","summary":"

sets or unsets the Permission Group

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, permission_group_id : String | Nil)","args_html":"(user_id : String, permission_group_id : String | Nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L778"},"def":{"name":"set_user_primary_permission_group","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if permission_group_id\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => Ref.new(\"PermissionGroup\", permission_group_id)})\nelse\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => nil})\nend"}},{"html_id":"site(id:Int64|String)-instance-method","name":"site","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":552,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L552"},"def":{"name":"site","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/SiteKeyword/#{id}?#{prop_param(\"SiteKeyword\")}\"))\nextract_site(document)\n"}},{"html_id":"sites:Array(Site)-instance-method","name":"sites","doc":"roughly analogous to buildings","summary":"

roughly analogous to buildings

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L544"},"def":{"name":"sites","return_type":"Array(Site)","visibility":"Public","body":"sites = [] of Site\npaginate_request(\"User\", \"SiteKeyword\") do |row|\n sites << (extract_site(row))\nend\nsites\n"}},{"html_id":"system_info-instance-method","name":"system_info","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L375"},"def":{"name":"system_info","visibility":"Public","body":"document = check(get(\"/v2/SystemInfo\"))\nextract_system_info(document)\n"}},{"html_id":"template(address:String)-instance-method","name":"template","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":937,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L937"},"def":{"name":"template","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/CardTemplate/#{address}?#{prop_param(\"CardTemplate\")}\"))\nextract_card_template(document)\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/inner_range/integriti.cr","line_number":1063,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1063"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"payload = XML.build(indent: \" \") do |xml|\n xml.element(\"GrantAccessActionOptions\") do\n xml.element(\"UnlockSeconds\") do\n xml.text(default_unlock_time.to_s)\n end\n xml.element(\"ForceEvenIfOverridden\") do\n xml.text(\"false\")\n end\n end\nend\nresponse = post(\"/v2/BasicStatus/GrantAccess/#{door_id}\", body: payload)\nresponse.success?\n"}},{"html_id":"update_entry(type:String,id:String,fields:UpdateFields,attribute:String=\"Address\",return_object:Bool=false)-instance-method","name":"update_entry","doc":"use this to update fields in various models, like:\nupdate_entry(type: \"User\", id: \"U5\", fields: {cf_HasMobileCredential: true})","summary":"

use this to update fields in various models, like: update_entry(type: "User", id: "U5", fields: {cf_HasMobileCredential: true})

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, id : String, fields : UpdateFields, attribute : String = \"Address\", return_object : Bool = false)","args_html":"(type : String, id : String, fields : UpdateFields, attribute : String = "Address", return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":499,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L499"},"def":{"name":"update_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"update(type, id, attribute, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"user(id:Int64|String)-instance-method","name":"user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L667"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/User/#{id}?FullObject=true\"))\nextract_full_user(document)\n"}},{"html_id":"user_id_lookup(email:String):Array(String)-instance-method","name":"user_id_lookup","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : Array(String)","args_html":"(email : String) : Array(String)","location":{"filename":"src/inner_range/integriti.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L672"},"def":{"name":"user_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"users(email: email).map() do |__arg4|\n __arg4.address.as(String)\nend"}},{"html_id":"user_permissions(user_id:String|Nil=nil,group_id:String|Nil=nil,externally_managed:Bool|Nil=nil):Array(UserPermission)-instance-method","name":"user_permissions","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","args_html":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","location":{"filename":"src/inner_range/integriti.cr","line_number":705,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L705"},"def":{"name":"user_permissions","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"Array(UserPermission)","visibility":"Public","body":"user_permissions = [] of UserPermission\nfilter = Filter {\"User.Address\" => user_id, \"What.Address\" => group_id, \"ManagedByActiveDirectory\" => externally_managed}\npaginate_request(\"User\", \"UserPermission\", filter) do |row|\n user_permissions << (extract_user_permission(row))\nend\nuser_permissions\n"}},{"html_id":"users(site_id:Int32|Nil=nil,email:String|Nil=nil)-instance-method","name":"users","doc":"users in a site","summary":"

users in a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L651"},"def":{"name":"users","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"users = [] of User\nfilter = Filter {cf_email => email}\npaginate_request(\"User\", \"User\", filter) do |row|\n users << (extract_user(row))\nend\nif site_id\n users.select() do |__arg3|\n __arg3.site_id == site_id\n end\nend\nusers\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/inner_range/integriti.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L85"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" begin\n \n%resp\n = \n{{ response }}\n\n raise \"request failed with #{\n%resp\n.status_code} (#{\n%resp\n.body})\" unless \n%resp\n.success?\n \n%body\n = \n%resp\n.body\n logger.debug \n{ \"response was:\\n#{\n%body\n}\" }\n begin\n XML.parse \n%body\n\n rescue \nerror\n logger.error \n{ \"error: #{error.message}, failed to parse:\\n#{\n%body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}},{"html_id":"define_xml_type(klass,keys,lookup=nil,&block)-macro","name":"define_xml_type","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"args_string":"(klass, keys, lookup = nil, &block)","args_html":"(klass, keys, lookup = nil, &block)","location":{"filename":"src/inner_range/integriti.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L107"},"def":{"name":"define_xml_type","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"block_arg":{"name":"block","external_name":"block","restriction":""},"visibility":"Public","body":" struct \n{{ klass }}\n < IntegritiObject\n \n{% for _node, variable in keys %}\n getter! {{ variable.var }} : {{ variable.type }}\n {% end %}\n\n\n def initialize(\n \n{% for _node, variable in keys %}\n @{{ variable.var }} = nil,\n {% end %}\n\n )\n \nend\n\n \n{% if block %}\n {{ block.body }}\n {% end %}\n\n \nend\n\n \n{% PROPS[lookup || klass.stringify] = keys.keys.join(\",\") %}\n\n\n protected def \nextract_\n{{ klass.id.stringify.underscore.id }}\n(document : XML::Node) : \n{{ klass }}\n\n \n{% for _node, variable in keys %}\n var_{{ variable.var }} = nil\n {% end %}\n\n\n if \n%data\n = document.document? ? document.first_element_child : document\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n if %content = %data[{{ attribute_name }}]?\n\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n {% end %}\n\n\n \n%data\n.children.select(&.element?).each do |child|\n case child.name\n when \"Ref\"\n \n# minimal data provided in attributes\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n {% else %}\n {% attribute_name = node %}\n {% end %}\n\n # ID in ref's are actually the Address in objects\n {% if attribute_name == \"Address\" %}\n {% attribute_name = \"ID\" %}\n {% end %}\n\n if %content = child[{{ attribute_name }}]?\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"cf_\") %}\n # handle custom fields using accessors\n when {{ node.id }}\n {% else %}\n when {{ node.id.stringify }}\n {% end %}\n\n if %content = child.content\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \nend\n \nend\n \nend\n\n \n{{ klass }}\n.new(\n \n{% for node, variable in keys %}\n {{ variable.var }}: var_{{ variable.var }},\n {% end %}\n\n )\n \nend\n \n"}}],"types":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","path":"InnerRange/Integriti/AddOrUpdateResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L437"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|String|Nil=nil,address:Nil|String=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","args_html":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L437"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, address, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64|String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64 | String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/InnerRange/Integriti/AddResult","path":"InnerRange/Integriti/AddResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L401"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L401"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Area","path":"InnerRange/Integriti/Area.html","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L561"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L561"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/Card","path":"InnerRange/Integriti/Card.html","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L826"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,name:Nil|String=nil,card_number_numeric:Int64|Nil=nil,card_number:Nil|String=nil,card_data_hex:Nil|String=nil,card_serial_number:Nil|String=nil,issue_number:Int32|Nil=nil,state:Nil|String=nil,expiry:Nil|String=nil,valid_from:Nil|String=nil,last_used:Nil|String=nil,cloud_credential_id:Nil|String=nil,cloud_credential_type:Nil|String=nil,cloud_credential_pool_id:Nil|String=nil,cloud_credential_invite_id:Nil|String=nil,cloud_credential_invite_code:Nil|String=nil,cloud_credential_comms_handler:Nil|String=nil,active_directory:Bool|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,template:InnerRange::Integriti::CardTemplate|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"args_string":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","args_html":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L826"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, card_number_numeric, card_number, card_data_hex, card_serial_number, issue_number, state, expiry, valid_from, last_used, cloud_credential_id, cloud_credential_type, cloud_credential_pool_id, cloud_credential_invite_id, cloud_credential_invite_code, cloud_credential_comms_handler, active_directory, site, user, template)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"active_directory:Bool-instance-method","name":"active_directory","abstract":false,"def":{"name":"active_directory","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @active_directory).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#active_directory cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"active_directory?:Bool|Nil-instance-method","name":"active_directory?","abstract":false,"def":{"name":"active_directory?","return_type":"Bool | ::Nil","visibility":"Public","body":"@active_directory"}},{"html_id":"card_data_hex:String-instance-method","name":"card_data_hex","abstract":false,"def":{"name":"card_data_hex","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_data_hex).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_data_hex cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_data_hex?:String|Nil-instance-method","name":"card_data_hex?","abstract":false,"def":{"name":"card_data_hex?","return_type":"String | ::Nil","visibility":"Public","body":"@card_data_hex"}},{"html_id":"card_number:String-instance-method","name":"card_number","abstract":false,"def":{"name":"card_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number?:String|Nil-instance-method","name":"card_number?","abstract":false,"def":{"name":"card_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_number"}},{"html_id":"card_number_numeric:Int64-instance-method","name":"card_number_numeric","abstract":false,"def":{"name":"card_number_numeric","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @card_number_numeric).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number_numeric cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number_numeric?:Int64|Nil-instance-method","name":"card_number_numeric?","abstract":false,"def":{"name":"card_number_numeric?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@card_number_numeric"}},{"html_id":"card_serial_number:String-instance-method","name":"card_serial_number","abstract":false,"def":{"name":"card_serial_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_serial_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_serial_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_serial_number?:String|Nil-instance-method","name":"card_serial_number?","abstract":false,"def":{"name":"card_serial_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"cloud_credential_comms_handler:String-instance-method","name":"cloud_credential_comms_handler","abstract":false,"def":{"name":"cloud_credential_comms_handler","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_comms_handler).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_comms_handler cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_comms_handler?:String|Nil-instance-method","name":"cloud_credential_comms_handler?","abstract":false,"def":{"name":"cloud_credential_comms_handler?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_comms_handler"}},{"html_id":"cloud_credential_id:String-instance-method","name":"cloud_credential_id","abstract":false,"def":{"name":"cloud_credential_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_id?:String|Nil-instance-method","name":"cloud_credential_id?","abstract":false,"def":{"name":"cloud_credential_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_id"}},{"html_id":"cloud_credential_invite_code:String-instance-method","name":"cloud_credential_invite_code","abstract":false,"def":{"name":"cloud_credential_invite_code","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_code?:String|Nil-instance-method","name":"cloud_credential_invite_code?","abstract":false,"def":{"name":"cloud_credential_invite_code?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_code"}},{"html_id":"cloud_credential_invite_id:String-instance-method","name":"cloud_credential_invite_id","abstract":false,"def":{"name":"cloud_credential_invite_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_id?:String|Nil-instance-method","name":"cloud_credential_invite_id?","abstract":false,"def":{"name":"cloud_credential_invite_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_id"}},{"html_id":"cloud_credential_pool_id:String-instance-method","name":"cloud_credential_pool_id","abstract":false,"def":{"name":"cloud_credential_pool_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_pool_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_pool_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_pool_id?:String|Nil-instance-method","name":"cloud_credential_pool_id?","abstract":false,"def":{"name":"cloud_credential_pool_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_pool_id"}},{"html_id":"cloud_credential_type:String-instance-method","name":"cloud_credential_type","abstract":false,"def":{"name":"cloud_credential_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_type?:String|Nil-instance-method","name":"cloud_credential_type?","abstract":false,"def":{"name":"cloud_credential_type?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_type"}},{"html_id":"expiry:String-instance-method","name":"expiry","abstract":false,"def":{"name":"expiry","return_type":"String","visibility":"Public","body":"if (__temp_1 = @expiry).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#expiry cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expiry?:String|Nil-instance-method","name":"expiry?","abstract":false,"def":{"name":"expiry?","return_type":"String | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"issue_number:Int32-instance-method","name":"issue_number","abstract":false,"def":{"name":"issue_number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @issue_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#issue_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"issue_number?:Int32|Nil-instance-method","name":"issue_number?","abstract":false,"def":{"name":"issue_number?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_number"}},{"html_id":"last_used:String-instance-method","name":"last_used","abstract":false,"def":{"name":"last_used","return_type":"String","visibility":"Public","body":"if (__temp_1 = @last_used).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#last_used cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"last_used?:String|Nil-instance-method","name":"last_used?","abstract":false,"def":{"name":"last_used?","return_type":"String | ::Nil","visibility":"Public","body":"@last_used"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"String","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:String|Nil-instance-method","name":"state?","abstract":false,"def":{"name":"state?","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"template:CardTemplate-instance-method","name":"template","abstract":false,"def":{"name":"template","return_type":"CardTemplate","visibility":"Public","body":"if (__temp_1 = @template).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#template cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"template?:CardTemplate|Nil-instance-method","name":"template?","abstract":false,"def":{"name":"template?","return_type":"CardTemplate | ::Nil","visibility":"Public","body":"@template"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"valid_from:String-instance-method","name":"valid_from","abstract":false,"def":{"name":"valid_from","return_type":"String","visibility":"Public","body":"if (__temp_1 = @valid_from).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#valid_from cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"valid_from?:String|Nil-instance-method","name":"valid_from?","abstract":false,"def":{"name":"valid_from?","return_type":"String | ::Nil","visibility":"Public","body":"@valid_from"}}]},{"html_id":"drivers/InnerRange/Integriti/CardFormat","path":"InnerRange/Integriti/CardFormat.html","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L804"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L804"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","path":"InnerRange/Integriti/CardTemplate.html","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L814"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site_code:Int64|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,format:InnerRange::Integriti::CardFormat|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L814"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site_code, site, format)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"format:CardFormat-instance-method","name":"format","abstract":false,"def":{"name":"format","return_type":"CardFormat","visibility":"Public","body":"if (__temp_1 = @format).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#format cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"format?:CardFormat|Nil-instance-method","name":"format?","abstract":false,"def":{"name":"format?","return_type":"CardFormat | ::Nil","visibility":"Public","body":"@format"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_code:Int64-instance-method","name":"site_code","abstract":false,"def":{"name":"site_code","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @site_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_code?:Int64|Nil-instance-method","name":"site_code?","abstract":false,"def":{"name":"site_code?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@site_code"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Filter","path":"InnerRange/Integriti/Filter.html","kind":"alias","full_name":"InnerRange::Integriti::Filter","name":"Filter","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L245"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/FullUser","path":"InnerRange/Integriti/FullUser.html","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L630"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L641"},"def":{"name":"site_id","visibility":"Public","body":"site.id"}},{"html_id":"site_name-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L645"},"def":{"name":"site_name","visibility":"Public","body":"site.name"}}]},{"html_id":"drivers/InnerRange/Integriti/Guest","path":"InnerRange/Integriti/Guest.html","kind":"class","full_name":"InnerRange::Integriti::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1082"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(user_id:String,permission_id:String,card_hex:String)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"args_string":"(user_id : String, permission_id : String, card_hex : String)","args_html":"(user_id : String, permission_id : String, card_hex : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1086,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1086"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, permission_id, card_hex)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1082"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"permission_id:String-instance-method","name":"permission_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id","return_type":"String","visibility":"Public","body":"@permission_id"}},{"html_id":"permission_id=(permission_id:String)-instance-method","name":"permission_id=","abstract":false,"args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(permission_id : String)","args_html":"(permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id=","args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"@permission_id = permission_id"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","path":"InnerRange/Integriti/IntegritiDoor.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L946"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L946"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","path":"InnerRange/Integriti/IntegritiObject.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult"},{"html_id":"drivers/InnerRange/Integriti/AddResult","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult"},{"html_id":"drivers/InnerRange/Integriti/Area","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area"},{"html_id":"drivers/InnerRange/Integriti/Card","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card"},{"html_id":"drivers/InnerRange/Integriti/CardFormat","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat"},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate"},{"html_id":"drivers/InnerRange/Integriti/FullUser","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser"},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor"},{"html_id":"drivers/InnerRange/Integriti/Partition","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition"},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup"},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult"},{"html_id":"drivers/InnerRange/Integriti/Review","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review"},{"html_id":"drivers/InnerRange/Integriti/Site","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site"},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo"},{"html_id":"drivers/InnerRange/Integriti/User","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User"},{"html_id":"drivers/InnerRange/Integriti/UserPermission","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/InnerRange/Integriti/Partition","path":"InnerRange/Integriti/Partition.html","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L588"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,parent_id:Int32|Nil=nil,partition_id:Int32|Nil=nil,short_name:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L588"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, parent_id, partition_id, short_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"parent_id:Int32-instance-method","name":"parent_id","abstract":false,"def":{"name":"parent_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @parent_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#parent_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"parent_id?:Int32|Nil-instance-method","name":"parent_id?","abstract":false,"def":{"name":"parent_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"short_name:String-instance-method","name":"short_name","abstract":false,"def":{"name":"short_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @short_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#short_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"short_name?:String|Nil-instance-method","name":"short_name?","abstract":false,"def":{"name":"short_name?","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}}]},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","path":"InnerRange/Integriti/PermissionGroup.html","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L507"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(partition_id:Int32|Nil=nil,site_name:Nil|String=nil,site_id:Int32|Nil=nil,id:Int64|Nil=nil,name:Nil|String=nil,address:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"args_string":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","args_html":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L507"},"def":{"name":"new","args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(partition_id, site_name, site_id, id, name, address)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Ref","path":"InnerRange/Integriti/Ref.html","kind":"struct","full_name":"InnerRange::Integriti::Ref","name":"Ref","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L414"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(type:String,id:String,partition_id:Int32|String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"args_string":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","args_html":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":421,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L421"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L415"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L418"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"partition_id:String|Int32|Nil-instance-method","name":"partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L419"},"def":{"name":"partition_id","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"to_xml(xml)-instance-method","name":"to_xml","abstract":false,"args":[{"name":"xml","external_name":"xml","restriction":""}],"args_string":"(xml)","args_html":"(xml)","location":{"filename":"src/inner_range/integriti.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L424"},"def":{"name":"to_xml","args":[{"name":"xml","external_name":"xml","restriction":""}],"visibility":"Public","body":"xml.element(\"Ref\", {\"Type\" => type, \"PartitionID\" => partition_id, \"ID\" => id}.compact!)"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L417"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","path":"InnerRange/Integriti/RemoveResult.html","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L396"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L396"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Review","path":"InnerRange/Integriti/Review.html","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L973"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,text:Nil|String=nil,time_generated:Time|Nil=nil,event_type:Nil|String=nil,transition:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"args_string":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","args_html":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L973"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, text, time_generated, event_type, transition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @event_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#event_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"event_type?:String|Nil-instance-method","name":"event_type?","abstract":false,"def":{"name":"event_type?","return_type":"String | ::Nil","visibility":"Public","body":"@event_type"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"def":{"name":"text","return_type":"String","visibility":"Public","body":"if (__temp_1 = @text).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#text cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"text?:String|Nil-instance-method","name":"text?","abstract":false,"def":{"name":"text?","return_type":"String | ::Nil","visibility":"Public","body":"@text"}},{"html_id":"time_gen_ms:String-instance-method","name":"time_gen_ms","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":980,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L980"},"def":{"name":"time_gen_ms","return_type":"String","visibility":"Public","body":"if (__temp_1 = @time_gen_ms).nil?\n @time_gen_ms = (time_generated.to_s(TIME_FORMAT))\nelse\n __temp_1\nend"}},{"html_id":"time_generated:Time-instance-method","name":"time_generated","abstract":false,"def":{"name":"time_generated","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_generated).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#time_generated cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_generated?:Time|Nil-instance-method","name":"time_generated?","abstract":false,"def":{"name":"time_generated?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_generated"}},{"html_id":"transition:String-instance-method","name":"transition","abstract":false,"def":{"name":"transition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @transition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#transition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"transition?:String|Nil-instance-method","name":"transition?","abstract":false,"def":{"name":"transition?","return_type":"String | ::Nil","visibility":"Public","body":"@transition"}}]},{"html_id":"drivers/InnerRange/Integriti/Site","path":"InnerRange/Integriti/Site.html","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L537"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,partition_id:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L537"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}}]},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","path":"InnerRange/Integriti/SystemInfo.html","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L369"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(edition:Nil|String=nil,version:Nil|String=nil,protocol:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"args_string":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","args_html":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L369"},"def":{"name":"new","args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(edition, version, protocol)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"edition:String-instance-method","name":"edition","abstract":false,"def":{"name":"edition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @edition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#edition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"edition?:String|Nil-instance-method","name":"edition?","abstract":false,"def":{"name":"edition?","return_type":"String | ::Nil","visibility":"Public","body":"@edition"}},{"html_id":"protocol:Int32-instance-method","name":"protocol","abstract":false,"def":{"name":"protocol","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @protocol).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#protocol cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"protocol?:Int32|Nil-instance-method","name":"protocol?","abstract":false,"def":{"name":"protocol?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@protocol"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"String","visibility":"Public","body":"if (__temp_1 = @version).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#version cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"version?:String|Nil-instance-method","name":"version?","abstract":false,"def":{"name":"version?","return_type":"String | ::Nil","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/InnerRange/Integriti/UpdateFields","path":"InnerRange/Integriti/UpdateFields.html","kind":"alias","full_name":"InnerRange::Integriti::UpdateFields","name":"UpdateFields","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L443"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/User","path":"InnerRange/Integriti/User.html","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L617"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L617"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/UserPermission","path":"InnerRange/Integriti/UserPermission.html","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L693"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,group:InnerRange::Integriti::PermissionGroup|Nil=nil,externally_managed:Bool|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,deny:Bool|Nil=nil,expired:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"args_string":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","args_html":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti.cr#L693"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, group, externally_managed, user, deny, expired)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"deny:Bool-instance-method","name":"deny","abstract":false,"def":{"name":"deny","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @deny).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#deny cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"deny?:Bool|Nil-instance-method","name":"deny?","abstract":false,"def":{"name":"deny?","return_type":"Bool | ::Nil","visibility":"Public","body":"@deny"}},{"html_id":"expired:Bool-instance-method","name":"expired","abstract":false,"def":{"name":"expired","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @expired).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#expired cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expired?:Bool|Nil-instance-method","name":"expired?","abstract":false,"def":{"name":"expired?","return_type":"Bool | ::Nil","visibility":"Public","body":"@expired"}},{"html_id":"externally_managed:Bool-instance-method","name":"externally_managed","abstract":false,"def":{"name":"externally_managed","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @externally_managed).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#externally_managed cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"externally_managed?:Bool|Nil-instance-method","name":"externally_managed?","abstract":false,"def":{"name":"externally_managed?","return_type":"Bool | ::Nil","visibility":"Public","body":"@externally_managed"}},{"html_id":"group:PermissionGroup-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"group?:PermissionGroup|Nil-instance-method","name":"group?","abstract":false,"def":{"name":"group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/InnerRange/IntegritiUserSync","path":"InnerRange/IntegritiUserSync.html","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"graph_group_id:String-instance-method","name":"graph_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L50"},"def":{"name":"graph_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @graph_group_id).nil?\n @graph_group_id = (if user_group_id.includes?('@')\n (directory.get_group(user_group_id)).get[\"id\"].as_s\n else\n user_group_id\n end)\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group:String-instance-method","name":"integriti_security_group","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group","return_type":"String","visibility":"Public","body":"if (__temp_1 = @integriti_security_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#integriti_security_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group?:String|Nil-instance-method","name":"integriti_security_group?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group?","return_type":"String | ::Nil","visibility":"Public","body":"@integriti_security_group"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@time_zone_string = ((setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence) || \"GMT\"\n@time_zone = Time::Location.load(@time_zone_string)\n@sync_cron = (setting?(String, :sync_cron)).presence || \"0 21 * * *\"\n@user_group_id = setting(String, :user_group_id)\n@integriti_security_group = setting(String, :integriti_security_group)\n@graph_group_id = nil\nschedule.clear\nschedule.cron(@sync_cron, @time_zone) do\n sync_users\nend\nif (setting?(String, :push_notification_url)).presence\n push_notificaitons_configure\nend\n"}},{"html_id":"perform_user_sync-instance-method","name":"perform_user_sync","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L70"},"def":{"name":"perform_user_sync","visibility":"Public","body":"if @syncing\n return \"already syncing\"\nend\n@sync_mutex.synchronize do\n begin\n @syncing = true\n @sync_requests = 0\n sync_users\n ensure\n @syncing = false\n end\nend\nif @sync_requests > 0\n spawn do\n perform_user_sync\n end\nend\n"}},{"html_id":"sync_cron:String-instance-method","name":"sync_cron","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L59"},"def":{"name":"sync_cron","return_type":"String","visibility":"Public","body":"@sync_cron"}},{"html_id":"time_zone_string:String-instance-method","name":"time_zone_string","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L58"},"def":{"name":"time_zone_string","return_type":"String","visibility":"Public","body":"@time_zone_string"}},{"html_id":"user_group_id:String-instance-method","name":"user_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_group_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#user_group_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_group_id?:String|Nil-instance-method","name":"user_group_id?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id?","return_type":"String | ::Nil","visibility":"Public","body":"@user_group_id"}}],"types":[{"html_id":"drivers/InnerRange/IntegritiUserSync/DirUser","path":"InnerRange/IntegritiUserSync/DirUser.html","kind":"alias","full_name":"InnerRange::IntegritiUserSync::DirUser","name":"DirUser","abstract":false,"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/inner_range/integriti_user_sync.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Member","aliased_html":"PlaceCalendar::Member","const":false,"namespace":{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}}]}]},{"html_id":"drivers/JohnsonControls","path":"JohnsonControls.html","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls","abstract":false,"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"Time::Format.new(\"%FT%TZ\")"}],"types":[{"html_id":"drivers/JohnsonControls/Attribute","path":"JohnsonControls/Attribute.html","kind":"class","full_name":"JohnsonControls::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"smaples_url:String-instance-method","name":"smaples_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url","return_type":"String","visibility":"Public","body":"@smaples_url"}},{"html_id":"smaples_url=(smaples_url:String)-instance-method","name":"smaples_url=","abstract":false,"args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"args_string":"(smaples_url : String)","args_html":"(smaples_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url=","args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"visibility":"Public","body":"@smaples_url = smaples_url"}}]},{"html_id":"drivers/JohnsonControls/AuthResponse","path":"JohnsonControls/AuthResponse.html","kind":"class","full_name":"JohnsonControls::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires:Time-instance-method","name":"expires","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires","return_type":"Time","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"args_string":"(expires : Time)","args_html":"(expires : Time)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"visibility":"Public","body":"@expires = expires"}}]},{"html_id":"drivers/JohnsonControls/Command","path":"JohnsonControls/Command.html","kind":"class","full_name":"JohnsonControls::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L190"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command_id:String-instance-method","name":"command_id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id","return_type":"String","visibility":"Public","body":"@command_id"}},{"html_id":"command_id=(command_id:String)-instance-method","name":"command_id=","abstract":false,"args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"args_string":"(command_id : String)","args_html":"(command_id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id=","args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"visibility":"Public","body":"@command_id = command_id"}},{"html_id":"items:Array(JSON::Any)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items","return_type":"Array(JSON::Any)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(JSON::Any))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"args_string":"(items : Array(JSON::Any))","args_html":"(items : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"maximum_items:Int32-instance-method","name":"maximum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items","return_type":"Int32","visibility":"Public","body":"@maximum_items"}},{"html_id":"maximum_items=(maximum_items:Int32)-instance-method","name":"maximum_items=","abstract":false,"args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"args_string":"(maximum_items : Int32)","args_html":"(maximum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items=","args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"visibility":"Public","body":"@maximum_items = maximum_items"}},{"html_id":"minimum_items:Int32-instance-method","name":"minimum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items","return_type":"Int32","visibility":"Public","body":"@minimum_items"}},{"html_id":"minimum_items=(minimum_items:Int32)-instance-method","name":"minimum_items=","abstract":false,"args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"args_string":"(minimum_items : Int32)","args_html":"(minimum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items=","args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"visibility":"Public","body":"@minimum_items = minimum_items"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/JohnsonControls/Equipment","path":"JohnsonControls/Equipment.html","kind":"class","full_name":"JohnsonControls::Equipment","name":"Equipment","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_url:String-instance-method","name":"equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url","return_type":"String","visibility":"Public","body":"@equipment_url"}},{"html_id":"equipment_url=(equipment_url:String)-instance-method","name":"equipment_url=","abstract":false,"args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"args_string":"(equipment_url : String)","args_html":"(equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url=","args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"visibility":"Public","body":"@equipment_url = equipment_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"spaces_url:String-instance-method","name":"spaces_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url","return_type":"String","visibility":"Public","body":"@spaces_url"}},{"html_id":"spaces_url=(spaces_url:String)-instance-method","name":"spaces_url=","abstract":false,"args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"args_string":"(spaces_url : String)","args_html":"(spaces_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url=","args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"visibility":"Public","body":"@spaces_url = spaces_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"upstream_equipment_url:String-instance-method","name":"upstream_equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url","return_type":"String","visibility":"Public","body":"@upstream_equipment_url"}},{"html_id":"upstream_equipment_url=(upstream_equipment_url:String)-instance-method","name":"upstream_equipment_url=","abstract":false,"args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"args_string":"(upstream_equipment_url : String)","args_html":"(upstream_equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url=","args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"visibility":"Public","body":"@upstream_equipment_url = upstream_equipment_url"}}]},{"html_id":"drivers/JohnsonControls/EquipmentPoints","path":"JohnsonControls/EquipmentPoints.html","kind":"class","full_name":"JohnsonControls::EquipmentPoints","name":"EquipmentPoints","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(Point))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"@points = points"}}]},{"html_id":"drivers/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse","path":"JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html","kind":"class","full_name":"JohnsonControls::GetEquipmentHostedByNetworkDeviceResponse","name":"GetEquipmentHostedByNetworkDeviceResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L171"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Equipment)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items","return_type":"Array(Equipment)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Equipment))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"args_string":"(items : Array(Equipment))","args_html":"(items : Array(Equipment))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetNetworkDeviceChildrenResponse","path":"JohnsonControls/GetNetworkDeviceChildrenResponse.html","kind":"class","full_name":"JohnsonControls::GetNetworkDeviceChildrenResponse","name":"GetNetworkDeviceChildrenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L139"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(NetworkDevice)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items","return_type":"Array(NetworkDevice)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(NetworkDevice))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"args_string":"(items : Array(NetworkDevice))","args_html":"(items : Array(NetworkDevice))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetObjectAttributesWithSamplesResponse","path":"JohnsonControls/GetObjectAttributesWithSamplesResponse.html","kind":"class","full_name":"JohnsonControls::GetObjectAttributesWithSamplesResponse","name":"GetObjectAttributesWithSamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L157"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L158"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Attribute)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items","return_type":"Array(Attribute)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Attribute))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"args_string":"(items : Array(Attribute))","args_html":"(items : Array(Attribute))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSamplesForAnObjectAttributeResponse","path":"JohnsonControls/GetSamplesForAnObjectAttributeResponse.html","kind":"class","full_name":"JohnsonControls::GetSamplesForAnObjectAttributeResponse","name":"GetSamplesForAnObjectAttributeResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L114"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"items:Array(Sample)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items","return_type":"Array(Sample)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Sample))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"args_string":"(items : Array(Sample))","args_html":"(items : Array(Sample))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","path":"JohnsonControls/GetSingleObjectPresentValueResponse.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L232"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"item:Item-instance-method","name":"item","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item","return_type":"Item","visibility":"Public","body":"@item"}},{"html_id":"item=(item:Item)-instance-method","name":"item=","abstract":false,"args":[{"name":"item","external_name":"item","restriction":"Item"}],"args_string":"(item : Item)","args_html":"(item : Item)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item=","args":[{"name":"item","external_name":"item","restriction":"Item"}],"visibility":"Public","body":"@item = item"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L235"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"presentValue:Value-instance-method","name":"presentValue","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue","return_type":"Value","visibility":"Public","body":"@presentValue"}},{"html_id":"presentValue=(presentValue:Value)-instance-method","name":"presentValue=","abstract":false,"args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"args_string":"(presentValue : Value)","args_html":"(presentValue : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue=","args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"visibility":"Public","body":"@presentValue = presentValue"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L237"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L238"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"reliability:String|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability","return_type":"String | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:String|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"args_string":"(reliability : String | Nil)","args_html":"(reliability : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"value:String|Nil-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value","return_type":"String | ::Nil","visibility":"Public","body":"@value"}},{"html_id":"value=(value:String|Nil)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(value : String | Nil)","args_html":"(value : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"visibility":"Public","body":"@value = value"}}]}]}]},{"html_id":"drivers/JohnsonControls/Item","path":"JohnsonControls/Item.html","kind":"class","full_name":"JohnsonControls::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L264"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L265"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"value:Value-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value","return_type":"Value","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Value)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Value"}],"args_string":"(value : Value)","args_html":"(value : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Value"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/Metasys","path":"JohnsonControls/Metasys.html","kind":"class","full_name":"JohnsonControls::Metasys","name":"Metasys","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CONTENT_TYPE","name":"CONTENT_TYPE","value":"\"application/json\""}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L268"},"def":{"name":"count","visibility":"Public","body":"@count"}},{"html_id":"get_attribute_value(id:String):Float64-instance-method","name":"get_attribute_value","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Float64","args_html":"(id : String) : Float64","location":{"filename":"src/johnson_controls/metasys.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L94"},"def":{"name":"get_attribute_value","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Float64","visibility":"Public","body":"current_time = Time.utc\nshort_while_ago = Time.utc - (@poll_interval_seconds * 2).seconds\nresponse = get_request(\"/objects/#{id}/attributes/85/samples\", start_time: short_while_ago.to_rfc3339, end_time: current_time.to_rfc3339, page_size: 1, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n(SamplesResponse.from_json(response.body)).items.first.value.actual\n"}},{"html_id":"get_commands_for_an_object(id:String):Array(Command)-instance-method","name":"get_commands_for_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Array(Command)","args_html":"(id : String) : Array(Command)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L168"},"def":{"name":"get_commands_for_an_object","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Array(Command)","visibility":"Public","body":"response = get_request(\"/objects/#{id}/commands\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nArray(Command).from_json(response.body)\n"}},{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L232"},"def":{"name":"get_data","visibility":"Public","body":"{data: self[:data], averages: self[:averages]}"}},{"html_id":"get_equipment_hosted_by_network_device(id:String,page:Int32=1,page_size:Int32=10):GetEquipmentHostedByNetworkDeviceResponse-instance-method","name":"get_equipment_hosted_by_network_device","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L129"},"def":{"name":"get_equipment_hosted_by_network_device","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetEquipmentHostedByNetworkDeviceResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/equipment\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetEquipmentHostedByNetworkDeviceResponse.from_json(response.body)\n"}},{"html_id":"get_equipment_points(id:String):EquipmentPoints-instance-method","name":"get_equipment_points","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : EquipmentPoints","args_html":"(id : String) : EquipmentPoints","location":{"filename":"src/johnson_controls/metasys.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L87"},"def":{"name":"get_equipment_points","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"EquipmentPoints","visibility":"Public","body":"response = get_request(\"/equipment/#{id}/points\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nEquipmentPoints.from_json(response.body)\n"}},{"html_id":"get_network_device_children(id:String,page:Int32=1,page_size:Int32=10):GetNetworkDeviceChildrenResponse-instance-method","name":"get_network_device_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L118"},"def":{"name":"get_network_device_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetNetworkDeviceChildrenResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/objects\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetNetworkDeviceChildrenResponse.from_json(response.body)\n"}},{"html_id":"get_object_attributes_with_samples(id:String):GetObjectAttributesWithSamplesResponse-instance-method","name":"get_object_attributes_with_samples","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetObjectAttributesWithSamplesResponse","args_html":"(id : String) : GetObjectAttributesWithSamplesResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L140"},"def":{"name":"get_object_attributes_with_samples","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetObjectAttributesWithSamplesResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/trendedAttributes\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetObjectAttributesWithSamplesResponse.from_json(response.body)\n"}},{"html_id":"get_request_debug(path:String,**params)-instance-method","name":"get_request_debug","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, **params)","args_html":"(path : String, **params)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L252"},"def":{"name":"get_request_debug","args":[{"name":"path","external_name":"path","restriction":"String"}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":"response = get_request(path, **params)\nparsed_json_body = begin\n JSON.parse(response.body)\nrescue ex : JSON::ParseException\n ex.to_s\nend\n{body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\n"}},{"html_id":"get_samples_for_an_object_attribute(id:String,attribute_id:String,start_time:String,end_time:String,page:Int32=1,page_size:Int32=10):GetSamplesForAnObjectAttributeResponse-instance-method","name":"get_samples_for_an_object_attribute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","args_html":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L154"},"def":{"name":"get_samples_for_an_object_attribute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetSamplesForAnObjectAttributeResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/#{attribute_id}/samples\", start_time: start_time, end_time: end_time, page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSamplesForAnObjectAttributeResponse.from_json(response.body)\n"}},{"html_id":"get_single_object_presentValue(id:String):GetSingleObjectPresentValueResponse-instance-method","name":"get_single_object_presentValue","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetSingleObjectPresentValueResponse","args_html":"(id : String) : GetSingleObjectPresentValueResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L147"},"def":{"name":"get_single_object_presentValue","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetSingleObjectPresentValueResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/presentValue\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSingleObjectPresentValueResponse.from_json(response.body)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L36"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"received login response #{response.body}\"\nend\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_token_debug-instance-method","name":"get_token_debug","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L59"},"def":{"name":"get_token_debug","visibility":"Public","body":"response = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n parsed_json_body = begin\n JSON.parse(response.body)\n rescue ex : JSON::ParseException\n ex.to_s\n end\n {body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\nend\n"}},{"html_id":"lookup_object_id(fqr:String):String-instance-method","name":"lookup_object_id","abstract":false,"args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"args_string":"(fqr : String) : String","args_html":"(fqr : String) : String","location":{"filename":"src/johnson_controls/metasys.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L111"},"def":{"name":"lookup_object_id","args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get_request(\"/objectIdentifiers?fqr=#{fqr}\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body.to_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@equipment_ids_and_attributes = (setting?(Hash(String, Array(String)), :equipment_ids_and_attributes)) || ({} of String => Array(String))\n@poll_interval_seconds = (setting?(Int32, :poll_interval_seconds)) || 300\n@count = 0\nschedule.every(@poll_interval_seconds.seconds, true) do\n update_data\nend\n"}},{"html_id":"send_command_to_an_object(id:String,command_id:String,body:Array(JSON::Any))-instance-method","name":"send_command_to_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"args_string":"(id : String, command_id : String, body : Array(JSON::Any))","args_html":"(id : String, command_id : String, body : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L175"},"def":{"name":"send_command_to_an_object","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"response = put_request(\"/objects/#{id}/commands/#{command_id}\", body: body)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L32"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry <= Time.utc"}},{"html_id":"update_data-instance-method","name":"update_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys.cr#L180"},"def":{"name":"update_data","visibility":"Public","body":"debug = {} of String => Hash(String, Float64)\ndata = {} of String => Hash(String, Float64)\n@equipment_ids_and_attributes.each do |id, attributes|\n equipment_points = get_equipment_points(id)\n equipment_points.points.each do |p|\n if attributes.includes?(p.name)\n else\n next\n end\n __temp_762 = p.equipment_name\n data[__temp_762]? || (data[__temp_762] = {} of String => Float64)\n __temp_764 = p.equipment_name\n debug[__temp_764]? || (debug[__temp_764] = {} of String => Float64)\n object_id = (p.object_url.split('/')).last\n value = get_attribute_value(object_id)\n data[p.equipment_name][p.name] = value\n debug[p.equipment_name][p.object_url] = value\n end\nend\naverages = calculate_averages(data)\n{data: self[:data] = data, count: @count, equipment_ids_and_attributes: @equipment_ids_and_attributes, debug: debug, averages: self[:averages] = averages}\n"}}]},{"html_id":"drivers/JohnsonControls/NetworkDevice","path":"JohnsonControls/NetworkDevice.html","kind":"class","full_name":"JohnsonControls::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alarms_url:String-instance-method","name":"alarms_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url","return_type":"String","visibility":"Public","body":"@alarms_url"}},{"html_id":"alarms_url=(alarms_url:String)-instance-method","name":"alarms_url=","abstract":false,"args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"args_string":"(alarms_url : String)","args_html":"(alarms_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url=","args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"visibility":"Public","body":"@alarms_url = alarms_url"}},{"html_id":"audits_url:String-instance-method","name":"audits_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url","return_type":"String","visibility":"Public","body":"@audits_url"}},{"html_id":"audits_url=(audits_url:String)-instance-method","name":"audits_url=","abstract":false,"args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"args_string":"(audits_url : String)","args_html":"(audits_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url=","args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"visibility":"Public","body":"@audits_url = audits_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"objects_url:String-instance-method","name":"objects_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url","return_type":"String","visibility":"Public","body":"@objects_url"}},{"html_id":"objects_url=(objects_url:String)-instance-method","name":"objects_url=","abstract":false,"args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"args_string":"(objects_url : String)","args_html":"(objects_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url=","args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"visibility":"Public","body":"@objects_url = objects_url"}},{"html_id":"parent_url:String-instance-method","name":"parent_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url","return_type":"String","visibility":"Public","body":"@parent_url"}},{"html_id":"parent_url=(parent_url:String)-instance-method","name":"parent_url=","abstract":false,"args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"args_string":"(parent_url : String)","args_html":"(parent_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url=","args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"visibility":"Public","body":"@parent_url = parent_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"trended_attributes_url:String-instance-method","name":"trended_attributes_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url","return_type":"String","visibility":"Public","body":"@trended_attributes_url"}},{"html_id":"trended_attributes_url=(trended_attributes_url:String)-instance-method","name":"trended_attributes_url=","abstract":false,"args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"args_string":"(trended_attributes_url : String)","args_html":"(trended_attributes_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url=","args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"visibility":"Public","body":"@trended_attributes_url = trended_attributes_url"}},{"html_id":"type_url:String-instance-method","name":"type_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url","return_type":"String","visibility":"Public","body":"@type_url"}},{"html_id":"type_url=(type_url:String)-instance-method","name":"type_url=","abstract":false,"args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"args_string":"(type_url : String)","args_html":"(type_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url=","args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"visibility":"Public","body":"@type_url = type_url"}}]},{"html_id":"drivers/JohnsonControls/Point","path":"JohnsonControls/Point.html","kind":"class","full_name":"JohnsonControls::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_name:String-instance-method","name":"equipment_name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name","return_type":"String","visibility":"Public","body":"@equipment_name"}},{"html_id":"equipment_name=(equipment_name:String)-instance-method","name":"equipment_name=","abstract":false,"args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"args_string":"(equipment_name : String)","args_html":"(equipment_name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name=","args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"visibility":"Public","body":"@equipment_name = equipment_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}}]},{"html_id":"drivers/JohnsonControls/Sample","path":"JohnsonControls/Sample.html","kind":"class","full_name":"JohnsonControls::Sample","name":"Sample","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L100"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L101"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"reliable:Bool-instance-method","name":"reliable","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable","return_type":"Bool","visibility":"Public","body":"@reliable"}},{"html_id":"reliable=(reliable:Bool)-instance-method","name":"reliable=","abstract":false,"args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"args_string":"(reliable : Bool)","args_html":"(reliable : Bool)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable=","args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"visibility":"Public","body":"@reliable = reliable"}},{"html_id":"timestamp:String-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp","return_type":"String","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:String)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"args_string":"(timestamp : String)","args_html":"(timestamp : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"value:Hash(String,JSON::Any)-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Hash(String,JSON::Any))-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"args_string":"(value : Hash(String, JSON::Any))","args_html":"(value : Hash(String, JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/SamplesResponse","path":"JohnsonControls/SamplesResponse.html","kind":"class","full_name":"JohnsonControls::SamplesResponse","name":"SamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L258"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L259"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Item)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items","return_type":"Array(Item)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Item))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"args_string":"(items : Array(Item))","args_html":"(items : Array(Item))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"visibility":"Public","body":"@items = items"}}]},{"html_id":"drivers/JohnsonControls/Value","path":"JohnsonControls/Value.html","kind":"class","full_name":"JohnsonControls::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual:Float64-instance-method","name":"actual","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual","return_type":"Float64","visibility":"Public","body":"@actual"}},{"html_id":"actual=(actual:Float64)-instance-method","name":"actual=","abstract":false,"args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"args_string":"(actual : Float64)","args_html":"(actual : Float64)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual=","args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"visibility":"Public","body":"@actual = actual"}}]}]},{"html_id":"drivers/Juniper","path":"Juniper.html","kind":"module","full_name":"Juniper","name":"Juniper","abstract":false,"locations":[{"filename":"src/juniper/mist_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Juniper/Client","path":"Juniper/Client.html","kind":"class","full_name":"Juniper::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L76"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L108"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L85"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L85"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L114"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L114"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L78"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L78"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L86"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L86"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L83"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L83"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L81"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L81"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L98"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L98"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L99"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L99"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientLocation","path":"Juniper/ClientLocation.html","kind":"struct","full_name":"Juniper::ClientLocation","name":"ClientLocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L159"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L145"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L145"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L149"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L149"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L150"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L150"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientStats","path":"Juniper/ClientStats.html","kind":"struct","full_name":"Juniper::ClientStats","name":"ClientStats","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L127"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L127"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L139"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L139"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L120"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L120"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L128"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L128"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L125"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L125"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L123"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L123"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}}]},{"html_id":"drivers/Juniper/Guest","path":"Juniper/Guest.html","kind":"class","full_name":"Juniper::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"authorized:Bool-instance-method","name":"authorized","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized","return_type":"Bool","visibility":"Public","body":"@authorized"}},{"html_id":"authorized=(authorized:Bool)-instance-method","name":"authorized=","abstract":false,"args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"args_string":"(authorized : Bool)","args_html":"(authorized : Bool)","location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized=","args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"visibility":"Public","body":"@authorized = authorized"}},{"html_id":"authorized_expiring_time:Int64|Nil-instance-method","name":"authorized_expiring_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_expiring_time"}},{"html_id":"authorized_expiring_time=(authorized_expiring_time:Int64|Nil)-instance-method","name":"authorized_expiring_time=","abstract":false,"args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_expiring_time : Int64 | Nil)","args_html":"(authorized_expiring_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time=","args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_expiring_time = authorized_expiring_time"}},{"html_id":"authorized_time:Int64|Nil-instance-method","name":"authorized_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_time"}},{"html_id":"authorized_time=(authorized_time:Int64|Nil)-instance-method","name":"authorized_time=","abstract":false,"args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_time : Int64 | Nil)","args_html":"(authorized_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time=","args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_time = authorized_time"}},{"html_id":"company:String|Nil-instance-method","name":"company","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L174"},"def":{"name":"company","return_type":"String | ::Nil","visibility":"Public","body":"@company"}},{"html_id":"company=(company:String|Nil)-instance-method","name":"company=","abstract":false,"args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"args_string":"(company : String | Nil)","args_html":"(company : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L174"},"def":{"name":"company=","args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"visibility":"Public","body":"@company = company"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L173"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L173"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L172"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/LatLng","path":"Juniper/LatLng.html","kind":"struct","full_name":"Juniper::LatLng","name":"LatLng","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L71"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L71"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L72"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L72"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]},{"html_id":"drivers/Juniper/LocationAsset","path":"Juniper/LocationAsset.html","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L236"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L236"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"battery_voltage:Float64|Nil-instance-method","name":"battery_voltage","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage","return_type":"Float64 | ::Nil","visibility":"Public","body":"@battery_voltage"}},{"html_id":"battery_voltage=(battery_voltage:Float64|Nil)-instance-method","name":"battery_voltage=","abstract":false,"args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"args_string":"(battery_voltage : Float64 | Nil)","args_html":"(battery_voltage : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage=","args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@battery_voltage = battery_voltage"}},{"html_id":"eddystone_uid_instance:String|Nil-instance-method","name":"eddystone_uid_instance","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_instance"}},{"html_id":"eddystone_uid_instance=(eddystone_uid_instance:String|Nil)-instance-method","name":"eddystone_uid_instance=","abstract":false,"args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_instance : String | Nil)","args_html":"(eddystone_uid_instance : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance=","args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_instance = eddystone_uid_instance"}},{"html_id":"eddystone_uid_namespace:String|Nil-instance-method","name":"eddystone_uid_namespace","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_namespace"}},{"html_id":"eddystone_uid_namespace=(eddystone_uid_namespace:String|Nil)-instance-method","name":"eddystone_uid_namespace=","abstract":false,"args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_namespace : String | Nil)","args_html":"(eddystone_uid_namespace : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace=","args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_namespace = eddystone_uid_namespace"}},{"html_id":"eddystone_url_url:String|Nil-instance-method","name":"eddystone_url_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_url_url"}},{"html_id":"eddystone_url_url=(eddystone_url_url:String|Nil)-instance-method","name":"eddystone_url_url=","abstract":false,"args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"args_string":"(eddystone_url_url : String | Nil)","args_html":"(eddystone_url_url : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url=","args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_url_url = eddystone_url_url"}},{"html_id":"ibeacon_major:Int64|Nil-instance-method","name":"ibeacon_major","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_major"}},{"html_id":"ibeacon_major=(ibeacon_major:Int64|Nil)-instance-method","name":"ibeacon_major=","abstract":false,"args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_major : Int64 | Nil)","args_html":"(ibeacon_major : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major=","args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_major = ibeacon_major"}},{"html_id":"ibeacon_minor:Int64|Nil-instance-method","name":"ibeacon_minor","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_minor"}},{"html_id":"ibeacon_minor=(ibeacon_minor:Int64|Nil)-instance-method","name":"ibeacon_minor=","abstract":false,"args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_minor : Int64 | Nil)","args_html":"(ibeacon_minor : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor=","args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_minor = ibeacon_minor"}},{"html_id":"ibeacon_uuid:String|Nil-instance-method","name":"ibeacon_uuid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid","return_type":"String | ::Nil","visibility":"Public","body":"@ibeacon_uuid"}},{"html_id":"ibeacon_uuid=(ibeacon_uuid:String|Nil)-instance-method","name":"ibeacon_uuid=","abstract":false,"args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"args_string":"(ibeacon_uuid : String | Nil)","args_html":"(ibeacon_uuid : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid=","args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ibeacon_uuid = ibeacon_uuid"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L238"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L238"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"mfg_company_id:Int64|Nil-instance-method","name":"mfg_company_id","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mfg_company_id"}},{"html_id":"mfg_company_id=(mfg_company_id:Int64|Nil)-instance-method","name":"mfg_company_id=","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"args_string":"(mfg_company_id : Int64 | Nil)","args_html":"(mfg_company_id : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id=","args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@mfg_company_id = mfg_company_id"}},{"html_id":"mfg_data:String|Nil-instance-method","name":"mfg_data","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data","return_type":"String | ::Nil","visibility":"Public","body":"@mfg_data"}},{"html_id":"mfg_data=(mfg_data:String|Nil)-instance-method","name":"mfg_data=","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"args_string":"(mfg_data : String | Nil)","args_html":"(mfg_data : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data=","args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mfg_data = mfg_data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L237"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationEvent","path":"Juniper/LocationEvent.html","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationAsset","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset"},{"html_id":"drivers/Juniper/LocationSDK","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK"},{"html_id":"drivers/Juniper/LocationWifi","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L218"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"sdk\"\n LocationSDK.from_json(json)\nwhen \"wifi\"\n LocationWifi.from_json(json)\nwhen \"asset\"\n LocationAsset.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L214"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L214"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L215"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L215"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Juniper/LocationEvents","path":"Juniper/LocationEvents.html","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L196"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(LocationEvent)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L198"},"def":{"name":"events","return_type":"Array(LocationEvent)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L197"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/LocationSDK","path":"Juniper/LocationSDK.html","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L225"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L228"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L227"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L227"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L226"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationWifi","path":"Juniper/LocationWifi.html","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L231"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L233"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L233"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L232"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/Map","path":"Juniper/Map.html","kind":"class","full_name":"Juniper::Map","name":"Map","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/MapGoogle","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle"},{"html_id":"drivers/Juniper/MapImage","kind":"class","full_name":"Juniper::MapImage","name":"MapImage"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"image\"\n MapImage.from_json(json)\nwhen \"google\"\n MapGoogle.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L21"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L21"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/MapGoogle","path":"Juniper/MapGoogle.html","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_right_coordinates:LatLng-instance-method","name":"bottom_right_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates","return_type":"LatLng","visibility":"Public","body":"@bottom_right_coordinates"}},{"html_id":"bottom_right_coordinates=(bottom_right_coordinates:LatLng)-instance-method","name":"bottom_right_coordinates=","abstract":false,"args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"args_string":"(bottom_right_coordinates : LatLng)","args_html":"(bottom_right_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates=","args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@bottom_right_coordinates = bottom_right_coordinates"}},{"html_id":"origin_x:Float64-instance-method","name":"origin_x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x","return_type":"Float64","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64)-instance-method","name":"origin_x=","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"args_string":"(origin_x : Float64)","args_html":"(origin_x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64-instance-method","name":"origin_y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y","return_type":"Float64","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64)-instance-method","name":"origin_y=","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"args_string":"(origin_y : Float64)","args_html":"(origin_y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"top_left_coordinates:LatLng-instance-method","name":"top_left_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates","return_type":"LatLng","visibility":"Public","body":"@top_left_coordinates"}},{"html_id":"top_left_coordinates=(top_left_coordinates:LatLng)-instance-method","name":"top_left_coordinates=","abstract":false,"args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"args_string":"(top_left_coordinates : LatLng)","args_html":"(top_left_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates=","args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@top_left_coordinates = top_left_coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L56"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"view:String-instance-method","name":"view","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L57"},"def":{"name":"view","return_type":"String","visibility":"Public","body":"@view"}},{"html_id":"view=(view:String)-instance-method","name":"view=","abstract":false,"args":[{"name":"view","external_name":"view","restriction":"String"}],"args_string":"(view : String)","args_html":"(view : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L57"},"def":{"name":"view=","args":[{"name":"view","external_name":"view","restriction":"String"}],"visibility":"Public","body":"@view = view"}}]},{"html_id":"drivers/Juniper/MapImage","path":"Juniper/MapImage.html","kind":"class","full_name":"Juniper::MapImage","name":"MapImage","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Int32-instance-method","name":"height","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L41"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Int32)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(height : Int32)","args_html":"(height : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L41"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"@height = height"}},{"html_id":"height_m:Float64|Nil-instance-method","name":"height_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height_m"}},{"html_id":"height_m=(height_m:Float64|Nil)-instance-method","name":"height_m=","abstract":false,"args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"args_string":"(height_m : Float64 | Nil)","args_html":"(height_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m=","args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@height_m = height_m"}},{"html_id":"locked:Bool|Nil-instance-method","name":"locked","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L52"},"def":{"name":"locked","return_type":"Bool | ::Nil","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool|Nil)-instance-method","name":"locked=","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"args_string":"(locked : Bool | Nil)","args_html":"(locked : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L52"},"def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@locked = locked"}},{"html_id":"org_id:String|Nil-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id","return_type":"String | ::Nil","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String|Nil)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"args_string":"(org_id : String | Nil)","args_html":"(org_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"orientation:Int32|Nil-instance-method","name":"orientation","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation","return_type":"Int32 | ::Nil","visibility":"Public","body":"@orientation"}},{"html_id":"orientation=(orientation:Int32|Nil)-instance-method","name":"orientation=","abstract":false,"args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"args_string":"(orientation : Int32 | Nil)","args_html":"(orientation : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation=","args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@orientation = orientation"}},{"html_id":"origin_x:Float64|Nil-instance-method","name":"origin_x","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64|Nil)-instance-method","name":"origin_x=","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"args_string":"(origin_x : Float64 | Nil)","args_html":"(origin_x : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64|Nil-instance-method","name":"origin_y","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64|Nil)-instance-method","name":"origin_y=","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"args_string":"(origin_y : Float64 | Nil)","args_html":"(origin_y : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"pixels_per_meter:Float64|Nil-instance-method","name":"pixels_per_meter","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter","return_type":"Float64 | ::Nil","visibility":"Public","body":"@pixels_per_meter"}},{"html_id":"pixels_per_meter=(pixels_per_meter:Float64|Nil)-instance-method","name":"pixels_per_meter=","abstract":false,"args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"args_string":"(pixels_per_meter : Float64 | Nil)","args_html":"(pixels_per_meter : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter=","args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@pixels_per_meter = pixels_per_meter"}},{"html_id":"site_id:String|Nil-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id","return_type":"String | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String|Nil)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String | Nil)","args_html":"(site_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"thumbnail_url:String-instance-method","name":"thumbnail_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url","return_type":"String","visibility":"Public","body":"@thumbnail_url"}},{"html_id":"thumbnail_url=(thumbnail_url:String)-instance-method","name":"thumbnail_url=","abstract":false,"args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"args_string":"(thumbnail_url : String)","args_html":"(thumbnail_url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url=","args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"visibility":"Public","body":"@thumbnail_url = thumbnail_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L31"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"width:Int32-instance-method","name":"width","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L40"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Int32)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32)","args_html":"(width : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L40"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"visibility":"Public","body":"@width = width"}},{"html_id":"width_m:Float64|Nil-instance-method","name":"width_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width_m"}},{"html_id":"width_m=(width_m:Float64|Nil)-instance-method","name":"width_m=","abstract":false,"args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"args_string":"(width_m : Float64 | Nil)","args_html":"(width_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m=","args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@width_m = width_m"}}]},{"html_id":"drivers/Juniper/Mist","path":"Juniper/Mist.html","kind":"class","full_name":"Juniper::Mist","name":"Mist","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(site_id:String,client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(site_id : String, client_mac : String)","args_html":"(site_id : String, client_mac : String)","location":{"filename":"src/juniper/mist.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L117"},"def":{"name":"client","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"clients(site_id:String,map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String, map_id : String | Nil = nil)","args_html":"(site_id : String, map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L109"},"def":{"name":"clients","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L97"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"location_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"location_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/juniper/mist.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L124"},"def":{"name":"location_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nvalidation = if signature = headers[\"X-Mist-Signature-v2\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA256, @webhook_secret, body)).downcase\nelse\n if signature = headers[\"X-Mist-Signature\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA1, @webhook_secret, body)).downcase\n else\n logger.warn do\n \"webhook called without validation signature\"\n end\n return {HTTP::Status::NOT_FOUND.to_i, EMPTY_HEADERS, \"\"}\n end\nend\nif validation != signature.downcase\n logger.warn do\n \"validation failed, check webhook secret\"\n end\n return {HTTP::Status::UNAUTHORIZED.to_i, EMPTY_HEADERS, \"\"}\nend\nbegin\n event_data = WebhookEvent.from_json(body)\n logger.debug do\n \"parsed mist webhook payload\"\n end\n if event_data.topic != \"location\"\n logger.debug do\n \"ignoring message type: #{event_data.topic}\"\n end\n return SUCCESS_RESPONSE\n end\n sites = Hash(String, Array(LocationEvent)).new do |hash, site|\n hash[site] = [] of LocationEvent\n end\n (event_data.events.as(Array(LocationEvent))).each do |event|\n sites[event.site_id] << event\n end\n sites.each do |site, events|\n self[site] = events\n end\nrescue e\n logger.error(exception: e) do\n \"failed to parse mist webhook payload\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}},{"html_id":"maps(site_id:String)-instance-method","name":"maps","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L105"},"def":{"name":"maps","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nschedule.cron(\"0 * * * *\") do\n reset_rate_limit\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L36"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@org_id = setting(String, :org_id)\n@webhook_secret = (setting?(String, :webhook_secret)) || \"\"\n"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist.cr#L101"},"def":{"name":"sites","visibility":"Public","body":"request(Array(Site)) do |headers|\n get(\"/api/v1/orgs/#{@org_id}/sites\", headers: headers)\nend"}}]},{"html_id":"drivers/Juniper/MistLocationService","path":"Juniper/MistLocationService.html","kind":"class","full_name":"Juniper::MistLocationService","name":"MistLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/juniper/mist_location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L113"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = (mist.ownership_of(lookup)).get.as_s?\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L125"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of String\nend\nmaps = [] of String\n@floorplan_mappings.each do |map_id, data|\n if data.values.includes?(zone_id)\n maps << map_id\n end\nend\nlogger.debug do\n \"found matching mist maps: #{maps}\"\nend\nif maps.empty?\n return [] of String\nend\nignore_older = @max_location_age.ago.to_unix\nall_devices = maps.flat_map do |map_id|\n clients = (mist.status?(Array(Client), map_id)) || ([] of Client)\n mappings = @floorplan_mappings[map_id]\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n clients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\n end\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L192"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L62"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"clients = Array(Client).from_json((mist.locate(username.presence || email.presence.not_nil!)).get.to_json)\nignore_older = @max_location_age.ago.to_unix\nclients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n map_id = client.map_id\n mappings = @floorplan_mappings[map_id]?\n if mappings\n else\n next\n end\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\nend\n"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","doc":"Proxies the data to the mist driver","summary":"

Proxies the data to the mist driver

","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_location_service.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L108"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"mist.mac_address_mappings(username, macs, domain)"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L102"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(mist.macs_assigned_to(username.presence || email.presence.not_nil!)).get.as_a.map(&.as_s)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_location_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Int32)), :floorplan_mappings)) || @floorplan_mappings\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\nschedule.clear\nschedule.every(10.minutes) do\n sync_map_sizes\nend\nschedule.in(20.seconds) do\n sync_map_sizes\nend\n"}}]},{"html_id":"drivers/Juniper/MistWebsocket","path":"Juniper/MistWebsocket.html","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L207"},"def":{"name":"client","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"client_data:Hash(String,Client)-instance-method","name":"client_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L36"},"def":{"name":"client_data","return_type":"Hash(String, Client)","visibility":"Public","body":"if (__temp_1 = @client_data).nil?\n @client_data = ({} of String => Client)\nelse\n __temp_1\nend"}},{"html_id":"clients(map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil = nil)","args_html":"(map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L199"},"def":{"name":"clients","args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L69"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\n@location_data = nil\n@client_data = nil\nschedule.every(45.seconds, immediate: true) do\n transport.send({subscribe: \"/sites/#{@site_id}/stats/clients\"}.to_json)\n maps.each do |map|\n transport.send({subscribe: \"/sites/#{@site_id}/stats/maps/#{map.id}/clients\"}.to_json)\n end\nend\nsync_clients\nschedule.every(3.seconds) do\n update_client_locations\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L85"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@connected = false\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L248"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L239"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L186"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"locate(username:String)-instance-method","name":"locate","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String)","args_html":"(username : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L266"},"def":{"name":"locate","args":[{"name":"username","external_name":"username","restriction":"String"}],"visibility":"Public","body":"(macs_assigned_to(username)).compact_map do |mac|\n self[mac]?\nend"}},{"html_id":"location_data:Hash(String,Hash(String,Client))-instance-method","name":"location_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L32"},"def":{"name":"location_data","return_type":"Hash(String, Hash(String, Client))","visibility":"Public","body":"if (__temp_1 = @location_data).nil?\n @location_data = (Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\n end)\nelse\n __temp_1\nend"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_websocket.cr","line_number":307,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L307"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"macs_assigned_to(username:String):Array(String)-instance-method","name":"macs_assigned_to","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String) : Array(String)","args_html":"(username : String) : Array(String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L252"},"def":{"name":"macs_assigned_to","args":[{"name":"username","external_name":"username","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username)\nif macs = user_mac_mappings do |s|\n s[username]?\nend\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"maps-instance-method","name":"maps","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L194"},"def":{"name":"maps","visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\ntransport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@site_id = setting(String, :site_id)\nif @site_id == \"site_id\"\nelse\n transport.http_uri_override = URI.parse(\"https://api.mist.com\")\nend\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\nif @connected\n connected\nend\n"}},{"html_id":"ownership_of(mac_address:String)-instance-method","name":"ownership_of","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L261"},"def":{"name":"ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"mac_address = format_mac(mac_address)\nuser_mac_mappings do |storage|\n storage[mac_address]?\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L221"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"string = (String.new(data)).rstrip\nlogger.debug do\n \"websocket sent: #{string}\"\nend\nevent = WebsocketEvent.from_json(string)\nif event_data = event.data\n if event.channel.includes?(\"/maps/\")\n client_location = ClientLocation.from_json(event_data)\n update_location(client_data, location_data, client_location)\n else\n client_stats = ClientStats.from_json(event_data)\n update_stats(client_data, client_stats)\n end\nend\ntask.try(&.success)\n"}},{"html_id":"site_list(org_id:String)-instance-method","name":"site_list","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L190"},"def":{"name":"site_list","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Hash(String, JSON::Any))) do |headers|\n get(\"/api/v1/installer/orgs/#{org_id}/sites\", headers: headers)\nend"}},{"html_id":"sync_clients-instance-method","name":"sync_clients","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L155"},"def":{"name":"sync_clients","visibility":"Public","body":"all_clients = [] of Client\nmaps.each do |map|\n all_clients.concat((clients(map.id)).map() do |__arg0|\n __arg0.as(Client)\n end)\nend\nloc_data = Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\nend\ncli_data = {} of String => Client\nall_clients.each do |client|\n client_mac = format_mac(client.mac)\n client.mac = client_mac\n cli_data[client_mac] = client\n loc_data[client.map_id][client_mac] = client\nend\n@client_data = cli_data\n@location_data = loc_data\nloc_data.each do |map_id, clients|\n self[map_id] = clients.values\nend\nlocation_data.size\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L62"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"Authorization\" => @api_token, \"User-Agent\" => \"PlaceOS/2.0 PlaceTechnology\"}"}}],"types":[{"html_id":"drivers/Juniper/MistWebsocket/WebsocketEvent","path":"Juniper/MistWebsocket/WebsocketEvent.html","kind":"struct","full_name":"Juniper::MistWebsocket::WebsocketEvent","name":"WebsocketEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper/MistWebsocket","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L215"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"data:String|Nil-instance-method","name":"data","doc":"data will be the Client class as a JSON string","summary":"

data will be the Client class as a JSON string

","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L218"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_websocket.cr#L214"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]}]},{"html_id":"drivers/Juniper/OtherEvents","path":"Juniper/OtherEvents.html","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L202"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(JSON::Any)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L204"},"def":{"name":"events","return_type":"Array(JSON::Any)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L203"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/Site","path":"Juniper/Site.html","kind":"class","full_name":"Juniper::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"country_code:String-instance-method","name":"country_code","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code","return_type":"String","visibility":"Public","body":"@country_code"}},{"html_id":"country_code=(country_code:String)-instance-method","name":"country_code=","abstract":false,"args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"args_string":"(country_code : String)","args_html":"(country_code : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code=","args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"visibility":"Public","body":"@country_code = country_code"}},{"html_id":"created_time:Int64-instance-method","name":"created_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time","return_type":"Int64","visibility":"Public","body":"@created_time"}},{"html_id":"created_time=(created_time:Int64)-instance-method","name":"created_time=","abstract":false,"args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"args_string":"(created_time : Int64)","args_html":"(created_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time=","args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"visibility":"Public","body":"@created_time = created_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"modified_time:Int64-instance-method","name":"modified_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time","return_type":"Int64","visibility":"Public","body":"@modified_time"}},{"html_id":"modified_time=(modified_time:Int64)-instance-method","name":"modified_time=","abstract":false,"args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"args_string":"(modified_time : Int64)","args_html":"(modified_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time=","args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"visibility":"Public","body":"@modified_time = modified_time"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}}]},{"html_id":"drivers/Juniper/WebhookEvent","path":"Juniper/WebhookEvent.html","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationEvents","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents"},{"html_id":"drivers/Juniper/OtherEvents","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/juniper/mist_models.cr#L180"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"topic\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'topic' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'topic'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n LocationEvents.from_json(json)\nwhen \"zone\"\n OtherEvents.from_json(json)\nwhen \"asset-raw\"\n OtherEvents.from_json(json)\nwhen \"device-events\"\n OtherEvents.from_json(json)\nwhen \"device-updowns\"\n OtherEvents.from_json(json)\nwhen \"alarms\"\n OtherEvents.from_json(json)\nwhen \"audits\"\n OtherEvents.from_json(json)\nwhen \"client-join\"\n OtherEvents.from_json(json)\nwhen \"client-sessions\"\n OtherEvents.from_json(json)\nwhen \"ping\"\n OtherEvents.from_json(json)\nwhen \"occupancy-alerts\"\n OtherEvents.from_json(json)\nwhen \"sdkclient-scan-data\"\n OtherEvents.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'topic' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]}]},{"html_id":"drivers/Kaiterra","path":"Kaiterra.html","kind":"module","full_name":"Kaiterra","name":"Kaiterra","abstract":false,"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kaiterra/API","path":"Kaiterra/API.html","kind":"class","full_name":"Kaiterra::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"batch(body:Array(Request),params:Hash(String,String)={}ofString=>String)-instance-method","name":"batch","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","args_html":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L114"},"def":{"name":"batch","args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = post(generate_url(\"/batch\", params), body: body.to_json, headers: generate_headers({\"Content-Type\" => \"application/json\", \"Content-Encoding\" => \"UTF-8\"}))\nArray(BatchResponse).from_json(response.body)\n"}},{"html_id":"get_devices(id:String,params:Hash(String,String)={}ofString=>String)-instance-method","name":"get_devices","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(id : String, params : Hash(String, String) = {} of String => String)","args_html":"(id : String, params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L89"},"def":{"name":"get_devices","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = get(generate_url(\"/devices/#{id}/top\", params), headers: generate_headers)\nResponse.from_json(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}}],"types":[{"html_id":"drivers/Kaiterra/API/BatchResponse","path":"Kaiterra/API/BatchResponse.html","kind":"class","full_name":"Kaiterra::API::BatchResponse","name":"BatchResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L110"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L110"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"code:Int64-instance-method","name":"code","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L111"},"def":{"name":"code","return_type":"Int64","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int64)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int64"}],"args_string":"(code : Int64)","args_html":"(code : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L111"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int64"}],"visibility":"Public","body":"@code = code"}}]},{"html_id":"drivers/Kaiterra/API/Data","path":"Kaiterra/API/Data.html","kind":"class","full_name":"Kaiterra::API::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"param:Param-instance-method","name":"param","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L82"},"def":{"name":"param","return_type":"Param","visibility":"Public","body":"@param"}},{"html_id":"param=(param:Param)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"Param"}],"args_string":"(param : Param)","args_html":"(param : Param)","location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L82"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"Param"}],"visibility":"Public","body":"@param = param"}},{"html_id":"points:Array(JSON::Any::Type)-instance-method","name":"points","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L86"},"def":{"name":"points","return_type":"Array(JSON::Any::Type)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(JSON::Any::Type))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"args_string":"(points : Array(JSON::Any::Type))","args_html":"(points : Array(JSON::Any::Type))","location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L86"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"visibility":"Public","body":"@points = points"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L84"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:String|Nil)-instance-method","name":"source=","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(source : String | Nil)","args_html":"(source : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L84"},"def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"@source = source"}},{"html_id":"span:Int64-instance-method","name":"span","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L85"},"def":{"name":"span","return_type":"Int64","visibility":"Public","body":"@span"}},{"html_id":"span=(span:Int64)-instance-method","name":"span=","abstract":false,"args":[{"name":"span","external_name":"span","restriction":"Int64"}],"args_string":"(span : Int64)","args_html":"(span : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L85"},"def":{"name":"span=","args":[{"name":"span","external_name":"span","restriction":"Int64"}],"visibility":"Public","body":"@span = span"}},{"html_id":"units:Unit-instance-method","name":"units","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L83"},"def":{"name":"units","return_type":"Unit","visibility":"Public","body":"@units"}},{"html_id":"units=(units:Unit)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"Unit"}],"args_string":"(units : Unit)","args_html":"(units : Unit)","location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L83"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"Unit"}],"visibility":"Public","body":"@units = units"}}]},{"html_id":"drivers/Kaiterra/API/Param","path":"Kaiterra/API/Param.html","kind":"enum","full_name":"Kaiterra::API::Param","name":"Param","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rco2","name":"Rco2","value":"0"},{"id":"Ro3","name":"Ro3","value":"1"},{"id":"Rpm25c","name":"Rpm25c","value":"2"},{"id":"Rpm10c","name":"Rpm10c","value":"3"},{"id":"Rhumid","name":"Rhumid","value":"4"},{"id":"Rtemp","name":"Rtemp","value":"5"},{"id":"Rtvoc","name":"Rtvoc","value":"6"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"instance_methods":[{"html_id":"rco2?-instance-method","name":"rco2?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L22"},"def":{"name":"rco2?","visibility":"Public","body":"self == Rco2"}},{"html_id":"rhumid?-instance-method","name":"rhumid?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L26"},"def":{"name":"rhumid?","visibility":"Public","body":"self == Rhumid"}},{"html_id":"ro3?-instance-method","name":"ro3?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L23"},"def":{"name":"ro3?","visibility":"Public","body":"self == Ro3"}},{"html_id":"rpm10c?-instance-method","name":"rpm10c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L25"},"def":{"name":"rpm10c?","visibility":"Public","body":"self == Rpm10c"}},{"html_id":"rpm25c?-instance-method","name":"rpm25c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L24"},"def":{"name":"rpm25c?","visibility":"Public","body":"self == Rpm25c"}},{"html_id":"rtemp?-instance-method","name":"rtemp?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L27"},"def":{"name":"rtemp?","visibility":"Public","body":"self == Rtemp"}},{"html_id":"rtvoc?-instance-method","name":"rtvoc?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L28"},"def":{"name":"rtvoc?","visibility":"Public","body":"self == Rtvoc"}}]},{"html_id":"drivers/Kaiterra/API/Request","path":"Kaiterra/API/Request.html","kind":"class","full_name":"Kaiterra::API::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String|Nil-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L104"},"def":{"name":"body","return_type":"String | ::Nil","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String|Nil)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(body : String | Nil)","args_html":"(body : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L104"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"@body = body"}},{"html_id":"headers:Array(NamedTuple(name:String,value:String))|Nil-instance-method","name":"headers","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L103"},"def":{"name":"headers","return_type":"Array(NamedTuple(name: String, value: String)) | ::Nil","visibility":"Public","body":"@headers"}},{"html_id":"headers=(headers:Array(NamedTuple(name:String,value:String))|Nil)-instance-method","name":"headers=","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"args_string":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","args_html":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L103"},"def":{"name":"headers=","args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"visibility":"Public","body":"@headers = headers"}},{"html_id":"method:String-instance-method","name":"method","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L100"},"def":{"name":"method","return_type":"String","visibility":"Public","body":"@method"}},{"html_id":"method=(method:String)-instance-method","name":"method=","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"}],"args_string":"(method : String)","args_html":"(method : String)","location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L100"},"def":{"name":"method=","args":[{"name":"method","external_name":"method","restriction":"String"}],"visibility":"Public","body":"@method = method"}},{"html_id":"relative_url:String-instance-method","name":"relative_url","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url","return_type":"String","visibility":"Public","body":"@relative_url"}},{"html_id":"relative_url=(relative_url:String)-instance-method","name":"relative_url=","abstract":false,"args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"args_string":"(relative_url : String)","args_html":"(relative_url : String)","location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url=","args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"visibility":"Public","body":"@relative_url = relative_url"}}]},{"html_id":"drivers/Kaiterra/API/Response","path":"Kaiterra/API/Response.html","kind":"class","full_name":"Kaiterra::API::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Data)|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L75"},"def":{"name":"data","return_type":"Array(Data) | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Array(Data)|Nil)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"args_string":"(data : Array(Data) | Nil)","args_html":"(data : Array(Data) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L75"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"visibility":"Public","body":"@data = data"}},{"html_id":"errors:Array(JSON::Any::Type)|Nil-instance-method","name":"errors","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L76"},"def":{"name":"errors","return_type":"Array(JSON::Any::Type) | ::Nil","visibility":"Public","body":"@errors"}},{"html_id":"errors=(errors:Array(JSON::Any::Type)|Nil)-instance-method","name":"errors=","abstract":false,"args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"args_string":"(errors : Array(JSON::Any::Type) | Nil)","args_html":"(errors : Array(JSON::Any::Type) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L76"},"def":{"name":"errors=","args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"visibility":"Public","body":"@errors = errors"}}]},{"html_id":"drivers/Kaiterra/API/Unit","path":"Kaiterra/API/Unit.html","kind":"enum","full_name":"Kaiterra::API::Unit","name":"Unit","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L31"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ppm","name":"Ppm","value":"0"},{"id":"Ppb","name":"Ppb","value":"1"},{"id":"MicrogramsPerCubicMeter","name":"MicrogramsPerCubicMeter","value":"2"},{"id":"MilligramsPerCubicMeter","name":"MilligramsPerCubicMeter","value":"3"},{"id":"C","name":"C","value":"4"},{"id":"F","name":"F","value":"5"},{"id":"X","name":"X","value":"6"},{"id":"Percentage","name":"Percentage","value":"7"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"class_methods":[{"html_id":"parse(string)-class-method","name":"parse","abstract":false,"args":[{"name":"string","external_name":"string","restriction":""}],"args_string":"(string)","args_html":"(string)","location":{"filename":"src/kaiterra/api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L41"},"def":{"name":"parse","args":[{"name":"string","external_name":"string","restriction":""}],"visibility":"Public","body":"case string\nwhen \"µg/m³\"\n Unit::MicrogramsPerCubicMeter\nwhen \"mg/m³\"\n Unit::MilligramsPerCubicMeter\nwhen \"%\"\n Unit::Percentage\nelse\n super(string)\nend"}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L54"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"parse(pull.read_string)"}}],"instance_methods":[{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L36"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L37"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"micrograms_per_cubic_meter?-instance-method","name":"micrograms_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L34"},"def":{"name":"micrograms_per_cubic_meter?","visibility":"Public","body":"self == MicrogramsPerCubicMeter"}},{"html_id":"milligrams_per_cubic_meter?-instance-method","name":"milligrams_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L35"},"def":{"name":"milligrams_per_cubic_meter?","visibility":"Public","body":"self == MilligramsPerCubicMeter"}},{"html_id":"percentage?-instance-method","name":"percentage?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L39"},"def":{"name":"percentage?","visibility":"Public","body":"self == Percentage"}},{"html_id":"ppb?-instance-method","name":"ppb?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L33"},"def":{"name":"ppb?","visibility":"Public","body":"self == Ppb"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L32"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L58"},"def":{"name":"to_s","visibility":"Public","body":"case self\nwhen Unit::MicrogramsPerCubicMeter\n \"µg/m³\"\nwhen Unit::MilligramsPerCubicMeter\n \"mg/m³\"\nwhen Unit::Percentage\n \"%\"\nelse\n super()\nend"}},{"html_id":"x?-instance-method","name":"x?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/api.cr#L38"},"def":{"name":"x?","visibility":"Public","body":"self == X"}}]}]},{"html_id":"drivers/Kaiterra/RoomLogic","path":"Kaiterra/RoomLogic.html","kind":"class","full_name":"Kaiterra::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_measurements-instance-method","name":"get_measurements","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L25"},"def":{"name":"get_measurements","visibility":"Public","body":"response = (kaiterra.get_devices(@room_id)).get\nif results = response.as_h[\"data\"]\nelse\n return \"No Data\"\nend\nresults.as_a.each do |i|\n name = \"#{i[\"param\"]} (#{i[\"units\"]})\"\n value = i[\"points\"].as_a.first[\"value\"]\n self[name] = value\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kaiterra/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@room_id = setting(String, :kaiterra_room_id)\n@cron_string = setting(String, :kaiterra_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_measurements\nend\n"}}]}]},{"html_id":"drivers/Keycloak","path":"Keycloak.html","kind":"module","full_name":"Keycloak","name":"Keycloak","abstract":false,"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Keycloak/RestAPI","path":"Keycloak/RestAPI.html","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Keycloak","kind":"module","full_name":"Keycloak","name":"Keycloak"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L113"},"def":{"name":"get_token","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"only supports requests directly from SSO users\")\nend\nget_user_token(user_id)\n"}},{"html_id":"get_user_token(user_id:String):String-instance-method","name":"get_user_token","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/keycloak/rest_api.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L120"},"def":{"name":"get_user_token","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = ::HTTP::Client.post(\"#{@place_domain}/api/engine/v2/users/#{user_id}/resource_token\", headers: HTTP::Headers {\"X-API-Key\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain a keycloak API key for user #{user_id}: #{response.status_code} - #{response.body}\")\nend\n(JSON.parse(response.body))[\"token\"].as_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@realm = (setting(String, :realm)) || \"\"\n@api_key = (setting(String, :place_api_key)) || \"\"\n@place_domain = (setting(String, :place_domain)) || \"\"\n"}},{"html_id":"users(search:String|Nil=nil,email:String|Nil=nil,enabled_users_only:Bool=true,all_pages:Bool=false,auth_token:String|Nil=nil)-instance-method","name":"users","abstract":false,"args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"args_string":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","args_html":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","location":{"filename":"src/keycloak/rest_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L63"},"def":{"name":"users","args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_token = \"Bearer #{auth_token.presence || get_token}\"\nparams = URI::Params.build do |form|\n if search.presence\n form.add(\"search\", search.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n form.add(\"enabled\", enabled_users_only.to_s)\n form.add(\"exact\", (!!email.presence).to_s)\n form.add(\"first\", \"1\")\n form.add(\"max\", \"100\")\nend\nusers = [] of UserDetails\nnext_request = \"/admin/realms/#{@realm}/users?#{params}\"\nheaders = HTTP::Headers {\"Accept\" => \"application/json\", \"Authorization\" => user_token}\nlogger.debug do\n \"requesting users, all pages: #{all_pages}\"\nend\npage_count = 1\nloop do\n response = get(next_request, headers: headers)\n if response.success?\n else\n raise(\"unexpected error: #{response.status_code} - #{response.body}\")\n end\n links = LinkHeader.new(response)\n next_request = links[\"next\"]?\n new_users = Array(UserDetails).from_json(response.body)\n users.concat(new_users)\n if (!all_pages || next_request.nil?) || new_users.empty?\n break\n end\n page_count = page_count + 1\nend\nlogger.debug do\n \"users count: #{users.size}, pages: #{page_count}\"\nend\nusers\n"}}],"types":[{"html_id":"drivers/Keycloak/RestAPI/Role","path":"Keycloak/RestAPI/Role.html","kind":"struct","full_name":"Keycloak::RestAPI::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L29"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L34"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L32"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L33"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Keycloak/RestAPI/UserDetails","path":"Keycloak/RestAPI/UserDetails.html","kind":"struct","full_name":"Keycloak::RestAPI::UserDetails","name":"UserDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_roles:Array(Role)|Nil-instance-method","name":"application_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L59"},"def":{"name":"application_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@application_roles"}},{"html_id":"client_roles:Array(Role)|Nil-instance-method","name":"client_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L56"},"def":{"name":"client_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@client_roles"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L44"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"enabled:Bool|Nil-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L43"},"def":{"name":"enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L47"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"groups:Array(String)|Nil-instance-method","name":"groups","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L60"},"def":{"name":"groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@groups"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L41"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L50"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"realm_roles:Array(String)|Nil-instance-method","name":"realm_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L53"},"def":{"name":"realm_roles","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@realm_roles"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/keycloak/rest_api.cr#L42"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]}]},{"html_id":"drivers/KontaktIO","path":"KontaktIO.html","kind":"module","full_name":"KontaktIO","name":"KontaktIO","abstract":false,"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/KontaktIO/Building","path":"KontaktIO/Building.html","kind":"class","full_name":"KontaktIO::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L158"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L159"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L164"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L163"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L168"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L161"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L165"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L166"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L162"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/BuildingShort","path":"KontaktIO/BuildingShort.html","kind":"class","full_name":"KontaktIO::BuildingShort","name":"BuildingShort","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L132"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L133"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/Campus","path":"KontaktIO/Campus.html","kind":"class","full_name":"KontaktIO::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L171"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L172"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L177"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"buildings:Array(Building)-instance-method","name":"buildings","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L183"},"def":{"name":"buildings","return_type":"Array(Building)","visibility":"Public","body":"@buildings"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L176"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L174"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L180"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L181"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L175"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L179"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/KontaktIO/Contact","path":"KontaktIO/Contact.html","kind":"class","full_name":"KontaktIO::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration_sec:Int32-instance-method","name":"duration_sec","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L62"},"def":{"name":"duration_sec","return_type":"Int32","visibility":"Public","body":"@duration_sec"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L53"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L56"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L59"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}}]},{"html_id":"drivers/KontaktIO/ContactTracing","path":"KontaktIO/ContactTracing.html","kind":"class","full_name":"KontaktIO::ContactTracing","name":"ContactTracing","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/contact_tracing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"close_contacts(email:String|Nil=nil,username:String|Nil=nil,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil)-instance-method","name":"close_contacts","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L13"},"def":{"name":"close_contacts","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"macs = (location_services.macs_assigned_to(email, username)).get.as_a.map(&.as_s)\nperiods = [] of Tuple(Int64, Int64)\nperiod_start = start_time || 2.days.ago.to_unix\nperiod_end = end_time || 1.days.ago.to_unix\nloop do\n temp_ending = period_start + 6.hours.to_i\n if temp_ending < period_end\n periods << {period_start, temp_ending}\n else\n periods << {period_start, period_end}\n break\n end\n period_start = temp_ending\nend\nlocations = [] of Tracking\nerrors = [] of Exception\nmacs.each do |mac|\n begin\n periods.each do |__temp_821|\n starting, ending = __temp_821\n raw_report = (kontakt.colocations(mac, starting, ending)).get.to_json\n locations.concat(Array(Tracking).from_json(raw_report))\n end\n rescue error\n logger.warn(exception: error) do\n \"locating close contacts\"\n end\n errors << error\n end\nend\nif locations.empty? && errors.size > 0\n raise(errors[0])\nend\nmacs = Set(String).new\nlocations.each do |location|\n macs << location.mac_address\nend\nmac_mappings = {} of String => String\nmacs.each do |mac|\n mac = format_mac(mac)\n if owner = (location_services.check_ownership_of(mac)).get.as_h?\n username = owner[\"assigned_to\"]?.try(&.as_s)\n if username\n else\n next\n end\n mac_mappings[mac] = username\n end\nend\ncontacts = {} of String => NamedTuple(mac_address: String, username: String | ::Nil, contact_time: Int64, duration: Int32)\nlocations.each do |location|\n mac = format_mac(location.mac_address)\n username = mac_mappings[mac]?\n duration = location.duration\n if current = contacts[username || mac]?\n if current[:duration] > duration\n next\n end\n end\n contacts[username || mac] = {mac_address: mac, username: username, contact_time: location.start_time.to_unix, duration: duration}\nend\ncontacts.values\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/contact_tracing.cr#L93"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}}]},{"html_id":"drivers/KontaktIO/Floor","path":"KontaktIO/Floor.html","kind":"class","full_name":"KontaktIO::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:BuildingShort|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L155"},"def":{"name":"building","return_type":"BuildingShort | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"height:Float64|Nil-instance-method","name":"height","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L143"},"def":{"name":"height","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L140"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","doc":"lat lng from bottom right corner of image","summary":"

lat lng from bottom right corner of image

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L150"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"level:Int32|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L146"},"def":{"name":"level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L153"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L141"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"rotation:Float64|Nil-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L145"},"def":{"name":"rotation","return_type":"Float64 | ::Nil","visibility":"Public","body":"@rotation"}},{"html_id":"width:Float64|Nil-instance-method","name":"width","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L144"},"def":{"name":"width","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/KontaktIO/KioCloud","path":"KontaktIO/KioCloud.html","kind":"class","full_name":"KontaktIO::KioCloud","name":"KioCloud","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"campuses:Array(Campus)-instance-method","name":"campuses","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L110"},"def":{"name":"campuses","return_type":"Array(Campus)","visibility":"Public","body":"campuses = [] of Campus\nmake_request(\"GET\", \"/v2/locations/campuses\") do |data|\n resp = Response(Campus).from_json(data)\n campuses.concat(resp.content)\n resp.page\nend\ncampuses\n"}},{"html_id":"colocations(mac_address:String,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil):Array(Tracking)-instance-method","name":"colocations","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","args_html":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L83"},"def":{"name":"colocations","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"return_type":"Array(Tracking)","visibility":"Public","body":"ending = end_time ? Time.unix(end_time) : 10.minutes.ago\nstarting = start_time ? Time.unix(start_time) : (ending - 20.days)\ntracking = [] of Tracking\nmake_request(\"GET\", \"/v3/novid/colocations\", params: URI::Params {\"trackingId\" => ((format_mac(mac_address)).upcase.scan(/\\w{2}/)).map() do |__arg1|\n __arg1.to_a.first\nend.join(':'), \"startTime\" => starting.to_rfc3339, \"endTime\" => ending.to_rfc3339}) do |data|\n resp = Response(Tracking).from_json(data)\n tracking.concat(resp.content)\n resp.page\nend\ntracking\n"}},{"html_id":"create_channel(name:String,uri:String)-instance-method","name":"create_channel","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(name : String, uri : String)","args_html":"(name : String, uri : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L202"},"def":{"name":"create_channel","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"make_request(\"POST\", \"/v3/channels\", body: {status: :active, name: name, channel: {type: \"eventHub\", endpoint: uri, streamName: name, accessKey: \"test\", secretKey: \"test\", region: \"test\", sharedAccessKeyName: \"test\", eventHubName: \"test\", sharedAccessKey: \"test\"}}.to_json)"}},{"html_id":"delete_channel(id:Int32|String)-instance-method","name":"delete_channel","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"args_string":"(id : Int32 | String)","args_html":"(id : Int32 | String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L220"},"def":{"name":"delete_channel","args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"visibility":"Public","body":"make_request(\"DELETE\", \"/v3/channels\", params: URI::Params {\"id\" => id.to_s})"}},{"html_id":"event_hub(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"event_hub","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L197"},"def":{"name":"event_hub","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nlogger.debug do\n body\nend\n"}},{"html_id":"find(mac_address:String):Position|Nil-instance-method","name":"find","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : Position | Nil","args_html":"(mac_address : String) : Position | Nil","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L102"},"def":{"name":"find","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"Position | ::Nil","visibility":"Public","body":"data = make_request(\"GET\", \"/v2/positions\", params: URI::Params {\"trackingId\" => format_mac(mac_address)})\n(Response(Position).from_json(data)).content.first?\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L193"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"occupancy_cache:Hash(Int64,RoomOccupancy)-instance-method","name":"occupancy_cache","doc":"===================================\nCaching sensor data\n===================================","summary":"

=================================== Caching sensor data ===================================

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L159"},"def":{"name":"occupancy_cache","return_type":"Hash(Int64, RoomOccupancy)","visibility":"Public","body":"@occupancy_cache"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)\npoll_every = ((setting?(Int32, :poll_every)) || 2).seconds\nschedule.clear\nschedule.every(poll_every) do\n cache_occupancy_counts\nend\n"}},{"html_id":"room_occupancy:Array(RoomOccupancy)-instance-method","name":"room_occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L130"},"def":{"name":"room_occupancy","return_type":"Array(RoomOccupancy)","visibility":"Public","body":"room_occupancy = [] of RoomOccupancy\nmake_request(\"GET\", \"/v3/occupancy/rooms\") do |data|\n resp = Response(RoomOccupancy).from_json(data)\n room_occupancy.concat(resp.content)\n resp.page\nend\nroom_occupancy\n"}},{"html_id":"rooms:Array(Room)-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L120"},"def":{"name":"rooms","return_type":"Array(Room)","visibility":"Public","body":"rooms = [] of Room\nmake_request(\"GET\", \"/v2/locations/rooms\") do |data|\n resp = Response(Room).from_json(data)\n rooms.concat(resp.content)\n resp.page\nend\nrooms\n"}},{"html_id":"telemetry(tracking_ids:Array(String)):Array(Telemetry)-instance-method","name":"telemetry","abstract":false,"args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"args_string":"(tracking_ids : Array(String)) : Array(Telemetry)","args_html":"(tracking_ids : Array(String)) : Array(Telemetry)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud.cr#L140"},"def":{"name":"telemetry","args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"return_type":"Array(Telemetry)","visibility":"Public","body":"telemetry = [] of Telemetry\nparams = URI::Params.new\nparams[\"endTime\"] = Time.utc.to_rfc3339(fraction_digits: 3)\nparams[\"startTime\"] = 2.minutes.ago.to_rfc3339(fraction_digits: 3)\nif tracking_ids.empty?\nelse\n params[\"trackingId\"] = tracking_ids.map() do |__arg2|\n __arg2.strip.downcase\n end.join(\",\")\nend\nmake_request(\"GET\", \"/v3/telemetry\", params: params) do |data|\n resp = Response(Telemetry).from_json(data)\n telemetry.concat(resp.content)\n resp.page\nend\ntelemetry\n"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings","path":"KontaktIO/MacAddressMappings.html","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"map_devices-instance-method","name":"map_devices","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L40"},"def":{"name":"map_devices","visibility":"Public","body":"request = \"https://api.kontakt.io/device?maxResult=500&deviceType=BEACON\"\nlocatable = system.implementing(Interface::Locatable)\nwhile request.presence\n response = HTTP::Client.get(request, headers: HTTP::Headers {\"Api-Key\" => @api_key, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/vnd.com.kontakt+json;version=10\"})\n logger.debug do\n \"request returned:\\n#{response.body}\"\n end\n case response.status_code\n when 303\n when 401\n logger.warn do\n \"The API Key is invalid or disabled\"\n end\n when 403\n logger.warn do\n \"User who created the API no longer has access to the Kio Cloud account or their user role doesn't allow access to the endpoint. Device error if the endpoint is not available for the device model.\"\n end\n end\n if response.success?\n else\n raise(\"request #{request} failed with status: #{response.status_code}\")\n end\n result = NamedTuple(devices: Array(DeviceDetails), searchMeta: SearchMeta).from_json(response.body)\n meta = result[:searchMeta]\n request = meta.next_results\n result[:devices].each do |device|\n if device.alias.presence\n else\n next\n end\n (locatable.mac_address_mappings(device.alias, {device.mac}, \"\")).get\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.hour) do\n map_devices\nend\nschedule.in(10.seconds) do\n map_devices\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)"}}],"types":[{"html_id":"drivers/KontaktIO/MacAddressMappings/DeviceDetails","path":"KontaktIO/MacAddressMappings/DeviceDetails.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::DeviceDetails","name":"DeviceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alias:String|Nil-instance-method","name":"alias","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L36"},"def":{"name":"alias","return_type":"String | ::Nil","visibility":"Public","body":"@alias"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L37"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings/SearchMeta","path":"KontaktIO/MacAddressMappings/SearchMeta.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::SearchMeta","name":"SearchMeta","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_results:String-instance-method","name":"next_results","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/mac_address_mappings.cr#L30"},"def":{"name":"next_results","return_type":"String","visibility":"Public","body":"@next_results"}}]}]},{"html_id":"drivers/KontaktIO/Page","path":"KontaktIO/Page.html","kind":"class","full_name":"KontaktIO::Page","name":"Page","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"number:Int32-instance-method","name":"number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L8"},"def":{"name":"number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @number).nil?\n @number = (0)\nelse\n __temp_1\nend"}},{"html_id":"size:Int32-instance-method","name":"size","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L7"},"def":{"name":"size","return_type":"Int32","visibility":"Public","body":"@size"}},{"html_id":"total_elements:Int32-instance-method","name":"total_elements","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L11"},"def":{"name":"total_elements","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_elements).nil?\n @total_elements = (0)\nelse\n __temp_1\nend"}},{"html_id":"total_pages:Int32-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L14"},"def":{"name":"total_pages","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_pages).nil?\n @total_pages = (0)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Position","path":"KontaktIO/Position.html","kind":"class","full_name":"KontaktIO::Position","name":"Position","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L105"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L106"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L118"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L121"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L115"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"last_update:String|Nil-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L124"},"def":{"name":"last_update","return_type":"String | ::Nil","visibility":"Public","body":"@last_update"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L109"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64|Nil-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L112"},"def":{"name":"room_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_id"}},{"html_id":"x:Int64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L125"},"def":{"name":"x","return_type":"Int64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"y:Int64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L126"},"def":{"name":"y","return_type":"Int64 | ::Nil","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/KontaktIO/Presence","path":"KontaktIO/Presence.html","kind":"class","full_name":"KontaktIO::Presence","name":"Presence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L87"},"def":{"name":"building_id","return_type":"Int64","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L90"},"def":{"name":"building_name","return_type":"String","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L93"},"def":{"name":"campus_id","return_type":"Int64","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L96"},"def":{"name":"campus_name","return_type":"String","visibility":"Public","body":"@campus_name"}},{"html_id":"company_id:String-instance-method","name":"company_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L69"},"def":{"name":"company_id","return_type":"String","visibility":"Public","body":"@company_id"}},{"html_id":"end_time:String-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L102"},"def":{"name":"end_time","return_type":"String","visibility":"Public","body":"@end_time"}},{"html_id":"floor_id:Int64-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L81"},"def":{"name":"floor_id","return_type":"Int64","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L84"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L72"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L78"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L75"},"def":{"name":"room_name","return_type":"String","visibility":"Public","body":"@room_name"}},{"html_id":"start_time:String-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L99"},"def":{"name":"start_time","return_type":"String","visibility":"Public","body":"@start_time"}}]},{"html_id":"drivers/KontaktIO/Response","path":"KontaktIO/Response.html","kind":"class","full_name":"KontaktIO::Response(T)","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Array(T)-instance-method","name":"content","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L20"},"def":{"name":"content","return_type":"Array(T)","visibility":"Public","body":"@content"}},{"html_id":"page:Page|Nil-instance-method","name":"page","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L21"},"def":{"name":"page","return_type":"Page | ::Nil","visibility":"Public","body":"@page"}}]},{"html_id":"drivers/KontaktIO/Room","path":"KontaktIO/Room.html","kind":"class","full_name":"KontaktIO::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor:Floor-instance-method","name":"floor","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L195"},"def":{"name":"floor","return_type":"Floor","visibility":"Public","body":"@floor"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L190"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L191"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_number:Int64|Nil-instance-method","name":"room_number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L198"},"def":{"name":"room_number","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_number"}},{"html_id":"room_sensor_ids:Array(String)-instance-method","name":"room_sensor_ids","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L203"},"def":{"name":"room_sensor_ids","return_type":"Array(String)","visibility":"Public","body":"room_sensors.map(&.tracking_id)"}},{"html_id":"room_sensors:Array(RoomSensor)-instance-method","name":"room_sensors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L201"},"def":{"name":"room_sensors","return_type":"Array(RoomSensor)","visibility":"Public","body":"if (__temp_1 = @room_sensors).nil?\n @room_sensors = ([] of RoomSensor)\nelse\n __temp_1\nend"}},{"html_id":"room_type:String-instance-method","name":"room_type","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L194"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"to_room_occupancy(occupied:Bool,last_update:Time)-instance-method","name":"to_room_occupancy","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(occupied : Bool, last_update : Time)","args_html":"(occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L207"},"def":{"name":"to_room_occupancy","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"RoomOccupancy.new(self, occupied, last_update)"}}]},{"html_id":"drivers/KontaktIO/RoomOccupancy","path":"KontaktIO/RoomOccupancy.html","kind":"struct","full_name":"KontaktIO::RoomOccupancy","name":"RoomOccupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L220"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(room:Room,occupied:Bool,last_update:Time)-class-method","name":"new","abstract":false,"args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(room : Room, occupied : Bool, last_update : Time)","args_html":"(room : Room, occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L223"},"def":{"name":"new","args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(room, occupied, last_update)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L221"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L252"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String|Nil-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L255"},"def":{"name":"building_name","return_type":"String | ::Nil","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L258"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String|Nil-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L261"},"def":{"name":"campus_name","return_type":"String | ::Nil","visibility":"Public","body":"@campus_name"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L246"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String|Nil-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L249"},"def":{"name":"floor_name","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L264"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"occupancy:Int32-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L265"},"def":{"name":"occupancy","return_type":"Int32","visibility":"Public","body":"@occupancy"}},{"html_id":"pir?:Bool-instance-method","name":"pir?","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L267"},"def":{"name":"pir?","return_type":"Bool","visibility":"Public","body":"@pir"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L240"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String|Nil-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L243"},"def":{"name":"room_name","return_type":"String | ::Nil","visibility":"Public","body":"@room_name"}}]},{"html_id":"drivers/KontaktIO/RoomSensor","path":"KontaktIO/RoomSensor.html","kind":"struct","full_name":"KontaktIO::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L212"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L213"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L217"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}}]},{"html_id":"drivers/KontaktIO/RoomSensorDriver","path":"KontaktIO/RoomSensorDriver.html","kind":"class","full_name":"KontaktIO::RoomSensorDriver","name":"RoomSensorDriver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsubscribe_to_sensor\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L76"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nsensor = @space\nif sensor\nelse\n return nil\nend\nif mac == \"kontakt-#{sensor.room_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(sensor, :people_count)\nwhen \"presence\"\n build_sensor_details(sensor, :presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L57"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nsensor = @space\nif sensor\nelse\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac == \"kontakt-#{sensor.room_id}\"\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nbuild_sensors(sensor, sensor_type)\n"}},{"html_id":"space:RoomOccupancy-instance-method","name":"space","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space","return_type":"RoomOccupancy","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"KontaktIO::RoomSensorDriver#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:RoomOccupancy|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space?","return_type":"RoomOccupancy | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/KontaktIO/SensorService","path":"KontaktIO/SensorService.html","kind":"class","full_name":"KontaktIO::SensorService","name":"SensorService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/sensor_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LOCATION","name":"LOCATION","value":"{\"desk\", \"area\"}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L100"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L107"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nfloor_ids = @zone_lookup[zone_id]?\nif floor_ids && floor_ids.size > 0\nelse\n return [] of Nil\nend\nif location && !(LOCATION.includes?(location))\n return [] of Nil\nend\nloc = LOCATION\ncache = @occupancy_cache\ncache.compact_map do |__temp_829|\n room_id, space = __temp_829\n if space.floor_id.in?(floor_ids)\n else\n next\n end\n people_count = space.occupancy\n if @return_empty_spaces || (people_count && people_count > 0)\n if space.pir?\n capacity = 1\n loc_type = loc[1]\n else\n loc_type = loc[0]\n capacity = nil\n end\n if map_id = map_ids[space.room_id]?\n capacity = 1\n loc_type = loc[1]\n else\n map_id = \"room-#{space.room_id}\"\n end\n {location: loc_type, at_location: people_count, map_id: map_id, level: zone_id, building: @floor_mappings[space.floor_id.to_s]?.try(&.[](:building_id)), capacity: capacity, kontakt_io_room: space.room_name}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L90"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L95"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"map_ids:Hash(Int64,String)-instance-method","name":"map_ids","doc":"KIO room id => Map ID","summary":"

KIO room id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L76"},"def":{"name":"map_ids","return_type":"Hash(Int64, String)","visibility":"Public","body":"if (__temp_1 = @map_ids).nil?\n @map_ids = (begin\n ids = {} of Int64 => String\n system_map_ids.each do |sys_id, map_id|\n resp = (staff_api.system_settings(sys_id, \"space_ref_id\")).get\n value = resp.as_s?.try(&.to_i64?) || resp.as_i64?\n if value\n else\n next\n end\n ids[value] = map_id\n end\n ids\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\nlookup = Hash(String, Array(Int64)).new do |hash, key|\n hash[key] = [] of Int64\nend\n@floor_mappings.each do |kontakt_floor_id, zones|\n begin\n kontakt_id = kontakt_floor_id.to_i64\n if building_id = zones[:building_id]\n lookup[building_id] << kontakt_id\n end\n lookup[zones[:level_id]] << kontakt_id\n rescue error\n logger.warn(exception: error) do\n \"invalid floor mapping #{kontakt_floor_id}\"\n end\n end\nend\n@zone_lookup = lookup\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L158"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"kontakt-\"))\n else\n return nil\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\n if room\n else\n return nil\n end\n case id\n when \"people\"\n if room.pir?\n return nil\n end\n build_sensor_details(room, :people_count)\n when \"presence\"\n build_sensor_details(room, :presence)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L180"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"kontakt-\")\n else\n return NO_MATCH\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\nend\nif zone_id\n levels = @zone_lookup[zone_id]?\nend\nrooms = if room\n {room}\nelse\n if levels\n @occupancy_cache.values.select do |r|\n floor_id = r.floor_id\n (floor_id.in?(levels)) || @floor_mappings[floor_id.to_s]?.nil?\n end\n else\n @occupancy_cache.values\n end\nend\nrooms.flat_map do |r|\n build_sensors(r, sensor_type)\nend\n"}},{"html_id":"system_map_ids:Hash(String,String)-instance-method","name":"system_map_ids","doc":"System id => Map ID","summary":"

System id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/sensor_service.cr#L64"},"def":{"name":"system_map_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @system_map_ids).nil?\n @system_map_ids = (begin\n building_zone = location_service.building_id.get.as_s\n map_ids = {} of String => String\n staff_api.systems(zone_id: building_zone).get.as_a.each do |sys|\n map_id = sys[\"map_id\"]?.try(&.as_s?)\n if map_id\n else\n next\n end\n map_ids[sys[\"id\"].as_s] = map_id\n end\n map_ids\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Telemetry","path":"KontaktIO/Telemetry.html","kind":"class","full_name":"KontaktIO::Telemetry","name":"Telemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L275"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"number_of_people:Int32|Nil-instance-method","name":"number_of_people","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L281"},"def":{"name":"number_of_people","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_people"}},{"html_id":"seconds_since_motion:Int64|Nil-instance-method","name":"seconds_since_motion","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L278"},"def":{"name":"seconds_since_motion","return_type":"Int64 | ::Nil","visibility":"Public","body":"@seconds_since_motion"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L283"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/KontaktIO/Tracking","path":"KontaktIO/Tracking.html","kind":"class","full_name":"KontaktIO::Tracking","name":"Tracking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contacts:Array(Contact)-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L42"},"def":{"name":"contacts","return_type":"Array(Contact)","visibility":"Public","body":"@contacts"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L44"},"def":{"name":"duration","visibility":"Public","body":"contacts.first.duration_sec"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L40"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L28"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L31"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kontakt_io/kio_cloud_models.cr#L37"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}}]}]},{"html_id":"drivers/Kramer","path":"Kramer.html","kind":"module","full_name":"Kramer","name":"Kramer","abstract":false,"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kramer/RC308Panel","path":"Kramer/RC308Panel.html","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\"","doc":"\\r\\n 0D0A","summary":"

\\r\\n 0D0A

"}],"namespace":{"html_id":"drivers/Kramer","kind":"module","full_name":"Kramer","name":"Kramer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"button_state(index:UInt8,light:Bool,red:UInt8|Nil=nil,green:UInt8|Nil=nil,blue:UInt8|Nil=nil)-instance-method","name":"button_state","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"args_string":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","args_html":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L61"},"def":{"name":"button_state","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"visibility":"Public","body":"data = \"#RGB #{index},#{red || @default.red},#{green || @default.green},#{blue || @default.blue},#{light ? '1' : '0'}\\r\"\nsend(data, name: \"button#{index}\")\n"}},{"html_id":"button_state?(index:UInt8,priority:Int32=0)-instance-method","name":"button_state?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(index : UInt8, priority : Int32 = 0)","args_html":"(index : UInt8, priority : Int32 = 0)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L66"},"def":{"name":"button_state?","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(\"#RGB? #{index}\\r\", priority: priority)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(1.minute, true) do\n query_state\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\non_update\n(0..@button_count).each do |idx|\n self[\"button#{idx}_state\"] = ButtonAction::Released\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@default = (setting?(DefaultLight, :default_light)) || (DefaultLight.new(255_u8, 0_u8, 0_u8))\n@button_count = (setting?(UInt8, :button_count)) || 8_u8\n"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L55"},"def":{"name":"query_state","visibility":"Public","body":"(1_u8..@button_count).each do |idx|\n button_state?(idx)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L89"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Kramer sent: #{data.inspect}\"\nend\nparts = (data.split('@', 2))[1].strip.split(' ')\ncomponent = parts[0].upcase\ndetails = parts[1]\nsuccess = parts[2]?\ncase component\nwhen \"BTN\"\n light_on, button_index, button_action = details.split(',')\n self[\"button#{button_index}_light\"] = light_on == \"1\"\n self[\"button#{button_index}_state\"] = ButtonAction.check(button_action)\nwhen \"RGB\"\n button_index, red, green, blue, light_on = details.split(',')\n self[\"button#{button_index}_rgb\"] = {red.to_u8, green.to_u8, blue.to_u8}\n self[\"button#{button_index}_light\"] = light_on == \"1\"\nwhen \"ERR\"\n logger.warn do\n \"request failed with error code: #{details}\"\n end\n return task.try(&.abort(\"error code: #{details}\"))\nelse\n logger.warn do\n \"unknown button component #{component}\"\n end\n return\nend\nif task\n if task.name\n if success\n task.success\n end\n else\n task.success\n end\nend\n"}}],"types":[{"html_id":"drivers/Kramer/RC308Panel/ButtonAction","path":"Kramer/RC308Panel/ButtonAction.html","kind":"enum","full_name":"Kramer::RC308Panel::ButtonAction","name":"ButtonAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L70"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pressed","name":"Pressed","value":"0"},{"id":"Released","name":"Released","value":"1"},{"id":"HeldDown","name":"HeldDown","value":"2"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"class_methods":[{"html_id":"check(type:String)-class-method","name":"check","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L75"},"def":{"name":"check","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"case type.downcase\nwhen \"p\"\n ButtonAction::Pressed\nwhen \"r\"\n ButtonAction::Released\nwhen \"h\"\n ButtonAction::HeldDown\nelse\n raise(\"unknown button action type: #{type}\")\nend"}}],"instance_methods":[{"html_id":"held_down?-instance-method","name":"held_down?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L73"},"def":{"name":"held_down?","visibility":"Public","body":"self == HeldDown"}},{"html_id":"pressed?-instance-method","name":"pressed?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L71"},"def":{"name":"pressed?","visibility":"Public","body":"self == Pressed"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L72"},"def":{"name":"released?","visibility":"Public","body":"self == Released"}}]},{"html_id":"drivers/Kramer/RC308Panel/DefaultLight","path":"Kramer/RC308Panel/DefaultLight.html","kind":"struct","full_name":"Kramer::RC308Panel::DefaultLight","name":"DefaultLight","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"constructors":[{"html_id":"new(red:UInt8,green:UInt8,blue:UInt8)-class-method","name":"new","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"new","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"_ = allocate\n_.initialize(red, green, blue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blue:UInt8-instance-method","name":"blue","abstract":false,"def":{"name":"blue","return_type":"UInt8","visibility":"Public","body":"@blue"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@red.clone, @green.clone, @blue.clone)"}},{"html_id":"copy_with(red_red=@red,green_green=@green,blue_blue=@blue)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"args_string":"(red _red = @red, green _green = @green, blue _blue = @blue)","args_html":"(red _red = @red, green _green = @green, blue _blue = @blue)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"visibility":"Public","body":"self.class.new(_red, _green, _blue)"}},{"html_id":"green:UInt8-instance-method","name":"green","abstract":false,"def":{"name":"green","return_type":"UInt8","visibility":"Public","body":"@green"}},{"html_id":"red:UInt8-instance-method","name":"red","abstract":false,"def":{"name":"red","return_type":"UInt8","visibility":"Public","body":"@red"}}]}]}]},{"html_id":"drivers/Lenel","path":"Lenel.html","kind":"module","full_name":"Lenel","name":"Lenel","abstract":false,"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lenel/OpenAccess","path":"Lenel/OpenAccess.html","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L4"},{"filename":"src/lenel/open_access.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"}],"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"badge_types-instance-method","name":"badge_types","doc":"Query the available badge types.\n\nBadge types contain default configuration that is applied to any badge\ncreated under them. This includes items such as access areas, activation\nwindows and other bulk config. These may then be override on individual\nbadge instances.","summary":"

Query the available badge types.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L114"},"def":{"name":"badge_types","visibility":"Public","body":"client.lookup(BadgeType)"}},{"html_id":"check_comms-instance-method","name":"check_comms","doc":"Test service connectivity.","summary":"

Test service connectivity.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L80"},"def":{"name":"check_comms","visibility":"Public","body":"begin\n logger.debug do\n \"checking service connectivity\"\n end\n if client.token\n client.keepalive\n logger.info do\n \"client online and authenticated\"\n end\n else\n client.version\n logger.warn do\n \"service reachable, no active auth session\"\n end\n authenticate!\n end\nrescue e : OpenAccess::Error\n logger.error do\n e.message\n end\n set_connected_state(false)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"logger.debug do\n \"connected\"\nend\nif client.token.nil?\n authenticate!\nend\n"}},{"html_id":"create_badge(type:Int32,id:Int64,personid:Int32,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"create_badge","doc":"Creates a new badge of the specied *type*, belonging to *personid* with a\nspecific *id*.\n\nNote: 'id' is the physical badge number (e.g. the ID written to an NFC chip)","summary":"

Creates a new badge of the specied type, belonging to personid with a specific id.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L150"},"def":{"name":"create_badge","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"creating badge for cardholder #{personid}\"\nend\nclient.create(Badge, **args)\n"}},{"html_id":"create_badge_epoch(type:Int32,id:Int64,personid:Int32,activate_epoch:Int32,deactivate_epoch:Int32,uselimit:Int32|Nil=nil)-instance-method","name":"create_badge_epoch","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L162"},"def":{"name":"create_badge_epoch","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\ncreate_badge(type: type, id: id, personid: personid, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"create_cardholder(email:String,firstname:String,lastname:String)-instance-method","name":"create_cardholder","doc":"Creates a new cardholder.\n\nAn error will be returned if an existing cardholder exists for the specified\n*email* address.","summary":"

Creates a new cardholder.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"args_string":"(email : String, firstname : String, lastname : String)","args_html":"(email : String, firstname : String, lastname : String)","location":{"filename":"src/lenel/open_access.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L264"},"def":{"name":"create_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"creating cardholder record for #{email}\"\nend\nif (client.count(Cardholder, filter: \"email = \\\"#{email}\\\"\")).zero?\nelse\n raise(ArgumentError.new(\"record already exists for #{email}\"))\nend\nclient.create(Cardholder, **args)\n"}},{"html_id":"delete_badge(badgekey:Int32):Nil-instance-method","name":"delete_badge","doc":"Deletes a badge with the specified *badgekey*.","summary":"

Deletes a badge with the specified badgekey.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32) : Nil","args_html":"(badgekey : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L217"},"def":{"name":"delete_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting badge #{badgekey}\"\nend\nclient.delete(Badge, **args)\n"}},{"html_id":"delete_badges(badgekeys:Array(Int32)):Int32-instance-method","name":"delete_badges","abstract":false,"args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"args_string":"(badgekeys : Array(Int32)) : Int32","args_html":"(badgekeys : Array(Int32)) : Int32","location":{"filename":"src/lenel/open_access.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L222"},"def":{"name":"delete_badges","args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"return_type":"Int32","visibility":"Public","body":"badgekeys.count do |badge_key|\n begin\n delete_badge(badge_key)\n 1\n rescue OpenAccess::Error\n logger.debug do\n \"failed to delete badge #{badge_key}\"\n end\n 0\n end\nend"}},{"html_id":"delete_cardholder(id:Int32):Nil-instance-method","name":"delete_cardholder","doc":"Deletes a cardholed by their person *id*.","summary":"

Deletes a cardholed by their person id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32) : Nil","args_html":"(id : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L278"},"def":{"name":"delete_cardholder","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting cardholder #{id}\"\nend\nclient.delete(Cardholder, **args)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"logger.debug do\n \"disconnected\"\nend\nclient.token = nil\n"}},{"html_id":"list_badges(personid:Int32)-instance-method","name":"list_badges","doc":"List badges belonging to a cardholder","summary":"

List badges belonging to a cardholder

","abstract":false,"args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"args_string":"(personid : Int32)","args_html":"(personid : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L120"},"def":{"name":"list_badges","args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"visibility":"Public","body":"client.lookup(Badge, filter: \"personid = #{personid}\")"}},{"html_id":"list_directories-instance-method","name":"list_directories","doc":"Query the directories available for auth.","summary":"

Query the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L97"},"def":{"name":"list_directories","visibility":"Public","body":"client.directories"}},{"html_id":"list_events(filter:String,page_number:Int32|Nil=nil)-instance-method","name":"list_events","doc":"List Logged Events","summary":"

List Logged Events

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"args_string":"(filter : String, page_number : Int32 | Nil = nil)","args_html":"(filter : String, page_number : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L291"},"def":{"name":"list_events","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"client.get_logged_events(filter, page_number)"}},{"html_id":"list_events_in_range(filter:String,from:Time|Nil=nil,til:Time|Nil=nil)-instance-method","name":"list_events_in_range","doc":"List events that occured during a given time window. Default to past 24h.","summary":"

List events that occured during a given time window.

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"args_string":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","args_html":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L297"},"def":{"name":"list_events_in_range","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"visibility":"Public","body":"til || (til = Time.local)\nfrom || (from = til - 1.day)\nclient.get_logged_events(filter + \" AND timestamp >= \\\"#{from.to_s}\\\" AND timestamp <= \\\"#{til.to_s}\\\"\")\n"}},{"html_id":"lookup_badge_id(id:Int64)-instance-method","name":"lookup_badge_id","doc":"Get badge by id (instead of badgekey)","summary":"

Get badge by id (instead of badgekey)

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/lenel/open_access.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L137"},"def":{"name":"lookup_badge_id","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"id = #{id}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_badge_key(badgekey:Int32)-instance-method","name":"lookup_badge_key","doc":"Get badge by badgekey (instead of id)\nNote: id is the number in the QR data or burnt to the swipe card. badgekey is Lenel's primary key for badges","summary":"

Get badge by badgekey (instead of id) Note: id is the number in the QR data or burnt to the swipe card.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32)","args_html":"(badgekey : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L127"},"def":{"name":"lookup_badge_key","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"badgekey = #{badgekey}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{badgekey}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_cardholder(email:String)-instance-method","name":"lookup_cardholder","doc":"Lookup a cardholder by *email* address.","summary":"

Lookup a cardholder by email address.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L236"},"def":{"name":"lookup_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{email}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholder_id(id:Int32)-instance-method","name":"lookup_cardholder_id","doc":"Lookup a cardholder by ID","summary":"

Lookup a cardholder by ID

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L251"},"def":{"name":"lookup_cardholder_id","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"id = #{id}\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholders(email:String)-instance-method","name":"lookup_cardholders","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L245"},"def":{"name":"lookup_cardholders","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L35"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(5.minutes, &->check_comms)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"logger.debug do\n \"settings updated\"\nend\nclient.app_id = setting(String, :application_id)\nauthenticate!\n"}},{"html_id":"search(type_name:String,filter:String|Nil=nil)-instance-method","name":"search","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L308"},"def":{"name":"search","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"client.raw_lookup(type_name, filter)"}},{"html_id":"search_readers(filter:String)-instance-method","name":"search_readers","doc":"List card readers matching a given filter","summary":"

List card readers matching a given filter

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/lenel/open_access.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L285"},"def":{"name":"search_readers","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"client.lookup(Reader, filter)"}},{"html_id":"update_badge(badgekey:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"update_badge","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L184"},"def":{"name":"update_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"Updating badge #{badgekey}\"\nend\nclient.update(Badge, **args)\n"}},{"html_id":"update_badge_epoch(badgekey:Int32,activate_epoch:Int32,deactivate_epoch:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil)-instance-method","name":"update_badge_epoch","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","args_html":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L196"},"def":{"name":"update_badge_epoch","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\nupdate_badge(badgekey: badgekey, id: id, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access.cr#L103"},"def":{"name":"version","visibility":"Public","body":"client.version"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Client","path":"Lenel/OpenAccess/Client.html","kind":"class","full_name":"Lenel::OpenAccess::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/client.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"Lenel OpenAccess API wrapper.\n\nProvides thin abstractions over API endpoints. Requests are executed on the\npased transport. This can be a `PlaceOS::Driver`, `HTTP::Client` or other type\nsupporting the same set of base HTTP request methods.","summary":"

Lenel OpenAccess API wrapper.

","constructors":[{"html_id":"new(transport:HTTP::Client,app_id:String)-class-method","name":"new","abstract":false,"args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"args_string":"(transport : HTTP::Client, app_id : String)","args_html":"(transport : HTTP::Client, app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L22"},"def":{"name":"new","args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(transport, app_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"app_id:String-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id","return_type":"String","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:String)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"args_string":"(app_id : String)","args_html":"(app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"count(entitytype_name:T.class,filter:String|Nil=nil)forallT-instance-method","name":"count","doc":"Counts the number of instances of *entity*.\n\n*filter* may optionally be used to specify a subset of these.","summary":"

Counts the number of instances of entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L152"},"def":{"name":"count","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.encode(args.merge(type_name: T.type_name))\n((~transport.get(path: \"/count?version=1.0&#{params}\")) >> NamedTuple(total_items: Int32))[:total_items]\n"}},{"html_id":"create(entity:T.class,**props)forallT-instance-method","name":"create","doc":"Creates a new instance of *entity*.\n\nAPI create responses return a partial object, which is provided here as an\nuntyped return. This includes the object's database key (which varies\nbetween object types - ID, BADGEKEY etc), however contents of this is\nunspecified. The partial object is provided here, in full, with keys\ntransformed to match how they appear in a type-safe model.","summary":"

Creates a new instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) forall T","args_html":"(entity : T.class, **props) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L94"},"def":{"name":"create","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"visibility":"Public","body":"(~transport.post(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> Models::Untyped"}},{"html_id":"delete(entity:T.class,**props):NilforallT-instance-method","name":"delete","doc":"Deletes an instance of *entity*.","summary":"

Deletes an instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : Nil forall T","args_html":"(entity : T.class, **props) : Nil forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L172"},"def":{"name":"delete","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)"}},{"html_id":"directories-instance-method","name":"directories","doc":"Enumerates the directories available for auth.","summary":"

Enumerates the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L49"},"def":{"name":"directories","visibility":"Public","body":"((~transport.get(path: \"/directories?version=1.0\")) >> NamedTuple(total_items: Int32, item_list: Array(::NamedTuple(property_value_map: ::NamedTuple(ID: String, Name: String, directory_type: Int32)))))[:item_list].map do |item|\n item[:property_value_map]\nend"}},{"html_id":"get_logged_events(filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"get_logged_events","doc":"Retrieve a list of logged events from Onguard\nSee Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events","summary":"

Retrieve a list of logged events from Onguard See Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events

","abstract":false,"args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L184"},"def":{"name":"get_logged_events","args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/logged_events?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"keepalive:Nil-instance-method","name":"keepalive","doc":"Request a connection keepalive to prevent session timeout.","summary":"

Request a connection keepalive to prevent session timeout.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L81"},"def":{"name":"keepalive","return_type":"Nil","visibility":"Public","body":"~transport.get(path: \"/keepalive?version=1.0\")"}},{"html_id":"login(usernameuser_name:String,password:String,directory_id:String|Nil)-instance-method","name":"login","doc":"Creates a new auth session.","summary":"

Creates a new auth session.

","abstract":false,"args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"args_string":"(username user_name : String, password : String, directory_id : String | Nil)","args_html":"(username user_name : String, password : String, directory_id : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L59"},"def":{"name":"login","args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"(~transport.post(path: \"/authentication?version=1.0\", body: args.to_h.compact.to_json)) >> NamedTuple(session_token: String, token_expiration_time: Time)"}},{"html_id":"logout:Nil-instance-method","name":"logout","doc":"Removes an auth session.","summary":"

Removes an auth session.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L74"},"def":{"name":"logout","return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/authentication?version=1.0\")"}},{"html_id":"lookup(entitytype_name:T.class,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=nil,order_by:String|Nil=nil):Array(T)forallT-instance-method","name":"lookup","doc":"Retrieves instances of a particular *entity*.\n\nThe search criteria specified in *filter* is a subset of SQL. This supports\noperations such as as:\n+ exclusion `LastName != \"Lake\"`\n+ wildcards `LastName like \"La%\"`\n+ boolean operators `LastName = \"Lake\" OR FirstName = \"Lisa\"`","summary":"

Retrieves instances of a particular entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L111"},"def":{"name":"lookup","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"return_type":"Array(T)","visibility":"Public","body":"params = HTTP::Params.new\nargs.merge(type_name: T.type_name).each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val)\n end\nend\n((~transport.get(path: \"/instances?version=1.0&#{params}\")) >> NamedTuple(page_number: Int32 | ::Nil, page_size: Int32 | ::Nil, total_pages: Int32, total_items: Int32, count: Int32, item_list: Array(T)))[:item_list]\n"}},{"html_id":"raw_lookup(type_name:String,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"raw_lookup","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L134"},"def":{"name":"raw_lookup","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/instances?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L20"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String|Nil)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"args_string":"(token : String | Nil)","args_html":"(token : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L20"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"visibility":"Public","body":"@token = token"}},{"html_id":"update(entity:T.class,**props):TforallT-instance-method","name":"update","doc":"Updates a record of *entity*. Passed properties must include the types key and\nany fields to update.","summary":"

Updates a record of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : T forall T","args_html":"(entity : T.class, **props) : T forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L161"},"def":{"name":"update","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"T","visibility":"Public","body":"(~transport.put(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> T"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/client.cr#L39"},"def":{"name":"version","visibility":"Public","body":"(~transport.get(path: \"/version?version=1.0\")) >> NamedTuple(product_name: String, product_version: String)"}}]},{"html_id":"drivers/Lenel/OpenAccess/Error","path":"Lenel/OpenAccess/Error.html","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"class_methods":[{"html_id":"from_response(response)-class-method","name":"from_response","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/lenel/open_access/error.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L6"},"def":{"name":"from_response","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"begin\n error = Error::Info.from_json(response.body)\n new(**error[:error])\nrescue\n new(response.status.to_s)\nend"}}],"constructors":[{"html_id":"new(code:String,message:String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(code : String, message : String | Nil = nil)","args_html":"(code : String, message : String | Nil = nil)","location":{"filename":"src/lenel/open_access/error.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L17"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"code:String-instance-method","name":"code","abstract":false,"location":{"filename":"src/lenel/open_access/error.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L15"},"def":{"name":"code","visibility":"Public","body":"@code"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Error/Info","path":"Lenel/OpenAccess/Error/Info.html","kind":"alias","full_name":"Lenel::OpenAccess::Error::Info","name":"Info","abstract":false,"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/error.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(error: NamedTuple(code: String, message: String | Nil))","aliased_html":"{error: {code: String, message: String?}}","const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Error","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models","path":"Lenel/OpenAccess/Models.html","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROPERTIES_KEY","name":"PROPERTIES_KEY","value":"\"property_value_map\""}],"including_types":[{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"DTO's for OpenAccess entities.\n\nThese are intentionally lightweight. In cases where a entity holds a\nrelationship to another, these are _not_ auto-resolved. Original ID references\nare kept in place. Types here a simply a thin wrapper for JSON serialization.","summary":"

DTO's for OpenAccess entities.

","types":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","path":"Lenel/OpenAccess/Models/Badge.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activate:Time|Nil-instance-method","name":"activate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L134"},"def":{"name":"activate","return_type":"Time | ::Nil","visibility":"Public","body":"@activate"}},{"html_id":"badgekey:Int32-instance-method","name":"badgekey","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L131"},"def":{"name":"badgekey","return_type":"Int32","visibility":"Public","body":"@badgekey"}},{"html_id":"deactivate:Time|Nil-instance-method","name":"deactivate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L137"},"def":{"name":"deactivate","return_type":"Time | ::Nil","visibility":"Public","body":"@deactivate"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L139"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"personid:Int32|Nil-instance-method","name":"personid","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L140"},"def":{"name":"personid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@personid"}},{"html_id":"status:Int32|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L141"},"def":{"name":"status","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"type:Int32|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L142"},"def":{"name":"type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"uselimit:Int32|Nil-instance-method","name":"uselimit","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L143"},"def":{"name":"uselimit","return_type":"Int32 | ::Nil","visibility":"Public","body":"@uselimit"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","path":"Lenel/OpenAccess/Models/BadgeType.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L146"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L146"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"badgetypeclass:BadgeTypeClass-instance-method","name":"badgetypeclass","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L156"},"def":{"name":"badgetypeclass","return_type":"BadgeTypeClass","visibility":"Public","body":"@badgetypeclass"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L154"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L155"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"usemobilecredential:Bool-instance-method","name":"usemobilecredential","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L157"},"def":{"name":"usemobilecredential","return_type":"Bool","visibility":"Public","body":"@usemobilecredential"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass","path":"Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html","kind":"enum","full_name":"Lenel::OpenAccess::Models::BadgeType::BadgeTypeClass","name":"BadgeTypeClass","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L147"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Standard","name":"Standard","value":"0"},{"id":"Temporary","name":"Temporary","value":"1"},{"id":"Visitor","name":"Visitor","value":"2"},{"id":"Guest","name":"Guest","value":"3"},{"id":"SpecialPurpose","name":"SpecialPurpose","value":"4"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},"instance_methods":[{"html_id":"guest?-instance-method","name":"guest?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L151"},"def":{"name":"guest?","visibility":"Public","body":"self == Guest"}},{"html_id":"special_purpose?-instance-method","name":"special_purpose?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L152"},"def":{"name":"special_purpose?","visibility":"Public","body":"self == SpecialPurpose"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L148"},"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}},{"html_id":"temporary?-instance-method","name":"temporary?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L149"},"def":{"name":"temporary?","visibility":"Public","body":"self == Temporary"}},{"html_id":"visitor?-instance-method","name":"visitor?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L150"},"def":{"name":"visitor?","visibility":"Public","body":"self == Visitor"}}]}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","path":"Lenel/OpenAccess/Models/Cardholder.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L160"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L160"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L161"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","path":"Lenel/OpenAccess/Models/Element.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge"},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event"},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader"},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"doc":"Base type for Lenel data objects.","summary":"

Base type for Lenel data objects.

","class_methods":[{"html_id":"partial(**properties:**T):TforallT-class-method","name":"partial","doc":"Provide a compile-time check to ensure *properties* is a subset of *self*.","summary":"

Provide a compile-time check to ensure properties is a subset of self.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L74"},"def":{"name":"partial","double_splat":{"name":"properties","external_name":"properties","restriction":"**T"},"return_type":"T","visibility":"Public","body":"{% for key in T.keys %}\n {% unless @type.has_method?(key)\n raise(\"no \\\"#{key}\\\" property on #{@type.name}\")\nend %}\n {% end %}\nproperties\n"}},{"html_id":"type_name-class-method","name":"type_name","doc":"Name of the type as expected by the OpenAccess API endpoints.","summary":"

Name of the type as expected by the OpenAccess API endpoints.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L23"},"def":{"name":"type_name","visibility":"Public","body":"\"Lnl_#{(name.rpartition(\"::\")).last}\""}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(*,__pull_for_json_serializablepull:JSON::PullParser)-class-method","name":"new","doc":"Override the default JSON::Serializable behaviour to make keys case\ninensitive when deserialising.","summary":"

Override the default JSON::Serializable behaviour to make keys case inensitive when deserialising.

","abstract":false,"args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"args_string":"(*, __pull_for_json_serializable pull : JSON::PullParser)","args_html":"(*, __pull_for_json_serializable pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L36"},"def":{"name":"new","args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"splat_index":0,"visibility":"Public","body":"_ = allocate\n_.initialize(__pull_for_json_serializable: pull)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","path":"Lenel/OpenAccess/Models/Event.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_result:Int32|Nil-instance-method","name":"access_result","doc":"getter alarm_priority : Int32?\ngetter alarm_ack_blue_channel : Int32?\ngetter alarm_ack_green_channel : Int32?\ngetter alarm_ack_red_channel : Int32?\ngetter alarm_blue_channel : Int32?\ngetter alarm_green_channel : Int32?\ngetter alarm_red_channel : Int32?","summary":"

getter alarm_priority : Int32? getter alarm_ack_blue_channel : Int32? getter alarm_ack_green_channel : Int32? getter alarm_ack_red_channel : Int32? getter alarm_blue_channel : Int32? getter alarm_green_channel : Int32? getter alarm_red_channel : Int32?

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L111"},"def":{"name":"access_result","return_type":"Int32 | ::Nil","visibility":"Public","body":"@access_result"}},{"html_id":"asset_id:Int32|Nil-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L102"},"def":{"name":"asset_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@asset_id"}},{"html_id":"badge_extended_id:String|Nil-instance-method","name":"badge_extended_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L100"},"def":{"name":"badge_extended_id","return_type":"String | ::Nil","visibility":"Public","body":"@badge_extended_id"}},{"html_id":"badge_id:Int32|Nil-instance-method","name":"badge_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L98"},"def":{"name":"badge_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_id"}},{"html_id":"badge_id_str:String|Nil-instance-method","name":"badge_id_str","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L99"},"def":{"name":"badge_id_str","return_type":"String | ::Nil","visibility":"Public","body":"@badge_id_str"}},{"html_id":"badge_issue_code:Int32|Nil-instance-method","name":"badge_issue_code","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L101"},"def":{"name":"badge_issue_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_issue_code"}},{"html_id":"cardholder_entered:Bool|Nil-instance-method","name":"cardholder_entered","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L112"},"def":{"name":"cardholder_entered","return_type":"Bool | ::Nil","visibility":"Public","body":"@cardholder_entered"}},{"html_id":"cardholder_first_name:String|Nil-instance-method","name":"cardholder_first_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L116"},"def":{"name":"cardholder_first_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_first_name"}},{"html_id":"cardholder_key:Int32|Nil-instance-method","name":"cardholder_key","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L103"},"def":{"name":"cardholder_key","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cardholder_key"}},{"html_id":"cardholder_last_name:String|Nil-instance-method","name":"cardholder_last_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L117"},"def":{"name":"cardholder_last_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_last_name"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L91"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_name:String|Nil-instance-method","name":"controller_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L114"},"def":{"name":"controller_name","return_type":"String | ::Nil","visibility":"Public","body":"@controller_name"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L90"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"device_id:Int32-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L92"},"def":{"name":"device_id","return_type":"Int32","visibility":"Public","body":"@device_id"}},{"html_id":"device_name:String|Nil-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L118"},"def":{"name":"device_name","return_type":"String | ::Nil","visibility":"Public","body":"@device_name"}},{"html_id":"duress:Bool|Nil-instance-method","name":"duress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L113"},"def":{"name":"duress","return_type":"Bool | ::Nil","visibility":"Public","body":"@duress"}},{"html_id":"event_source_name:String|Nil-instance-method","name":"event_source_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L115"},"def":{"name":"event_source_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_source_name"}},{"html_id":"event_subtype:Int32|Nil-instance-method","name":"event_subtype","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L96"},"def":{"name":"event_subtype","return_type":"Int32 | ::Nil","visibility":"Public","body":"@event_subtype"}},{"html_id":"event_text:String|Nil-instance-method","name":"event_text","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L97"},"def":{"name":"event_text","return_type":"String | ::Nil","visibility":"Public","body":"@event_text"}},{"html_id":"event_type:Int32-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L95"},"def":{"name":"event_type","return_type":"Int32","visibility":"Public","body":"@event_type"}},{"html_id":"segment_id:Int32|Nil-instance-method","name":"segment_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L94"},"def":{"name":"segment_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@segment_id"}},{"html_id":"serial_number:Int32|Nil-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L88"},"def":{"name":"serial_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@serial_number"}},{"html_id":"subdevice_id:Int32|Nil-instance-method","name":"subdevice_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L93"},"def":{"name":"subdevice_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@subdevice_id"}},{"html_id":"subdevice_name:String|Nil-instance-method","name":"subdevice_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L119"},"def":{"name":"subdevice_name","return_type":"String | ::Nil","visibility":"Public","body":"@subdevice_name"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L89"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","path":"Lenel/OpenAccess/Models/Person.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person","abstract":true,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L124"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L124"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firstname:String|Nil-instance-method","name":"firstname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L126"},"def":{"name":"firstname","return_type":"String | ::Nil","visibility":"Public","body":"@firstname"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L125"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"lastname:String|Nil-instance-method","name":"lastname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L127"},"def":{"name":"lastname","return_type":"String | ::Nil","visibility":"Public","body":"@lastname"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","path":"Lenel/OpenAccess/Models/Reader.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L164"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L164"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accessMode:Int32|Nil-instance-method","name":"accessMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L165"},"def":{"name":"accessMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@accessMode"}},{"html_id":"address:Int32|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L166"},"def":{"name":"address","return_type":"Int32 | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"aux1Name:String|Nil-instance-method","name":"aux1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L182"},"def":{"name":"aux1Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux1Name"}},{"html_id":"aux2Name:String|Nil-instance-method","name":"aux2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L183"},"def":{"name":"aux2Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux2Name"}},{"html_id":"aux3Name:String|Nil-instance-method","name":"aux3Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L184"},"def":{"name":"aux3Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux3Name"}},{"html_id":"controlType:Int32|Nil-instance-method","name":"controlType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L167"},"def":{"name":"controlType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controlType"}},{"html_id":"extendedOpenTime:Int32|Nil-instance-method","name":"extendedOpenTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L168"},"def":{"name":"extendedOpenTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedOpenTime"}},{"html_id":"extendedStrikeTime:Int32|Nil-instance-method","name":"extendedStrikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L169"},"def":{"name":"extendedStrikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedStrikeTime"}},{"html_id":"friendlyName:String|Nil-instance-method","name":"friendlyName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L185"},"def":{"name":"friendlyName","return_type":"String | ::Nil","visibility":"Public","body":"@friendlyName"}},{"html_id":"gatewayAddress:Int32|Nil-instance-method","name":"gatewayAddress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L170"},"def":{"name":"gatewayAddress","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayAddress"}},{"html_id":"gatewayHostName:String|Nil-instance-method","name":"gatewayHostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L186"},"def":{"name":"gatewayHostName","return_type":"String | ::Nil","visibility":"Public","body":"@gatewayHostName"}},{"html_id":"gatewayIPPort:Int32|Nil-instance-method","name":"gatewayIPPort","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L171"},"def":{"name":"gatewayIPPort","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayIPPort"}},{"html_id":"hostName:String|Nil-instance-method","name":"hostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L187"},"def":{"name":"hostName","return_type":"String | ::Nil","visibility":"Public","body":"@hostName"}},{"html_id":"isPairedMaster:Bool|Nil-instance-method","name":"isPairedMaster","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L192"},"def":{"name":"isPairedMaster","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedMaster"}},{"html_id":"isPairedSlave:Bool|Nil-instance-method","name":"isPairedSlave","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L193"},"def":{"name":"isPairedSlave","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedSlave"}},{"html_id":"mode:Int32|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L173"},"def":{"name":"mode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L188"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"offlineMode:Int32|Nil-instance-method","name":"offlineMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L172"},"def":{"name":"offlineMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@offlineMode"}},{"html_id":"openTime:Int32|Nil-instance-method","name":"openTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L174"},"def":{"name":"openTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@openTime"}},{"html_id":"out1Name:String|Nil-instance-method","name":"out1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L189"},"def":{"name":"out1Name","return_type":"String | ::Nil","visibility":"Public","body":"@out1Name"}},{"html_id":"out2Name:String|Nil-instance-method","name":"out2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L190"},"def":{"name":"out2Name","return_type":"String | ::Nil","visibility":"Public","body":"@out2Name"}},{"html_id":"panelID:Int32|Nil-instance-method","name":"panelID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L175"},"def":{"name":"panelID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@panelID"}},{"html_id":"panelTypeName:String|Nil-instance-method","name":"panelTypeName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L191"},"def":{"name":"panelTypeName","return_type":"String | ::Nil","visibility":"Public","body":"@panelTypeName"}},{"html_id":"portNumber:Int32|Nil-instance-method","name":"portNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L176"},"def":{"name":"portNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@portNumber"}},{"html_id":"readerID:Int32|Nil-instance-method","name":"readerID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L177"},"def":{"name":"readerID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerID"}},{"html_id":"readerNumber:Int32|Nil-instance-method","name":"readerNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L178"},"def":{"name":"readerNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerNumber"}},{"html_id":"slaveID:Int32|Nil-instance-method","name":"slaveID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L179"},"def":{"name":"slaveID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@slaveID"}},{"html_id":"strikeTime:Int32|Nil-instance-method","name":"strikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L180"},"def":{"name":"strikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@strikeTime"}},{"html_id":"timeAttendanceType:Int32|Nil-instance-method","name":"timeAttendanceType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L181"},"def":{"name":"timeAttendanceType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@timeAttendanceType"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","path":"Lenel/OpenAccess/Models/Untyped.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/lenel/open_access/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L84"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" json_unmapped.\n{{ call }}\n\n \n"}}]}]}]},{"html_id":"drivers/Lenel/TimeConverter","path":"Lenel/TimeConverter.html","kind":"module","full_name":"Lenel::TimeConverter","name":"TimeConverter","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"doc":"Ensure that UTC time strings provide the offset as \"+00:00\" instead of \"Z\", as required by Openaccess","summary":"

Ensure that UTC time strings provide the offset as "+00:00" instead of "Z", as required by Openaccess

","class_methods":[{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/lenel/open_access/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lenel/open_access/models.cr#L5"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%FT%T%:z\"))"}}]}]},{"html_id":"drivers/Leviton","path":"Leviton.html","kind":"module","full_name":"Leviton","name":"Leviton","abstract":false,"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Leviton/Acquisuite","path":"Leviton/Acquisuite.html","kind":"class","full_name":"Leviton::Acquisuite","name":"Acquisuite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Leviton","kind":"module","full_name":"Leviton","name":"Leviton"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_list:Hash(String,{String,String})-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L148"},"def":{"name":"device_list","visibility":"Public","body":"@device_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@device_list = setting(Hash(String, Tuple(String, String)), :device_list)\n@manifest_list = setting(Array(String), :manifest_list)\n@config_list = setting(Hash(String, Array(Hash(String, Float64 | String | Nil))), :config_list)\n"}},{"html_id":"receive_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"receive_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/leviton/acquisuite.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/leviton/acquisuite.cr#L31"},"def":{"name":"receive_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n if @debug_webhook\n logger.warn do\n ((\"Received Webhook\\n\" + \"Method: #{method.inspect}\\n\") + \"Headers:\\n#{headers.inspect}\\n\") + \"Body:\\n#{body.inspect}\"\n end\n end\n decoded = Base64.decode_string(body)\n case method.downcase\n when \"post\"\n new_headers = HTTP::Headers.new\n headers.each do |k, v|\n new_headers[k] = v\n end\n request = HTTP::Request.new(\"POST\", \"/request\", new_headers, decoded)\n files, form_data = ActionController::BodyParser.extract_form_data(request, \"multipart/form-data\", request.query_params)\n form_data = form_data.not_nil!\n case form_data[\"MODE\"]\n when \"STATUS\"\n return {HTTP::Status::OK.to_i, {} of String => String, \"SUCCESS\"}\n when \"CONFIGFILEMANIFEST\"\n return {HTTP::Status::OK.to_i, {} of String => String, device_to_manifest.join(\"\\n\")}\n when \"CONFIGFILEUPLOAD\"\n files = files.not_nil!\n return config_file_upload(files, form_data)\n when \"LOGFILEUPLOAD\"\n files = files.not_nil!\n return log_file_upload(files, form_data)\n else\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: Invalid mode passed. Either STATUS, CONFIGFILEMANIFEST, CONFIGFILEUPLOAD or LOGFILEUPLOAD required. Got #{form_data[\"MODE\"]}\"}\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request: #{body.inspect}\"\n end\n self[:last_error] = error.inspect_with_backtrace\n self[:error_payload] = body\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: #{error.message.to_s}\"}\nend"}}]}]},{"html_id":"drivers/Lg","path":"Lg.html","kind":"module","full_name":"Lg","name":"Lg","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lg/Displays","path":"Lg/Displays.html","kind":"module","full_name":"Lg::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lg","kind":"module","full_name":"Lg","name":"Lg"},"types":[{"html_id":"drivers/Lg/Displays/Ls5","path":"Lg/Displays/Ls5.html","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"120_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Lg/Displays","kind":"module","full_name":"Lg::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(ratio:Ratio)-instance-method","name":"aspect_ratio","abstract":false,"args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"args_string":"(ratio : Ratio)","args_html":"(ratio : Ratio)","location":{"filename":"src/lg/displays/ls5.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L143"},"def":{"name":"aspect_ratio","args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"visibility":"Public","body":"do_send(Command::AspectRatio, ratio.value, name: \"aspect_ratio\", delay: 1.second)"}},{"html_id":"aspect_ratio?(priority:Int32=0)-instance-method","name":"aspect_ratio?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"aspect_ratio?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AspectRatio, 255, priority: priority, name: \"aspect_ratio\" + \"_status\")"}},{"html_id":"auto_off(state:Bool=false)-instance-method","name":"auto_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L211"},"def":{"name":"auto_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::AutoOff, val, 'm', name: \"disable_auto_off\")\n"}},{"html_id":"auto_off?(priority:Int32=0)-instance-method","name":"auto_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"auto_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AutoOff, 255, priority: priority, name: \"auto_off\" + \"_status\")"}},{"html_id":"brightness(value:Float64|Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Brightness, val, name: \"brightness\")\n"}},{"html_id":"brightness?(priority:Int32=0)-instance-method","name":"brightness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"brightness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Brightness, 255, priority: priority, name: \"brightness\" + \"_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nself[:connected] = true\nwake_on_lan\nno_signal_off\nauto_off\nlocal_button_lock\npm_mode\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Float64|Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Contrast, val, name: \"contrast\")\n"}},{"html_id":"contrast?(priority:Int32=0)-instance-method","name":"contrast?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"contrast?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Contrast, 255, priority: priority, name: \"contrast\" + \"_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L69"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nself[:connected] = false\nschedule.clear\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"if @rs232\n power?\n if self[:hard_power]?.try(&.as_bool)\n screen_mute?\n input?\n volume_mute?\n volume?\n end\nelse\n if @connected\n screen_mute?\n if @id_num == 1\n input?\n volume_mute?\n volume?\n end\n else\n if self[:power_target]?.try(&.as_bool)\n power(true)\n end\n end\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L111"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::Power, 0, name: \"power\", priority: 99, clear_queue: true)"}},{"html_id":"input?(priority:Int32=0)-instance-method","name":"input?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L169"},"def":{"name":"input?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Input, 255, 'x', priority: priority)"}},{"html_id":"local_button_lock(state:Bool=true)-instance-method","name":"local_button_lock","doc":"0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons. Default to 2 as power off from local button results in network offline","summary":"

0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L206"},"def":{"name":"local_button_lock","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 2 : 0\ndo_send(Command::LocalButtonLock, val, 't', name: \"local_button_lock\")\n"}},{"html_id":"local_button_lock?(priority:Int32=0)-instance-method","name":"local_button_lock?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"local_button_lock?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::LocalButtonLock, 255, priority: priority, name: \"local_button_lock\" + \"_status\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/lg/displays/ls5.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L119"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n do_send(Command::ScreenMute, state ? 1 : 0, name: \"mute_video\")\nend\nif (layer.audio? || layer.audio_video?) && ((self[:audio_mute]?.try(&.as_bool)) != state)\n do_send(Command::VolumeMute, state ? 0 : 1, name: \"mute_audio\")\nend\nstate\n"}},{"html_id":"no_signal_off(state:Bool=false)-instance-method","name":"no_signal_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L199"},"def":{"name":"no_signal_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ncommand = build_command(Command::NoSignalOff, val, 'f')\nsend(command, name: \"no_signal_off\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"no_signal_off?(priority:Int32=0)-instance-method","name":"no_signal_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"no_signal_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::NoSignalOff, 255, priority: priority, name: \"no_signal_off\" + \"_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 150.milliseconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@rs232 = setting(Bool, :rs232_control)\n@id_num = setting(Int32, :display_id)\n@id = @id_num.to_s.rjust(2, '0')\n"}},{"html_id":"pm_mode(mode:Int32=3)-instance-method","name":"pm_mode","abstract":false,"args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"args_string":"(mode : Int32 = 3)","args_html":"(mode : Int32 = 3)","location":{"filename":"src/lg/displays/ls5.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L194"},"def":{"name":"pm_mode","args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"visibility":"Public","body":"command = build_command(Command::PmMode, mode, 's')\nsend(command, name: \"pm_mode\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"pm_mode?(priority:Int32=0)-instance-method","name":"pm_mode?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"pm_mode?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::PmMode, 255, priority: priority, name: \"pm_mode\" + \"_status\")"}},{"html_id":"power(state:Bool,broadcast:String|Nil=nil)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(state : Bool, broadcast : String | Nil = nil)","args_html":"(state : Bool, broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L98"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if state\n if @rs232\n do_send(Command::Power, 1, name: \"power\", priority: 99)\n else\n wake(broadcast || @last_broadcast)\n end\nend\nif @connected\n mute(!state)\nend\n"}},{"html_id":"power?(priority:Int32=0)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Power, 255, priority: priority, name: \"power\" + \"_status\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lg/displays/ls5.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L253"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if (resp_value = get_response_value(data)) == -1\n return task.try(&.abort)\nend\ncommand = Command.from_value(data[0])\nlogger.debug do\n \"Received command #{command}\"\nend\ncase command\nwhen .power?\n self[:hard_power] = resp_value == 1\n if self[:hard_power].as_bool\n else\n self[:power] = false\n end\nwhen .input?\n self[:input] = Input.from_value(resp_value)\nwhen .aspect_ratio?\n self[:aspect_ratio] = Ratio.from_value(resp_value)\nwhen .screen_mute?\n self[:power] = resp_value == 0\nwhen .volume_mute?\n self[:audio_mute] = resp_value == 0\nwhen .contrast?, .brightness?, .sharpness?, .volume?\n self[command.to_s.underscore] = resp_value\nwhen .wake_on_lan?, .auto_off?\n self[command.to_s.underscore] = resp_value == 1\nwhen .local_button_lock?\n self[:local_button_lock] = resp_value == 2\nelse\n return task.try(&.retry)\nend\ntask.try(&.success)\n"}},{"html_id":"screen_mute?(priority:Int32=0)-instance-method","name":"screen_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"screen_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::ScreenMute, 255, priority: priority, name: \"screen_mute\" + \"_status\")"}},{"html_id":"sharpness(value:Float64|Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Sharpness, val, name: \"sharpness\")\n"}},{"html_id":"sharpness?(priority:Int32=0)-instance-method","name":"sharpness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"sharpness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Sharpness, 255, priority: priority, name: \"sharpness\" + \"_status\")"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/lg/displays/ls5.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L115"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Input, input.value, 'x', name: \"input\", delay: 2.seconds)"}},{"html_id":"volume(value:Float64|Int32)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L173"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, val, name: \"volume\")\n"}},{"html_id":"volume?(priority:Int32=0)-instance-method","name":"volume?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Volume, 255, priority: priority, name: \"volume\" + \"_status\")"}},{"html_id":"volume_mute?(priority:Int32=0)-instance-method","name":"volume_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::VolumeMute, 255, priority: priority, name: \"volume_mute\" + \"_status\")"}},{"html_id":"wake(broadcast:String|Nil=nil)-instance-method","name":"wake","abstract":false,"args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(broadcast : String | Nil = nil)","args_html":"(broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L221"},"def":{"name":"wake","args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if mac = setting?(String, :mac_address)\n wake_device(mac, broadcast)\n logger.debug do\n info = \"Wake on Lan for MAC #{mac}\"\n if b = broadcast\n info = info + \" directed to VLAN #{b}\"\n end\n info\n end\nelse\n logger.warn do\n \"No MAC address provided\"\n end\nend"}},{"html_id":"wake_on_lan(state:Bool=true)-instance-method","name":"wake_on_lan","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L216"},"def":{"name":"wake_on_lan","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::WakeOnLan, val, 'f', name: \"enable_wake_on_lan\")\n"}},{"html_id":"wake_on_lan?(priority:Int32=0)-instance-method","name":"wake_on_lan?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L91"},"def":{"name":"wake_on_lan?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::WakeOnLan, 255, priority: priority, name: \"wake_on_lan\" + \"_status\")"}}],"types":[{"html_id":"drivers/Lg/Displays/Ls5/Command","path":"Lg/Displays/Ls5/Command.html","kind":"enum","full_name":"Lg::Displays::Ls5::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"97"},{"id":"Input","name":"Input","value":"98"},{"id":"AspectRatio","name":"AspectRatio","value":"99"},{"id":"ScreenMute","name":"ScreenMute","value":"100"},{"id":"VolumeMute","name":"VolumeMute","value":"101"},{"id":"Volume","name":"Volume","value":"102"},{"id":"Contrast","name":"Contrast","value":"103"},{"id":"Brightness","name":"Brightness","value":"104"},{"id":"Sharpness","name":"Sharpness","value":"107"},{"id":"AutoOff","name":"AutoOff","value":"110"},{"id":"LocalButtonLock","name":"LocalButtonLock","value":"111"},{"id":"WakeOnLan","name":"WakeOnLan","value":"119"},{"id":"NoSignalOff","name":"NoSignalOff","value":"103"},{"id":"PmMode","name":"PmMode","value":"110"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"aspect_ratio?-instance-method","name":"aspect_ratio?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L78"},"def":{"name":"aspect_ratio?","visibility":"Public","body":"self == AspectRatio"}},{"html_id":"auto_off?-instance-method","name":"auto_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L85"},"def":{"name":"auto_off?","visibility":"Public","body":"self == AutoOff"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L83"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L82"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"local_button_lock?-instance-method","name":"local_button_lock?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L86"},"def":{"name":"local_button_lock?","visibility":"Public","body":"self == LocalButtonLock"}},{"html_id":"no_signal_off?-instance-method","name":"no_signal_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L88"},"def":{"name":"no_signal_off?","visibility":"Public","body":"self == NoSignalOff"}},{"html_id":"pm_mode?-instance-method","name":"pm_mode?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L89"},"def":{"name":"pm_mode?","visibility":"Public","body":"self == PmMode"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L76"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"screen_mute?-instance-method","name":"screen_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L79"},"def":{"name":"screen_mute?","visibility":"Public","body":"self == ScreenMute"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L84"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L81"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"volume_mute?-instance-method","name":"volume_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L80"},"def":{"name":"volume_mute?","visibility":"Public","body":"self == VolumeMute"}},{"html_id":"wake_on_lan?-instance-method","name":"wake_on_lan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L87"},"def":{"name":"wake_on_lan?","visibility":"Public","body":"self == WakeOnLan"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Input","path":"Lg/Displays/Ls5/Input.html","kind":"enum","full_name":"Lg::Displays::Ls5::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dvi","name":"Dvi","value":"112"},{"id":"Hdmi","name":"Hdmi","value":"160"},{"id":"HdmiDtv","name":"HdmiDtv","value":"144"},{"id":"Hdmi2","name":"Hdmi2","value":"161"},{"id":"Hdmi2Dtv","name":"Hdmi2Dtv","value":"145"},{"id":"DisplayPort","name":"DisplayPort","value":"208"},{"id":"DisplayPortDtv","name":"DisplayPortDtv","value":"192"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L16"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"display_port_dtv?-instance-method","name":"display_port_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L17"},"def":{"name":"display_port_dtv?","visibility":"Public","body":"self == DisplayPortDtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L11"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L14"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_dtv?-instance-method","name":"hdmi2_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L15"},"def":{"name":"hdmi2_dtv?","visibility":"Public","body":"self == Hdmi2Dtv"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L12"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_dtv?-instance-method","name":"hdmi_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L13"},"def":{"name":"hdmi_dtv?","visibility":"Public","body":"self == HdmiDtv"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Ratio","path":"Lg/Displays/Ls5/Ratio.html","kind":"enum","full_name":"Lg::Displays::Ls5::Ratio","name":"Ratio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Square","name":"Square","value":"1"},{"id":"Wide","name":"Wide","value":"2"},{"id":"Zoom","name":"Zoom","value":"4"},{"id":"Scan","name":"Scan","value":"9"},{"id":"Program","name":"Program","value":"6"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"program?-instance-method","name":"program?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L140"},"def":{"name":"program?","visibility":"Public","body":"self == Program"}},{"html_id":"scan?-instance-method","name":"scan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L139"},"def":{"name":"scan?","visibility":"Public","body":"self == Scan"}},{"html_id":"square?-instance-method","name":"square?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L136"},"def":{"name":"square?","visibility":"Public","body":"self == Square"}},{"html_id":"wide?-instance-method","name":"wide?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L137"},"def":{"name":"wide?","visibility":"Public","body":"self == Wide"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lg/displays/ls5.cr#L138"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]}]}]}]},{"html_id":"drivers/Lumens","path":"Lumens.html","kind":"module","full_name":"Lumens","name":"Lumens","abstract":false,"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lumens/DC193","path":"Lumens/DC193.html","kind":"class","full_name":"Lumens::DC193","name":"DC193","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{193_u8 => :lamp, 176_u8 => :power, 183_u8 => :power_staus, 167_u8 => :picture_mode, 163_u8 => :auto_focus, 138_u8 => :max_zoom, 120_u8 => :frozen_status, 96_u8 => :zoom_staus, 81_u8 => :picture_mode_staus, 80_u8 => :lamp_staus, 44_u8 => :freeze, 31_u8 => :zoom_direct_auto_focus, 19_u8 => :zoom_direct, 17_u8 => :zoom, 16_u8 => :zoom_stop}"},{"id":"PICTURE_MODES","name":"PICTURE_MODES","value":"{:photo, :test, :greyscale}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"}],"namespace":{"html_id":"drivers/Lumens","kind":"module","full_name":"Lumens","name":"Lumens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_focus(name:String=\"auto_focus\")-instance-method","name":"auto_focus","abstract":false,"args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"args_string":"(name : String = \"auto_focus\")","args_html":"(name : String = "auto_focus")","location":{"filename":"src/lumens/dc193.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L107"},"def":{"name":"auto_focus","args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nsend(Bytes[160, 163, 1, 0, 0, 175], name: name)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds) do\n query_status\nend\nquery_status\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"freeze(state:Bool)-instance-method","name":"freeze","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L117"},"def":{"name":"freeze","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 44, state, 0, 0, 175], name: :freeze)\n"}},{"html_id":"frozen?-instance-method","name":"frozen?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L122"},"def":{"name":"frozen?","visibility":"Public","body":"send(Bytes[160, 120, 0, 0, 0, 175], priority: 0)"}},{"html_id":"lamp(state:Bool,head_led:Bool=false)-instance-method","name":"lamp","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"args_string":"(state : Bool, head_led : Bool = false)","args_html":"(state : Bool, head_led : Bool = false)","location":{"filename":"src/lumens/dc193.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L59"},"def":{"name":"lamp","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"visibility":"Public","body":"if @frozen\n return false\nend\nlamps = if state && head_led\n 1_u8\nelse\n if state\n 2_u8\n else\n if head_led\n 3_u8\n else\n 0_u8\n end\n end\nend\nsend(Bytes[160, 193, lamps, 0, 0, 175], name: :lamp)\n"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L75"},"def":{"name":"lamp?","visibility":"Public","body":"send(Bytes[160, 80, 0, 0, 0, 175], priority: 0)"}},{"html_id":"max_zoom?-instance-method","name":"max_zoom?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L146"},"def":{"name":"max_zoom?","visibility":"Public","body":"send(Bytes[160, 138, 0, 0, 0, 175], priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(6)\n@zoom_range = 0..@zoom_max\n"}},{"html_id":"picture_mode(state:String)-instance-method","name":"picture_mode","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/lumens/dc193.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L126"},"def":{"name":"picture_mode","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nmode = case state.downcase\nwhen \"photo\"\n 0_u8\nwhen \"text\"\n 1_u8\nwhen \"greyscale\", \"grayscale\"\n 2_u8\nelse\n raise(ArgumentError.new(\"unknown picture mode #{state}\"))\nend\nsend(Bytes[160, 167, mode, 0, 0, 175], name: :picture_mode)\n"}},{"html_id":"picture_mode?-instance-method","name":"picture_mode?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L142"},"def":{"name":"picture_mode?","visibility":"Public","body":"send(Bytes[160, 81, 0, 0, 0, 175], priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L48"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 176, state, 0, 0, 175], name: :power)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L54"},"def":{"name":"power?","visibility":"Public","body":"send(Bytes[160, 183, 0, 0, 0, 175], priority: 0)"}},{"html_id":"query_status-instance-method","name":"query_status","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L37"},"def":{"name":"query_status","visibility":"Public","body":"if power?.get == \"true\"\n lamp?\n zoom?\n frozen?\n max_zoom?\n picture_mode?\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lumens/dc193.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L189"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Lumens sent: #{data.hexstring}\"\nend\nstatus = Status.from_value(data[4].to_i)\nself[:zooming] = status.zooming?\nself[:focusing] = status.focusing?\nself[:iris_adjusting] = status.iris?\nif status.error?\n return task.try(&.abort(\"bad request\"))\nend\nif status.ignored?\n return task.try(&.retry(\"device busy\"))\nend\nresult = case COMMANDS[data[1]]?\nwhen :power\n data[2] == 1_u8\nwhen :power_staus\n @ready = data[2] == 1_u8\n @power = data[3] == 1_u8\n logger.debug do\n \"System power: #{@power}, ready: #{@ready}\"\n end\n self[:ready] = @ready\n self[:power] = @power\nwhen :max_zoom\n @zoom_max = data[2].to_i + (data[3].to_i << 8)\n @zoom_range = 0..@zoom_max\n self[:zoom_range] = {min: 0, max: @zoom_max}\nwhen :frozen_status, :freeze\n self[:frozen] = @frozen = data[2] == 1_u8\nwhen :zoom_staus, :zoom_direct_auto_focus, :zoom_direct\n value = data[2].to_i + (data[3].to_i << 8)\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\nwhen :picture_mode_staus, :picture_mode\n self[:picture_mode] = PICTURE_MODES[data[2].to_i]\nwhen :lamp_staus, :lamp\n case data[2]\n when 0_u8\n @head_led = @lamp = false\n when 1_u8\n @head_led = @lamp = true\n when 2_u8\n @head_led = false\n @lamp = true\n when 3_u8\n @head_led = true\n @lamp = false\n end\n self[:head_led] = @head_led\n self[:lamp] = @lamp\nwhen :auto_focus\nelse\n error = \"Unknown command #{data[1]}\"\n logger.debug do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success(result))\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=1)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 1)","args_html":"(direction : ZoomDirection, index : Int32 | String = 1)","location":{"filename":"src/lumens/dc193.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L90"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @frozen\n return false\nend\ncase direction\nwhen ZoomDirection::Stop\n send(Bytes[160, 16, 0, 0, 0, 175])\n zoom?(priority: queue.priority)\n auto_focus(name: \"zoom\")\nwhen ZoomDirection::In\n send(Bytes[160, 17, 0, 0, 0, 175], name: :zoom)\nwhen ZoomDirection::Out\n send(Bytes[160, 17, 1, 0, 0, 175], name: :zoom)\nend\n"}},{"html_id":"zoom?(priority:Int32=0)-instance-method","name":"zoom?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L113"},"def":{"name":"zoom?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(Bytes[160, 96, 0, 0, 0, 175], priority: priority)"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L79"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nposition = (percentage * @zoom_max.to_f).to_i\nlow = (position & 255).to_u8\nhigh = ((position >> 8) & 255).to_u8\nauto_focus = auto_focus ? 31_u8 : 19_u8\nsend(Bytes[160, auto_focus, low, high, 0, 175], name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Lumens/DC193/Status","path":"Lumens/DC193/Status.html","kind":"enum","full_name":"Lumens::DC193::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L151"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"1"},{"id":"Ignored","name":"Ignored","value":"2"},{"id":"Reserved1","name":"Reserved1","value":"4"},{"id":"Reserved2","name":"Reserved2","value":"8"},{"id":"Focusing","name":"Focusing","value":"16"},{"id":"Zooming","name":"Zooming","value":"32"},{"id":"Iris","name":"Iris","value":"64"},{"id":"Reserved3","name":"Reserved3","value":"128"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"255"}],"namespace":{"html_id":"drivers/Lumens/DC193","kind":"class","full_name":"Lumens::DC193","name":"DC193"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L152"},"def":{"name":"error?","visibility":"Public","body":"self.includes?(Error)"}},{"html_id":"focusing?-instance-method","name":"focusing?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L156"},"def":{"name":"focusing?","visibility":"Public","body":"self.includes?(Focusing)"}},{"html_id":"ignored?-instance-method","name":"ignored?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L153"},"def":{"name":"ignored?","visibility":"Public","body":"self.includes?(Ignored)"}},{"html_id":"iris?-instance-method","name":"iris?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L158"},"def":{"name":"iris?","visibility":"Public","body":"self.includes?(Iris)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L151"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"reserved1?-instance-method","name":"reserved1?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L154"},"def":{"name":"reserved1?","visibility":"Public","body":"self.includes?(Reserved1)"}},{"html_id":"reserved2?-instance-method","name":"reserved2?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L155"},"def":{"name":"reserved2?","visibility":"Public","body":"self.includes?(Reserved2)"}},{"html_id":"reserved3?-instance-method","name":"reserved3?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L159"},"def":{"name":"reserved3?","visibility":"Public","body":"self.includes?(Reserved3)"}},{"html_id":"zooming?-instance-method","name":"zooming?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lumens/dc193.cr#L157"},"def":{"name":"zooming?","visibility":"Public","body":"self.includes?(Zooming)"}}]}]}]},{"html_id":"drivers/Lutron","path":"Lutron.html","kind":"module","full_name":"Lutron","name":"Lutron","abstract":false,"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L12"},{"filename":"src/lutron/vive_leap_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"macros":[{"html_id":"upper_enum(name)-macro","name":"upper_enum","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""}],"args_string":"(name)","args_html":"(name)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L4"},"def":{"name":"upper_enum","args":[{"name":"name","external_name":"name","restriction":""}],"visibility":"Public","body":" \n{% if name.type.resolve.nilable? %} @{{ name.var }} : String? {% else %} @{{ name.var }} : String {% end %}\n\n \n{% enum_type = name.type.resolve.union_types.reject(&.nilable?).first %}\n\n\n def \n{{ name.var }}\n : \n{{ name.type }}\n\n if value = @\n{{ name.var }}\n\n \n{{ enum_type }}\n.parse(value)\n \nelse\n nil\n \nend\n \nend\n\n def \n{{ name.var }}\n=(value : \n{{ name.type }}\n) : \n{{ name.type }}\n\n @\n{{ name.var }}\n = value.try &.to_s\n value\n \nend\n \n"}}],"types":[{"html_id":"drivers/Lutron/AreaStatus","path":"Lutron/AreaStatus.html","kind":"struct","full_name":"Lutron::AreaStatus","name":"AreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","doc":"/area/3/status","summary":"

/area/3/status

","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L121"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L124"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"occupancy:OccupancyStatus|Nil-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy","return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"if value = @occupancy\n Lutron::OccupancyStatus.parse(value)\nelse\n nil\nend"}},{"html_id":"occupancy=(value:OccupancyStatus|Nil):OccupancyStatus|Nil-instance-method","name":"occupancy=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"args_string":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","args_html":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy=","args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"@occupancy = value.try(&.to_s)\nvalue\n"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L129"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, area_id, status = href.split(\"/\", 4)\n\"#{component}#{area_id}\"\n"}}]},{"html_id":"drivers/Lutron/Availability","path":"Lutron/Availability.html","kind":"enum","full_name":"Lutron::Availability","name":"Availability","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L159"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Available","name":"Available","value":"0"},{"id":"Unavailable","name":"Unavailable","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"available?-instance-method","name":"available?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L160"},"def":{"name":"available?","visibility":"Public","body":"self == Available"}},{"html_id":"unavailable?-instance-method","name":"unavailable?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L161"},"def":{"name":"unavailable?","visibility":"Public","body":"self == Unavailable"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L162"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]},{"html_id":"drivers/Lutron/ClientSetting","path":"Lutron/ClientSetting.html","kind":"struct","full_name":"Lutron::ClientSetting","name":"ClientSetting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"protocol:ClientVersion-instance-method","name":"protocol","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L77"},"def":{"name":"protocol","return_type":"ClientVersion","visibility":"Public","body":"@protocol"}}]},{"html_id":"drivers/Lutron/ClientVersion","path":"Lutron/ClientVersion.html","kind":"struct","full_name":"Lutron::ClientVersion","name":"ClientVersion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"major_version:Int32-instance-method","name":"major_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L84"},"def":{"name":"major_version","return_type":"Int32","visibility":"Public","body":"@major_version"}},{"html_id":"minor_version:Int32-instance-method","name":"minor_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L87"},"def":{"name":"minor_version","return_type":"Int32","visibility":"Public","body":"@minor_version"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L89"},"def":{"name":"version","visibility":"Public","body":"\"#{major_version}.#{minor_version}.0\""}}]},{"html_id":"drivers/Lutron/CommuniqueType","path":"Lutron/CommuniqueType.html","kind":"enum","full_name":"Lutron::CommuniqueType","name":"CommuniqueType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"ReadRequest","name":"ReadRequest","value":"0"},{"id":"ReadResponse","name":"ReadResponse","value":"1"},{"id":"UpdateRequest","name":"UpdateRequest","value":"2"},{"id":"UpdateResponse","name":"UpdateResponse","value":"3"},{"id":"SubscribeRequest","name":"SubscribeRequest","value":"4"},{"id":"SubscribeResponse","name":"SubscribeResponse","value":"5"},{"id":"DeleteRequest","name":"DeleteRequest","value":"6"},{"id":"DeleteResponse","name":"DeleteResponse","value":"7"},{"id":"CreateRequest","name":"CreateRequest","value":"8"},{"id":"CreateResponse","name":"CreateResponse","value":"9"},{"id":"UnsubscribeRequest","name":"UnsubscribeRequest","value":"10"},{"id":"UnsubscribeResponse","name":"UnsubscribeResponse","value":"11"},{"id":"ExceptionResponse","name":"ExceptionResponse","value":"12"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"create_request?-instance-method","name":"create_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L31"},"def":{"name":"create_request?","visibility":"Public","body":"self == CreateRequest"}},{"html_id":"create_response?-instance-method","name":"create_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L32"},"def":{"name":"create_response?","visibility":"Public","body":"self == CreateResponse"}},{"html_id":"delete_request?-instance-method","name":"delete_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L29"},"def":{"name":"delete_request?","visibility":"Public","body":"self == DeleteRequest"}},{"html_id":"delete_response?-instance-method","name":"delete_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L30"},"def":{"name":"delete_response?","visibility":"Public","body":"self == DeleteResponse"}},{"html_id":"exception_response?-instance-method","name":"exception_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L35"},"def":{"name":"exception_response?","visibility":"Public","body":"self == ExceptionResponse"}},{"html_id":"read_request?-instance-method","name":"read_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L23"},"def":{"name":"read_request?","visibility":"Public","body":"self == ReadRequest"}},{"html_id":"read_response?-instance-method","name":"read_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L24"},"def":{"name":"read_response?","visibility":"Public","body":"self == ReadResponse"}},{"html_id":"subscribe_request?-instance-method","name":"subscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L27"},"def":{"name":"subscribe_request?","visibility":"Public","body":"self == SubscribeRequest"}},{"html_id":"subscribe_response?-instance-method","name":"subscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L28"},"def":{"name":"subscribe_response?","visibility":"Public","body":"self == SubscribeResponse"}},{"html_id":"unsubscribe_request?-instance-method","name":"unsubscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L33"},"def":{"name":"unsubscribe_request?","visibility":"Public","body":"self == UnsubscribeRequest"}},{"html_id":"unsubscribe_response?-instance-method","name":"unsubscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L34"},"def":{"name":"unsubscribe_response?","visibility":"Public","body":"self == UnsubscribeResponse"}},{"html_id":"update_request?-instance-method","name":"update_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L25"},"def":{"name":"update_request?","visibility":"Public","body":"self == UpdateRequest"}},{"html_id":"update_response?-instance-method","name":"update_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L26"},"def":{"name":"update_response?","visibility":"Public","body":"self == UpdateResponse"}}]},{"html_id":"drivers/Lutron/ContactClosureState","path":"Lutron/ContactClosureState.html","kind":"enum","full_name":"Lutron::ContactClosureState","name":"ContactClosureState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L156"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L155"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]},{"html_id":"drivers/Lutron/ExceptionDetail","path":"Lutron/ExceptionDetail.html","kind":"struct","full_name":"Lutron::ExceptionDetail","name":"ExceptionDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error_code:Int32|Nil-instance-method","name":"error_code","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L101"},"def":{"name":"error_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@error_code"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L98"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Lutron/Lighting","path":"Lutron/Lighting.html","kind":"class","full_name":"Lutron::Lighting","name":"Lighting","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Errors","name":"Errors","value":"{\"1\" => \"Parameter count mismatch\", \"2\" => \"Object does not exist\", \"3\" => \"Invalid action number\", \"4\" => \"Parameter data out of range\", \"5\" => \"Parameter data malformed\", \"6\" => \"Unsupported Command\"}"},{"id":"Occupancy","name":"Occupancy","value":"{\"1\" => \"unknown\", \"2\" => \"inactive\", \"3\" => \"occupied\", \"4\" => \"unoccupied\"}"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"blinds(device:String,action:String,component:String=\"shadegrp\")-instance-method","name":"blinds","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"args_string":"(device : String, action : String, component : String = \"shadegrp\")","args_html":"(device : String, action : String, component : String = "shadegrp")","location":{"filename":"src/lutron/lighting.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L77"},"def":{"name":"blinds","args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"case action.downcase\nwhen \"raise\", \"up\"\n send_cmd(component.upcase, device, 3)\nwhen \"lower\", \"down\"\n send_cmd(component.upcase, device, 2)\nwhen \"stop\"\n send_cmd(component.upcase, device, 4)\nend"}},{"html_id":"button_press(area:Int32,button:Int32)-instance-method","name":"button_press","doc":"===============\nDEVICE COMMANDS\n===============","summary":"

=============== DEVICE COMMANDS ===============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"args_string":"(area : Int32, button : Int32)","args_html":"(area : Int32, button : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L116"},"def":{"name":"button_press","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"visibility":"Public","body":"send_cmd(\"DEVICE\", area, button, 3)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"send(\"#{@login}\\r\\n\", priority: 9999)\nschedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Lutron\"\n end\n scene?(1)\nend\n"}},{"html_id":"daylight(area:Int32,mode:Bool)-instance-method","name":"daylight","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"args_string":"(area : Int32, mode : Bool)","args_html":"(area : Int32, mode : Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L108"},"def":{"name":"daylight","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"visibility":"Public","body":"val = mode ? 1 : 2\nsend_cmd(\"AREA\", area, 7, val)\n"}},{"html_id":"daylight_mode?(area:Int32)-instance-method","name":"daylight_mode?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L104"},"def":{"name":"daylight_mode?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 7)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L44"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"led(area:Int32,device:Int32,state:Int32|Bool)-instance-method","name":"led","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"args_string":"(area : Int32, device : Int32, state : Int32 | Bool)","args_html":"(area : Int32, device : Int32, state : Int32 | Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L120"},"def":{"name":"led","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"visibility":"Public","body":"val = if state.is_a?(Int32)\n state\nelse\n state ? 1 : 0\nend\nsend_cmd(\"DEVICE\", area, device, 9, val)\n"}},{"html_id":"led?(area:Int32,device:Int32)-instance-method","name":"led?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"args_string":"(area : Int32, device : Int32)","args_html":"(area : Int32, device : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L130"},"def":{"name":"led?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"DEVICE\", area, device, 9)"}},{"html_id":"level(device:Int32,level:Int32,rate:Int32=1000,component:String=\"output\")-instance-method","name":"level","doc":"dimmers, CCOs, or other devices in a system that have a controllable output","summary":"

dimmers, CCOs, or other devices in a system that have a controllable output

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"args_string":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = \"output\")","args_html":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = "output")","location":{"filename":"src/lutron/lighting.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L63"},"def":{"name":"level","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nseconds = rate / 1000\nmin = seconds / 60\nseconds = seconds - (min * 60)\ntime = \"#{min.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}\"\nsend_cmd(component.upcase, device, 1, level, time)\n"}},{"html_id":"light_level(area:Int32,level:Int32,component:String|Nil=nil,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","args_html":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","location":{"filename":"src/lutron/lighting.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L141"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"if component\n level(area, level, fade, component)\nelse\n level(area, level, fade, \"area\")\nend"}},{"html_id":"lighting(device:Int32,state:Bool,action:Int32=1)-instance-method","name":"lighting","doc":"on or off","summary":"

on or off

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"args_string":"(device : Int32, state : Bool, action : Int32 = 1)","args_html":"(device : Int32, state : Bool, action : Int32 = 1)","location":{"filename":"src/lutron/lighting.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L53"},"def":{"name":"lighting","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(device, level)\n"}},{"html_id":"occupancy?(area:Int32)-instance-method","name":"occupancy?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L100"},"def":{"name":"occupancy?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 8)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@login = (setting?(String, :login)) || \"nwk\"\n@trigger_type = (setting?(String, :trigger)) || \"area\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/lighting.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nparts = data.split(\",\")\ncomponent = parts[0][1..-1].downcase\ncase component\nwhen \"area\", \"output\", \"shadegrp\"\n area = parts[1]\n action = parts[2].to_i\n param = parts[3]\n case action\n when 1\n self[\"#{component}#{area}_level\"] = param.to_f\n when 6\n self[\"#{component}#{area}\"] = param.to_i\n when 7\n self[\"#{component}#{area}_daylight\"] = param == \"1\"\n when 8\n self[\"#{component}#{area}_occupied\"] = Occupancy[param]\n end\nwhen \"device\"\n area = parts[1]\n device = parts[2]\n action = parts[3].to_i\n case action\n when 7\n self[\"device#{area}_#{device}\"] = parts[4].to_i\n when 9\n self[\"device#{area}_#{device}_led\"] = parts[4].to_i\n end\nwhen \"error\"\n error = \"error #{parts[1]}: #{Errors[parts[1]]}\"\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success)\n"}},{"html_id":"restart-instance-method","name":"restart","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L48"},"def":{"name":"restart","visibility":"Public","body":"send_cmd(\"RESET\", 0)"}},{"html_id":"scene(area:Int32,scene:Int32,component:String=\"area\")-instance-method","name":"scene","doc":"=============\nAREA COMMANDS\n=============","summary":"

============= AREA COMMANDS =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, scene : Int32, component : String = \"area\")","args_html":"(area : Int32, scene : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L91"},"def":{"name":"scene","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"(send_cmd(component.upcase, area, 6, scene)).get\nscene?(area, component)\n"}},{"html_id":"scene?(area:Int32,component:String=\"area\")-instance-method","name":"scene?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, component : String = \"area\")","args_html":"(area : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L96"},"def":{"name":"scene?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"send_query(component.upcase, area, 6)"}},{"html_id":"trigger(area:Int32,scene:Int32)-instance-method","name":"trigger","doc":"=============\nCOMPATIBILITY\n=============","summary":"

============= COMPATIBILITY =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32)","args_html":"(area : Int32, scene : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/lighting.cr#L137"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"scene(area, scene, @trigger_type)"}}]},{"html_id":"drivers/Lutron/MultipleAreaStatus","path":"Lutron/MultipleAreaStatus.html","kind":"struct","full_name":"Lutron::MultipleAreaStatus","name":"MultipleAreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L104"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L105"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(AreaStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L108"},"def":{"name":"states","return_type":"Array(AreaStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/MultipleZoneStatus","path":"Lutron/MultipleZoneStatus.html","kind":"struct","full_name":"Lutron::MultipleZoneStatus","name":"MultipleZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L135"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(ZoneStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L139"},"def":{"name":"states","return_type":"Array(ZoneStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/OccupancyStatus","path":"Lutron/OccupancyStatus.html","kind":"enum","full_name":"Lutron::OccupancyStatus","name":"OccupancyStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L111"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Occupied","name":"Occupied","value":"0"},{"id":"Unoccupied","name":"Unoccupied","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"occupied?-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L112"},"def":{"name":"occupied?","visibility":"Public","body":"self == Occupied"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L114"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"unoccupied?-instance-method","name":"unoccupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L113"},"def":{"name":"unoccupied?","visibility":"Public","body":"self == Unoccupied"}}]},{"html_id":"drivers/Lutron/OneZoneStatus","path":"Lutron/OneZoneStatus.html","kind":"struct","full_name":"Lutron::OneZoneStatus","name":"OneZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:ZoneStatus-instance-method","name":"status","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L146"},"def":{"name":"status","return_type":"ZoneStatus","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/Lutron/Quantum","path":"Lutron/Quantum.html","kind":"class","full_name":"Lutron::Quantum","name":"Quantum","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/quantum.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"level(id:Int32,level:String)-instance-method","name":"level","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(id : Int32, level : String)","args_html":"(id : Int32, level : String)","location":{"filename":"src/lutron/quantum.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L31"},"def":{"name":"level","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"client.zone.set_status_level(id: id, level: level)\nself[\"area#{id}_level\"] = level\n"}},{"html_id":"level?(id:Int32)-instance-method","name":"level?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L26"},"def":{"name":"level?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.zone.get_status(id)\nself[\"area#{id}_level\"] = status[\"Level\"]\n"}},{"html_id":"occupancy_status?(id:Int32)-instance-method","name":"occupancy_status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L46"},"def":{"name":"occupancy_status?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"occupancy_status = client.area.get_occupancy_status(id: id)\nself[\"area#{id}_occupancy\"] = occupancy_status\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = (URI.parse(config.uri.not_nil!)).host\napi_key = setting(String, :api_key)\ndevice_key = setting(String, :device_key)\n@client = Client.new(host_name: host_name.not_nil!, api_key: api_key, device_key: device_key)\n"}},{"html_id":"root-instance-method","name":"root","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L57"},"def":{"name":"root","visibility":"Public","body":"client.area.root"}},{"html_id":"scene(id:Int32,scene:Int32)-instance-method","name":"scene","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(id : Int32, scene : Int32)","args_html":"(id : Int32, scene : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L36"},"def":{"name":"scene","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"client.area.set_scene(id: id, scene: scene)\nself[\"area#{id}\"] = scene\n"}},{"html_id":"scene?(id:Int32)-instance-method","name":"scene?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L41"},"def":{"name":"scene?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.area.get_status(id: id)\nself[\"area#{id}\"] = status[\"CurrentScene\"]\n"}},{"html_id":"scenes(id:Int32)-instance-method","name":"scenes","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L52"},"def":{"name":"scenes","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"client.area.get_scenes(id: id)"}}],"types":[{"html_id":"drivers/Lutron/Quantum/Client","path":"Lutron/Quantum/Client.html","kind":"alias","full_name":"Lutron::Quantum::Client","name":"Client","abstract":false,"locations":[{"filename":"src/lutron/quantum.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/quantum.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Quantum::Client","aliased_html":"Quantum::Client","const":false,"namespace":{"html_id":"drivers/Lutron/Quantum","kind":"class","full_name":"Lutron::Quantum","name":"Quantum"}}]},{"html_id":"drivers/Lutron/Request","path":"Lutron/Request.html","kind":"class","full_name":"Lutron::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L39"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(url:String,req_type:CommuniqueType=CommuniqueType::ReadRequest,body=nil,header:Hash(String,String)={}ofString=>String)-class-method","name":"new","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"args_string":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","args_html":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L56"},"def":{"name":"new","args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(url, req_type, body, header)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(*args,**options)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args] = **options"}},{"html_id":"[]=(*args,**options,&)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]=(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"if (__temp_1 = @body).nil?\n @body = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"header:Hash(String,String)-instance-method","name":"header","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header","return_type":"Hash(String, String)","visibility":"Public","body":"@header"}},{"html_id":"header=(header:Hash(String,String))-instance-method","name":"header=","abstract":false,"args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"args_string":"(header : Hash(String, String))","args_html":"(header : Hash(String, String))","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header=","args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@header = header"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L52"},"def":{"name":"name?","visibility":"Public","body":"header[\"Url\"]?"}},{"html_id":"type:CommuniqueType-instance-method","name":"type","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type","return_type":"CommuniqueType","visibility":"Public","body":"if value = @type\n Lutron::CommuniqueType.parse(value)\nelse\n nil\nend"}},{"html_id":"type=(value:CommuniqueType):CommuniqueType-instance-method","name":"type=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"args_string":"(value : CommuniqueType) : CommuniqueType","args_html":"(value : CommuniqueType) : CommuniqueType","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type=","args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"return_type":"CommuniqueType","visibility":"Public","body":"@type = value.try(&.to_s)\nvalue\n"}}]},{"html_id":"drivers/Lutron/RoomLogic","path":"Lutron/RoomLogic.html","kind":"class","full_name":"Lutron::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/room_logic.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_state-instance-method","name":"get_state","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L26"},"def":{"name":"get_state","visibility":"Public","body":"self[\"lighting_scene\"] = (lutron.scene?(@area_id)).get\nself[\"occupancy\"] = (lutron.occupancy_status?(@area_id)).get\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/room_logic.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@area_id = setting(Int32, :lutron_area_id)\n@cron_string = setting(String, :lutron_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_state\nend\n"}}]},{"html_id":"drivers/Lutron/SwitchedLevel","path":"Lutron/SwitchedLevel.html","kind":"enum","full_name":"Lutron::SwitchedLevel","name":"SwitchedLevel","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L149"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L151"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L150"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Lutron/ViveBacnet","path":"Lutron/ViveBacnet.html","kind":"class","full_name":"Lutron::ViveBacnet","name":"ViveBacnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disable_occupancy(state:Bool)-instance-method","name":"disable_occupancy","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L79"},"def":{"name":"disable_occupancy","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 7, state)).get\nself[:occupancy_disabled] = state\n"}},{"html_id":"level(percentage:Float32)-instance-method","name":"level","abstract":false,"args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"args_string":"(percentage : Float32)","args_html":"(percentage : Float32)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L67"},"def":{"name":"level","args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"visibility":"Public","body":"if percentage < 0.0_f32\n percentage = 0.0_f32\nend\nif percentage > 100.0_f32\n percentage = 100.0_f32\nend\n(bacnet.write_real(@device_id, 2, percentage)).get\nself[:lighting_level] = percentage\n"}},{"html_id":"lighting(state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L74"},"def":{"name":"lighting","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 3, state)).get\nself[:lighting] = state\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_bacnet.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@device_id = setting(UInt32, :device_id)\nsubscriptions.clear\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[2]\") do |_sub, value|\n self[:lighting_level] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[18]\") do |_sub, value|\n self[:power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[19]\") do |_sub, value|\n self[:max_power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[3]\") do |_sub, value|\n self[:lighting] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[7]\") do |_sub, value|\n self[:occupancy_disabled] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.MultiStateValue[8]\") do |_sub, value|\n @occupancy = case value\n when \"1\"\n false\n when \"2\"\n true\n else\n nil\n end\n self[:occupancy] = @occupancy\n self[:occupancy_sensor] = @occupancy.nil? ? nil : (@occupancy ? 1.0 : 0.0)\n @last_updated = Time.utc.to_unix\nend\nschedule.clear\nschedule.every((4 + (rand(3))).seconds) do\n (bacnet.update_value(@device_id, 2, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 18, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 19, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 3, \"BinaryValue\")).get\n (bacnet.update_value(@device_id, 8, \"MultiStateValue\")).get\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L111"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id == \"occupancy\"\nelse\n return nil\nend\nif mac == @device_id.to_s\nelse\n return nil\nend\nif @last_updated == 0_i64\n return nil\nend\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_bacnet.cr#L90"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != @device_id.to_s)\n return NO_MATCH\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\n[Interface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")]\n"}}]},{"html_id":"drivers/Lutron/ViveLeap","path":"Lutron/ViveLeap.html","kind":"class","full_name":"Lutron::ViveLeap","name":"ViveLeap","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area_status?-instance-method","name":"area_status?","doc":"gets the status of all areas","summary":"

gets the status of all areas

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L85"},"def":{"name":"area_status?","visibility":"Public","body":"request = Request.new(\"/area/status\")\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"request = Request.new(\"/clientsetting\", :update_request, {ClientSetting: {ClientMajorVersion: 1}})\nsend(request.to_json, priority: 99, name: request.name?)\nschedule.every(1.minute) do\n ping\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"@sensors.clear\nschedule.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n length, unpaired = 0, 0\n loop do\n case io.read_char\n when '{'\n unpaired = unpaired + 1\n when '}'\n unpaired = unpaired - 1\n when Nil\n break\n end\n length = length + 1\n if unpaired.zero?\n break\n end\n end\n unpaired.zero? && length > 0 ? length : -1\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L79"},"def":{"name":"ping","visibility":"Public","body":"request = Request.new(\"/server/status/ping\")\nsend(request.to_json, priority: 0, name: request.name?)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/vive_leap.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L142"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nrequest = Request.from_json(data)\nurl = request[\"Url\"]?\nhttp_status = request[\"StatusCode\"]? || \"200 OK\"\nmessage_type = request[\"MessageBodyType\"]?\ncase message_type\nwhen \"OneClientSettingDefinition\"\n setting = ClientSetting.from_json(request.body)\n logger.debug do\n \"protocol version negotiated #{setting.protocol.version}, authenticating\"\n end\n authenticate\nwhen \"MultipleAreaStatus\"\n statuses = MultipleAreaStatus.from_json(request.body)\n timestamp = Time.utc.to_unix\n statuses.states.each do |status|\n base_key = status.status_key\n if status.level\n self[\"#{base_key}_level\"] = status.level\n end\n if status.occupancy\n self[\"#{base_key}_occupied\"] = status.occupancy\n @sensors[base_key] = {status.occupancy.try(&.occupied?) || false, timestamp}\n end\n end\nwhen \"MultipleZoneStatus\"\n statuses = MultipleZoneStatus.from_json(request.body)\n statuses.states.each do |status|\n set_zone(status)\n end\nwhen \"OneZoneStatus\"\n set_zone((OneZoneStatus.from_json(request.body)).status)\nwhen \"ExceptionDetail\"\n code, status = http_status.split(\" \", 2)\n details = ExceptionDetail.from_json(request.body)\n error_message = \"operation #{url} failed with #{code}: #{status}, #{details.message} [#{details.error_code}]\"\n logger.warn do\n error_message\n end\n if task && (task.name == url)\n task.abort(error_message)\n else\n return\n end\nwhen nil\n case url\n when \"/server/status/ping\"\n logger.debug do\n \"got ping response\"\n end\n end\nelse\n logger.debug do\n \"unknown message type #{message_type}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_leap.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L233"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif mac == config.ip\nelse\n return nil\nend\nif id\nelse\n return nil\nend\nsensor_found = @sensors[id]?\nif sensor_found\nelse\n return nil\nend\npresence, timestamp = sensor_found\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: mac, id: id, name: \"#{system.name} #{id} occupancy\", module_id: module_id, binding: \"#{id}_occupied\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_leap.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L213"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\n@sensors.map do |area_id, __temp_844|\n presence, timestamp = __temp_844\n Interface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: config.ip.not_nil!, id: area_id, name: \"#{system.name} #{area_id} occupancy\", module_id: module_id, binding: \"#{area_id}_occupied\")\nend\n"}},{"html_id":"zone_contact_closure(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_contact_closure","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L130"},"def":{"name":"zone_contact_closure","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToCCOLevel\", CCOLevelParameters: {CCOLevel: state ? \"Closed\" : \"Open\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_level(zone_id:String|Int32,level:Float64)-instance-method","name":"zone_level","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(zone_id : String | Int32, level : Float64)","args_html":"(zone_id : String | Int32, level : Float64)","location":{"filename":"src/lutron/vive_leap.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L106"},"def":{"name":"zone_level","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToDimmedLevel\", DimmedLevelParameters: {Level: level}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_lighting(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_lighting","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L118"},"def":{"name":"zone_lighting","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToSwitchedLevel\", SwitchedLevelParameters: {SwitchedLevel: state ? \"On\" : \"Off\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_status?-instance-method","name":"zone_status?","doc":"get the status of all zones","summary":"

get the status of all zones

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap.cr#L96"},"def":{"name":"zone_status?","visibility":"Public","body":"request = Request.new(\"/zone/status\")\nsend(request.to_json, name: request.name?)\n"}}]},{"html_id":"drivers/Lutron/ZoneStatus","path":"Lutron/ZoneStatus.html","kind":"struct","full_name":"Lutron::ZoneStatus","name":"ZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"availability:Availability|Nil-instance-method","name":"availability","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability","return_type":"Availability | ::Nil","visibility":"Public","body":"if value = @availability\n Lutron::Availability.parse(value)\nelse\n nil\nend"}},{"html_id":"availability=(value:Availability|Nil):Availability|Nil-instance-method","name":"availability=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"args_string":"(value : Availability | Nil) : Availability | Nil","args_html":"(value : Availability | Nil) : Availability | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability=","args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"return_type":"Availability | ::Nil","visibility":"Public","body":"@availability = value.try(&.to_s)\nvalue\n"}},{"html_id":"contact_closure:ContactClosureState|Nil-instance-method","name":"contact_closure","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure","return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"if value = @contact_closure\n Lutron::ContactClosureState.parse(value)\nelse\n nil\nend"}},{"html_id":"contact_closure=(value:ContactClosureState|Nil):ContactClosureState|Nil-instance-method","name":"contact_closure=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"args_string":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","args_html":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure=","args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"@contact_closure = value.try(&.to_s)\nvalue\n"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L168"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L171"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L182"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, zone_id, status = href.split(\"/\", 4)\n\"#{component}#{zone_id}\"\n"}},{"html_id":"switched_level:SwitchedLevel|Nil-instance-method","name":"switched_level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level","return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"if value = @switched_level\n Lutron::SwitchedLevel.parse(value)\nelse\n nil\nend"}},{"html_id":"switched_level=(value:SwitchedLevel|Nil):SwitchedLevel|Nil-instance-method","name":"switched_level=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"args_string":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","args_html":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level=","args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"@switched_level = value.try(&.to_s)\nvalue\n"}}]}]},{"html_id":"drivers/Mailer","path":"Mailer.html","kind":"class","full_name":"Mailer","name":"Mailer","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_spec.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L544"},{"filename":"src/place/survey_mailer_spec.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L54"},{"filename":"src/place/template_mailer_spec.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"on_load-instance-method","name":"on_load","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"location":{"filename":"src/place/template_mailer_spec.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L112"},"def":{"name":"on_load","visibility":"Public","body":"self[:sent] = 0"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/auto_release_spec.cr","line_number":565,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L565"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L75"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/template_mailer_spec.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L131"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/auto_release_spec.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_spec.cr#L551"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer_spec.cr#L61"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer_spec.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer_spec.cr#L116"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}}]},{"html_id":"drivers/MessageMedia","path":"MessageMedia.html","kind":"module","full_name":"MessageMedia","name":"MessageMedia","abstract":false,"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MessageMedia/SMS","path":"MessageMedia/SMS.html","kind":"class","full_name":"MessageMedia::SMS","name":"SMS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/MessageMedia","kind":"module","full_name":"MessageMedia","name":"MessageMedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/message_media/sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/message_media/sms.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/message_media/sms.cr#L24"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nformat = format || \"SMS\"\nnumbers = phone_numbers.map do |number|\n payload = {:content => message, :destination_number => number, :format => format}\n if source\n payload[:source_number] = source.to_s\n payload[:source_number_type] = \"ALPHANUMERIC\"\n end\n payload\nend\nresponse = post(\"/v1/messages\", body: {messages: numbers}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nnil\n"}}]}]},{"html_id":"drivers/Microsoft","path":"Microsoft.html","kind":"module","full_name":"Microsoft","name":"Microsoft","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Microsoft/Coordinates","path":"Microsoft/Coordinates.html","kind":"class","full_name":"Microsoft::Coordinates","name":"Coordinates","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L21"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L24"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L27"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L30"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/Microsoft/FindMe","path":"Microsoft/FindMe.html","kind":"class","full_name":"Microsoft::FindMe","name":"FindMe","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"levels-instance-method","name":"levels","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L61"},"def":{"name":"levels","visibility":"Public","body":"data = make_request(\"GET\", \"/FindMeService/api/MeetingRooms/BuildingLevelsWithMeetingRooms\")\nlevels = Array(Microsoft::Level).from_json(data)\nbuildings = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\nend\nlevels.each do |level|\n buildings[level.building] << level.name\nend\nbuildings\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@domain = (setting?(String, :domain)) || \"\"\n"}},{"html_id":"user_details(usernames:String|Array(String))-instance-method","name":"user_details","abstract":false,"args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"args_string":"(usernames : String | Array(String))","args_html":"(usernames : String | Array(String))","location":{"filename":"src/microsoft/find_me.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L71"},"def":{"name":"user_details","args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"visibility":"Public","body":"users = usernames.is_a?(String) ? [usernames] : usernames\ndata = make_request(\"GET\", \"/FindMeService/api/ObjectLocation/Users/#{users.join(\",\")}?getExtendedData=true\")\n(Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\nend\n"}},{"html_id":"users_on(building:String,level:String)-instance-method","name":"users_on","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(building : String, level : String)","args_html":"(building : String, level : String)","location":{"filename":"src/microsoft/find_me.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me.cr#L78"},"def":{"name":"users_on","args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"uri = \"/FindMeService/api/ObjectLocation/Level/#{building}/#{level}\"\ndata = make_request(\"GET\", uri)\nbegin\n (Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\n end\nrescue error\n logger.debug do\n \"failed to parse location data\\n#{data}\"\n end\n raise(error)\nend\n"}}]},{"html_id":"drivers/Microsoft/FindMeLocationService","path":"Microsoft/FindMeLocationService.html","kind":"class","full_name":"Microsoft::FindMeLocationService","name":"FindMeLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L91"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nactive_users_raw = (findme.user_details(mac_address)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nif user_details = active_users[0]?\n {location: user_details.located_using == \"FixedLocation\" ? \"desk\" : \"wireless\", assigned_to: user_details.user_data.not_nil!.email_address || \"\", mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L106"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfindme_details = @floor_mappings[zone_id]?\nif findme_details\nelse\n return [] of Nil\nend\nfindme_building = findme_details[:building]\nfindme_level = findme_details[:level]\nactive_users_raw = (findme.users_on(findme_building, findme_level)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nlocations = active_users.compact_map do |loc|\n build_location_response(loc, zone_id, findme_building, findme_level, location)\nend\nlocations\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L49"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocations_raw = (findme.user_details(username)).get.to_json\nlocations = Array(Microsoft::Location).from_json(locations_raw)\nlocations = locations.compact_map do |location|\n coords = location.coordinates\n if coords\n else\n next\n end\n level = findme_building = findme_level = \"\"\n @floor_mappings.each do |zone, details|\n findme_building = details[:building]\n findme_level = details[:level]\n if (findme_building == coords.building) && (findme_level == coords.level)\n level = zone\n break\n end\n end\n if level.empty?\n next\n end\n build_location_response(location, level, findme_building, findme_level)\nend\nlocations\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L78"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nactive_users_raw = (findme.user_details(username || email)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nfound = [] of String\nif user_details = active_users[0]?\n found << user_details.username\nend\nfound\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_location_service.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@map_id_prefix = (setting?(String, :map_id_prefix)).presence || \"table-\"\n@building_zone = setting(String, :building_zone)\n@floor_mappings = setting(Hash(String, NamedTuple(building: String, level: String)), :floor_mappings)\n@zone_filter = @floor_mappings.keys\n@s2_level = (setting?(Int32, :s2_level)) || 21\n"}}]},{"html_id":"drivers/Microsoft/GPS","path":"Microsoft/GPS.html","kind":"class","full_name":"Microsoft::GPS","name":"GPS","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L37"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L40"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}}]},{"html_id":"drivers/Microsoft/GraphAPI","path":"Microsoft/GraphAPI.html","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Microsoft/GraphAPIAdvanced","path":"Microsoft/GraphAPIAdvanced.html","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_request(path:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L41"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"get(path)"}},{"html_id":"list_managed_devices(filter_device_name:String|Nil=nil)-instance-method","name":"list_managed_devices","abstract":false,"args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"args_string":"(filter_device_name : String | Nil = nil)","args_html":"(filter_device_name : String | Nil = nil)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L77"},"def":{"name":"list_managed_devices","args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"query_params = filter_device_name ? URI::Params {\"filter\" => \"deviceName eq #{filter_device_name}\"} : nil\nresponse = get(\"/v1.0/deviceManagement/managedDevices\", query_params)\nresponse.body[\"value\"]\n"}},{"html_id":"list_users_managed_devices(user_id:String)-instance-method","name":"list_users_managed_devices","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L86"},"def":{"name":"list_users_managed_devices","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/v1.0/users/#{user_id}/managedDevices\")\nresponse.body[\"value\"]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"credentials = setting(GraphParams, :credentials)\n@client = Office365::Client.new(**credentials)\n"}},{"html_id":"post_request(path:String)-instance-method","name":"post_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L57"},"def":{"name":"post_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"post(path)"}},{"html_id":"put_request(path:String)-instance-method","name":"put_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L73"},"def":{"name":"put_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"put(path)"}}],"types":[{"html_id":"drivers/Microsoft/GraphAPIAdvanced/GraphParams","path":"Microsoft/GraphAPIAdvanced/GraphParams.html","kind":"alias","full_name":"Microsoft::GraphAPIAdvanced::GraphParams","name":"GraphParams","abstract":false,"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/graph_api_advanced.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String)","aliased_html":"{tenant: String, client_id: String, client_secret: String}","const":false,"namespace":{"html_id":"drivers/Microsoft/GraphAPIAdvanced","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced"}}]},{"html_id":"drivers/Microsoft/Level","path":"Microsoft/Level.html","kind":"class","full_name":"Microsoft::Level","name":"Level","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L8"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"online:Int32-instance-method","name":"online","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L14"},"def":{"name":"online","return_type":"Int32","visibility":"Public","body":"@online"}}]},{"html_id":"drivers/Microsoft/Location","path":"Microsoft/Location.html","kind":"class","full_name":"Microsoft::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"doc":"Example Response:\n[{\"Alias\":\"dwatson\",\"LastUpdate\":\"2015-11-12T02:25:50.017Z\",\"Confidence\":100,\n \"Coordinates\":{\"Building\":\"SYDNEY\",\"Level\":\"2\",\"X\":76,\"Y\":29,\"LocationDescription\":\"2140\",\"MapByLocationId\":true},\n \"GPS\":{\"Latitude\":-33.796597429,\"Longitude\":151.1382508278,\"Accuracy\":0.0,\"LocationDescription\":null},\n \"LocationIdentifier\":null,\"Status\":\"Located\",\"LocatedUsing\":\"FixedLocation\",\"Type\":\"Person\",\"Comments\":null,\n \"ExtendedUserData\":{\"Alias\":\"dwatson\",\"DisplayName\":\"David Watson\",\"EmailAddress\":\"David.Watson@microsoft.com\",\"LyncSipAddress\":\"dwatson@microsoft.com\"}}]","summary":"

Example Response: [{"Alias":"dwatson","LastUpdate":"2015-11-12T02:25:50.017Z","Confidence":100, "Coordinates":{"Building":"SYDNEY","Level":"2","X":76,"Y":29,"LocationDescription":"2140","MapByLocationId":true}, "GPS":{"Latitude":-33.796597429,"Longitude":151.1382508278,"Accuracy":0.0,"LocationDescription":null}, "LocationIdentifier":null,"Status":"Located","LocatedUsing":"FixedLocation","Type":"Person","Comments":null, "ExtendedUserData":{"Alias":"dwatson","DisplayName":"David Watson","EmailAddress":"David.Watson@microsoft.com","LyncSipAddress":"dwatson@microsoft.com"}}]

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence:Float64-instance-method","name":"confidence","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L85"},"def":{"name":"confidence","return_type":"Float64","visibility":"Public","body":"@confidence"}},{"html_id":"coordinates:Coordinates|Nil-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L88"},"def":{"name":"coordinates","return_type":"Coordinates | ::Nil","visibility":"Public","body":"@coordinates"}},{"html_id":"gps:GPS|Nil-instance-method","name":"gps","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L91"},"def":{"name":"gps","return_type":"GPS | ::Nil","visibility":"Public","body":"@gps"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L82"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"located_using:String|Nil-instance-method","name":"located_using","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L100"},"def":{"name":"located_using","return_type":"String | ::Nil","visibility":"Public","body":"@located_using"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L94"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L97"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L103"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"user_data:UserData|Nil-instance-method","name":"user_data","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L106"},"def":{"name":"user_data","return_type":"UserData | ::Nil","visibility":"Public","body":"@user_data"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L76"},"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}],"types":[{"html_id":"drivers/Microsoft/Location/RFC3339Converter","path":"Microsoft/Location/RFC3339Converter.html","kind":"module","full_name":"Microsoft::Location::RFC3339Converter","name":"RFC3339Converter","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft/Location","kind":"class","full_name":"Microsoft::Location","name":"Location"},"class_methods":[{"html_id":"from_json(value:JSON::PullParser):Time-class-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser) : Time","args_html":"(value : JSON::PullParser) : Time","location":{"filename":"src/microsoft/find_me_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L66"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"return_type":"Time","visibility":"Public","body":"Time::Format::RFC_3339.parse(value.read_string)"}},{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L70"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(Time::Format::RFC_3339.format(value, 1))"}}]}]},{"html_id":"drivers/Microsoft/UserData","path":"Microsoft/UserData.html","kind":"class","full_name":"Microsoft::UserData","name":"UserData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L50"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L53"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/microsoft/find_me_models.cr#L47"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]},{"html_id":"drivers/MuleSoft","path":"MuleSoft.html","kind":"module","full_name":"MuleSoft","name":"MuleSoft","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MuleSoft/Booking","path":"MuleSoft/Booking.html","kind":"class","full_name":"MuleSoft::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L9"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L9"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L18"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L18"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L15"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L15"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L20"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L20"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L6"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L6"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"to_placeos-instance-method","name":"to_placeos","doc":"we need this method to create an intermediary hash\notherwise when to_json is called all the field names revert to the MuleSoft ones","summary":"

we need this method to create an intermediary hash otherwise when to_json is called all the field names revert to the MuleSoft ones

","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L24"},"def":{"name":"to_placeos","visibility":"Public","body":"value = {\"title\" => @title, \"body\" => @body, \"recurring_master_id\" => @recurring_master_id, \"event_start\" => @event_start, \"event_end\" => @event_end, \"location\" => @location}"}}]},{"html_id":"drivers/MuleSoft/BookingResults","path":"MuleSoft/BookingResults.html","kind":"class","full_name":"MuleSoft::BookingResults","name":"BookingResults","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L37"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookings:Array(Booking)-instance-method","name":"bookings","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L47"},"def":{"name":"bookings","return_type":"Array(Booking)","visibility":"Public","body":"@bookings"}},{"html_id":"bookings=(bookings:Array(Booking))-instance-method","name":"bookings=","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L47"},"def":{"name":"bookings=","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"@bookings = bookings"}},{"html_id":"count:Int64-instance-method","name":"count","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L39"},"def":{"name":"count","return_type":"Int64","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int64)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int64"}],"args_string":"(count : Int64)","args_html":"(count : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L39"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int64"}],"visibility":"Public","body":"@count = count"}},{"html_id":"venue_code:String-instance-method","name":"venue_code","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code","return_type":"String","visibility":"Public","body":"@venue_code"}},{"html_id":"venue_code=(venue_code:String)-instance-method","name":"venue_code=","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"args_string":"(venue_code : String)","args_html":"(venue_code : String)","location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code=","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"visibility":"Public","body":"@venue_code = venue_code"}},{"html_id":"venue_name:String-instance-method","name":"venue_name","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name","return_type":"String","visibility":"Public","body":"@venue_name"}},{"html_id":"venue_name=(venue_name:String)-instance-method","name":"venue_name=","abstract":false,"args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"args_string":"(venue_name : String)","args_html":"(venue_name : String)","location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name=","args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"visibility":"Public","body":"@venue_name = venue_name"}}]},{"html_id":"drivers/MuleSoft/BookingsAPI","path":"MuleSoft/BookingsAPI.html","kind":"class","full_name":"MuleSoft::BookingsAPI","name":"BookingsAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/booking_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_current_booking-instance-method","name":"check_current_booking","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L78"},"def":{"name":"check_current_booking","visibility":"Public","body":"now = Time.utc.to_unix\nprevious_booking = nil\ncurrent_booking = nil\nnext_booking = Int32::MAX\n@bookings.each_with_index do |event, index|\n starting = event.event_start\n if starting > now\n next_booking = index\n if index > 0\n previous_booking = index - 1\n end\n break\n end\n ending_unix = event.event_end\n if ending_unix < now\n next\n end\n if starting <= now && ending_unix > now\n current_booking = index\n if index > 0\n previous_booking = index - 1\n end\n next_booking = index + 1\n break\n end\nend\nif next_booking >= (@bookings.size - 1)\n next_booking = nil\nend\nself[:previous_booking] = previous_booking ? @bookings[previous_booking].to_placeos : nil\nself[:current_booking] = current_booking ? @bookings[current_booking].to_placeos : nil\nself[:next_booking] = next_booking ? @bookings[next_booking].to_placeos : nil\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L36"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@running_a_spec = !!(setting(Bool, :running_a_spec))\n@username = setting(String, :username)\n@password = setting(String, :password)\n@basic_auth_enabled = !!(setting?(Bool, :basic_auth_enabled))\nlogger.debug do\n \"basic_auth_enabled is #{@basic_auth_enabled}\"\nend\n@base_path = setting(String, :base_path)\n@venue_code = setting(String, :venue_code)\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\ntime_zone = (setting?(String, :time_zone)).presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@ssl_auth_enabled = !!(setting?(Bool, :ssl_auth_enabled))\nif @ssl_auth_enabled\n save_ssl_credentials\nend\nlogger.debug do\n \"ssl_auth_enabled is #{@ssl_auth_enabled}\"\nend\nschedule.in((Random.rand(60)).seconds + (Random.rand(1000)).milliseconds) do\n poll_bookings\nend\ncron_string = (setting?(String, :polling_cron)).presence || \"*/30 7-20 * * *\"\nschedule.cron(cron_string, @time_zone) do\n poll_bookings(random_delay: true)\nend\n"}},{"html_id":"poll_bookings(random_delay:Bool=false)-instance-method","name":"poll_bookings","abstract":false,"args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"args_string":"(random_delay : Bool = false)","args_html":"(random_delay : Bool = false)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L63"},"def":{"name":"poll_bookings","args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"visibility":"Public","body":"now = Time.local(@time_zone)\nfrom = now - 1.week\nto = now + 1.week\nlogger.debug do\n \"polling bookings #{@venue_code}, from #{from}, to #{to}, in #{@time_zone.name}\"\nend\nif random_delay\n logger.debug do\n \"random delay of <30seconds to reduce instantaneous Mulesoft API load\"\n end\n sleep(Random.rand(30.0))\nend\nquery_bookings(@venue_code, from, to)\ncheck_current_booking\n"}},{"html_id":"query_bookings(venue_code:String,starts_at:Time=Time.local.at_beginning_of_day,ends_at:Time=Time.local.at_end_of_day)-instance-method","name":"query_bookings","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"args_string":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","args_html":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L118"},"def":{"name":"query_bookings","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"visibility":"Public","body":"client = HTTP::Client.new(host: @host, tls: (@ssl_auth_enabled ? @context : nil))\nparams = {\"startDateTime\" => starts_at.to_s(\"%FT%T\"), \"endDateTime\" => ends_at.to_s(\"%FT%T\")}.join('&') do |k, v|\n \"#{k}=#{v}\"\nend\nheaders = HTTP::Headers {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}\nif @basic_auth_enabled\n headers.add(\"Authorization\", \"Basic #{Base64.strict_encode(\"#{@username}:#{@password}\")}\")\nend\nif @running_a_spec\n response = get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nelse\n response = client.get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nend\nif (200...300).includes?(response.status_code)\nelse\n raise(\"request failed with #{response.status_code}: #{response.body}\")\nend\nif response.body.presence != nil\n results = BookingResults.from_json(response.body)\n self[:venue_code] = results.venue_code\n self[:venue_name] = results.venue_name\n @bookings = results.bookings.sort do |a, b|\n a.event_start <=> b.event_start\n end\n self[:bookings] = @bookings.map(&.to_placeos)\nelse\n self[:venue_code] = nil\n self[:venue_name] = nil\n self[:bookings] = nil\nend\n"}},{"html_id":"query_bookings_epoch(venue_code:String,starts_at:Int32,ends_at:Int32)-instance-method","name":"query_bookings_epoch","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"args_string":"(venue_code : String, starts_at : Int32, ends_at : Int32)","args_html":"(venue_code : String, starts_at : Int32, ends_at : Int32)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/booking_api.cr#L159"},"def":{"name":"query_bookings_epoch","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"visibility":"Public","body":"query_bookings(venue_code, Time.unix(starts_at), Time.unix(ends_at))"}}]},{"html_id":"drivers/MuleSoft/CalendarExporter","path":"MuleSoft/CalendarExporter.html","kind":"class","full_name":"MuleSoft::CalendarExporter","name":"CalendarExporter","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/calendar_exporter.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_all_events(past_days:Int32=14,future_days:Int32=14)-instance-method","name":"delete_all_events","abstract":false,"args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"args_string":"(past_days : Int32 = 14, future_days : Int32 = 14)","args_html":"(past_days : Int32 = 14, future_days : Int32 = 14)","location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L137"},"def":{"name":"delete_all_events","args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"visibility":"Public","body":"events = fetch_events(past_span: past_days.days, future_span: future_days.days)\nevent_ids = events.map do |e|\n e[\"id\"]\nend\nevent_ids.each do |event_id|\n calendar.delete_event(calendar_id: system.email.not_nil!, event_id: event_id)\nend\n\"Deleted #{event_ids.size} events\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"@just_this_system = {email: system.email.not_nil!, name: system.name}\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\n@time_zone_string = (setting?(String, :calendar_time_zone)).presence\nif @time_zone_string\n @time_zone = Time::Location.load(@time_zone_string.not_nil!)\nend\nself[:timezone] = Time.local.to_s\nsubscription = system.subscribe(:Bookings_1, :bookings) do |_subscription, mulesoft_bookings|\n logger.debug do\n \"DETECTED changed in Mulesoft Bookings..\"\n end\n latest_bookings : Array(Hash(String, Int64 | String | Nil)) = [] of Hash(String, Int64 | String | Nil)\n latest_bookings = Array(Hash(String, Int64 | String | Nil)).from_json(mulesoft_bookings)\n logger.debug do\n \"#{latest_bookings.size} bookings in total\"\n end\n removed_bookings = @bookings - latest_bookings\n now = Time.utc.to_unix\n deleted_bookings = removed_bookings.reject do |b|\n b[\"event_end\"].not_nil!.to_i64 < now\n end\n update_events\n deleted_bookings.each do |b|\n delete_matching_event(b)\n end\n @bookings = latest_bookings\n @bookings.each do |b|\n export_booking(b)\n end\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L63"},"def":{"name":"status","visibility":"Public","body":"{bookings: @bookings, events: @existing_events, deleted_events: @deleted_events}"}},{"html_id":"update_events-instance-method","name":"update_events","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/calendar_exporter.cr#L71"},"def":{"name":"update_events","visibility":"Public","body":"logger.debug do\n \"FETCHING existing Calendar events...\"\nend\n@existing_events = fetch_events()\nlogger.debug do\n \"#{@existing_events.size} events in total\"\nend\n"}}]},{"html_id":"drivers/MuleSoft/DateTimeConvertor","path":"MuleSoft/DateTimeConvertor.html","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/MuleSoft/DateTimeConvertor","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"instance_methods":[{"html_id":"from_json(pull:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L57"},"def":{"name":"from_json","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(Time.parse(pull.read_string, \"%FT%T\", Time::Location.local)).to_unix"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/mulesoft/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/mulesoft/models.cr#L53"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string((Time.unix(value)).to_local.to_s(\"%FT%T\"))"}}]}]},{"html_id":"drivers/Nec","path":"Nec.html","kind":"module","full_name":"Nec","name":"Nec","abstract":false,"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Nec/Display","path":"Nec/Display.html","kind":"class","full_name":"Nec::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"13_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_input(priority:Int32=0)-instance-method","name":"audio_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"audio_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AudioInput), priority: priority, name: \"audio_input\")"}},{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L105"},"def":{"name":"auto_adjust","visibility":"Public","body":"data = MsgType::SetParameter.build(Command::AutoSetup, 1)\nsend(data, name: \"auto_adjust\")\n"}},{"html_id":"auto_setup(priority:Int32=0)-instance-method","name":"auto_setup","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"auto_setup","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AutoSetup), priority: priority, name: \"auto_setup\")"}},{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L110"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::BrightnessStatus, val.clamp(0, 100))\nsend(data, name: \"brightness\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"brightness_status(priority:Int32=0)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::BrightnessStatus), priority: priority, name: \"brightness_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L116"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::ContrastStatus, val.clamp(0, 100))\nsend(data, name: \"contrast\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"contrast_status(priority:Int32=0)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::ContrastStatus), priority: priority, name: \"contrast_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"current_power = power?(priority: 0)\nlogger.debug do\n \"Polling, power = #{current_power}\"\nend\nif current_power\n mute_status\n video_input\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/nec/display.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L139"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"logger.debug do\n \"requested to update mute to #{state}\"\nend\ndata = MsgType::SetParameter.build(Command::MuteStatus, state ? 1 : 0)\nresp = send(data, name: \"mute_audio\")\nresp\n"}},{"html_id":"mute_status(priority:Int32=0)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::MuteStatus), priority: priority, name: \"mute_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 120.milliseconds\nqueue.timeout = 5.seconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/display.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:power]? == state\n return\nend\nif state\n logger.debug do\n \"requested to power on\"\n end\n data = MsgType::Command.build(Command::SetPower, 1)\n send(data, name: \"power\", delay: 5.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n data = MsgType::Command.build(Command::SetPower, 4)\n send(data, name: \"power\", delay: 10.seconds, timeout: 10.seconds)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L73"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"data = MsgType::Command.build(Command::PowerQuery)\n(send(data, **options, name: \"power?\")).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerOnDelay), priority: priority, name: \"power_on_delay\")"}},{"html_id":"power_query(priority:Int32=0)-instance-method","name":"power_query","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"power_query","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerQuery), priority: priority, name: \"power_query\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/display.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L157"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"NEC sent: 0x#{data.hexstring}\"\nend\nheader = data[0..6]\nmessage = data[7..-3]\nchecksum = data[-2]\nbegin\n case MsgType.from_value(header[4])\n when .command_reply?\n parse_command_reply(message)\n when .get_parameter_reply?, .set_parameter_reply?\n parse_response(message)\n else\n raise(\"unknown message type\")\n end\nrescue e\n logger.warn(exception: e) do\n \"processing response\"\n end\n task.try(&.abort(e.message))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save(priority:Int32=0)-instance-method","name":"save","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"save","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::Save), priority: priority, name: \"save\")"}},{"html_id":"set_power(priority:Int32=0)-instance-method","name":"set_power","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"set_power","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::SetPower), priority: priority, name: \"set_power\")"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/display.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L99"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch audio to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::AudioInput, input.value)\nsend(data, name: \"audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/display.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L79"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::VideoInput, input.value)\nsend(data, name: \"input\", delay: 6.seconds)\n"}},{"html_id":"video_input(priority:Int32=0)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VideoInput), priority: priority, name: \"video_input\")"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/nec/display.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L122"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\ndata = MsgType::SetParameter.build(Command::VolumeStatus, val)\nsend(data, name: \"volume\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L134"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L272"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VolumeStatus), priority: priority, name: \"volume_status\")"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L129"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Display/Audio","path":"Nec/Display/Audio.html","kind":"enum","full_name":"Nec::Display::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio1","name":"Audio1","value":"1"},{"id":"Audio2","name":"Audio2","value":"2"},{"id":"Audio3","name":"Audio3","value":"3"},{"id":"Hdmi","name":"Hdmi","value":"4"},{"id":"Tv","name":"Tv","value":"6"},{"id":"DisplayPort1","name":"DisplayPort1","value":"7"},{"id":"DisplayPort2","name":"DisplayPort2","value":"8"},{"id":"Hdmi2","name":"Hdmi2","value":"10"},{"id":"Hdmi3","name":"Hdmi3","value":"11"},{"id":"MultiPicture","name":"MultiPicture","value":"13"},{"id":"ComputeModule","name":"ComputeModule","value":"14"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio1?-instance-method","name":"audio1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L86"},"def":{"name":"audio1?","visibility":"Public","body":"self == Audio1"}},{"html_id":"audio2?-instance-method","name":"audio2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L87"},"def":{"name":"audio2?","visibility":"Public","body":"self == Audio2"}},{"html_id":"audio3?-instance-method","name":"audio3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L88"},"def":{"name":"audio3?","visibility":"Public","body":"self == Audio3"}},{"html_id":"compute_module?-instance-method","name":"compute_module?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L96"},"def":{"name":"compute_module?","visibility":"Public","body":"self == ComputeModule"}},{"html_id":"display_port1?-instance-method","name":"display_port1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L91"},"def":{"name":"display_port1?","visibility":"Public","body":"self == DisplayPort1"}},{"html_id":"display_port2?-instance-method","name":"display_port2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L92"},"def":{"name":"display_port2?","visibility":"Public","body":"self == DisplayPort2"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L93"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L94"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L89"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"multi_picture?-instance-method","name":"multi_picture?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L95"},"def":{"name":"multi_picture?","visibility":"Public","body":"self == MultiPicture"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L90"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}}]},{"html_id":"drivers/Nec/Display/Command","path":"Nec/Display/Command.html","kind":"enum","full_name":"Nec::Display::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L246"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VideoInput","name":"VideoInput","value":"96"},{"id":"AudioInput","name":"AudioInput","value":"558"},{"id":"VolumeStatus","name":"VolumeStatus","value":"98"},{"id":"MuteStatus","name":"MuteStatus","value":"141"},{"id":"PowerOnDelay","name":"PowerOnDelay","value":"728"},{"id":"ContrastStatus","name":"ContrastStatus","value":"18"},{"id":"BrightnessStatus","name":"BrightnessStatus","value":"16"},{"id":"AutoSetup","name":"AutoSetup","value":"30"},{"id":"PowerQuery","name":"PowerQuery","value":"470"},{"id":"Save","name":"Save","value":"12"},{"id":"SetPower","name":"SetPower","value":"12714966"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio_input?-instance-method","name":"audio_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L248"},"def":{"name":"audio_input?","visibility":"Public","body":"self == AudioInput"}},{"html_id":"auto_setup?-instance-method","name":"auto_setup?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L254"},"def":{"name":"auto_setup?","visibility":"Public","body":"self == AutoSetup"}},{"html_id":"brightness_status?-instance-method","name":"brightness_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L253"},"def":{"name":"brightness_status?","visibility":"Public","body":"self == BrightnessStatus"}},{"html_id":"contrast_status?-instance-method","name":"contrast_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L252"},"def":{"name":"contrast_status?","visibility":"Public","body":"self == ContrastStatus"}},{"html_id":"mute_status?-instance-method","name":"mute_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L250"},"def":{"name":"mute_status?","visibility":"Public","body":"self == MuteStatus"}},{"html_id":"power_on_delay?-instance-method","name":"power_on_delay?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L251"},"def":{"name":"power_on_delay?","visibility":"Public","body":"self == PowerOnDelay"}},{"html_id":"power_query?-instance-method","name":"power_query?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L255"},"def":{"name":"power_query?","visibility":"Public","body":"self == PowerQuery"}},{"html_id":"save?-instance-method","name":"save?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L256"},"def":{"name":"save?","visibility":"Public","body":"self == Save"}},{"html_id":"set_power?-instance-method","name":"set_power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L257"},"def":{"name":"set_power?","visibility":"Public","body":"self == SetPower"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L259"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"case self\nwhen .save?\n length = 2\nwhen .set_power?\n length = 6\nelse\n length = 4\nend\n(value.to_s(16, upcase: true)).rjust(length, '0')\n"}},{"html_id":"video_input?-instance-method","name":"video_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L247"},"def":{"name":"video_input?","visibility":"Public","body":"self == VideoInput"}},{"html_id":"volume_status?-instance-method","name":"volume_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L249"},"def":{"name":"volume_status?","visibility":"Public","body":"self == VolumeStatus"}}]},{"html_id":"drivers/Nec/Display/Input","path":"Nec/Display/Input.html","kind":"enum","full_name":"Nec::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"1"},{"id":"Rgbhv","name":"Rgbhv","value":"2"},{"id":"Dvi","name":"Dvi","value":"3"},{"id":"HdmiSet","name":"HdmiSet","value":"4"},{"id":"Video1","name":"Video1","value":"5"},{"id":"Video2","name":"Video2","value":"6"},{"id":"Svideo","name":"Svideo","value":"7"},{"id":"Tuner","name":"Tuner","value":"9"},{"id":"Tv","name":"Tv","value":"10"},{"id":"Dvd1","name":"Dvd1","value":"12"},{"id":"Option","name":"Option","value":"13"},{"id":"Dvd2","name":"Dvd2","value":"14"},{"id":"DisplayPort","name":"DisplayPort","value":"15"},{"id":"Hdmi","name":"Hdmi","value":"17"},{"id":"Hdmi2","name":"Hdmi2","value":"18"},{"id":"Hdmi3","name":"Hdmi3","value":"130"},{"id":"Usb","name":"Usb","value":"135"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L23"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvd1?-instance-method","name":"dvd1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L20"},"def":{"name":"dvd1?","visibility":"Public","body":"self == Dvd1"}},{"html_id":"dvd2?-instance-method","name":"dvd2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L22"},"def":{"name":"dvd2?","visibility":"Public","body":"self == Dvd2"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L25"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L26"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L24"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_set?-instance-method","name":"hdmi_set?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L14"},"def":{"name":"hdmi_set?","visibility":"Public","body":"self == HdmiSet"}},{"html_id":"option?-instance-method","name":"option?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L21"},"def":{"name":"option?","visibility":"Public","body":"self == Option"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == Rgbhv"}},{"html_id":"svideo?-instance-method","name":"svideo?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L17"},"def":{"name":"svideo?","visibility":"Public","body":"self == Svideo"}},{"html_id":"tuner?-instance-method","name":"tuner?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L18"},"def":{"name":"tuner?","visibility":"Public","body":"self == Tuner"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L19"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L27"},"def":{"name":"usb?","visibility":"Public","body":"self == Usb"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"video1?-instance-method","name":"video1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L15"},"def":{"name":"video1?","visibility":"Public","body":"self == Video1"}},{"html_id":"video2?-instance-method","name":"video2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L16"},"def":{"name":"video2?","visibility":"Public","body":"self == Video2"}}]},{"html_id":"drivers/Nec/Display/MsgType","path":"Nec/Display/MsgType.html","kind":"enum","full_name":"Nec::Display::MsgType","name":"MsgType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L280"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"65_u8"},{"id":"CommandReply","name":"CommandReply","value":"66_u8"},{"id":"GetParameter","name":"GetParameter","value":"67_u8"},{"id":"GetParameterReply","name":"GetParameterReply","value":"68_u8"},{"id":"SetParameter","name":"SetParameter","value":"69_u8"},{"id":"SetParameterReply","name":"SetParameterReply","value":"70_u8"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"doc":"Types of messages sent to and from the LCD","summary":"

Types of messages sent to and from the LCD

","instance_methods":[{"html_id":"build(command:Nec::Display::Command,data:Int|Nil=nil)-instance-method","name":"build","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"args_string":"(command : Nec::Display::Command, data : Int | Nil = nil)","args_html":"(command : Nec::Display::Command, data : Int | Nil = nil)","location":{"filename":"src/nec/display.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L288"},"def":{"name":"build","args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"visibility":"Public","body":"command = command.to_s\nmessage = String.build do |str|\n str << \"0*0\"\n str.write_byte(self.value)\n message_length = command.size + 2\n if data\n message_length = message_length + 4\n end\n str << ((message_length.to_s(16, upcase: true)).rjust(2, '0'))\n str.write_byte(2)\n str << command\n if data\n str << ((data.to_s(16, upcase: true)).rjust(4, '0'))\n end\n str.write_byte(3)\nend\nString.build do |str|\n str.write_byte(1)\n str << message\n str.write_byte(message.each_byte.reduce do |a, b|\n a ^ b\n end)\n str.write_byte(DELIMITER)\nend\n"}},{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L281"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"command_reply?-instance-method","name":"command_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L282"},"def":{"name":"command_reply?","visibility":"Public","body":"self == CommandReply"}},{"html_id":"get_parameter?-instance-method","name":"get_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L283"},"def":{"name":"get_parameter?","visibility":"Public","body":"self == GetParameter"}},{"html_id":"get_parameter_reply?-instance-method","name":"get_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L284"},"def":{"name":"get_parameter_reply?","visibility":"Public","body":"self == GetParameterReply"}},{"html_id":"set_parameter?-instance-method","name":"set_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L285"},"def":{"name":"set_parameter?","visibility":"Public","body":"self == SetParameter"}},{"html_id":"set_parameter_reply?-instance-method","name":"set_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/display.cr#L286"},"def":{"name":"set_parameter_reply?","visibility":"Public","body":"self == SetParameterReply"}}]}]},{"html_id":"drivers/Nec/Projector","path":"Nec/Projector.html","kind":"class","full_name":"Nec::Projector","name":"Projector","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{mute_picture: Bytes[2, 16, 0, 0, 0, 18], unmute_picture: Bytes[2, 17, 0, 0, 0, 19], mute_audio_cmd: Bytes[2, 18, 0, 0, 0, 20], unmute_audio_cmd: Bytes[2, 19, 0, 0, 0, 21], mute_onscreen: Bytes[2, 20, 0, 0, 0, 22], unmute_onscreen: Bytes[2, 21, 0, 0, 0, 23], freeze_picture: Bytes[1, 152, 0, 0, 1, 1], unfreeze_picture: Bytes[1, 152, 0, 0, 1, 2], \"lamp?\": Bytes[0, 129, 0, 0, 0, 129], \"input?\": Bytes[0, 133, 0, 0, 1, 2], \"mute?\": Bytes[0, 133, 0, 0, 1, 3], \"error?\": Bytes[0, 136, 0, 0, 0, 136], \"model?\": Bytes[0, 133, 0, 0, 1, 4], lamp_info: Bytes[3, 138, 0, 0, 0, 141], filter_info: Bytes[3, 138, 0, 0, 0, 141], projector_info: Bytes[3, 138, 0, 0, 0, 141], background_black: Bytes[3, 177, 0, 0, 2, 11, 1], background_blue: Bytes[3, 177, 0, 0, 2, 11, 0], background_logo: Bytes[3, 177, 0, 0, 2, 11, 2]}","doc":"Command Listing\nSecond byte used to detect command type","summary":"

Command Listing Second byte used to detect command type

"},{"id":"ERROR_CODES","name":"ERROR_CODES","value":"[{1 => \"Lamp cover error\", 2 => \"Temperature error (Bimetal)\", 8 => \"Fan Error\", 16 => \"Fan Error\", 32 => \"Power Error\", 64 => \"Lamp Error\", 128 => \"Lamp has reached its end of life\"}, {1 => \"Lamp has been used beyond its limit\", 2 => \"Formatter error\", 4 => \"Lamp no.2 Error\"}, {2 => \"FPGA error\", 4 => \"Temperature error (Sensor)\", 8 => \"Lamp housing error\", 16 => \"Lamp data error\", 32 => \"Mirror cover error\", 64 => \"Lamp no.2 has reached its end of life\", 128 => \"Lamp no.2 has been used beyond its limit\"}, {1 => \"Lamp no.2 housing error\", 2 => \"Lamp no.2 data error\", 4 => \"High temperature due to dust pile-up\", 8 => \"A foreign object sensor error\"}]","doc":"Provide all the error info required","summary":"

Provide all the error info required

"},{"id":"INPUT_MAP","name":"INPUT_MAP","value":"{1 => {1 => Input::VGA, 2 => Input::Composite, 3 => Input::SVideo, 6 => Input::HDMI, 7 => Input::Viewer, 33 => Input::HDMI, 34 => Input::DisplayPort}, 2 => {1 => Input::RGBHV, 4 => Input::Component2, 6 => Input::HDMI2, 7 => Input::LAN, 33 => Input::HDMI2}, 3 => {4 => Input::Component}}","doc":"NEC has different values for the input status when compared to input selection","summary":"

NEC has different values for the input status when compared to input selection

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"background_black(**options)-instance-method","name":"background_black","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_black","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_black\"], **options, name: \"background_black\")"}},{"html_id":"background_blue(**options)-instance-method","name":"background_blue","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_blue","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_blue\"], **options, name: \"background_blue\")"}},{"html_id":"background_logo(**options)-instance-method","name":"background_logo","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"background_logo","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_logo\"], **options, name: \"background_logo\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L59"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:power] = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L196"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?(priority: 0)\n background_black(priority: 0)\n lamp_info(priority: 0)\nend"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"error?\"], **options, name: \"error?\")"}},{"html_id":"filter_info(**options)-instance-method","name":"filter_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"filter_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"filter_info\"], **options, name: \"filter_info\")"}},{"html_id":"freeze_picture(**options)-instance-method","name":"freeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"freeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"freeze_picture\"], **options, name: \"freeze_picture\")"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"input?\"], **options, name: \"input?\")"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp?\"], **options, name: \"lamp?\")"}},{"html_id":"lamp_info(**options)-instance-method","name":"lamp_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"lamp_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp_info\"], **options, name: \"lamp_info\")"}},{"html_id":"model?(**options)-instance-method","name":"model?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"model?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"model?\"], **options, name: \"model?\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/nec/np_series.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L128"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n if state\n mute_picture\n mute_onscreen\n else\n unmute_picture\n end\nend\nif layer.audio? || layer.audio_video?\n state ? mute_audio_cmd : unmute_audio_cmd\nend\n"}},{"html_id":"mute?(**options)-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute?\"], **options, name: \"mute?\")"}},{"html_id":"mute_audio_cmd(**options)-instance-method","name":"mute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_audio_cmd\"], **options, name: \"mute_audio_cmd\")"}},{"html_id":"mute_onscreen(**options)-instance-method","name":"mute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_onscreen\"], **options, name: \"mute_onscreen\")"}},{"html_id":"mute_picture(**options)-instance-method","name":"mute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"mute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_picture\"], **options, name: \"mute_picture\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nself[:error] = [] of String\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@power_target = nil\n@input_target = nil\n@volume_min = setting(Int32, :volume_min)\n@volume_max = setting(Int32, :volume_max)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/np_series.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L165"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n command = Bytes[2, 0, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 15.seconds, delay: 1.second)\nelse\n command = Bytes[2, 1, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 60.seconds, delay: 30.seconds, clear_queue: true, priority: 100)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L185"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(COMMAND[:\"lamp?\"], **options, name: \"power?\")).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"projector_info(**options)-instance-method","name":"projector_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"projector_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"projector_info\"], **options, name: \"projector_info\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/np_series.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L302"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(data, task)"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/np_series.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L159"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"command = Bytes[3, 177, 0, 0, 2, 192, input.value]\ndo_send(command, name: \"switch_audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/np_series.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L190"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ncommand = Bytes[2, 3, 0, 0, 2, 1, input.value]\ndo_send(command, name: \"input\")\n"}},{"html_id":"unfreeze_picture(**options)-instance-method","name":"unfreeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unfreeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unfreeze_picture\"], **options, name: \"unfreeze_picture\")"}},{"html_id":"unmute_audio_cmd(**options)-instance-method","name":"unmute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_audio_cmd\"], **options, name: \"unmute_audio_cmd\")"}},{"html_id":"unmute_onscreen(**options)-instance-method","name":"unmute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_onscreen\"], **options, name: \"unmute_onscreen\")"}},{"html_id":"unmute_picture(**options)-instance-method","name":"unmute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L97"},"def":{"name":"unmute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_picture\"], **options, name: \"unmute_picture\")"}},{"html_id":"volume(vol:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"args_string":"(vol : Int32 | Float64)","args_html":"(vol : Int32 | Float64)","location":{"filename":"src/nec/np_series.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L103"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ncommand = Bytes[3, 16, 0, 0, 5, 5, 0, 0, vol, 0]\ndo_send(command)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L122"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L117"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Projector/Audio","path":"Nec/Projector/Audio.html","kind":"enum","full_name":"Nec::Projector::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"VGA","name":"VGA","value":"1"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L155"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L156"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Nec/Projector/Input","path":"Nec/Projector/Input.html","kind":"enum","full_name":"Nec::Projector::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"1"},{"id":"RGBHV","name":"RGBHV","value":"2"},{"id":"Composite","name":"Composite","value":"6"},{"id":"SVideo","name":"SVideo","value":"11"},{"id":"Component","name":"Component","value":"16"},{"id":"Component2","name":"Component2","value":"17"},{"id":"HDMI","name":"HDMI","value":"26"},{"id":"HDMI2","name":"HDMI2","value":"27"},{"id":"DisplayPort","name":"DisplayPort","value":"166"},{"id":"LAN","name":"LAN","value":"32"},{"id":"Viewer","name":"Viewer","value":"31"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"component2?-instance-method","name":"component2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L16"},"def":{"name":"component2?","visibility":"Public","body":"self == Component2"}},{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L15"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L13"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L19"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L17"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"lan?-instance-method","name":"lan?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L20"},"def":{"name":"lan?","visibility":"Public","body":"self == LAN"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == RGBHV"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L14"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}},{"html_id":"viewer?-instance-method","name":"viewer?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L21"},"def":{"name":"viewer?","visibility":"Public","body":"self == Viewer"}}]},{"html_id":"drivers/Nec/Projector/Response","path":"Nec/Projector/Response.html","kind":"enum","full_name":"Nec::Projector::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L219"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"8321_u16"},{"id":"InputOrMuteQuery","name":"InputOrMuteQuery","value":"8325_u16"},{"id":"Error","name":"Error","value":"8328_u16"},{"id":"InputSwitch","name":"InputSwitch","value":"8707_u16"},{"id":"Lamp","name":"Lamp","value":"8704_u16"},{"id":"Lamp2","name":"Lamp2","value":"8705_u16"},{"id":"PictureMuteOn","name":"PictureMuteOn","value":"8720_u16"},{"id":"PictureMuteOff","name":"PictureMuteOff","value":"8721_u16"},{"id":"AudioMuteOn","name":"AudioMuteOn","value":"8722_u16"},{"id":"AudioMuteOff","name":"AudioMuteOff","value":"8723_u16"},{"id":"OnscreenMuteOn","name":"OnscreenMuteOn","value":"8724_u16"},{"id":"OnscreenMuteOff","name":"OnscreenMuteOff","value":"8725_u16"},{"id":"VolumeOrImageAdjust","name":"VolumeOrImageAdjust","value":"8976_u16"},{"id":"Info","name":"Info","value":"9098_u16"},{"id":"AudioSwitch","name":"AudioSwitch","value":"9137_u16"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"doc":"TODO: add responses for freeze commands if we need to process them","summary":"

TODO add responses for freeze commands if we need to process them

","class_methods":[{"html_id":"from_bytes?(response)-class-method","name":"from_bytes?","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/nec/np_series.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L236"},"def":{"name":"from_bytes?","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"value = (IO::Memory.new(response[0..1])).read_bytes(UInt16, IO::ByteFormat::BigEndian)\nResponse.from_value?(value)\n"}}],"instance_methods":[{"html_id":"audio_mute_off?-instance-method","name":"audio_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L229"},"def":{"name":"audio_mute_off?","visibility":"Public","body":"self == AudioMuteOff"}},{"html_id":"audio_mute_on?-instance-method","name":"audio_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L228"},"def":{"name":"audio_mute_on?","visibility":"Public","body":"self == AudioMuteOn"}},{"html_id":"audio_switch?-instance-method","name":"audio_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L234"},"def":{"name":"audio_switch?","visibility":"Public","body":"self == AudioSwitch"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L222"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L233"},"def":{"name":"info?","visibility":"Public","body":"self == Info"}},{"html_id":"input_or_mute_query?-instance-method","name":"input_or_mute_query?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L221"},"def":{"name":"input_or_mute_query?","visibility":"Public","body":"self == InputOrMuteQuery"}},{"html_id":"input_switch?-instance-method","name":"input_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L223"},"def":{"name":"input_switch?","visibility":"Public","body":"self == InputSwitch"}},{"html_id":"lamp2?-instance-method","name":"lamp2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L225"},"def":{"name":"lamp2?","visibility":"Public","body":"self == Lamp2"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L224"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"onscreen_mute_off?-instance-method","name":"onscreen_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L231"},"def":{"name":"onscreen_mute_off?","visibility":"Public","body":"self == OnscreenMuteOff"}},{"html_id":"onscreen_mute_on?-instance-method","name":"onscreen_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L230"},"def":{"name":"onscreen_mute_on?","visibility":"Public","body":"self == OnscreenMuteOn"}},{"html_id":"picture_mute_off?-instance-method","name":"picture_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L227"},"def":{"name":"picture_mute_off?","visibility":"Public","body":"self == PictureMuteOff"}},{"html_id":"picture_mute_on?-instance-method","name":"picture_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L226"},"def":{"name":"picture_mute_on?","visibility":"Public","body":"self == PictureMuteOn"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L220"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"volume_or_image_adjust?-instance-method","name":"volume_or_image_adjust?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/nec/np_series.cr#L232"},"def":{"name":"volume_or_image_adjust?","visibility":"Public","body":"self == VolumeOrImageAdjust"}}]}]}]},{"html_id":"drivers/OfficeRnd","path":"OfficeRnd.html","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd","abstract":false,"locations":[{"filename":"src/office_rnd/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L4"},{"filename":"src/office_rnd/office_rnd_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"OfficeRnD Data Models","summary":"

OfficeRnD Data Models

","types":[{"html_id":"drivers/OfficeRnd/Booking","path":"OfficeRnd/Booking.html","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L88"},"def":{"name":"new","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(resource_id, booking_start, booking_end, summary, team_id, member_id, description, tentative, free)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:BookingTime-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L70"},"def":{"name":"booking_end","return_type":"BookingTime","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:BookingTime-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L68"},"def":{"name":"booking_start","return_type":"BookingTime","visibility":"Public","body":"@booking_start"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L82"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"extras:JSON::Any-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L86"},"def":{"name":"extras","return_type":"JSON::Any","visibility":"Public","body":"@extras"}},{"html_id":"fees:Array(OfficeRnd::BookingFee)-instance-method","name":"fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L85"},"def":{"name":"fees","return_type":"Array(::OfficeRnd::BookingFee)","visibility":"Public","body":"@fees"}},{"html_id":"free:Bool|Nil-instance-method","name":"free","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L84"},"def":{"name":"free","return_type":"Bool | ::Nil","visibility":"Public","body":"@free"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L81"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"overlaps?(time_span:Range(Time,Time))-instance-method","name":"overlaps?","abstract":false,"args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"args_string":"(time_span : Range(Time, Time))","args_html":"(time_span : Range(Time, Time))","location":{"filename":"src/office_rnd/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L106"},"def":{"name":"overlaps?","args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"visibility":"Public","body":"starting, ending = booking_start.time, booking_end.time\nwithin = (time_span.includes?(starting)) || (time_span.includes?(ending))\ncovers = starting < time_span.begin && ending > time_span.end\nwithin || covers\n"}},{"html_id":"plan_id:String-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L77"},"def":{"name":"plan_id","return_type":"String","visibility":"Public","body":"@plan_id"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L75"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L72"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"summary:String|Nil-instance-method","name":"summary","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L73"},"def":{"name":"summary","return_type":"String | ::Nil","visibility":"Public","body":"@summary"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L79"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"tentative:Bool|Nil-instance-method","name":"tentative","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L83"},"def":{"name":"tentative","return_type":"Bool | ::Nil","visibility":"Public","body":"@tentative"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L71"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/BookingFee","path":"OfficeRnd/BookingFee.html","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"credits:Array(Credit)-instance-method","name":"credits","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L63"},"def":{"name":"credits","return_type":"Array(Credit)","visibility":"Public","body":"@credits"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L59"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"extra_fees:Array(JSON::Any|Nil)-instance-method","name":"extra_fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L62"},"def":{"name":"extra_fees","return_type":"Array(JSON::Any | ::Nil)","visibility":"Public","body":"@extra_fees"}},{"html_id":"fee:Fee|Nil-instance-method","name":"fee","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L60"},"def":{"name":"fee","return_type":"Fee | ::Nil","visibility":"Public","body":"@fee"}}]},{"html_id":"drivers/OfficeRnd/BookingTime","path":"OfficeRnd/BookingTime.html","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/office_rnd/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L35"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L33"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}}]},{"html_id":"drivers/OfficeRnd/Credit","path":"OfficeRnd/Credit.html","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L115"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L116"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"credit:String-instance-method","name":"credit","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L117"},"def":{"name":"credit","return_type":"String","visibility":"Public","body":"@credit"}}]},{"html_id":"drivers/OfficeRnd/Data","path":"OfficeRnd/Data.html","kind":"struct","full_name":"OfficeRnd::Data","name":"Data","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/OfficeRnd/Booking","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking"},{"html_id":"drivers/OfficeRnd/BookingFee","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee"},{"html_id":"drivers/OfficeRnd/BookingTime","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime"},{"html_id":"drivers/OfficeRnd/Credit","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit"},{"html_id":"drivers/OfficeRnd/Fee","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee"},{"html_id":"drivers/OfficeRnd/Floor","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor"},{"html_id":"drivers/OfficeRnd/Office","kind":"struct","full_name":"OfficeRnd::Office","name":"Office"},{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy"},{"html_id":"drivers/OfficeRnd/Rate/Extra","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra"},{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},{"html_id":"drivers/OfficeRnd/TokenResponse","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/OfficeRnd/Fee","path":"OfficeRnd/Fee.html","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bill_in_advance:Bool|Nil-instance-method","name":"bill_in_advance","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L53"},"def":{"name":"bill_in_advance","return_type":"Bool | ::Nil","visibility":"Public","body":"@bill_in_advance"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L42"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"is_personal:Bool|Nil-instance-method","name":"is_personal","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L55"},"def":{"name":"is_personal","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_personal"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L48"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L39"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L46"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"plan_id:String|Nil-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L50"},"def":{"name":"plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@plan_id"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L40"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}},{"html_id":"quantity:Int32-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L41"},"def":{"name":"quantity","return_type":"Int32","visibility":"Public","body":"@quantity"}},{"html_id":"refundable:Bool|Nil-instance-method","name":"refundable","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L51"},"def":{"name":"refundable","return_type":"Bool | ::Nil","visibility":"Public","body":"@refundable"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L44"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}}]},{"html_id":"drivers/OfficeRnd/Floor","path":"OfficeRnd/Floor.html","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L189"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area:Int32|Nil-instance-method","name":"area","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L196"},"def":{"name":"area","return_type":"Int32 | ::Nil","visibility":"Public","body":"@area"}},{"html_id":"floor:String|Nil-instance-method","name":"floor","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L192"},"def":{"name":"floor","return_type":"String | ::Nil","visibility":"Public","body":"@floor"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L191"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L198"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L193"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L195"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"target_revenue:Int32|Nil-instance-method","name":"target_revenue","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L200"},"def":{"name":"target_revenue","return_type":"Int32 | ::Nil","visibility":"Public","body":"@target_revenue"}}]},{"html_id":"drivers/OfficeRnd/Office","path":"OfficeRnd/Office.html","kind":"struct","full_name":"OfficeRnd::Office","name":"Office","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L24"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"city:String|Nil-instance-method","name":"city","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L23"},"def":{"name":"city","return_type":"String | ::Nil","visibility":"Public","body":"@city"}},{"html_id":"country:String|Nil-instance-method","name":"country","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L21"},"def":{"name":"country","return_type":"String | ::Nil","visibility":"Public","body":"@country"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image:String|Nil-instance-method","name":"image","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L26"},"def":{"name":"image","return_type":"String | ::Nil","visibility":"Public","body":"@image"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L28"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"state:String|Nil-instance-method","name":"state","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L22"},"def":{"name":"state","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L25"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/OfficeRndAPI","path":"OfficeRnd/OfficeRndAPI.html","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking(booking_id:String)-instance-method","name":"booking","doc":"Get a booking\n","summary":"

Get a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L130"},"def":{"name":"booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/bookings/#{booking_id}\", Booking)"}},{"html_id":"bookings(office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil)-instance-method","name":"bookings","doc":"Get bookings\n","summary":"

Get bookings

","abstract":false,"args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","args_html":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L136"},"def":{"name":"bookings","args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif member_id\n params[\"member\"] = member_id\nend\nif team_id\n params[\"team\"] = team_id\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/bookings\" : \"/bookings?#{query_string}\"\nget_request(path, Array(Booking))\n"}},{"html_id":"create_booking(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-instance-method","name":"create_booking","doc":"Create a booking\n","summary":"

Create a booking

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L164"},"def":{"name":"create_booking","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"create_bookings([Booking.new(resource_id: resource_id, booking_start: booking_start, booking_end: booking_end, summary: summary, team_id: team_id, member_id: member_id, description: description, tentative: tentative, free: free)])"}},{"html_id":"create_bookings(bookings:Array(Booking))-instance-method","name":"create_bookings","doc":"Make a booking\n","summary":"

Make a booking

","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L158"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"post_request(\"/bookings\", body: bookings.to_json)"}},{"html_id":"create_bookings(bookings:Array(BookingArgument))-instance-method","name":"create_bookings","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"args_string":"(bookings : Array(BookingArgument))","args_html":"(bookings : Array(BookingArgument))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L200"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"visibility":"Public","body":"create_bookings(bookings.map do |booking|\n Booking.new(**booking)\nend)"}},{"html_id":"delete_booking(booking_id:String)-instance-method","name":"delete_booking","doc":"Delete a booking\n","summary":"

Delete a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L152"},"def":{"name":"delete_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"!!(delete_request(\"/bookings/#{booking_id}\"))"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L38"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(floor_id:String)-instance-method","name":"floor","doc":"Get a floor\n","summary":"

Get a floor

","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L89"},"def":{"name":"floor","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"path = \"/floors/#{floor_id}\"\nget_request(path, Floor)\n"}},{"html_id":"floors(office_id:String|Nil,name:String|Nil)-instance-method","name":"floors","doc":"Get floors\n","summary":"

Get floors

","abstract":false,"args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil, name : String | Nil)","args_html":"(office_id : String | Nil, name : String | Nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L96"},"def":{"name":"floors","args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif name\n params[\"name\"] = name\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/floors\" : \"/floors?#{query_string}\"\nget_request(path, Array(Floor))\n"}},{"html_id":"get_header-instance-method","name":"get_header","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L77"},"def":{"name":"get_header","visibility":"Public","body":"headers = {\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L46"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nauth_route = @test_auth ? \"http://localhost:17839/oauth/token\" : \"https://identity.officernd.com/oauth/token\"\nparams = HTTP::Params.encode({\"client_id\" => @client_id, \"client_secret\" => @client_secret, \"grant_type\" => \"client_credentials\", \"scope\" => @scopes.join(' ')})\nheaders = HTTP::Headers {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"}\nresponse = HTTP::Client.post(url: auth_route, headers: headers, body: params)\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body)\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"office(name:String)-instance-method","name":"office","doc":"Retrieve office\n","summary":"

Retrieve office

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L216"},"def":{"name":"office","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"path = \"/offices/#{name}\"\nget_request(path, Array(Office))\n"}},{"html_id":"offices-instance-method","name":"offices","doc":"List offices\n","summary":"

List offices

","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L209"},"def":{"name":"offices","visibility":"Public","body":"path = \"/offices\"\nget_request(path, Array(Office))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\n@test_auth = setting(Bool, :test_auth)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@client_id = setting(String, :client_id)\n@client_secret = setting(String, :client_secret)\n@scopes = setting(Array(String), :scopes)\n"}},{"html_id":"resource_bookings(resource_id:String,range_start:Time=Time.utc-5.minutes,range_end:Time=Time.utc+24.hours,office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil):Array(Booking)-instance-method","name":"resource_bookings","doc":"Get bookings for a resource for a given time span\n","summary":"

Get bookings for a resource for a given time span

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","args_html":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L110"},"def":{"name":"resource_bookings","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"return_type":"Array(Booking)","visibility":"Public","body":"time_span = (range_start..range_end)\nbookings(office_id: office_id, member_id: member_id, team_id: team_id).select! do |booking|\n (booking.resource_id == resource_id) && (booking.overlaps?(time_span))\nend\n"}},{"html_id":"resources(type:Resource::Type|String|Nil=nil,name:String|Nil=nil,office_id:String|Nil=nil,available_from:Time|Nil=nil,available_to:Time|Nil=nil)-instance-method","name":"resources","doc":"Get available rooms (resources) by\n- type\n- date range (available_from, available_to)\n- office (office_id)\n- resource name (name)","summary":"

Get available rooms (resources) by - type - date range (available_from, available_to) - office (office_id) - resource name (name)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"args_string":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","args_html":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L229"},"def":{"name":"resources","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"visibility":"Public","body":"if type.is_a?(String)\n type = Resource::Type.parse(type)\nend\nparams = HTTP::Params.new\nif type\n params[\"type\"] = type.to_s\nend\nif name\n params[\"name\"] = name\nend\nif office_id\n params[\"office\"] = office_id\nend\nif available_from\n params[\"availableFrom\"] = available_from.to_s\nend\nif available_to\n params[\"availableTo\"] = available_to.to_s\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/resources\" : \"/resources?#{query_string}\"\nget_request(path, Array(Resource))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L42"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}}],"types":[{"html_id":"drivers/OfficeRnd/OfficeRndAPI/BookingArgument","path":"OfficeRnd/OfficeRndAPI/BookingArgument.html","kind":"alias","full_name":"OfficeRnd::OfficeRndAPI::BookingArgument","name":"BookingArgument","abstract":false,"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/office_rnd_api.cr#L188"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(resource_id: String, booking_start: Time, booking_end: Time, summary: String | Nil, team_id: String | Nil, member_id: String | Nil, description: String | Nil, tentative: Bool | Nil, free: Bool | Nil)","aliased_html":"{resource_id: String, booking_start: Time, booking_end: Time, summary: String?, team_id: String?, member_id: String?, description: String?, tentative: Bool?, free: Bool?}","const":false,"namespace":{"html_id":"drivers/OfficeRnd/OfficeRndAPI","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI"}}]},{"html_id":"drivers/OfficeRnd/Rate","path":"OfficeRnd/Rate.html","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L120"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cancellation_policy:CancellationPolicy-instance-method","name":"cancellation_policy","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L126"},"def":{"name":"cancellation_policy","return_type":"CancellationPolicy","visibility":"Public","body":"@cancellation_policy"}},{"html_id":"extras:Array(Extra)-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L127"},"def":{"name":"extras","return_type":"Array(Extra)","visibility":"Public","body":"@extras"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L122"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"max_duration:Int32-instance-method","name":"max_duration","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L129"},"def":{"name":"max_duration","return_type":"Int32","visibility":"Public","body":"@max_duration"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L123"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L124"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}],"types":[{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","path":"OfficeRnd/Rate/CancellationPolicy.html","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L131"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"minimum_period:Int32-instance-method","name":"minimum_period","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period","return_type":"Int32","visibility":"Public","body":"@minimum_period"}},{"html_id":"minimum_period=(minimum_period:Int32)-instance-method","name":"minimum_period=","abstract":false,"args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"args_string":"(minimum_period : Int32)","args_html":"(minimum_period : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period=","args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"visibility":"Public","body":"@minimum_period = minimum_period"}}]},{"html_id":"drivers/OfficeRnd/Rate/Extra","path":"OfficeRnd/Rate/Extra.html","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L138"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L139"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L140"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}]}]},{"html_id":"drivers/OfficeRnd/Resource","path":"OfficeRnd/Resource.html","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAPPING","name":"MAPPING","value":"{Type::MeetingRoom => \"meeting_room\", Type::PrivateOffices => \"team_room\", Type::PrivateOfficeDesk => \"desk_tr\", Type::DedicatedDesks => \"desk\", Type::HotDesks => \"hotdesk\"}"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L144"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L151"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L145"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L149"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"rate_id:String|Nil-instance-method","name":"rate_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L147"},"def":{"name":"rate_id","return_type":"String | ::Nil","visibility":"Public","body":"@rate_id"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L152"},"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}}],"types":[{"html_id":"drivers/OfficeRnd/Resource/Type","path":"OfficeRnd/Resource/Type.html","kind":"enum","full_name":"OfficeRnd::Resource::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L162"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MeetingRoom","name":"MeetingRoom","value":"0"},{"id":"PrivateOffices","name":"PrivateOffices","value":"1"},{"id":"PrivateOfficeDesk","name":"PrivateOfficeDesk","value":"2"},{"id":"DedicatedDesks","name":"DedicatedDesks","value":"3"},{"id":"HotDesks","name":"HotDesks","value":"4"}],"namespace":{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},"class_methods":[{"html_id":"parse(type:String)-class-method","name":"parse","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L177"},"def":{"name":"parse","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"parsed = Resource::MAPPING.key_for?(type)\nif parsed\nelse\n raise(ArgumentError.new(\"Unrecognised Resource::Type '#{type}'\"))\nend\nparsed\n"}},{"html_id":"valid?(type:String)-class-method","name":"valid?","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L183"},"def":{"name":"valid?","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"!!(Resource::MAPPING.key_for?(type))"}}],"instance_methods":[{"html_id":"dedicated_desks?-instance-method","name":"dedicated_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L166"},"def":{"name":"dedicated_desks?","visibility":"Public","body":"self == DedicatedDesks"}},{"html_id":"hot_desks?-instance-method","name":"hot_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L167"},"def":{"name":"hot_desks?","visibility":"Public","body":"self == HotDesks"}},{"html_id":"meeting_room?-instance-method","name":"meeting_room?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L163"},"def":{"name":"meeting_room?","visibility":"Public","body":"self == MeetingRoom"}},{"html_id":"private_office_desk?-instance-method","name":"private_office_desk?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L165"},"def":{"name":"private_office_desk?","visibility":"Public","body":"self == PrivateOfficeDesk"}},{"html_id":"private_offices?-instance-method","name":"private_offices?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L164"},"def":{"name":"private_offices?","visibility":"Public","body":"self == PrivateOffices"}},{"html_id":"to_json(json:JSON::Builder)-instance-method","name":"to_json","doc":"Serializes this enum member by name.\n\nFor non-flags enums, the serialization is a JSON string. The value is the\nmember name (see `#to_s`) transformed with `String#underscore`.\n\n```\nenum Stages\n INITIAL\n SECOND_STAGE\nend\n\nStages::INITIAL.to_json # => %(\"initial\")\nStages::SECOND_STAGE.to_json # => %(\"second_stage\")\n```\n\nFor flags enums, the serialization is a JSON array including every flagged\nmember individually serialized in the same way as a member of a non-flags enum.\n`None` is serialized as an empty array, `All` as an array containing\nall members.\n\n```\n@[Flags]\nenum Sides\n LEFT\n RIGHT\nend\n\nSides::LEFT.to_json # => %([\"left\"])\n(Sides::LEFT | Sides::RIGHT).to_json # => %([\"left\",\"right\"])\nSides::All.to_json # => %([\"left\",\"right\"])\nSides::None.to_json # => %([])\n```\n\n`ValueConverter.to_json` offers a different serialization strategy based on the\nmember value.","summary":"

Serializes this enum member by name.

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(json : JSON::Builder)","args_html":"(json : JSON::Builder)","location":{"filename":"src/office_rnd/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L173"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(self.to_s)"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L169"},"def":{"name":"to_s","visibility":"Public","body":"Resource::MAPPING[self]"}}]}]},{"html_id":"drivers/OfficeRnd/TokenResponse","path":"OfficeRnd/TokenResponse.html","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L11"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L11"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"scope:String-instance-method","name":"scope","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L14"},"def":{"name":"scope","return_type":"String","visibility":"Public","body":"@scope"}},{"html_id":"scope=(scope:String)-instance-method","name":"scope=","abstract":false,"args":[{"name":"scope","external_name":"scope","restriction":"String"}],"args_string":"(scope : String)","args_html":"(scope : String)","location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L14"},"def":{"name":"scope=","args":[{"name":"scope","external_name":"scope","restriction":"String"}],"visibility":"Public","body":"@scope = scope"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L12"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/office_rnd/models.cr#L12"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]}]},{"html_id":"drivers/OpenAI","path":"OpenAI.html","kind":"module","full_name":"OpenAI","name":"OpenAI","abstract":false,"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L3"},{"filename":"src/open_ai/models/edit_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L4"},{"filename":"src/open_ai/models/model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L3"},{"filename":"src/open_ai/models/text_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/OpenAI/ChatCompletion","path":"OpenAI/ChatCompletion.html","kind":"struct","full_name":"OpenAI::ChatCompletion","name":"ChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(MessageChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L95"},"def":{"name":"choices","return_type":"Array(MessageChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L93"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L89"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L90"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L96"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/CreateChatCompletion","path":"OpenAI/CreateChatCompletion.html","kind":"class","full_name":"OpenAI::CreateChatCompletion","name":"CreateChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/chat/completions","summary":"

POST https://api.openai.com/v1/chat/completions

","constructors":[{"html_id":"new(model:String,messages:Array(OpenAI::Message))-class-method","name":"new","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"args_string":"(model : String, messages : Array(OpenAI::Message))","args_html":"(model : String, messages : Array(OpenAI::Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L30"},"def":{"name":"new","args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(model, messages)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"messages:Array(Message)-instance-method","name":"messages","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages","return_type":"Array(Message)","visibility":"Public","body":"@messages"}},{"html_id":"messages=(messages:Array(Message))-instance-method","name":"messages=","abstract":false,"args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"args_string":"(messages : Array(Message))","args_html":"(messages : Array(Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages=","args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"visibility":"Public","body":"@messages = messages"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/CreateEditCompletion","path":"OpenAI/CreateEditCompletion.html","kind":"class","full_name":"OpenAI::CreateEditCompletion","name":"CreateEditCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/edit_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/edits","summary":"

POST https://api.openai.com/v1/edits

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"input:String-instance-method","name":"input","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input","return_type":"String","visibility":"Public","body":"@input"}},{"html_id":"input=(input:String)-instance-method","name":"input=","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input=","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"@input = input"}},{"html_id":"instruction:String-instance-method","name":"instruction","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction","return_type":"String","visibility":"Public","body":"@instruction"}},{"html_id":"instruction=(instruction:String)-instance-method","name":"instruction=","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"args_string":"(instruction : String)","args_html":"(instruction : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction=","args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"visibility":"Public","body":"@instruction = instruction"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}}]},{"html_id":"drivers/OpenAI/CreateTextCompletion","path":"OpenAI/CreateTextCompletion.html","kind":"class","full_name":"OpenAI::CreateTextCompletion","name":"CreateTextCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/completions","summary":"

POST https://api.openai.com/v1/completions

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"best_of:Int32-instance-method","name":"best_of","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of","return_type":"Int32","visibility":"Public","body":"@best_of"}},{"html_id":"best_of=(best_of:Int32)-instance-method","name":"best_of=","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"args_string":"(best_of : Int32)","args_html":"(best_of : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of=","args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"visibility":"Public","body":"@best_of = best_of"}},{"html_id":"echo:Bool-instance-method","name":"echo","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo","return_type":"Bool","visibility":"Public","body":"@echo"}},{"html_id":"echo=(echo:Bool)-instance-method","name":"echo=","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"args_string":"(echo : Bool)","args_html":"(echo : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo=","args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"visibility":"Public","body":"@echo = echo"}},{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"logprobs:Int32|Nil-instance-method","name":"logprobs","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs","return_type":"Int32 | ::Nil","visibility":"Public","body":"@logprobs"}},{"html_id":"logprobs=(logprobs:Int32|Nil)-instance-method","name":"logprobs=","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"args_string":"(logprobs : Int32 | Nil)","args_html":"(logprobs : Int32 | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs=","args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@logprobs = logprobs"}},{"html_id":"max_tokens:Int32-instance-method","name":"max_tokens","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens","return_type":"Int32","visibility":"Public","body":"@max_tokens"}},{"html_id":"max_tokens=(max_tokens:Int32)-instance-method","name":"max_tokens=","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"args_string":"(max_tokens : Int32)","args_html":"(max_tokens : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens=","args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"visibility":"Public","body":"@max_tokens = max_tokens"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"prompt:String|Array(String)|Nil-instance-method","name":"prompt","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"prompt=(prompt:String|Array(String)|Nil)-instance-method","name":"prompt=","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"args_string":"(prompt : String | Array(String) | Nil)","args_html":"(prompt : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt=","args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@prompt = prompt"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"suffix:String|Nil-instance-method","name":"suffix","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix","return_type":"String | ::Nil","visibility":"Public","body":"@suffix"}},{"html_id":"suffix=(suffix:String|Nil)-instance-method","name":"suffix=","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"args_string":"(suffix : String | Nil)","args_html":"(suffix : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix=","args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"visibility":"Public","body":"@suffix = suffix"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/GPT","path":"OpenAI/GPT.html","kind":"class","full_name":"OpenAI::GPT","name":"GPT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/gpt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat(model:String,message:Message|Array(Message))-instance-method","name":"chat","doc":"creates a completion for the chat message","summary":"

creates a completion for the chat message

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"args_string":"(model : String, message : Message | Array(Message))","args_html":"(model : String, message : Message | Array(Message))","location":{"filename":"src/open_ai/gpt.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L78"},"def":{"name":"chat","args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"visibility":"Public","body":"messages = message.is_a?(Array) ? message : [message]\nchat = CreateChatCompletion.new(model, messages)\nresponse = check(post(\"/v1/chat/completions\", body: chat.to_json))\nchat = ChatCompletion.from_json(response.body)\nupdate_token(chat.usage)\nchat.choices\n"}},{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L37"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"model(id:String)-instance-method","name":"model","doc":"returns the details of the provided model id","summary":"

returns the details of the provided model id

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/open_ai/gpt.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L72"},"def":{"name":"model","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = check(get(\"/v1/models/#{id}\"))\nModel.from_json(response.body)\n"}},{"html_id":"models-instance-method","name":"models","doc":"returns the available models for the current key","summary":"

returns the available models for the current key

","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L66"},"def":{"name":"models","visibility":"Public","body":"response = check(get(\"/v1/models\"))\n(List(Model).from_json(response.body)).data\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"openai_key = setting(String, :openai_key)\nopenai_org = setting?(String, :openai_org)\ntransport.before_request do |request|\n logger.debug do\n \"requesting #{request.method} #{request.path}?#{request.query}\\n#{request.headers}\\n#{request.body}\"\n end\n request.headers[\"Authorization\"] = \"Bearer #{openai_key}\"\n if openai_org\n request.headers[\"OpenAI-Organization\"] = openai_org\n end\n request.headers[\"Content-Type\"] = \"application/json\"\nend\nif usage = setting?(Usage, :token_usage)\n @total_tokens = usage.total_tokens\n @prompt_tokens = usage.prompt_tokens\n @completion_tokens = usage.completion_tokens\nend\n"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L36"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/gpt.cr#L35"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/List","path":"OpenAI/List.html","kind":"struct","full_name":"OpenAI::List(Type)","name":"List","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Type)-instance-method","name":"data","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L8"},"def":{"name":"data","return_type":"Array(Type)","visibility":"Public","body":"@data"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L7"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}}]},{"html_id":"drivers/OpenAI/Message","path":"OpenAI/Message.html","kind":"struct","full_name":"OpenAI::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"Typically, a conversation is formatted with a system message first,\nfollowed by alternating user and assistant messages.","summary":"

Typically, a conversation is formatted with a system message first, followed by alternating user and assistant messages.

","constructors":[{"html_id":"new(role:Role,content:String)-class-method","name":"new","abstract":false,"args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"args_string":"(role : Role, content : String)","args_html":"(role : Role, content : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L19"},"def":{"name":"new","args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(role, content)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L23"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"role:Role-instance-method","name":"role","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L22"},"def":{"name":"role","return_type":"Role","visibility":"Public","body":"@role"}}]},{"html_id":"drivers/OpenAI/MessageChoice","path":"OpenAI/MessageChoice.html","kind":"struct","full_name":"OpenAI::MessageChoice","name":"MessageChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L78"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L79"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L83"},"def":{"name":"finish_reason","return_type":"String","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L81"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"message:Message-instance-method","name":"message","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L82"},"def":{"name":"message","return_type":"Message","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/OpenAI/Model","path":"OpenAI/Model.html","kind":"struct","full_name":"OpenAI::Model","name":"Model","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"GET https://api.openai.com/v1/models","summary":"

GET https://api.openai.com/v1/models

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L27"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L28"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"owned_by:String-instance-method","name":"owned_by","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L29"},"def":{"name":"owned_by","return_type":"String","visibility":"Public","body":"@owned_by"}}]},{"html_id":"drivers/OpenAI/Role","path":"OpenAI/Role.html","kind":"enum","full_name":"OpenAI::Role","name":"Role","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"User","name":"User","value":"0","doc":"Can be generated by the end users of an application, or set by a developer as an instruction.","summary":"

Can be generated by the end users of an application, or set by a developer as an instruction.

"},{"id":"System","name":"System","value":"1","doc":"The system message helps set the behavior of the assistant.\nGPT 3 does not always pay strong attention to system messages","summary":"

The system message helps set the behavior of the assistant.

"},{"id":"Assistant","name":"Assistant","value":"2","doc":"The assistant messages help store prior responses. They can also be written by a developer to help give examples of desired behavior.","summary":"

The assistant messages help store prior responses.

"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"instance_methods":[{"html_id":"assistant?-instance-method","name":"assistant?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L11"},"def":{"name":"assistant?","visibility":"Public","body":"self == Assistant"}},{"html_id":"system?-instance-method","name":"system?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L9"},"def":{"name":"system?","visibility":"Public","body":"self == System"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/chat_completion.cr#L6"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/OpenAI/TextChoice","path":"OpenAI/TextChoice.html","kind":"struct","full_name":"OpenAI::TextChoice","name":"TextChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String|Nil-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L78"},"def":{"name":"finish_reason","return_type":"String | ::Nil","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L77"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L76"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}}]},{"html_id":"drivers/OpenAI/TextCompletion","path":"OpenAI/TextCompletion.html","kind":"struct","full_name":"OpenAI::TextCompletion","name":"TextCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(TextChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L91"},"def":{"name":"choices","return_type":"Array(TextChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L89"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L84"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L85"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L86"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/text_completion.cr#L92"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/Usage","path":"OpenAI/Usage.html","kind":"struct","full_name":"OpenAI::Usage","name":"Usage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(total_tokens:Int64,prompt_tokens:Int64,completion_tokens:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"args_string":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","args_html":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","location":{"filename":"src/open_ai/models/model.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L14"},"def":{"name":"new","args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(total_tokens, prompt_tokens, completion_tokens)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L19"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L18"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/models/model.cr#L17"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/VoiceControlInterface","path":"OpenAI/VoiceControlInterface.html","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROMPT","name":"PROMPT","value":"OpenAI::Message.new(:user, \"\\n\")"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"custom_prompts:Array(OpenAI::Message)-instance-method","name":"custom_prompts","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L25"},"def":{"name":"custom_prompts","return_type":"Array(OpenAI::Message)","visibility":"Public","body":"@custom_prompts"}},{"html_id":"llm_model_id:String-instance-method","name":"llm_model_id","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L24"},"def":{"name":"llm_model_id","return_type":"String","visibility":"Public","body":"@llm_model_id"}},{"html_id":"module_status(module_id:String):Hash(String,String)-instance-method","name":"module_status","doc":"returns a hash of status values","summary":"

returns a hash of status values

","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Hash(String, String)","args_html":"(module_id : String) : Hash(String, String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L71"},"def":{"name":"module_status","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"system[module_id].__status__"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@llm_model_id = setting(String, :llm_model_id)\n@custom_prompts = (setting?(Array(OpenAI::Message), :custom_prompts)) || ([] of OpenAI::Message)\n"}},{"html_id":"request(text:String)-instance-method","name":"request","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L34"},"def":{"name":"request","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"messages = ([PROMPT] + custom_prompts) + [OpenAI::Message.new(:user, \"The Request: #{text}\")]\nchoices = Array(MessageChoice).from_json((language_model.chat(llm_model_id, messages)).get.to_json)\n"}},{"html_id":"system_metadata-instance-method","name":"system_metadata","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L46"},"def":{"name":"system_metadata","visibility":"Public","body":"metadata = {} of String => Metadata\nsys = system\nsys.modules.each do |module_name|\n 1.upto(sys.count(module_name)) do |index|\n mod = sys.get(module_name, index)\n metadata[\"#{module_name}_#{index}\"] = mod.__metadata__.llm_interface\n end\nend\n{name: sys.name, description: sys.description, modules: metadata}\n"}}],"types":[{"html_id":"drivers/OpenAI/VoiceControlInterface/Metadata","path":"OpenAI/VoiceControlInterface/Metadata.html","kind":"alias","full_name":"OpenAI::VoiceControlInterface::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/open_ai/voice_control.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::DriverModel::Metadata","aliased_html":"PlaceOS::Driver::DriverModel::Metadata","const":false,"namespace":{"html_id":"drivers/OpenAI/VoiceControlInterface","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface"}}]}]},{"html_id":"drivers/Optergy","path":"Optergy.html","kind":"module","full_name":"Optergy","name":"Optergy","abstract":false,"locations":[{"filename":"src/optergy/p864_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ANALOG_INPUT_MODE","name":"ANALOG_INPUT_MODE","value":"{\"2\" => \"10k-2 sensor\", \"6\" => \"Dry Contact\", \"4|10\" => \"Pulse 10 per pulse\", \"3|0|100\" => \"4-20 ma 0 to 100\", \"5\" => \"3K sensor\"}"}],"types":[{"html_id":"drivers/Optergy/AnalogValue","path":"Optergy/AnalogValue.html","kind":"struct","full_name":"Optergy::AnalogValue","name":"AnalogValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L21"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L25"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L28"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L30"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L32"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str.to_f? || 0.0)\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L24"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/BinaryValue","path":"Optergy/BinaryValue.html","kind":"struct","full_name":"Optergy::BinaryValue","name":"BinaryValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L42"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L46"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L41"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L49"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L51"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Bool-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L53"},"def":{"name":"value","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str == \"Active\")\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L45"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/Config","path":"Optergy/Config.html","kind":"struct","full_name":"Optergy::Config","name":"Config","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L13"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"units:Units-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L12"},"def":{"name":"units","return_type":"Units","visibility":"Public","body":"@units"}}]},{"html_id":"drivers/Optergy/ModeResponse","path":"Optergy/ModeResponse.html","kind":"struct","full_name":"Optergy::ModeResponse","name":"ModeResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L70"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L69"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"object_type:Int32-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L73"},"def":{"name":"object_type","return_type":"Int32","visibility":"Public","body":"@object_type"}}]},{"html_id":"drivers/Optergy/P864","path":"Optergy/P864.html","kind":"class","full_name":"Optergy::P864","name":"P864","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"value\", \"input\", \"output\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"analog_input(instance:Int32)-instance-method","name":"analog_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ai/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_inputs-instance-method","name":"analog_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_inputs","visibility":"Public","body":"response = get(\"/api/ai/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_output(instance:Int32)-instance-method","name":"analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_outputs-instance-method","name":"analog_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_outputs","visibility":"Public","body":"response = get(\"/api/ao/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_value(instance:Int32)-instance-method","name":"analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_values-instance-method","name":"analog_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"analog_values","visibility":"Public","body":"response = get(\"/api/av/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"auth_headers-instance-method","name":"auth_headers","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L193"},"def":{"name":"auth_headers","visibility":"Public","body":"HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"binary_input(instance:Int32)-instance-method","name":"binary_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bi/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_inputs-instance-method","name":"binary_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_inputs","visibility":"Public","body":"response = get(\"/api/bi/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_output(instance:Int32)-instance-method","name":"binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_outputs-instance-method","name":"binary_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_outputs","visibility":"Public","body":"response = get(\"/api/bo/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_value(instance:Int32)-instance-method","name":"binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_values-instance-method","name":"binary_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"binary_values","visibility":"Public","body":"response = get(\"/api/bv/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"configuration-instance-method","name":"configuration","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L56"},"def":{"name":"configuration","visibility":"Public","body":"response = get(\"/api/device/config\", headers: auth_headers)\nConfig.from_json(check(response))\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L158"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/authorize\", headers: HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nbody = response.body\nnow = Time.utc\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n set_connected_state(true)\n token = (TokenResponse.from_json(body)).token\n payload, header = JWT.decode(token, verify: false, validate: false)\n issued = payload[\"iat\"].as_i64\n expires = payload[\"exp\"].as_i64\n expires_at = now + ((expires - issued) - 3).seconds\n @auth_expiry = expires_at\n @auth_token = \"Bearer #{token}\"\nelse\n set_connected_state(false)\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.minutes) do\n version\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@unit_mappings = (setting?(Mapping, :unit_mappings)) || Mapping.new\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/optergy/p864.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L318"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nthis_mac = device_mac\nif mac != this_mac\n return nil\nend\nif id\nelse\n return nil\nend\ninstance = id.to_i?\nif instance\nelse\n return nil\nend\ndevice = (begin\n analog_value(instance)\nrescue\n nil\nend)\nif device\nelse\n return nil\nend\nto_sensor(device, this_mac)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/optergy/p864.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L306"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n this_mac = device_mac\n if mac && (mac != this_mac)\n return NO_MATCH\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n analog_values.compact_map do |obj|\n to_sensor(obj, this_mac, filter)\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"set_input_mode(instance:Int32,mode:String)-instance-method","name":"set_input_mode","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(instance : Int32, mode : String)","args_html":"(instance : Int32, mode : String)","location":{"filename":"src/optergy/p864.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L138"},"def":{"name":"set_input_mode","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/ai/#{instance}/mode\", headers: auth_headers, body: {mode: mode}.to_json)\nModeResponse.from_json(check(response))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L149"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L51"},"def":{"name":"version","visibility":"Public","body":"response = get(\"/version\", headers: auth_headers)\n(NamedTuple(version: String).from_json(check(response)))[:version]\n"}},{"html_id":"write_analog_output(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_analog_value(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_binary_output(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"write_binary_value(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/optergy/p864.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L201"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%resp\n = \n{{ response }}\n\n logger.debug \n{ \"received: #{\n%resp\n.body}\" }\n raise \"error response: #{\n%resp\n.status} (#{\n%resp\n.status_code})\\n#{\n%resp\n.body}\" unless \n%resp\n.success?\n \n%resp\n.body\n \n"}}],"types":[{"html_id":"drivers/Optergy/P864/Mapping","path":"Optergy/P864/Mapping.html","kind":"alias","full_name":"Optergy::P864::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/optergy/p864.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Tuple(PlaceOS::Driver::Interface::Sensor::SensorType, String))","aliased_html":"Hash(Int32, {PlaceOS::Driver::Interface::Sensor::SensorType, String})","const":false,"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"}},{"html_id":"drivers/Optergy/P864/TokenResponse","path":"Optergy/P864/TokenResponse.html","kind":"struct","full_name":"Optergy::P864::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"},"constructors":[{"html_id":"new(token:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L154"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone)"}},{"html_id":"copy_with(token_token=@token)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"args_string":"(token _token = @token)","args_html":"(token _token = @token)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864.cr#L153"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"visibility":"Public","body":"self.class.new(_token)"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]}]},{"html_id":"drivers/Optergy/Units","path":"Optergy/Units.html","kind":"enum","full_name":"Optergy::Units","name":"Units","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Metric","name":"Metric","value":"0"},{"id":"Imperial","name":"Imperial","value":"1"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"instance_methods":[{"html_id":"imperial?-instance-method","name":"imperial?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L6"},"def":{"name":"imperial?","visibility":"Public","body":"self == Imperial"}},{"html_id":"metric?-instance-method","name":"metric?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/optergy/p864_models.cr#L5"},"def":{"name":"metric?","visibility":"Public","body":"self == Metric"}}]}]},{"html_id":"drivers/Panasonic","path":"Panasonic.html","kind":"module","full_name":"Panasonic","name":"Panasonic","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Panasonic/Camera","path":"Panasonic/Camera.html","kind":"module","full_name":"Panasonic::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Camera/HESeries","path":"Panasonic/Camera/HESeries.html","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MOVEMENT_STOPPED","name":"MOVEMENT_STOPPED","value":"50"},{"id":"ZOOM_MAX","name":"ZOOM_MAX","value":"4095"},{"id":"ZOOM_MIN","name":"ZOOM_MIN","value":"1365"},{"id":"ZOOM_RANGE","name":"ZOOM_RANGE","value":"(ZOOM_MAX - ZOOM_MIN).to_f"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Camera","kind":"module","full_name":"Panasonic::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L254"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n zoom?\n pantilt?\nend"}},{"html_id":"installation(position:Installation)-instance-method","name":"installation","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Installation"}],"args_string":"(position : Installation)","args_html":"(position : Installation)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L223"},"def":{"name":"installation","args":[{"name":"position","external_name":"position","restriction":"Installation"}],"visibility":"Public","body":"request(\"INS\", position.desk? ? 0 : 1) do |resp|\n parse_installation(resp)\nend"}},{"html_id":"installation?-instance-method","name":"installation?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L227"},"def":{"name":"installation?","visibility":"Public","body":"parse_installation(query(\"INS\"))"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L85"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan = (MOVEMENT_STOPPED + (joyspeed(pan_speed))).to_s.rjust(2, '0')\ntilt = (MOVEMENT_STOPPED + (joyspeed(tilt_speed))).to_s.rjust(2, '0')\nif (pan_speed == \"50\") && (tilt_speed == \"50\")\n options = {retries: 4, priority: queue.priority + 50, clear_queue: true, name: :joystick}\nelse\n options = {retries: 1, priority: queue.priority, clear_queue: false, name: :joystick}\nend\nrequest(\"PTS\", \"#{pan}#{tilt}\", **options) do |resp|\n pan, tilt = (resp[3..-1].scan(/.{2}/)).flat_map(&.to_a)\n self[:pan_speed] = pan.not_nil!.to_i - MOVEMENT_STOPPED\n self[:tilt_speed] = tilt.not_nil!.to_i - MOVEMENT_STOPPED\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L141"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0, tilt_speed: position.down? ? @default_movement_speed : -@default_movement_speed)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -@default_movement_speed : @default_movement_speed, tilt_speed: 0)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 130.milliseconds\nschedule.every(1.minute) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@default_movement_speed = (setting?(Int32, :default_movement_speed)) || 12\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Float64)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Float64))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32)-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"args_string":"(pan : Int32, tilt : Int32)","args_html":"(pan : Int32, tilt : Int32)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L238"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"visibility":"Public","body":"pan_val = (pan.to_s(16)).upcase.rjust(4, '0')\ntilt_val = (tilt.to_s(16)).upcase.rjust(4, '0')\nrequest(\"APC\", \"#{pan_val}#{tilt_val}\", name: :pantilt) do |resp|\n parse_pantilt(resp)\nend\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L244"},"def":{"name":"pantilt?","visibility":"Public","body":"parse_pantilt(query(\"APC\"))"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L53"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n delay = 6.seconds\nend\nrequest(\"O\", state ? 1 : 0, delay: delay) do |resp|\n parse_power(resp)\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L58"},"def":{"name":"power?","visibility":"Public","body":"parse_power(query(\"O\"))"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L115"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(preset[:pan], preset[:tilt])\n zoom_to(preset[:zoom])\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L132"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L125"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"do_poll\n@presets[name] = {pan: @pan, tilt: @tilt, zoom: self[:zoom].as_f}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L210"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"move_zoom(0, priority: 100)\njoystick(0, 0)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L189"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .in?\n move_zoom(@default_movement_speed // 2)\nin .out?\n move_zoom(-@default_movement_speed)\nin .stop?\n move_zoom(0)\nend"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L177"},"def":{"name":"zoom?","visibility":"Public","body":"resp = query(\"GZ\")\nif resp.includes?(\"--\")\n message = \"camera in standby, operation unavailable\"\n logger.debug do\n message\n end\n message\nelse\n @zoom_raw = resp[2..-1].to_i(16)\n self[:zoom] = (@zoom_raw - ZOOM_MIN).to_f * (100.0 / ZOOM_RANGE)\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L167"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * ZOOM_RANGE).to_i + ZOOM_MIN\nrequest(\"AXZ\", (zoom_value.to_s(16)).upcase.rjust(3, '0')) do |resp|\n self[:zoom] = resp[3..-1].to_i(16)\nend\n"}}],"types":[{"html_id":"drivers/Panasonic/Camera/HESeries/Installation","path":"Panasonic/Camera/HESeries/Installation.html","kind":"enum","full_name":"Panasonic::Camera::HESeries::Installation","name":"Installation","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Desk","name":"Desk","value":"0"},{"id":"Ceiling","name":"Ceiling","value":"1"}],"namespace":{"html_id":"drivers/Panasonic/Camera/HESeries","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries"},"instance_methods":[{"html_id":"ceiling?-instance-method","name":"ceiling?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L220"},"def":{"name":"ceiling?","visibility":"Public","body":"self == Ceiling"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/camera/he_series.cr#L219"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}}]}]}]},{"html_id":"drivers/Panasonic/Display","path":"Panasonic/Display.html","kind":"module","full_name":"Panasonic::Display","name":"Display","abstract":false,"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Display/Protocol2","path":"Panasonic/Display/Protocol2.html","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", input: \"IMS\", volume: \"AVL\", volume_query: \"QAV\", audio_mute: \"AMT\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HM1\", Inputs::HDMI2 => \"HM2\", Inputs::VGA => \"PC1\", Inputs::DVI => \"DVI\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Display","kind":"module","full_name":"Panasonic::Display","name":"Display"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","doc":"There is no input query command","summary":"

There is no input query command

","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L111"},"def":{"name":"input?","visibility":"Public","body":"self[:input]?"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There is no video mute command so this only mutes audio","summary":"

There is no video mute command so this only mutes audio

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L116"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"requested audio mute state: #{state}\"\n end\n do_send(:audio_mute, state ? 1 : 0)\nend"}},{"html_id":"mute?:Bool-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L129"},"def":{"name":"mute?","return_type":"Bool","visibility":"Public","body":"(do_send(:audio_mute)).get\n!!self[:audio_mute]?.try(&.as_bool)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L42"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(60.seconds) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"dispadmin\"\n@password = (setting?(String, :password)) || \"@Panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L78"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)\nend\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L91"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power_query, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L175"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic display sent: #{data} for #{task.try(&.name) || \"unknown\"}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\ndata = data[2..-1]\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"display busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"display error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on, :power_off, :power_query\n if (cmd == (:power_on)) || (cmd == (:power_off))\n self[:power] = cmd == (:power_on)\n end\n if cmd == (:power_query)\n self[:power] = val.not_nil!.to_i == 1\n end\n if power_target = @power_target\n if self[:power] == power_target\n @power_target = nil\n else\n power(power_target)\n end\n end\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :volume, :volume_query\n self[:volume] = val.not_nil!.to_f\nwhen :audio_mute\n self[:audio_mute] = val.not_nil!.to_i == 1\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L104"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nself[:input] = input\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L134"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\n(do_send(:volume, val.to_s.rjust(3, '0'))).get\nself[:volume] = val\n"}},{"html_id":"volume?:Int32|Nil-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L142"},"def":{"name":"volume?","return_type":"Int32 | ::Nil","visibility":"Public","body":"(do_send(:volume_query)).get\nself[:volume]?.try(&.as_i)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L152"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L147"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Panasonic/Display/Protocol2/Inputs","path":"Panasonic/Display/Protocol2/Inputs.html","kind":"enum","full_name":"Panasonic::Display::Protocol2::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"DVI","name":"DVI","value":"3"}],"namespace":{"html_id":"drivers/Panasonic/Display/Protocol2","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L25"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L23"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L22"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/display/protocol2.cr#L24"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Panasonic/Projector","path":"Panasonic/Projector.html","kind":"module","full_name":"Panasonic::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Projector/NTControl","path":"Panasonic/Projector/NTControl.html","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", freeze: \"OFZ\", input: \"IIS\", mute: \"OSH\", lamp: \"Q$S\", lamp_hours: \"Q$L\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HD1\", Inputs::HDMI2 => \"HD2\", Inputs::VGA => \"RG1\", Inputs::VGA2 => \"RG2\", Inputs::Miracast => \"MC1\", Inputs::DVI => \"DVI\", Inputs::DisplayPort => \"DP1\", Inputs::HDBaseT => \"DL1\", Inputs::Composite => \"VID\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Projector","kind":"module","full_name":"Panasonic::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L55"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"lamp_hours?(**options)-instance-method","name":"lamp_hours?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L105"},"def":{"name":"lamp_hours?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp_hours, 1, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes audio + video","summary":"

Mutes audio + video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L133"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"logger.debug do\n \"requested mute state: #{state}\"\nend\nactual = state ? 1 : 0\ndo_send(:mute, actual)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(40.seconds) do\n power?(priority: 0)\n lamp_hours?(priority: 0)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L66"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"admin1\"\n@password = (setting?(String, :password)) || \"panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L83"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:stable_power] = @stable_power = false\nself[:power_target] = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\n do_send(:lamp)\nelse\n logger.debug do\n \"requested to power off\"\n end\n (do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)).get\n schedule.in(10.seconds) do\n do_send(:lamp)\n end\nend\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L101"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L158"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic sent: #{data}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"projector busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"projector error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\ndata = data[2..-1]\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on\n self[:power] = true\nwhen :power_off\n self[:power] = false\nwhen :power_query\n self[:power] = val.not_nil!.to_i == 1\nwhen :freeze\n self[:frozen] = val.not_nil!.to_i == 1\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :mute\n state = self[:mute] = val.not_nil!.to_i == 1\n self[:mute0] = state\n self[:mute0_video] = state\n self[:mute0_audio] = state\nelse\n case task.name\n when \"lamp\"\n ival = resp[0].to_i\n self[:power] = {1, 2}.includes?(ival)\n self[:warming] = ival == 1\n self[:cooling] = ival == 3\n if !@stable_power\n if self[:power] == self[:power_target]\n self[:stable_power] = @stable_power = true\n else\n power(self[:power_target].as_bool)\n end\n end\n when \"lamp_hours\"\n self[:lamp_usage] = data.to_i\n end\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L122"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"if self[:mute]\n unmute\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\nself[:input] = input\n"}}],"types":[{"html_id":"drivers/Panasonic/Projector/NTControl/Inputs","path":"Panasonic/Projector/NTControl/Inputs.html","kind":"enum","full_name":"Panasonic::Projector::NTControl::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"3"},{"id":"Miracast","name":"Miracast","value":"4"},{"id":"DVI","name":"DVI","value":"5"},{"id":"DisplayPort","name":"DisplayPort","value":"6"},{"id":"HDBaseT","name":"HDBaseT","value":"7"},{"id":"Composite","name":"Composite","value":"8"}],"namespace":{"html_id":"drivers/Panasonic/Projector/NTControl","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl"},"instance_methods":[{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L31"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L29"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L28"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L30"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L24"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L23"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"miracast?-instance-method","name":"miracast?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L27"},"def":{"name":"miracast?","visibility":"Public","body":"self == Miracast"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L26"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/panasonic/projector/nt_control.cr#L25"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]}]},{"html_id":"drivers/Pattr","path":"Pattr.html","kind":"module","full_name":"Pattr","name":"Pattr","abstract":false,"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Pattr/ChatBot","path":"Pattr/ChatBot.html","kind":"class","full_name":"Pattr::ChatBot","name":"ChatBot","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat_data_request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"chat_data_request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/pattr/chat_bot.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L45"},"def":{"name":"chat_data_request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nrequest = Request.from_json(body)\nresponse = case request\nin Location\n locate(request.referencing)\nend\npayload = response.to_json\nif @debug_webhook\n logger.debug do\n payload\n end\nend\n{HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, payload}\n"}},{"html_id":"locate(staff:Array(String))-instance-method","name":"locate","doc":"map reduce search for the users across all buildings","summary":"

map reduce search for the users across all buildings

","abstract":false,"args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"args_string":"(staff : Array(String))","args_html":"(staff : Array(String))","location":{"filename":"src/pattr/chat_bot.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L61"},"def":{"name":"locate","args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"visibility":"Public","body":"searches = staff.map do |username|\n email = username.includes?('@') ? username : nil\n queries = @buildings.map do |building|\n building[:LocationServices].locate_user(email, username)\n end\n {username, queries}\nend\nresponse = {} of String => PlaceLocationResult\nsearches.each do |__temp_871|\n username, queries = __temp_871\n locations = {} of String => PlaceLocationResult\n queries.each do |results|\n (Array(PlaceLocationResult).from_json(results.get.to_json)).map do |location|\n locations[location.location] = location\n end\n end\n if location = (locations[\"meeting\"]? || locations[\"wireless\"]?) || locations[\"desk\"]?\n response[username] = location\n end\nend\nresponse.transform_values do |location|\n case location.location\n when \"meeting\"\n {building: zones[location.building], level: zones[location.level], room: systems[location.sys_id.not_nil!]}\n else\n {building: zones[location.building], level: zones[location.level]}\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"@zones = Hash(String, String).new do |hash, key|\n zone = (staff_api.zone(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg0|\n __arg0.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\n@systems = Hash(String, String).new do |hash, key|\n zone = (staff_api.get_system(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg2|\n __arg2.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\nbuildings = (setting?(Array(String), :buildings)) || [config.control_system.not_nil!.id]\n@buildings = buildings.map do |id|\n system(id)\nend\n"}}]},{"html_id":"drivers/Pattr/Location","path":"Pattr/Location.html","kind":"class","full_name":"Pattr::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},"ancestors":[{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L15"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"referencing:Array(String)-instance-method","name":"referencing","doc":"user emails / usernames of users we want to locate","summary":"

user emails / usernames of users we want to locate

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L19"},"def":{"name":"referencing","return_type":"Array(String)","visibility":"Public","body":"@referencing"}},{"html_id":"request:String-instance-method","name":"request","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L16"},"def":{"name":"request","return_type":"String","visibility":"Public","body":"@request"}}]},{"html_id":"drivers/Pattr/PlaceLocationResult","path":"Pattr/PlaceLocationResult.html","kind":"class","full_name":"Pattr::PlaceLocationResult","name":"PlaceLocationResult","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","doc":"zone ids","summary":"

zone ids

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L29"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L30"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"location:String-instance-method","name":"location","doc":"wireless, desk, meeting, booking","summary":"

wireless, desk, meeting, booking

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L26"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"sys_id:String|Nil-instance-method","name":"sys_id","doc":"system id (if it's a meeting room)","summary":"

system id (if it's a meeting room)

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L33"},"def":{"name":"sys_id","return_type":"String | ::Nil","visibility":"Public","body":"@sys_id"}}]},{"html_id":"drivers/Pattr/Request","path":"Pattr/Request.html","kind":"class","full_name":"Pattr::Request","name":"Request","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Pattr/Location","kind":"class","full_name":"Pattr::Location","name":"Location"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"request type hint","summary":"

request type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"request\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'request' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'request'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n Location.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'request' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"user:String-instance-method","name":"user","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/pattr/chat_bot_models.cr#L12"},"def":{"name":"user","return_type":"String","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/Philips","path":"Philips.html","kind":"module","full_name":"Philips","name":"Philips","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Philips/Dynalite","path":"Philips/Dynalite.html","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"254 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n get_current_preset(1)\nend"}},{"html_id":"decrement_area_level(area:UInt8)-instance-method","name":"decrement_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L124"},"def":{"name":"decrement_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 5, 0, 0, 255])"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L24"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(area:UInt8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L59"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 99, 0, 0, 255]\ndo_send(command, wait: true)\n"}},{"html_id":"get_light_level(area:Int32,channel:Int32=255)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, channel : Int32 = 255)","args_html":"(area : Int32, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L116"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"do_send(Bytes[28, area & 255, channel & 255, 97, 0, 0, 255], wait: true)"}},{"html_id":"increment_area_level(area:UInt8)-instance-method","name":"increment_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L120"},"def":{"name":"increment_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 6, 0, 0, 255])"}},{"html_id":"light_level(area:Int32,level:Float64,fade:Int32=1000,channel:Int32=255)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","args_html":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L78"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"cmd = 113\nfade = if fade <= 25500\n fade // 100\nelse\n if fade < 255000\n cmd = 114\n fade // 1000\n else\n cmd = 115\n (fade // 60000).clamp(1, 22)\n end\nend\narea_key = ((Area.new(area.to_u32, channel: channel == 255 ? nil : channel.to_u32)).append(\"level\")).to_s\nself[area_key] = level\nlevel = ((level.clamp(0.0, 100.0)) * LEVEL_PERCENTAGE).to_u8\nlevel = 255_u8 - level\ncommand = Bytes[28, area & 255, channel & 255, cmd, level, fade & 255, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"lighting(area:Int32,state:Bool,fade:Int32=1000)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, state : Bool, fade : Int32 = 1000)","args_html":"(area : Int32, state : Bool, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L71"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100.0 : 0.0\nlight_level(area, level, fade)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L215"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nget_light_level(area_id, area_channel.to_i)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L204"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\nget_current_preset(area_id.to_u8)\n"}},{"html_id":"link_area(area:UInt8,join:UInt8)-instance-method","name":"link_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt8, join : UInt8)","args_html":"(area : UInt8, join : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L134"},"def":{"name":"link_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, join, 20, 0, 0, 255])"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 35.milliseconds\ntransport.tokenizer = Tokenizer.new(8, Bytes[28])\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynalite.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L138"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data.hexstring}\"\nend\ncase data[3]\nwhen 0, 1, 2, 3, 10, 11, 12, 13\n number = data[3]\n if number > 3\n number = number - (10 + 4)\n end\n number = number + ((data[5] * 8) + 1)\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 98\n number = data[2] + 1\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 96\n level = data[4]\n level = 255 - level\n level = level / LEVEL_PERCENTAGE\n channel = data[2].to_u32\n area_key = ((Area.new(data[1].to_u32, channel: channel == 255_u32 ? nil : channel)).append(\"level\")).to_s\n self[area_key] = level\n task.try(&.success(level))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save_preset(area:UInt8,scene:UInt8)-instance-method","name":"save_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"args_string":"(area : UInt8, scene : UInt8)","args_html":"(area : UInt8, scene : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L65"},"def":{"name":"save_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"visibility":"Public","body":"num = (scene - 1) & 255\ncommand = Bytes[28, area, num, 9, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L209"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nlight_level(area_id, level, fade_time.to_i, area_channel.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L199"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\ntrigger(area_id, scene.to_i, fade_time.to_i)\n"}},{"html_id":"stop_all_fading(area:UInt8)-instance-method","name":"stop_all_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L111"},"def":{"name":"stop_all_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 122, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"stop_fading(area:UInt8,channel:UInt8=255_u8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"args_string":"(area : UInt8, channel : UInt8 = 255_u8)","args_html":"(area : UInt8, channel : UInt8 = 255_u8)","location":{"filename":"src/philips/dynalite.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L106"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, channel, 118, 0, 0, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"trigger(area:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","doc":"fade_time in millisecond","summary":"

fade_time in millisecond

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(area : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L37"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade_centi = fade // 10\nself[Area.new(area.to_u32)] = scene\nscene = scene - 1\nbank = scene // 8\nscene = scene - (bank * 8)\nif scene >= 4\n scene = scene + 6\nend\ncommand = Bytes[28, area & 255, fade_centi & 255, scene & 255, (fade_centi >> 8) & 255, bank, 255]\nschedule.in((fade + 200).milliseconds) do\n get_light_level(area)\nend\ndo_send(command, name: \"preset_#{area}_#{scene}\")\n"}},{"html_id":"unlink_area(area:UInt8)-instance-method","name":"unlink_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L128"},"def":{"name":"unlink_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"link_area(area, 0_u8)"}}],"types":[{"html_id":"drivers/Philips/Dynalite/Area","path":"Philips/Dynalite/Area.html","kind":"alias","full_name":"Philips::Dynalite::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynalite.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Dynalite","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite"}}]},{"html_id":"drivers/Philips/DyNetText","path":"Philips/DyNetText.html","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynet_text.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- polling gateway\"\n end\n get_date\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L38"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"get_current_preset(area:UInt16,join:UInt8=255_u8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8)","args_html":"(area : UInt16, join : UInt8 = 255_u8)","location":{"filename":"src/philips/dynet_text.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L169"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(\"RequestCurrentPreset #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}\" : \"get_area#{area}_#{join}\"))"}},{"html_id":"get_date-instance-method","name":"get_date","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L152"},"def":{"name":"get_date","visibility":"Public","body":"do_send(\"RequestDate\", name: :date)"}},{"html_id":"get_light_level(area:UInt16,join:UInt8=255_u8,channel:UInt16=1_u16)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L183"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"RequestChannelLevel #{channel} #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}_level\" : \"get_area#{area}_#{join}_level\"))"}},{"html_id":"get_time-instance-method","name":"get_time","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L156"},"def":{"name":"get_time","visibility":"Public","body":"do_send(\"RequestTime\", name: :time)"}},{"html_id":"light_level(area:UInt16,level:Float64,join:UInt8=255_u8,fade:UInt32=1000_u32,channel:UInt16=0_u16)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L177"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"level = level.round_away.to_i\ndo_send(\"ChannelLevel #{channel} #{level.clamp(0, 100)} #{area} #{fade} #{join}\", name: \"level#{area}_#{channel}_#{join}\")\n"}},{"html_id":"lighting(area:UInt16,state:Bool,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L173"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"light_level(area, state ? 100.0 : 0.0, join, fade)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L218"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 1_u32\nget_light_level(area_id, area_join, area_channel.to_u16)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L207"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\nget_current_preset(area_id, area_join)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynet_text.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L48"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip(\"\\u0000\\r\\n\\t \")\nif data.empty?\n return\nend\nlogger.debug do\n \"Dynalite sent: #{data}\"\nend\nif @ready\n components = (data.split(\", \")).map do |component|\n parts = component.downcase.split\n value = parts.pop\n key = parts.join(' ')\n {key, value}\n end.to_h\n process_response(data, components, task)\nelse\n if data =~ (/Connection Established/i)\n @ready = true\n self[:ready] = true\n do_send(\"Echo 0\", name: \"echo\")\n do_send(\"Verbose\", name: \"verbose\")\n do_send(\"ReplyOK 1\", name: \"replies\")\n do_send(\"Join 255\", name: \"join\")\n end\nend\n"}},{"html_id":"send_custom(data:String)-instance-method","name":"send_custom","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/philips/dynet_text.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L165"},"def":{"name":"send_custom","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"do_send(data)"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L212"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 0_u32\nlight_level(area_id, level, area_join, fade_time, area_channel.to_u16)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L202"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\ntrigger(area_id, scene.to_u16, area_join, fade_time)\n"}},{"html_id":"stop_fading(area:UInt16,join:UInt8=255_u8,channel:UInt16=0_u16)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L188"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"StopFade #{channel} #{area} #{join}\", name: \"stopfade#{area}_#{join}_#{channel}\")"}},{"html_id":"trigger(area:UInt16,scene:UInt16,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"trigger","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L160"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"do_send(\"Preset #{scene} #{area} #{fade} #{join}\", name: \"preset#{area}_#{join}\")"}}],"types":[{"html_id":"drivers/Philips/DyNetText/Area","path":"Philips/DyNetText/Area.html","kind":"alias","full_name":"Philips::DyNetText::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynet_text.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/dynet_text.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/DyNetText","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText"}}]},{"html_id":"drivers/Philips/Hue","path":"Philips/Hue.html","kind":"class","full_name":"Philips::Hue","name":"Hue","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"app_key:String-instance-method","name":"app_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L33"},"def":{"name":"app_key","return_type":"String","visibility":"Public","body":"@app_key"}},{"html_id":"client_key:String-instance-method","name":"client_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L36"},"def":{"name":"client_key","return_type":"String","visibility":"Public","body":"@client_key"}},{"html_id":"device_list-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L96"},"def":{"name":"device_list","visibility":"Public","body":"resource_details(Resource::Device)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L184"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\nelse\n raise(\"no area provided\")\nend\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\njson = resource_details(resource, area_id)\nstate = json[\"on\"][\"on\"].as_bool\nstate ? json[\"dimming\"][\"brightness\"].as_i : 0\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L170"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"raise(\"not really a thing\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@app_key = setting(String, :app_key)\n@client_key = setting(String, :client_key)\n@scenes = (setting?(Array(String), :scenes)) || ([] of String)\n"}},{"html_id":"register-instance-method","name":"register","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L52"},"def":{"name":"register","visibility":"Public","body":"response = post(\"/api\", body: {devicetype: \"placeos##{module_id}\", generateclientkey: true}.to_json)\nif response.success?\nelse\n raise(\"unknown error: #{response.body}\")\nend\nresp = (Array(RegResponse).from_json(response.body))[0]\nif success = resp.success\n @app_key = success.username\n @client_key = success.clientkey\n define_setting(:app_key, @app_key)\n define_setting(:client_key, @client_key)\n @app_key\nelse\n error = resp.error.as(HueError)\n logger.error do\n \"type #{error.type}: #{error.description}\"\n end\n error.description\nend\n"}},{"html_id":"resource_details(resource:Resource,id:String|Nil=nil)-instance-method","name":"resource_details","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(resource : Resource, id : String | Nil = nil)","args_html":"(resource : Resource, id : String | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L88"},"def":{"name":"resource_details","args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = get(\"/clip/v2/resource/#{resource.to_s.underscore}#{id.presence ? \"/#{id}\" : \"\"}\", headers: HTTP::Headers {\"hue-application-key\" => app_key})\nJSON.parse(response.body)\n"}},{"html_id":"rgb_to_cie(r:UInt8,g:UInt8,b:UInt8):Tuple(Float64,Float64)-instance-method","name":"rgb_to_cie","doc":"convert RGB to CIE which is used by Hue","summary":"

convert RGB to CIE which is used by Hue

","abstract":false,"args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"args_string":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","args_html":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","location":{"filename":"src/philips/hue.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L105"},"def":{"name":"rgb_to_cie","args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"return_type":"Tuple(Float64, Float64)","visibility":"Public","body":"r_norm = r / 255.0\ng_norm = g / 255.0\nb_norm = b / 255.0\nr_lin = (r_norm > 0.04045) ? ((r_norm + 0.055) / 1.055) ** 2.4 : r_norm / 12.92\ng_lin = (g_norm > 0.04045) ? ((g_norm + 0.055) / 1.055) ** 2.4 : g_norm / 12.92\nb_lin = (b_norm > 0.04045) ? ((b_norm + 0.055) / 1.055) ** 2.4 : b_norm / 12.92\nx = ((r_lin * 0.4124) + (g_lin * 0.3576)) + (b_lin * 0.1805)\ny = ((r_lin * 0.2126) + (g_lin * 0.7152)) + (b_lin * 0.0722)\nz = ((r_lin * 0.0193) + (g_lin * 0.1192)) + (b_lin * 0.9505)\nxy_x = x / ((x + y) + z)\nxy_y = y / ((x + y) + z)\n{xy_x, xy_y}\n"}},{"html_id":"scene_list-instance-method","name":"scene_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L100"},"def":{"name":"scene_list","visibility":"Public","body":"resource_details(Resource::Scene)"}},{"html_id":"scenes:Array(String)-instance-method","name":"scenes","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L38"},"def":{"name":"scenes","return_type":"Array(String)","visibility":"Public","body":"@scenes"}},{"html_id":"set_light_colour(light_id:Int32,r:UInt8=0_u8,g:UInt8=0_u8,b:UInt8=0_u8)-instance-method","name":"set_light_colour","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"args_string":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","args_html":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","location":{"filename":"src/philips/hue.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L128"},"def":{"name":"set_light_colour","args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"visibility":"Public","body":"x, y = rgb_to_cie(r, g, b)\nresponse = put(\"/clip/v2/resource/light/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {color: {xy: {x: x, y: y}}}.to_json)\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"set_light_level(light_id:String,level:UInt32,resource:Resource=Resource::Light)-instance-method","name":"set_light_level","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"args_string":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","args_html":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","location":{"filename":"src/philips/hue.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L137"},"def":{"name":"set_light_level","args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nif level == 0\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: false}}.to_json)\nelse\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: true}, dimming: {brightness: level}}.to_json)\nend\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nlevel\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L174"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"level_int = level.round_away.to_u32\narea = area.as(Area)\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\nset_light_level(area_id, level_int, resource)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","doc":"==================\nLighting Interface\n==================","summary":"

================== Lighting Interface ==================

","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L165"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"scene_id = @scenes[scene]\nset_scene(scene_id)\n"}},{"html_id":"set_scene(scene_id:String)-instance-method","name":"set_scene","abstract":false,"args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"args_string":"(scene_id : String)","args_html":"(scene_id : String)","location":{"filename":"src/philips/hue.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L154"},"def":{"name":"set_scene","args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"visibility":"Public","body":"response = put(\"/clip/v2/resource/scene/#{scene_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {recall: {action: :active}}.to_json)\nif response.success?\nelse\n raise(\"error activating scene (#{response.status})\\n#{response.body}\")\nend\nresponse.body\n"}}],"types":[{"html_id":"drivers/Philips/Hue/Area","path":"Philips/Hue/Area.html","kind":"alias","full_name":"Philips::Hue::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/hue.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"doc":"component == resource\nid == id","summary":"

component == resource id == id

"},{"html_id":"drivers/Philips/Hue/HueError","path":"Philips/Hue/HueError.html","kind":"struct","full_name":"Philips::Hue::HueError","name":"HueError","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(type:Int32,address:String,description:String)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(type : Int32, address : String, description : String)","args_html":"(type : Int32, address : String, description : String)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, address, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"@address"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @address.clone, @description.clone)"}},{"html_id":"copy_with(type_type=@type,address_address=@address,description_description=@description)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"args_string":"(type _type = @type, address _address = @address, description _description = @description)","args_html":"(type _type = @type, address _address = @address, description _description = @description)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L40"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _address, _description)"}},{"html_id":"description:String-instance-method","name":"description","abstract":false,"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"type:Int32-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Int32","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Philips/Hue/RegResponse","path":"Philips/Hue/RegResponse.html","kind":"struct","full_name":"Philips::Hue::RegResponse","name":"RegResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(success:RegSuccess|Nil,error:HueError|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"args_string":"(success : RegSuccess | Nil, error : HueError | Nil)","args_html":"(success : RegSuccess | Nil, error : HueError | Nil)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"new","args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(success, error)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@success.clone, @error.clone)"}},{"html_id":"copy_with(success_success=@success,error_error=@error)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"args_string":"(success _success = @success, error _error = @error)","args_html":"(success _success = @success, error _error = @error)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L48"},"def":{"name":"copy_with","args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"visibility":"Public","body":"self.class.new(_success, _error)"}},{"html_id":"error:HueError|Nil-instance-method","name":"error","abstract":false,"def":{"name":"error","return_type":"HueError | ::Nil","visibility":"Public","body":"@error"}},{"html_id":"success:RegSuccess|Nil-instance-method","name":"success","abstract":false,"def":{"name":"success","return_type":"RegSuccess | ::Nil","visibility":"Public","body":"@success"}}]},{"html_id":"drivers/Philips/Hue/RegSuccess","path":"Philips/Hue/RegSuccess.html","kind":"struct","full_name":"Philips::Hue::RegSuccess","name":"RegSuccess","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(username:String,clientkey:String)-class-method","name":"new","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"args_string":"(username : String, clientkey : String)","args_html":"(username : String, clientkey : String)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"new","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(username, clientkey)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clientkey:String-instance-method","name":"clientkey","abstract":false,"def":{"name":"clientkey","return_type":"String","visibility":"Public","body":"@clientkey"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@username.clone, @clientkey.clone)"}},{"html_id":"copy_with(username_username=@username,clientkey_clientkey=@clientkey)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"args_string":"(username _username = @username, clientkey _clientkey = @clientkey)","args_html":"(username _username = @username, clientkey _clientkey = @clientkey)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"visibility":"Public","body":"self.class.new(_username, _clientkey)"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}]},{"html_id":"drivers/Philips/Hue/Resource","path":"Philips/Hue/Resource.html","kind":"enum","full_name":"Philips::Hue::Resource","name":"Resource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L74"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Light","name":"Light","value":"0"},{"id":"Scene","name":"Scene","value":"1"},{"id":"Room","name":"Room","value":"2"},{"id":"Zone","name":"Zone","value":"3"},{"id":"GroupedLight","name":"GroupedLight","value":"4"},{"id":"Device","name":"Device","value":"5"},{"id":"Motion","name":"Motion","value":"6"},{"id":"GroupedMotion","name":"GroupedMotion","value":"7"},{"id":"GroupedLightLevel","name":"GroupedLightLevel","value":"8"},{"id":"CameraMotion","name":"CameraMotion","value":"9"},{"id":"Temperature","name":"Temperature","value":"10"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"instance_methods":[{"html_id":"camera_motion?-instance-method","name":"camera_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L84"},"def":{"name":"camera_motion?","visibility":"Public","body":"self == CameraMotion"}},{"html_id":"device?-instance-method","name":"device?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L80"},"def":{"name":"device?","visibility":"Public","body":"self == Device"}},{"html_id":"grouped_light?-instance-method","name":"grouped_light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L79"},"def":{"name":"grouped_light?","visibility":"Public","body":"self == GroupedLight"}},{"html_id":"grouped_light_level?-instance-method","name":"grouped_light_level?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L83"},"def":{"name":"grouped_light_level?","visibility":"Public","body":"self == GroupedLightLevel"}},{"html_id":"grouped_motion?-instance-method","name":"grouped_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L82"},"def":{"name":"grouped_motion?","visibility":"Public","body":"self == GroupedMotion"}},{"html_id":"light?-instance-method","name":"light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L75"},"def":{"name":"light?","visibility":"Public","body":"self == Light"}},{"html_id":"motion?-instance-method","name":"motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L81"},"def":{"name":"motion?","visibility":"Public","body":"self == Motion"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L77"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}},{"html_id":"scene?-instance-method","name":"scene?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L76"},"def":{"name":"scene?","visibility":"Public","body":"self == Scene"}},{"html_id":"temperature?-instance-method","name":"temperature?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L85"},"def":{"name":"temperature?","visibility":"Public","body":"self == Temperature"}},{"html_id":"zone?-instance-method","name":"zone?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/philips/hue.cr#L78"},"def":{"name":"zone?","visibility":"Public","body":"self == Zone"}}]}]}]},{"html_id":"drivers/Place","path":"Place.html","kind":"module","full_name":"Place","name":"Place","abstract":false,"locations":[{"filename":"src/place/area_config.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L4"},{"filename":"src/place/meet/help.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L3"},{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Place/AreaConfig","path":"Place/AreaConfig.html","kind":"class","full_name":"Place::AreaConfig","name":"AreaConfig","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:String,name,coordinates,building_id=nil,area_type:String=\"Feature\",feature_type:String=\"section\",capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"args_string":"(id : String, name, coordinates, building_id = nil, area_type : String = \"Feature\", feature_type : String = \"section\", capacity = nil)","args_html":"(id : String, name, coordinates, building_id = nil, area_type : String = "Feature", feature_type : String = "section", capacity = nil)","location":{"filename":"src/place/area_config.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, coordinates, building_id, area_type, feature_type, capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L33"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L33"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}},{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L46"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"self.properties[\"building_id\"]?.as?(String)"}},{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L50"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"(self.properties[\"capacity\"]?.as?(Int64 | Float64)).try(&.to_i)"}},{"html_id":"coordinates(map_width:Float64,map_height:Float64)-instance-method","name":"coordinates","abstract":false,"args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"args_string":"(map_width : Float64, map_height : Float64)","args_html":"(map_width : Float64, map_height : Float64)","location":{"filename":"src/place/area_config.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L62"},"def":{"name":"coordinates","args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"visibility":"Public","body":"@adjusted_coords = self.geometry.coordinates.map do |__temp_884|\n x, y = __temp_884\n {x * map_width, y * map_height}\nend"}},{"html_id":"coordinates-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L54"},"def":{"name":"coordinates","visibility":"Public","body":"if coords = @adjusted_coords\n coords\nelse\n self.geometry.coordinates\nend"}},{"html_id":"feature_type:String-instance-method","name":"feature_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L34"},"def":{"name":"feature_type","return_type":"String","visibility":"Public","body":"@feature_type"}},{"html_id":"feature_type=(feature_type:String)-instance-method","name":"feature_type=","abstract":false,"args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"args_string":"(feature_type : String)","args_html":"(feature_type : String)","location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L34"},"def":{"name":"feature_type=","args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"visibility":"Public","body":"@feature_type = feature_type"}},{"html_id":"geometry:Geometry-instance-method","name":"geometry","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L36"},"def":{"name":"geometry","return_type":"Geometry","visibility":"Public","body":"@geometry"}},{"html_id":"geometry=(geometry:Geometry)-instance-method","name":"geometry=","abstract":false,"args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"args_string":"(geometry : Geometry)","args_html":"(geometry : Geometry)","location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L36"},"def":{"name":"geometry=","args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"visibility":"Public","body":"@geometry = geometry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L30"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"self.properties[\"name\"].as(String)"}},{"html_id":"polygon:Polygon-instance-method","name":"polygon","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L66"},"def":{"name":"polygon","return_type":"Polygon","visibility":"Public","body":"@polygon || (@polygon = Polygon.new(coordinates.map do |coords|\n Point.new(*coords)\nend))"}},{"html_id":"properties:Hash(String,JSON::Any::Type)-instance-method","name":"properties","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L37"},"def":{"name":"properties","return_type":"Hash(String, JSON::Any::Type)","visibility":"Public","body":"@properties"}},{"html_id":"properties=(properties:Hash(String,JSON::Any::Type))-instance-method","name":"properties=","abstract":false,"args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(properties : Hash(String, JSON::Any::Type))","args_html":"(properties : Hash(String, JSON::Any::Type))","location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L37"},"def":{"name":"properties=","args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"visibility":"Public","body":"@properties = properties"}}]},{"html_id":"drivers/Place/AreaManagement","path":"Place/AreaManagement.html","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"areas:Hash(String,AreaConfig)-instance-method","name":"areas","doc":"area_id => area","summary":"

area_id => area

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L80"},"def":{"name":"areas","return_type":"Hash(String, AreaConfig)","visibility":"Public","body":"@areas"}},{"html_id":"building_id:String-instance-method","name":"building_id","doc":"PlaceOS client config","summary":"

PlaceOS client config

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L87"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.as(String))\nelse\n __temp_1\nend"}},{"html_id":"campus?:Bool-instance-method","name":"campus?","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L71"},"def":{"name":"campus?","return_type":"Bool","visibility":"Public","body":"@campus"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L160"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"is_inside?(x:Float64,y:Float64,area_id:String):Bool-instance-method","name":"is_inside?","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(x : Float64, y : Float64, area_id : String) : Bool","args_html":"(x : Float64, y : Float64, area_id : String) : Bool","location":{"filename":"src/place/area_management.cr","line_number":581,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L581"},"def":{"name":"is_inside?","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"area = @areas[area_id]\narea.polygon.contains(x, y)\n"}},{"html_id":"level_areas:Hash(String,Array(AreaConfig))-instance-method","name":"level_areas","doc":"zone_id => areas","summary":"

zone_id => areas

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L78"},"def":{"name":"level_areas","return_type":"Hash(String, Array(AreaConfig))","visibility":"Public","body":"@level_areas"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L74"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"@level_buildings"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L84"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"@level_details"}},{"html_id":"level_sensors:Hash(String,Hash(String,SensorMeta))-instance-method","name":"level_sensors","doc":"zone_id => sensors","summary":"

zone_id => sensors

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L76"},"def":{"name":"level_sensors","return_type":"Hash(String, Hash(String, SensorMeta))","visibility":"Public","body":"@level_sensors"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L105"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nspawn do\n update_scheduler\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L112"},"def":{"name":"on_unload","visibility":"Public","body":"@rate_limit.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@include_sensors = (setting?(Bool, :include_sensors)) || false\n@campus = (setting?(Bool, :is_campus)) || false\n@desk_id_mappings = (setting?(Array(String), :desk_id_mappings)) || ([] of String)\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@location_service = (setting?(String, :location_service)).presence || \"LocationServices\"\n@duplication_factor = (setting?(Float64, :duplication_factor)) || 0.8\n@sensor_discovery = Hash(String, Hash(String, SensorMeta)).new do |hash, key|\n hash[key] = {} of String => SensorMeta\nend\n@rounding_precision = (setting?(UInt32, :rounding_precision)) || 2_u32\nif building_areas = setting?(Hash(String, Array(AreaSetting)), :areas)\n @level_areas.clear\n building_areas.each do |zone_id, areas|\n @level_areas[zone_id] = areas.map do |area|\n config = AreaConfig.new(area[:id], area[:name], area[:coordinates], area[:building])\n @areas[config.id] = config\n config\n end\n end\nend\nschedule.clear\nschedule.every(@poll_rate) do\n synchronize_all_levels\nend\nif @include_sensors\n schedule.in(@poll_rate * 3) do\n schedule.every(2.hours + (rand(300)).seconds, immediate: true) do\n write_sensor_discovery\n end\n end\nend\nunits = (setting?(Hash(String, String), :units)) || ({} of String => String)\n@units = units.transform_keys do |key|\n SensorType.parse(key)\nend\n"}},{"html_id":"request_level_locations(level_id:String,sensor_data:Array(SensorDetail)|Nil=nil,overview:Bool=true):Nil-instance-method","name":"request_level_locations","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"args_string":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","args_html":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","location":{"filename":"src/place/area_management.cr","line_number":562,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L562"},"def":{"name":"request_level_locations","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@update_lock.synchronize do\n zone = Zone.from_json((staff_api.zone(level_id)).get.to_json)\n if !(zone.tags.includes?(\"level\"))\n logger.warn do\n \"attempted to update location for #{zone.name} (#{level_id}) which is not tagged as a level\"\n end\n return\n end\n metadata = Metadata.from_json((staff_api.metadata(level_id)).get.to_json)\n update_level_details(@level_details, zone, metadata)\n update_level_locations(@level_counts, level_id, @level_details[level_id], sensor_data)\n if overview\n update_overview\n end\nend"}},{"html_id":"request_sensor_data(level_id:String):Array(SensorDetail)-instance-method","name":"request_sensor_data","doc":"Queries all the sensors in a building and exposes the data","summary":"

Queries all the sensors in a building and exposes the data

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Array(SensorDetail)","args_html":"(level_id : String) : Array(SensorDetail)","location":{"filename":"src/place/area_management.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L206"},"def":{"name":"request_sensor_data","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Array(SensorDetail)","visibility":"Public","body":"level_sensors = @level_sensors[level_id]?\nsensors = location_service.sensors(zone_id: level_id).get.as_a\nif sensors.empty?\n return [] of SensorDetail\nend\ndetails = Array(SensorDetail).from_json(sensors.to_json)\nbuilding_id_local = level_buildings[level_id]? || building_id\nlocs = sensor_locations(level_id)\ndetails = details.select! do |sensor|\n id = sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac\n @sensor_discovery[building_id_local][id] = SensorMeta.new(sensor.name, sensor.type, sensor.level, sensor.x, sensor.y)\n sensor.module_id = sensor.binding = sensor.loc = nil\n if location = locs[id]?\n sensor.x = location.x\n sensor.y = location.y\n sensor.level = location.level\n sensor.building = building_id_local\n end\n if sensor.level.nil? && level_sensors\n if level_sensors[sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac]?\n sensor.level = level_id\n end\n end\n if sensor.x && sensor.level\n if ((curr_unit = sensor.unit) && (desired_unit = @units[sensor.type]?)) && (curr_unit != desired_unit)\n begin\n sensor.value = ((Units::Measurement.new(sensor.value, curr_unit)).convert_to(desired_unit)).to_f\n sensor.unit = desired_unit\n rescue error\n logger.warn(exception: error) do\n \"failed to convert #{sensor.value} #{curr_unit} => #{desired_unit}\"\n end\n end\n end\n sensor\n end\nend\nself[\"#{level_id}:sensors\"] = {value: details, ts_hint: \"complex\", ts_map: {x: \"xloc\", y: \"yloc\"}, ts_tag_keys: {\"s2_cell_id\"}, ts_tags: {pos_building: building_id_local, pos_level: level_id}}\ndetails\n"}},{"html_id":"sensor_discovery:Hash(String,Hash(String,Place::AreaManagement::SensorMeta))-instance-method","name":"sensor_discovery","doc":"Building => sensor_id => sensor meta","summary":"

Building => sensor_id => sensor meta

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L97"},"def":{"name":"sensor_discovery","visibility":"Public","body":"@sensor_discovery"}},{"html_id":"sensor_locations(level_id:String|Nil=nil)-instance-method","name":"sensor_locations","doc":"returns the sensor location data that has been configured","summary":"

returns the sensor location data that has been configured

","abstract":false,"args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil = nil)","args_html":"(level_id : String | Nil = nil)","location":{"filename":"src/place/area_management.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L197"},"def":{"name":"sensor_locations","args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if level_id\n @level_sensors[level_id]? || ({} of String => SensorMeta)\nelse\n @level_sensors.values.reduce({} of String => SensorMeta) do |acc, i|\n acc.merge!(i)\n end\nend"}},{"html_id":"synchronize_all_levels-instance-method","name":"synchronize_all_levels","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L651"},"def":{"name":"synchronize_all_levels","visibility":"Public","body":"@schedule_lock.synchronize do\n @update_all = true\nend"}},{"html_id":"update_available(level_ids:Array(String))-instance-method","name":"update_available","abstract":false,"args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"args_string":"(level_ids : Array(String))","args_html":"(level_ids : Array(String))","location":{"filename":"src/place/area_management.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L647"},"def":{"name":"update_available","args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@schedule_lock.synchronize do\n @update_levels.concat(level_ids)\nend"}},{"html_id":"write_sensor_discovery-instance-method","name":"write_sensor_discovery","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L190"},"def":{"name":"write_sensor_discovery","visibility":"Public","body":"sensor_discovery.each do |b_id, sensors|\n staff_api.write_metadata(b_id, \"sensor-discovered\", sensors)\nend"}}],"types":[{"html_id":"drivers/Place/AreaManagement/AreaSetting","path":"Place/AreaManagement/AreaSetting.html","kind":"alias","full_name":"Place::AreaManagement::AreaSetting","name":"AreaSetting","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: String, name: String, building: String | Nil, coordinates: Array(Tuple(Float64, Float64)))","aliased_html":"{id: String, name: String, building: String?, coordinates: Array({Float64, Float64})}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/ChildMetadata","path":"Place/AreaManagement/ChildMetadata.html","kind":"alias","full_name":"Place::AreaManagement::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L344"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/LevelCapacity","path":"Place/AreaManagement/LevelCapacity.html","kind":"alias","full_name":"Place::AreaManagement::LevelCapacity","name":"LevelCapacity","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String))","aliased_html":"{total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Metadata","path":"Place/AreaManagement/Metadata.html","kind":"alias","full_name":"Place::AreaManagement::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L343"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/RawLevelDetails","path":"Place/AreaManagement/RawLevelDetails.html","kind":"alias","full_name":"Place::AreaManagement::RawLevelDetails","name":"RawLevelDetails","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)), sensors: Hash(String, Float64))","aliased_html":"{wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: {total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}, sensors: Hash(String, Float64)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorDetail","path":"Place/AreaManagement/SensorDetail.html","kind":"alias","full_name":"Place::AreaManagement::SensorDetail","name":"SensorDetail","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::Detail","aliased_html":"PlaceOS::Driver::Interface::Sensor::Detail","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorMeta","path":"Place/AreaManagement/SensorMeta.html","kind":"struct","full_name":"Place::AreaManagement::SensorMeta","name":"SensorMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"},"constructors":[{"html_id":"new(name:Nil|String,type:PlaceOS::Driver::Interface::Sensor::SensorType|Nil,level:Nil|String,x:Float64|Nil,y:Float64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"args_string":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","args_html":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L180"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, type, level, x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_management.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L178"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level:String|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L185"},"def":{"name":"level","return_type":"String | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String|Nil)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"args_string":"(level : String | Nil)","args_html":"(level : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L185"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level = level"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L184"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L184"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:SensorType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L183"},"def":{"name":"type","return_type":"SensorType | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:SensorType|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"args_string":"(type : SensorType | Nil)","args_html":"(type : SensorType | Nil)","location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L183"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"x:Float64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L186"},"def":{"name":"x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64|Nil)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"args_string":"(x : Float64 | Nil)","args_html":"(x : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L186"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L187"},"def":{"name":"y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"args_string":"(y : Float64 | Nil)","args_html":"(y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L187"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Place/AreaManagement/SensorType","path":"Place/AreaManagement/SensorType.html","kind":"alias","full_name":"Place::AreaManagement::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Zone","path":"Place/AreaManagement/Zone.html","kind":"alias","full_name":"Place::AreaManagement::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_management.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}}]},{"html_id":"drivers/Place/AttendeeScanner","path":"Place/AttendeeScanner.html","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L27"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"externals_booked_to_visit-instance-method","name":"externals_booked_to_visit","doc":"Find the list of external guests expected in the building today","summary":"

Find the list of external guests expected in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L102"},"def":{"name":"externals_booked_to_visit","visibility":"Public","body":"building = building_id\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\n(staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {building}, type: \"visitor\")).get.as_a.map do |booking|\n Booking.new(booking[\"asset_id\"].as_s.downcase, Time.unix(booking[\"booking_start\"].as_i64), Time.unix(booking[\"booking_end\"].as_i64))\nend\n"}},{"html_id":"externals_in_events-instance-method","name":"externals_in_events","doc":"extract the list of externals invited to meetings in the building today","summary":"

extract the list of externals invited to meetings in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L62"},"def":{"name":"externals_in_events","visibility":"Public","body":"building = building_id\nexternals = [] of Guest\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nsystems.each do |level_id, system_ids|\n zones = {org_id, building, level_id}\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n events = begin\n (sys.get(\"Bookings\", 1)).status(Array(Event), :bookings)\n rescue\n [] of Event\n end\n events.each do |event|\n event_end = event.event_end || end_of_day\n if event_end <= now\n next\n end\n if event.event_start >= end_of_day\n break\n end\n externals.concat(event.attendees.reject do |attendee|\n internal_domains.find do |domain|\n attendee.email.downcase.ends_with?(domain)\n end\n end.map do |attendee|\n Guest.new(zones, system_id, attendee, event)\n end)\n end\n end\n end\nend\nexternals\n"}},{"html_id":"internal_domains:Array(String)-instance-method","name":"internal_domains","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L15"},"def":{"name":"internal_domains","return_type":"Array(String)","visibility":"Public","body":"@internal_domains"}},{"html_id":"invite_external_guests-instance-method","name":"invite_external_guests","doc":"invite missing guests","summary":"

invite missing guests

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L113"},"def":{"name":"invite_external_guests","visibility":"Public","body":"bookings = externals_booked_to_visit\nexternals = externals_in_events\nchecked = externals.size\nfailed = 0\nlogger.debug do\n \"found bookings #{bookings.size} and #{externals.size} externals\"\nend\nexternals.reject! do |guest|\n guest_email = guest.details.email.downcase\n bookings.find do |booking|\n booking.visitor_email == guest_email\n end\nend\nlogger.debug do\n \"found #{externals.size} guests without bookings\"\nend\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nexternals.each do |guest|\n begin\n event = guest.event\n host_email = (event.host.as(String)).downcase\n host = guest.event.attendees.find! do |attend|\n attend.email.downcase == host_email\n end\n guest_email = guest.details.email.downcase\n guest_name = guest.details.name\n sys_info = (staff_api.get_system(guest.system_id)).get\n staff_api.create_booking(booking_type: \"visitor\", asset_id: guest_email, user_id: host_email, user_email: host_email, user_name: host.name, zones: guest.zones, booking_start: event.event_start.to_unix, booking_end: event.event_end.try(&.to_unix) || end_of_day.to_unix, checked_in: false, approved: true, title: guest_name, description: event.title, time_zone: timezone.name, extension_data: {name: guest_name, parent_id: event.id, location_id: sys_info[\"name\"].as_s}, utm_source: \"attendee_scanner\", limit_override: 999, event_id: event.id, ical_uid: event.ical_uid, attendees: [{name: guest_name, email: guest_email}]).get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"failed to invite guest: #{guest.details.email}\"\n end\n end\nend\n{invited: externals.size - failed, checked: checked, failure: failed}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@internal_domains = (setting(Array(String), :internal_domains)).map!() do |__arg0|\n __arg0.strip.downcase\nend\n@building_id = nil\n@timezone = nil\n@systems = nil\n@org_id = nil\n"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L36"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_id).nil?\n @org_id = (begin\n building_details = (staff_api.zone(building_id)).get\n if tz = building_details[\"timezone\"].as_s?\n @timezone = Time::Location.load(tz)\n end\n building_details[\"parent_id\"].as_s\n end)\nelse\n __temp_1\nend"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L32"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/AttendeeScanner/Attendee","path":"Place/AttendeeScanner/Attendee.html","kind":"alias","full_name":"Place::AttendeeScanner::Attendee","name":"Attendee","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event::Attendee","aliased_html":"PlaceCalendar::Event::Attendee","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Booking","path":"Place/AttendeeScanner/Booking.html","kind":"struct","full_name":"Place::AttendeeScanner::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(visitor_email:String,booking_start:Time,booking_end:Time)-class-method","name":"new","abstract":false,"args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"args_string":"(visitor_email : String, booking_start : Time, booking_end : Time)","args_html":"(visitor_email : String, booking_start : Time, booking_end : Time)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"new","args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(visitor_email, booking_start, booking_end)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:Time-instance-method","name":"booking_end","abstract":false,"def":{"name":"booking_end","return_type":"Time","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:Time-instance-method","name":"booking_start","abstract":false,"def":{"name":"booking_start","return_type":"Time","visibility":"Public","body":"@booking_start"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@visitor_email.clone, @booking_start.clone, @booking_end.clone)"}},{"html_id":"copy_with(visitor_email_visitor_email=@visitor_email,booking_start_booking_start=@booking_start,booking_end_booking_end=@booking_end)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"args_string":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","args_html":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L97"},"def":{"name":"copy_with","args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"visibility":"Public","body":"self.class.new(_visitor_email, _booking_start, _booking_end)"}},{"html_id":"visitor_email:String-instance-method","name":"visitor_email","abstract":false,"def":{"name":"visitor_email","return_type":"String","visibility":"Public","body":"@visitor_email"}}]},{"html_id":"drivers/Place/AttendeeScanner/Event","path":"Place/AttendeeScanner/Event.html","kind":"alias","full_name":"Place::AttendeeScanner::Event","name":"Event","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event","aliased_html":"PlaceCalendar::Event","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Guest","path":"Place/AttendeeScanner/Guest.html","kind":"struct","full_name":"Place::AttendeeScanner::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(zones:Tuple(String,String,String),system_id:String,details:Attendee,event:Event)-class-method","name":"new","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"args_string":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","args_html":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"new","args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"visibility":"Public","body":"_ = allocate\n_.initialize(zones, system_id, details, event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@zones.clone, @system_id.clone, @details.clone, @event.clone)"}},{"html_id":"copy_with(zones_zones=@zones,system_id_system_id=@system_id,details_details=@details,event_event=@event)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"args_string":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","args_html":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/attendee_scanner.cr#L57"},"def":{"name":"copy_with","args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"visibility":"Public","body":"self.class.new(_zones, _system_id, _details, _event)"}},{"html_id":"details:Attendee-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"Attendee","visibility":"Public","body":"@details"}},{"html_id":"event:Event-instance-method","name":"event","abstract":false,"def":{"name":"event","return_type":"Event","visibility":"Public","body":"@event"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zones:Tuple(String,String,String)-instance-method","name":"zones","abstract":false,"def":{"name":"zones","return_type":"Tuple(String, String, String)","visibility":"Public","body":"@zones"}}]}]},{"html_id":"drivers/Place/AutoDeskCheckin","path":"Place/AutoDeskCheckin.html","kind":"class","full_name":"Place::AutoDeskCheckin","name":"AutoDeskCheckin","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_check_in-instance-method","name":"fetch_and_check_in","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L29"},"def":{"name":"fetch_and_check_in","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nbooking_ids = (staff_api.query_bookings(@booking_category, period_start, period_end, @zones, checked_in: false)).get.as_a.map do |booking|\n booking[\"id\"].as_i64\nend\nsuccess = 0\nfailed = [] of Int64\nbooking_ids.each do |id|\n begin\n (staff_api.booking_check_in(id, true, \"auto-checkin\")).get\n success = success + 1\n rescue error\n failed << id\n logger.debug(exception: error) do\n \"failed to check-in booking #{id}\"\n end\n end\nend\n\"checked-in #{success} bookings, failed #{failed.size}: #{failed}\"\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/auto_desk_checkin.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@zones = setting(Array(String), :check_in_zones)\n@time_period = (setting(Int32, :hours_before_booking_start)).hours\n@booking_category = setting(String, :booking_category)\nschedule.clear\nschedule.every(5.minutes) do\n fetch_and_check_in\nend\n"}}]},{"html_id":"drivers/Place/AutoRelease","path":"Place/AutoRelease.html","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:Zone-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L33"},"def":{"name":"building_zone","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (get_building_zone?.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L95"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"if (!@auto_release.resources.empty? && (@auto_release.time_before > 0 || @auto_release.time_after > 0)) && !building_zone.time_location?.nil?\n true\nelse\n logger.notice do\n \"auto release is not enabled on zone #{building_zone.id}\"\n end\n if @auto_release.resources.empty?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.resources being empty\"\n end\n end\n if @auto_release.time_before.zero? && @auto_release.time_after.zero?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.time_before and auto_release.time_after being 0\"\n end\n end\n if building_zone.time_location?.nil?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to building_zone.time_location being nil\"\n end\n end\n false\nend"}},{"html_id":"get_building_zone?:Zone|Nil-instance-method","name":"get_building_zone?","doc":"Finds the building zone for the current location services object","summary":"

Finds the building zone for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L84"},"def":{"name":"get_building_zone?","return_type":"Zone | ::Nil","visibility":"Public","body":"begin\n zones = Array(Zone).from_json(staff_api.zones(tags: \"building\").get.to_json)\n zone_ids = zones.map(&.id)\n zone_id = (zone_ids & system.zones).first\n zones.find do |zone|\n zone.id == zone_id\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone\"\n end\n nil\nend"}},{"html_id":"get_pending_bookings:Array(Booking)-instance-method","name":"get_pending_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L110"},"def":{"name":"get_pending_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n @auto_release.resources.each do |type|\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [building_zone.id]).get.to_json)\n results = results + bookings.select do |booking|\n !booking.checked_in\n end\n end\n logger.debug do\n \"found #{results.size} pending bookings\"\n end\n self[:pending_bookings] = results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of bookings\"\n end\n self[:pending_bookings] = [] of Booking\nend"}},{"html_id":"get_user_preferences?(user_id:String)-instance-method","name":"get_user_preferences?","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L132"},"def":{"name":"get_user_preferences?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"begin\n user = (staff_api.user(user_id)).get\n work_preferences = Array(WorktimePreference).from_json(user.as_h[\"work_preferences\"].to_json)\n work_overrides = Hash(String, WorktimePreference).from_json(user.as_h[\"work_overrides\"].to_json)\n {work_preferences: work_preferences, work_overrides: work_overrides}\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain user work location\"\n end\n nil\nend"}},{"html_id":"in_preference?(preference:WorktimePreference,event_time:Float64,locations:Array(String),match_locations:Bool=true):Bool-instance-method","name":"in_preference?","abstract":false,"args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"args_string":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","args_html":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L152"},"def":{"name":"in_preference?","args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"if match_locations\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && (locations.includes?(block.location))\n end\nelse\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && !(locations.includes?(block.location))\n end\nend"}},{"html_id":"in_preference_hours?(start_time:Float64,end_time:Float64,event_time:Float64):Bool-instance-method","name":"in_preference_hours?","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"args_string":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","args_html":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L144"},"def":{"name":"in_preference_hours?","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"return_type":"Bool","visibility":"Public","body":"if start_time < end_time\n start_time < event_time && end_time > event_time\nelse\n start_time < event_time || end_time > event_time\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = nil\n@email_schedule = (setting?(String, :email_schedule)).presence\n@email_template = (setting?(String, :email_template)) || \"auto_release\"\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\n@release_locations = (setting?(Array(String), :release_locations)) || [\"wfh\"]\n@auto_release = (setting?(AutoReleaseConfig, :auto_release)) || AutoReleaseConfig.new\nschedule.clear\nschedule.every(5.minutes) do\n pending_release\nend\nschedule.every(1.minute) do\n release_bookings\nend\nif emails = @email_schedule\n schedule.cron(emails, @timezone) do\n send_release_emails\n end\nend\n"}},{"html_id":"pending_release-instance-method","name":"pending_release","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L167"},"def":{"name":"pending_release","visibility":"Public","body":"results = [] of Booking\nif enabled?\nelse\n return results\nend\nbookings = get_pending_bookings\nbookings.each do |booking|\n if preferences = get_user_preferences?(booking.user_id)\n booking_start = (Time.unix(booking.booking_start)).in(building_zone.time_location!)\n day_of_week = booking_start.day_of_week.value\n if day_of_week == 7\n day_of_week = 0\n end\n event_time = booking_start.hour + (booking_start.minute / 60.0)\n overrides = preferences[:work_overrides].select do |_, pref|\n pref.blocks.size > 0\n end\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations))\n results << booking\n else\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations, false))\n else\n if (preference = preferences[:work_preferences].find do |pref|\n pref.day_of_week == day_of_week\n end) && (in_preference?(preference, event_time, @release_locations))\n results << booking\n end\n end\n end\n end\nend\nlogger.debug do\n \"found #{results.size} bookings pending release\"\nend\nself[:pending_release] = results\n"}},{"html_id":"release_bookings-instance-method","name":"release_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L214"},"def":{"name":"release_bookings","visibility":"Public","body":"begin\n released_booking_ids = [] of Int64\n if enabled?\n else\n return released_booking_ids\n end\n bookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\n previously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\n previously_released = previously_released - (previously_released - bookings.map(&.id))\n released_booking_ids = released_booking_ids + previously_released\n bookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if (Time.utc.to_unix - booking.booking_start) > (@auto_release.time_after * 60)\n if skip_release?(booking)\n next\n end\n logger.debug do\n \"rejecting booking #{booking.id} as it is within the time_after window\"\n end\n (staff_api.reject(booking.id)).get\n released_booking_ids << booking.id\n end\n end\n logger.debug do\n \"released #{released_booking_ids.size} bookings\"\n end\n self[:released_booking_ids] = released_booking_ids\nrescue error\n logger.warn(exception: error) do\n \"unable to release bookings\"\n end\n self[:released_booking_ids] = [] of Int64\nend"}},{"html_id":"send_release_emails-instance-method","name":"send_release_emails","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L280"},"def":{"name":"send_release_emails","visibility":"Public","body":"emailed_booking_ids = [] of Int64\nbookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\npreviously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\npreviously_emailed = self[:emailed_booking_ids]? ? Array(Int64).from_json(self[:emailed_booking_ids].to_json) : [] of Int64\npreviously_emailed = previously_emailed - (previously_emailed - bookings.map(&.id))\nemailed_booking_ids = emailed_booking_ids + previously_emailed\nbookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if previously_emailed.includes?(booking.id)\n next\n end\n if (enabled? && ((booking.booking_start - Time.utc.to_unix) < (@auto_release.time_before * 60))) && ((Time.utc.to_unix - booking.booking_start) < (@auto_release.time_after * 60))\n logger.debug do\n \"sending release email to #{booking.user_email} for booking #{booking.id} as it is withing the time_before window\"\n end\n timezone = booking.timezone.presence || @timezone.name\n location = Time::Location.load(timezone)\n starting = (Time.unix(booking.booking_start)).in(location)\n ending = (Time.unix(booking.booking_end)).in(location)\n args = {booking_id: booking.id, booking_start: booking.booking_start, booking_end: booking.booking_end, start_time: starting.to_s(@time_format), start_date: starting.to_s(@date_format), start_datetime: starting.to_s(@date_time_format), end_time: ending.to_s(@time_format), end_date: ending.to_s(@date_format), end_datetime: ending.to_s(@date_time_format), asset_id: booking.asset_id, user_id: booking.user_id, user_email: booking.user_email, user_name: booking.user_name, reason: booking.title, approver_name: booking.approver_name, approver_email: booking.approver_email, booked_by_name: booking.booked_by_name, booked_by_email: booking.booked_by_email}\n begin\n mailer.send_template(to: booking.user_email, template: {@email_template, \"auto_release\"}, args: args)\n emailed_booking_ids << booking.id\n rescue error\n logger.warn(exception: error) do\n \"failed to send release email to #{booking.user_email}\"\n end\n end\n end\nend\nself[:emailed_booking_ids] = emailed_booking_ids\n"}},{"html_id":"skip_release?(cached_booking:Booking):Bool-instance-method","name":"skip_release?","abstract":false,"args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"args_string":"(cached_booking : Booking) : Bool","args_html":"(cached_booking : Booking) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L205"},"def":{"name":"skip_release?","args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"return_type":"Bool","visibility":"Public","body":"if (booking_json_any = (staff_api.get_booking(cached_booking.id)).get) && (booking = Booking.from_json(booking_json_any.to_json))\n booking.checked_in || (booking.booking_start != cached_booking.booking_start)\nelse\n true\nend"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L248"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {@email_template, \"auto_release\"}, name: \"Auto release booking\", description: \"Notification when a booking is pending automatic release due to user's work location preferences\", fields: [{name: \"booking_id\", description: \"Unique identifier for the booking that may be released\"}, {name: \"booking_start\", description: \"Unix timestamp of when the booking begins\"}, {name: \"booking_end\", description: \"Unix timestamp of when the booking ends\"}, {name: \"start_time\", description: \"Formatted start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Formatted start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Formatted start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Formatted end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Formatted end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Formatted end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"asset_id\", description: \"Identifier of the booked resource\"}, {name: \"user_id\", description: \"Identifier of the person who has the booking\"}, {name: \"user_email\", description: \"Email address of the person who has the booking\"}, {name: \"user_name\", description: \"Full name of the person who has the booking\"}, {name: \"reason\", description: \"Title or purpose of the booking\"}, {name: \"approver_name\", description: \"Name of the person who approved the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}])]\n"}}],"types":[{"html_id":"drivers/Place/AutoRelease/AutoReleaseConfig","path":"Place/AutoRelease/AutoReleaseConfig.html","kind":"struct","full_name":"Place::AutoRelease::AutoReleaseConfig","name":"AutoReleaseConfig","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"time_before and time_after are in minutes","summary":"

time_before and time_after are in minutes

","constructors":[{"html_id":"new(time_before:Int64=0,time_after:Int64=0,resources:Array(String)=[]ofString)-class-method","name":"new","abstract":false,"args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"args_string":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","args_html":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"new","args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time_before, time_after, resources)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L348"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@time_before.clone, @time_after.clone, @resources.clone)"}},{"html_id":"copy_with(time_before_time_before=@time_before,time_after_time_after=@time_after,resources_resources=@resources)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"args_string":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","args_html":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L347"},"def":{"name":"copy_with","args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"visibility":"Public","body":"self.class.new(_time_before, _time_after, _resources)"}},{"html_id":"resources:Array(String)-instance-method","name":"resources","abstract":false,"def":{"name":"resources","return_type":"Array(String)","visibility":"Public","body":"@resources"}},{"html_id":"time_after:Int64-instance-method","name":"time_after","abstract":false,"def":{"name":"time_after","return_type":"Int64","visibility":"Public","body":"@time_after"}},{"html_id":"time_before:Int64-instance-method","name":"time_before","abstract":false,"def":{"name":"time_before","return_type":"Int64","visibility":"Public","body":"@time_before"}}]},{"html_id":"drivers/Place/AutoRelease/Booking","path":"Place/AutoRelease/Booking.html","kind":"struct","full_name":"Place::AutoRelease::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approved:Bool-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L391"},"def":{"name":"approved","return_type":"Bool","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"args_string":"(approved : Bool)","args_html":"(approved : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L391"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L394"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L394"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L393"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L393"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L395"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L395"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L378"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"asset_id=(asset_id:String)-instance-method","name":"asset_id=","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L378"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id","return_type":"String","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"args_string":"(booked_by_id : String)","args_html":"(booked_by_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L383"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L383"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L382"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L382"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L380"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L380"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L389"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L389"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L403"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L403"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L387"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L387"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L373"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L373"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L402"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L402"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L401"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L401"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L390"},"def":{"name":"rejected","return_type":"Bool","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"args_string":"(rejected : Bool)","args_html":"(rejected : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L390"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L385"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L385"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L386"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L386"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L376"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L376"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L375"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L375"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L377"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L377"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L379"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L379"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimeBlock","path":"Place/AutoRelease/WorktimeBlock.html","kind":"struct","full_name":"Place::AutoRelease::WorktimeBlock","name":"WorktimeBlock","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L354"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"start_time: Start time of work hours. e.g. `7.5` being 7:30AM\nend_time: End time of work hours. e.g. `18.5` being 6:30PM\nlocation: Name of the location the work is being performed at","summary":"

start_time: Start time of work hours.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L355"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_time:Float64-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L358"},"def":{"name":"end_time","return_type":"Float64","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Float64)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"args_string":"(end_time : Float64)","args_html":"(end_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L358"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L359"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L359"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"start_time:Float64-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L357"},"def":{"name":"start_time","return_type":"Float64","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Float64)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"args_string":"(start_time : Float64)","args_html":"(start_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L357"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimePreference","path":"Place/AutoRelease/WorktimePreference.html","kind":"struct","full_name":"Place::AutoRelease::WorktimePreference","name":"WorktimePreference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"day_of_week: Index of the day of the week. `0` being Sunday","summary":"

day_of_week: Index of the day of the week.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocks:Array(WorktimeBlock)-instance-method","name":"blocks","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L367"},"def":{"name":"blocks","return_type":"Array(WorktimeBlock)","visibility":"Public","body":"@blocks"}},{"html_id":"blocks=(blocks:Array(WorktimeBlock))-instance-method","name":"blocks=","abstract":false,"args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"args_string":"(blocks : Array(WorktimeBlock))","args_html":"(blocks : Array(WorktimeBlock))","location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L367"},"def":{"name":"blocks=","args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"visibility":"Public","body":"@blocks = blocks"}},{"html_id":"day_of_week:Int32-instance-method","name":"day_of_week","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week","return_type":"Int32","visibility":"Public","body":"@day_of_week"}},{"html_id":"day_of_week=(day_of_week:Int32)-instance-method","name":"day_of_week=","abstract":false,"args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"args_string":"(day_of_week : Int32)","args_html":"(day_of_week : Int32)","location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week=","args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"visibility":"Public","body":"@day_of_week = day_of_week"}}]},{"html_id":"drivers/Place/AutoRelease/Zone","path":"Place/AutoRelease/Zone.html","kind":"struct","full_name":"Place::AutoRelease::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L412"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L412"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L415"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L415"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L409"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L409"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L414"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L414"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L411"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L411"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L418"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L418"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Set(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L413"},"def":{"name":"tags","return_type":"Set(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Set(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"args_string":"(tags : Set(String))","args_html":"(tags : Set(String))","location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L413"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_location!:Time::Location-instance-method","name":"time_location!","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L429"},"def":{"name":"time_location!","return_type":"Time::Location","visibility":"Public","body":"time_location?.not_nil!"}},{"html_id":"time_location?:Time::Location|Nil-instance-method","name":"time_location?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L423"},"def":{"name":"time_location?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if tz = timezone.presence\n @time_location || (@time_location = Time::Location.load(tz))\nend"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L416"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release.cr#L416"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}}]}]},{"html_id":"drivers/Place/AutoReleaseLocker","path":"Place/AutoReleaseLocker.html","kind":"class","full_name":"Place::AutoReleaseLocker","name":"AutoReleaseLocker","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_bookings:Array(Booking)-instance-method","name":"get_bookings","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L47"},"def":{"name":"get_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: @booking_type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [get_building_id]).get.to_json)\n results = bookings.select do |booking|\n booking.checked_in\n end\n logger.debug do\n \"found #{results.size} #{@booking_type} bookings\"\n end\n results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of #{@booking_type} bookings\"\n end\n [] of Booking\nend"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L38"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@release_schedule = (setting?(String, :release_schedule)).presence\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@booking_type = (setting?(String, :booking_type)).presence || \"locker\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\nschedule.clear\nif release = @release_schedule\n schedule.cron(release, @timezone) do\n release_lockers\n end\nend\n"}},{"html_id":"release_lockers-instance-method","name":"release_lockers","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/auto_release_locker.cr#L65"},"def":{"name":"release_lockers","visibility":"Public","body":"bookings = get_bookings\nreleased = 0\nbookings.each do |booking|\n logger.debug do\n \"releasing booking #{booking.id} as it is within the time_after window\"\n end\n begin\n staff_api.update_booking(booking_id: booking.id, booking_end: Time.utc.to_unix, checked_in: false).get\n released = released + 1\n rescue error\n logger.warn(exception: error) do\n \"unable to release #{@booking_type} with booking id #{booking.id}\"\n end\n end\nend\n{total: bookings.size, released: released}\n"}}]},{"html_id":"drivers/Place/Booking","path":"Place/Booking.html","kind":"class","full_name":"Place::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:Int64,booking_type:String,booking_start:Int64,booking_end:Int64,user_id:String,user_email:String,user_name:String,zones:Array(String),booked_by_name:String,booked_by_email:String,action:Nil|String=nil,timezone:Nil|String=nil,asset_id:Nil|String=nil,resource_id:Nil|String=nil,checked_in:Bool|Nil=nil,rejected:Bool|Nil=nil,approved:Bool|Nil=nil,process_state:Nil|String=nil,last_changed:Int64|Nil=nil,approver_name:Nil|String=nil,approver_email:Nil|String=nil,title:Nil|String=nil,description:Nil|String=nil,asset_ids:Array(String)=[]ofString,created:Int64|Nil=nil,approver_id:Nil|String=nil,booked_by_id:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"args_string":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","args_html":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","location":{"filename":"src/place/booking_model.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L95"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, booking_type, booking_start, booking_end, user_id, user_email, user_name, zones, booked_by_name, booked_by_email, action, timezone, asset_id, resource_id, checked_in, rejected, approved, process_state, last_changed, approver_name, approver_email, title, description, asset_ids, created, approver_id, booked_by_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L7"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L7"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L31"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L31"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L38"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L38"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L36"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L36"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L37"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L37"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L20"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).as(String)"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L16"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"asset_ids:Array(String)-instance-method","name":"asset_ids","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids","return_type":"Array(String)","visibility":"Public","body":"@asset_ids"}},{"html_id":"asset_ids=(asset_ids:Array(String))-instance-method","name":"asset_ids=","abstract":false,"args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"args_string":"(asset_ids : Array(String))","args_html":"(asset_ids : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids=","args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@asset_ids = asset_ids"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String|Nil-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String|Nil)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"args_string":"(booked_by_id : String | Nil)","args_html":"(booked_by_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L12"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L12"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L11"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L11"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L10"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L10"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"changed-instance-method","name":"changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L55"},"def":{"name":"changed","visibility":"Public","body":"Time.unix(last_changed.not_nil!)"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L44"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @checked_in).nil?\n @checked_in = (false)\nelse\n __temp_1\nend"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L44"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L34"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L34"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L46"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L46"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"expand-instance-method","name":"expand","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L59"},"def":{"name":"expand","visibility":"Public","body":"if asset_ids.size < 2\n return {self}.each\nend\nasset_ids.map do |aid|\n Place::Booking.new(id: id, booking_type: booking_type, booking_start: booking_start, booking_end: booking_end, user_id: user_id, user_email: user_email, user_name: user_name, zones: zones, booked_by_name: booked_by_name, booked_by_email: booked_by_email, action: action, timezone: timezone, asset_id: aid, resource_id: resource_id, checked_in: checked_in, rejected: rejected, approved: approved, process_state: process_state, last_changed: last_changed, approver_name: approver_name, approver_email: approver_email, title: title, description: description, asset_ids: [aid], created: created, approver_id: approver_id, booked_by_id: booked_by_id)\nend\n"}},{"html_id":"extension_data:Hash(String,JSON::Any)-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L48"},"def":{"name":"extension_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @extension_data).nil?\n @extension_data = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"extension_data=(extension_data:Hash(String,JSON::Any))-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"args_string":"(extension_data : Hash(String, JSON::Any))","args_html":"(extension_data : Hash(String, JSON::Any))","location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L48"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L9"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L50"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L33"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L33"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L32"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L32"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L30"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L30"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L18"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L18"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L13"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L13"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L45"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L45"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L25"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L25"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L24"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L24"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L26"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L26"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L28"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_model.cr#L28"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/BookingApprovalWorkflows","path":"Place/BookingApprovalWorkflows.html","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":542,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L542"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_895|\n _event, entered = __temp_895\n expired > entered\nend\nexpired = 1.hour.ago.to_unix\n@group_email_notifications.reject! do |_, entered|\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n building_name = details[:name]\n approval_type = details[:approval]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, approval_type, building_name, building_key, support_email, attachments, months_from_now)\n end\nend\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L370"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @approval_lookup[zone_id]?\n if details\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details[:name], details[:approval], details[:support_email], attachments}\n end\nend\nnil\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L657"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (mailer.get_user_manager(staff_email)).get\n {(manager[\"email\"]? || manager[\"username\"]).as_s, manager[\"name\"].as_s}\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n {nil, nil}\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L59"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L94"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@remind_after = ((setting?(Int32, :remind_after)) || 24).hours\n@escalate_after = ((setting?(Int32, :escalate_after)) || 48).hours\n@notify_managers = (setting?(Bool, :notify_managers)) || false\n@approval_lookup = setting(Hash(String, SiteDetails), :approval_type)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\nschedule.clear\nschedule.every(5.minutes) do\n check_bookings\nend\nreminders = (setting?(Reminders, :reminders)) || {crons: [] of String, zones: {} of String => Array(String)}\nreminders[:crons].each do |cron|\n reminders[:zones].each do |timezone, zones|\n begin\n schedule.cron(cron, Time::Location.load(timezone)) do\n send_checkin_reminder(zones)\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to schedule reminder: #{zones} => #{timezone} : #{cron}\"\n end\n end\n end\nend\n"}},{"html_id":"send_checkin_reminder(zones:Array(String)|Nil=nil,timezone:String|Nil=nil)-instance-method","name":"send_checkin_reminder","abstract":false,"args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","args_html":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":713,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L713"},"def":{"name":"send_checkin_reminder","args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_now = Time.utc.in(timezone ? Time::Location.load(timezone) : @time_zone)\ntime_now = time_now.at_beginning_of_day + 12.hours\ntime_now = time_now.to_local_in(Time::Location::UTC)\nquery_start = time_now.to_unix\nquery_end = (time_now + 30.minutes).to_unix\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n if zones && !(zones.includes?(building_zone))\n next\n end\n building_name = details[:name]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_checkin_reminder(building_zone, building_name, building_key, support_email, attachments, query_start, query_end)\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L129"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"desk_id\", description: \"Identifier of the booked desk\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"support_email\", description: \"Contact email for booking support\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"group_booking_sent#{@template_suffix}\"}, name: \"Group booking sent#{@template_fields_suffix}\", description: \"Notification when a group booking has been created\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved_by#{@template_suffix}\"}, name: \"Booking approved by#{@template_fields_suffix}\", description: \"Notification when booking is approved by someone other than the requester\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved#{@template_suffix}\"}, name: \"Booking approved#{@template_fields_suffix}\", description: \"Notification when booking is approved\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"rejected#{@template_suffix}\"}, name: \"Booking rejected#{@template_fields_suffix}\", description: \"Notification when booking is rejected\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"checked_in#{@template_suffix}\"}, name: \"Booking checked in#{@template_fields_suffix}\", description: \"Notification when user checks in to their booking\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled_by#{@template_suffix}\"}, name: \"Booking cancelled by#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by someone other than the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_notify_cancelled#{@template_suffix}\"}, name: \"Booking cancelled manager notification#{@template_fields_suffix}\", description: \"Notification to manager when their team member's booking is cancelled\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_approval#{@template_suffix}\"}, name: \"Booking manager approval#{@template_fields_suffix}\", description: \"Request for manager to approve a booking#{@template_suffix}\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_contacted#{@template_suffix}\"}, name: \"Booking manager contacted#{@template_fields_suffix}\", description: \"Notification to user that their manager has been contacted for approval\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"notify_manager#{@template_suffix}\"}, name: \"Booking manager notification#{@template_fields_suffix}\", description: \"Notification to manager about their team member's booking\", fields: common_fields)]\n"}},{"html_id":"users_with_invalid_desk_bookings(building_zone:String,ending:Int64)-instance-method","name":"users_with_invalid_desk_bookings","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(building_zone : String, ending : Int64)","args_html":"(building_zone : String, ending : Int64)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":666,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L666"},"def":{"name":"users_with_invalid_desk_bookings","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"visibility":"Public","body":"meta_raw = (staff_api.metadata_children(building_zone, \"desks\")).get.as_a\nmetadata = {} of String => Hash(String, Array(String))\nmeta_raw.each do |zone|\n desks = {} of String => Array(String)\n zone_id = zone[\"zone\"][\"id\"].as_s\n zone[\"metadata\"][\"desks\"][\"details\"].as_a.each do |desk|\n desks[desk[\"id\"].as_s] = desk[\"groups\"].as_a.map() do |__arg11|\n __arg11.as_s.downcase\n end\n end\n metadata[zone_id] = desks\nend\nusers = [] of Tuple(String, String, String, Int64, Int64, String)\nbookings = staff_api.query_bookings(type: \"desk\", period_end: ending, zones: [building_zone], rejected: false).get.as_a\nbookings.each do |booking|\n user_email = booking[\"user_email\"].as_s\n level_id = (booking[\"zones\"].as_a.map(&.as_s).reject(building_zone)).first\n desk_id = booking[\"asset_id\"].as_s\n booking_id = booking[\"id\"].as_i64\n starting = booking[\"booking_start\"].as_i64\n if desks = metadata[level_id]?\n if groups = desks[desk_id]?\n if groups.empty?\n next\n end\n users_groups = (mailer.get_groups(user_email)).get.as_a.map do |g|\n g[\"name\"].as_s.downcase\n end\n overlap = users_groups & groups\n if overlap.empty?\n date_friendly = (Time.unix(starting)).to_s(@date_format)\n users << {user_email, desk_id, level_id, booking_id, starting, date_friendly}\n end\n end\n end\nend\nlogger.debug do\n \"Email,Desk ID,Zone,Booking id,Starting,Start date\\n#{users.map do |u|\n \"#{u[0]},#{u[1]},#{u[2]},#{u[3]},#{u[4]},#{u[5]}\"\n end.join(\"\\n\")}\"\nend\nnil\n"}}],"types":[{"html_id":"drivers/Place/BookingApprovalWorkflows/Reminders","path":"Place/BookingApprovalWorkflows/Reminders.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::Reminders","name":"Reminders","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(crons: Array(String), zones: Hash(String, Array(String)))","aliased_html":"{crons: Array(String), zones: Hash(String, Array(String))}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}},{"html_id":"drivers/Place/BookingApprovalWorkflows/SiteDetails","path":"Place/BookingApprovalWorkflows/SiteDetails.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::SiteDetails","name":"SiteDetails","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approval_workflows.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(approval: String, name: String, support_email: String, attachments: Hash(String, String) | Nil)","aliased_html":"{approval: String, name: String, support_email: String, attachments: Hash(String, String)?}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}}]},{"html_id":"drivers/Place/BookingApprover","path":"Place/BookingApprover.html","kind":"class","full_name":"Place::BookingApprover","name":"BookingApprover","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approver.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve_missed-instance-method","name":"approve_missed","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L78"},"def":{"name":"approve_missed","visibility":"Public","body":"booking_type = @approve_booking_types[0]? || \"desk\"\nbookings = Array(Booking).from_json(staff_api.query_bookings(type: booking_type, zones: [get_building_id], approved: false, period_end: 8.weeks.from_now.to_unix).get.to_json)\nbookings.each do |booking|\n booking.action = \"create\"\n approve_booking(booking)\nend\n\"found #{bookings.size} missed\"\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L37"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n approve_booking(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@approve_zones = (setting?(Array(String), :approve_zones)) || ([] of String)\n@approve_booking_types = (setting?(Array(String), :approve_booking_types)) || ([] of String)\nschedule.clear\nschedule.every(10.minutes) do\n approve_missed\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_approver.cr#L96"},"def":{"name":"status","visibility":"Public","body":"{bookings_approved: @bookings_approved}"}}]},{"html_id":"drivers/Place/BookingCheckInHelper","path":"Place/BookingCheckInHelper.html","kind":"class","full_name":"Place::BookingCheckInHelper","name":"BookingCheckInHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_check_in_helper.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"current_meeting:PlaceCalendar::Event|Nil-instance-method","name":"current_meeting","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L95"},"def":{"name":"current_meeting","return_type":"PlaceCalendar::Event | ::Nil","visibility":"Public","body":"@current_meeting"}},{"html_id":"ignore_long_meeting?:Bool-instance-method","name":"ignore_long_meeting?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L145"},"def":{"name":"ignore_long_meeting?","return_type":"Bool","visibility":"Public","body":"meeting = current_meeting\nif meeting\nelse\n return false\nend\nevent_end = meeting.event_end\nif event_end\nelse\n return true\nend\nignore_length = @ignore_longer_than\nif ignore_length\nelse\n return false\nend\nmeeting_length = event_end - meeting.event_start\nmeeting_length >= ignore_length\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L15"},"def":{"name":"mailer","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\n(sys.implementing(Interface::Mailer))[0]\n"}},{"html_id":"meeting_pending?:Bool-instance-method","name":"meeting_pending?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L93"},"def":{"name":"meeting_pending?","return_type":"Bool","visibility":"Public","body":"@meeting_pending"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L108"},"def":{"name":"on_update","visibility":"Public","body":"@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n@decline_message = setting?(String, :decline_message)\n@mailer_system = setting?(String, :mailer_system)\n@ignore_longer_than = (setting?(Int32, :ignore_longer_than)).try(&.minutes)\n@prompt_after = ((setting?(Int32, :prompt_after)) || 10).minutes\n@present_from = ((setting?(Int32, :present_from)) || 5).minutes\n@auto_cancel = (setting?(Bool, :auto_cancel)) || false\n@check_in_url = (setting?(String, :check_in_url)) || \"\"\n@no_show_url = (setting?(String, :no_show_url)) || \"\"\nif @check_in_url.presence\n @domain = (URI.parse(@check_in_url)).host.not_nil!\nend\nsubscriptions.clear\nbookings.subscribe(:current_booking) do |_sub, pending|\n event = ::Union(PlaceCalendar::Event, ::Nil).from_json(pending)\n update_current(event)\nend\nbookings.subscribe(:current_pending) do |_sub, pending|\n update_pending(pending == \"true\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nmonitor(\"#{config.control_system.not_nil!.id}/guest/bookings/prompted\") do |_sub, response|\n checkin_or_end_meeting(**NamedTuple(id: String, check_in: Bool).from_json(response))\nend\ntimezone = (setting?(String, :time_zone)) || config.control_system.not_nil!.timezone.presence\nif timezone\n @timezone = Time::Location.load(timezone)\nend\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L94"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"staff_api-instance-method","name":"staff_api","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L21"},"def":{"name":"staff_api","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\nsys[:StaffAPI_1]\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_check_in_helper.cr#L257"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {\"bookings\", \"check_in_prompt\"}, name: \"Check in prompt\", description: \"Email template for prompting meeting hosts to check in or cancel their booking\", fields: [{name: \"jwt\", description: \"Authentication token for secure responses\"}, {name: \"host_email\", description: \"Email address of the meeting organizer\"}, {name: \"host_name\", description: \"Full name of the meeting organizer\"}, {name: \"event_id\", description: \"Unique identifier for the calendar event\"}, {name: \"system_id\", description: \"Unique identifier for the room/space\"}, {name: \"meeting_room_name\", description: \"Display name of the meeting room\"}, {name: \"meeting_summary\", description: \"Title or subject of the meeting\"}, {name: \"meeting_datetime\", description: \"Formatted date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"meeting_time\", description: \"Formatted time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"meeting_date\", description: \"Formatted date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"check_in_url\", description: \"URL for confirming attendance\"}, {name: \"no_show_url\", description: \"URL for cancelling the booking\"}])]\n"}}]},{"html_id":"drivers/Place/BookingNotifier","path":"Place/BookingNotifier.html","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"calendar-instance-method","name":"calendar","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L64"},"def":{"name":"calendar","visibility":"Public","body":"system[:Calendar]"}},{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_notifier.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L365"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_902|\n _event, entered = __temp_902\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @notify_lookup.each do |building_zone, details|\n building_name = details.name\n email = details.email\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, building_name, building_key, email, details.notify_booking_owner, details.notify_manager, attachments, months_from_now)\n end\nend\n"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":508,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L508"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_notifier.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L313"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @notify_lookup[zone_id]?\n if details\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details, attachments}\n end\nend\n{nil, nil, nil}\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_notifier.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L489"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (calendar.get_user_manager(staff_email)).get\n (manager[\"email\"]? || manager[\"username\"]).as_s\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n nil\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L60"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L68"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L113"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\n@notify_lookup = setting(Hash(String, SiteDetails), :notify)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\n@poll_bookings = setting(Bool, :poll_bookings)\n@poll_every_minutes = setting(Int32, :poll_every_minutes)\nschedule.clear\nif @poll_bookings\n schedule.every(@poll_every_minutes.minutes) do\n check_bookings\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L136"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"asset_id\", description: \"Identifier of the booked asset (e.g., desk)\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}, {name: \"network_username\", description: \"Network access username (if configured)\"}, {name: \"network_password\", description: \"Generated network access password (if configured)\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"booked_by_notify#{@template_suffix}\"}, name: \"Booking booked by notification#{@template_fields_suffix}\", description: \"Notification when someone books on behalf of another person\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"booking_notify#{@template_suffix}\"}, name: \"Booking booked notification#{@template_fields_suffix}\", description: \"Notification when a booking is created for yourself\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when a booking is cancelled\", fields: common_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L497"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/BookingNotifier/SiteDetails","path":"Place/BookingNotifier/SiteDetails.html","kind":"class","full_name":"Place::BookingNotifier::SiteDetails","name":"SiteDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/BookingNotifier","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_notifier.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L96"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Hash(String,String)-instance-method","name":"attachments","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L100"},"def":{"name":"attachments","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @attachments).nil?\n @attachments = ({} of String => String)\nelse\n __temp_1\nend"}},{"html_id":"email:Array(String)-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L99"},"def":{"name":"email","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @email).nil?\n @email = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"include_network_credentials:Bool|Nil-instance-method","name":"include_network_credentials","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L103"},"def":{"name":"include_network_credentials","return_type":"Bool | ::Nil","visibility":"Public","body":"@include_network_credentials"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L98"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"network_group_ids:Array(String)-instance-method","name":"network_group_ids","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L110"},"def":{"name":"network_group_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @network_group_ids).nil?\n @network_group_ids = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"network_password_exclude:String|Nil-instance-method","name":"network_password_exclude","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L105"},"def":{"name":"network_password_exclude","return_type":"String | ::Nil","visibility":"Public","body":"@network_password_exclude"}},{"html_id":"network_password_length:Int32|Nil-instance-method","name":"network_password_length","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L104"},"def":{"name":"network_password_length","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_length"}},{"html_id":"network_password_minimum_lowercase:Int32|Nil-instance-method","name":"network_password_minimum_lowercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L106"},"def":{"name":"network_password_minimum_lowercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_lowercase"}},{"html_id":"network_password_minimum_numbers:Int32|Nil-instance-method","name":"network_password_minimum_numbers","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L108"},"def":{"name":"network_password_minimum_numbers","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_numbers"}},{"html_id":"network_password_minimum_symbols:Int32|Nil-instance-method","name":"network_password_minimum_symbols","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L109"},"def":{"name":"network_password_minimum_symbols","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_symbols"}},{"html_id":"network_password_minimum_uppercase:Int32|Nil-instance-method","name":"network_password_minimum_uppercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L107"},"def":{"name":"network_password_minimum_uppercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_uppercase"}},{"html_id":"notify_booking_owner:Bool|Nil-instance-method","name":"notify_booking_owner","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L102"},"def":{"name":"notify_booking_owner","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_booking_owner"}},{"html_id":"notify_manager:Bool|Nil-instance-method","name":"notify_manager","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/booking_notifier.cr#L101"},"def":{"name":"notify_manager","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_manager"}}]}]},{"html_id":"drivers/Place/Bookings","path":"Place/Bookings.html","kind":"class","full_name":"Place::Bookings","name":"Bookings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"book_now(period_in_seconds:Int64,title:String|Nil=nil,owner:String|Nil=nil)-instance-method","name":"book_now","abstract":false,"args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"args_string":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","args_html":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L233"},"def":{"name":"book_now","args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"visibility":"Public","body":"title || (title = @default_title)\nstarting = Time.utc.to_unix\nending = starting + period_in_seconds\nif @next_pending || (status?(Bool, \"in_use\"))\n raise(\"the room is currently in use\")\nend\nif next_booking = upcoming\n if next_booking.event_start.to_unix < ending\n raise(\"unable to book due to clash\")\n end\nend\nlogger.debug do\n \"booking event #{title}, from #{starting}, to #{ending}, in #{@time_zone.name}, on #{@calendar_id}\"\nend\nroom_email = system.email.not_nil!\nif @application_permissions\n host_calendar = @calendar_id\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, true)]\n if owner && !owner.empty?\n attendees << (::PlaceCalendar::Event::Attendee.new(owner, owner))\n end\nelse\n host_calendar = owner.presence || @calendar_id\n room_is_organizer = host_calendar == room_email\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, room_is_organizer)]\nend\nevent = calendar.create_event(title: title, event_start: starting, event_end: ending, description: \"\", attendees: attendees, location: status?(String, \"room_name\"), timezone: @time_zone.name, calendar_id: host_calendar)\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(2.seconds) do\n poll_events\n end\nend\ncheck_in_actual(starting, check_bookings: false)\nevent\n"}},{"html_id":"calendar_id:String-instance-method","name":"calendar_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L60"},"def":{"name":"calendar_id","return_type":"String","visibility":"Public","body":"@calendar_id"}},{"html_id":"calendar_ids:Array(String)-instance-method","name":"calendar_ids","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L61"},"def":{"name":"calendar_ids","return_type":"Array(String)","visibility":"Public","body":"@calendar_ids"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/bookings.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L510"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nsys_email = @calendar_id.downcase\nif (sys_email == mac_address.downcase) && (host = current.try(&.host))\n {location: \"meeting\", assigned_to: host, mac_address: sys_email}\nend\n"}},{"html_id":"checkin:Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L193"},"def":{"name":"checkin","return_type":"Nil","visibility":"Public","body":"if booking = pending || current\n check_in_actual(booking.event_start.to_unix)\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L522"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\n[] of Nil\n"}},{"html_id":"end_meeting(meeting_start_time:Int64,notify:Bool=true,comment:String=\"cancelledatbookingpanel\"):Nil-instance-method","name":"end_meeting","doc":"End either the current meeting early, or the pending meeting","summary":"

End either the current meeting early, or the pending meeting

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"args_string":"(meeting_start_time : Int64, notify : Bool = true, comment : String = \"cancelled at booking panel\") : Nil","args_html":"(meeting_start_time : Int64, notify : Bool = true, comment : String = "cancelled at booking panel") : Nil","location":{"filename":"src/place/bookings.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L208"},"def":{"name":"end_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"cmeeting = current\nresult = if cmeeting && (cmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"deleting event #{cmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, cmeeting.id, notify: notify, comment: comment)\nelse\n nmeeting = upcoming\n if nmeeting && (nmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"declining event #{nmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, nmeeting.id, notify: notify, comment: comment)\n else\n raise(\"only the current or pending meeting can be cancelled\")\n end\nend\nresult.get\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(1.seconds) do\n poll_events\n end\nend\n"}},{"html_id":"is_stale?(timestamp:Int64|Nil):Bool-instance-method","name":"is_stale?","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"args_string":"(timestamp : Int64 | Nil) : Bool","args_html":"(timestamp : Int64 | Nil) : Bool","location":{"filename":"src/place/bookings.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L634"},"def":{"name":"is_stale?","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"if timestamp.nil?\n return self[:sensor_stale] = false\nend\nsensor_time = Time.unix(timestamp)\nstale_time = @sensor_stale_minutes.ago\nif sensor_time > stale_time\n self[:sensor_stale] = false\nelse\n @perform_sensor_search = true\n self[:sensor_stale] = true\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:UInt32|Nil=20_u32)-instance-method","name":"list_users","doc":"Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)","summary":"

Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","args_html":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","location":{"filename":"src/place/bookings.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L229"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"calendar.list_users(query, limit)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L481"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nemail = email.to_s.downcase\nusername = username.to_s.downcase\nmatching_events = [] of ::PlaceCalendar::Event\nif event = current\n emails = event.attendees.map() do |__arg4|\n __arg4.email.downcase\n end\n if host = event.host\n emails << host.downcase\n end\n if (emails.includes?(email)) || (emails.includes?(username))\n logger.debug do\n \"found user {#{email}, #{username}} in list of attendees\"\n end\n matching_events << event\n else\n if !username.empty? && emails.find(&.starts_with?(username))\n logger.debug do\n \"found email starting with username '#{username}' in list of attendees\"\n end\n matching_events << event\n end\n end\nend\nto_location_format(matching_events)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/bookings.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L506"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(locate_user(email, username)).map(&.[](:mac))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L84"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@calendar_id = ((setting?(String, :calendar_id)).presence || system.email.not_nil!).downcase\nids = ((setting?(Array(String), :calendar_ids)) || ([] of String)).map!(&.downcase)\nids.unshift(@calendar_id)\n@calendar_ids = ids.uniq!\n@perform_sensor_search = true\nschedule.in((Random.rand(30)).seconds + (Random.rand(30000)).milliseconds) do\n poll_events\nend\ncache_polling_period = ((setting?(UInt32, :cache_polling_period)) || 2_u32).minutes.total_milliseconds.to_i\ncache_polling_period = cache_polling_period + (Random.rand(5000))\ncache_random_period = cache_polling_period // 3\nschedule.every(cache_polling_period.milliseconds) do\n schedule.in((Random.rand(cache_random_period)).milliseconds) do\n poll_events\n end\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@default_title = (setting?(String, :book_now_default_title)).presence || \"Ad Hoc booking\"\nbook_now = setting?(Bool, :disable_book_now)\nnot_bookable = (setting?(Bool, :not_bookable)) || false\nself[:bookable] = bookable = not_bookable ? false : system.bookable\n@disable_book_now = book_now.nil? ? !bookable : !!book_now\n@disable_end_meeting = !!(setting?(Bool, :disable_end_meeting))\n@disable_book_now_host = (setting?(Bool, :disable_book_now_host)) || false\n@max_user_search_results = (setting?(UInt32, :max_user_search_results)) || 20_u32\npending_period = (setting?(UInt32, :pending_period)) || 5_u32\n@pending_period = pending_period.minutes\npending_before = (setting?(UInt32, :pending_before)) || 5_u32\n@pending_before = pending_before.minutes\ncache_days = (setting?(UInt32, :cache_days)) || 30_u32\n@cache_days = cache_days.days\n@change_event_sync_delay = (setting?(UInt32, :change_event_sync_delay)) || 5_u32\nlast_started = (setting?(Int64, :last_booking_started)) || 0_i64\n@last_booking_started = last_started > 30.minutes.from_now.to_unix ? 0_i64 : last_started\n@include_cancelled_bookings = (setting?(Bool, :include_cancelled_bookings)) || false\n@application_permissions = (setting?(Bool, :application_permissions)) || false\n@sensor_stale_minutes = ((setting?(Int32, :sensor_stale_minutes)) || 8).minutes\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nschedule.cron(\"* * * * *\") do\n schedule.in((rand(1000)).milliseconds) do\n if list = self[:bookings]?\n check_current_booking(list.as_a)\n end\n end\nend\npush_notificaitons_configure\ncontrol_sys = config.control_system.not_nil!\nself[:room_name] = ((setting?(String, :room_name)).presence || control_sys.display_name.presence) || control_sys.name\nself[:room_capacity] = (setting?(Int32, :room_capacity)) || control_sys.capacity\nself[:default_title] = @default_title\nself[:disable_book_now_host] = @disable_book_now_host\nself[:disable_book_now] = @disable_book_now\nself[:disable_end_meeting] = @disable_end_meeting\nself[:pending_period] = pending_period\nself[:pending_before] = pending_before\nself[:control_ui] = setting?(String, :control_ui)\nself[:catering_ui] = setting?(String, :catering_ui)\nself[:room_image] = (setting?(String, :room_image)) || control_sys.images.try(&.first?)\nself[:hide_meeting_details] = (setting?(Bool, :hide_meeting_details)) || false\nself[:hide_meeting_title] = (setting?(Bool, :hide_meeting_title)) || false\nself[:offline_color] = setting?(String, :offline_color)\nself[:offline_image] = setting?(String, :offline_image)\nself[:custom_qr_color] = setting?(String, :custom_qr_color)\nself[:custom_qr_url] = (setting?(String, :custom_qr_url)).try(&.gsub(\"{system_id}\", control_sys.id))\nhide_qr_code = (setting?(Bool, :hide_qr_code)) || false\nshow_qr_code = setting?(Bool, :show_qr_code)\nself[:show_qr_code] = show_qr_code.nil? ? !hide_qr_code : show_qr_code\nself[:sensor_mac] = @sensor_mac = setting?(String, :sensor_mac)\nself[:min_duration] = (setting?(Int32, :min_duration)) || 15\nself[:max_duration] = (setting?(Int32, :max_duration)) || 480\nself[:enable_end_meeting_button] = (setting?(Bool, :enable_end_meeting_button)) || false\n"}},{"html_id":"people_count?:Float64|Nil-instance-method","name":"people_count?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L527"},"def":{"name":"people_count?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n drivers = system.implementing(Interface::Sensor)\n count_data = (drivers.sensors(\"people_count\", @sensor_mac)).get.flat_map(&.as_a).first?\n if count_data\n else\n return nil\n end\n if is_stale?(count_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = count_data[\"value\"]\n (data.as_f? || data.as_i).to_f\nrescue error\n logger.warn(exception: error) do\n \"error checking people count\"\n end\n nil\nend"}},{"html_id":"people_present?:Float64|Nil-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L541"},"def":{"name":"people_present?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n count = people_count?\n if count\n return count > 0.0 ? 1.0 : 0.0\n end\n drivers = system.implementing(Interface::Sensor)\n presence_data = (drivers.sensors(\"presence\", @sensor_mac)).get.flat_map(&.as_a).first?\n if presence_data\n else\n return nil\n end\n if is_stale?(presence_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = presence_data[\"value\"]\n (data.as_f? || data.as_i).to_f > 0.0 ? 1.0 : 0.0\nrescue error\n logger.warn(exception: error) do\n \"error checking people presence\"\n end\n nil\nend"}},{"html_id":"poll_events:Nil-instance-method","name":"poll_events","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L281"},"def":{"name":"poll_events","return_type":"Nil","visibility":"Public","body":"begin\n if @polling\n return\n end\n @polling = true\n if @perform_sensor_search\n check_for_sensors\n end\n now = Time.local(@time_zone)\n start_of_day = now.at_beginning_of_day.to_unix\n cache_period = start_of_day + @cache_days.to_i\n events = @calendar_ids.flat_map do |cal_id|\n logger.debug do\n \"polling events #{cal_id}, from #{start_of_day}, to #{cache_period}, in #{@time_zone.name}\"\n end\n (calendar.list_events(cal_id, start_of_day, cache_period, @time_zone.name, include_cancelled: @include_cancelled_bookings)).get.as_a\n end.sort do |a, b|\n a[\"event_start\"].as_i64 <=> b[\"event_start\"].as_i64\n end\n self[:bookings] = events\n check_current_booking(events)\n events\nensure\n @polling = false\nend"}},{"html_id":"start_meeting(meeting_start_time:Int64):Nil-instance-method","name":"start_meeting","doc":"we no longer accept user specified values","summary":"

we no longer accept user specified values

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"args_string":"(meeting_start_time : Int64) : Nil","args_html":"(meeting_start_time : Int64) : Nil","location":{"filename":"src/place/bookings.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L188"},"def":{"name":"start_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"return_type":"Nil","visibility":"Public","body":"logger.warn do\n \"deprecated function call to start_meeting, please use checkin\"\nend\ncheckin\n"}},{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":740,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L740"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess","path":"Place/Bookings/GrantAreaAccess.html","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"allocations:Hash(String,Array(String))-instance-method","name":"allocations","doc":"user_id => Array(special access)","summary":"

user_id => Array(special access)

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L29"},"def":{"name":"allocations","return_type":"Hash(String, Array(String))","visibility":"Public","body":"@allocations"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"cached_user_lookups:Hash(String,String|Int64)-instance-method","name":"cached_user_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L30"},"def":{"name":"cached_user_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_user_lookups"}},{"html_id":"cached_zone_lookups:Hash(String,String|Int64)-instance-method","name":"cached_zone_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L31"},"def":{"name":"cached_zone_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_zone_lookups"}},{"html_id":"desks(level_id:String):Hash(String,String)-instance-method","name":"desks","doc":"returns desk_id => security zone name / id","summary":"

returns desk_id => security zone name / id

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Hash(String, String)","args_html":"(level_id : String) : Hash(String, String)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L119"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"desks = (staff_api.metadata(level_id, \"desks\")).get.dig?(\"desks\", \"details\")\nsecurity = {} of String => String\nif desks\nelse\n return security\nend\n(Array(Desk).from_json(desks.to_json)).each do |desk|\n sec = desk.security.presence\n if sec\n else\n next\n end\n security[desk.id] = sec\nend\nsecurity\n"}},{"html_id":"ensure_booking_access-instance-method","name":"ensure_booking_access","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L132"},"def":{"name":"ensure_booking_access","visibility":"Public","body":"@mutex.synchronize do\n now = Time.local(timezone)\n end_of_day = now.at_end_of_day\n access_required = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n levels.each do |level_id|\n desks = desks(level_id)\n if desks.empty?\n next\n end\n desk_bookings = (staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {level_id}, type: \"desk\")).get.as_a\n if desk_bookings.empty?\n next\n end\n desk_bookings.each do |booking|\n desk = booking[\"asset_id\"].as_s\n if security = desks[desk]?\n access_required[booking[\"user_email\"].as_s.downcase] << security\n end\n end\n end\n allocations = @allocations\n if allocations == access_required\n return\n end\n remove = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n add = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n all_keys = allocations.keys.concat(access_required.keys)\n all_keys.each do |key|\n current = allocations[key]? || ([] of String)\n desired = access_required[key]? || ([] of String)\n to_remove = current - desired\n to_add = desired - current\n if to_remove.empty?\n else\n remove[key] = to_remove\n end\n if to_add.empty?\n else\n add[key] = to_add\n end\n end\n security = security_system\n remove.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_remove_member(zone_id, user_id)).get\n rescue error\n access_required[user_email] << zone\n logger.warn(exception: error) do\n \"failed to remove #{user_email} from security zone: #{zone}\"\n end\n end\n end\n rescue error\n access_required[user_email] = allocations[user_email]\n add.delete(user_email)\n logger.warn(exception: error) do\n \"failed to remove #{user_email} from security zones\"\n end\n end\n end\n add.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_add_member(zone_id, user_id)).get\n rescue error\n access_required[user_email].delete(zone)\n logger.warn(exception: error) do\n \"failed to add #{user_email} to security zone: #{zone}\"\n end\n end\n end\n rescue error\n access_required.delete(user_email)\n logger.warn(exception: error) do\n \"failed to add #{user_email} to security zones\"\n end\n end\n end\n define_setting(:permissions_allocated, access_required)\nend"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L53"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"systems.keys"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n check_access(Booking.from_json(payload))\nend\nschedule.every(30.minutes) do\n ensure_booking_access\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@timezone = nil\n@systems = nil\n@mutex.synchronize do\n @allocations = (setting?(Hash(String, Array(String)), :permissions_allocated)) || Hash(String, Array(String)).new\nend\n"}},{"html_id":"security_system-instance-method","name":"security_system","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L13"},"def":{"name":"security_system","visibility":"Public","body":"(system.implementing(Interface::ZoneAccessSecurity)).first"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L49"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg0|\n __arg0.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}},{"html_id":"user_id?(email:String):String|Int64|Nil-instance-method","name":"user_id?","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L78"},"def":{"name":"user_id?","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_user_id(security, email.downcase)\n"}},{"html_id":"zone_id?(name_or_id:String):String|Int64|Nil-instance-method","name":"zone_id?","abstract":false,"args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"args_string":"(name_or_id : String) : String | Int64 | Nil","args_html":"(name_or_id : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L92"},"def":{"name":"zone_id?","args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_zone_id(security, name_or_id)\n"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess/Desk","path":"Place/Bookings/GrantAreaAccess/Desk.html","kind":"struct","full_name":"Place::Bookings::GrantAreaAccess::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings/GrantAreaAccess","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L74"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"security:String|Nil-instance-method","name":"security","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/grant_area_access.cr#L75"},"def":{"name":"security","return_type":"String | ::Nil","visibility":"Public","body":"@security"}}]}]},{"html_id":"drivers/Place/Bookings/NotifyEvent","path":"Place/Bookings/NotifyEvent.html","kind":"struct","full_name":"Place::Bookings::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L667"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings.cr","line_number":668,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L668"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L674"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":670,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L670"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L677"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":671,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L671"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L672"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":673,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L673"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/Bookings/NotifyType","path":"Place/Bookings/NotifyType.html","kind":"enum","full_name":"Place::Bookings::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L655"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L657"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L659"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L663"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":664,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L664"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":662,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L662"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L658"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/Bookings/ServiceName","path":"Place/Bookings/ServiceName.html","kind":"enum","full_name":"Place::Bookings::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L650"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L651"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings.cr#L652"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/Calendar","path":"Place/Calendar.html","kind":"class","full_name":"Place::Calendar","name":"Calendar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/CalendarCommon","path":"Place/CalendarCommon.html","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon","abstract":false,"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"locations":[{"filename":"src/place/calendar_common.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"including_types":[{"html_id":"drivers/Microsoft/GraphAPI","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI"},{"html_id":"drivers/Place/Calendar","kind":"class","full_name":"Place::Calendar","name":"Calendar"},{"html_id":"drivers/Place/WorkspaceAPI","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L330"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"accepting event #{event_id} on #{calendar_id}\"\nend\nclient(&.accept_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"access_token(user_id:String|Nil=nil)-instance-method","name":"access_token","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String | Nil = nil)","args_html":"(user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L161"},"def":{"name":"access_token","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.info do\n \"access token requested #{user_id}\"\nend\nclient(&.access_token(user_id))\n"}},{"html_id":"calendar_service_name-instance-method","name":"calendar_service_name","doc":"returns: google or office365","summary":"

returns: google or office365

","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L396"},"def":{"name":"calendar_service_name","visibility":"Public","body":"@client.not_nil!.client_id"}},{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]of::PlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L339"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = ::PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nclient(&.create_event(user_id, event, calendar_id))\n"}},{"html_id":"create_notifier(resource:String,notification_url:String,expiration_time:Int64,client_secret:String|Nil=nil,lifecycle_notification_url:String|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"create_notifier","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"args_string":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","args_html":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L401"},"def":{"name":"create_notifier","args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(expiration_time)\nclient(&.create_notifier(resource, notification_url, expires, client_secret, lifecycle_notification_url: lifecycle_notification_url))\n"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L312"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"declining event #{event_id} on #{calendar_id}\"\nend\nclient(&.decline_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L321"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nclient(&.delete_event(user_id, event_id, calendar_id: calendar_id, notify: notify))\n"}},{"html_id":"delete_notifier(subscription:PlaceCalendar::Subscription):Nil-instance-method","name":"delete_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"args_string":"(subscription : PlaceCalendar::Subscription) : Nil","args_html":"(subscription : PlaceCalendar::Subscription) : Nil","location":{"filename":"src/place/calendar_common.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L420"},"def":{"name":"delete_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"return_type":"Nil","visibility":"Public","body":"client(&.delete_notifier(subscription))"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/calendar_common.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L119"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/calendar_common.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L115"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"get_event(calendar_id:String,event_id:String,user_id:String|Nil=nil)-instance-method","name":"get_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L305"},"def":{"name":"get_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"fetching event #{event_id} on #{calendar_id}\"\nend\nuser_id = (user_id || @service_account.presence) || calendar_id\nclient(&.get_event(user_id, id: event_id, calendar_id: calendar_id))\n"}},{"html_id":"get_group(group_id:String)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L258"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n office_client = (_client.calendar.as(PlaceCalendar::Office365)).client\n if group_id.includes?('@')\n group = office_client.list_groups(filter: \"mail eq '#{group_id}'\").value.first?\n if group\n return group.to_place_group\n end\n end\n (office_client.get_group(group_id)).to_place_group\n end\nend\n"}},{"html_id":"get_groups(user_id:String)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L167"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nclient(&.get_groups(user_id))\n"}},{"html_id":"get_members(group_id:String,next_page:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(group_id : String, next_page : String | Nil = nil)","args_html":"(group_id : String, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L177"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nif group_id.includes?('@')\n client do |_client|\n if _client.client_id == (:office365)\n logger.warn do\n \"inefficient group members request. Recommended obtaining group.id versus using email\"\n end\n end\n end\nend\nmembers = client(&.get_members(group_id, next_link: next_page))\nif member = members.first?\n member.next_page = member.next_link\nend\nmembers\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L220"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nclient(&.get_user_by_email(user_id))\n"}},{"html_id":"get_user_manager(user_id:String)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L233"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.get_user_manager(user_id)).to_place_calendar\n end\nend\n"}},{"html_id":"in_flight_size-instance-method","name":"in_flight_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L111"},"def":{"name":"in_flight_size","visibility":"Public","body":"@flight_size"}},{"html_id":"list_calendars(user_id:String)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L226"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nclient(&.list_calendars(user_id))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,ical_uid:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L273"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"location = time_zone ? Time::Location.load(time_zone) : Time::Location.local\nperiod_start = (Time.unix(period_start)).in(location)\nperiod_end = (Time.unix(period_end)).in(location)\nuser_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"listing events for #{calendar_id}\"\nend\n_client = @client.not_nil!\nevents = if _client.client_id == (:google)\n (_client.calendar.as(PlaceCalendar::Google)).list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid, quotaUser: calendar_id[0..39])\nelse\n _client.list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid)\nend\nif ical_uid\n events = events.select do |e|\n e.ical_uid == ical_uid\n end\nend\nevents\n"}},{"html_id":"list_groups(query:String|Nil=nil,filter:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, filter : String | Nil = nil)","args_html":"(query : String | Nil = nil, filter : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L244"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{filter || query}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.list_groups(query, filter: filter)).value.map(&.to_place_group)\n end\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,filter:String|Nil=nil,next_page:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L203"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query || filter}, limit #{limit} (next: #{!!next_page})\"\nend\nusers = client(&.list_users(query, limit, filter: filter, next_link: next_page))\nif user = users.first?\n user.next_page = user.next_link\nend\nusers\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L40"},"def":{"name":"on_unload","visibility":"Public","body":"@in_flight.close\n@channel.close\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"if proxy_config = setting?(NamedTuple(host: String, port: Int32, auth: NamedTuple(username: String, password: String) | ::Nil), :proxy)\n ConnectProxy.proxy_uri = \"http://#{proxy_config[:host]}:#{proxy_config[:port]}\"\n if proxy_auth = proxy_config[:auth]\n ConnectProxy.username = proxy_auth[:username]\n ConnectProxy.password = proxy_auth[:password]\n end\nend\nConnectProxy.verify_tls = !!(setting?(Bool, :proxy_verify_tls))\nConnectProxy.disable_crl_checks = !!(setting?(Bool, :proxy_disable_crl))\n@service_account = (setting?(String, :calendar_service_account)).presence\n@rate_limit = (setting?(Int32, :rate_limit)) || 10\n@wait_time = 1.second / @rate_limit\n@mailer_from = (setting?(String, :mailer_from)).presence || @service_account\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n@in_flight.close\n@channel.close\n@client = begin\n config = setting(GoogleParams, :calendar_config)\n cli = ::PlaceCalendar::Client.new(**config)\n @channel = Channel(Nil).new(9)\n @in_flight = Channel(Nil).new(10)\n spawn do\n rate_limiter\n end\n cli\nrescue\n config = setting(OfficeParams, :calendar_config)\n ::PlaceCalendar::Client.new(**config)\nend\n"}},{"html_id":"queue_size-instance-method","name":"queue_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L107"},"def":{"name":"queue_size","visibility":"Public","body":"@queue_size"}},{"html_id":"reauthorize_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"reauthorize_notifier","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L414"},"def":{"name":"reauthorize_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = new_expiration_time ? Time.unix(new_expiration_time) : nil\nclient(&.reauthorize_notifier(subscription, expires))\n"}},{"html_id":"renew_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64):PlaceCalendar::Subscription-instance-method","name":"renew_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L407"},"def":{"name":"renew_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(new_expiration_time)\nclient(&.renew_notifier(subscription, expires))\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L124"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"sender = case from\nin String\n from\nin Array(String)\n from.first? || @mailer_from.not_nil!\nin Nil\n @mailer_from.not_nil!\nend\nlogger.debug do\n \"an email was sent from: #{sender}, to: #{to}\"\nend\nclient do |__arg0|\n __arg0.calendar.send_mail(sender, to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc)\nend\n"}},{"html_id":"update_event(event:PlaceCalendar::Event,user_id:String|Nil=nil,calendar_id:String|Nil=nil)-instance-method","name":"update_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"args_string":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","args_html":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L386"},"def":{"name":"update_event","args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"updating event #{event.id} on #{event.host}\"\nend\nclient(&.update_event(user_id: user_id, event: event, calendar_id: calendar_id))\n"}}],"types":[{"html_id":"drivers/Place/CalendarCommon/GoogleParams","path":"Place/CalendarCommon/GoogleParams.html","kind":"alias","full_name":"Place::CalendarCommon::GoogleParams","name":"GoogleParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String)","aliased_html":"{scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}},{"html_id":"drivers/Place/CalendarCommon/OfficeParams","path":"Place/CalendarCommon/OfficeParams.html","kind":"alias","full_name":"Place::CalendarCommon::OfficeParams","name":"OfficeParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_common.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String, conference_type: String | Nil)","aliased_html":"{tenant: String, client_id: String, client_secret: String, conference_type: String?}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}}]},{"html_id":"drivers/Place/CalendarDelegated","path":"Place/CalendarDelegated.html","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]ofPlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L207"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nprocess((client(act_as_user)).post(\"/api/staff/v1/events\", body: event.to_json, headers: act_as(act_as_user)))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L174"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nif notify\n begin\n process((client(act_as_user)).post(\"/api/staff/v1/events/#{event_id}/decline\", params: params, headers: act_as(act_as_user)))\n rescue\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\n end\nelse\n params[\"notify\"] = \"false\"\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\nend\n"}},{"html_id":"get_group(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L125"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_groups(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L78"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/groups\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_members(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L84"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}/members\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L97"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user_manager(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L110"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/manager\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_calendars(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L103"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/calendars\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L145"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing events for #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nparams[\"period_start\"] = period_start.to_s\nparams[\"period_end\"] = period_end.to_s\nif include_cancelled\n params[\"include_cancelled\"] = \"true\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/events\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_groups(query:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L117"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{query}, note: graphAPI only\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L90"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query}\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/people\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L53"},"def":{"name":"on_update","visibility":"Public","body":"rate_limit = (setting?(Float64, :rate_limit)) || 3.0\n@limiter = RateLimiter.new(rate: rate_limit, max_burst: rate_limit.to_i)\n@api_key = api_key = setting(String, :api_key)\ntransport.before_request do |request|\n if request.headers[\"Authorization\"]?\n else\n request.headers[\"X-API-Key\"] = api_key\n end\nend\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n"}}],"types":[{"html_id":"drivers/Place/CalendarDelegated/User","path":"Place/CalendarDelegated/User.html","kind":"struct","full_name":"Place::CalendarDelegated::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L251"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/CalendarDelegated","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/calendar_delegated.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L252"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L255"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L256"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/calendar_delegated.cr#L254"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Chat","path":"Place/Chat.html","kind":"module","full_name":"Place::Chat","name":"Chat","abstract":false,"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L4"},{"filename":"src/place/chat/health_rooms_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Chat/ConferenceDetails","path":"Place/Chat/ConferenceDetails.html","kind":"struct","full_name":"Place::Chat::ConferenceDetails","name":"ConferenceDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(place_id:String,space_id:String,host_pin:String,guest_pin:String)-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"args_string":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","args_html":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L16"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, space_id, host_pin, guest_pin)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L14"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"guest_pin:String-instance-method","name":"guest_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L11"},"def":{"name":"guest_pin","return_type":"String","visibility":"Public","body":"@guest_pin"}},{"html_id":"host_pin:String-instance-method","name":"host_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L10"},"def":{"name":"host_pin","return_type":"String","visibility":"Public","body":"@host_pin"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L8"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L9"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}}]},{"html_id":"drivers/Place/Chat/HealthRooms","path":"Place/Chat/HealthRooms.html","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EXAMPLE_SMS_TEMPLATE","name":"EXAMPLE_SMS_TEMPLATE","value":"\"patient %{patient_name} is waiting in %{room_name} for an appointment at %{appointment_time}\""}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"guest_mark_as_contacted(rtc_user_id:String,session_id:String,contacted:Bool=true):Bool-instance-method","name":"guest_mark_as_contacted","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"args_string":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","args_html":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L808"},"def":{"name":"guest_mark_as_contacted","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"found = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n if participant = meeting.participants[rtc_user_id]?\n found = true\n participant.contacted = contacted\n end\n end\nend\nlogger.debug do\n \"[meet] marking guest #{rtc_user_id} as contacted: #{contacted} in session #{session_id}\"\nend\nif found\n update_meeting_state(session_id)\nend\nfound\n"}},{"html_id":"guest_move_session(rtc_user_id:String,session_id:String,new_session_id:String):Bool-instance-method","name":"guest_move_session","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","args_html":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":823,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L823"},"def":{"name":"guest_move_session","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"system_id = nil\nnew_meeting = nil\nif @recent_lock.synchronize do\n @recently_disconnected[rtc_user_id]?\nend\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as disconnected\"\n end\n raise(\"can't move disconnected users, please wait for reconnection or kick\")\nend\n@meeting_mutex.synchronize do\n if (meeting = @meetings[session_id]?) && (new_meeting = @meetings[new_session_id]?)\n if participant = meeting.remove(rtc_user_id)\n system_id = meeting.system_id\n new_meeting.add(participant)\n if meeting.empty?\n @meetings.delete(session_id)\n @room_mutex.synchronize do\n @rooms[system_id].try(&.delete(session_id))\n end\n end\n end\n end\nend\nif system_id && new_meeting\n logger.debug do\n \"[meet] moving user #{rtc_user_id} into #{new_session_id} from #{session_id}\"\n end\n update_meeting_state(session_id, system_id)\n update_meeting_state(new_session_id)\n conference = new_meeting.conference\n staff_api.transfer_user(rtc_user_id, new_session_id, {space_id: conference.space_id, guest_pin: conference.guest_pin})\nelse\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as could not find session\"\n end\nend\n!!system_id\n"}},{"html_id":"meeting_end(session_id:String)-instance-method","name":"meeting_end","doc":"removes the meeting from the list and kicks anyone left in the meeting","summary":"

removes the meeting from the list and kicks anyone left in the meeting

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L778"},"def":{"name":"meeting_end","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nsystem_id = nil\nmeeting = nil\nlogger.debug do\n \"[meet] ending meeting #{session_id} ended by #{placeos_user_id}\"\nend\n@meeting_mutex.synchronize do\n meeting = @meetings.delete(session_id)\n if meeting\n else\n raise(\"meeting not found\")\n end\n system_id = meeting.system_id\n @room_mutex.synchronize do\n if sessions = @rooms[system_id]?\n sessions.delete(session_id)\n if sessions.empty?\n @rooms.delete(system_id)\n end\n end\n end\nend\nmeeting.not_nil!.participants.keys.each do |rtc_user_id|\n staff_api.kick_user(rtc_user_id, session_id, \"meeting ended\")\nend\nupdate_meeting_state(session_id, system_id.as(String))\n"}},{"html_id":"meeting_join(rtc_user_id:String,session_id:String,type:String|Nil=nil,system_id:String|Nil=nil,text_chat_only:Bool|Nil=nil):ConferenceDetails-instance-method","name":"meeting_join","doc":"this is how staff members create a meeting room\nor join an existing meeting","summary":"

this is how staff members create a meeting room or join an existing meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","args_html":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","location":{"filename":"src/place/chat/health_rooms.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L653"},"def":{"name":"meeting_join","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"return_type":"ConferenceDetails","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nuser_details = (staff_api.user(placeos_user_id)).get\nuser_name = user_details[\"name\"].as_s\nparticipant = Participant.new(user_id: rtc_user_id, name: user_name, email: user_details[\"email\"].as_s, type: type, staff_user_id: placeos_user_id, text_chat_only: text_chat_only)\n@recent_lock.synchronize do\n @recently_disconnected.delete(rtc_user_id)\nend\nmeeting = nil\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n system_id = meeting.system_id\n end\nend\nif system_id\nelse\n raise(\"must provide a system id if there is not an existing session\")\nend\nsystem_id = system_id.as(String)\ntimezone = meeting.try(&.timezone) || (timezone_system(system_id))\nlogger.debug do\n if meeting\n \"[meet] joining existing meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n else\n \"[meet] creating new meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n end\nend\nif meeting\nelse\n conference = pool_checkout_conference\nend\n@meeting_mutex.synchronize do\n meeting = if meet = @meetings[session_id]?\n system_id = meet.system_id\n meet.add(participant)\n meet\n else\n conference = conference || pool_checkout_conference\n meet = Meeting.new(system_id.as(String), session_id, conference, participant)\n meet.timezone = timezone\n meet\n end\n @meetings[session_id] = meeting\n conference = meeting.conference\n @room_mutex.synchronize do\n sessions = @rooms[system_id]? || ([] of SessionId)\n if sessions.includes?(session_id)\n else\n sessions << session_id\n end\n @rooms[system_id] = sessions\n end\nend\nupdate_meeting_state(session_id, system_id.as(String))\nconference.as(ConferenceDetails)\n"}},{"html_id":"meeting_kick(rtc_user_id:String,session_id:String)-instance-method","name":"meeting_kick","doc":"kicks an individual from a meeting","summary":"

kicks an individual from a meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String)","args_html":"(rtc_user_id : String, session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":766,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L766"},"def":{"name":"meeting_kick","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.warn do\n \"[meet] kicking user #{rtc_user_id} from session #{session_id}, kicked by: #{placeos_user_id}\"\nend\nstaff_api.kick_user(rtc_user_id, session_id, \"kicked by host\")\nuser_exited(rtc_user_id)\n"}},{"html_id":"meeting_leave(rtc_user_id:String,session_id:String):Nil-instance-method","name":"meeting_leave","doc":"the user is planning of leaving the meeting or has left","summary":"

the user is planning of leaving the meeting or has left

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String) : Nil","args_html":"(rtc_user_id : String, session_id : String) : Nil","location":{"filename":"src/place/chat/health_rooms.cr","line_number":758,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L758"},"def":{"name":"meeting_leave","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.debug do\n \"[meet] user leaving #{rtc_user_id} (#{placeos_user_id}) session #{session_id}\"\nend\nmeeting_remove_user(rtc_user_id, session_id, placeos_user_id)\n"}},{"html_id":"meeting_move_room(session_id:String,system_id:String):Bool-instance-method","name":"meeting_move_room","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(session_id : String, system_id : String) : Bool","args_html":"(session_id : String, system_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L615"},"def":{"name":"meeting_move_room","args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"old_system_id = nil\nmoved = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n old_system_id = meeting.system_id\n meeting.system_id = system_id\n moved = true\n @room_mutex.synchronize do\n if room_sessions = @rooms[old_system_id]?\n room_sessions.delete(session_id)\n if room_sessions.empty?\n @rooms.delete(old_system_id)\n self[old_system_id] = nil\n end\n sessions = @rooms[system_id]? || ([] of SessionId)\n sessions << session_id\n @rooms[system_id] = sessions\n end\n end\n end\nend\nlogger.debug do\n \"[meet] moving session: #{session_id} to system #{system_id} from #{old_system_id}\"\nend\nif moved\n update_meeting_state(session_id, system_id, old_system_id)\nend\nmoved\n"}},{"html_id":"meeting_state_request_save-instance-method","name":"meeting_state_request_save","doc":"use this to trigger a save","summary":"

use this to trigger a save

","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L88"},"def":{"name":"meeting_state_request_save","visibility":"Public","body":"@save_requested.send(nil)"}},{"html_id":"notify_config(system_id:String,timezone:String)-instance-method","name":"notify_config","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(system_id : String, timezone : String)","args_html":"(system_id : String, timezone : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":491,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L491"},"def":{"name":"notify_config","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"timezone = Time::Location.load(timezone)\nraw_settings = (staff_api.metadata(system_id, \"settings\")).get[\"settings\"]?.try(&.to_json)\nsettings = raw_settings ? RoomSettings.from_json(raw_settings, root: \"details\") : RoomSettings.new\ndefault_notifications = settings.notifications\nroom_users = settings.members.compact_map do |member|\n if member.available?\n else\n next\n end\n begin\n user_data = (staff_api.user(member.id)).get.as_h\n member.name = (user_data[\"nickname\"]? || user_data[\"name\"]).as_s\n member.email = user_data[\"email\"].as_s\n member.phone = user_data[\"phone\"]?.try(&.as_s)\n notify_settings = if user_settings = (staff_api.metadata(member.id, \"settings\")).get[\"settings\"]?.try(&.[]?(\"details\")).try(&.to_json)\n begin\n NotificationSettings.from_json(user_settings, root: \"notifications\")\n rescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse user #{member.id} notification settings\"\n end\n default_notifications\n end\n else\n default_notifications\n end\n if notify_settings.enabled?\n else\n next\n end\n member.notifications = notify_settings\n member\n rescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain user #{member.id} metadata\"\n end\n nil\n end\nend\nsettings.members = room_users\nsettings.timezone = timezone\nsettings\n"}},{"html_id":"notify_inspect_meeting(session_id:String)-instance-method","name":"notify_inspect_meeting","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L481"},"def":{"name":"notify_inspect_meeting","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"meeting = @meeting_mutex.synchronize do\n @meetings[session_id]?.try(&.dup)\nend\nif meeting\nelse\n raise(\"meeting #{session_id} not found\")\nend\nsystem_info, room_settings = notify_load_notifications(meeting)\nmembers = room_settings.try do |__arg8|\n __arg8.members.map do |member|\n {member: member, notifications: member.notifications}\n end\nend\n{settings: room_settings, members: members}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L25"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n meeting_state_perform_save\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@update_mutex.synchronize do\n if @update_expected > 0\n @update_expected = @update_expected - 1\n logger.debug do\n \"[admin] updating settings...\"\n end\n return\n end\nend\nlogger.debug do\n \"[admin] updating settings...\"\nend\nis_spec = (setting?(Bool, :is_spec)) || false\ndomain = setting(String, :domain_id)\n@sms_source = setting?(String, :sms_source)\n@sms_template = (setting?(String, :sms_template)) || EXAMPLE_SMS_TEMPLATE\n@notify_no_time = (setting?(String, :notify_no_time)) || \"no time specified\"\n@pool_target_size = (setting?(Int32, :pool_size)) || 10\nsystem_id = config.control_system.not_nil!.id\n@disconnect_timeout = ((setting?(Int32, :disconnect_timeout)) || 3).minutes\n@timezone_default = nil\nschedule.clear\nschedule.every(@disconnect_timeout / 3) do\n cleanup_disconnected\nend\nschedule.every(5.minutes) do\n pool_cleanup\nend\nif is_spec\nelse\n schedule.in(1.second) do\n pool_cleanup\n end\nend\nmonitoring = \"#{domain}/chat/#{system_id}/guest/entry\"\nself[:monitoring] = monitoring\nsubscriptions.clear\nmeeting_state_restore\nmonitor(monitoring) do |_subscription, payload|\n new_guest(payload)\nend\nmonitor(\"#{domain}/chat/user/joined\") do |_subscription, payload|\n user_joined(payload)\nend\nmonitor(\"#{domain}/chat/user/exited\") do |_subscription, payload|\n logger.debug do\n \"[signal] user exited: #{payload}\"\n end\n user_id = (NamedTuple(user_id: String).from_json(payload))[:user_id]\n user_exited(user_id)\nend\nmonitor(\"#{domain}/chat/user/left\") do |_subscription, payload|\n user_left(payload)\nend\nlogger.debug do\n \"[admin] settings update success!\"\nend\n"}},{"html_id":"pool_checkout_conference:ConferenceDetails-instance-method","name":"pool_checkout_conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":939,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L939"},"def":{"name":"pool_checkout_conference","return_type":"ConferenceDetails","visibility":"Public","body":"meeting = @pool_lock.synchronize do\n if @pool_meet.size > 0\n @pool_size = @pool_size - 1\n @pool_meet.shift\n end\nend\nlogger.debug do\n \"[pool] Checking out meeting, available in pool? #{!meeting.nil?}\"\nend\nspawn do\n pool_ensure_size\nend\nmeeting || new_conference\n"}},{"html_id":"pool_clear_conferences:Nil-instance-method","name":"pool_clear_conferences","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L953"},"def":{"name":"pool_clear_conferences","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"[pool] Clearing #{@pool_size} meetings from pool\"\nend\n@pool_lock.synchronize do\n @pool_size = 0\n @pool_meet = [] of ConferenceDetails\nend\npool_ensure_size\n"}},{"html_id":"pool_ensure_size:Nil-instance-method","name":"pool_ensure_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":909,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L909"},"def":{"name":"pool_ensure_size","return_type":"Nil","visibility":"Public","body":"required = 0\n@pool_lock.synchronize do\n required = @pool_target_size - @pool_size\n @pool_size = @pool_target_size\nend\nlogger.debug do\n \"[pool] Maintaining meeting pool size, #{required} new meetings required\"\nend\nif required <= 0\n return\nend\ncreated = 0\nbegin\n required.times do\n meeting = new_conference\n @pool_lock.synchronize do\n @pool_meet << meeting\n end\n created = created + 1\n end\nrescue error\n logger.error(exception: error) do\n \"[pool] error creating pool meetings\"\n end\n if created != required\n diff = required - created\n @pool_lock.synchronize do\n @pool_size = @pool_size - diff\n end\n end\nend\n"}},{"html_id":"pool_size:Int32-instance-method","name":"pool_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L872"},"def":{"name":"pool_size","return_type":"Int32","visibility":"Public","body":"@pool_size"}},{"html_id":"pool_target_size:Int32-instance-method","name":"pool_target_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":873,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L873"},"def":{"name":"pool_target_size","return_type":"Int32","visibility":"Public","body":"@pool_target_size"}},{"html_id":"sessions_with_user(user_id:String):Array(String)-instance-method","name":"sessions_with_user","doc":"finds all the session_ids that includes the specified user_id","summary":"

finds all the session_ids that includes the specified user_id

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(String)","args_html":"(user_id : String) : Array(String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L399"},"def":{"name":"sessions_with_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"sessions = [] of String\n@meeting_mutex.synchronize do\n @meetings.each do |session_id, meeting|\n if meeting.participants.has_key?(user_id)\n sessions << session_id\n end\n end\nend\nsessions\n"}},{"html_id":"timezone_default:String-instance-method","name":"timezone_default","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L471"},"def":{"name":"timezone_default","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone_default).nil?\n @timezone_default = (system.timezone.presence || \"UTC\")\nelse\n __temp_1\nend"}},{"html_id":"timezone_system(system_id:String)-instance-method","name":"timezone_system","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":473,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L473"},"def":{"name":"timezone_system","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"begin\n (staff_api.get_system(system_id)).get[\"timezone\"]?.try() do |__arg6|\n __arg6.as_s.presence\n end || timezone_default\nrescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain timezone information for #{system_id}\"\n end\n timezone_default\nend"}}],"types":[{"html_id":"drivers/Place/Chat/HealthRooms/SessionId","path":"Place/Chat/HealthRooms/SessionId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SessionId","name":"SessionId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":602,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L602"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"session id == the webrtc session id","summary":"

session id == the webrtc session id

"},{"html_id":"drivers/Place/Chat/HealthRooms/SystemId","path":"Place/Chat/HealthRooms/SystemId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SystemId","name":"SystemId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms.cr#L605"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"system id == room","summary":"

system id == room

"}]},{"html_id":"drivers/Place/Chat/Meeting","path":"Place/Chat/Meeting.html","kind":"class","full_name":"Place::Chat::Meeting","name":"Meeting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(system_id:String,session_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L139"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, session_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(system_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L128"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"add(participant:Participant):Participant-instance-method","name":"add","abstract":false,"args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(participant : Participant) : Participant","args_html":"(participant : Participant) : Participant","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L147"},"def":{"name":"add","args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"return_type":"Participant","visibility":"Public","body":"@participants[participant.user_id] = participant\n@participants[@created_by_user_id]?.try(&.contacted = true)\n@updated_at = Time.utc\nparticipant\n"}},{"html_id":"conference:ConferenceDetails-instance-method","name":"conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference","return_type":"ConferenceDetails","visibility":"Public","body":"@conference"}},{"html_id":"conference=(conference:ConferenceDetails)-instance-method","name":"conference=","abstract":false,"args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"args_string":"(conference : ConferenceDetails)","args_html":"(conference : ConferenceDetails)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference=","args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"visibility":"Public","body":"@conference = conference"}},{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L84"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"created_by_participant-instance-method","name":"created_by_participant","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L161"},"def":{"name":"created_by_participant","visibility":"Public","body":"@participants[created_by_user_id]"}},{"html_id":"created_by_user_id:String-instance-method","name":"created_by_user_id","doc":"webrtc_user_id that created the meeting","summary":"

webrtc_user_id that created the meeting

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L81"},"def":{"name":"created_by_user_id","return_type":"String","visibility":"Public","body":"@created_by_user_id"}},{"html_id":"creator_contacted?-instance-method","name":"creator_contacted?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L165"},"def":{"name":"creator_contacted?","visibility":"Public","body":"@participants[created_by_user_id]?.try(&.contacted)"}},{"html_id":"empty?:Bool-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L181"},"def":{"name":"empty?","return_type":"Bool","visibility":"Public","body":"@participants.empty?"}},{"html_id":"has_participant?(webrtc_user_id:String):Participant|Nil-instance-method","name":"has_participant?","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L169"},"def":{"name":"has_participant?","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"@participants[webrtc_user_id]?"}},{"html_id":"mark_participant_connected(webrtc_user_id:String,state:Bool):String|Nil-instance-method","name":"mark_participant_connected","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(webrtc_user_id : String, state : Bool) : String | Nil","args_html":"(webrtc_user_id : String, state : Bool) : String | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L173"},"def":{"name":"mark_participant_connected","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"return_type":"String | ::Nil","visibility":"Public","body":"if participant = has_participant?(webrtc_user_id)\n old_state = participant.connected\n participant.connected = state\n if old_state == state\n else\n return system_id\n end\nend"}},{"html_id":"notify_members_on_entry:Array(RoomMember)-instance-method","name":"notify_members_on_entry","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L110"},"def":{"name":"notify_members_on_entry","return_type":"Array(RoomMember)","visibility":"Public","body":"settings = room_settings\nif settings\nelse\n return [] of RoomMember\nend\npatient = participants[created_by_user_id]\nclinician_selected = patient.chat_to_user_id.presence\ncontact = filter_members(clinician_selected)\nif contact.empty? && clinician_selected\n contact = filter_members(nil)\nend\nif contact.empty?\n contact = settings.members\nend\ncontact\n"}},{"html_id":"participants:Hash(String,Participant)-instance-method","name":"participants","doc":"webrtc_user_id => participant","summary":"

webrtc_user_id => participant

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L75"},"def":{"name":"participants","return_type":"Hash(String, Participant)","visibility":"Public","body":"@participants"}},{"html_id":"remove(webrtc_user_id:String):Participant|Nil-instance-method","name":"remove","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L154"},"def":{"name":"remove","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"if participant = @participants.delete(webrtc_user_id)\n @updated_at = Time.utc\n participant\nend"}},{"html_id":"room_settings:RoomSettings|Nil-instance-method","name":"room_settings","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings","return_type":"RoomSettings | ::Nil","visibility":"Public","body":"@room_settings"}},{"html_id":"room_settings=(room_settings:RoomSettings|Nil)-instance-method","name":"room_settings=","abstract":false,"args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"args_string":"(room_settings : RoomSettings | Nil)","args_html":"(room_settings : RoomSettings | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings=","args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"visibility":"Public","body":"@room_settings = room_settings"}},{"html_id":"session_id:String-instance-method","name":"session_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L76"},"def":{"name":"session_id","return_type":"String","visibility":"Public","body":"@session_id"}},{"html_id":"system:PlaceOS::Driver::DriverModel::ControlSystem|Nil-instance-method","name":"system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system","return_type":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil","visibility":"Public","body":"@system"}},{"html_id":"system=(system:PlaceOS::Driver::DriverModel::ControlSystem|Nil)-instance-method","name":"system=","abstract":false,"args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"args_string":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","args_html":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system=","args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"visibility":"Public","body":"@system = system"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::Meeting#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L78"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:String|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"updated_at:Time-instance-method","name":"updated_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L87"},"def":{"name":"updated_at","return_type":"Time","visibility":"Public","body":"@updated_at"}}]},{"html_id":"drivers/Place/Chat/MeetingSummary","path":"Place/Chat/MeetingSummary.html","kind":"struct","full_name":"Place::Chat::MeetingSummary","name":"MeetingSummary","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pos_system:String,call_count:Int32,participant_count:Int32,waiting_count:Int32,longest_wait_time:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"args_string":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","args_html":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L67"},"def":{"name":"new","args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pos_system, call_count, participant_count, waiting_count, longest_wait_time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L59"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"call_count:Int32-instance-method","name":"call_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L62"},"def":{"name":"call_count","return_type":"Int32","visibility":"Public","body":"@call_count"}},{"html_id":"longest_wait_time:Int64-instance-method","name":"longest_wait_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L65"},"def":{"name":"longest_wait_time","return_type":"Int64","visibility":"Public","body":"@longest_wait_time"}},{"html_id":"participant_count:Int32-instance-method","name":"participant_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L64"},"def":{"name":"participant_count","return_type":"Int32","visibility":"Public","body":"@participant_count"}},{"html_id":"pos_system:String-instance-method","name":"pos_system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L61"},"def":{"name":"pos_system","return_type":"String","visibility":"Public","body":"@pos_system"}},{"html_id":"waiting_count:Int32-instance-method","name":"waiting_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L63"},"def":{"name":"waiting_count","return_type":"Int32","visibility":"Public","body":"@waiting_count"}}]},{"html_id":"drivers/Place/Chat/NotificationSettings","path":"Place/Chat/NotificationSettings.html","kind":"struct","full_name":"Place::Chat::NotificationSettings","name":"NotificationSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L30"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"chosen_provider?:Bool-instance-method","name":"chosen_provider?","doc":"only alert if the user selected me","summary":"

only alert if the user selected me

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L34"},"def":{"name":"chosen_provider?","return_type":"Bool","visibility":"Public","body":"@chosen_provider"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L35"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"on_enter:NotifyEventSettings-instance-method","name":"on_enter","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L37"},"def":{"name":"on_enter","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_enter"}},{"html_id":"on_escalate:NotifyEventSettings-instance-method","name":"on_escalate","doc":"settings if the patient has been waiting for a long time","summary":"

settings if the patient has been waiting for a long time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L43"},"def":{"name":"on_escalate","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_escalate"}},{"html_id":"on_recurr:NotifyEventSettings-instance-method","name":"on_recurr","doc":"how often should it send notifications","summary":"

how often should it send notifications

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L39"},"def":{"name":"on_recurr","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_recurr"}},{"html_id":"on_waiting:NotifyEventSettings-instance-method","name":"on_waiting","doc":"do we only notify if the user has been waiting for a certain amount of time","summary":"

do we only notify if the user has been waiting for a certain amount of time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L41"},"def":{"name":"on_waiting","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_waiting"}}]},{"html_id":"drivers/Place/Chat/NotifyEventSettings","path":"Place/Chat/NotifyEventSettings.html","kind":"struct","full_name":"Place::Chat::NotifyEventSettings","name":"NotifyEventSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L15"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"browser?:Bool-instance-method","name":"browser?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L19"},"def":{"name":"browser?","return_type":"Bool","visibility":"Public","body":"@browser"}},{"html_id":"delay:Int32-instance-method","name":"delay","doc":"minutes before notification","summary":"

minutes before notification

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L24"},"def":{"name":"delay","return_type":"Int32","visibility":"Public","body":"@delay"}},{"html_id":"email?:Bool-instance-method","name":"email?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L20"},"def":{"name":"email?","return_type":"Bool","visibility":"Public","body":"@email"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L18"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"sms?:Bool-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L21"},"def":{"name":"sms?","return_type":"Bool","visibility":"Public","body":"@sms"}}]},{"html_id":"drivers/Place/Chat/OpeningHours","path":"Place/Chat/OpeningHours.html","kind":"struct","full_name":"Place::Chat::OpeningHours","name":"OpeningHours","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(opening_times:Tuple(String,String,Bool))-class-method","name":"new","abstract":false,"args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"args_string":"(opening_times : Tuple(String, String, Bool))","args_html":"(opening_times : Tuple(String, String, Bool))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L73"},"def":{"name":"new","args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(opening_times)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"closes:Time::Span-instance-method","name":"closes","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L85"},"def":{"name":"closes","return_type":"Time::Span","visibility":"Public","body":"@closes"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L86"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_open?(now:Time)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"now","external_name":"now","restriction":"Time"}],"args_string":"(now : Time)","args_html":"(now : Time)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L88"},"def":{"name":"is_open?","args":[{"name":"now","external_name":"now","restriction":"Time"}],"visibility":"Public","body":"if enabled\nelse\n return false\nend\nstart_of_day = now.at_beginning_of_day\nopening = start_of_day + opens\nif now >= opening\nelse\n return false\nend\nclosing = start_of_day + closes\nnow < closing\n"}},{"html_id":"opens:Time::Span-instance-method","name":"opens","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L84"},"def":{"name":"opens","return_type":"Time::Span","visibility":"Public","body":"@opens"}}]},{"html_id":"drivers/Place/Chat/Participant","path":"Place/Chat/Participant.html","kind":"class","full_name":"Place::Chat::Participant","name":"Participant","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(user_id:String,name:String,email:Nil|String=nil,phone:Nil|String=nil,type:Nil|String=nil,staff_user_id:Nil|String=nil,text_chat_only:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"args_string":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","args_html":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L54"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, name, email, phone, type, staff_user_id, text_chat_only)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"appointment_time:String|Nil-instance-method","name":"appointment_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L37"},"def":{"name":"appointment_time","return_type":"String | ::Nil","visibility":"Public","body":"@appointment_time"}},{"html_id":"captcha:String|Nil-instance-method","name":"captcha","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha","return_type":"String | ::Nil","visibility":"Public","body":"@captcha"}},{"html_id":"captcha=(captcha:String|Nil)-instance-method","name":"captcha=","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"args_string":"(captcha : String | Nil)","args_html":"(captcha : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha=","args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"visibility":"Public","body":"@captcha = captcha"}},{"html_id":"chat_to_user_id:String|Nil-instance-method","name":"chat_to_user_id","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@chat_to_user_id"}},{"html_id":"chat_to_user_id=(chat_to_user_id:String|Nil)-instance-method","name":"chat_to_user_id=","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"args_string":"(chat_to_user_id : String | Nil)","args_html":"(chat_to_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id=","args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@chat_to_user_id = chat_to_user_id"}},{"html_id":"connected:Bool-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected","return_type":"Bool","visibility":"Public","body":"@connected"}},{"html_id":"connected=(connected:Bool)-instance-method","name":"connected=","abstract":false,"args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool)","args_html":"(connected : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected=","args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"@connected = connected"}},{"html_id":"contacted:Bool-instance-method","name":"contacted","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted","return_type":"Bool","visibility":"Public","body":"@contacted"}},{"html_id":"contacted=(contacted:Bool)-instance-method","name":"contacted=","abstract":false,"args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"args_string":"(contacted : Bool)","args_html":"(contacted : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted=","args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"visibility":"Public","body":"@contacted = contacted"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"session_id:String|Nil-instance-method","name":"session_id","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id","return_type":"String | ::Nil","visibility":"Public","body":"@session_id"}},{"html_id":"session_id=(session_id:String|Nil)-instance-method","name":"session_id=","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"args_string":"(session_id : String | Nil)","args_html":"(session_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id=","args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@session_id = session_id"}},{"html_id":"staff_user_id:String|Nil-instance-method","name":"staff_user_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@staff_user_id"}},{"html_id":"staff_user_id=(staff_user_id:String|Nil)-instance-method","name":"staff_user_id=","abstract":false,"args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"args_string":"(staff_user_id : String | Nil)","args_html":"(staff_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id=","args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@staff_user_id = staff_user_id"}},{"html_id":"text_chat_only:Bool|Nil-instance-method","name":"text_chat_only","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@text_chat_only"}},{"html_id":"text_chat_only=(text_chat_only:Bool|Nil)-instance-method","name":"text_chat_only=","abstract":false,"args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(text_chat_only : Bool | Nil)","args_html":"(text_chat_only : Bool | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only=","args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@text_chat_only = text_chat_only"}},{"html_id":"type:String|Nil-instance-method","name":"type","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Place/Chat/RoomMember","path":"Place/Chat/RoomMember.html","kind":"class","full_name":"Place::Chat::RoomMember","name":"RoomMember","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"admin?-instance-method","name":"admin?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L67"},"def":{"name":"admin?","visibility":"Public","body":"roles.includes?(\"admin\")"}},{"html_id":"available?:Bool-instance-method","name":"available?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L49"},"def":{"name":"available?","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"clinician?-instance-method","name":"clinician?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L63"},"def":{"name":"clinician?","visibility":"Public","body":"roles.includes?(\"clinician\")"}},{"html_id":"coordinator?-instance-method","name":"coordinator?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L59"},"def":{"name":"coordinator?","visibility":"Public","body":"roles.includes?(\"coordinator\")"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L51"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomMember#notifications cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notifications=(notifications:NotificationSettings)-instance-method","name":"notifications=","abstract":false,"args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"args_string":"(notifications : NotificationSettings)","args_html":"(notifications : NotificationSettings)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L57"},"def":{"name":"notifications=","args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"visibility":"Public","body":"@notifications = notifications"}},{"html_id":"notifications?:NotificationSettings|Nil-instance-method","name":"notifications?","abstract":false,"def":{"name":"notifications?","return_type":"NotificationSettings | ::Nil","visibility":"Public","body":"@notifications"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"roles:Array(String)-instance-method","name":"roles","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L54"},"def":{"name":"roles","return_type":"Array(String)","visibility":"Public","body":"@roles"}}]},{"html_id":"drivers/Place/Chat/RoomSettings","path":"Place/Chat/RoomSettings.html","kind":"class","full_name":"Place::Chat::RoomSettings","name":"RoomSettings","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L99"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"doc":"Room metadata => settings key","summary":"

Room metadata => settings key

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L100"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L102"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L105"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"is_open?(timezone:Time::Location)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L132"},"def":{"name":"is_open?","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"if available\nelse\n return false\nend\nif open_24_7\n return true\nend\nnow = Time.local(timezone)\nindex = now.day_of_week.to_i - 1\n(OpeningHours.new(opening_hours[index])).is_open?(now)\n"}},{"html_id":"members:Array(RoomMember)-instance-method","name":"members","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members","return_type":"Array(RoomMember)","visibility":"Public","body":"@members"}},{"html_id":"members=(members:Array(RoomMember))-instance-method","name":"members=","abstract":false,"args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"args_string":"(members : Array(RoomMember))","args_html":"(members : Array(RoomMember))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members=","args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"visibility":"Public","body":"@members = members"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L107"},"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n @notifications = (NotificationSettings.new)\nelse\n __temp_1\nend"}},{"html_id":"open_24_7:Bool-instance-method","name":"open_24_7","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L106"},"def":{"name":"open_24_7","return_type":"Bool","visibility":"Public","body":"@open_24_7"}},{"html_id":"opening:Hash(Time::DayOfWeek,OpeningHours)-instance-method","name":"opening","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L123"},"def":{"name":"opening","return_type":"Hash(Time::DayOfWeek, OpeningHours)","visibility":"Public","body":"if (__temp_1 = @opening).nil?\n @opening = (begin\n times = {} of Time::DayOfWeek => OpeningHours\n opening_hours.each_with_index do |times, index|\n index = index + 1\n times[Time::DayOfWeek.from_value(index)] = OpeningHours.new(times)\n end\n times\n end)\nelse\n __temp_1\nend"}},{"html_id":"opening_hours:Array(Tuple(String,String,Bool))-instance-method","name":"opening_hours","doc":"0 index == Monday\n open time, close time, enabled","summary":"

0 index == Monday open time, close time, enabled

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L118"},"def":{"name":"opening_hours","return_type":"Array(Tuple(String, String, Bool))","visibility":"Public","body":"if (__temp_1 = @opening_hours).nil?\n @opening_hours = ([] of Tuple(String, String, Bool))\nelse\n __temp_1\nend"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomSettings#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:Time::Location)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/chat/health_notification_models.cr#L114"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:Time::Location|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@timezone"}}]}]},{"html_id":"drivers/Place/Demo","path":"Place/Demo.html","kind":"module","full_name":"Place::Demo","name":"Demo","abstract":false,"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Demo/Display","path":"Place/Demo/Display.html","kind":"class","full_name":"Place::Demo::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/demo/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L52"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"self[:audio_mute] = state\nself[:volume] = state ? 0 : @volume\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/demo/display.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L28"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:power] = state"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L32"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[:power].as_bool"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/place/demo/display.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L36"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"self[:input] = input"}},{"html_id":"test_setting(key:String,payload:JSON::Any)-instance-method","name":"test_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(key : String, payload : JSON::Any)","args_html":"(key : String, payload : JSON::Any)","location":{"filename":"src/place/demo/display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L46"},"def":{"name":"test_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"define_setting(key, payload)\npayload\n"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/demo/display.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L42"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"self[:volume] = @volume = level.to_f64"}},{"html_id":"volume?:Float64-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L40"},"def":{"name":"volume?","return_type":"Float64","visibility":"Public","body":"@volume"}}],"types":[{"html_id":"drivers/Place/Demo/Display/Input","path":"Place/Demo/Display/Input.html","kind":"enum","full_name":"Place::Demo::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Place/Demo/Display","kind":"class","full_name":"Place::Demo::Display","name":"Display"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L20"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L15"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L16"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L14"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L19"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/display.cr#L18"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]},{"html_id":"drivers/Place/Demo/LocationServices","path":"Place/Demo/LocationServices.html","kind":"class","full_name":"Place::Demo::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/location_services.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/location_services.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L24"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"case rand(3)\nwhen 0\n [{location: \"wireless\", coordinates_from: \"bottom-left\", x: 27.113065326953013, y: 36.85052447328469, lon: 55.27498749637098, lat: 25.20090608906493, mac: \"66e0fd1279ce\", variance: 4.5194575835650745, last_seen: 1601555879, building: @building_zone, level: @level_zone, map_width: 1234.2, map_height: 123.8}]\nwhen 1\n [{location: \"meeting\", mac: \"meeting.room@resource.org.com\", event_id: \"meet-1234567\", map_id: \"map-1234\", sys_id: @system_id, ends_at: 1.hour.from_now, private: false, level: @level_zone, building: @building_zone}]\nelse\n [] of String\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/location_services.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/location_services.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = setting(String, :building_zone)\n@level_zone = setting(String, :level_zone)\n@system_id = setting(String, :system_id)\n"}}]},{"html_id":"drivers/Place/Demo/Lockers","path":"Place/Demo/Lockers.html","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L15"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L317"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lb=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n locker_bank = floor_mac[\"lb\"]\n locker_key = floor_mac[\"lk\"]\n locker = locker_banks[locker_bank].locker_hash[locker_key]\n has_reservation = false\n if user_id = locker.allocated_to\n if time = locker.allocated_until\n has_reservation = time > Time.utc\n else\n has_reservation = true\n end\n end\n if has_reservation\n {location: \"locker\", assigned_to: (staff_api.user(locker.allocated_to)).get[\"email\"].as_s, mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L345"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\nbuilding = building_id\nlevel_zone = zone_id == building ? nil : zone_id\nif level_zone && !(level_zone.in?(levels))\n return [] of Nil\nend\nnow = Time.utc\nlocker_banks.values.flat_map do |bank|\n if level_zone && (bank.level_id != level_zone)\n next [] of PlaceLocker\n end\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L19"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @levels).nil?\n @levels = ((staff_api.systems_in_building(building_id)).get.as_h.keys)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L305"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/place/demo/lockers.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L153"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"begin\n bank = locker_banks[bank_id.to_s]\n locker_id = locker_id ? locker_id : bank.locker_hash.values.select(&.not_allocated?).sample.id\n locker = bank.locker_hash[locker_id.to_s]\n locker.allocated_to = user_id\n if expires_at\n locker.allocated_until = Time.unix(expires_at)\n end\n PlaceLocker.new(bank_id, locker, building_id)\nrescue\n raise(\"no available lockers\")\nend"}},{"html_id":"locker_banks:Hash(String,LockerBank)-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L23"},"def":{"name":"locker_banks","return_type":"Hash(String, LockerBank)","visibility":"Public","body":"if (__temp_1 = @locker_banks).nil?\n @locker_banks = (begin\n banks = (staff_api.metadata(building_id, \"locker_banks\")).get.dig?(\"locker_banks\", \"details\")\n if banks\n else\n return Hash(String, LockerBank).new\n end\n banks = begin\n Array(LockerBank).from_json(banks.to_json)\n rescue error\n message = \"error parsing banks json on building #{building_id}:\\n#{banks.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lookup = {} of String => LockerBank\n banks.each do |bank|\n bank.level_id = (levels & bank.zones).first?\n lookup[bank.id] = bank\n end\n lockers = (staff_api.metadata(building_id, \"lockers\")).get.dig?(\"lockers\", \"details\")\n if lockers\n else\n return lookup\n end\n lockers = begin\n Array(Locker).from_json(lockers.to_json)\n rescue error\n message = \"error parsing locker json on building #{building_id}:\\n#{lockers.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lockers.each do |locker|\n begin\n bank = lookup[locker.bank_id]\n locker.level_id = bank.level_id\n bank.lockers << locker\n rescue error\n logger.warn(exception: error) do\n \"config issue with locker #{locker.id} on bank #{locker.bank_id}\"\n end\n end\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L178"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nif locker.allocated_to == owner_id\n locker.release\nelse\n locker.shared_with.delete(owner_id)\nend\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L213"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with << share_with\n locker.shared_with.uniq!\nend\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L265"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with\nelse\n [] of String\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L288"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L236"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n if shared_with_id\n locker.shared_with.delete(shared_with_id)\n else\n locker.shared_with = [] of String\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/place/demo/lockers.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L195"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"now = Time.utc\nbuilding = building_id\nlocker_banks.values.flat_map do |bank|\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to == user_id\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L310"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}}],"types":[{"html_id":"drivers/Place/Demo/Lockers/Locker","path":"Place/Demo/Lockers/Locker.html","kind":"class","full_name":"Place::Demo::Lockers::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L68"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated?:Bool-instance-method","name":"allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L87"},"def":{"name":"allocated?","return_type":"Bool","visibility":"Public","body":"if time = self.allocated_until\n if time > Time.utc\n true\n else\n false\n end\nelse\n if allocated_to = self.allocated_to\n true\n else\n false\n end\nend"}},{"html_id":"allocated_to:String|Nil-instance-method","name":"allocated_to","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to","return_type":"String | ::Nil","visibility":"Public","body":"@allocated_to"}},{"html_id":"allocated_to=(allocated_to:String|Nil)-instance-method","name":"allocated_to=","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"args_string":"(allocated_to : String | Nil)","args_html":"(allocated_to : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to=","args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@allocated_to = allocated_to"}},{"html_id":"allocated_until:Time|Nil-instance-method","name":"allocated_until","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until","return_type":"Time | ::Nil","visibility":"Public","body":"@allocated_until"}},{"html_id":"allocated_until=(allocated_until:Time|Nil)-instance-method","name":"allocated_until=","abstract":false,"args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"args_string":"(allocated_until : Time | Nil)","args_html":"(allocated_until : Time | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until=","args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@allocated_until = allocated_until"}},{"html_id":"bank_id:String-instance-method","name":"bank_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L72"},"def":{"name":"bank_id","return_type":"String","visibility":"Public","body":"@bank_id"}},{"html_id":"bookable:Bool-instance-method","name":"bookable","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L73"},"def":{"name":"bookable","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @bookable).nil?\n @bookable = (false)\nelse\n __temp_1\nend"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L70"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L71"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"not_allocated?:Bool-instance-method","name":"not_allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L101"},"def":{"name":"not_allocated?","return_type":"Bool","visibility":"Public","body":"!allocated?"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L81"},"def":{"name":"release","visibility":"Public","body":"@allocated_to = nil\n@allocated_until = nil\n@shared_with = [] of String\n"}},{"html_id":"shared_with:Array(String)-instance-method","name":"shared_with","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with","return_type":"Array(String)","visibility":"Public","body":"@shared_with"}},{"html_id":"shared_with=(shared_with:Array(String))-instance-method","name":"shared_with=","abstract":false,"args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"args_string":"(shared_with : Array(String))","args_html":"(shared_with : Array(String))","location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with=","args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"visibility":"Public","body":"@shared_with = shared_with"}}]},{"html_id":"drivers/Place/Demo/Lockers/LockerBank","path":"Place/Demo/Lockers/LockerBank.html","kind":"class","full_name":"Place::Demo::Lockers::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L106"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L107"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L109"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"locker_hash:Hash(String,Locker)-instance-method","name":"locker_hash","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L115"},"def":{"name":"locker_hash","return_type":"Hash(String, Locker)","visibility":"Public","body":"if (__temp_1 = @locker_hash).nil?\n @locker_hash = (begin\n lookup = {} of String => Locker\n level = self.level_id\n lockers.each do |locker|\n locker.level_id = level\n lookup[locker.id] = locker\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"lockers:Array(Locker)-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L114"},"def":{"name":"lockers","return_type":"Array(Locker)","visibility":"Public","body":"@lockers"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L110"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L111"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}}]},{"html_id":"drivers/Place/Demo/Lockers/PlaceLocker","path":"Place/Demo/Lockers/PlaceLocker.html","kind":"alias","full_name":"Place::Demo::Lockers::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/place/demo/lockers.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/lockers.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"}}]},{"html_id":"drivers/Place/Demo/RoomSensor","path":"Place/Demo/RoomSensor.html","kind":"class","full_name":"Place::Demo::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L147"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n ::raise(::NilAssertionError.new(\"Place::Demo::RoomSensor#count cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"count?:Int32|Nil-instance-method","name":"count?","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L152"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif {building_id, level_id}.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && (location != \"area\")\n return [] of Nil\nend\n[{location: \"area\", at_location: count, map_id: system.map_id, level: level_id, building: building_id, capacity: @capacity, module_id: module_id}]\n"}},{"html_id":"level_id:String-instance-method","name":"level_id","doc":"Finds the level ID for the current location services object","summary":"

Finds the level ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L53"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n @level_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"level\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L137"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L142"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@capacity = (setting?(Int32, :capacity)) || 2\n@count || (@count = (setting?(Int32, :default_count)) || 0)\n@sensor_id = (setting?(String, :sensor_id)) || module_id\n@timestamp = Time.utc.to_unix\nupdate_state\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L87"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"demo-#{@sensor_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L68"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"demo-#{@sensor_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"set_sensor(new_count:Int32)-instance-method","name":"set_sensor","abstract":false,"args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"args_string":"(new_count : Int32)","args_html":"(new_count : Int32)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/room_sensor.cr#L32"},"def":{"name":"set_sensor","args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"visibility":"Public","body":"@timestamp = Time.utc.to_unix\n@count = new_count\nupdate_state\n"}}]},{"html_id":"drivers/Place/Demo/Switcher","path":"Place/Demo/Switcher.html","kind":"class","full_name":"Place::Demo::Switcher","name":"Switcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inputs:Int32-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L17"},"def":{"name":"inputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @inputs).nil?\n @inputs = (setting(Int32, :inputs))\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = nil\n@outputs = nil\n"}},{"html_id":"outputs:Int32-instance-method","name":"outputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L18"},"def":{"name":"outputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @outputs).nil?\n @outputs = (setting(Int32, :outputs))\nelse\n __temp_1\nend"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/place/demo/switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L32"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"switching #{map} on layer #{layer || SwitchLayer::All}\"\nend\nmap.each do |input, outputs|\n outputs.each do |outp|\n self[\"output#{outp}\"] = input\n end\nend\ntrue\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/place/demo/switcher.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/switcher.cr#L25"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input < 0 || input > inputs\n raise(\"invalid input #{input}, supported values 0 -> #{inputs}\")\nend\nlogger.debug do\n \"switching all outputs to input #{input}\"\nend\n(1..outputs).each do |outp|\n self[\"output#{outp}\"] = input\nend\ntrue\n"}}]},{"html_id":"drivers/Place/Demo/TestSSH","path":"Place/Demo/TestSSH.html","kind":"class","full_name":"Place::Demo::TestSSH","name":"TestSSH","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/test_ssh.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"ls(dir:String=\"./\",modifiers:String=\"\")-instance-method","name":"ls","abstract":false,"args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"args_string":"(dir : String = \"./\", modifiers : String = \"\")","args_html":"(dir : String = "./", modifiers : String = "")","location":{"filename":"src/place/demo/test_ssh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L16"},"def":{"name":"ls","args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"visibility":"Public","body":"(exec(\"ls -#{modifiers} #{dir}\")).gets_to_end"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L25"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"SSH response:\\n#{data}\"\nend\ntask.try(&.success(data))\n"}},{"html_id":"run(command:String,wait:Bool=true)-instance-method","name":"run","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"args_string":"(command : String, wait : Bool = true)","args_html":"(command : String, wait : Bool = true)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/demo/test_ssh.cr#L20"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"SSH command:\\n#{command}\"\nend\nsend(\"#{command}\\n\", wait: wait)\n"}}]}]},{"html_id":"drivers/Place/Desk","path":"Place/Desk.html","kind":"module","full_name":"Place::Desk","name":"Desk","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Desk/Control","path":"Place/Desk/Control.html","kind":"class","full_name":"Place::Desk::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"desks\""}],"namespace":{"html_id":"drivers/Place/Desk","kind":"module","full_name":"Place::Desk","name":"Desk"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"desk_id_key:String-instance-method","name":"desk_id_key","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L30"},"def":{"name":"desk_id_key","return_type":"String","visibility":"Public","body":"@desk_id_key"}},{"html_id":"desk_ids:Hash(String,String)-instance-method","name":"desk_ids","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L90"},"def":{"name":"desk_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @desk_ids).nil?\n @desk_ids = (begin\n metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\n end\n desks = {} of String => String\n key = desk_id_key\n metadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if ids = level[:metadata][METADATA_KEY]?.try(&.details)\n ids.each do |desk_details|\n if mapped_id = desk_details.json_unmapped[key]?.try(&.as_s?)\n desks[desk_details.id] = mapped_id\n end\n end\n end\n end\n end\n desks\n end)\nelse\n __temp_1\nend"}},{"html_id":"desk_lookup(desk_id:String):String-instance-method","name":"desk_lookup","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String) : String","args_html":"(desk_id : String) : String","location":{"filename":"src/place/desk/control.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L32"},"def":{"name":"desk_lookup","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if desk_id_key != \"id\"\n mapped_id = desk_ids[desk_id]?\n if mapped_id\n else\n raise(\"mapped id not found\")\n end\n mapped_id\nelse\n desk_id\nend"}},{"html_id":"get_desk_height(desk_key:String)-instance-method","name":"get_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L56"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_height(desk_key)).get"}},{"html_id":"get_desk_power(desk_key:String)-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L65"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_power(desk_key)).get"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L118"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(1.hour) do\n @desk_ids = nil\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@desk_id_key = (setting?(String, :desk_id_key)) || \"id\""}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/place/desk/control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L51"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_height(desk_key, desk_height)).get\n"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/place/desk/control.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L60"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_power(desk_key, desk_power)).get\n"}}],"types":[{"html_id":"drivers/Place/Desk/Control/ChildMetadata","path":"Place/Desk/Control/ChildMetadata.html","kind":"alias","full_name":"Place::Desk::Control::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/DeskId","path":"Place/Desk/Control/DeskId.html","kind":"struct","full_name":"Place::Desk::Control::DeskId","name":"DeskId","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L77"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Desk/Control/Details","path":"Place/Desk/Control/Details.html","kind":"struct","full_name":"Place::Desk::Control::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(DeskId)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L83"},"def":{"name":"details","return_type":"Array(DeskId)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(DeskId))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"args_string":"(details : Array(DeskId))","args_html":"(details : Array(DeskId))","location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L83"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Desk/Control/Metadata","path":"Place/Desk/Control/Metadata.html","kind":"alias","full_name":"Place::Desk::Control::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Desk::Control::Details)","aliased_html":"Hash(String, Place::Desk::Control::Details)","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/Zone","path":"Place/Desk/Control/Zone.html","kind":"alias","full_name":"Place::Desk::Control::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk/control.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}}]}]},{"html_id":"drivers/Place/DeskBookingsLocations","path":"Place/DeskBookingsLocations.html","kind":"class","full_name":"Place::DeskBookingsLocations","name":"DeskBookingsLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_bookings_locations.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L121"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L133"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L106"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_912|\n user_email, _name = __temp_912\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@zone_filter = (setting?(Array(String), :zone_filter)) || ([] of String)\n@zones = nil\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nmap_zones\nschedule.clear\nschedule.every(@poll_rate) do\n query_desk_bookings\nend\nschedule.in(5.seconds) do\n query_desk_bookings\nend\n"}},{"html_id":"query_desk_bookings:Nil-instance-method","name":"query_desk_bookings","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L216"},"def":{"name":"query_desk_bookings","return_type":"Nil","visibility":"Public","body":"ids = Set(Int64).new\nbookings = [] of JSON::Any\nzones.each do |zone|\n begin\n bookings.concat(staff_api.query_bookings(type: @booking_type, zones: {zone}).get.as_a)\n rescue error\n logger.warn(exception: error) do\n \"failed to query bookings in zone: #{zone}\"\n end\n end\nend\nbookings = bookings.flat_map do |booking|\n booking = Booking.from_json(booking.to_json)\n if ids.includes?(booking.id)\n next [] of Booking\n end\n ids << booking.id\n booking.user_email = booking.user_email.downcase\n booking.expand\nend\nlogger.debug do\n \"queried desk bookings, found #{bookings.size}\"\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_bookings_locations.cr#L57"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zones).nil?\n @zones = (begin\n filtered = @zone_filter\n if filtered.empty?\n location_service.systems.get.as_h.keys\n else\n filtered\n end\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/DeskBookingWebhook","path":"Place/DeskBookingWebhook.html","kind":"class","full_name":"Place::DeskBookingWebhook","name":"DeskBookingWebhook","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_booking_webhook.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_post-instance-method","name":"fetch_and_post","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L54"},"def":{"name":"fetch_and_post","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nzones = [@building]\npayload = (staff_api.query_bookings(@booking_category, period_start, period_end, zones)).get.to_json\nheaders = HTTP::Headers.new\n@custom_headers.each do |key, value|\n headers[key] = value\nend\nheaders[\"Content-Type\"] = \"application/json; charset=UTF-8\"\nif @debug\n logger.debug do\n \"Posting: #{payload} \\n with Headers: #{headers}\"\n end\nend\nresponse = HTTP::Client.post(@post_uri, headers, body: payload)\nif response.status_code < 300\nelse\n raise(\"Request failed with #{response.status_code}: #{response.body}\")\nend\n\"#{response.status_code}: #{response.body}\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n fetch_and_post\nend\nschedule.every(24.hours) do\n fetch_and_post\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/desk_booking_webhook.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@post_uri = setting(String, :post_uri)\n@building = setting(String, :building)\n@custom_headers = setting(Hash(String, String), :custom_headers)\n@time_period = (setting(Int32, :days_from_now)).days\n@booking_category = setting(String, :booking_category)\n@debug = setting(Bool, :debug)\nfetch_and_post\n"}}]},{"html_id":"drivers/Place/EventAttendanceRecorder","path":"Place/EventAttendanceRecorder.html","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking_id:String|Nil-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L22"},"def":{"name":"booking_id","return_type":"String | ::Nil","visibility":"Public","body":"@booking_id"}},{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L18"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_known_count:Int32-instance-method","name":"last_known_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L27"},"def":{"name":"last_known_count","return_type":"Int32","visibility":"Public","body":"@last_known_count"}},{"html_id":"last_saved_count:Int32-instance-method","name":"last_saved_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L26"},"def":{"name":"last_saved_count","return_type":"Int32","visibility":"Public","body":"@last_saved_count"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"@system_id = config.control_system.not_nil!.id\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@metadata_key = (setting?(String, :metadata_key)).presence || \"people_count\"\n@debounce_seconds = (setting?(Int32, :debounce_seconds)) || 0\n"}},{"html_id":"people_counts:Array(Int32)-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L25"},"def":{"name":"people_counts","return_type":"Array(Int32)","visibility":"Public","body":"@people_counts"}},{"html_id":"should_save:Bool-instance-method","name":"should_save","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L24"},"def":{"name":"should_save","return_type":"Bool","visibility":"Public","body":"@should_save"}},{"html_id":"status:String-instance-method","name":"status","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L21"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}],"types":[{"html_id":"drivers/Place/EventAttendanceRecorder/StaffEventChange","path":"Place/EventAttendanceRecorder/StaffEventChange.html","kind":"class","full_name":"Place::EventAttendanceRecorder::StaffEventChange","name":"StaffEventChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventAttendanceRecorder","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}}]}]},{"html_id":"drivers/Place/EventMailer","path":"Place/EventMailer.html","kind":"class","full_name":"Place::EventMailer","name":"EventMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_mailer.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L227"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"inspect_event_store:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"inspect_event_store","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L108"},"def":{"name":"inspect_event_store","visibility":"Public","body":"@events"}},{"html_id":"list_systems_in_zone(zone_id:String)-instance-method","name":"list_systems_in_zone","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/event_mailer.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L104"},"def":{"name":"list_systems_in_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"staff_api.systems(zone_id: zone_id).get.as_a"}},{"html_id":"list_target_systems-instance-method","name":"list_target_systems","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L100"},"def":{"name":"list_target_systems","visibility":"Public","body":"@target_zones.flat_map do |zone_id|\n list_systems_in_zone(zone_id)\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@target_zones = (setting?(Array(String), :zone_ids_to_target)) || ([] of String)\n@target_module = (setting?(String, :module_to_target)) || \"Bookings_1\"\n@target_status = (setting?(String, :module_status_to_target)) || \"bookings\"\n@event_filter = (setting?(String, :event_filter)) || \"\"\n@email_template_group = (setting?(String, :email_template_group)) || \"events\"\n@email_template = (setting?(String, :email_template)) || \"welcome\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\nself[:events] = @events.clear\nsubscribe_to_all_modules\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L126"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(Time::Location.local)\n[TemplateFields.new(trigger: {@email_template_group, @email_template}, name: \"Event welcome\", description: \"Welcome email sent to event organizers when their event is coming up today\", fields: [{name: \"host_name\", description: \"Name of the event organizer\"}, {name: \"host_email\", description: \"Email address of the event organizer\"}, {name: \"room_name\", description: \"Location or room where the event is being held\"}, {name: \"event_title\", description: \"Title or subject of the event\"}, {name: \"event_start\", description: \"Start time of the event (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the event (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"network_username\", description: \"Username for network access (only if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated password for network access (only if network credentials enabled)\"}])]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_mailer.cr#L216"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime","path":"Place/EventSetupBreakdownTime.html","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/event/changed\") do |_subscription, payload|\n begin\n logger.debug do\n \"received event changed signal #{payload}\"\n end\n @event_change_mutex.synchronize do\n event_changed(EventChangedSignal.from_json(payload))\n end\n rescue error\n logger.warn(exception: error) do\n \"error processing event changed signal\"\n end\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/EventChangedSignal","path":"Place/EventSetupBreakdownTime/EventChangedSignal.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventChangedSignal","name":"EventChangedSignal","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"event:PlaceCalendar::Event-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event","return_type":"PlaceCalendar::Event","visibility":"Public","body":"@event"}},{"html_id":"event=(event:PlaceCalendar::Event)-instance-method","name":"event=","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event=","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"@event = event"}},{"html_id":"event_ical_uid:String-instance-method","name":"event_ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid","return_type":"String","visibility":"Public","body":"@event_ical_uid"}},{"html_id":"event_ical_uid=(event_ical_uid:String)-instance-method","name":"event_ical_uid=","abstract":false,"args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"args_string":"(event_ical_uid : String)","args_html":"(event_ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid=","args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"visibility":"Public","body":"@event_ical_uid = event_ical_uid"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String|Nil)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"args_string":"(host : String | Nil)","args_html":"(host : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"visibility":"Public","body":"@host = host"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/EventMetadata","path":"Place/EventSetupBreakdownTime/EventMetadata.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventMetadata","name":"EventMetadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L199"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L200"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time","return_type":"Int64","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"args_string":"(breakdown_time : Int64)","args_html":"(breakdown_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"cancelled:Bool-instance-method","name":"cancelled","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled","return_type":"Bool","visibility":"Public","body":"@cancelled"}},{"html_id":"cancelled=(cancelled:Bool)-instance-method","name":"cancelled=","abstract":false,"args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"args_string":"(cancelled : Bool)","args_html":"(cancelled : Bool)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled=","args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"visibility":"Public","body":"@cancelled = cancelled"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host_email:String-instance-method","name":"host_email","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email","return_type":"String","visibility":"Public","body":"@host_email"}},{"html_id":"host_email=(host_email:String)-instance-method","name":"host_email=","abstract":false,"args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"args_string":"(host_email : String)","args_html":"(host_email : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email=","args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"visibility":"Public","body":"@host_email = host_email"}},{"html_id":"ical_uid:String-instance-method","name":"ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid","return_type":"String","visibility":"Public","body":"@ical_uid"}},{"html_id":"ical_uid=(ical_uid:String)-instance-method","name":"ical_uid=","abstract":false,"args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"args_string":"(ical_uid : String)","args_html":"(ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid=","args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"visibility":"Public","body":"@ical_uid = ical_uid"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"resource_calendar:String-instance-method","name":"resource_calendar","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar","return_type":"String","visibility":"Public","body":"@resource_calendar"}},{"html_id":"resource_calendar=(resource_calendar:String)-instance-method","name":"resource_calendar=","abstract":false,"args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"args_string":"(resource_calendar : String)","args_html":"(resource_calendar : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar=","args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"visibility":"Public","body":"@resource_calendar = resource_calendar"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time","return_type":"Int64","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"args_string":"(setup_time : Int64)","args_html":"(setup_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"visibility":"Public","body":"@setup_time = setup_time"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/LinkedEvents","path":"Place/EventSetupBreakdownTime/LinkedEvents.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::LinkedEvents","name":"LinkedEvents","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L162"},{"filename":"src/place/event_setup_breakdown_time.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(main_event_ical:String|Nil,main_event_id:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil, main_event_id : String | Nil)","args_html":"(main_event_ical : String | Nil, main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L182"},"def":{"name":"new","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(main_event_ical, main_event_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L175"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"main_event_ical:String|Nil-instance-method","name":"main_event_ical","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_ical"}},{"html_id":"main_event_ical=(main_event_ical:String|Nil)-instance-method","name":"main_event_ical=","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil)","args_html":"(main_event_ical : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical=","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_ical = main_event_ical"}},{"html_id":"main_event_id:String|Nil-instance-method","name":"main_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_id"}},{"html_id":"main_event_id=(main_event_id:String|Nil)-instance-method","name":"main_event_id=","abstract":false,"args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_id : String | Nil)","args_html":"(main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id=","args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_id = main_event_id"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","path":"Place/EventSetupBreakdownTime/PlaceCalendar.html","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar","abstract":false,"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar/Event","path":"Place/EventSetupBreakdownTime/PlaceCalendar/Event.html","kind":"class","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar"},"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64|Nil-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64|Nil)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"args_string":"(breakdown_time : Int64 | Nil)","args_html":"(breakdown_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64|Nil-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64|Nil)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"args_string":"(setup_time : Int64 | Nil)","args_html":"(setup_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@setup_time = setup_time"}}]}]}]},{"html_id":"drivers/Place/Geometry","path":"Place/Geometry.html","kind":"class","full_name":"Place::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(coordinates:Array(Tuple(Float64,Float64)),geo_type:String=\"Polygon\")-class-method","name":"new","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = \"Polygon\")","args_html":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = "Polygon")","location":{"filename":"src/place/area_config.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L8"},"def":{"name":"new","args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(coordinates, geo_type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"coordinates:Array(Tuple(Float64,Float64))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L13"},"def":{"name":"coordinates","return_type":"Array(Tuple(Float64, Float64))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Tuple(Float64,Float64)))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)))","args_html":"(coordinates : Array(Tuple(Float64, Float64)))","location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L13"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"geo_type:String-instance-method","name":"geo_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L12"},"def":{"name":"geo_type","return_type":"String","visibility":"Public","body":"@geo_type"}},{"html_id":"geo_type=(geo_type:String)-instance-method","name":"geo_type=","abstract":false,"args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"args_string":"(geo_type : String)","args_html":"(geo_type : String)","location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_config.cr#L12"},"def":{"name":"geo_type=","args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"visibility":"Public","body":"@geo_type = geo_type"}}]},{"html_id":"drivers/Place/Help","path":"Place/Help.html","kind":"alias","full_name":"Place::Help","name":"Help","abstract":false,"locations":[{"filename":"src/place/meet/help.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::HelpPage)","aliased_html":"Hash(String, Place::HelpPage)","const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"}},{"html_id":"drivers/Place/HelpPage","path":"Place/HelpPage.html","kind":"struct","full_name":"Place::HelpPage","name":"HelpPage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/help.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/help.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L10"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L8"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/help.cr#L9"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/HTTPPinger","path":"Place/HTTPPinger.html","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/http_pinger.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_CALLBACK","name":"DUMMY_CALLBACK","value":"Proc(Task, Nil).new do\n nil\nend"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_status:Bool-instance-method","name":"check_status","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L55"},"def":{"name":"check_status","return_type":"Bool","visibility":"Public","body":"begin\n response = http(@request_verb, \"/\", headers: @request_headers)\n if response.status_code == expected_response_code\n self[:last_successful_check] = Time.utc.to_unix\n self[:last_response_code] = response.status_code\n true\n else\n self[:last_response_code] = response.status_code\n @response_mismatch_count = @response_mismatch_count + 1\n self[:response_mismatch_count] = @response_mismatch_count\n queue.online = false\n false\n end\nrescue error\n logger.warn(exception: error) do\n \"HTTP service not responding\"\n end\n @response_failure_count = @response_failure_count + 1\n self[:response_failure_count] = @response_failure_count\n self[:last_error] = error.message\n false\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"check_status"}},{"html_id":"curl(verb:String,path:String,headers:Hash(String,String)={}ofString=>String,body:String|Nil=nil)-instance-method","name":"curl","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","args_html":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","location":{"filename":"src/place/http_pinger.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L80"},"def":{"name":"curl","args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = http(verb, path, body, headers: headers)\nlogger.debug do\n \"response #{response.status}: #{response.status_message}\\nheaders: #{response.headers}\\n#{response.body}\"\nend\ntask = PlaceOS::Driver::Task.new(queue, DUMMY_CALLBACK, 0, 0.seconds, 0, false, nil, nil)\ntask.success(response.body, response.status_code)\n"}},{"html_id":"expected_response_code:Int32-instance-method","name":"expected_response_code","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L26"},"def":{"name":"expected_response_code","return_type":"Int32","visibility":"Public","body":"@expected_response_code"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"transport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(((setting?(Int32, :ping_every)) || 60).seconds) do\n check_status\nend\n@request_verb = (setting?(String, :request_verb)) || \"GET\"\n@expected_response_code = (setting?(Int32, :expected_response_code)) || 200\nrequest_headers = HTTP::Headers.new\nheaders = (setting?(HeaderJSON, :request_headers)) || ({} of String => Array(String) | String)\nheaders.each do |key, value|\n request_headers.add(key, value)\nend\n@request_headers = request_headers\n"}},{"html_id":"request_verb:String-instance-method","name":"request_verb","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L27"},"def":{"name":"request_verb","return_type":"String","visibility":"Public","body":"@request_verb"}},{"html_id":"response_failure_count:UInt64-instance-method","name":"response_failure_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L24"},"def":{"name":"response_failure_count","return_type":"UInt64","visibility":"Public","body":"@response_failure_count"}},{"html_id":"response_mismatch_count:UInt64-instance-method","name":"response_mismatch_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L23"},"def":{"name":"response_mismatch_count","return_type":"UInt64","visibility":"Public","body":"@response_mismatch_count"}}],"types":[{"html_id":"drivers/Place/HTTPPinger/HeaderJSON","path":"Place/HTTPPinger/HeaderJSON.html","kind":"alias","full_name":"Place::HTTPPinger::HeaderJSON","name":"HeaderJSON","abstract":false,"locations":[{"filename":"src/place/http_pinger.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/http_pinger.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Array(String) | String)","aliased_html":"Hash(String, Array(String) | String)","const":false,"namespace":{"html_id":"drivers/Place/HTTPPinger","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger"}}]},{"html_id":"drivers/Place/LLM","path":"Place/LLM.html","kind":"class","full_name":"Place::LLM","name":"LLM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/llm.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capabilities-instance-method","name":"capabilities","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L43"},"def":{"name":"capabilities","visibility":"Public","body":"(system.implementing(Interface::ChatFunctions)).map do |driver|\n {id: driver.module_name, capability: driver[:capabilities].as_s}\nend"}},{"html_id":"new_chat-instance-method","name":"new_chat","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L52"},"def":{"name":"new_chat","visibility":"Public","body":"{prompt: @prompt, capabilities: capabilities, system_id: system.id}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@prompt = setting(String, :prompt)\n@user_hint = (setting?(String, :user_hint)) || \"Hi! I'm your workplace assistant.\"\nschedule.clear\nschedule.in(5.seconds) do\n update_prompt\nend\nschedule.every(5.minutes) do\n update_prompt\nend\n"}},{"html_id":"prompt:String-instance-method","name":"prompt","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L41"},"def":{"name":"prompt","return_type":"String","visibility":"Public","body":"if (__temp_1 = @prompt).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#prompt cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"prompt?:String|Nil-instance-method","name":"prompt?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L41"},"def":{"name":"prompt?","return_type":"String | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"user_hint:String-instance-method","name":"user_hint","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_hint).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#user_hint cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_hint?:String|Nil-instance-method","name":"user_hint?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint?","return_type":"String | ::Nil","visibility":"Public","body":"@user_hint"}}]},{"html_id":"drivers/Place/LocationServices","path":"Place/LocationServices.html","kind":"class","full_name":"Place::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/location_services.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, {} of String => String, nil}","doc":"===============================\nIP ADDRESS => MAC ADDRESS\n===============================","summary":"

=============================== IP ADDRESS => MAC ADDRESS ===============================

"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L30"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String)-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/place/location_services.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L138"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nowner = nil\n((system.implementing(Interface::Locatable)).check_ownership_of(mac_address)).get.each do |result|\n if result != nil\n owner = result\n break\n end\nend\nif owner.nil? && @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).check_ownership_of(mac_address))\n end\n end\n results.each do |sys_results|\n sys_results.get.each do |result|\n if result != nil\n owner = result\n break\n end\n end\n if owner.nil?\n else\n break\n end\n end\nend\nowner\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L174"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).device_locations(zone_id, location)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @include_room_locations\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).device_locations(zone_id, location))\n end\n end\n results.each do |__arg9|\n __arg9.get.each do |locations|\n located.concat(locations.as_a)\n end\n end\nend\nlocated\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L54"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L65"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"ip_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"ip_mappings","doc":"Webhook handler for accepting IP address to username mappings\nThis data is typically obtained via domain controller logs","summary":"

Webhook handler for accepting IP address to username mappings This data is typically obtained via domain controller logs

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L298"},"def":{"name":"ip_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"IP mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nip_map = Array(Tuple(String, String, String, String | ::Nil)).from_json(body)\n(system.implementing(Interface::Locatable)).ip_username_mappings(ip_map)\nSUCCESS_RESPONSE\n"}},{"html_id":"locate_contacts(list_name:String)-instance-method","name":"locate_contacts","doc":"locates all the of the emergency contacts","summary":"

locates all the of the emergency contacts

","abstract":false,"args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"args_string":"(list_name : String)","args_html":"(list_name : String)","location":{"filename":"src/place/location_services.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L346"},"def":{"name":"locate_contacts","args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"visibility":"Public","body":"contacts = status(Hash(String, Array(NamedTuple(email: String, username: String))), :emergency_contacts)\nlist = contacts[list_name]\nresults = {} of String => Array(JSON::Any)\nlist.each do |person|\n email = person[:email]\n results[email] = locate_user(email, person[:username])\nend\nresults\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"Runs through all the services that support the Locatable interface\nrequests location information on the identifier for all of them\nconcatenates the results and returns them as a single array","summary":"

Runs through all the services that support the Locatable interface requests location information on the identifier for all of them concatenates the results and returns them as a single array

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L75"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).locate_user(email, username)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n results << {level_id, ((system(system_id)).implementing(Interface::Locatable)).locate_user(email, username)}\n end\n end\n results.each do |__temp_929|\n level_id, result = __temp_929\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"mac_address_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L309"},"def":{"name":"mac_address_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"MAC mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nusername, macs, domain = Tuple(String, Array(String), String | ::Nil).from_json(body)\nusername = username.strip\nmacs = macs.compact_map do |mac|\n mac = (mac.strip.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase\n if mac.size == 12\n mac\n end\nend\nif username.empty? || macs.empty?\n return {HTTP::Status::NOT_ACCEPTABLE, {} of String => String, nil}\nend\n(system.implementing(Interface::Locatable)).mac_address_mappings(username, macs, domain)\nSUCCESS_RESPONSE\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nmacs = [] of String\n((system.implementing(Interface::Locatable)).macs_assigned_to(email, username)).get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\nend\nif @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).macs_assigned_to(email, username))\n end\n end\n results.each do |__arg7|\n __arg7.get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\n end\n end\nend\nmacs\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@emergency_contacts = (setting?(Hash(String, String), :emergency_contacts)) || Hash(String, String).new\n@search_building = (setting?(Bool, :search_building)) || false\n@include_room_locations = (setting?(Bool, :include_room_locations)) || false\n@building_id = nil\n@systems = nil\nschedule.clear\nif @search_building || @include_room_locations\n schedule.every(1.hour) do\n if @systems\n @systems = get_systems_list.not_nil!\n end\n end\nend\nif !@emergency_contacts.empty?\n schedule.every(6.hours, immediate: true) do\n update_contacts_list\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil)-instance-method","name":"sensor","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil)","args_html":"(mac : String, id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L247"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"querying sensor with mac: #{mac}, id: #{id.inspect}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensor(mac, id)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif located.empty?\nelse\n return located.first\nend\ndriver_ids = Set.new(drivers.map() do |__arg13|\n __arg13.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg14|\n __arg14.@module_id\n end)\n results << {level_id, drivers.sensor(mac, id)}\n end\n end\n results.each do |__temp_931|\n level_id, result = __temp_931\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nif located.empty?\nelse\n located.first\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil)-instance-method","name":"sensors","doc":"sensor search + filtered search","summary":"

sensor search + filtered search

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L203"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching sensors of type: #{type.inspect}, mac: #{mac.inspect}, zone_id: #{zone_id}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensors(type, mac, zone_id)).get.each do |locations|\n located.concat(locations.as_a)\nend\ndriver_ids = Set.new(drivers.map() do |__arg10|\n __arg10.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n if zone_id && (zone_id != level_id)\n next\n end\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg11|\n __arg11.@module_id\n end)\n results << {level_id, drivers.sensors(type, mac, zone_id)}\n end\n end\n results.each do |__temp_930|\n level_id, result = __temp_930\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L31"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"update_contacts_list-instance-method","name":"update_contacts_list","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/location_services.cr#L328"},"def":{"name":"update_contacts_list","visibility":"Public","body":"if @emergency_contacts.empty?\n self[:emergency_contacts] = nil\n return\nend\nif !(system.exists?(:Calendar))\n logger.warn do\n \"contacts requested however no directory service available\"\n end\n return\nend\ndirectory = system[:Calendar]\nself[:emergency_contacts] = @emergency_contacts.transform_values do |id|\n (directory.get_members(id)).get.as(JSON::Any)\nend\n"}}]},{"html_id":"drivers/Place/LogicExample","path":"Place/LogicExample.html","kind":"class","full_name":"Place::LogicExample","name":"LogicExample","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/logic_example.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"display_count-instance-method","name":"display_count","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L28"},"def":{"name":"display_count","visibility":"Public","body":"system.count(:Display)"}},{"html_id":"not_implemented-instance-method","name":"not_implemented","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L32"},"def":{"name":"not_implemented","visibility":"Public","body":"raise(\"not implemented\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L10"},"def":{"name":"on_update","visibility":"Public","body":"logger.info do\n \"woot! an update #{setting?(String, :name)}\"\nend"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/logic_example.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(system.all(:Display)).power(state)"}},{"html_id":"power_state?-instance-method","name":"power_state?","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L14"},"def":{"name":"power_state?","visibility":"Public","body":"main_lcd[:power]"}},{"html_id":"webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/logic_example.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/logic_example.cr#L22"},"def":{"name":"webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook executed\"\nend\npower(true)\n{HTTP::Status::OK.to_i, {} of String => String, \"\"}\n"}}]},{"html_id":"drivers/Place/Meet","path":"Place/Meet.html","kind":"class","full_name":"Place::Meet","name":"Meet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LIGHT_MOD","name":"DEFAULT_LIGHT_MOD","value":"\"Lighting_1\""},{"id":"EXT_INIT","name":"EXT_INIT","value":"[:qsc_phone_dialing_init] of Symbol"},{"id":"EXT_POWER","name":"EXT_POWER","value":"[:qsc_phone_dialing_power] of Symbol"}],"included_modules":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_preset(preset:String,camera:String)-instance-method","name":"add_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":969,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L969"},"def":{"name":"add_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].save_position(preset, cam.index || 0)\n"}},{"html_id":"apply_camera_defaults-instance-method","name":"apply_camera_defaults","doc":"run on system power on","summary":"

run on system power on

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":942,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L942"},"def":{"name":"apply_camera_defaults","visibility":"Public","body":"(system.all(vc_camera_module)).power(true)"}},{"html_id":"apply_default_routes-instance-method","name":"apply_default_routes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L293"},"def":{"name":"apply_default_routes","visibility":"Public","body":"begin\n @default_routes.each do |output, input|\n route_signal(input, output)\n end\nrescue error\n logger.warn(exception: error) do\n \"error applying default routes\"\n end\nend"}},{"html_id":"audio_mute(state:Bool)-instance-method","name":"audio_mute","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L634"},"def":{"name":"audio_mute","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)\nstate ? \"audio is muted\" : \"audio is unmuted\"\n"}},{"html_id":"audio_muted?-instance-method","name":"audio_muted?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L640"},"def":{"name":"audio_muted?","visibility":"Public","body":"(status?(Bool, :mute)) || false"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L91"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"provides meeting room audio visual control such as controlling video source to be presented\\n\"\n str << \"check for available inputs and outputs before switching to present a source to a display.\\n\"\n str << \"output volume and microphone fader controls are floats between 0.0 to 100.0\\n\"\n str << \"query output volume to change it by a relative amount, if asked to increase or decrease volume, change it by 10.0\\n\"\n str << \"audio can be muted and you unroute video to blank displays.\\n\"\n str << \"you can also shutdown, startup, power off, power on, start or end the meeting using the set_power_state function available in this capability.\\n\"\n str << \"some rooms may have lighting control, make sure to check what levels are available before changing state\\n\"\n str << \"some rooms may have accessories such as blinds or projector screen controls. Check for available accessories when asked about something not explicitly controllable\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","doc":"core includes: 'current_routes' hash\nbut we override it here for LLM integration","summary":"

core includes: 'current_routes' hash but we override it here for LLM integration

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L137"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{set_power_state: \"power on or off the meeting room. Send true for power on (startup) or false for power off (shutdown)\", \"power?\": \"query the system power state?\", inputs_and_outputs: \"available inputs and outputs. Route using id keys\", route_input: \"route to present an input to an output / display. Don't guess, look up available input and output ids\", unroute: \"blank a display / output, sometimes called a video mute\", set_volume: \"change the room volume\", \"volume?\": \"query the current volume, useful to know when asked to change the volume relatively\", audio_mute: \"mute or unmute the room audio\", \"audio_muted?\": \"check if the room audio is muted\", lighting_scenes: \"returns the list of available lighting scenes\", \"lighting_scene?\": \"query the current lighting scene\", set_lighting_scene: \"set a new lighting scene. Remember to list available lighting scenes before calling\"}"}},{"html_id":"init_vidconf-instance-method","name":"init_vidconf","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":936,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L936"},"def":{"name":"init_vidconf","visibility":"Public","body":"@vc_camera_in = setting?(String | Array(String), :vc_camera_in)\n@vc_camera_module = setting?(String, :vc_camera_module)\n"}},{"html_id":"inputs_and_outputs-instance-method","name":"inputs_and_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L300"},"def":{"name":"inputs_and_outputs","visibility":"Public","body":"inps = all_inputs\nouts = all_outputs\nresults = [] of NamedTuple(type: Symbol, name: String, id: String)\ninps.each do |input|\n name = status?(NamedTuple(name: String), \"input/#{input}\")\n if name\n results << {type: :input, name: name[:name], id: input}\n end\nend\nouts.each do |output|\n name = status?(NamedTuple(name: String), \"output/#{output}\")\n if name\n results << {type: :output, name: name[:name], id: output}\n end\nend\nresults\n"}},{"html_id":"join_mode(mode_id:String,master:Bool=true)-instance-method","name":"join_mode","abstract":false,"args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"args_string":"(mode_id : String, master : Bool = true)","args_html":"(mode_id : String, master : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1064"},"def":{"name":"join_mode","args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"visibility":"Public","body":"mode = @join_modes[mode_id]\nif @join_selected\n old_mode = @join_modes[@join_selected]?\nend\njoin_settings = @join_settings.not_nil!\nthis_room = config.control_system.not_nil!.id\nbegin\n @join_lock.synchronize do\n if master\n notify_rooms = join_settings.type.fully_aware? ? join_settings.all_rooms : mode.room_ids\n if mode.linked?\n if notify_rooms.includes?(this_room)\n else\n raise(\"unable to perform join from this system\")\n end\n end\n @join_selected = mode.id\n @join_master = true\n if (old_mode && old_mode.linked?) && join_settings.type.independent?\n unlink(old_mode.room_ids - mode.room_ids)\n end\n if !mode.linked?\n return unlink(notify_rooms)\n end\n reset_remote_cache\n self[:join_confirmed] = @join_confirmed = false\n notify_rooms.each do |room_id|\n if room_id == this_room\n next\n end\n (((system(room_id)).get(\"System\", 1)).join_mode(mode_id, master: false)).get\n end\n persist_join_state\n self[:join_master] = master\n self[:joined] = @join_selected\n self[:join_confirmed] = @join_confirmed = true\n else\n @join_selected = mode.id\n @join_master = false\n reset_remote_cache\n persist_join_state\n self[:join_master] = master\n self[:joined] = mode.id\n self[:join_confirmed] = @join_confirmed = true\n end\n end\nensure\n update_available_ui\n if mode.linked? && !power?\n power(true)\n end\n mode.join_actions.each do |action|\n if master || !action.master_only?\n system[action.module_id].__send__(action.function_name, action.arguments, action.named_args)\n end\n end\n if !@light_scenes.empty? && master\n select_lighting_scene(@light_scenes.keys.first)\n end\nend\n"}},{"html_id":"lighting_independent:Bool-instance-method","name":"lighting_independent","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":691,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L691"},"def":{"name":"lighting_independent","return_type":"Bool","visibility":"Public","body":"@lighting_independent"}},{"html_id":"lighting_scene?-instance-method","name":"lighting_scene?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L775"},"def":{"name":"lighting_scene?","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String, id: Int32)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\ncurrent = status?(Int32, :lighting_scene)\nscene = scenes.find do |available|\n available[:id] == current\nend\nscene ? \"current lighting scene: #{scene[:name]}\" : \"lights in unknown state\"\n"}},{"html_id":"lighting_scenes-instance-method","name":"lighting_scenes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L768"},"def":{"name":"lighting_scenes","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\nscenes.map do |scene|\n scene[:name].downcase\nend\n"}},{"html_id":"linked_outputs:Hash(String,Hash(String,String))-instance-method","name":"linked_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L122"},"def":{"name":"linked_outputs","visibility":"Public","body":"@linked_outputs"}},{"html_id":"local_accessories:Array(Accessory)-instance-method","name":"local_accessories","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":812,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L812"},"def":{"name":"local_accessories","return_type":"Array(Accessory)","visibility":"Public","body":"@local_accessories"}},{"html_id":"local_help:Help-instance-method","name":"local_help","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L118"},"def":{"name":"local_help","return_type":"Help","visibility":"Public","body":"@local_help"}},{"html_id":"local_lighting_area:LightingArea|Nil-instance-method","name":"local_lighting_area","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":690,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L690"},"def":{"name":"local_lighting_area","return_type":"LightingArea | ::Nil","visibility":"Public","body":"@local_lighting_area"}},{"html_id":"local_mics:Array(Microphone)-instance-method","name":"local_mics","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":833,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L833"},"def":{"name":"local_mics","return_type":"Array(Microphone)","visibility":"Public","body":"@local_mics"}},{"html_id":"local_outputs:Array(String)-instance-method","name":"local_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L123"},"def":{"name":"local_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_outputs"}},{"html_id":"local_preview_outputs:Array(String)-instance-method","name":"local_preview_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L126"},"def":{"name":"local_preview_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_preview_outputs"}},{"html_id":"local_tabs:Array(Tab)-instance-method","name":"local_tabs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L119"},"def":{"name":"local_tabs","return_type":"Array(Tab)","visibility":"Public","body":"@local_tabs"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Sets the mute state on a signal node within the system.","summary":"

Sets the mute state on a signal node within the system.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/meet.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L667"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"input_or_output = index\naudio = @master_audio\nif audio\n logger.debug do\n \"setting master mute to #{state}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nmixer = system[audio.module_id]\nset_master_mute(mixer, audio, state)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"power(state:Bool,unlink:Bool=false)-instance-method","name":"power","doc":"Sets the overall room power state.","summary":"

Sets the overall room power state.

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"args_string":"(state : Bool, unlink : Bool = false)","args_html":"(state : Bool, unlink : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L210"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"visibility":"Public","body":"if state == (status?(Bool, :active))\n return\nend\nlogger.debug do\n \"Powering #{state ? \"up\" : \"down\"}\"\nend\nself[:active] = state\nunlink = @unjoin_on_shutdown.nil? ? unlink : !!@unjoin_on_shutdown\nremotes_before = remote_rooms\nsys = system\nif state\n apply_master_audio_default\n apply_camera_defaults\n apply_default_routes\n apply_mic_defaults\n if first_output = @tabs.first?.try do |__arg0|\n __arg0.inputs.first\n end\n selected_input(first_output)\n end\nelse\n if unlink\n unlink_systems\n end\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n if devices = @shutdown_devices\n devices.each do |device|\n sys[device].power(false)\n end\n else\n (sys.implementing(Interface::Powerable)).power(false)\n end\n if sys.exists?(@local_vidconf)\n sys[@local_vidconf].hangup\n end\nend\nremotes_before.each do |room|\n room.power(state, unlink)\nend\n{% for func in EXT_POWER %}\n begin\n {{ func.id }}(state, unlink)\n rescue error\n logger.warn(exception: error) { \"error in power state function: #{ {{ func.id.stringify }} }\" }\n end\n {% end %}\nstate\n"}},{"html_id":"power?:Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L257"},"def":{"name":"power?","return_type":"Bool","visibility":"Public","body":"(status?(Bool, :active)) || false"}},{"html_id":"remove_preset(preset:String,camera:String)-instance-method","name":"remove_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":974,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L974"},"def":{"name":"remove_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].remove_position(preset, cam.index || 0)\n"}},{"html_id":"route(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true,called_from_join:Bool=false)-instance-method","name":"route","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L343"},"def":{"name":"route","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"visibility":"Public","body":"route_signal(input, output, max_dist, simulate, follow_additional_routes)\nif links = @linked_outputs[output]?\n links.each do |_sys_id, remote_out|\n route_signal(input, remote_out, max_dist, simulate, follow_additional_routes)\n end\nend\nif !called_from_join\n remote_systems.each do |remote_system|\n room = remote_system.room_logic\n sys_id = remote_system.system_id\n if links = @linked_outputs[output]?\n if remote_out = links[sys_id]?\n room.route(input, remote_out, max_dist, simulate, follow_additional_routes, true)\n end\n end\n end\nend\n"}},{"html_id":"route_input(input_id:String,output_id:String)-instance-method","name":"route_input","abstract":false,"args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"args_string":"(input_id : String, output_id : String)","args_html":"(input_id : String, output_id : String)","location":{"filename":"src/place/meet.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L321"},"def":{"name":"route_input","args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"visibility":"Public","body":"keys = all_inputs\nhash = keys.each_with_object({} of String => String) do |input, memo|\n memo[input.downcase] = input\nend\ninput_actual = hash[input_id.downcase]?\nif input_actual\nelse\n raise(\"invalid input #{input_id}, must be one of #{keys.join(\", \")}\")\nend\nkeys = all_outputs\nhash = keys.each_with_object({} of String => String) do |output, memo|\n memo[output.downcase] = output\nend\noutput_actual = hash[output_id.downcase]?\nif output_actual\nelse\n raise(\"invalid output #{output_id}, must be one of: #{keys.join(\", \")}\")\nend\npower(true)\nselected_input(input_actual)\nroute(input_actual, output_actual)\n"}},{"html_id":"select_lighting_scene(scene:String,push_to_remotes:Bool=true)-instance-method","name":"select_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"args_string":"(scene : String, push_to_remotes : Bool = true)","args_html":"(scene : String, push_to_remotes : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L755"},"def":{"name":"select_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"visibility":"Public","body":"scene_id = @light_scenes[scene.downcase]?\nif scene_id\nelse\n raise(ArgumentError.new(\"invalid scene '#{scene}', valid scenes are: #{@light_scenes.keys.join(\", \")}\"))\nend\nsystem[@light_module].set_lighting_scene(scene_id, @light_area)\nif push_to_remotes && lighting_independent\n remote_rooms.each do |room|\n room.select_lighting_scene(scene, false)\n end\nend\n"}},{"html_id":"selected_camera(camera:String)-instance-method","name":"selected_camera","doc":"This is the camera input that is currently selected so we can switch between\ndifferent cameras","summary":"

This is the camera input that is currently selected so we can switch between different cameras

","abstract":false,"args":[{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(camera : String)","args_html":"(camera : String)","location":{"filename":"src/place/meet.cr","line_number":948,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L948"},"def":{"name":"selected_camera","args":[{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"self[:selected_camera] = camera\ncam = camera_details(camera)\nsystem[cam.mod].power(true)\ncase camera_in = @vc_camera_in\nin String\n route_signal(camera, camera_in)\nin Array(String)\n camera_in.each do |cin|\n route_signal(camera, cin)\n end\nin Nil\nend\nif camera_vc_in = cam.vc_camera_input\n system[@local_vidconf].camera_select(camera_vc_in)\nend\n"}},{"html_id":"selected_input(name:String,simulate:Bool=false):Nil-instance-method","name":"selected_input","doc":"This is the currently selected input\nif the user selects an output then this will be routed to it","summary":"

This is the currently selected input if the user selects an output then this will be routed to it

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"args_string":"(name : String, simulate : Bool = false) : Nil","args_html":"(name : String, simulate : Bool = false) : Nil","location":{"filename":"src/place/meet.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L374"},"def":{"name":"selected_input","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"selected_tab = @tabs.find() do |__arg2|\n __arg2.inputs.includes?(name)\nend.try(&.name)\nif selected_tab || !simulate\n self[:selected_input] = name\n self[:selected_tab] = selected_tab || @tabs.first\n sys = system\n if sys.exists?(name)\n mod = sys[name]\n if mod.implements?(Interface::Powerable)\n mod.power(true)\n end\n end\nend\nif !simulate\n if @preview_outputs.empty?\n if @outputs.size == 1\n route_signal(name, @outputs.first)\n end\n else\n @preview_outputs.each do |output|\n route_signal(name, output)\n end\n end\n remote_rooms.each do |room|\n room.selected_input(name, true)\n end\nend\n"}},{"html_id":"set_lighting_scene(scene:String)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"}],"args_string":"(scene : String)","args_html":"(scene : String)","location":{"filename":"src/place/meet.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L784"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"}],"visibility":"Public","body":"scenes = lighting_scenes\nif scenes.includes?(scene.downcase)\nelse\n raise(\"invalid scene #{scene}, must be one of: #{scenes.join(\", \")}\")\nend\nselect_lighting_scene(scene)\n\"current lighting scene: #{scene}\"\n"}},{"html_id":"set_microphone(level:Float64,mute:Bool=false)-instance-method","name":"set_microphone","doc":"level is a percentage 0.0->100.0","summary":"

level is a percentage 0.0->100.0

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(level : Float64, mute : Bool = false)","args_html":"(level : Float64, mute : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":903,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L903"},"def":{"name":"set_microphone","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"visibility":"Public","body":"@local_mics.each do |mic|\n mixer = system[mic.module_id]\n if level_index = mic.level_index\n mixer.fader(mic.level_id, level, level_index)\n else\n mixer.fader(mic.level_id, level)\n end\n if mute_index = mic.mute_index\n mixer.mute(mic.level_id, mute, mute_index)\n else\n mixer.mute(mic.level_id, mute)\n end\nend"}},{"html_id":"set_power_state(state:Bool)-instance-method","name":"set_power_state","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L205"},"def":{"name":"set_power_state","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power(state)"}},{"html_id":"set_volume(level:Int32|Float64)-instance-method","name":"set_volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/meet.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L616"},"def":{"name":"set_volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"power(true)\nif level.zero?\n audio_mute(true)\n \"audio was muted\"\nelse\n audio_mute(false)\n volume(level, \"\")\n \"volume set to #{level.to_f.clamp(0.0, 100.0)}\"\nend\n"}},{"html_id":"unlink_internal_use-instance-method","name":"unlink_internal_use","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1149"},"def":{"name":"unlink_internal_use","visibility":"Public","body":"begin\n @join_lock.synchronize do\n if @join_modes[@join_selected]?.try() do |__arg11|\n __arg11.room_ids.empty?\n end\n else\n @join_selected = nil\n end\n @join_master = true\n self[:join_confirmed] = @join_confirmed = false\n self[:join_master] = true\n self[:joined] = @join_selected\n reset_remote_cache\n persist_join_state\n update_available_ui\n self[:join_confirmed] = @join_confirmed = true\n end\n if @mute_on_unlink && (status?(Bool, :active))\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n end\nrescue error\n logger.error(exception: error) do\n \"ui state failed to be applied unjoining room\"\n end\nend"}},{"html_id":"unlink_systems-instance-method","name":"unlink_systems","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1135"},"def":{"name":"unlink_systems","visibility":"Public","body":"begin\n if unlink_mode = @join_modes.find do |_id, mode|\n !mode.linked?\n end\n join_mode(unlink_mode[0])\n else\n currrent_selected = @join_selected\n if currrent_selected && (current_mode = @join_modes[currrent_selected]?)\n unlink(current_mode.room_ids)\n end\n unlink_internal_use\n end\nrescue error\n logger.warn(exception: error) do\n \"unlink failed\"\n end\nend"}},{"html_id":"unroute(output:String)-instance-method","name":"unroute","doc":"we want to unroute any signal going to the display\nor if it's a direct connection, we want to mute the display.","summary":"

we want to unroute any signal going to the display or if it's a direct connection, we want to mute the display.

","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"String"}],"args_string":"(output : String)","args_html":"(output : String)","location":{"filename":"src/place/meet.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L366"},"def":{"name":"unroute","args":[{"name":"output","external_name":"output","restriction":"String"}],"visibility":"Public","body":"begin\n route(\"MUTE\", output)\nrescue error\n logger.debug(exception: error) do\n \"failed to unroute #{output}\"\n end\nend"}},{"html_id":"volume(level:Int32|Float64,input_or_output:String)-instance-method","name":"volume","doc":"Set the volume of a signal node within the system.","summary":"

Set the volume of a signal node within the system.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"args_string":"(level : Int32 | Float64, input_or_output : String)","args_html":"(level : Int32 | Float64, input_or_output : String)","location":{"filename":"src/place/meet.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L645"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"visibility":"Public","body":"audio = @master_audio\nif audio\n logger.debug do\n \"setting master volume to #{level}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = audio.min_level..audio.max_level\nlevel_actual = percentage * (range.end - range.begin)\nlevel_actual = (level_actual + range.begin.to_f).round(1)\nmixer = system[audio.module_id]\nset_master_volume(mixer, audio, level_actual)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L629"},"def":{"name":"volume?","visibility":"Public","body":"(status?(Float64, :volume)) || 0.0"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory","path":"Place/Meet/Accessory.html","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":795,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L795"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":796,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L796"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controls:Array(Control)-instance-method","name":"controls","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":809,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L809"},"def":{"name":"controls","return_type":"Array(Control)","visibility":"Public","body":"@controls"}},{"html_id":"module:String-instance-method","name":"module","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L808"},"def":{"name":"module","return_type":"String","visibility":"Public","body":"@module"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":807,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L807"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory/Control","path":"Place/Meet/Accessory/Control.html","kind":"struct","full_name":"Place::Meet::Accessory::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":798,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L798"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet/Accessory","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":799,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L799"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L804"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"@arguments"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":803,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L803"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":802,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L802"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":801,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L801"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Meet/AudioFader","path":"Place/Meet/AudioFader.html","kind":"class","full_name":"Place::Meet::AudioFader","name":"AudioFader","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":487,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L487"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L488"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L490"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"default_level:Float64|Nil-instance-method","name":"default_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L498"},"def":{"name":"default_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@default_level"}},{"html_id":"default_muted:Bool|Nil-instance-method","name":"default_muted","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L497"},"def":{"name":"default_muted","return_type":"Bool | ::Nil","visibility":"Public","body":"@default_muted"}},{"html_id":"implements_volume?-instance-method","name":"implements_volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L522"},"def":{"name":"implements_volume?","visibility":"Public","body":"level_id == \"\\e\""}},{"html_id":"level_feedback:String-instance-method","name":"level_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L506"},"def":{"name":"level_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_feedback).nil?\n @level_feedback = (begin\n id = level_id\n \"fader#{id.is_a?(Array) ? id.first : id}\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"level_feedback=(level_feedback:String)-instance-method","name":"level_feedback=","abstract":false,"args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"args_string":"(level_feedback : String)","args_html":"(level_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L506"},"def":{"name":"level_feedback=","args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"visibility":"Public","body":"@level_feedback = level_feedback"}},{"html_id":"level_feedback?:String?-instance-method","name":"level_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L516"},"def":{"name":"level_feedback?","visibility":"Public","body":"@level_feedback"}},{"html_id":"level_id:String|Array(String)|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L494"},"def":{"name":"level_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Array(String)|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(level_id : String | Array(String) | Nil)","args_html":"(level_id : String | Array(String) | Nil)","location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L494"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_index:Int32|Nil-instance-method","name":"level_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":500,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L500"},"def":{"name":"level_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level_index"}},{"html_id":"max_level:Float64-instance-method","name":"max_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":504,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L504"},"def":{"name":"max_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @max_level).nil?\n @max_level = (100.0)\nelse\n __temp_1\nend"}},{"html_id":"min_level:Float64-instance-method","name":"min_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":503,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L503"},"def":{"name":"min_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @min_level).nil?\n @min_level = (0.0)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L514"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @module_id).nil?\n @module_id = (\"Mixer_1\")\nelse\n __temp_1\nend"}},{"html_id":"module_id=(module_id:String)-instance-method","name":"module_id=","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String)","args_html":"(module_id : String)","location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L514"},"def":{"name":"module_id=","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"visibility":"Public","body":"@module_id = module_id"}},{"html_id":"mute_feedback:String-instance-method","name":"mute_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L510"},"def":{"name":"mute_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @mute_feedback).nil?\n @mute_feedback = (begin\n id = mute_id || level_id\n \"fader#{id.is_a?(Array) ? id.first : id}_mute\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"mute_feedback=(mute_feedback:String)-instance-method","name":"mute_feedback=","abstract":false,"args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"args_string":"(mute_feedback : String)","args_html":"(mute_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L510"},"def":{"name":"mute_feedback=","args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"visibility":"Public","body":"@mute_feedback = mute_feedback"}},{"html_id":"mute_feedback?:String?-instance-method","name":"mute_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L516"},"def":{"name":"mute_feedback?","visibility":"Public","body":"@mute_feedback"}},{"html_id":"mute_id:String|Array(String)|Nil-instance-method","name":"mute_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":495,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L495"},"def":{"name":"mute_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"if (__temp_1 = @mute_id).nil?\n @mute_id = (level_id)\nelse\n __temp_1\nend"}},{"html_id":"mute_index:Int32|Nil-instance-method","name":"mute_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":501,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L501"},"def":{"name":"mute_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mute_index"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L493"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"use_defaults?-instance-method","name":"use_defaults?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":518,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L518"},"def":{"name":"use_defaults?","visibility":"Public","body":"(@module_id.nil? && (level_id.nil? || level_id.try(&.empty?))) && (mute_id.nil? || mute_id.try(&.empty?))"}}]},{"html_id":"drivers/Place/Meet/CamDetails","path":"Place/Meet/CamDetails.html","kind":"class","full_name":"Place::Meet::CamDetails","name":"CamDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":925,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L925"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L926"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"index:String|Int32|Nil-instance-method","name":"index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":929,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L929"},"def":{"name":"index","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@index"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":928,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L928"},"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"vc_camera_input:String|Int32|Nil-instance-method","name":"vc_camera_input","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":930,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L930"},"def":{"name":"vc_camera_input","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@vc_camera_input"}}]},{"html_id":"drivers/Place/Meet/JoinAction","path":"Place/Meet/JoinAction.html","kind":"class","full_name":"Place::Meet::JoinAction","name":"JoinAction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":994,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L994"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":995,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L995"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":999,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L999"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":998,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L998"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"master_only?:Bool-instance-method","name":"master_only?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1001,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1001"},"def":{"name":"master_only?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @master_only).nil?\n @master_only = (true)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":997,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L997"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1000,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1000"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinDetail","path":"Place/Meet/JoinDetail.html","kind":"class","full_name":"Place::Meet::JoinDetail","name":"JoinDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1004,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1004"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1005,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1005"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1007,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1007"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"join_actions:Array(JoinAction)-instance-method","name":"join_actions","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1010,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1010"},"def":{"name":"join_actions","return_type":"Array(JoinAction)","visibility":"Public","body":"if (__temp_1 = @join_actions).nil?\n @join_actions = ([] of JoinAction)\nelse\n __temp_1\nend"}},{"html_id":"linked?:Bool-instance-method","name":"linked?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1017,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1017"},"def":{"name":"linked?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @linked).nil?\n @linked = (!room_ids.empty?)\nelse\n __temp_1\nend"}},{"html_id":"merge_outputs?:Bool-instance-method","name":"merge_outputs?","doc":"Do we want to merge the outputs (all outputs on all screens)\nor do we want them as seperate displays","summary":"

Do we want to merge the outputs (all outputs on all screens) or do we want them as seperate displays

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1014,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1014"},"def":{"name":"merge_outputs?","return_type":"Bool","visibility":"Public","body":"@merge_outputs"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1008,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1008"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_ids:Array(String)-instance-method","name":"room_ids","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1009,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1009"},"def":{"name":"room_ids","return_type":"Array(String)","visibility":"Public","body":"@room_ids"}}]},{"html_id":"drivers/Place/Meet/JoinSetting","path":"Place/Meet/JoinSetting.html","kind":"class","full_name":"Place::Meet::JoinSetting","name":"JoinSetting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1020,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1020"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1021,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1021"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_rooms:Set(String)-instance-method","name":"all_rooms","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1028,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1028"},"def":{"name":"all_rooms","return_type":"Set(String)","visibility":"Public","body":"if (__temp_1 = @all_rooms).nil?\n @all_rooms = (modes.reduce(Set(String).new) do |rooms, mode|\n rooms.concat(mode.room_ids)\n end)\nelse\n __temp_1\nend"}},{"html_id":"lock_remote:Bool-instance-method","name":"lock_remote","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1024,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1024"},"def":{"name":"lock_remote","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @lock_remote).nil?\n @lock_remote = (false)\nelse\n __temp_1\nend"}},{"html_id":"modes:Array(JoinDetail)-instance-method","name":"modes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1025,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1025"},"def":{"name":"modes","return_type":"Array(JoinDetail)","visibility":"Public","body":"@modes"}},{"html_id":"type:JoinType-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1023,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1023"},"def":{"name":"type","return_type":"JoinType","visibility":"Public","body":"if (__temp_1 = @type).nil?\n @type = (JoinType::Independent)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinType","path":"Place/Meet/JoinType.html","kind":"enum","full_name":"Place::Meet::JoinType","name":"JoinType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":986,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L986"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Independent","name":"Independent","value":"0","doc":"only rooms part of the join need to be notified","summary":"

only rooms part of the join need to be notified

"},{"id":"FullyAware","name":"FullyAware","value":"1","doc":"even rooms not part of the join, need to be notified","summary":"

even rooms not part of the join, need to be notified

"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"doc":"=========================\nRoom Joining Coordination\n=========================","summary":"

========================= Room Joining Coordination =========================

","instance_methods":[{"html_id":"fully_aware?-instance-method","name":"fully_aware?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":991,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L991"},"def":{"name":"fully_aware?","visibility":"Public","body":"self == FullyAware"}},{"html_id":"independent?-instance-method","name":"independent?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":988,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L988"},"def":{"name":"independent?","visibility":"Public","body":"self == Independent"}}]},{"html_id":"drivers/Place/Meet/LightingArea","path":"Place/Meet/LightingArea.html","kind":"alias","full_name":"Place::Meet::LightingArea","name":"LightingArea","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":685,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L685"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/LightingScene","path":"Place/Meet/LightingScene.html","kind":"alias","full_name":"Place::Meet::LightingScene","name":"LightingScene","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L686"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(name: String, id: UInt32, icon: String, opacity: Float64)","aliased_html":"{name: String, id: UInt32, icon: String, opacity: Float64}","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/Microphone","path":"Place/Meet/Microphone.html","kind":"alias","full_name":"Place::Meet::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":831,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L831"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Meet::AudioFader","aliased_html":"Place::Meet::AudioFader","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/RemoteSystem","path":"Place/Meet/RemoteSystem.html","kind":"struct","full_name":"Place::Meet::RemoteSystem","name":"RemoteSystem","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1204"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(system_id:String,room_logic:PlaceOS::Driver::Proxy::Driver)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"args_string":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","args_html":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","location":{"filename":"src/place/meet.cr","line_number":1208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1208"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, room_logic)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"room_logic:PlaceOS::Driver::Proxy::Driver-instance-method","name":"room_logic","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1206"},"def":{"name":"room_logic","return_type":"PlaceOS::Driver::Proxy::Driver","visibility":"Public","body":"@room_logic"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1205,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet.cr#L1205"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]}]},{"html_id":"drivers/Place/MQTT","path":"Place/MQTT.html","kind":"class","full_name":"Place::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L86"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L100"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L40"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\n@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L46"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\n@queue_size = (setting?(Int32, :queue_size)) || 1000\nif rate_limit = setting?(Int32, :rate_limit)\n @rate_limited = true\n @wait_time = (1.0 / rate_limit.to_f).seconds\nelse\n @rate_limited = false\nend\nexisting = @subs\n@subs = (setting?(Array(String), :subscriptions)) || ([] of String)\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n perform_operation do\n client.unsubscribe(sub)\n end\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\n end\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L115"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\nperform_operation do\n @mqtt.not_nil!.ping\nend\n"}},{"html_id":"publish(key:String,payload:String):Nil-instance-method","name":"publish","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(key : String, payload : String) : Nil","args_html":"(key : String, payload : String) : Nil","location":{"filename":"src/place/mqtt.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L109"},"def":{"name":"publish","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"publishing payload to #{key}\"\nend\nperform_operation do\n @mqtt.not_nil!.publish(key, payload)\nend\nnil\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/mqtt.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt.cr#L120"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}}]},{"html_id":"drivers/Place/Parking","path":"Place/Parking.html","kind":"module","full_name":"Place::Parking","name":"Parking","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Parking/Locations","path":"Place/Parking/Locations.html","kind":"class","full_name":"Place::Parking::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOKING_TYPE","name":"BOOKING_TYPE","value":"\"parking\""},{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"parking-spaces\""},{"id":"RESERVED_RELEASED","name":"RESERVED_RELEASED","value":"\"parking-released\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place/Parking","kind":"module","full_name":"Place::Parking","name":"Parking"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/parking/locations.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L125"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L137"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L59"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L110"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/parking/locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L116"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_993|\n user_email, _name = __temp_993\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\ntimezone = (config.control_system.not_nil!.timezone.presence || (setting?(String, :time_zone)).presence) || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\nschedule.clear\nschedule.every(@poll_rate) do\n query_parking_bookings\nend\nschedule.in(5.seconds) do\n query_parking_bookings\nend\n"}},{"html_id":"parking_spaces:Hash(String,Array(ParkingSpace))-instance-method","name":"parking_spaces","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L237"},"def":{"name":"parking_spaces","return_type":"Hash(String, Array(ParkingSpace))","visibility":"Public","body":"metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\nend\nzone_parking = Hash(String, Array(ParkingSpace)).new\nmetadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if spaces = level[:metadata][METADATA_KEY]?.try(&.details)\n zone_parking[zone.id] = spaces\n end\n end\nend\nzone_parking\n"}},{"html_id":"query_parking_bookings:Nil-instance-method","name":"query_parking_bookings","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L259"},"def":{"name":"query_parking_bookings","return_type":"Nil","visibility":"Public","body":"reserved_spaces = parking_spaces.tap(&.each_value(&.select!(&.reserved?)))\nlogger.debug do\n count = 0\n reserved_spaces.each_value do |space|\n count = count + space.size\n end\n \"queried reserved spaces, found #{count}\"\nend\nparking_zones = reserved_spaces.keys\nbookings = [] of JSON::Any\nparking_zones.each do |zone|\n bookings.concat(staff_api.query_bookings(type: BOOKING_TYPE, zones: {zone}).get.as_a)\nend\nbookings = bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried parking bookings, found #{bookings.size}\"\nend\nrelease_bookings = [] of JSON::Any\nparking_zones.each do |zone|\n release_bookings.concat(staff_api.query_bookings(type: RESERVED_RELEASED, zones: {zone}).get.as_a)\nend\nrelease_bookings = release_bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried released spaces, found #{release_bookings.size}\"\nend\nrelease_bookings.each do |booking|\n parking_space = booking.asset_id\n reserved_spaces.each_value do |spaces|\n spaces.reject! do |space|\n space.id == parking_space\n end\n end\nend\nnow = Time.local(@timezone)\nres_start = now.at_beginning_of_day.to_unix\nres_end = now.at_end_of_day.to_unix\nlevel_to_building = level_buildings\nreserved_spaces.each do |level_zone, reservations|\n building_zone = level_to_building[level_zone]?\n if building_zone\n else\n next\n end\n reservations.each do |reservation|\n bookings << Place::Booking.new(id: -1, booking_type: BOOKING_TYPE, booking_start: res_start, booking_end: res_end, user_id: reservation.assigned_to.as(String), user_email: reservation.assigned_to.as(String), user_name: reservation.assigned_name.as(String), zones: [level_zone, building_zone], booked_by_name: reservation.assigned_name.as(String), booked_by_email: reservation.assigned_to.as(String), asset_id: reservation.id, checked_in: true)\n end\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zone_filter:Array(String)-instance-method","name":"zone_filter","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L65"},"def":{"name":"zone_filter","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zone_filter).nil?\n @zone_filter = (begin\n lvb = level_buildings\n (lvb.keys + lvb.values).uniq\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Parking/Locations/ChildMetadata","path":"Place/Parking/Locations/ChildMetadata.html","kind":"alias","full_name":"Place::Parking::Locations::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/Details","path":"Place/Parking/Locations/Details.html","kind":"struct","full_name":"Place::Parking::Locations::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(ParkingSpace)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L224"},"def":{"name":"details","return_type":"Array(ParkingSpace)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(ParkingSpace))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"args_string":"(details : Array(ParkingSpace))","args_html":"(details : Array(ParkingSpace))","location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L224"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Parking/Locations/Metadata","path":"Place/Parking/Locations/Metadata.html","kind":"alias","full_name":"Place::Parking::Locations::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Parking::Locations::Details)","aliased_html":"Hash(String, Place::Parking::Locations::Details)","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/ParkingSpace","path":"Place/Parking/Locations/ParkingSpace.html","kind":"struct","full_name":"Place::Parking::Locations::ParkingSpace","name":"ParkingSpace","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L208"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"assigned_name:String|Nil-instance-method","name":"assigned_name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_name"}},{"html_id":"assigned_name=(assigned_name:String|Nil)-instance-method","name":"assigned_name=","abstract":false,"args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"args_string":"(assigned_name : String | Nil)","args_html":"(assigned_name : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name=","args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_name = assigned_name"}},{"html_id":"assigned_to:String|Nil-instance-method","name":"assigned_to","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_to"}},{"html_id":"assigned_to=(assigned_to:String|Nil)-instance-method","name":"assigned_to=","abstract":false,"args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"args_string":"(assigned_to : String | Nil)","args_html":"(assigned_to : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to=","args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_to = assigned_to"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L210"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L210"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L211"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L211"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"reserved?-instance-method","name":"reserved?","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L216"},"def":{"name":"reserved?","visibility":"Public","body":"!!@assigned_to"}}]},{"html_id":"drivers/Place/Parking/Locations/Zone","path":"Place/Parking/Locations/Zone.html","kind":"alias","full_name":"Place::Parking::Locations::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/parking/locations.cr#L227"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}}]}]},{"html_id":"drivers/Place/Pinger","path":"Place/Pinger.html","kind":"class","full_name":"Place::Pinger","name":"Pinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/pinger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"period = (setting?(Int32, :ping_every)) || 60\nperiod = (period * 1000) + (rand(1000))\nschedule.clear\nschedule.every(period.milliseconds) do\n ping\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/pinger.cr#L25"},"def":{"name":"ping","visibility":"Public","body":"hostname = config.ip.not_nil!\npinger = ::Pinger.new(hostname, count: 3)\npinger.ping\npingable = pinger.pingable\nif !pingable\n self[:last_error] = (pinger.exception || pinger.warning) || \"unknown error\"\nend\nset_connected_state(pingable)\nself[:pingable] = pingable\n"}}]},{"html_id":"drivers/Place/QSCPhoneDialing","path":"Place/QSCPhoneDialing.html","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing","abstract":false,"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"Code for handling QSC phone dialing, if available","summary":"

Code for handling QSC phone dialing, if available

","instance_methods":[{"html_id":"qsc_dial_hangup-instance-method","name":"qsc_dial_hangup","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L73"},"def":{"name":"qsc_dial_hangup","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.hangup_id)\n"}},{"html_id":"qsc_dial_makecall-instance-method","name":"qsc_dial_makecall","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L67"},"def":{"name":"qsc_dial_makecall","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.dial_id)\n"}},{"html_id":"qsc_dial_pad(number:String)-instance-method","name":"qsc_dial_pad","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"}],"args_string":"(number : String)","args_html":"(number : String)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L46"},"def":{"name":"qsc_dial_pad","args":[{"name":"number","external_name":"number","restriction":"String"}],"visibility":"Public","body":"if number.size > 0\nelse\n return\nend\nchar = number[0]\ncase char\nwhen '\\b'\n if @dial_string.size == 0\n else\n @dial_string = @dial_string[0..-2]\n end\nwhen '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'\n @dial_string = \"#{@dial_string}#{char}\"\nelse\n logger.info do\n \"unsupported dial char provided #{char}\"\n end\nend\nqsc_dial_pad_sync\n"}},{"html_id":"qsc_dial_pad_clear:Nil-instance-method","name":"qsc_dial_pad_clear","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L62"},"def":{"name":"qsc_dial_pad_clear","return_type":"Nil","visibility":"Public","body":"@dial_string = \"\"\nqsc_dial_pad_sync\n"}}],"types":[{"html_id":"drivers/Place/QSCPhoneDialing/QscPhone","path":"Place/QSCPhoneDialing/QscPhone.html","kind":"class","full_name":"Place::QSCPhoneDialing::QscPhone","name":"QscPhone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},"doc":"This data will be stored in the tab","summary":"

This data will be stored in the tab

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dial_id:String-instance-method","name":"dial_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L8"},"def":{"name":"dial_id","return_type":"String","visibility":"Public","body":"@dial_id"}},{"html_id":"dtmf_id:String-instance-method","name":"dtmf_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L13"},"def":{"name":"dtmf_id","return_type":"String","visibility":"Public","body":"@dtmf_id"}},{"html_id":"hangup_id:String-instance-method","name":"hangup_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L9"},"def":{"name":"hangup_id","return_type":"String","visibility":"Public","body":"@hangup_id"}},{"html_id":"number_id:String-instance-method","name":"number_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L7"},"def":{"name":"number_id","return_type":"String","visibility":"Public","body":"@number_id"}},{"html_id":"offhook_id:String-instance-method","name":"offhook_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L12"},"def":{"name":"offhook_id","return_type":"String","visibility":"Public","body":"@offhook_id"}},{"html_id":"ringing_id:String-instance-method","name":"ringing_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L11"},"def":{"name":"ringing_id","return_type":"String","visibility":"Public","body":"@ringing_id"}},{"html_id":"status_id:String-instance-method","name":"status_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/qsc_phone_dialing.cr#L10"},"def":{"name":"status_id","return_type":"String","visibility":"Public","body":"@status_id"}}]}]},{"html_id":"drivers/Place/RbpRemoteLogger","path":"Place/RbpRemoteLogger.html","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@logging_enabled = (setting?(Bool, \"enabled\")) || true\n@max_log_entries = (setting?(Int32, \"max_log_entries\")) || 1000\n@debug = (setting?(Bool, \"debug\")) || false\nself[:enabled] = @logging_enabled\n"}},{"html_id":"post_event(payload:JSON::Any|String)-instance-method","name":"post_event","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"args_string":"(payload : JSON::Any | String)","args_html":"(payload : JSON::Any | String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L28"},"def":{"name":"post_event","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"visibility":"Public","body":"if @debug\n logger.debug do\n \"Received: #{payload}\"\n end\nend\nif payload.is_a?(JSON::Any)\n payload = payload.to_json\nend\nif payload.is_a?(String)\n payload = payload.to_s\nend\nentry = Entry.from_json(payload)\n__temp_946 = entry.device_id\n@entries[__temp_946]? || (@entries[__temp_946] = [] of JSON::Any)\n@entries[entry.device_id] = (@entries[entry.device_id].unshift(JSON.parse(payload))).truncate(0, @max_log_entries)\nself[:entries] = @entries\nentry\n"}}],"types":[{"html_id":"drivers/Place/RbpRemoteLogger/Entry","path":"Place/RbpRemoteLogger/Entry.html","kind":"class","full_name":"Place::RbpRemoteLogger::Entry","name":"Entry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/RbpRemoteLogger","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:JSON::Any-instance-method","name":"data","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data","return_type":"JSON::Any","visibility":"Public","body":"@data"}},{"html_id":"data=(data:JSON::Any)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"args_string":"(data : JSON::Any)","args_html":"(data : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"visibility":"Public","body":"@data = data"}},{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"device_id=(device_id:String)-instance-method","name":"device_id=","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"args_string":"(device_id : String)","args_html":"(device_id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id=","args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"visibility":"Public","body":"@device_id = device_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"metadata:JSON::Any-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata","return_type":"JSON::Any","visibility":"Public","body":"@metadata"}},{"html_id":"metadata=(metadata:JSON::Any)-instance-method","name":"metadata=","abstract":false,"args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"args_string":"(metadata : JSON::Any)","args_html":"(metadata : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata=","args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"visibility":"Public","body":"@metadata = metadata"}},{"html_id":"raw:JSON::Any-instance-method","name":"raw","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw","return_type":"JSON::Any","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:JSON::Any)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"args_string":"(raw : JSON::Any)","args_html":"(raw : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"visibility":"Public","body":"@raw = raw"}},{"html_id":"subtype:String-instance-method","name":"subtype","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype","return_type":"String","visibility":"Public","body":"@subtype"}},{"html_id":"subtype=(subtype:String)-instance-method","name":"subtype=","abstract":false,"args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"args_string":"(subtype : String)","args_html":"(subtype : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype=","args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"visibility":"Public","body":"@subtype = subtype"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Place/RoomBookingApproval","path":"Place/RoomBookingApproval.html","kind":"class","full_name":"Place::RoomBookingApproval","name":"RoomBookingApproval","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L64"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L13"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L69"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L45"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n bookings.select! do |event|\n event.status == \"tentative\"\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L29"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L38"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval.cr#L14"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/RoomBookingApprovalAltnerative","path":"Place/RoomBookingApprovalAltnerative.html","kind":"class","full_name":"Place::RoomBookingApprovalAltnerative","name":"RoomBookingApprovalAltnerative","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval_alternate.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L81"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_accept, comment: comment || @default_accept_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L19"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L87"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_decline, comment: comment || @default_decline_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L63"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n @events_requiring_approval_are_tentative ? bookings.select! do |event|\n event.status == \"tentative\"\n end : bookings.select! do |booking|\n (room_attendee(booking)).try(&.response_status).in?({\"needsAction\", \"tentative\"})\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L47"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L56"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n@notify_host_on_accept = (setting?(Bool, :notify_host_on_accept)) || true\n@notify_host_on_decline = (setting?(Bool, :notify_host_on_decline)) || true\n@default_accept_message = (setting?(String, :default_accept_message)) || \"Request accepted\"\n@default_decline_message = (setting?(String, :default_decline_message)) || \"Request not accepted\"\n@events_requiring_approval_are_tentative = (setting?(Bool, :events_requiring_approval_are_tentative)) || true\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/room_booking_approval_alternate.cr#L20"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Router","path":"Place/Router.html","kind":"module","full_name":"Place::Router","name":"Router","abstract":false,"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Router/Core","path":"Place/Router/Core.html","kind":"module","full_name":"Place::Router::Core","name":"Core","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L11"},{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Core routing methods and functionality. This exists as module to enable\ninclusion in other drivers, such as room logic, that provide auxillary\nfunctionality to signal distribution.","summary":"

Core routing methods and functionality.

","instance_methods":[{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L42"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"load_siggraph"}},{"html_id":"route_signal(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true)-instance-method","name":"route_signal","doc":"Routes signal from *input* to *output*.\n\nPerforms all intermediate device interaction based on current system\nconfig.","summary":"

Routes signal from input to output.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","location":{"filename":"src/place/router/core.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L186"},"def":{"name":"route_signal","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"requesting route from #{input} to #{output}\"\nend\nsrc, dst = resolver.values_at(input, output)\ndst_node = siggraph[dst]\nsrc_node = siggraph[src]\npath = (siggraph.route(src, dst, max_dist)) || (raise(\"no route found\"))\nexecs = path.compact_map do |__temp_941|\n node, edge, next_node = __temp_941\n logger.debug do\n \"#{node} → #{next_node}\"\n end\n if next_node.locked\n raise(\"#{next_node} is locked, aborting\")\n end\n case edge\n in SignalGraph::Edge::Static\n nil\n in SignalGraph::Edge::Active\n Promise.defer(timeout: 1.second) do\n next_node.source = siggraph[src].source\n if !simulate\n mod = proxy_for(edge.mod)\n case func = edge.func\n in SignalGraph::Edge::Func::Mute\n dst_layer = dst_node.ref.layer.downcase\n case dst_layer\n when \"audio\", \"video\"\n mod.mute(func.state, func.index, dst_layer)\n else\n mod.mute(func.state, func.index)\n end\n in SignalGraph::Edge::Func::Select\n mod.switch_to(func.input)\n in SignalGraph::Edge::Func::Switch\n mod.switch({func.input => [func.output]}, func.layer)\n end\n end\n nil\n end\n end\nend\nif follow_additional_routes\n routes = {} of String => Tuple(String, String, Int32 | ::Nil, Bool, Bool)\n if following_outputs = dst_node[\"followers\"]?.try(&.as_a)\n logger.debug do\n \"routing #{following_outputs.size} additional followers\"\n end\n following_outputs.each do |output_follow|\n routes[output_follow.as_s] = {input, output_follow.as_s, max_dist, simulate, false}\n end\n end\n ignore_source_routes = dst_node[\"ignore_source_routes\"]?.try(&.as_bool) || false\n if !ignore_source_routes && (additional_routes = src_node[\"perform_routes\"]?.try(&.as_h))\n logger.debug do\n \"perfoming #{additional_routes.size} additional routes\"\n end\n additional_routes.each do |ad_output, ad_input|\n routes[ad_output] = {ad_input.as_s, ad_output, max_dist, simulate, false}\n end\n end\n spawn do\n routes.each_value do |route|\n begin\n route_signal(*route)\n rescue error\n logger.warn(exception: error) do\n \"issue routing: #{route[0]}=>#{route[1]}\"\n end\n end\n end\n end\nend\nlogger.debug do\n \"awaiting responses\"\nend\nexecs.each do |promise|\n begin\n promise.get\n rescue error\n logger.warn(exception: error) do\n \"processing route\"\n end\n end\nend\n:ok\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/NodeRef","path":"Place/Router/Core/NodeRef.html","kind":"alias","full_name":"Place::Router::Core::NodeRef","name":"NodeRef","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Ref","aliased_html":"Place::Router::SignalGraph::Node::Ref","const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"}},{"html_id":"drivers/Place/Router/Core/Settings","path":"Place/Router/Core/Settings.html","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections","path":"Place/Router/Core/Settings/Connections.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Types for representing the settings format for defining connections.","summary":"

Types for representing the settings format for defining connections.

","class_methods":[{"html_id":"parse(map:Map,sys:String)-class-method","name":"parse","doc":"Parses a `Map` containing the system conectivity into a set of nodes and\nlinks that can be used for assembling the `SignalGraph`.","summary":"

Parses a Map containing the system conectivity into a set of nodes and links that can be used for assembling the SignalGraph.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(map : Map, sys : String)","args_html":"(map : Map, sys : String)","location":{"filename":"src/place/router/settings.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L105"},"def":{"name":"parse","args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"nodes = [] of SignalGraph::Node::Ref\nlinks = [] of ::Tuple(SignalGraph::Node::Ref, SignalGraph::Node::Ref)\naliases = {} of String => SignalGraph::Node::Ref\nmake_alias = ->(name : String, node : SignalGraph::Node::Ref) do\n if prev = aliases[name]?\n raise(\"invalid configuration: \\\"#{name}\\\" refers to both #{prev} and #{node}\")\n end\n aliases[name] = node\nend\nmap.each do |sink, inputs|\n if sink.is_a?(Alias)\n source = inputs\n if source.is_a?(DeviceOutput)\n else\n raise(\"invalid configuration: \\\"#{sink}\\\" must link to a DeviceOutput\")\n end\n onode = SignalGraph::Output.new(sys, source.mod, source.idx, source.output, source.layer)\n nodes << onode\n make_alias.call(sink.name, onode)\n else\n if inputs.is_a?(DeviceOutput)\n raise(\"invalid configuration: \\\"#{sink}\\\" must specify inputs as either a hash or array\")\n end\n nodes << (SignalGraph::Device.new(sys, sink.mod, sink.idx))\n if inputs.is_a?(Array)\n inputs = (inputs.each.with_index(1)).map(&.reverse)\n end\n inputs.each do |input, input_source|\n inode = SignalGraph::Input.new(sys, sink.mod, sink.idx, input)\n nodes << inode\n if input_source.is_a?(Alias)\n make_alias.call(input_source.name, inode)\n next\n end\n onode = case input_source\n in Device\n SignalGraph::Device.new(sys, input_source.mod, input_source.idx)\n in DeviceOutput\n SignalGraph::Output.new(sys, input_source.mod, input_source.idx, input_source.output, input_source.layer)\n end\n nodes << onode\n links << {onode, inode}\n end\n end\nend\n{nodes, links, aliases}\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Alias","path":"Place/Router/Core/Settings/Connections/Alias.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Alias","name":"Alias","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Alias used to refer to a signal node that does not have an accompanying\nmodule. This can be useful for declaring the concept of a device that is\nattached to an input (e.g. `\"*Laptop\"`). All alias' must be prefixed with\nan asterisk ('*') within connections settings.","summary":"

Alias used to refer to a signal node that does not have an accompanying module.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L73"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n new(name)\nend"}}],"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone)"}},{"html_id":"copy_with(name_name=@name)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"args_string":"(name _name = @name)","args_html":"(name _name = @name)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L71"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"visibility":"Public","body":"self.class.new(_name)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","path":"Place/Router/Core/Settings/Connections/Deserializable.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"instance_methods":[{"html_id":"from_json_object_key?(key:String)-instance-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L16"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"parse?(key)"}},{"html_id":"get_parts(module_id:String):Tuple(String,Int32|Nil)-instance-method","name":"get_parts","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Tuple(String, Int32 | Nil)","args_html":"(module_id : String) : Tuple(String, Int32 | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L20"},"def":{"name":"get_parts","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"::Tuple(String, Int32 | ::Nil)","visibility":"Public","body":"mod_name, match, index = module_id.rpartition('_')\nif match.empty?\n {module_id, 1}\nelse\n {mod_name, index.to_i?}\nend\n"}},{"html_id":"parse?(raw:String)-instance-method","name":"parse?","abstract":true,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L14"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":""}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Device","path":"Place/Router/Core/Settings/Connections/Device.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Module name of a device within the local system e.g. `\"Switcher_1\"`.","summary":"

Module name of a device within the local system e.g.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L34"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod, idx = get_parts(raw)\nif idx\n new(mod, idx)\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"args_string":"(mod : String, idx : Int32)","args_html":"(mod : String, idx : Int32)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx)","args_html":"(mod _mod = @mod, idx _idx = @idx)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L32"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/DeviceOutput","path":"Place/Router/Core/Settings/Connections/DeviceOutput.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Reference to a specific output on a device that has multiple outputs.\nThis is a concatenation of the `Device` reference a `.` and the output.\nFor example, output 3 of Switcher_1 is `\"Switcher_1.3\"`.","summary":"

Reference to a specific output on a device that has multiple outputs.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L47"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod_name, match, outp = raw.rpartition('.')\nif !match.empty?\n mod, idx = get_parts(mod_name)\n if idx\n outp_idx, match, layer = outp.rpartition('!')\n if match.empty?\n output = outp.to_i? || outp\n new(mod, idx, output, nil)\n else\n output = outp_idx.to_i? || outp_idx\n new(mod, idx, output, layer)\n end\n end\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32,output:String|Int32,layer:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"args_string":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","args_html":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L46"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","args_html":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L45"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx, _output, _layer)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"layer:String|Nil-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String | ::Nil","visibility":"Public","body":"@layer"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"output:String|Int32-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"String | Int32","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Input","path":"Place/Router/Core/Settings/Connections/Input.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Identifier for the input on Sink.","summary":"

Identifier for the input on Sink.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Map","path":"Place/Router/Core/Settings/Connections/Map.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Map","name":"Map","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Structure for a full connection map.\n\n```json\n{\n \"Display_1\": {\n \"hdmi\": \"Switcher_1.1\"\n },\n \"Switcher_1\": [\"*Foo\", \"*Bar\"],\n \"*FloorBox\": \"Switcher_1.2\"\n}\n```","summary":"

Structure for a full connection map.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Sink","path":"Place/Router/Core/Settings/Connections/Sink.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Sink","name":"Sink","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L85"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device that recieves the signal.","summary":"

The device that recieves the signal.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Source","path":"Place/Router/Core/Settings/Connections/Source.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Source","name":"Source","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device a signal is originating from.","summary":"

The device a signal is originating from.

"}]},{"html_id":"drivers/Place/Router/Core/Settings/IOMeta","path":"Place/Router/Core/Settings/IOMeta.html","kind":"alias","full_name":"Place::Router::Core::Settings::IOMeta","name":"IOMeta","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L166"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, JSON::Any))","aliased_html":"Hash(String, Hash(String, JSON::Any))","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Input/outputs and their associated metadata. Attributes specified here are\nprogated to the assocated input status keys. This allows information such as\nname, type etc to be exposed to UI's.","summary":"

Input/outputs and their associated metadata.

"}]},{"html_id":"drivers/Place/Router/Core/SignalNode","path":"Place/Router/Core/SignalNode.html","kind":"struct","full_name":"Place::Router::Core::SignalNode","name":"SignalNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/core.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"doc":"Wrapper for providng simple interaction with a signal node and it's\nassociated driver.","summary":"

Wrapper for providng simple interaction with a signal node and it's associated driver.

","constructors":[{"html_id":"new(label:Place::Router::SignalGraph::Node::Label,proxy:Future::Compute(PlaceOS::Driver::Proxy::Driver))-class-method","name":"new","abstract":false,"args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"args_string":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","args_html":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","location":{"filename":"src/place/router/core.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L20"},"def":{"name":"new","args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(label, proxy)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"proxy-instance-method","name":"proxy","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L25"},"def":{"name":"proxy","visibility":"Public","body":"@proxy.get"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/core.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L29"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}},{"html_id":"watch(&handler:self->)-instance-method","name":"watch","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L33"},"def":{"name":"watch","yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"visibility":"Public","body":"@label.watch do\n handler.call(self)\nend"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/place/router/core.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/core.cr#L23"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" @label.\n{{ call }}\n\n \n"}}]}]},{"html_id":"drivers/Place/Router/Digraph","path":"Place/Router/Digraph.html","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Labelled digraph. Holds node labels of type *N* and edge labels of type *E*.\n\nNodes are stored on UInt64 ID's. This provides an interface that should feel\nsimilar to `Indexable` for interacting with nodes labels. Similarly edges can\nbe placed and retrieved by using a dual index of {predescessor, successor}.\n\nOPTIMIZE: replace with a sparse matrix and graphBLAS operations.","summary":"

Labelled digraph.

","constructors":[{"html_id":"new(initial_capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"args_string":"(initial_capacity = nil)","args_html":"(initial_capacity = nil)","location":{"filename":"src/place/router/digraph.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L19"},"def":{"name":"new","args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"visibility":"Public","body":"_ = Digraph(N, E).allocate\n_.initialize(initial_capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](pred_id,succ_id)-instance-method","name":"[]","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id)","args_html":"(pred_id, succ_id)","location":{"filename":"src/place/router/digraph.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L68"},"def":{"name":"[]","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"visibility":"Public","body":"fetch(pred_id, succ_id) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} does not exist\"))\nend"}},{"html_id":"[](id)-instance-method","name":"[]","doc":"Retrieves the label attached to node *id*.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L42"},"def":{"name":"[]","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).attr"}},{"html_id":"[]=(pred_id,succ_id,attr)-instance-method","name":"[]=","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(pred_id, succ_id, attr)","args_html":"(pred_id, succ_id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L81"},"def":{"name":"[]=","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(pred_id, succ_id, attr) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} already exists\"))\nend"}},{"html_id":"[]=(id,attr)-instance-method","name":"[]=","doc":"Insert a new node.","summary":"

Insert a new node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(id, attr)","args_html":"(id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L53"},"def":{"name":"[]=","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(id, attr) do\n raise(Error.new(\"Node #{id} already exists\"))\nend"}},{"html_id":"breadth_first_search(from,&:UInt64->Bool|Nil)-instance-method","name":"breadth_first_search","doc":"Perform a breadth first search across the graph, starting at *from*.\n\nEach node id is yielded as it's traversed. The search will terminate when\nthis block returns true. If `nil` is returned the node is skipped, but the\ntraversal continues.\n\nResults are provided as a Hash that includes all reached nodes as the keys,\nand their predecessor as the associated value.","summary":"

Perform a breadth first search across the graph, starting at from.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""}],"args_string":"(from, & : UInt64 -> Bool | Nil)","args_html":"(from, & : UInt64 -> Bool | Nil)","location":{"filename":"src/place/router/digraph.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L106"},"def":{"name":"breadth_first_search","args":[{"name":"from","external_name":"from","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"","external_name":"","restriction":"(UInt64 -> Bool | ::Nil)"},"visibility":"Public","body":"paths = Hash(UInt64, UInt64).new\nqueue = Deque(UInt64).new(1, from)\nwhile pred_id = queue.shift?\n (node(pred_id)).succ.each_key do |succ_id|\n if paths.has_key?(succ_id)\n next\n end\n done = yield succ_id\n if done.nil?\n next\n end\n paths[succ_id] = pred_id\n if done\n return paths\n end\n queue << succ_id\n end\nend\n"}},{"html_id":"clear(*args,**options)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@nodes.clear(*args, **options)"}},{"html_id":"clear(*args,**options,&)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@nodes.clear(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"fetch(pred_id,succ_id,&):E-instance-method","name":"fetch","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id, &) : E","args_html":"(pred_id, succ_id, &) : E","location":{"filename":"src/place/router/digraph.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L75"},"def":{"name":"fetch","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"yields":2,"block_arity":2,"return_type":"E","visibility":"Public","body":"succ_id = check_node_exists(succ_id)\n(node(pred_id)).succ.fetch(succ_id) do\n yield pred_id, succ_id\nend\n"}},{"html_id":"fetch(id,&):N-instance-method","name":"fetch","doc":"Retrieves the label attached to node *id*. Yields if it does not exist.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id, &) : N","args_html":"(id, &) : N","location":{"filename":"src/place/router/digraph.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L47"},"def":{"name":"fetch","args":[{"name":"id","external_name":"id","restriction":""}],"yields":1,"block_arity":1,"return_type":"N","visibility":"Public","body":"node = node(id) do\n return yield id\nend\nnode.attr\n"}},{"html_id":"indegree(id)-instance-method","name":"indegree","doc":"The number of incomming edges to *id*.","summary":"

The number of incomming edges to id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L183"},"def":{"name":"indegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"id = check_node_exists(id)\n@nodes.reduce(0) do |count, __temp_944|\n _, node = __temp_944\n if node.succ.has_key?(id)\n count = count + 1\n end\n count\nend\n"}},{"html_id":"insert(pred_id,succ_id,attr:E,&)-instance-method","name":"insert","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"args_string":"(pred_id, succ_id, attr : E, &)","args_html":"(pred_id, succ_id, attr : E, &)","location":{"filename":"src/place/router/digraph.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L88"},"def":{"name":"insert","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"yields":2,"block_arity":2,"visibility":"Public","body":"succ_id = check_node_exists(succ_id)\npred = node(pred_id)\nif pred.succ.has_key?(succ_id)\n yield pred_id, succ_id\nelse\n pred.succ[succ_id] = attr\nend\n"}},{"html_id":"insert(id,attr:N,&)-instance-method","name":"insert","doc":"Inserts a node. Yields if it already exists.","summary":"

Inserts a node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"args_string":"(id, attr : N, &)","args_html":"(id, attr : N, &)","location":{"filename":"src/place/router/digraph.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L58"},"def":{"name":"insert","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"yields":1,"block_arity":1,"visibility":"Public","body":"id = id.to_u64\nif @nodes.has_key?(id)\n yield id\nelse\n @nodes[id] = Node(N, E).new(attr, {} of UInt64 => E)\nend\n"}},{"html_id":"nodes:Enumerable(UInt64)-instance-method","name":"nodes","doc":"Provides all nodes present within the graph.\n\nNOTE: ordering of nodes is _not_ defined.","summary":"

Provides all nodes present within the graph.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L149"},"def":{"name":"nodes","return_type":"Enumerable(UInt64)","visibility":"Public","body":"@nodes.each_key"}},{"html_id":"outdegree(id)-instance-method","name":"outdegree","doc":"The outgoing edges from *id*.","summary":"

The outgoing edges from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L178"},"def":{"name":"outdegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).succ.size"}},{"html_id":"path(from,to,invert=false):Enumerable(UInt64)|Nil-instance-method","name":"path","doc":"Returns a list of node IDs that form the shortest path between the passed\nnodes or `nil` if no path exists.","summary":"

Returns a list of node IDs that form the shortest path between the passed nodes or nil if no path exists.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"args_string":"(from, to, invert = false) : Enumerable(UInt64) | Nil","args_html":"(from, to, invert = false) : Enumerable(UInt64) | Nil","location":{"filename":"src/place/router/digraph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L130"},"def":{"name":"path","args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"return_type":"Enumerable(UInt64) | ::Nil","visibility":"Public","body":"from = check_node_exists(from)\nto = check_node_exists(to)\npaths = breadth_first_search(from, &.==(to))\nif paths.nil?\n return\nend\nnodes = [to]\nwhile !(nodes.last == from)\n nodes << paths[nodes.last]\nend\ninvert ? nodes : nodes.reverse!\n"}},{"html_id":"sink?(id):Bool-instance-method","name":"sink?","doc":"Checks if a node has incoming edges only.","summary":"

Checks if a node has incoming edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L154"},"def":{"name":"sink?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"(outdegree(id)).zero? && !(indegree(id)).zero?"}},{"html_id":"sinks:Enumerable(UInt64)-instance-method","name":"sinks","doc":"Provides all nodes with incoming edges only.","summary":"

Provides all nodes with incoming edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L159"},"def":{"name":"sinks","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n sink?(id)\nend"}},{"html_id":"source?(id):Bool-instance-method","name":"source?","doc":"Checks if a node has outgoing edges only.","summary":"

Checks if a node has outgoing edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L164"},"def":{"name":"source?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"!(outdegree(id)).zero? && (indegree(id)).zero?"}},{"html_id":"sources:Enumerable(UInt64)-instance-method","name":"sources","doc":"Provides all nodes with outgoing edges only.\n\nOPTIMIZE: this is _very_ slow [O(V * E)], but works for testing purposes.\nSwitching the sparse matrix should assist so not worth optimising for this\nsetup.","summary":"

Provides all nodes with outgoing edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L173"},"def":{"name":"sources","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n source?(id)\nend"}},{"html_id":"subtree(id):Enumerable(UInt64)-instance-method","name":"subtree","doc":"Provides all nodes reachable from *id*.","summary":"

Provides all nodes reachable from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Enumerable(UInt64)","args_html":"(id) : Enumerable(UInt64)","location":{"filename":"src/place/router/digraph.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L192"},"def":{"name":"subtree","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Enumerable(UInt64)","visibility":"Public","body":"id = check_node_exists(id)\nSubtreeIterator.new(self, id)\n"}}],"types":[{"html_id":"drivers/Place/Router/Digraph/Error","path":"Place/Router/Digraph/Error.html","kind":"class","full_name":"Place::Router::Digraph::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"}},{"html_id":"drivers/Place/Router/Digraph/Node","path":"Place/Router/Digraph/Node.html","kind":"struct","full_name":"Place::Router::Digraph::Node(N, E)","name":"Node","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"},"constructors":[{"html_id":"new(attr:N,succ:Hash(UInt64,E))-class-method","name":"new","abstract":false,"args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"args_string":"(attr : N, succ : Hash(UInt64, E))","args_html":"(attr : N, succ : Hash(UInt64, E))","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"new","args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"visibility":"Public","body":"_ = Node(N, E).allocate\n_.initialize(attr, succ)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attr:N-instance-method","name":"attr","abstract":false,"def":{"name":"attr","return_type":"N","visibility":"Public","body":"@attr"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@attr.clone, @succ.clone)"}},{"html_id":"copy_with(attr_attr=@attr,succ_succ=@succ)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"args_string":"(attr _attr = @attr, succ _succ = @succ)","args_html":"(attr _attr = @attr, succ _succ = @succ)","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/digraph.cr#L11"},"def":{"name":"copy_with","args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"visibility":"Public","body":"self.class.new(_attr, _succ)"}},{"html_id":"succ:Hash(UInt64,E)-instance-method","name":"succ","abstract":false,"def":{"name":"succ","return_type":"Hash(UInt64, E)","visibility":"Public","body":"@succ"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph","path":"Place/Router/SignalGraph.html","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L11"},{"filename":"src/place/router/signal_graph/edge.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L3"},{"filename":"src/place/router/signal_graph/mod.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L5"},{"filename":"src/place/router/signal_graph/node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L5"},{"filename":"src/place/router/signal_graph/watchable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Mute","name":"Mute","value":"Node::Mute.instance"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Structures and types for mapping between sys,mod,idx,io referencing and the\nunderlying graph structure.\n\nThe SignalGraph class _does not_ perform any direct interaction with devices,\nbut does provide the ability to discover routes and available connectivity\nwhen may then be acted on.","summary":"

Structures and types for mapping between sys,mod,idx,io referencing and the underlying graph structure.

","class_methods":[{"html_id":"build(nodes:Enumerable(Node::Ref),links:Enumerable(Tuple(Node::Ref,Node::Ref)))-class-method","name":"build","doc":"Construct a graph from a pre-parsed configuration.\n\n*nodes* must contain the set of all signal nodes that form the device inputs\nand outputs across the system. This includes those at the \"edge\" of the\nsignal network (e.g. a input to a switcher) as well as inputs in use on\nintermediate devices (e.g. a input on a display, which in turn is attached to\nthe switcher above).\n\n*links* declares the interconnections between devices.\n\nModules associated with any of these nodes are then introspected for\nswitching, input selection and mute control based on the interfaces they\nexpose.","summary":"

Construct a graph from a pre-parsed configuration.

","abstract":false,"args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"args_string":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","args_html":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","location":{"filename":"src/place/router/signal_graph.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L93"},"def":{"name":"build","args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"visibility":"Public","body":"mod_io = Hash(Mod, ::Tuple(Set(Input), Set(Output))).new do |h, k|\n h[k] = {Set(Input).new, Set(Output).new}\nend\nsiggraph = new(initial_capacity: nodes.size)\nsiggraph.insert(Mute)\nnodes.each do |node|\n siggraph.insert(node)\n case node\n when Input\n inputs, _ = mod_io[node.mod]\n inputs << node\n when Output\n _, outputs = mod_io[node.mod]\n outputs << node\n end\nend\nlinks.each do |source, dest|\n siggraph.connect(source, dest)\nend\nmod_io.each do |mod, __temp_942|\n inputs, outputs = __temp_942\n siggraph.link(mod, inputs, outputs)\nend\nsiggraph.inputs.each do |node|\n node.source = node.ref\nend\nsiggraph\n"}}],"instance_methods":[{"html_id":"[](node:Node::Ref)-instance-method","name":"[]","doc":"Retrieves the labelled state for *node*.","summary":"

Retrieves the labelled state for node.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref)","args_html":"(node : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L130"},"def":{"name":"[]","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"visibility":"Public","body":"g[node.id]"}},{"html_id":"[](node_id)-instance-method","name":"[]","doc":"Retrieves the labelled state for the signal node at *node_id*.","summary":"

Retrieves the labelled state for the signal node at node_id.

","abstract":false,"args":[{"name":"node_id","external_name":"node_id","restriction":""}],"args_string":"(node_id)","args_html":"(node_id)","location":{"filename":"src/place/router/signal_graph.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L135"},"def":{"name":"[]","args":[{"name":"node_id","external_name":"node_id","restriction":""}],"visibility":"Public","body":"g[node_id]"}},{"html_id":"input?(node:Node::Ref):Bool-instance-method","name":"input?","doc":"Checks if *node* is a system input.","summary":"

Checks if node is a system input.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L161"},"def":{"name":"input?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.sink?(node.id)"}},{"html_id":"inputs(destination:Node::Ref)-instance-method","name":"inputs","doc":"Provide all signal nodes that can be routed to *destination*.","summary":"

Provide all signal nodes that can be routed to destination.

","abstract":false,"args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"args_string":"(destination : Node::Ref)","args_html":"(destination : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L172"},"def":{"name":"inputs","args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"visibility":"Public","body":"(g.subtree(destination.id)).map do |id|\n g[id]\nend"}},{"html_id":"inputs-instance-method","name":"inputs","doc":"Provide the signal nodes that form system inputs.","summary":"

Provide the signal nodes that form system inputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L166"},"def":{"name":"inputs","visibility":"Public","body":"g.sinks.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"output?(node:Node::Ref):Bool-instance-method","name":"output?","doc":"Checks if *node* is a system output.","summary":"

Checks if node is a system output.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L177"},"def":{"name":"output?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.source?(node.id)"}},{"html_id":"outputs-instance-method","name":"outputs","doc":"Provide the signal nodes that form system outputs.","summary":"

Provide the signal nodes that form system outputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L182"},"def":{"name":"outputs","visibility":"Public","body":"g.sources.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"route(source:Node::Ref,destination:Node::Ref,max_dist=nil)-instance-method","name":"route","doc":"Find the signal path that connects *source* to *dest*, or `nil` if this is\nnot possible.\n\nProvides an `Iterator` that provides labels across each node, the edge, and\nsubsequent node.","summary":"

Find the signal path that connects source to dest, or nil if this is not possible.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"args_string":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","args_html":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","location":{"filename":"src/place/router/signal_graph.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L144"},"def":{"name":"route","args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"visibility":"Public","body":"path = g.path(destination.id, source.id, invert: true)\nif path\nelse\n return nil\nend\nif max_dist && path.size > max_dist\n return nil\nend\n(path.each_cons(2, true)).map do |__temp_943|\n succ, pred = __temp_943\n {g[succ], g[pred, succ], g[pred]}\nend\n"}}],"types":[{"html_id":"drivers/Place/Router/SignalGraph/Device","path":"Place/Router/SignalGraph/Device.html","kind":"alias","full_name":"Place::Router::SignalGraph::Device","name":"Device","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Device","aliased_html":"Place::Router::SignalGraph::Node::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge","path":"Place/Router/SignalGraph/Edge.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Active","path":"Place/Router/SignalGraph/Edge/Active.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Active","name":"Active","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"new(mod:Mod,func:Func::Type)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"args_string":"(mod : Mod, func : Func::Type)","args_html":"(mod : Mod, func : Func::Type)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, func)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @func.clone)"}},{"html_id":"copy_with(mod_mod=@mod,func_func=@func)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"args_string":"(mod _mod = @mod, func _func = @func)","args_html":"(mod _mod = @mod, func _func = @func)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _func)"}},{"html_id":"func:Func::Type-instance-method","name":"func","abstract":false,"def":{"name":"func","return_type":"Func::Type","visibility":"Public","body":"@func"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","path":"Place/Router/SignalGraph/Edge/Func.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Mute","path":"Place/Router/SignalGraph/Edge/Func/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(state:Bool,index:Int32|String=0)-class-method","name":"new","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool, index : Int32 | String = 0)","args_html":"(state : Bool, index : Int32 | String = 0)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"new","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(state, index)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@state.clone, @index.clone)"}},{"html_id":"copy_with(state_state=@state,index_index=@index)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"args_string":"(state _state = @state, index _index = @index)","args_html":"(state _state = @state, index _index = @index)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"copy_with","args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"visibility":"Public","body":"self.class.new(_state, _index)"}},{"html_id":"index:Int32|String-instance-method","name":"index","abstract":false,"def":{"name":"index","return_type":"Int32 | String","visibility":"Public","body":"@index"}},{"html_id":"state:Bool-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"Bool","visibility":"Public","body":"@state"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Select","path":"Place/Router/SignalGraph/Edge/Func/Select.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Select","name":"Select","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"args_string":"(input : Int32 | String)","args_html":"(input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone)"}},{"html_id":"copy_with(input_input=@input)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"args_string":"(input _input = @input)","args_html":"(input _input = @input)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"visibility":"Public","body":"self.class.new(_input)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Switch","path":"Place/Router/SignalGraph/Edge/Func/Switch.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String,output:Int32|String,layer:String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"args_string":"(input : Int32 | String, output : Int32 | String, layer : String)","args_html":"(input : Int32 | String, output : Int32 | String, layer : String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Type","path":"Place/Router/SignalGraph/Edge/Func/Type.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Func::Type","name":"Type","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch)","aliased_html":"Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Label","path":"Place/Router/SignalGraph/Edge/Label.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Label","name":"Label","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static)","aliased_html":"Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Static","path":"Place/Router/SignalGraph/Edge/Static.html","kind":"class","full_name":"Place::Router::SignalGraph::Edge::Static","name":"Static","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/edge.cr#L8"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Input","path":"Place/Router/SignalGraph/Input.html","kind":"alias","full_name":"Place::Router::SignalGraph::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceInput","aliased_html":"Place::Router::SignalGraph::Node::DeviceInput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Mod","path":"Place/Router/SignalGraph/Mod.html","kind":"class","full_name":"Place::Router::SignalGraph::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/mod.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"doc":"Reference to a PlaceOS module that provides IO nodes within the graph.","summary":"

Reference to a PlaceOS module that provides IO nodes within the graph.

","class_methods":[{"html_id":"parse?(ref)-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref)","args_html":"(ref)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L44"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"visibility":"Public","body":"if m = ref.match(/^(.+)\\/(.+)\\_(\\d+)$/)\n sys = m[1]\n mod = m[2]\n idx = m[3].to_i\n new(sys, mod, idx)\nend"}}],"constructors":[{"html_id":"new(sys:String,name:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"args_string":"(sys : String, name : String, idx : Int32)","args_html":"(sys : String, name : String, idx : Int32)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L14"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"==(other:self)-instance-method","name":"==","doc":"Returns `true` if this reference is the same as *other*. Invokes `same?`.","summary":"

Returns true if this reference is the same as other.

","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"self"}],"args_string":"(other : self)","args_html":"(other : self)","def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"self"}],"visibility":"Public","body":"if same?(other)\n return true\nend\nif @id == (other.@id)\nelse\n return false\nend\ntrue\n"}},{"html_id":"audio_muteable?-instance-method","name":"audio_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"audio_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::AudioMuteable\".in?(metadata.implements)"}},{"html_id":"camera?-instance-method","name":"camera?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"camera?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Camera\".in?(metadata.implements)"}},{"html_id":"chat_functions?-instance-method","name":"chat_functions?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"chat_functions?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ChatFunctions\".in?(metadata.implements)"}},{"html_id":"desk_control?-instance-method","name":"desk_control?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"desk_control?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DeskControl\".in?(metadata.implements)"}},{"html_id":"door_security?-instance-method","name":"door_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"door_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DoorSecurity\".in?(metadata.implements)"}},{"html_id":"electrical_relay?-instance-method","name":"electrical_relay?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"electrical_relay?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ElectricalRelay\".in?(metadata.implements)"}},{"html_id":"guest_building_access?-instance-method","name":"guest_building_access?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"guest_building_access?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::GuestBuildingAccess\".in?(metadata.implements)"}},{"html_id":"hash(hasher)-instance-method","name":"hash","doc":"See `Object#hash(hasher)`","summary":"

See Object#hash(hasher)

","abstract":false,"args":[{"name":"hasher","external_name":"hasher","restriction":""}],"args_string":"(hasher)","args_html":"(hasher)","def":{"name":"hash","args":[{"name":"hasher","external_name":"hasher","restriction":""}],"visibility":"Public","body":"hasher = @id.hash(hasher)\nhasher\n"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L12"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L10"},"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"input_muteable?-instance-method","name":"input_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputMuteable\".in?(metadata.implements)"}},{"html_id":"input_selection?-instance-method","name":"input_selection?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_selection?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputSelection\".in?(metadata.implements)"}},{"html_id":"lighting?-instance-method","name":"lighting?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lighting?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lighting\".in?(metadata.implements)"}},{"html_id":"locatable?-instance-method","name":"locatable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"locatable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Locatable\".in?(metadata.implements)"}},{"html_id":"lockers?-instance-method","name":"lockers?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lockers?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lockers\".in?(metadata.implements)"}},{"html_id":"mailer?-instance-method","name":"mailer?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Mailer\".in?(metadata.implements)"}},{"html_id":"mailer_templates?-instance-method","name":"mailer_templates?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer_templates?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::MailerTemplates\".in?(metadata.implements)"}},{"html_id":"metadata-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L19"},"def":{"name":"metadata","visibility":"Public","body":"(PlaceOS::Driver::Proxy::System.driver_metadata?(id)).not_nil!"}},{"html_id":"moveable?-instance-method","name":"moveable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"moveable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Moveable\".in?(metadata.implements)"}},{"html_id":"muteable?-instance-method","name":"muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Muteable\".in?(metadata.implements)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L9"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"powerable?-instance-method","name":"powerable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"powerable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Powerable\".in?(metadata.implements)"}},{"html_id":"selectable?-instance-method","name":"selectable?","doc":"FIXME: drop if / after renaming InputSelection -> Selectable","summary":"

FIXME drop if / after renaming InputSelection -> Selectable

","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"selectable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Selectable\".in?(metadata.implements)"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sensor?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Sensor\".in?(metadata.implements)"}},{"html_id":"sms?-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sms?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::SMS\".in?(metadata.implements)"}},{"html_id":"stoppable?-instance-method","name":"stoppable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"stoppable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Stoppable\".in?(metadata.implements)"}},{"html_id":"switchable?-instance-method","name":"switchable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"switchable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Switchable\".in?(metadata.implements)"}},{"html_id":"sys:String-instance-method","name":"sys","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L8"},"def":{"name":"sys","return_type":"String","visibility":"Public","body":"@sys"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L40"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((((io << sys) << '/') << name) << '_') << idx"}},{"html_id":"video_muteable?-instance-method","name":"video_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"video_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::VideoMuteable\".in?(metadata.implements)"}},{"html_id":"zone_access_security?-instance-method","name":"zone_access_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zone_access_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ZoneAccessSecurity\".in?(metadata.implements)"}},{"html_id":"zoomable?-instance-method","name":"zoomable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zoomable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Zoomable\".in?(metadata.implements)"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node","path":"Place/Router/SignalGraph/Node.html","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","path":"Place/Router/SignalGraph/Node/Device.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to the default / central node for a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1\n │ │ │\n │ │ └module index\n │ └module name\n └system\n","summary":"

Reference to the default / central node for a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L150"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if mod = Mod.parse?(ref)\n new(mod)\nend"}}],"constructors":[{"html_id":"new(sys,name,idx)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"args_string":"(sys, name, idx)","args_html":"(sys, name, idx)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L139"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"args_string":"(mod : Place::Router::SignalGraph::Mod)","args_html":"(mod : Place::Router::SignalGraph::Mod)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L143"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L137"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L146"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","path":"Place/Router/SignalGraph/Node/DeviceInput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal input to a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1:hdmi\n │ │ │ │\n │ │ │ └input\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal input to a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L222"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, i = ref.rpartition(':')\nif mod = Mod.parse?(m)\n input = i.to_i? || i\n new(mod, input)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(sys, name, idx, input : Int32 | String)","args_html":"(sys, name, idx, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L211"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L215"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L209"},"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L208"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L218"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << ':') << input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","path":"Place/Router/SignalGraph/Node/DeviceOutput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal output from a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Switcher_1.1!video\n │ │ │ │ │_layer\n │ │ │ └output\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal output from a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L187"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, o = ref.rpartition('.')\nif mod = Mod.parse?(m)\n output = o.to_i? || o\n new(mod, output)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,output:Int32|String,layer)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"args_string":"(sys, name, idx, output : Int32 | String, layer)","args_html":"(sys, name, idx, output : Int32 | String, layer)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L173"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,output:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L178"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, output)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L171"},"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L169"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L170"},"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L182"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << '.') << output\nif @layer == DEFAULT_LAYER\nelse\n (io << '!') << @layer\nend\n"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","path":"Place/Router/SignalGraph/Node/Label.html","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Metadata tracked against each signal node.","summary":"

Metadata tracked against each signal node.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(ref:Place::Router::SignalGraph::Node::Ref)-class-method","name":"new","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"args_string":"(ref : Place::Router::SignalGraph::Node::Ref)","args_html":"(ref : Place::Router::SignalGraph::Node::Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L12"},"def":{"name":"new","args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ref)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(key,value:JSON::Any)-instance-method","name":"[]=","doc":"Sets a metadata property of `self`.","summary":"

Sets a metadata property of self.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(key, value : JSON::Any)","args_html":"(key, value : JSON::Any)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Int)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(key, value : Int)","args_html":"(key, value : Int)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Float)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"args_string":"(key, value : Float)","args_html":"(key, value : Float)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Array)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"args_string":"(key, value : Array)","args_html":"(key, value : Array)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Hash)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"args_string":"(key, value : Hash)","args_html":"(key, value : Hash)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(key, value)","args_html":"(key, value)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"locked:Bool-instance-method","name":"locked","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L27"},"def":{"name":"locked","return_type":"Bool","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool)-instance-method","name":"locked=","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"args_string":"(locked : Bool)","args_html":"(locked : Bool)","def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"visibility":"Public","body":"(previous_def(locked)).tap do\n notify\nend"}},{"html_id":"meta:Hash(String,JSON::Any)-instance-method","name":"meta","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L33"},"def":{"name":"meta","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @meta).nil?\n @meta = (Hash(String, JSON::Any).new)\nelse\n __temp_1\nend"}},{"html_id":"meta=(meta:Hash(String,JSON::Any))-instance-method","name":"meta=","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"args_string":"(meta : Hash(String, JSON::Any))","args_html":"(meta : Hash(String, JSON::Any))","def":{"name":"meta=","args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"(previous_def(meta)).tap do\n notify\nend"}},{"html_id":"ref:Ref-instance-method","name":"ref","doc":"The `Node::Ref` used when creating this node.","summary":"

The Node::Ref used when creating this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L20"},"def":{"name":"ref","return_type":"Ref","visibility":"Public","body":"@ref"}},{"html_id":"source:Ref|Nil-instance-method","name":"source","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L23"},"def":{"name":"source","return_type":"Ref | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:Ref|Nil)-instance-method","name":"source=","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"args_string":"(source : Ref | Nil)","args_html":"(source : Ref | Nil)","def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"visibility":"Public","body":"(previous_def(source)).tap do\n notify\nend"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L15"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","path":"Place/Router/SignalGraph/Node/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Virtual node representing (any) mute source.\n\nThis may be refernced simply as `MUTE`.","summary":"

Virtual node representing (any) mute source.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L247"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if ref.upcase.ends_with?(\"MUTE\")\n instance\nend"}}],"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L235"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L240"},"def":{"name":"id","visibility":"Public","body":"0_u64"}},{"html_id":"mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L244"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L252"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << \"MUTE\""}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","path":"Place/Router/SignalGraph/Node/Ref.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LAYER","name":"DEFAULT_LAYER","value":"\"all\""}],"subclasses":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Base structure for referring to a node within the graph.","summary":"

Base structure for referring to a node within the graph.

","class_methods":[{"html_id":"resolve?(key:String,sys=nil)-class-method","name":"resolve?","doc":"Resolves a string-based node *key* to a fully-qualified reference.\n\nIf a system component is not present within *key*, this is resolved\nwithin the context of *sys*. For example:\n\n Ref.resolve(\"Display_1:hdmi\", \"sys-abc123\")\n # => DeviceInput(sys: \"sys-abc123\", mod: {\"Display\", 1}, input: \"hdmi\")\n","summary":"

Resolves a string-based node key to a fully-qualified reference.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"args_string":"(key : String, sys = nil)","args_html":"(key : String, sys = nil)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L81"},"def":{"name":"resolve?","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"visibility":"Public","body":"ref = key.includes?('/') ? key : \"#{sys}/#{key}\"\n{% if true %}\n {% for type in @type.subclasses %}\n {{ type }}.parse?(ref) || \\\n {% end %}\n nil\n {% end %}\n"}}],"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"==(other:Ref)-instance-method","name":"==","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Ref"}],"args_string":"(other : Ref)","args_html":"(other : Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L104"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"Ref"}],"visibility":"Public","body":"id == other.id"}},{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L92"},"def":{"name":"id","visibility":"Public","body":"self.class.hash ^ self.hash"}},{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"initialize","visibility":"Public","body":""}},{"html_id":"layer-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L100"},"def":{"name":"layer","visibility":"Public","body":"DEFAULT_LAYER"}},{"html_id":"local(sys:String)-instance-method","name":"local","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(sys : String)","args_html":"(sys : String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L108"},"def":{"name":"local","args":[{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"to_s.lchop(\"#{sys}/\")"}},{"html_id":"mod-instance-method","name":"mod","abstract":true,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L96"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_json(json)-instance-method","name":"to_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":""}],"args_string":"(json)","args_html":"(json)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/node.cr#L112"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":""}],"visibility":"Public","body":"json.string(to_s)"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Output","path":"Place/Router/SignalGraph/Output.html","kind":"alias","full_name":"Place::Router::SignalGraph::Output","name":"Output","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceOutput","aliased_html":"Place::Router::SignalGraph::Node::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","path":"Place/Router/SignalGraph/Watchable.html","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/watchable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"instance_methods":[{"html_id":"notify:Nil-instance-method","name":"notify","doc":"Notify subscribers with current state.","summary":"

Notify subscribers with current state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L10"},"def":{"name":"notify","return_type":"Nil","visibility":"Public","body":"@subscribers.try(&.each(&.call(self)))"}},{"html_id":"watch(initial=true,&handler:self->):Nil-instance-method","name":"watch","doc":"Subscribe to updates.","summary":"

Subscribe to updates.

","abstract":false,"args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"args_string":"(initial = true, &handler : self -> ) : Nil","args_html":"(initial = true, &handler : self -> ) : Nil","location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph/watchable.cr#L4"},"def":{"name":"watch","args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"return_type":"Nil","visibility":"Public","body":"subscribers << handler\nif initial\n handler.call(self)\nend\n"}}]}]}]},{"html_id":"drivers/Place/Schedule","path":"Place/Schedule.html","kind":"class","full_name":"Place::Schedule","name":"Schedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L356"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel(event_id:String,reason:String|Nil=nil)-instance-method","name":"cancel","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, reason : String | Nil = nil)","args_html":"(event_id : String, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L202"},"def":{"name":"cancel","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"declining event: #{event_id}\"\nend\ncal_client.decline_event(user_id: me.email, id: event_id, notify: !!reason, comment: reason)\n\"cancelled\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L38"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"lookup or search for the email and phone numbers of other staff members if you haven't been provided their details. Do not guess.\\n\"\n str << \"provides details of my daily schedule, meeting room bookings and events I'm attending.\\n\"\n str << \"meeting room bookings must have a resource as an attendee.\\n\"\n str << \"my meeting room bookings will have me as the host or creator.\\n\"\n str << \"meeting rooms are the attendees marked as resources.\\n\"\n str << \"all day events may not have an ending time.\\n\"\n str << \"internal staff have the following email domain: #{@email_domain}. We can only obtain the schedules of internal staff\\n\"\n str << \"check schedules before booking or moving meetings to ensure no one is busy at that time\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"create(event:CreateEvent)-instance-method","name":"create","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"args_string":"(event : CreateEvent)","args_html":"(event : CreateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L128"},"def":{"name":"create","args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nmy_email = me.email.downcase\nhost_email = (event.host.presence || me.email).downcase\ni_am_host = host_email == my_email\nhost_name = host_email\nattendees = event.attendees.uniq.reject do |attendee|\n attend_email = attendee.email.downcase\n if attend_email == host_email\n host_name = attendee.name\n true\n else\n if attend_email == my_email\n attendee.organizer = true\n false\n end\n end\nend\nattendees << PlaceCalendar::Event::Attendee.new(name: i_am_host ? me.name : host_name, email: host_email, response_status: \"accepted\", organizer: i_am_host)\nif event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\nend\nnew_event = PlaceCalendar::Event.new\nnew_event.attendees = attendees\nnew_event.title = event.title\nnew_event.location = event.location\nnew_event.all_day = event.all_day\nnew_event.event_start = event.starting.in(timezone)\nnew_event.event_end = event.ending.try(&.in(timezone))\nnew_event.body = event.title\nnew_event.timezone = timezone.name\nnew_event.creator = my_email\nnew_event.host = host_email\nlogger.debug do\n \"creating booking: #{new_event.inspect}\"\nend\ncreated_event = cal_client.create_event(user_id: my_email, event: new_event, calendar_id: host_email)\n(Event.from_json(created_event.to_json)).configure_times(timezone)\n"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L330"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_schedule: \"returns my schedule with event details with attendees and their response status. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", search_staff_member: \"search for a staff members phone and email addresses using odata filter queries, don't include `$filter=`, for example: `givenName eq 'mary' or startswith(surname,'smith')`, confrim with the user when there are multiple results, search for both givenName and surname using `or` if there is ambiguity\", lookup_staff_member: \"look up a staff members name and phone number by providing their email address. Use search if you only have their name\", get_schedules: \"returns busy periods of the emails specified. Search for staff first if you haven't been given their email address. This can be a person or a resource like a room. An empty schedules array means they are available\", create: \"create a calendar entry with the provided event details. Make sure the attendees are available by getting their schedules first, remember to include the host in the attendees list. An ending time is required except for all day bookings. You can specify an alternate host if booking on behalf of someone else. Don't provide a response_status for attendees when using this function. Starting and ending date times must be ISO 8601 formatted with the timezone\", modify: \"update the details of an existing event. The original id is required, otherwise you only need to provide the changes. You must provide the complete list of attendees if that list is being modified. Don't provide a response_status for attendees when using this function. You can't modify events where the start time is in the past\", cancel: \"cancels an event with an optional reason\", update_attending_status: \"use to confirm your attendance at a meeting this will update your attendee response_status in the specified meeting from your schedule. You should probably provide a reason when declining, however this is optional\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L359"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg3|\n __arg3[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"get_schedules(emails:Array(String),day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"get_schedules","abstract":false,"args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L91"},"def":{"name":"get_schedules","args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nif ending < Time.utc\n return \"past schedules are not useful\"\nend\nduration = ending - starting\nlogger.debug do\n \"getting schedules for #{emails} @ #{starting} -> #{ending}\"\nend\navailability_view_interval = {duration, 30.minutes}.min.total_minutes.to_i!\ntz = timezone\n(cal_client.get_availability(me.email, emails, starting, ending, view_interval: availability_view_interval)).map do |avail|\n {email: avail.calendar, schedule: avail.availability.map do |sched|\n {status: sched.status, starting: sched.starts_at.in(tz), ending: sched.ends_at.in(tz)}\n end}\nend\n"}},{"html_id":"lookup_staff_member(email:String)-instance-method","name":"lookup_staff_member","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L82"},"def":{"name":"lookup_staff_member","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"looking up staff member: #{email}\"\nend\ncal_client = place_calendar_client\nuser = cal_client.get_user_by_email(email)\nif user\nelse\n return \"could not find a staff member with email #{email}. Try searching for their name?\"\nend\nuser\n"}},{"html_id":"modify(event:UpdateEvent)-instance-method","name":"modify","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"args_string":"(event : UpdateEvent)","args_html":"(event : UpdateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L171"},"def":{"name":"modify","args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nexisting = cal_client.get_event(me.email, id: event.id)\nif existing\nelse\n return \"error: could not find event with id '#{event.id}', it may have been cancelled?\"\nend\n{% for param in [\"title\", \"location\", \"host\", \"attendees\"] of ::String %}\n existing.{{ param.id }} = event.{{ param.id }}.nil? ? existing.{{ param.id }} : event.{{ param.id }}.not_nil!\n {% end %}\nexisting.event_start = event.starting.nil? ? existing.event_start.in(timezone) : event.starting.not_nil!.in(timezone)\nif event.all_day\n existing.all_day = true\n existing.event_end = nil\nelse\n existing.all_day = false\n existing.event_end = event.ending.nil? ? existing.event_end.try(&.in(timezone)) : event.ending.not_nil!.in(timezone)\n if event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\n end\nend\nlogger.debug do\n \"updating event: #{existing.inspect}\"\nend\nupdated_event = cal_client.update_event(user_id: me.email, event: existing, calendar_id: existing.host)\n(Event.from_json(updated_event.to_json)).configure_times(timezone)\n"}},{"html_id":"my_schedule(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_schedule","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L52"},"def":{"name":"my_schedule","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nlogger.debug do\n \"requesting events for #{me.name} (#{me.email}) @ #{starting} -> #{ending}\"\nend\nevents = cal_client.list_events(me.email, period_start: starting, period_end: ending)\nevents = Array(Event).from_json(events.to_json)\nevents.each do |event|\n event.configure_times(timezone)\nend\nevents\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"search_staff_member(filter:String)-instance-method","name":"search_staff_member","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L75"},"def":{"name":"search_staff_member","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for staff member: #{filter}\"\nend\ncal_client = place_calendar_client\ncal_client.list_users(filter: filter)\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L334"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}},{"html_id":"update_attending_status(event_id:String,attendance:Attendance,reason:String|Nil=nil)-instance-method","name":"update_attending_status","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","args_html":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L224"},"def":{"name":"update_attending_status","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"updating attendance: #{attendance} #{reason} -> #{event_id}\"\nend\ncase attendance\nin .decline?\n cal_client.decline_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"declined\"\nin .attend?\n cal_client.accept_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"attending\"\nend\n"}}],"types":[{"html_id":"drivers/Place/Schedule/AccessToken","path":"Place/Schedule/AccessToken.html","kind":"struct","full_name":"Place::Schedule::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(token:String,expires:Int64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"args_string":"(token : String, expires : Int64 | Nil)","args_html":"(token : String, expires : Int64 | Nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, expires)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone, @expires.clone)"}},{"html_id":"copy_with(token_token=@token,expires_expires=@expires)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"args_string":"(token _token = @token, expires _expires = @expires)","args_html":"(token _token = @token, expires _expires = @expires)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L372"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"visibility":"Public","body":"self.class.new(_token, _expires)"}},{"html_id":"expires:Int64|Nil-instance-method","name":"expires","abstract":false,"def":{"name":"expires","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Place/Schedule/Attendance","path":"Place/Schedule/Attendance.html","kind":"enum","full_name":"Place::Schedule::Attendance","name":"Attendance","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attend","name":"Attend","value":"0"},{"id":"Decline","name":"Decline","value":"1"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"instance_methods":[{"html_id":"attend?-instance-method","name":"attend?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L219"},"def":{"name":"attend?","visibility":"Public","body":"self == Attend"}},{"html_id":"decline?-instance-method","name":"decline?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L220"},"def":{"name":"decline?","visibility":"Public","body":"self == Decline"}}]},{"html_id":"drivers/Place/Schedule/CreateEvent","path":"Place/Schedule/CreateEvent.html","kind":"struct","full_name":"Place::Schedule::CreateEvent","name":"CreateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L256"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L257"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L265"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L262"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L264"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L261"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L260"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L263"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L259"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/Event","path":"Place/Schedule/Event.html","kind":"class","full_name":"Place::Schedule::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L281"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L282"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L290"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L291"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"configure_times(tz:Time::Location)-instance-method","name":"configure_times","abstract":false,"args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"args_string":"(tz : Time::Location)","args_html":"(tz : Time::Location)","location":{"filename":"src/place/llm/schedule.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L311"},"def":{"name":"configure_times","args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"visibility":"Public","body":"@time_zone = tz\n@starting = event_start.in(tz)\n@ending = event_end.try(&.in(tz))\nself\n"}},{"html_id":"creator:String|Nil-instance-method","name":"creator","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L289"},"def":{"name":"creator","return_type":"String | ::Nil","visibility":"Public","body":"@creator"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L302"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"event_end:Time|Nil-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L299"},"def":{"name":"event_end","return_type":"Time | ::Nil","visibility":"Public","body":"@event_end"}},{"html_id":"event_start:Time-instance-method","name":"event_start","doc":"We convert unix time into something more readable for a human or AI","summary":"

We convert unix time into something more readable for a human or AI

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L296"},"def":{"name":"event_start","return_type":"Time","visibility":"Public","body":"@event_start"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L288"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L284"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L286"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"online_meeting_url:String|Nil-instance-method","name":"online_meeting_url","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L292"},"def":{"name":"online_meeting_url","return_type":"String | ::Nil","visibility":"Public","body":"@online_meeting_url"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":301,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L301"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L287"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"time_zone:Time::Location-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n ::raise(::NilAssertionError.new(\"Place::Schedule::Event#time_zone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_zone?:Time::Location|Nil-instance-method","name":"time_zone?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@time_zone"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","doc":"these are used to configure the JSON times correctly","summary":"

these are used to configure the JSON times correctly

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L306"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L285"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/UpdateEvent","path":"Place/Schedule/UpdateEvent.html","kind":"struct","full_name":"Place::Schedule::UpdateEvent","name":"UpdateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L268"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L269"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool|Nil-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L278"},"def":{"name":"all_day","return_type":"Bool | ::Nil","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)|Nil-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L275"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee) | ::Nil","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L277"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L274"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L271"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L273"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L276"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L272"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/User","path":"Place/Schedule/User.html","kind":"struct","full_name":"Place::Schedule::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L319"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L320"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L323"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L322"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Schedule/Zone","path":"Place/Schedule/Zone.html","kind":"struct","full_name":"Place::Schedule::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L338"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L339"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L343"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L341"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L342"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L349"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/schedule.cr#L346"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/SensorShutdown","path":"Place/SensorShutdown.html","kind":"class","full_name":"Place::SensorShutdown","name":"SensorShutdown","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/sensor_shutdown.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"event_in_progress?:Bool-instance-method","name":"event_in_progress?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L18"},"def":{"name":"event_in_progress?","return_type":"Bool","visibility":"Public","body":"@event_in_progress"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"timeout_ad_hoc = (setting?(UInt32, :timeout_ad_hoc)) || 15_u32.minutes\ntimeout_booked = (setting?(UInt32, :timeout_booked)) || 30_u32.minutes\nsubscriptions.clear\nbookings.subscribe(:status) do |_sub, status|\n update_status(status != \"\\\"free\\\"\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nav_control.subscribe(:active) do |_sub, active|\n update_room_power_state(active == \"true\")\nend\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L19"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"room_powered_on?:Bool-instance-method","name":"room_powered_on?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L21"},"def":{"name":"room_powered_on?","return_type":"Bool","visibility":"Public","body":"@room_powered_on"}},{"html_id":"sensor_stale?:Bool-instance-method","name":"sensor_stale?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L20"},"def":{"name":"sensor_stale?","return_type":"Bool","visibility":"Public","body":"@sensor_stale"}},{"html_id":"timer_active?:Bool-instance-method","name":"timer_active?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/sensor_shutdown.cr#L23"},"def":{"name":"timer_active?","return_type":"Bool","visibility":"Public","body":"@timer_active"}}]},{"html_id":"drivers/Place/Smtp","path":"Place/Smtp.html","kind":"class","full_name":"Place::Smtp","name":"Smtp","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/smtp.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/smtp.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L89"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/smtp.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L85"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/smtp.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"defaults = URI.parse(config.uri.not_nil!)\ntls_mode = if scheme = defaults.scheme\n scheme.ends_with?('s') ? EMail::Client::TLSMode::SMTPS : EMail::Client::TLSMode::STARTTLS\nelse\n EMail::Client::TLSMode::STARTTLS\nend\nport = defaults.port || 587\nhost = defaults.host || \"smtp.host\"\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@sender = (setting?(String, :sender)) || \"support@place.tech\"\n@host = (setting?(String, :host)) || host\n@port = (setting?(Int32, :port)) || port\n@tls_mode = (setting?(EMail::Client::TLSMode, :tls_mode)) || tls_mode\n@ssl_verify_ignore = (setting?(Bool, :ssl_verify_ignore)) || false\n@smtp_client = new_smtp_client\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/smtp.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/smtp.cr#L93"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"if to.is_a?(Array)\nelse\n to = {to}\nend\nif from.nil? || from.is_a?(Array)\nelse\n from = {from}\nend\nif cc.nil? || cc.is_a?(Array)\nelse\n cc = {cc}\nend\nif bcc.nil? || bcc.is_a?(Array)\nelse\n bcc = {bcc}\nend\nif reply_to.nil? || reply_to.is_a?(Array)\nelse\n reply_to = {reply_to}\nend\nmessage = EMail::Message.new\nmessage.subject(subject)\nmessage.sender(@sender)\nif from.nil? || from.empty?\n message.from(@sender)\nelse\n from.each do |_from|\n message.from(_from)\n end\nend\nto.each do |_to|\n message.to(_to)\nend\nbcc.each do |_bcc|\n message.bcc(_bcc)\nend\ncc.each do |_cc|\n message.cc(_cc)\nend\nif reply_to\n reply_to.each do |_reply|\n message.reply_to(_reply)\n end\nend\nif message_plaintext.presence.nil?\nelse\n message.message(message_plaintext.as(String))\nend\nif message_html.presence.nil?\nelse\n message.message_html(message_html.as(String))\nend\n{resource_attachments, attachments}.map(&.each).each.flatten.each do |attachment|\n attachment_io = IO::Memory.new\n Base64.decode(attachment[:content], attachment_io)\n attachment_io.rewind\n case attachment\n in Attachment\n message.attach(io: attachment_io, file_name: attachment[:file_name])\n in ResourceAttachment\n message.message_resource(io: attachment_io, file_name: attachment[:file_name], cid: attachment[:content_id])\n end\nend\nsent = false\n@send_lock.synchronize do\n smtp_client.start do\n sent = send(message)\n end\nend\nsent\n"}}]},{"html_id":"drivers/Place/SpecHelper","path":"Place/SpecHelper.html","kind":"class","full_name":"Place::SpecHelper","name":"SpecHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/spec_helper.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/spec_helper.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"implemented_in_driver-instance-method","name":"implemented_in_driver","doc":"This method will be exposed on the module","summary":"

This method will be exposed on the module

","abstract":false,"location":{"filename":"src/place/spec_helper.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/spec_helper.cr#L5"},"def":{"name":"implemented_in_driver","visibility":"Public","body":"\"woot!\""}}]},{"html_id":"drivers/Place/StaffAPI","path":"Place/StaffAPI.html","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve(booking_id:String|Int64)-instance-method","name":"approve","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L647"},"def":{"name":"approve","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"approving booking #{booking_id}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/approve\", headers: authentication)\nif response.success?\nelse\n raise(\"issue approving booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_check_in(booking_id:String|Int64,state:Bool=true,utm_source:String|Nil=nil)-instance-method","name":"booking_check_in","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L663"},"def":{"name":"booking_check_in","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"checking in booking #{booking_id} to: #{state}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n form.add(\"state\", state.to_s)\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/check_in?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue checking in booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_delete(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"booking_delete","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L676"},"def":{"name":"booking_delete","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = delete(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_state(booking_id:String|Int64,state:String)-instance-method","name":"booking_state","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(booking_id : String | Int64, state : String)","args_html":"(booking_id : String | Int64, state : String)","location":{"filename":"src/place/staff_api.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L655"},"def":{"name":"booking_state","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id} state to: #{state}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/update_state?state=#{state}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"chat_members(session_id:String):Array(String)-instance-method","name":"chat_members","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String) : Array(String)","args_html":"(session_id : String) : Array(String)","location":{"filename":"src/place/staff_api.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L289"},"def":{"name":"chat_members","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"SimpleRetry.try_to(max_attempts: 3, base_interval: 1.second, max_interval: 5.seconds) do\n response = get(\"/api/engine/v2/webrtc/members/#{session_id}\", headers: authentication)\n if response.success?\n else\n raise(\"webrtc service possibly unavailable\")\n end\n Array(String).from_json(response.not_nil!.body)\nend"}},{"html_id":"create_booking(booking_type:String,asset_id:String,user_id:String,user_email:String,user_name:String,zones:Array(String),booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,checked_in:Bool=false,approved:Bool|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,time_zone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,utm_source:String|Nil=nil,limit_override:Int64|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,attendees:Array(PlaceCalendar::Event::Attendee)|Nil=nil)-instance-method","name":"create_booking","doc":"===================================\nBOOKINGS ACTIONS\n===================================","summary":"

=================================== BOOKINGS ACTIONS ===================================

","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"args_string":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","args_html":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":531,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L531"},"def":{"name":"create_booking","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"visibility":"Public","body":"now = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nbooking_start || (booking_start = now.at_beginning_of_day.to_unix)\nbooking_end || (booking_end = now.at_end_of_day.to_unix)\nif checked_in\n checked_in_at = now.to_unix\nend\nlogger.debug do\n \"creating a #{booking_type} booking, starting #{booking_start}, asset #{asset_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\n if event_id.nil?\n else\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.nil?\n else\n form.add(\"ical_uid\", ical_uid.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"booking_type\" => booking_type, \"asset_id\" => asset_id, \"user_id\" => user_id, \"user_email\" => user_email, \"user_name\" => user_name, \"zones\" => zones, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"approved\" => approved, \"title\" => title, \"description\" => description, \"timezone\" => time_zone, \"extension_data\" => extension_data || (JSON.parse(\"{}\")), \"attendees\" => attendees}.compact.to_json)\nif response.success?\nelse\n raise(\"issue creating #{booking_type} booking, starting #{booking_start}, asset #{asset_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"create_event(event:PlaceCalendar::Event)-instance-method","name":"create_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L416"},"def":{"name":"create_event","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = post(\"/api/staff/v1/events\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"create_user(body_json:String)-instance-method","name":"create_user","abstract":false,"args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(body_json : String)","args_html":"(body_json : String)","location":{"filename":"src/place/staff_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L192"},"def":{"name":"create_user","args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/users\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to create user: #{response.status_code}\")\nend\nPlaceOS::Client::API::Models::User.from_json(response.body)\n"}},{"html_id":"delete_event(system_id:String,event_id:String)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(system_id : String, event_id : String)","args_html":"(system_id : String, event_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L423"},"def":{"name":"delete_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"response = delete(\"/api/staff/v1/events/#{event_id}?system_id=#{system_id}\", headers: authentication)\nif response.success? || (response.status_code == 404)\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"delete_user(id:String,force_removal:Bool=false):Nil-instance-method","name":"delete_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"args_string":"(id : String, force_removal : Bool = false) : Nil","args_html":"(id : String, force_removal : Bool = false) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L210"},"def":{"name":"delete_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = delete(\"/api/engine/v2/users/#{id}?force_removal=#{force_removal}\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to delete user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":761,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L761"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"getting booking #{booking_id}\"\nend\nresponse = get(\"/api/staff/v1/bookings/#{booking_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue getting booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_event(event_id:String,system_id:String|Nil=nil,calendar:String|Nil=nil)-instance-method","name":"get_event","doc":"gets an event from either the `system_id` or `calendar` if only one is provided\nif both are provided, it gets the event from `calendar` and the metadata from `system_id`\nNOTE:: the use of `calendar` will typically not work from a driver unless the X-API-Key\n has read access to it. From a driver perspective you should probably use a\n dedicated Calendar driver with application access and the query_metadata function\n below if metadata is required: `query_metadata(system_id: \"sys\", event_ref: [\"id\", \"uuid\"])`","summary":"

gets an event from either the system_id or calendar if only one is provided if both are provided, it gets the event from calendar and the metadata from system_id NOTE:: the use of calendar will typically not work from a driver unless the X-API-Key has read access to it.

","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"args_string":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","args_html":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L388"},"def":{"name":"get_event","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"visibility":"Public","body":"if calendar.presence || system_id.presence\nelse\n raise(ArgumentError.new(\"requires system_id or calendar param\"))\nend\nparams = URI::Params.build do |form|\n if calendar.presence\n form.add(\"calendar\", calendar.to_s)\n end\n if system_id.presence\n form.add(\"system_id\", system_id.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events/#{event_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"get_survey_invites(survey_id:Int64|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"get_survey_invites","abstract":false,"args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","args_html":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":772,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L772"},"def":{"name":"get_survey_invites","args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting survey_invites (survey #{survey_id}, sent #{sent})\"\nend\nparams = URI::Params.new\nif survey_id\n params[\"survey_id\"] = survey_id.to_s\nend\nif sent.nil?\nelse\n params[\"sent\"] = sent.to_s\nend\nresponse = get(\"/api/staff/v1/surveys/invitations\", params, headers: authentication)\nif response.success?\nelse\n raise(\"issue getting survey invitations (survey #{survey_id}, sent #{sent}): #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_system(id:String,complete:Bool=false)-instance-method","name":"get_system","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"args_string":"(id : String, complete : Bool = false)","args_html":"(id : String, complete : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L112"},"def":{"name":"get_system","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}?complete=#{complete}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for system id #{id}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing system #{id}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"guest_details(guest_id:String)-instance-method","name":"guest_details","doc":"===================================\nGuest details\n===================================","summary":"

=================================== Guest details ===================================

","abstract":false,"args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"args_string":"(guest_id : String)","args_html":"(guest_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L305"},"def":{"name":"guest_details","args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/guests/#{guest_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"kick_user(user_id:String,session_id:String,reason:String)-instance-method","name":"kick_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"args_string":"(user_id : String, session_id : String, reason : String)","args_html":"(user_id : String, session_id : String, reason : String)","location":{"filename":"src/place/staff_api.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L282"},"def":{"name":"kick_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/webrtc/kick/#{user_id}/#{session_id}\", headers: authentication, body: {reason: reason}.to_json)\nresponse.status_code\n"}},{"html_id":"lookup_authority_id(retry:Int32=0)-instance-method","name":"lookup_authority_id","abstract":false,"args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"args_string":"(retry : Int32 = 0)","args_html":"(retry : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L51"},"def":{"name":"lookup_authority_id","args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"visibility":"Public","body":"begin\n response = get(\"/auth/authority\")\n if response.success?\n else\n raise(\"unexpected response for /auth/authority: #{response.status_code}\\n#{response.body}\")\n end\n old_id = @authority_id\n @authority_id = (NamedTuple(id: String).from_json(response.body))[:id]\n if old_id == @authority_id\n else\n monitor_event_changes\n end\n @authority_id\nrescue error\n logger.warn(exception: error) do\n \"failed to lookup authority id\"\n end\n sleep(rand(3))\n retry = retry + 1\n if retry == 10\n return\n end\n spawn do\n lookup_authority_id(retry)\n end\nend"}},{"html_id":"merge_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"merge_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":502,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L502"},"def":{"name":"merge_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.merge(id, key, payload, description)"}},{"html_id":"metadata(id:String,key:String|Nil=nil)-instance-method","name":"metadata","doc":"===================================\nZONE METADATA\n===================================","summary":"

=================================== ZONE METADATA ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L488"},"def":{"name":"metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.fetch(id, key)"}},{"html_id":"metadata_children(id:String,key:String|Nil=nil)-instance-method","name":"metadata_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":492,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L492"},"def":{"name":"metadata_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.children(id, key)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = (setting(String, :api_key)) || \"\"\nif @api_key.presence\n @access_expires = 30.years.from_now\nend\n@place_domain = URI.parse(config.uri.not_nil!)\n@host_header = (setting?(String, :host_header)) || @place_domain.host.not_nil!\nif @api_key.presence\nelse\n return\nend\nif setting?(Bool, :disable_event_notify)\n return\nend\nschedule.clear\nschedule.every(1.hour + (rand(300)).seconds) do\n lookup_authority_id\nend\nschedule.in(1.second) do\n lookup_authority_id\nend\n"}},{"html_id":"patch_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"patch_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L429"},"def":{"name":"patch_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"push_event_status-instance-method","name":"push_event_status","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L103"},"def":{"name":"push_event_status","visibility":"Public","body":"{authority_id: @authority_id, monitoring: !!@event_monitoring, events: @notify_count, failures: @notify_fails}"}},{"html_id":"query_bookings(type:String|Nil=nil,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,zones:Array(String)=[]ofString,user:String|Nil=nil,email:String|Nil=nil,state:String|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,created_before:Int64|Nil=nil,created_after:Int64|Nil=nil,approved:Bool|Nil=nil,rejected:Bool|Nil=nil,checked_in:Bool|Nil=nil,include_checked_out:Bool|Nil=nil,extension_data:JSON::Any|Nil=nil)-instance-method","name":"query_bookings","doc":"===================================\nBOOKINGS QUERY\n===================================","summary":"

=================================== BOOKINGS QUERY ===================================

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","args_html":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L689"},"def":{"name":"query_bookings","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 30.minutes.from_now.to_unix)\nparams = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if type.presence\n form.add(\"type\", type.to_s)\n end\n if zones.empty?\n else\n form.add(\"zones\", zones.join(\",\"))\n end\n if user.presence\n form.add(\"user\", user.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n if state.presence\n form.add(\"state\", state.to_s)\n end\n if created_before\n form.add(\"created_before\", created_before.to_s)\n end\n if created_after\n form.add(\"created_after\", created_after.to_s)\n end\n if approved.nil?\n else\n form.add(\"approved\", approved.to_s)\n end\n if rejected.nil?\n else\n form.add(\"rejected\", rejected.to_s)\n end\n if checked_in.nil?\n else\n form.add(\"checked_in\", checked_in.to_s)\n end\n if event_id.presence\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if include_checked_out.nil?\n else\n form.add(\"include_checked_out\", include_checked_out.to_s)\n end\n if extension_data\n value = extension_data.as_h.map do |k, v|\n \"#{k}:#{v}\"\n end.join(\",\")\n form.add(\"extension_data\", \"{#{value}}\")\n end\nend\nlogger.debug do\n \"requesting staff/v1/bookings: #{params}\"\nend\nbookings = [] of JSON::Any\nnext_request = \"/api/staff/v1/bookings?#{params}\"\nloop do\n response = get(next_request, headers: authentication)\n if response.success?\n else\n raise(\"issue loading list of bookings (zones #{zones}): #{response.status_code}\")\n end\n links = LinkHeader.new(response)\n new_bookings = (JSON.parse(response.body)).as_a\n bookings.concat(new_bookings)\n last_req = next_request\n next_request = links[\"next\"]?\n if (next_request.nil? || new_bookings.empty?) || (last_req == next_request)\n break\n end\nend\nlogger.debug do\n \"bookings count: #{bookings.size}\"\nend\nbookings\n"}},{"html_id":"query_events(period_start:Int64,period_end:Int64,zones:Array(String)|Nil=nil,systems:Array(String)|Nil=nil,capacity:Int32|Nil=nil,features:String|Nil=nil,bookable:Bool|Nil=nil,include_cancelled:Bool|Nil=nil)-instance-method","name":"query_events","doc":"===================================\nCALENDAR EVENT ACTIONS (via staff api)\n===================================","summary":"

=================================== CALENDAR EVENT ACTIONS (via staff api) ===================================

","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L350"},"def":{"name":"query_events","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n if zones && !zones.empty?\n form.add(\"zone_ids\", zones.join(\",\"))\n end\n if systems && !systems.empty?\n form.add(\"system_ids\", systems.join(\",\"))\n end\n if capacity\n form.add(\"capacity\", capacity.to_s)\n end\n if features\n form.add(\"features\", features)\n end\n if !bookable.nil?\n form.add(\"bookable\", bookable.to_s)\n end\n if !include_cancelled.nil?\n form.add(\"include_cancelled\", include_cancelled.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_guests(period_start:Int64,period_end:Int64,zones:Array(String))-instance-method","name":"query_guests","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String))","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String))","location":{"filename":"src/place/staff_api.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L327"},"def":{"name":"query_guests","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n form.add(\"zone_ids\", zones.join(\",\"))\nend\nresponse = get(\"/api/staff/v1/guests?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_metadata(period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,field_name:String|Nil=nil,value:String|Nil=nil,system_id:String|Nil=nil,event_ref:Array(String)|Nil=nil)-instance-method","name":"query_metadata","doc":"Search for metadata that exists on events to obtain the event information.\nFor response details see `EventMetadata__Assigner` in the OpenAPI docs\nhttps://editor.swagger.io/?url=https://raw.githubusercontent.com/PlaceOS/staff-api/master/OPENAPI_DOC.yml","summary":"

Search for metadata that exists on events to obtain the event information.

","abstract":false,"args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"args_string":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","args_html":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L458"},"def":{"name":"query_metadata","args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if field_name.presence\n form.add(\"field_name\", field_name)\n end\n if value.presence\n form.add(\"value\", value)\n end\n if event_ref && !event_ref.empty?\n form.add(\"event_ref\", event_ref.join(\",\"))\n end\nend\nresponse = get(\"/api/staff/v1/events/extension_metadata/#{system_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_users(q:String|Nil=nil,limit:Int32=20,offset:Int32=0,authority_id:String|Nil=nil,include_deleted:Bool=false)-instance-method","name":"query_users","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","args_html":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L249"},"def":{"name":"query_users","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"visibility":"Public","body":"placeos_client.users.search(q: q, limit: limit, offset: offset, authority_id: authority_id, include_deleted: include_deleted)"}},{"html_id":"reject(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"reject","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L634"},"def":{"name":"reject","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"rejecting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/reject?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue rejecting booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"replace_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"replace_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L442"},"def":{"name":"replace_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = put(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"resource_token-instance-method","name":"resource_token","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L222"},"def":{"name":"resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"revive_user(id:String):Nil-instance-method","name":"revive_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L216"},"def":{"name":"revive_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{id}/revive\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to revive user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"signal(channel:String,payload:JSON::Any|Nil=nil)-instance-method","name":"signal","abstract":false,"args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"args_string":"(channel : String, payload : JSON::Any | Nil = nil)","args_html":"(channel : String, payload : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":800,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L800"},"def":{"name":"signal","args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"placeos_client.root.signal(channel, payload)"}},{"html_id":"staff_details(email:String)-instance-method","name":"staff_details","doc":"Staff details returns the information from AD","summary":"

Staff details returns the information from AD

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/staff_api.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L172"},"def":{"name":"staff_details","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/people/#{email}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for staff #{email}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing staff #{email}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"system_settings(id:String,key:String)-instance-method","name":"system_settings","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(id : String, key : String)","args_html":"(id : String, key : String)","location":{"filename":"src/place/staff_api.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L149"},"def":{"name":"system_settings","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}/settings\", headers: authentication)\nif response.success?\nelse\n raise(\"settings request failed for #{id}: #{response.status_code}\")\nend\nsetting = (Array(Setting).from_json(response.body)).select do |sub_setting|\n sub_setting.settings_string && (sub_setting.keys.includes?(key))\nend.last?\nif setting\nelse\n return nil\nend\n(YAML.parse(setting.settings_string.as(String)))[key]\n"}},{"html_id":"systems(q:String|Nil=nil,zone_id:String|Nil=nil,capacity:Int32|Nil=nil,bookable:Bool|Nil=nil,features:String|Nil=nil,limit:Int32=1000,offset:Int32=0)-instance-method","name":"systems","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","args_html":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L124"},"def":{"name":"systems","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"placeos_client.systems.search(q: q, limit: limit, offset: offset, zone_id: zone_id, capacity: capacity, bookable: bookable, features: features)"}},{"html_id":"systems_in_building(zone_id:String,ids_only:Bool=true)-instance-method","name":"systems_in_building","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"args_string":"(zone_id : String, ids_only : Bool = true)","args_html":"(zone_id : String, ids_only : Bool = true)","location":{"filename":"src/place/staff_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L159"},"def":{"name":"systems_in_building","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"visibility":"Public","body":"levels = zones(parent: zone_id, tags: [\"level\"])\nif ids_only\n hash = {} of String => Array(String)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id).map(&.id)\n end\nelse\n hash = {} of String => Array(::PlaceOS::Client::API::Models::System)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id)\n end\nend\nhash\n"}},{"html_id":"transfer_user(user_id:String,session_id:String,payload:JSON::Any)-instance-method","name":"transfer_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(user_id : String, session_id : String, payload : JSON::Any)","args_html":"(user_id : String, session_id : String, payload : JSON::Any)","location":{"filename":"src/place/staff_api.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L264"},"def":{"name":"transfer_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"status = 200\npayload_str = payload.to_json\nSimpleRetry.try_to(max_attempts: 5, base_interval: 1.second, max_interval: 10.seconds) do\n response = post(\"/api/engine/v2/webrtc/transfer/#{user_id}/#{session_id}\", headers: authentication, body: payload_str)\n status = response.status_code\n if response.success?\n else\n raise(\"client not yet connected\")\n end\nend\nstatus\n"}},{"html_id":"update_booking(booking_id:String|Int64,booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,asset_id:String|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,timezone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,approved:Bool|Nil=nil,checked_in:Bool|Nil=nil,limit_override:Int64|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"args_string":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","args_html":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":590,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L590"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id}\"\nend\ncase checked_in\nin true\n checked_in_at = Time.utc.to_unix\nin false\n checked_out_at = Time.utc.to_unix\nin nil\nend\nparams = URI::Params.build do |form|\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"checked_out_at\" => checked_out_at, \"asset_id\" => asset_id, \"title\" => title, \"description\" => description, \"timezone\" => timezone, \"extension_data\" => extension_data}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_event(system_id:String,event:PlaceCalendar::Event)-instance-method","name":"update_event","doc":"NOTE:: https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit#\nThe service account making this request needs delegated access and hence you can only edit\nevents associated with a resource calendar","summary":"

NOTE : https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit# The service account making this request needs delegated access and hence you can only edit events associated with a resource calendar

","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(system_id : String, event : PlaceCalendar::Event)","args_html":"(system_id : String, event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L409"},"def":{"name":"update_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = patch(\"/api/staff/v1/events/#{event.id}?system_id=#{system_id}\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"update_guest(id:String,body_json:String):Nil-instance-method","name":"update_guest","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L318"},"def":{"name":"update_guest","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/staff/v1/guests/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update guest #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"update_survey_invite(token:String,email:String|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"update_survey_invite","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","args_html":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":783,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L783"},"def":{"name":"update_survey_invite","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating survey invite #{token}\"\nend\nresponse = patch(\"/api/staff/v1/surveys/invitations/#{token}\", headers: authentication, body: {\"email\" => email, \"sent\" => sent}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating survey invite #{token}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"update_user(id:String,body_json:String):Nil-instance-method","name":"update_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L201"},"def":{"name":"update_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/engine/v2/users/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"user(id:String)-instance-method","name":"user","doc":"===================================\nUser details\n===================================","summary":"

=================================== User details ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/staff_api.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L187"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"placeos_client.users.fetch(id)"}},{"html_id":"user_resource_token-instance-method","name":"user_resource_token","doc":"NOTE:: this function requires \"users\" scope to be specified explicity for access","summary":"

NOTE : this function requires "users" scope to be specified explicity for access

","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L236"},"def":{"name":"user_resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{invoked_by_user_id}/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"write_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"write_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L497"},"def":{"name":"write_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.update(id, key, payload, description)"}},{"html_id":"zone(zone_id:String)-instance-method","name":"zone","doc":"===================================\nZONE INFORMATION\n===================================","summary":"

=================================== ZONE INFORMATION ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":509,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L509"},"def":{"name":"zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"placeos_client.zones.fetch(zone_id)"}},{"html_id":"zones(q:String|Nil=nil,limit:Int32=1000,offset:Int32=0,parent:String|Nil=nil,tags:Array(String)|String|Nil=nil)-instance-method","name":"zones","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","args_html":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":513,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L513"},"def":{"name":"zones","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"visibility":"Public","body":"placeos_client.zones.search(q: q, limit: limit, offset: offset, parent_id: parent, tags: tags)"}}],"types":[{"html_id":"drivers/Place/StaffAPI/PushEvent","path":"Place/StaffAPI/PushEvent.html","kind":"struct","full_name":"Place::StaffAPI::PushEvent","name":"PushEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change:String-instance-method","name":"change","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L80"},"def":{"name":"change","return_type":"String","visibility":"Public","body":"@change"}},{"html_id":"event:JSON::Any|Nil-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L82"},"def":{"name":"event","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@event"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L79"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L81"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Place/StaffAPI/Setting","path":"Place/StaffAPI/Setting.html","kind":"struct","full_name":"Place::StaffAPI::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(keys:Array(String),settings_string:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"args_string":"(keys : Array(String), settings_string : String | Nil)","args_html":"(keys : Array(String), settings_string : String | Nil)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"new","args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keys, settings_string)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L145"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@keys.clone, @settings_string.clone)"}},{"html_id":"copy_with(keys_keys=@keys,settings_string_settings_string=@settings_string)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"args_string":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","args_html":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/staff_api.cr#L144"},"def":{"name":"copy_with","args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"visibility":"Public","body":"self.class.new(_keys, _settings_string)"}},{"html_id":"keys:Array(String)-instance-method","name":"keys","abstract":false,"def":{"name":"keys","return_type":"Array(String)","visibility":"Public","body":"@keys"}},{"html_id":"settings_string:String|Nil-instance-method","name":"settings_string","abstract":false,"def":{"name":"settings_string","return_type":"String | ::Nil","visibility":"Public","body":"@settings_string"}}]}]},{"html_id":"drivers/Place/SurveyMailer","path":"Place/SurveyMailer.html","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L20"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@send_invites = (setting?(String, :send_invites)).presence\n@email_template = (setting?(String, :email_template)) || \"survey\"\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nif invites = @send_invites\n schedule.cron(invites, @time_zone) do\n send_survey_emails\n end\nend\n"}},{"html_id":"send_survey_emails-instance-method","name":"send_survey_emails","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L61"},"def":{"name":"send_survey_emails","visibility":"Public","body":"invites = Array(SurveyInvite).from_json(staff_api.get_survey_invites(sent: false).get.to_json)\nsent_invites : Hash(String, Array(Int64)) = {} of String => Array(Int64)\ninvites.each do |invite|\n if invite.sent\n next\n end\n begin\n if !(sent_surveys = sent_invites[invite.email]?) || !(sent_surveys.includes?(invite.survey_id))\n __temp_953 = invite.email\n sent_invites[__temp_953]? || (sent_invites[__temp_953] = [] of Int64)\n sent_invites[invite.email] << invite.survey_id\n mailer.send_template(to: invite.email, template: {@email_template, \"invite\"}, args: {email: invite.email, token: invite.token, survey_id: invite.survey_id})\n end\n staff_api.update_survey_invite(invite.token, sent: true)\n rescue error\n logger.warn(exception: error) do\n \"failed to send survey email to #{invite.email}\"\n end\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L45"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"[TemplateFields.new(trigger: {@email_template, \"invite\"}, name: \"Survey invite\", description: \"Email invitation sent to participants to complete a survey\", fields: [{name: \"email\", description: \"Email address of the survey recipient\"}, {name: \"token\", description: \"Unique authentication token for accessing the survey\"}, {name: \"survey_id\", description: \"Unique identifier of the survey to be completed\"}])]"}}],"types":[{"html_id":"drivers/Place/SurveyMailer/SurveyInvite","path":"Place/SurveyMailer/SurveyInvite.html","kind":"struct","full_name":"Place::SurveyMailer::SurveyInvite","name":"SurveyInvite","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/SurveyMailer","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/survey_mailer.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L95"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L95"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L92"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L92"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sent:Bool|Nil-instance-method","name":"sent","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L96"},"def":{"name":"sent","return_type":"Bool | ::Nil","visibility":"Public","body":"@sent"}},{"html_id":"sent=(sent:Bool|Nil)-instance-method","name":"sent=","abstract":false,"args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(sent : Bool | Nil)","args_html":"(sent : Bool | Nil)","location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L96"},"def":{"name":"sent=","args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@sent = sent"}},{"html_id":"survey_id:Int64-instance-method","name":"survey_id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id","return_type":"Int64","visibility":"Public","body":"@survey_id"}},{"html_id":"survey_id=(survey_id:Int64)-instance-method","name":"survey_id=","abstract":false,"args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"args_string":"(survey_id : Int64)","args_html":"(survey_id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id=","args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"visibility":"Public","body":"@survey_id = survey_id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L94"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/survey_mailer.cr#L94"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]},{"html_id":"drivers/Place/Tab","path":"Place/Tab.html","kind":"class","full_name":"Place::Tab","name":"Tab","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/tab.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(icon:String,name:String,inputs:Array(String),help:Nil|String=nil,controls:Nil|String=nil,merge_on_join:Bool|Nil=nil,presentation_source:Nil|String=nil,json_unmapped:Hash(String,JSON::Any)=Hash(String,JSON::Any).new)-class-method","name":"new","abstract":false,"args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","args_html":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","location":{"filename":"src/place/meet/tab.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L7"},"def":{"name":"new","args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(icon, name, inputs, help, controls, merge_on_join, presentation_source, json_unmapped)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/tab.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone:Tab-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L23"},"def":{"name":"clone","return_type":"Tab","visibility":"Public","body":"Tab.new(@icon, @name, inputs.dup, @help, @controls, @merge_on_join, @presentation_source, @json_unmapped.dup)"}},{"html_id":"controls:String|Nil-instance-method","name":"controls","doc":"such as: vidconf-controls","summary":"

such as: vidconf-controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L17"},"def":{"name":"controls","return_type":"String | ::Nil","visibility":"Public","body":"@controls"}},{"html_id":"help:String|Nil-instance-method","name":"help","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L14"},"def":{"name":"help","return_type":"String | ::Nil","visibility":"Public","body":"@help"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L10"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"inputs:Array(String)-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L12"},"def":{"name":"inputs","return_type":"Array(String)","visibility":"Public","body":"@inputs"}},{"html_id":"merge(tab:Tab):Tab-instance-method","name":"merge","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L27"},"def":{"name":"merge","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"input = (inputs.dup.concat(tab.inputs)).uniq!\nnew_unmapped = tab.json_unmapped.merge(json_unmapped)\nTab.new(@icon, @name, input, @help, @controls, @merge_on_join, @presentation_source, new_unmapped)\n"}},{"html_id":"merge!(tab:Tab):Tab-instance-method","name":"merge!","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L33"},"def":{"name":"merge!","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"@json_unmapped.merge!(tab.json_unmapped)\n(@inputs.concat(tab.inputs)).uniq!\nself\n"}},{"html_id":"merge_on_join:Bool|Nil-instance-method","name":"merge_on_join","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L18"},"def":{"name":"merge_on_join","return_type":"Bool | ::Nil","visibility":"Public","body":"@merge_on_join"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"presentation_source:String|Nil-instance-method","name":"presentation_source","doc":"For the VC controls","summary":"

For the VC controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/meet/tab.cr#L21"},"def":{"name":"presentation_source","return_type":"String | ::Nil","visibility":"Public","body":"@presentation_source"}}]},{"html_id":"drivers/Place/TemplateMailer","path":"Place/TemplateMailer.html","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SEPERATOR","name":"SEPERATOR","value":"\".\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone_id:String-instance-method","name":"building_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L33"},"def":{"name":"building_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_zone_id).nil?\n @building_zone_id = ((get_local_zone_id(building_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"building_zone_ids:Array(String)-instance-method","name":"building_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L29"},"def":{"name":"building_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @building_zone_ids).nil?\n @building_zone_ids = ((get_zone_ids?(\"building\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"clear_template_cache(zone_id:String|Nil=nil)-instance-method","name":"clear_template_cache","abstract":false,"args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil = nil)","args_html":"(zone_id : String | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L177"},"def":{"name":"clear_template_cache","args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if zone_id && !zone_id.blank?\n @template_cache.delete(zone_id)\nelse\n @template_cache = TemplateCache.new\nend"}},{"html_id":"fetch_templates(zone_id:String|Nil):Array(Template)-instance-method","name":"fetch_templates","doc":"fetch templates from cache or metadata","summary":"

fetch templates from cache or metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil) : Array(Template)","args_html":"(zone_id : String | Nil) : Array(Template)","location":{"filename":"src/place/template_mailer.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L161"},"def":{"name":"fetch_templates","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Template)","visibility":"Public","body":"if zone_id\nelse\n return [] of Template\nend\nif (cache = @template_cache[zone_id]?) && cache[0] > Time.utc.to_unix\n cache[1]\nelse\n templates = (get_templates?(zone_id)) || ([] of Template)\n @template_cache[zone_id] = {Time.utc.to_unix + @cache_timeout, templates}\n templates\nend\n"}},{"html_id":"find_template?(template:String,zone_ids:Array(String)):Template|Nil-instance-method","name":"find_template?","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(template : String, zone_ids : Array(String)) : Template | Nil","args_html":"(template : String, zone_ids : Array(String)) : Template | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L194"},"def":{"name":"find_template?","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"Template | ::Nil","visibility":"Public","body":"org_id = (zone_ids & org_zone_ids)[0]?\nregion_id = (zone_ids & region_zone_ids)[0]?\nbuilding_id = (zone_ids & building_zone_ids)[0]?\nlevel_id = (zone_ids & level_zone_ids)[0]?\norg_templates = fetch_templates(org_id)\nregion_templates = fetch_templates(region_id)\nbuilding_templates = fetch_templates(building_id)\nlevel_templates = fetch_templates(level_id)\n(((level_templates.find do |t|\n t[\"trigger\"] == template\nend || building_templates.find do |t|\n t[\"trigger\"] == template\nend) || region_templates.find do |t|\n t[\"trigger\"] == template\nend) || org_templates.find do |t|\n t[\"trigger\"] == template\nend) || nil\n"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/template_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L218"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_png_qrcode(text, size)).get.as_s"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/template_mailer.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L214"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_svg_qrcode(text)).get.as_s"}},{"html_id":"get_local_zone_id(zone_ids:Array(String)):String|Nil-instance-method","name":"get_local_zone_id","abstract":false,"args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(zone_ids : Array(String)) : String | Nil","args_html":"(zone_ids : Array(String)) : String | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L88"},"def":{"name":"get_local_zone_id","args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"String | ::Nil","visibility":"Public","body":"begin\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine local zone id\"\n end\n nil\nend"}},{"html_id":"get_template_fields?(zone_id:String):Hash(String,MetadataTemplateFields)|Nil-instance-method","name":"get_template_fields?","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L95"},"def":{"name":"get_template_fields?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_template_fields\")).get[\"email_template_fields\"].to_json)\n Hash(String, MetadataTemplateFields).from_json(metadata.details.to_json)\nrescue error\n logger.warn(exception: error) do\n \"unable to get email template fields from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_templates?(zone_id:String):Array(Template)|Nil-instance-method","name":"get_templates?","doc":"get templates from metadata","summary":"

get templates from metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Array(Template) | Nil","args_html":"(zone_id : String) : Array(Template) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L186"},"def":{"name":"get_templates?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Array(Template) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_templates\")).get[\"email_templates\"].to_json)\n metadata.details.as_a.map do |template|\n Template.from_json(template.to_json)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to get email templates from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_zone_ids?(tag:String):Array(String)|Nil-instance-method","name":"get_zone_ids?","abstract":false,"args":[{"name":"tag","external_name":"tag","restriction":"String"}],"args_string":"(tag : String) : Array(String) | Nil","args_html":"(tag : String) : Array(String) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L81"},"def":{"name":"get_zone_ids?","args":[{"name":"tag","external_name":"tag","restriction":"String"}],"return_type":"Array(String) | ::Nil","visibility":"Public","body":"begin\n staff_api.zones(tags: tag).get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine #{tag} zone ids\"\n end\n nil\nend"}},{"html_id":"level_zone_ids:Array(String)-instance-method","name":"level_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L30"},"def":{"name":"level_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @level_zone_ids).nil?\n @level_zone_ids = ((get_zone_ids?(\"level\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[1]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@org_zone_ids = nil\n@region_zone_ids = nil\n@building_zone_ids = nil\n@level_zone_ids = nil\n@org_zone_id = nil\n@building_zone_id = nil\n@cache_timeout = (setting?(Int64, :cache_timeout)) || 300_i64\n@keep_if_not_seen = (setting?(Int64, :keep_if_not_seen)) || 6_i64\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@update_schedule = (setting?(String, :update_schedule)).presence\nschedule.clear\nif update_schedule = @update_schedule\n schedule.cron(update_schedule, @timezone) do\n update_template_fields(org_zone_id)\n end\nend\nupdate_template_fields(org_zone_id)\n"}},{"html_id":"org_zone_id:String-instance-method","name":"org_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L32"},"def":{"name":"org_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_zone_id).nil?\n @org_zone_id = ((get_local_zone_id(org_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"org_zone_ids:Array(String)-instance-method","name":"org_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L27"},"def":{"name":"org_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @org_zone_ids).nil?\n @org_zone_ids = ((get_zone_ids?(\"org\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"region_zone_ids:Array(String)-instance-method","name":"region_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L28"},"def":{"name":"region_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @region_zone_ids).nil?\n @region_zone_ids = ((get_zone_ids?(\"region\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L222"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"mailer.send_mail(to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc, from, reply_to)"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L237"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"zone_ids = if (zones = args[\"zone_ids\"]?) && zones.is_a?(Array(String))\n zones\nelse\n [org_zone_id, building_zone_id]\nend\nmetadata_template = find_template?(template.join(SEPERATOR), zone_ids)\nif metadata_template\n subject = build_template(metadata_template[\"subject\"].to_s, args)\n text = (build_template(metadata_template[\"text\"]?.try(&.to_s), args)) || \"\"\n html = (build_template(metadata_template[\"html\"]?.try(&.to_s), args)) || \"\"\n if (from_template = metadata_template[\"from\"]?) && from_template.to_s.presence\n from = metadata_template[\"from\"].to_s\n end\n if (reply_to_template = metadata_template[\"reply_to\"]?) && reply_to_template.to_s.presence\n reply_to = metadata_template[\"reply_to\"].to_s\n end\n mailer.send_mail(to, subject, text, html, resource_attachments, attachments, cc, bcc, from, reply_to)\nelse\n logger.info do\n \"unable to find template #{template.join(SEPERATOR)} from zones #{zone_ids} metadata, forwarding to Mailer_2\"\n end\n mailer.send_template(to, template, args, resource_attachments, attachments, cc, bcc, from, reply_to)\nend\n"}},{"html_id":"sticky_template_fields(zone_id:String):Hash(String,MetadataTemplateFields)-instance-method","name":"sticky_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields)","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields)","location":{"filename":"src/place/template_mailer.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L103"},"def":{"name":"sticky_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields)","visibility":"Public","body":"if @keep_if_not_seen == 0\n return Hash(String, MetadataTemplateFields).new\nend\ncurrent_fields = (get_template_fields?(zone_id)) || Hash(String, MetadataTemplateFields).new\nif current_fields.empty?\n return current_fields\nend\nif @keep_if_not_seen == -1\n return current_fields\nend\nsticky_fields = Hash(String, MetadataTemplateFields).new\ncurrent_fields.keys.each do |key|\n @not_seen_times[key] = @not_seen_times[key]? ? @not_seen_times[key] + 1 : 1_i64\n if @not_seen_times[key] <= @keep_if_not_seen\n sticky_fields[key] = current_fields[key]\n end\nend\nsticky_fields\n"}},{"html_id":"template_cache:Hash(String,{Int64,Array(Hash(String,Int64|String))})-instance-method","name":"template_cache","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L173"},"def":{"name":"template_cache","visibility":"Public","body":"@template_cache"}},{"html_id":"update_template_fields(zone_id:String)-instance-method","name":"update_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L126"},"def":{"name":"update_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"template_fields : Hash(String, MetadataTemplateFields) = sticky_template_fields(zone_id)\n(system.implementing(Interface::MailerTemplates)).each do |driver|\n begin\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n rescue error\n logger.warn(exception: error) do\n \"unable to get template fields from module #{driver.module_id}\"\n end\n next\n end\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n driver_template_fields.each do |field_list|\n template_fields[\"#{field_list[:trigger].join(SEPERATOR)}\"] = MetadataTemplateFields.new(module_name: driver.module_name, name: field_list[:name], description: field_list[:description], fields: field_list[:fields])\n end\nend\ntemplate_fields.keys.each do |key|\n @not_seen_times[key] = 0_i64\nend\nself[:template_fields] = template_fields\nif template_fields.empty?\nelse\n staff_api.write_metadata(id: zone_id, key: \"email_template_fields\", payload: template_fields, description: \"Available fields for use in email templates\").get\nend\n"}}],"types":[{"html_id":"drivers/Place/TemplateMailer/Metadata","path":"Place/TemplateMailer/Metadata.html","kind":"struct","full_name":"Place::TemplateMailer::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L275"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L276"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L279"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L279"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"details:JSON::Any-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L280"},"def":{"name":"details","return_type":"JSON::Any","visibility":"Public","body":"@details"}},{"html_id":"details=(details:JSON::Any)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L280"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"@details = details"}},{"html_id":"editors:Set(String)-instance-method","name":"editors","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L283"},"def":{"name":"editors","return_type":"Set(String)","visibility":"Public","body":"@editors"}},{"html_id":"editors=(editors:Set(String))-instance-method","name":"editors=","abstract":false,"args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"args_string":"(editors : Set(String))","args_html":"(editors : Set(String))","location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L283"},"def":{"name":"editors=","args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"visibility":"Public","body":"@editors = editors"}},{"html_id":"modified_by_id:String|Nil-instance-method","name":"modified_by_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@modified_by_id"}},{"html_id":"modified_by_id=(modified_by_id:String|Nil)-instance-method","name":"modified_by_id=","abstract":false,"args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"args_string":"(modified_by_id : String | Nil)","args_html":"(modified_by_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id=","args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@modified_by_id = modified_by_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L278"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L278"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id","return_type":"String","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"args_string":"(parent_id : String)","args_html":"(parent_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"schema_id:String|Nil-instance-method","name":"schema_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id","return_type":"String | ::Nil","visibility":"Public","body":"@schema_id"}},{"html_id":"schema_id=(schema_id:String|Nil)-instance-method","name":"schema_id=","abstract":false,"args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"args_string":"(schema_id : String | Nil)","args_html":"(schema_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id=","args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@schema_id = schema_id"}}]},{"html_id":"drivers/Place/TemplateMailer/MetadataTemplateFields","path":"Place/TemplateMailer/MetadataTemplateFields.html","kind":"struct","full_name":"Place::TemplateMailer::MetadataTemplateFields","name":"MetadataTemplateFields","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L287"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(module_name:String,name:String,description:String|Nil=nil,fields:Array(NamedTuple(name:String,description:String))=[]ofNamedTuple(name:String,description:String))-class-method","name":"new","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","args_html":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","location":{"filename":"src/place/template_mailer.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L295"},"def":{"name":"new","args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_name, name, description, fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L288"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L292"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L292"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"fields:Array(NamedTuple(name:String,description:String))-instance-method","name":"fields","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L293"},"def":{"name":"fields","return_type":"Array(NamedTuple(name: String, description: String))","visibility":"Public","body":"@fields"}},{"html_id":"fields=(fields:Array(NamedTuple(name:String,description:String)))-instance-method","name":"fields=","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(fields : Array(NamedTuple(name: String, description: String)))","args_html":"(fields : Array(NamedTuple(name: String, description: String)))","location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L293"},"def":{"name":"fields=","args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"@fields = fields"}},{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L290"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"module_name=(module_name:String)-instance-method","name":"module_name=","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"args_string":"(module_name : String)","args_html":"(module_name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L290"},"def":{"name":"module_name=","args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"visibility":"Public","body":"@module_name = module_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L291"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L291"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/TemplateMailer/Template","path":"Place/TemplateMailer/Template.html","kind":"alias","full_name":"Place::TemplateMailer::Template","name":"Template","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Int64 | String)","aliased_html":"Hash(String, Int64 | String)","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}},{"html_id":"drivers/Place/TemplateMailer/TemplateCache","path":"Place/TemplateMailer/TemplateCache.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateCache","name":"TemplateCache","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L273"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int64, Array(Hash(String, Int64 | String))))","aliased_html":"Hash(String, {Int64, Array(Hash(String, Int64 | String))})","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"doc":" zone_id, timeout, templates","summary":"

zone_id, timeout, templates

"},{"html_id":"drivers/Place/TemplateMailer/TemplateFields","path":"Place/TemplateMailer/TemplateFields.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateFields","name":"TemplateFields","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/template_mailer.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(trigger: Tuple(String, String), name: String, description: String | Nil, fields: Array(NamedTuple(name: String, description: String)))","aliased_html":"{trigger: {String, String}, name: String, description: String?, fields: Array({name: String, description: String})}","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}}]},{"html_id":"drivers/Place/TODOs","path":"Place/TODOs.html","kind":"class","full_name":"Place::TODOs","name":"TODOs","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/todo_list.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_task(description:String)-instance-method","name":"add_task","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/llm/todo_list.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L27"},"def":{"name":"add_task","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"task = {complete: false, task: description}\n@todos << task\ntask\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L17"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"\"manages the list of tasks a user needs to complete throughout the day\""}},{"html_id":"complete_task(index:Int32)-instance-method","name":"complete_task","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32)","args_html":"(index : Int32)","location":{"filename":"src/place/llm/todo_list.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L34"},"def":{"name":"complete_task","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"task = @todos[index]\n@todos[index] = {complete: true, task: task[:task]}\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{list_tasks: \"returns the list of tasks and their current status\", add_task: \"adds a new task to the list\", complete_task: \"marks a task as completed\"}"}},{"html_id":"list_tasks:Array({complete:Bool,task:String})-instance-method","name":"list_tasks","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/todo_list.cr#L22"},"def":{"name":"list_tasks","visibility":"Public","body":"@todos"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}}]},{"html_id":"drivers/Place/TransportAdaptor","path":"Place/TransportAdaptor.html","kind":"class","full_name":"Place::TransportAdaptor","name":"TransportAdaptor","abstract":false,"superclass":{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},"ancestors":[{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(driver:PlaceOS::Driver::Transport,queue:PlaceOS::Driver::Queue)-class-method","name":"new","abstract":false,"args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"args_string":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","args_html":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L4"},"def":{"name":"new","args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(driver, queue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"close!:Nil-instance-method","name":"close!","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L11"},"def":{"name":"close!","return_type":"Nil","visibility":"Public","body":"@driver.disconnect"}},{"html_id":"closed?:Bool-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L15"},"def":{"name":"closed?","return_type":"Bool","visibility":"Public","body":"!@queue.online"}},{"html_id":"process(data:Bytes)-instance-method","name":"process","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L23"},"def":{"name":"process","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"(@tokenizer.extract(data)).each do |bytes|\n spawn do\n @on_message.try(&.call(bytes))\n end\nend"}},{"html_id":"send(message):Nil-instance-method","name":"send","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message) : Nil","args_html":"(message) : Nil","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/mqtt_transport_adaptor.cr#L19"},"def":{"name":"send","args":[{"name":"message","external_name":"message","restriction":""}],"return_type":"Nil","visibility":"Public","body":"@driver.send(message)"}}]},{"html_id":"drivers/Place/UserGroupMappings","path":"Place/UserGroupMappings.html","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_user(id:String):Nil-instance-method","name":"check_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/user_group_mappings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L88"},"def":{"name":"check_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"checking groups of: #{id}\"\nend\nuser_json = (staff_api.user(id)).get\nsync_user(user_json)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L48"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"auth/login\") do |_subscription, payload|\n new_user_login(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@group_mappings = (setting?(Hash(String, Mapping), :group_mappings)) || ({} of String => Mapping)\n@group_prefixes = (setting?(Hash(String, Prefix), :group_prefix)) || ({} of String => Prefix)\n@group_prefixes = @group_prefixes.transform_keys(&.downcase)\n@authority_id = (setting?(String, :authority_id)) || \"authority-12345\"\n"}},{"html_id":"sync_all_users-instance-method","name":"sync_all_users","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L134"},"def":{"name":"sync_all_users","visibility":"Public","body":"begin\n if @syncing\n return \"currently syncing\"\n end\n @syncing = true\n limit = 100\n offset = 0\n issues_with = [] of String\n loop do\n users = staff_api.query_users(limit: limit, offset: offset, authority_id: @authority_id).get.as_a\n logger.debug do\n \"syncing users #{offset}->#{offset + limit}...\"\n end\n users.each do |user|\n begin\n sync_user(user)\n sleep(50.milliseconds)\n rescue error\n issues_with << user[\"email\"].as_s\n end\n end\n if users.size < limit\n break\n end\n offset = offset + limit\n end\n logger.debug do\n \"sync complete! issues with #{issues_with.size}:\\n#{issues_with}\"\n end\n issues_with\nensure\n @syncing = false\nend"}}],"types":[{"html_id":"drivers/Place/UserGroupMappings/Mapping","path":"Place/UserGroupMappings/Mapping.html","kind":"alias","full_name":"Place::UserGroupMappings::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(place_id: String)","aliased_html":"{place_id: String}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/Prefix","path":"Place/UserGroupMappings/Prefix.html","kind":"alias","full_name":"Place::UserGroupMappings::Prefix","name":"Prefix","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(strip_prefix: Bool | Nil, place_id: String | Nil)","aliased_html":"{strip_prefix: Bool?, place_id: String?}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/UserLogin","path":"Place/UserGroupMappings/UserLogin.html","kind":"class","full_name":"Place::UserGroupMappings::UserLogin","name":"UserLogin","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/user_group_mappings.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"provider:String-instance-method","name":"provider","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider","return_type":"String","visibility":"Public","body":"@provider"}},{"html_id":"provider=(provider:String)-instance-method","name":"provider=","abstract":false,"args":[{"name":"provider","external_name":"provider","restriction":"String"}],"args_string":"(provider : String)","args_html":"(provider : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider=","args":[{"name":"provider","external_name":"provider","restriction":"String"}],"visibility":"Public","body":"@provider = provider"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]}]},{"html_id":"drivers/Place/VisitorMailer","path":"Place/VisitorMailer.html","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:ZoneDetails-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L91"},"def":{"name":"building_zone","return_type":"ZoneDetails","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (find_building(control_system_zone_list))\nelse\n __temp_1\nend"}},{"html_id":"control_system_zone_list-instance-method","name":"control_system_zone_list","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L159"},"def":{"name":"control_system_zone_list","visibility":"Public","body":"config.control_system.not_nil!.zones"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L674"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L54"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L58"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/guest/attending\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/checkin\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_accepted\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_declined\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L118"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting?(Bool, :debug)) || true\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@send_reminders = (setting?(String, :send_reminders)).presence\n@reminder_template = (setting?(String, :reminder_template)) || \"visitor\"\n@event_template = (setting?(String, :event_template)) || \"event\"\n@booking_template = (setting?(String, :booking_template)) || \"booking\"\n@notify_checkin_template = (setting?(String, :notify_checkin_template)) || \"notify_checkin\"\n@notify_induction_accepted_template = (setting?(String, :induction_accepted)) || \"induction_accepted\"\n@notify_induction_declined_template = (setting?(String, :induction_declined)) || \"induction_declined\"\n@group_event_template = (setting?(String, :group_event_template)) || \"group_event\"\n@disable_qr_code = (setting?(Bool, :disable_qr_code)) || false\n@determine_host_name_using = (setting?(String, :determine_host_name_using)) || \"calendar-driver\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@host_domain_filter = (setting?(Array(String), :host_domain_filter)) || ([] of String)\n@disable_event_visitors = (setting?(Bool, :disable_event_visitors)) || false\n@invite_zone_tag = (setting?(String, :invite_zone_tag)) || \"building\"\n@is_parent_zone = (setting?(Bool, :is_campus)) || false\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\n@booking_space_name = (setting?(String, :booking_space_name)).presence || \"Client Floor\"\nzones = config.control_system.not_nil!.zones\nschedule.clear\nif reminders = @send_reminders\n schedule.cron(reminders, @time_zone) do\n send_reminder_emails\n end\nend\nspawn do\n ensure_building_zone(zones)\nend\n"}},{"html_id":"parent_zone_ids:Array(String)-instance-method","name":"parent_zone_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L95"},"def":{"name":"parent_zone_ids","return_type":"Array(String)","visibility":"Public","body":"@parent_zone_ids"}},{"html_id":"send_checkedin_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64)-instance-method","name":"send_checkedin_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L362"},"def":{"name":"send_checkedin_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format)})\n"}},{"html_id":"send_induction_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,induction_status:Induction)-instance-method","name":"send_induction_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L390"},"def":{"name":"send_induction_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format), induction_status: induction_status.to_s})\n"}},{"html_id":"send_reminder_emails-instance-method","name":"send_reminder_emails","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L561"},"def":{"name":"send_reminder_emails","visibility":"Public","body":"now = 1.hour.ago.to_unix\nlater = 12.hours.from_now.to_unix\nguests = staff_api.query_guests(period_start: now, period_end: later, zones: {building_zone.id}).get.as_a\nguests.uniq! do |g|\n g[\"email\"].as_s.downcase\nend\nguests.each do |guest|\n begin\n if event = guest[\"event\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, event[\"host\"].as_s, event[\"title\"].as_s, event[\"event_start\"].as_i64, (event.dig(\"system\", \"id\")).as_s, event[\"id\"].as_s, ((event.dig?(\"system\", \"display_name\")) || (event.dig(\"system\", \"name\"))).as_s, event_end: event[\"event_end\"].as_i64)\n else\n if booking = guest[\"booking\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, booking[\"user_email\"].as_s, booking[\"title\"].as_s?, booking[\"booking_start\"].as_i64, booking[\"asset_id\"].as_s, booking[\"id\"].as_i64.to_s, @booking_space_name, event_end: booking[\"booking_end\"].as_i64)\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to send reminder email to #{guest[\"email\"]}\"\n end\n end\nend\n"}},{"html_id":"send_visitor_qr_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,resource_id:String,event_id:String,area_name:String,event_end:Int64|Nil=nil)-instance-method","name":"send_visitor_qr_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L490"},"def":{"name":"send_visitor_qr_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nattach = if @disable_qr_code\n [] of NamedTuple(file_name: String, content: String, content_id: String)\nelse\n qr_png = mailer.generate_png_qrcode(text: \"VISIT:#{visitor_email},#{resource_id},#{event_id},#{host_email}\", size: 256).get.as_s\n [{file_name: \"qr.png\", content: qr_png, content_id: visitor_email}]\nend\nnetwork_username = network_password = \"\"\nif @send_network_credentials\n network_username, network_password = update_network_user_password(visitor_email, generate_password(length: @network_password_length, exclude: @network_password_exclude, minimum_lowercase: @network_password_minimum_lowercase, minimum_uppercase: @network_password_minimum_uppercase, minimum_numbers: @network_password_minimum_numbers, minimum_symbols: @network_password_minimum_symbols), @network_group_ids)\nend\nevent_time = if (end_timestamp = event_end) && (((Time.unix(end_timestamp)) - (Time.unix(event_start))) == 24.hours)\n \"all day\"\nelse\n local_start_time.to_s(@time_format)\nend\nmailer.send_template(visitor_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, room_name: area_name, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: event_time, network_username: network_username, network_password: network_password}, attach)\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L419"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"visitor_email\", description: \"Email address of the visiting guest\"}, {name: \"visitor_name\", description: \"Full name of the visiting guest\"}, {name: \"host_name\", description: \"Name of the person hosting the visitor\"}, {name: \"host_email\", description: \"Email address of the host\"}, {name: \"building_name\", description: \"Name of the building where the visit occurs\"}, {name: \"event_title\", description: \"Title or purpose of the visit\"}, {name: \"event_start\", description: \"Start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the visit (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"event_time\", description: \"Time of the visit (or 'all day' for 24-hour events)\"}]\ninvitation_fields = common_fields + [{name: \"room_name\", description: \"Name of the room or area being visited\"}, {name: \"network_username\", description: \"Network access username (if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated network access password (if network credentials enabled)\"}]\ninduction_fields = common_fields + [{name: \"induction_status\", description: \"Status of the induction (e.g., accepted or declined)\"}]\n[TemplateFields.new(trigger: {\"visitor_invited\", @reminder_template}, name: \"Visitor invited\", description: \"Reminder email for upcoming visitor appointments\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @event_template}, name: \"Visitor invited to event\", description: \"Initial invitation for a visitor attending a calendar event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @booking_template}, name: \"Visitor invited to booking\", description: \"Initial invitation for a visitor with a space booking\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @group_event_template}, name: \"Visitor invited to group event booking\", description: \"Initial invitation for a visitor attending a group event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_checkin_template}, name: \"Visitor check in notification\", description: \"Notification to host when their visitor checks in\", fields: common_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_accepted_template}, name: \"Visitor induction accepted notification\", description: \"Notification to host when their visitor accepts the induction\", fields: induction_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_declined_template}, name: \"Visitor induction declined notification\", description: \"Notification to host when their visitor declines the induction\", fields: induction_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L663"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","path":"Place/VisitorMailer/BookingGuest.html","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L233"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L234"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L239"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}}]},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","path":"Place/VisitorMailer/BookingInduction.html","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L253"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L254"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L261"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"induction:Induction-instance-method","name":"induction","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction","return_type":"Induction","visibility":"Public","body":"@induction"}},{"html_id":"induction=(induction:Induction)-instance-method","name":"induction=","abstract":false,"args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"args_string":"(induction : Induction)","args_html":"(induction : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction=","args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"visibility":"Public","body":"@induction = induction"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_ids:Array(String)-instance-method","name":"resource_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids","return_type":"Array(String)","visibility":"Public","body":"@resource_ids"}},{"html_id":"resource_ids=(resource_ids:Array(String))-instance-method","name":"resource_ids=","abstract":false,"args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"args_string":"(resource_ids : Array(String))","args_html":"(resource_ids : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids=","args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@resource_ids = resource_ids"}}]},{"html_id":"drivers/Place/VisitorMailer/EventGuest","path":"Place/VisitorMailer/EventGuest.html","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L228"},"def":{"name":"resource_id","visibility":"Public","body":"system_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","path":"Place/VisitorMailer/GuestCheckin.html","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L244"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L245"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","path":"Place/VisitorMailer/GuestNotification.html","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L193"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest"},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction"},{"html_id":"drivers/Place/VisitorMailer/EventGuest","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest"},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"action\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'action' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'action'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"booking_created\"\n BookingGuest.from_json(json)\nwhen \"booking_updated\"\n BookingGuest.from_json(json)\nwhen \"meeting_created\"\n EventGuest.from_json(json)\nwhen \"meeting_update\"\n EventGuest.from_json(json)\nwhen \"checkin\"\n GuestCheckin.from_json(json)\nwhen \"induction_accepted\"\n BookingInduction.from_json(json)\nwhen \"induction_declined\"\n BookingInduction.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'action' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L206"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L206"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"attendee_email:String-instance-method","name":"attendee_email","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email","return_type":"String","visibility":"Public","body":"@attendee_email"}},{"html_id":"attendee_email=(attendee_email:String)-instance-method","name":"attendee_email=","abstract":false,"args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"args_string":"(attendee_email : String)","args_html":"(attendee_email : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email=","args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"visibility":"Public","body":"@attendee_email = attendee_email"}},{"html_id":"attendee_name:String|Nil-instance-method","name":"attendee_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name","return_type":"String | ::Nil","visibility":"Public","body":"@attendee_name"}},{"html_id":"attendee_name=(attendee_name:String|Nil)-instance-method","name":"attendee_name=","abstract":false,"args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"args_string":"(attendee_name : String | Nil)","args_html":"(attendee_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name=","args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attendee_name = attendee_name"}},{"html_id":"checkin:Bool|Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin","return_type":"Bool | ::Nil","visibility":"Public","body":"@checkin"}},{"html_id":"checkin=(checkin:Bool|Nil)-instance-method","name":"checkin=","abstract":false,"args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"args_string":"(checkin : Bool | Nil)","args_html":"(checkin : Bool | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin=","args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checkin = checkin"}},{"html_id":"event_starting:Int64-instance-method","name":"event_starting","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting","return_type":"Int64","visibility":"Public","body":"@event_starting"}},{"html_id":"event_starting=(event_starting:Int64)-instance-method","name":"event_starting=","abstract":false,"args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"args_string":"(event_starting : Int64)","args_html":"(event_starting : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting=","args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"visibility":"Public","body":"@event_starting = event_starting"}},{"html_id":"event_summary:String-instance-method","name":"event_summary","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary","return_type":"String","visibility":"Public","body":"@event_summary"}},{"html_id":"event_summary=(event_summary:String)-instance-method","name":"event_summary=","abstract":false,"args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"args_string":"(event_summary : String)","args_html":"(event_summary : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary=","args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"visibility":"Public","body":"@event_summary = event_summary"}},{"html_id":"ext_data:Hash(String,JSON::Any)|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:Hash(String,JSON::Any)|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(ext_data : Hash(String, JSON::Any) | Nil)","args_html":"(ext_data : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L213"},"def":{"name":"host","return_type":"String","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String"}],"args_string":"(host : String)","args_html":"(host : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L213"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String"}],"visibility":"Public","body":"@host = host"}},{"html_id":"zones:Array(String)|Nil-instance-method","name":"zones","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String)|Nil)-instance-method","name":"zones=","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"args_string":"(zones : Array(String) | Nil)","args_html":"(zones : Array(String) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/VisitorMailer/Induction","path":"Place/VisitorMailer/Induction.html","kind":"enum","full_name":"Place::VisitorMailer::Induction","name":"Induction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L187"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TENTATIVE","name":"TENTATIVE","value":"0"},{"id":"ACCEPTED","name":"ACCEPTED","value":"1"},{"id":"DECLINED","name":"DECLINED","value":"2"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"instance_methods":[{"html_id":"accepted?-instance-method","name":"accepted?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L189"},"def":{"name":"accepted?","visibility":"Public","body":"self == ACCEPTED"}},{"html_id":"declined?-instance-method","name":"declined?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L190"},"def":{"name":"declined?","visibility":"Public","body":"self == DECLINED"}},{"html_id":"tentative?-instance-method","name":"tentative?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L188"},"def":{"name":"tentative?","visibility":"Public","body":"self == TENTATIVE"}}]},{"html_id":"drivers/Place/VisitorMailer/SystemDetails","path":"Place/VisitorMailer/SystemDetails.html","kind":"class","full_name":"Place::VisitorMailer::SystemDetails","name":"SystemDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":622,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L622"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":623,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L623"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L625"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L625"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String|Nil)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil)","args_html":"(map_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L626"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L626"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/VisitorMailer/ZoneDetails","path":"Place/VisitorMailer/ZoneDetails.html","kind":"class","full_name":"Place::VisitorMailer::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":611,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L611"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":612,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L612"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L614"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L614"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L617"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L617"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L615"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L615"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Place/Workplace","path":"Place/Workplace.html","kind":"class","full_name":"Place::Workplace","name":"Workplace","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"all_levels:Array(Zone)-instance-method","name":"all_levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L93"},"def":{"name":"all_levels","return_type":"Array(Zone)","visibility":"Public","body":"if (__temp_1 = @all_levels).nil?\n @all_levels = ([building] + (Array(Zone).from_json(staff_api.zones(parent: building.id, tags: {\"level\"}).get.to_json)).sort_by(&.name))\nelse\n __temp_1\nend"}},{"html_id":"book_on(booking_type:String,asset_id:String,level_id:String,date:Time,number_of_days:Int32=1)-instance-method","name":"book_on","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L215"},"def":{"name":"book_on","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking on #{booking_type}, asset #{asset_id} on level #{level_id}, date #{date} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\nnow = (date.in(timezone)).at_beginning_of_day\ncurrent_time = Time.local(timezone)\nif current_time < now || (current_time - now) < 18.hours\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (0...number_of_days).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{now.day_of_week}, #{now.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"book_relative(booking_type:String,asset_id:String,level_id:String,day_offset:Int32=0,number_of_days:Int32=1)-instance-method","name":"book_relative","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L161"},"def":{"name":"book_relative","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking relative #{booking_type}, asset #{asset_id} on level #{level_id}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 18)\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L464"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel_bookings(booking_ids:Array(Int64))-instance-method","name":"cancel_bookings","abstract":false,"args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"args_string":"(booking_ids : Array(Int64))","args_html":"(booking_ids : Array(Int64))","location":{"filename":"src/place/llm/workplace.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L267"},"def":{"name":"cancel_bookings","args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"visibility":"Public","body":"logger.debug do\n \"cancel bookings #{booking_ids}\"\nend\nbooking_ids.each do |booking_id|\n booking = (staff_api.get_booking(booking_id)).get\n user_id = invoked_by_user_id\n me = current_user\n if (user_id == booking[\"user_id\"]?.try(&.as_s)) || (me.email.downcase.in?({booking[\"user_email\"].as_s, booking[\"booked_by_email\"].as_s}))\n else\n raise(\"can only cancel bookings owned by #{me.email} - this booking is owned by #{booking[\"user_email\"]}\")\n end\n staff_api.booking_delete(booking_id, \"chatgpt\")\nend\n\"bookings have been removed\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L31"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"functions for listing building levels to obtain level names and level ids\\n\"\n str << \"find meeting rooms, filtering by capacity and or level id\\n\"\n str << \"my current desk, car parking and guest visitor bookings\\n\"\n str << \"Note: when booking a meeting room, preference one on the same level or closest level to my desk booking, if I have one, unless I specify a specific level. Also try to pick a room with an appropriate capacity.\\n\"\n str << \"once candidate meeting rooms have been found, you can include the list of resource emails when getting schedules to see which rooms are available\\n\"\n str << \"this capability also supports managing desk bookings and inviting visitors to the building\\n\"\n str << \"please cancel any bookings made on the incorrect day\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L448"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"desks(level_id:String,day_offset:Int32=0,date:Time|Nil=nil,feature:String|Nil=nil)-instance-method","name":"desks","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"args_string":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","args_html":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L116"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing desks on level #{level_id}, day offset #{day_offset}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nall_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\nif all_desks\nelse\n raise(\"no bookable desks on this level, please try another.\")\nend\ndesks = Array(Desk).from_json(all_desks.to_json)\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nme = current_user\nbookings = staff_api.query_bookings(type: \"desk\", period_start: starting.to_unix, period_end: ending.to_unix, zones: {level_id}).get.as_a\nbookings = bookings.map() do |__arg1|\n __arg1[\"asset_id\"].as_s\nend\nfeature = feature.try(&.downcase)\ndesks.reject! do |desk|\n if desk.id.in?(bookings)\n next true\n end\n if feature && !(desk.features.map!(&.downcase).includes?(feature))\n next true\n end\n if !desk.groups.empty?\n (desk.groups & me.groups).empty?\n end\nend\nlogger.debug do\n \"found #{desks.size} available desks\"\nend\ndesks.sample(5)\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_bookings: \"returns desks, car parking spaces and visitors I have booked. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", levels: \"returns the building details and list of levels. Use this to obtain level_ids\", meeting_rooms: \"returns the list of meeting rooms in the building filtering by capacity or level\", desks: \"returns the list of desks available for booking on the level and day specified. If the level has desk features then you can also filter by features.\", book_relative: \"books an asset, such as a desk or car parking space, for the number of days specified, starting on the day offset. For desk bookings use booking_type: desk\", book_on: \"books an asset, such as a desk or car parking space, for the number of days specified, the start date must be in ISO 8601 format with the correct timezone. For desk bookings use booking_type: desk\", cancel_bookings: \"cancels the given booking ids\", invite: \"book a visitor to the building\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L489"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg12|\n __arg12[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"invite(visitor_name:String,visitor_email:String,day_offset:Int32=0,date:Time|Nil=nil,number_of_days:Int32=1)-instance-method","name":"invite","abstract":false,"args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","args_html":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L282"},"def":{"name":"invite","args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"inviting visitor to the building #{visitor_name}: #{visitor_email}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.first\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif date\n desired_date = (date.in(timezone)).at_beginning_of_day\n day_offset = (desired_date - now).total_days.round_away.to_i\nend\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 16)\nelse\n raise(\"booking in the past is not permitted\")\nend\nvisitor_email = visitor_email.downcase\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: \"visitor\", asset_id: visitor_email, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level.id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\", attendees: [{name: visitor_name, email: visitor_email}])\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"invited #{visitor_email} to the office on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"levels:Array(Zone)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L71"},"def":{"name":"levels","return_type":"Array(Zone)","visibility":"Public","body":"logger.debug do\n \"getting list of levels\"\nend\nl = all_levels\nl.each do |level|\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n desks = all_desks.as_a\n level.bookable_desk_count = desks.size\n features = Set(String).new\n desks.each do |desk|\n if feat = desk[\"features\"]?\n feat.as_a.each do |f|\n features << f.as_s.downcase\n end\n end\n end\n if features.empty?\n else\n level.desk_features = features.to_a\n end\n else\n level.bookable_desk_count = 0\n end\nend\nl\n"}},{"html_id":"meeting_rooms(minimum_capacity:Int32=1,level_id:String|Nil=nil)-instance-method","name":"meeting_rooms","abstract":false,"args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","args_html":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L98"},"def":{"name":"meeting_rooms","args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing meeting rooms on level #{level_id} with capacity #{minimum_capacity}\"\nend\nif level_id\n level = levels.find do |l|\n l.id == level_id\n end\n if level\n else\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\n end\nend\nzone_id = level_id || building.id\nstaff_api.systems(zone_id: zone_id, capacity: minimum_capacity, bookable: true).get.as_a.compact_map do |s|\n to_friendly_system(s)\nend\n"}},{"html_id":"my_bookings(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_bookings","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L44"},"def":{"name":"my_bookings","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"me = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\n logger.debug do\n \"listing bookings for #{current_user.email}, on day #{starting}\"\n end\nelse\n logger.debug do\n \"listing bookings for #{current_user.email}, day offset #{day_offset}\"\n end\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\n{\"desk\", \"visitor\", \"parking\", \"asset-request\"}.flat_map do |booking_type|\n staff_api.query_bookings(type: booking_type, period_start: starting.to_unix, period_end: ending.to_unix, zones: {building.id}, user: invoked_by_user_id, email: me.email).get.as_a.compact_map do |b|\n to_friendly_booking(b)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L452"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Workplace/Booking","path":"Place/Workplace/Booking.html","kind":"struct","full_name":"Place::Workplace::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,book:JSON::Any,timezone:Time::Location)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(level : Zone, book : JSON::Any, timezone : Time::Location)","args_html":"(level : Zone, book : JSON::Any, timezone : Time::Location)","location":{"filename":"src/place/llm/workplace.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L425"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, book, timezone)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L413"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L412"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L423"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L410"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":408,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L408"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L417"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L418"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L409"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L415"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_id:String|Nil-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L414"},"def":{"name":"user_id","return_type":"String | ::Nil","visibility":"Public","body":"@user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L416"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]},{"html_id":"drivers/Place/Workplace/ChildMetadata","path":"Place/Workplace/ChildMetadata.html","kind":"alias","full_name":"Place::Workplace::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/Desk","path":"Place/Workplace/Desk.html","kind":"struct","full_name":"Place::Workplace::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L339"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L340"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L344"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L343"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L342"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Workplace/Metadata","path":"Place/Workplace/Metadata.html","kind":"alias","full_name":"Place::Workplace::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L112"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/PlaceZone","path":"Place/Workplace/PlaceZone.html","kind":"alias","full_name":"Place::Workplace::PlaceZone","name":"PlaceZone","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/System","path":"Place/Workplace/System.html","kind":"struct","full_name":"Place::Workplace::System","name":"System","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L361"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,system:JSON::Any)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"args_string":"(level : Zone, system : JSON::Any)","args_html":"(level : Zone, system : JSON::Any)","location":{"filename":"src/place/llm/workplace.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L376"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, system)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L362"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L368"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L367"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L366"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L364"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L370"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L371"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L372"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L365"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/User","path":"Place/Workplace/User.html","kind":"struct","full_name":"Place::Workplace::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L456"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L457"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L460"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L461"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L459"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/Zone","path":"Place/Workplace/Zone.html","kind":"class","full_name":"Place::Workplace::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L466"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L467"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookable_desk_count:Int32|Nil-instance-method","name":"bookable_desk_count","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@bookable_desk_count"}},{"html_id":"bookable_desk_count=(bookable_desk_count:Int32|Nil)-instance-method","name":"bookable_desk_count=","abstract":false,"args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"args_string":"(bookable_desk_count : Int32 | Nil)","args_html":"(bookable_desk_count : Int32 | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count=","args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@bookable_desk_count = bookable_desk_count"}},{"html_id":"desk_features:Array(String)|Nil-instance-method","name":"desk_features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@desk_features"}},{"html_id":"desk_features=(desk_features:Array(String)|Nil)-instance-method","name":"desk_features=","abstract":false,"args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"args_string":"(desk_features : Array(String) | Nil)","args_html":"(desk_features : Array(String) | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features=","args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@desk_features = desk_features"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L471"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":469,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L469"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":470,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L470"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":472,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L472"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L481"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/llm/workplace.cr#L478"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/WorkplaceSubscription","path":"Place/WorkplaceSubscription.html","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription","abstract":false,"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"including_types":[{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L94"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}},{"html_id":"subscription_on_crud(notification:NotifyEvent):Nil-instance-method","name":"subscription_on_crud","abstract":true,"args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"args_string":"(notification : NotifyEvent) : Nil","args_html":"(notification : NotifyEvent) : Nil","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L30"},"def":{"name":"subscription_on_crud","args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_on_missed:Nil-instance-method","name":"subscription_on_missed","abstract":true,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L31"},"def":{"name":"subscription_on_missed","return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_resource(service_name:ServiceName):String-instance-method","name":"subscription_resource","doc":"should return the resource URI for monitoring, for example:\n\ncase service_name\nin .google?\n resource = \"/calendars/#{calendar_id}/events\"\nin .office365?\n resource = \"/users/#{calendar_id}/events\"","summary":"

should return the resource URI for monitoring, for example:

","abstract":true,"args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"args_string":"(service_name : ServiceName) : String","args_html":"(service_name : ServiceName) : String","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L45"},"def":{"name":"subscription_resource","args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"return_type":"String","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/WorkplaceSubscription/NotifyEvent","path":"Place/WorkplaceSubscription/NotifyEvent.html","kind":"struct","full_name":"Place::WorkplaceSubscription::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L24"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L20"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L27"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L21"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L22"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L23"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/NotifyType","path":"Place/WorkplaceSubscription/NotifyType.html","kind":"enum","full_name":"Place::WorkplaceSubscription::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L7"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L9"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L13"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L14"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L12"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L8"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/ServiceName","path":"Place/WorkplaceSubscription/ServiceName.html","kind":"enum","full_name":"Place::WorkplaceSubscription::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L33"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L34"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/models/workplace_subscriptions.cr#L35"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/WorkspaceAPI","path":"Place/WorkspaceAPI.html","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/google/workspace_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/google/workspace_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Planar","path":"Planar.html","kind":"module","full_name":"Planar","name":"Planar","abstract":false,"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Planar/ClarityMatrix","path":"Planar/ClarityMatrix.html","kind":"class","full_name":"Planar::ClarityMatrix","name":"ClarityMatrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Planar","kind":"module","full_name":"Planar","name":"Planar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"build_date?-instance-method","name":"build_date?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L64"},"def":{"name":"build_date?","visibility":"Public","body":"send(\"ST A1 BUILD.DATE ? \\r\", wait: true)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"do_poll\nschedule.every(60.seconds) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L28"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L59"},"def":{"name":"do_poll","visibility":"Public","body":"power?\nif @power\n input_status?(priority: 0)\nend\n"}},{"html_id":"input_status?(**options)-instance-method","name":"input_status?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L55"},"def":{"name":"input_status?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op A1 slot.current ? \\r\", wait: true)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.tokenizer = Tokenizer.new(\"\\r\")\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L34"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power?.get\nif state && (@power == false)\n send(\"op ** display.power = on \\r\", name: \"power\", delay: 3.seconds)\n result = power?\n schedule.in(20.seconds) do\n recall(0)\n end\n result\nelse\n if !state && (@power == true)\n send(\"op ** display.power = off \\r\", name: \"power\", delay: 3.seconds)\n power?\n end\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L47"},"def":{"name":"power?","visibility":"Public","body":"send(\"op A1 display.power ? \\r\", wait: true, priority: 0)"}},{"html_id":"recall(preset:UInt32,**options)-instance-method","name":"recall","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"args_string":"(preset : UInt32, **options)","args_html":"(preset : UInt32, **options)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L51"},"def":{"name":"recall","args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op ** slot.recall (#{preset}) \\r\", **options, name: \"recall\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/planar/clarity_matrix.cr#L68"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"sent: #{data}\"\nend\ndata = data.split('.')\ncomponent = data[0]\ndata = data[1].split('=')\nstatus = data[0].downcase.strip\nvalue = data[1].strip\ncase status\nwhen \"power\"\n self[:power] = @power = value == \"ON\"\n task.try(&.success(@power))\nwhen \"current\"\n input = value.to_i\n self[:input] = input\n task.try(&.success(input))\nwhen \"date\"\n task.try(&.success(value[1..-2]))\nelse\n task.try(&.success)\nend\n"}}]}]},{"html_id":"drivers/Point","path":"Point.html","kind":"struct","full_name":"Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L19"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"distance_to(point:Point)-instance-method","name":"distance_to","doc":"pythagoras","summary":"

pythagoras

","abstract":false,"args":[{"name":"point","external_name":"point","restriction":"Point"}],"args_string":"(point : Point)","args_html":"(point : Point)","location":{"filename":"src/place/area_polygon.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L26"},"def":{"name":"distance_to","args":[{"name":"point","external_name":"point","restriction":"Point"}],"visibility":"Public","body":"a = point.x - @x\nb = point.y - @y\nMath.sqrt((a * a) + (b * b))\n"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L22"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L22"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L23"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L23"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/PointGrab","path":"PointGrab.html","kind":"module","full_name":"PointGrab","name":"PointGrab","abstract":false,"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/PointGrab/CogniPoint","path":"PointGrab/CogniPoint.html","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/PointGrab","kind":"module","full_name":"PointGrab","name":"PointGrab"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area(site_id:String,building_id:String,floor_id:String,area_id:String)-instance-method","name":"area","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String, area_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String, area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L259"},"def":{"name":"area","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas/#{area_id}\", Area)"}},{"html_id":"areas(site_id:String,building_id:String,floor_id:String)-instance-method","name":"areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L253"},"def":{"name":"areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"areas = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas\", NamedTuple(areas: Array(Area)))\nareas[:areas]\n"}},{"html_id":"building(site_id:String,building_id:String)-instance-method","name":"building","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L164"},"def":{"name":"building","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}\", Building)"}},{"html_id":"building_areas(site_id:String,building_id:String)-instance-method","name":"building_areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L247"},"def":{"name":"building_areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/areas\", NamedTuple(floorsAreas: FloorAreas))\nfloors[:floorsAreas]\n"}},{"html_id":"buildings(site_id:String)-instance-method","name":"buildings","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L159"},"def":{"name":"buildings","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"buildings = get_request(\"/be/cp/v2/sites/#{site_id}/buildings\", NamedTuple(buildings: Array(Building)))\nbuildings[:buildings]\n"}},{"html_id":"customers-instance-method","name":"customers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L89"},"def":{"name":"customers","visibility":"Public","body":"customers = get_request(\"/be/cp/v2/customers\", NamedTuple(endCustomers: Array(Customer)))\ncustomers[:endCustomers]\n"}},{"html_id":"delete_subscription(id:String)-instance-method","name":"delete_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L338"},"def":{"name":"delete_subscription","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"token = get_token\n(delete(\"/be/cp/v2/telemetry/subscriptions/#{id}\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L34"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(site_id:String,building_id:String,floor_id:String)-instance-method","name":"floor","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L194"},"def":{"name":"floor","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}\", Floor)"}},{"html_id":"floors(site_id:String,building_id:String)-instance-method","name":"floors","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L189"},"def":{"name":"floors","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors\", NamedTuple(floors: Array(Building)))\nfloors[:floors]\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L42"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/be/cp/oauth2/token\", body: \"grant_type=client_credentials\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\", \"Authorization\" => \"Basic #{Base64.strict_encode(\"#{@user_id}:#{@app_key}\")}\"})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body.not_nil!)\n token = resp.token\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"handlers-instance-method","name":"handlers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L276"},"def":{"name":"handlers","visibility":"Public","body":"handlers = get_request(\"/be/cp/v2/resources/handlers\", NamedTuple(handlers: Array(Handler)))\nhandlers[:handlers]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@user_id = setting(String, :user_id)\n@app_key = setting(String, :app_key)\n"}},{"html_id":"site(site_id:String)-instance-method","name":"site","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L143"},"def":{"name":"site","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}\", Site)"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L138"},"def":{"name":"sites","visibility":"Public","body":"sites = get_request(\"/be/cp/v2/sites\", NamedTuple(sites: Array(Site)))\nsites[:sites]\n"}},{"html_id":"subscribe(handler_uri:String,auth_token:String=UUID.random.to_s,events:NotificationType=NotificationType::Counting)-instance-method","name":"subscribe","abstract":false,"args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"args_string":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","args_html":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L303"},"def":{"name":"subscribe","args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"visibility":"Public","body":"URI.parse(handler_uri)\ntoken = get_token\nresponse = post(\"/be/cp/v2/telemetry/subscriptions\", body: {subscriptionType: \"PUSH\", notificationType: events.to_s.upcase, endpoint: handler_uri, token: auth_token}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n Subscription.from_json(body.not_nil!)\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"subscriptions-instance-method","name":"subscriptions","doc":"provides access to the modules subscriptions tracker","summary":"

provides access to the modules subscriptions tracker

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L334"},"def":{"name":"subscriptions","visibility":"Public","body":"get_request(\"/be/cp/v2/telemetry/subscriptions\", Array(Subscription))"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L38"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"update_count(count_json:String)-instance-method","name":"update_count","abstract":false,"args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"args_string":"(count_json : String)","args_html":"(count_json : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L376"},"def":{"name":"update_count","args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"visibility":"Public","body":"count = CountUpdate.from_json(count_json)\nself[\"area_#{count.area_id}\"] = count.count\n"}},{"html_id":"update_subscription(id:String,started:Bool=true)-instance-method","name":"update_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"args_string":"(id : String, started : Bool = true)","args_html":"(id : String, started : Bool = true)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L348"},"def":{"name":"update_subscription","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"token = get_token\n(patch(\"/be/cp/v2/telemetry/subscriptions/#{id}\", body: {started: started}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}}],"macros":[{"html_id":"get_request(path,result_type)-macro","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"args_string":"(path, result_type)","args_html":"(path, result_type)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L65"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"visibility":"Public","body":" begin\n \n%token\n = get_token\n \n%response\n = get(\n{{ path }}\n, headers: \n{\n \"Accept\" => \"application/json\",\n \"Authorization\" => \n%token\n\n })\n\n if \n%response\n.success?\n \n{{ result_type }}\n.from_json(\n%response\n.body.not_nil!)\n \nelse\n \nexpire_token! if \n%response\n.status_code == 401\n raise \"unexpected response #{\n%response\n.status_code}\\n#{\n%response\n.body}\"\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area","path":"PointGrab/CogniPoint/Area.html","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L198"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L199"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"applications:Array(Application)-instance-method","name":"applications","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications","return_type":"Array(Application)","visibility":"Public","body":"@applications"}},{"html_id":"applications=(applications:Array(Application))-instance-method","name":"applications=","abstract":false,"args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"args_string":"(applications : Array(Application))","args_html":"(applications : Array(Application))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications=","args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"visibility":"Public","body":"@applications = applications"}},{"html_id":"center_x:Float64-instance-method","name":"center_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x","return_type":"Float64","visibility":"Public","body":"@center_x"}},{"html_id":"center_x=(center_x:Float64)-instance-method","name":"center_x=","abstract":false,"args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"args_string":"(center_x : Float64)","args_html":"(center_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x=","args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"visibility":"Public","body":"@center_x = center_x"}},{"html_id":"center_y:Float64-instance-method","name":"center_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y","return_type":"Float64","visibility":"Public","body":"@center_y"}},{"html_id":"center_y=(center_y:Float64)-instance-method","name":"center_y=","abstract":false,"args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"args_string":"(center_y : Float64)","args_html":"(center_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y=","args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"visibility":"Public","body":"@center_y = center_y"}},{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"device_ids=(device_ids:Array(String))-instance-method","name":"device_ids=","abstract":false,"args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"args_string":"(device_ids : Array(String))","args_html":"(device_ids : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids=","args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@device_ids = device_ids"}},{"html_id":"frequency:Int32-instance-method","name":"frequency","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency","return_type":"Int32","visibility":"Public","body":"@frequency"}},{"html_id":"frequency=(frequency:Int32)-instance-method","name":"frequency=","abstract":false,"args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"args_string":"(frequency : Int32)","args_html":"(frequency : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency=","args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"visibility":"Public","body":"@frequency = frequency"}},{"html_id":"geo_positions:Array(GeoPosition)|Nil-instance-method","name":"geo_positions","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions","return_type":"Array(GeoPosition) | ::Nil","visibility":"Public","body":"@geo_positions"}},{"html_id":"geo_positions=(geo_positions:Array(GeoPosition)|Nil)-instance-method","name":"geo_positions=","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"args_string":"(geo_positions : Array(GeoPosition) | Nil)","args_html":"(geo_positions : Array(GeoPosition) | Nil)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions=","args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"visibility":"Public","body":"@geo_positions = geo_positions"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"length=(length:Float64)-instance-method","name":"length=","abstract":false,"args":[{"name":"length","external_name":"length","restriction":"Float64"}],"args_string":"(length : Float64)","args_html":"(length : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length=","args":[{"name":"length","external_name":"length","restriction":"Float64"}],"visibility":"Public","body":"@length = length"}},{"html_id":"metric_positions:Array(MetricPositions)-instance-method","name":"metric_positions","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions","return_type":"Array(MetricPositions)","visibility":"Public","body":"@metric_positions"}},{"html_id":"metric_positions=(metric_positions:Array(MetricPositions))-instance-method","name":"metric_positions=","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"args_string":"(metric_positions : Array(MetricPositions))","args_html":"(metric_positions : Array(MetricPositions))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions=","args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"visibility":"Public","body":"@metric_positions = metric_positions"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"rotation:Int32-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation","return_type":"Int32","visibility":"Public","body":"@rotation"}},{"html_id":"rotation=(rotation:Int32)-instance-method","name":"rotation=","abstract":false,"args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"args_string":"(rotation : Int32)","args_html":"(rotation : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation=","args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"visibility":"Public","body":"@rotation = rotation"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area/Application","path":"PointGrab/CogniPoint/Area/Application.html","kind":"class","full_name":"PointGrab::CogniPoint::Area::Application","name":"Application","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Area","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_type:String-instance-method","name":"application_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type","return_type":"String","visibility":"Public","body":"@application_type"}},{"html_id":"application_type=(application_type:String)-instance-method","name":"application_type=","abstract":false,"args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"args_string":"(application_type : String)","args_html":"(application_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type=","args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"visibility":"Public","body":"@application_type = application_type"}},{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Building","path":"PointGrab/CogniPoint/Building.html","kind":"class","full_name":"PointGrab::CogniPoint::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L147"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L148"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Site::Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location","return_type":"Site::Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Site::Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"args_string":"(location : Site::Location)","args_html":"(location : Site::Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/CountUpdate","path":"PointGrab/CogniPoint/CountUpdate.html","kind":"class","full_name":"PointGrab::CogniPoint::CountUpdate","name":"CountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"doc":"TODO:: this data is posted to the subscription endpoint\nwe need to implement webhooks for this to work properly","summary":"

TODO : this data is posted to the subscription endpoint we need to implement webhooks for this to work properly

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"devices:Array(String)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices","return_type":"Array(String)","visibility":"Public","body":"@devices"}},{"html_id":"devices=(devices:Array(String))-instance-method","name":"devices=","abstract":false,"args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"args_string":"(devices : Array(String))","args_html":"(devices : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices=","args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"visibility":"Public","body":"@devices = devices"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}},{"html_id":"timestamp:UInt64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp","return_type":"UInt64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:UInt64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"args_string":"(timestamp : UInt64)","args_html":"(timestamp : UInt64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Customer","path":"PointGrab/CogniPoint/Customer.html","kind":"class","full_name":"PointGrab::CogniPoint::Customer","name":"Customer","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Floor","path":"PointGrab/CogniPoint/Floor.html","kind":"class","full_name":"PointGrab::CogniPoint::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_number:String-instance-method","name":"floor_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number","return_type":"String","visibility":"Public","body":"@floor_number"}},{"html_id":"floor_number=(floor_number:String)-instance-method","name":"floor_number=","abstract":false,"args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"args_string":"(floor_number : String)","args_html":"(floor_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number=","args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"visibility":"Public","body":"@floor_number = floor_number"}},{"html_id":"floor_plan_url:String-instance-method","name":"floor_plan_url","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url","return_type":"String","visibility":"Public","body":"@floor_plan_url"}},{"html_id":"floor_plan_url=(floor_plan_url:String)-instance-method","name":"floor_plan_url=","abstract":false,"args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"args_string":"(floor_plan_url : String)","args_html":"(floor_plan_url : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url=","args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"visibility":"Public","body":"@floor_plan_url = floor_plan_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length_distance:Float64-instance-method","name":"length_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance","return_type":"Float64","visibility":"Public","body":"@length_distance"}},{"html_id":"length_distance=(length_distance:Float64)-instance-method","name":"length_distance=","abstract":false,"args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"args_string":"(length_distance : Float64)","args_html":"(length_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance=","args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"visibility":"Public","body":"@length_distance = length_distance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"width_distance:Float64-instance-method","name":"width_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance","return_type":"Float64","visibility":"Public","body":"@width_distance"}},{"html_id":"width_distance=(width_distance:Float64)-instance-method","name":"width_distance=","abstract":false,"args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"args_string":"(width_distance : Float64)","args_html":"(width_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance=","args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"visibility":"Public","body":"@width_distance = width_distance"}}]},{"html_id":"drivers/PointGrab/CogniPoint/FloorAreas","path":"PointGrab/CogniPoint/FloorAreas.html","kind":"class","full_name":"PointGrab::CogniPoint::FloorAreas","name":"FloorAreas","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L239"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L240"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"areas:Array(Area)-instance-method","name":"areas","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas","return_type":"Array(Area)","visibility":"Public","body":"@areas"}},{"html_id":"areas=(areas:Array(Area))-instance-method","name":"areas=","abstract":false,"args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"args_string":"(areas : Array(Area))","args_html":"(areas : Array(Area))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas=","args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"visibility":"Public","body":"@areas = areas"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/GeoPosition","path":"PointGrab/CogniPoint/GeoPosition.html","kind":"class","full_name":"PointGrab::CogniPoint::GeoPosition","name":"GeoPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"latitude=(latitude:Float64)-instance-method","name":"latitude=","abstract":false,"args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"args_string":"(latitude : Float64)","args_html":"(latitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude=","args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"visibility":"Public","body":"@latitude = latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"longitude=(longitude:Float64)-instance-method","name":"longitude=","abstract":false,"args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"args_string":"(longitude : Float64)","args_html":"(longitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude=","args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"visibility":"Public","body":"@longitude = longitude"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Handler","path":"PointGrab/CogniPoint/Handler.html","kind":"class","full_name":"PointGrab::CogniPoint::Handler","name":"Handler","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L263"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L264"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_id:UInt32-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id","return_type":"UInt32","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:UInt32)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"args_string":"(app_id : UInt32)","args_html":"(app_id : UInt32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"end_point:String-instance-method","name":"end_point","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point","return_type":"String","visibility":"Public","body":"@end_point"}},{"html_id":"end_point=(end_point:String)-instance-method","name":"end_point=","abstract":false,"args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"args_string":"(end_point : String)","args_html":"(end_point : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point=","args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"visibility":"Public","body":"@end_point = end_point"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/PointGrab/CogniPoint/MetricPositions","path":"PointGrab/CogniPoint/MetricPositions.html","kind":"class","full_name":"PointGrab::CogniPoint::MetricPositions","name":"MetricPositions","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"pos_x:Float64-instance-method","name":"pos_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x","return_type":"Float64","visibility":"Public","body":"@pos_x"}},{"html_id":"pos_x=(pos_x:Float64)-instance-method","name":"pos_x=","abstract":false,"args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"args_string":"(pos_x : Float64)","args_html":"(pos_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x=","args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"visibility":"Public","body":"@pos_x = pos_x"}},{"html_id":"pos_y:Float64-instance-method","name":"pos_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y","return_type":"Float64","visibility":"Public","body":"@pos_y"}},{"html_id":"pos_y=(pos_y:Float64)-instance-method","name":"pos_y=","abstract":false,"args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"args_string":"(pos_y : Float64)","args_html":"(pos_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y=","args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"visibility":"Public","body":"@pos_y = pos_y"}}]},{"html_id":"drivers/PointGrab/CogniPoint/NotificationType","path":"PointGrab/CogniPoint/NotificationType.html","kind":"enum","full_name":"PointGrab::CogniPoint::NotificationType","name":"NotificationType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L298"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Counting","name":"Counting","value":"0"},{"id":"Traffic","name":"Traffic","value":"1"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"instance_methods":[{"html_id":"counting?-instance-method","name":"counting?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L299"},"def":{"name":"counting?","visibility":"Public","body":"self == Counting"}},{"html_id":"traffic?-instance-method","name":"traffic?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L300"},"def":{"name":"traffic?","visibility":"Public","body":"self == Traffic"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Site","path":"PointGrab/CogniPoint/Site.html","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"customer_id:String-instance-method","name":"customer_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id","return_type":"String","visibility":"Public","body":"@customer_id"}},{"html_id":"customer_id=(customer_id:String)-instance-method","name":"customer_id=","abstract":false,"args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"args_string":"(customer_id : String)","args_html":"(customer_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id=","args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"visibility":"Public","body":"@customer_id = customer_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Site/Location","path":"PointGrab/CogniPoint/Site/Location.html","kind":"class","full_name":"PointGrab::CogniPoint::Site::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Site","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"city=(city:String)-instance-method","name":"city=","abstract":false,"args":[{"name":"city","external_name":"city","restriction":"String"}],"args_string":"(city : String)","args_html":"(city : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city=","args":[{"name":"city","external_name":"city","restriction":"String"}],"visibility":"Public","body":"@city = city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"country=(country:String)-instance-method","name":"country=","abstract":false,"args":[{"name":"country","external_name":"country","restriction":"String"}],"args_string":"(country : String)","args_html":"(country : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country=","args":[{"name":"country","external_name":"country","restriction":"String"}],"visibility":"Public","body":"@country = country"}},{"html_id":"county:String-instance-method","name":"county","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county","return_type":"String","visibility":"Public","body":"@county"}},{"html_id":"county=(county:String)-instance-method","name":"county=","abstract":false,"args":[{"name":"county","external_name":"county","restriction":"String"}],"args_string":"(county : String)","args_html":"(county : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county=","args":[{"name":"county","external_name":"county","restriction":"String"}],"visibility":"Public","body":"@county = county"}},{"html_id":"geo_position:GeoPosition-instance-method","name":"geo_position","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position","return_type":"GeoPosition","visibility":"Public","body":"@geo_position"}},{"html_id":"geo_position=(geo_position:GeoPosition)-instance-method","name":"geo_position=","abstract":false,"args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"args_string":"(geo_position : GeoPosition)","args_html":"(geo_position : GeoPosition)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position=","args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"visibility":"Public","body":"@geo_position = geo_position"}},{"html_id":"house_number:String-instance-method","name":"house_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number","return_type":"String","visibility":"Public","body":"@house_number"}},{"html_id":"house_number=(house_number:String)-instance-method","name":"house_number=","abstract":false,"args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"args_string":"(house_number : String)","args_html":"(house_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number=","args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"visibility":"Public","body":"@house_number = house_number"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"state=(state:String)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"@state = state"}},{"html_id":"street:String-instance-method","name":"street","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street","return_type":"String","visibility":"Public","body":"@street"}},{"html_id":"street=(street:String)-instance-method","name":"street=","abstract":false,"args":[{"name":"street","external_name":"street","restriction":"String"}],"args_string":"(street : String)","args_html":"(street : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street=","args":[{"name":"street","external_name":"street","restriction":"String"}],"visibility":"Public","body":"@street = street"}},{"html_id":"zip:String-instance-method","name":"zip","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip","return_type":"String","visibility":"Public","body":"@zip"}},{"html_id":"zip=(zip:String)-instance-method","name":"zip=","abstract":false,"args":[{"name":"zip","external_name":"zip","restriction":"String"}],"args_string":"(zip : String)","args_html":"(zip : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip=","args":[{"name":"zip","external_name":"zip","restriction":"String"}],"visibility":"Public","body":"@zip = zip"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Subscription","path":"PointGrab/CogniPoint/Subscription.html","kind":"class","full_name":"PointGrab::CogniPoint::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"endpoint:String-instance-method","name":"endpoint","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint","return_type":"String","visibility":"Public","body":"@endpoint"}},{"html_id":"endpoint=(endpoint:String)-instance-method","name":"endpoint=","abstract":false,"args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"args_string":"(endpoint : String)","args_html":"(endpoint : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint=","args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"visibility":"Public","body":"@endpoint = endpoint"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"notification_type:String-instance-method","name":"notification_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type","return_type":"String","visibility":"Public","body":"@notification_type"}},{"html_id":"notification_type=(notification_type:String)-instance-method","name":"notification_type=","abstract":false,"args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"args_string":"(notification_type : String)","args_html":"(notification_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type=","args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"visibility":"Public","body":"@notification_type = notification_type"}},{"html_id":"started:Bool-instance-method","name":"started","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started","return_type":"Bool","visibility":"Public","body":"@started"}},{"html_id":"started=(started:Bool)-instance-method","name":"started=","abstract":false,"args":[{"name":"started","external_name":"started","restriction":"Bool"}],"args_string":"(started : Bool)","args_html":"(started : Bool)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started=","args":[{"name":"started","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"@started = started"}},{"html_id":"subscription_type:String-instance-method","name":"subscription_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type","return_type":"String","visibility":"Public","body":"@subscription_type"}},{"html_id":"subscription_type=(subscription_type:String)-instance-method","name":"subscription_type=","abstract":false,"args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"args_string":"(subscription_type : String)","args_html":"(subscription_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type=","args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"visibility":"Public","body":"@subscription_type = subscription_type"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}}]},{"html_id":"drivers/PointGrab/CogniPoint/TokenResponse","path":"PointGrab/CogniPoint/TokenResponse.html","kind":"class","full_name":"PointGrab::CogniPoint::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]}]},{"html_id":"drivers/Polygon","path":"Polygon.html","kind":"class","full_name":"Polygon","name":"Polygon","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(points:Array(Point))-class-method","name":"new","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/place/area_polygon.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L36"},"def":{"name":"new","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(points)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"contains(testx:Float64,testy:Float64)-instance-method","name":"contains","abstract":false,"args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"args_string":"(testx : Float64, testy : Float64)","args_html":"(testx : Float64, testy : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L54"},"def":{"name":"contains","args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"visibility":"Public","body":"if ((testx < @xmin || testx > @xmax) || testy < @ymin) || testy > @ymax\n return false\nend\ninside = false\nprevious_index = @points.size - 1\n@points.each_with_index do |point, index|\n previous = @points[previous_index]\n if ((point.y > testy) != (previous.y > testy)) && (testx < ((((previous.x - point.x) * (testy - point.y)) / (previous.y - point.y)) + point.x))\n inside = !inside\n end\n previous_index = index\nend\ninside\n"}},{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L48"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"xmax:Float64-instance-method","name":"xmax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L51"},"def":{"name":"xmax","return_type":"Float64","visibility":"Public","body":"@xmax"}},{"html_id":"xmin:Float64-instance-method","name":"xmin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L49"},"def":{"name":"xmin","return_type":"Float64","visibility":"Public","body":"@xmin"}},{"html_id":"ymax:Float64-instance-method","name":"ymax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L52"},"def":{"name":"ymax","return_type":"Float64","visibility":"Public","body":"@ymax"}},{"html_id":"ymin:Float64-instance-method","name":"ymin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/area_polygon.cr#L50"},"def":{"name":"ymin","return_type":"Float64","visibility":"Public","body":"@ymin"}}]},{"html_id":"drivers/Qbic","path":"Qbic.html","kind":"module","full_name":"Qbic","name":"Qbic","abstract":false,"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qbic/TouchPanel","path":"Qbic/TouchPanel.html","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"USERNAME","name":"USERNAME","value":"\"admin\""}],"namespace":{"html_id":"drivers/Qbic","kind":"module","full_name":"Qbic","name":"Qbic"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_info-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L188"},"def":{"name":"device_info","visibility":"Public","body":"query(\"GET\", \"/v1/info/\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_all_leds-instance-method","name":"get_all_leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L216"},"def":{"name":"get_all_leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n self[:light_names] = leds\n leds.each do |name|\n get_led_state(name)\n end\n true\nend"}},{"html_id":"get_eddystone_uid-instance-method","name":"get_eddystone_uid","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L165"},"def":{"name":"get_eddystone_uid","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_uid\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_eddystone_url-instance-method","name":"get_eddystone_url","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L184"},"def":{"name":"get_eddystone_url","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_url\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_ibeacon-instance-method","name":"get_ibeacon","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L143"},"def":{"name":"get_ibeacon","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/ibeacon\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_led_state(name:String)-instance-method","name":"get_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L212"},"def":{"name":"get_led_state","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led/#{name}\") do |data|\n self[name] = JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L60"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nif refresh_token = @refresh_token\n response = post(\"/v1/oauth2/token\", body: {grant_type: \"refresh_token\", refresh_token: refresh_token}.to_json)\n if response.success?\n resp = AuthResponse.from_json(response.body.not_nil!)\n @expired = false\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\n @refresh_token = resp.refresh_token\n return @auth_token\n else\n logger.debug do\n \"refresh token request failed\"\n end\n end\nend\nresponse = post(\"/v1/oauth2/token\", body: {grant_type: \"password\", username: USERNAME, password: @password}.to_json)\ndata = response.body.not_nil!\nif response.success?\n resp = AuthResponse.from_json(data)\n @expired = false\n @refresh_token = resp.refresh_token\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\nelse\n resp = FailureResponse.from_json(data)\n raise(\"failed to obtain access token: #{resp.detail} (#{response.status})\")\nend\n"}},{"html_id":"leds-instance-method","name":"leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L208"},"def":{"name":"leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n self[:leds] = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@password = URI.encode_www_form(setting(String, :password))\ntransport.before_request do |request|\n request.headers[\"Content-Type\"] = \"application/json\"\n if token_expired?\n else\n request.headers[\"Authorization\"] = @auth_token\n end\nend\nschedule.clear\nschedule.every(1.minute) do\n logger.debug do\n \"polling to check connectivity\"\n end\n resp = get(\"/v1/public/info/\")\n if resp.success?\n logger.debug do\n resp.body\n end\n get_all_leds\n end\nend\n"}},{"html_id":"set_all_leds(red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_all_leds","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L235"},"def":{"name":"set_all_leds","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n leds.each do |name|\n set_led_state(name, red, green, blue)\n end\n true\nend"}},{"html_id":"set_eddystone_uid(enabled:Bool,namespace:String|Nil=nil,instance:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_uid","doc":"https://github.com/google/eddystone/tree/master/eddystone-uid","summary":"

https://github.com/google/eddystone/tree/master/eddystone-uid

","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L149"},"def":{"name":"set_eddystone_uid","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_uid\", {enabled: enabled ? \"enabled\" : \"disabled\", namespace: namespace, instance: instance, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_eddystone_url(enabled:Bool,url:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_url","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L170"},"def":{"name":"set_eddystone_url","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_url\", {enabled: enabled ? \"enabled\" : \"disabled\", url: url, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_ibeacon(enabled:Bool,major:UInt16|Nil=nil,minor:UInt16|Nil=nil,uuid:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_ibeacon","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L125"},"def":{"name":"set_ibeacon","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/ibeacon\", {enabled: enabled ? \"enabled\" : \"disabled\", major: major, minor: minor, uuid: uuid, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_led_state(name:String,red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","args_html":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L226"},"def":{"name":"set_led_state","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"value = {red: red, green: green, blue: blue}\nquery(\"POST\", \"/v1/led/#{name}\", value.to_json) do\n self[name] = value\nend\n"}},{"html_id":"set_setting(key:String,value:String|JSON::Any)-instance-method","name":"set_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"args_string":"(key : String, value : String | JSON::Any)","args_html":"(key : String, value : String | JSON::Any)","location":{"filename":"src/qbic/touch_panel.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L197"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"visibility":"Public","body":"query(\"POST\", \"/v1/settings/#{key}\", {value: value}.to_json) do\n true\nend"}},{"html_id":"set_url(value:String)-instance-method","name":"set_url","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String)","args_html":"(value : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L204"},"def":{"name":"set_url","args":[{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"set_setting(\"content_url\", value)"}},{"html_id":"settings-instance-method","name":"settings","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L192"},"def":{"name":"settings","visibility":"Public","body":"query(\"GET\", \"/v1/settings\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"token_expired?:Bool-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L56"},"def":{"name":"token_expired?","visibility":"Public","body":"@expired"}},{"html_id":"update_password(new_password:String)-instance-method","name":"update_password","abstract":false,"args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"args_string":"(new_password : String)","args_html":"(new_password : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L106"},"def":{"name":"update_password","args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"visibility":"Public","body":"if new_password.size >= 4 && new_password.size <= 16\nelse\n raise(\"password must be between 4 and 16 characters\")\nend\nquery(\"POST\", \"/v1/user/password\") do\n define_setting(:password, new_password)\nend\n"}},{"html_id":"wifi_scan-instance-method","name":"wifi_scan","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L114"},"def":{"name":"wifi_scan","visibility":"Public","body":"query(\"GET\", \"/v1/wifi/scan_results\") do |data|\n JSON.parse(data.not_nil!)\nend"}}],"types":[{"html_id":"drivers/Qbic/TouchPanel/AdvertiseMode","path":"Qbic/TouchPanel/AdvertiseMode.html","kind":"enum","full_name":"Qbic::TouchPanel::AdvertiseMode","name":"AdvertiseMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L118"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LowLatency","name":"LowLatency","value":"0"},{"id":"Balanced","name":"Balanced","value":"1"},{"id":"LowPower","name":"LowPower","value":"2"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"instance_methods":[{"html_id":"balanced?-instance-method","name":"balanced?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L120"},"def":{"name":"balanced?","visibility":"Public","body":"self == Balanced"}},{"html_id":"low_latency?-instance-method","name":"low_latency?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L119"},"def":{"name":"low_latency?","visibility":"Public","body":"self == LowLatency"}},{"html_id":"low_power?-instance-method","name":"low_power?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L121"},"def":{"name":"low_power?","visibility":"Public","body":"self == LowPower"}}]},{"html_id":"drivers/Qbic/TouchPanel/AuthResponse","path":"Qbic/TouchPanel/AuthResponse.html","kind":"class","full_name":"Qbic::TouchPanel::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"refresh_token:String-instance-method","name":"refresh_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token","return_type":"String","visibility":"Public","body":"@refresh_token"}},{"html_id":"refresh_token=(refresh_token:String)-instance-method","name":"refresh_token=","abstract":false,"args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"args_string":"(refresh_token : String)","args_html":"(refresh_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token=","args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"visibility":"Public","body":"@refresh_token = refresh_token"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]},{"html_id":"drivers/Qbic/TouchPanel/FailureResponse","path":"Qbic/TouchPanel/FailureResponse.html","kind":"class","full_name":"Qbic::TouchPanel::FailureResponse","name":"FailureResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"detail:String-instance-method","name":"detail","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail","return_type":"String","visibility":"Public","body":"@detail"}},{"html_id":"detail=(detail:String)-instance-method","name":"detail=","abstract":false,"args":[{"name":"detail","external_name":"detail","restriction":"String"}],"args_string":"(detail : String)","args_html":"(detail : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail=","args":[{"name":"detail","external_name":"detail","restriction":"String"}],"visibility":"Public","body":"@detail = detail"}}]}]}]},{"html_id":"drivers/Qsc","path":"Qsc.html","kind":"module","full_name":"Qsc","name":"Qsc","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qsc/QSysControl","path":"Qsc/QSysControl.html","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"about-instance-method","name":"about","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L138"},"def":{"name":"about","visibility":"Public","body":"do_send(\"sg\\n\", name: :status, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L54"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nif @username\n login\nend\nrecreate_change_groups\nschedule.every(40.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n about\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L64"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n"}},{"html_id":"fader(fader_ids:Ids,level:Val)-instance-method","name":"fader","doc":"Compatibility Methods","summary":"

Compatibility Methods

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L163"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = -100..20\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = (level_actual + range.begin.to_f).round(1)\n(ensure_array(fader_ids)).each do |f_id|\n if @history[f_id]? == (:percentage_fader)\n set_value(f_id, level, name: \"fader#{f_id}\")\n else\n set_value(f_id, level_actual, name: \"fader#{f_id}\", fader_type: :fader)\n end\nend\n"}},{"html_id":"faders(fader_ids:Ids,level:Val)-instance-method","name":"faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L181"},"def":{"name":"faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"fader(fader_ids, level)"}},{"html_id":"get_status(control_id:String,**options)-instance-method","name":"get_status","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String, **options)","args_html":"(control_id : String, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L112"},"def":{"name":"get_status","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\ndo_send(\"cg #{control_id}\\n\", **options)\n"}},{"html_id":"history:Hash(String,Symbol)-instance-method","name":"history","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L31"},"def":{"name":"history","return_type":"Hash(String, Symbol)","visibility":"Public","body":"@history"}},{"html_id":"login(username:String|Nil=nil,password:String|Nil=nil)-instance-method","name":"login","abstract":false,"args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil = nil, password : String | Nil = nil)","args_html":"(username : String | Nil = nil, password : String | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L142"},"def":{"name":"login","args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"username || (username = @username)\npassword || (password = @password)\ndo_send(\"login #{username} #{password}\\n\", name: :login, priority: 99)\n"}},{"html_id":"mute(mute_ids:Ids,state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool = true)","args_html":"(mute_ids : Ids, state : Bool = true)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L185"},"def":{"name":"mute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 1 : 0\n(ensure_array(mute_ids)).each do |m_id|\n set_value(m_id, level, fader_type: :mute)\nend\n"}},{"html_id":"mute_toggle(mute_id:Ids)-instance-method","name":"mute_toggle","abstract":false,"args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"args_string":"(mute_id : Ids)","args_html":"(mute_id : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L198"},"def":{"name":"mute_toggle","args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_id, !self[\"fader#{mute_id}_mute\"]?.try(&.as_bool))"}},{"html_id":"mutes(mute_ids:Ids,state:Bool)-instance-method","name":"mutes","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool)","args_html":"(mute_ids : Ids, state : Bool)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L190"},"def":{"name":"mutes","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(mute_ids, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nqueue.retries = 1\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@static_change_groups = (setting?(Hash(String, Group), :change_groups)) || ({} of String => Group)\nif @connected\n if @username\n login\n end\n recreate_change_groups\nend\n"}},{"html_id":"phone_dial(control_id:String)-instance-method","name":"phone_dial","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L233"},"def":{"name":"phone_dial","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"trigger(control_id)\nschedule.in(200.milliseconds) do\n poll_change_group(:phone)\nend\n"}},{"html_id":"phone_hangup(control_id:String)-instance-method","name":"phone_hangup","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L238"},"def":{"name":"phone_hangup","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"phone_dial(control_id)"}},{"html_id":"phone_number(number:String,control_id:String)-instance-method","name":"phone_number","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(number : String, control_id : String)","args_html":"(number : String, control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L229"},"def":{"name":"phone_number","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"set_string(control_id, number)"}},{"html_id":"query_fader(fader_ids:Ids)-instance-method","name":"query_fader","doc":"For inter-module compatibility","summary":"

For inter-module compatibility

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L211"},"def":{"name":"query_fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: (@history[fad]? || (:fader)))\n"}},{"html_id":"query_faders(fader_ids:Ids)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L216"},"def":{"name":"query_faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |f_id|\n get_status(f_id, fader_type: (@history[f_id]? || (:fader)))\nend"}},{"html_id":"query_mute(fader_ids:Ids)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L220"},"def":{"name":"query_mute","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: :mute)\n"}},{"html_id":"query_mutes(fader_ids:Ids)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L225"},"def":{"name":"query_mutes","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |fad|\n get_status(fad, fader_type: :mute)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L277"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nputs(\"GOT: #{data}\")\nif data == \"none\\r\\n\"\n return task.try(&.success)\nend\nlogger.debug do\n \"QSys sent: #{data}\"\nend\nresp = shellsplit(data)\ncase resp[0]\nwhen \"cv\"\n control_id = resp[1]\n string_rep = resp[2]\n value = resp[-2]\n position = resp[-1].to_f\n self[\"pos_#{control_id}\"] = position\n if string_rep.ends_with?('%')\n @history[control_id] = :percentage_fader\n end\n if type = @history[control_id]?\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :percentage_fader\n self[\"fader#{control_id}\"] = value.to_f\n when :mute\n self[\"fader#{control_id}_mute\"] = value.to_i == 1\n end\n else\n value = resp[2]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id} == #{value}\"\n end\n end\nwhen \"cvv\"\n control_id = resp[1]\n count = resp[2].to_i\n if type = @history[control_id]?\n next_count = count + 3\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :mute\n self[\"fader#{control_id}_mute\"] = value == 1\n end\n end\n else\n next_count = 2\n 1.upto(count) do |index|\n value = resp[next_count + index]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id}\"\n end\n next_count = count + 3\n count = resp[next_count].to_i\n end\n next_count = (next_count + count) + 1\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n self[\"pos_#{control_id}\"] = value\n end\nwhen \"sr\"\n self[:design_name] = resp[1]\n self[:is_primary] = resp[3] == \"1\"\n self[:is_active] = resp[4] == \"1\"\nwhen \"core_not_active\", \"bad_change_group_handle\", \"bad_command\", \"bad_id\", \"control_read_only\", \"too_many_change_groups\"\n return task.try(&.abort(\"Error response received: #{data}\"))\nwhen \"login_required\"\n if @username\n login\n end\n return task.try(&.abort(\"Login is required!\"))\nwhen \"login_success\"\n logger.debug do\n \"Login success!\"\n end\nwhen \"login_failed\"\n return task.try(&.abort(\"Invalid login details provided\"))\nwhen \"rc\"\n logger.warn do\n \"System is notifying us of a disconnect!\"\n end\nwhen \"cmvv\"\n logger.debug do\n \"received cmvv response\"\n end\nelse\n logger.warn do\n \"Unknown response received #{data}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_snapshot(name:String,index:Int32)-instance-method","name":"save_snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(name : String, index : Int32)","args_html":"(name : String, index : Int32)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L206"},"def":{"name":"save_snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(\"sss \\\"#{name}\\\" #{index}\\n\")"}},{"html_id":"set_position(control_id:String,position:Int32,ramp_time:Val|Nil=nil)-instance-method","name":"set_position","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","args_html":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L118"},"def":{"name":"set_position","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"visibility":"Public","body":"if ramp_time\n do_send(\"cspr \\\"#{control_id}\\\" #{position} #{ramp_time}\\n\")\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csp \\\"#{control_id}\\\" #{position}\\n\")\nend"}},{"html_id":"set_string(control_ids:Ids,text:String)-instance-method","name":"set_string","doc":"Used to set a dial number/string","summary":"

Used to set a dial number/string

","abstract":false,"args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(control_ids : Ids, text : String)","args_html":"(control_ids : Ids, text : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L149"},"def":{"name":"set_string","args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"(ensure_array(control_ids)).each do |id|\n (do_send(\"css \\\"#{id}\\\" \\\"#{text}\\\"\\n\")).get\n self[id] = text\nend"}},{"html_id":"set_value(control_id:String,value:Val,ramp_time:Val|Nil=nil,**options)-instance-method","name":"set_value","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","args_html":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L127"},"def":{"name":"set_value","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\nif ramp_time\n do_send(\"csvr \\\"#{control_id}\\\" #{value} #{ramp_time}\\n\", **options)\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csv \\\"#{control_id}\\\" #{value}\\n\", **options)\nend\n"}},{"html_id":"snapshot(name:String,index:Int32,ramp_time:Val=1.5)-instance-method","name":"snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"args_string":"(name : String, index : Int32, ramp_time : Val = 1.5)","args_html":"(name : String, index : Int32, ramp_time : Val = 1.5)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L202"},"def":{"name":"snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"visibility":"Public","body":"do_send(\"ssl \\\"#{name}\\\" #{index} #{ramp_time}\\n\")"}},{"html_id":"trigger(control_id:String)-instance-method","name":"trigger","doc":"Used to trigger dialing etc","summary":"

Used to trigger dialing etc

","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L157"},"def":{"name":"trigger","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Sending trigger to Qsys: ct #{control_id}\"\nend\ndo_send(\"ct \\\"#{control_id}\\\"\\n\")\n"}},{"html_id":"unmute(mute_ids:Ids)-instance-method","name":"unmute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"args_string":"(mute_ids : Ids)","args_html":"(mute_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L194"},"def":{"name":"unmute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_ids, false)"}}],"types":[{"html_id":"drivers/Qsc/QSysControl/Group","path":"Qsc/QSysControl/Group.html","kind":"alias","full_name":"Qsc::QSysControl::Group","name":"Group","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: Int32, controls: Set(String))","aliased_html":"{id: Int32, controls: Set(String)}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Ids","path":"Qsc/QSysControl/Ids.html","kind":"alias","full_name":"Qsc::QSysControl::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Val","path":"Qsc/QSysControl/Val.html","kind":"alias","full_name":"Qsc::QSysControl::Val","name":"Val","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}}]},{"html_id":"drivers/Qsc/QSysRemote","path":"Qsc/QSysRemote.html","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BoolVals","name":"BoolVals","value":"[\"true\", \"false\"]"},{"id":"DB_RANGE","name":"DB_RANGE","value":"-100..20"},{"id":"Delimiter","name":"Delimiter","value":"\"\\u0000\""},{"id":"Errors","name":"Errors","value":"{-32700 => \"Parse error. Invalid JSON was received by the server.\", -32600 => \"Invalid request. The JSON sent is not a valid Request object.\", -32601 => \"Method not found.\", -32602 => \"Invalid params.\", -32603 => \"Server error.\", 2 => \"Invalid Page Request ID\", 3 => \"Bad Page Request - could not create the requested Page Request\", 4 => \"Missing file\", 5 => \"Change Groups exhausted\", 6 => \"Unknown change croup\", 7 => \"Unknown component name\", 8 => \"Unknown control\", 9 => \"Illegal mixer channel index\", 10 => \"Logon required\"}"},{"id":"Faders","name":"Faders","value":"{matrix_in: {type: :\"Mixer.SetInputGain\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputGain\", pri: :Outputs}, matrix_crosspoint: {type: :\"Mixer.SetCrossPointGain\", pri: :Inputs, sec: :Outputs}}"},{"id":"JsonRpcVer","name":"JsonRpcVer","value":"\"2.0\""},{"id":"Mutes","name":"Mutes","value":"{matrix_in: {type: :\"Mixer.SetInputMute\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputMute\", pri: :Outputs}}"}],"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_poll_change_group(group_id:String,every:Num,**options)-instance-method","name":"auto_poll_change_group","doc":"Where every is the number of seconds between polls","summary":"

Where every is the number of seconds between polls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"args_string":"(group_id : String, every : Num, **options)","args_html":"(group_id : String, every : Num, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L175"},"def":{"name":"auto_poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AutoPoll\", {:Id => group_id, :Rate => every}, **options)"}},{"html_id":"change_group_add_component(group_id:String,component_name:String,controls:Array(String),**options)-instance-method","name":"change_group_add_component","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, component_name : String, controls : Array(String), **options)","args_html":"(group_id : String, component_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L149"},"def":{"name":"change_group_add_component","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddComponentControl\", {:Id => group_id, :Component => {:Name => component_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}}, **options)"}},{"html_id":"change_group_add_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_add_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L135"},"def":{"name":"change_group_add_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddControl\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"change_group_remove_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_remove_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L142"},"def":{"name":"change_group_remove_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Remove\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"clear_change_group(group_id:String,**options)-instance-method","name":"clear_change_group","doc":"Removes all controls from change group","summary":"

Removes all controls from change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L170"},"def":{"name":"clear_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Clear\", {:Id => group_id}, **options)"}},{"html_id":"component_get(c_name:String,controls:Array(String),**options)-instance-method","name":"component_get","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(c_name : String, controls : Array(String), **options)","args_html":"(c_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L108"},"def":{"name":"component_get","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Get\", {:Name => c_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}, **options)"}},{"html_id":"component_set(c_name:String,values:Values,**options)-instance-method","name":"component_set","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"args_string":"(c_name : String, values : Values, **options)","args_html":"(c_name : String, values : Values, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L115"},"def":{"name":"component_set","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"values = ensure_array(values)\ndo_send(next_id, \"Component.Set\", {:Name => c_name, :Controls => values}, **options)\n"}},{"html_id":"component_trigger(component:String,trigger:String,**options)-instance-method","name":"component_trigger","abstract":false,"args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"args_string":"(component : String, trigger : String, **options)","args_html":"(component : String, trigger : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L124"},"def":{"name":"component_trigger","args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Trigger\", {:Name => component, :Controls => [{:Name => trigger}]}, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(20.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n no_op\nend\n@id = 0\n"}},{"html_id":"control_get(names:Array(String),**options)-instance-method","name":"control_get","abstract":false,"args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"args_string":"(names : Array(String), **options)","args_html":"(names : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L104"},"def":{"name":"control_get","args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Control.Get\", names, **options)"}},{"html_id":"control_set(name:String,value:Num|Bool,ramp:Num|Nil=nil,**options)-instance-method","name":"control_set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"args_string":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","args_html":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L87"},"def":{"name":"control_set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if ramp\n params = {:Name => name, :Value => value, :Ramp => ramp}\nelse\n params = {:Name => name, :Value => value}\nend\ndo_send(next_id, \"Control.Set\", params, **options)\n"}},{"html_id":"destroy_change_group(group_id:String,**options)-instance-method","name":"destroy_change_group","doc":"Removes the change group","summary":"

Removes the change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L165"},"def":{"name":"destroy_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Destroy\", {:Id => group_id}, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(fader_ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",use_value:Bool=false,**options)-instance-method","name":"fader","doc":"value can either be a number to set actual numeric values like decibels\nor Bool to deal with mute state","summary":"

value can either be a number to set actual numeric values like decibels or Bool to deal with mute state

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"args_string":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", use_value : Bool = false, **options)","args_html":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", use_value : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L264"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"faders = ensure_array(fader_ids)\nif component && (val = value.as?(Num))\n val = val.to_f.clamp(0.0, 100.0)\n if @db_based_faders || use_value\n percentage = val / 100.0\n level_actual = percentage * (DB_RANGE.size - 1).to_f\n level_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\n fads = faders.map do |fad|\n {Name: fad, Value: level_actual}\n end\n else\n fads = faders.map do |fad|\n {Name: fad, Position: val}\n end\n end\n (component_set(component, fads, name: \"level_#{faders[0]}\")).get\n component_get(component, faders)\nelse\n reqs = faders.map do |fad|\n control_set(fad, value)\n end\n reqs.last.get\n control_get(faders)\nend\n"}},{"html_id":"faders(ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L290"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(ids, value, component, type, **options)"}},{"html_id":"get_components(**options)-instance-method","name":"get_components","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L131"},"def":{"name":"get_components","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.GetComponents\", **options)"}},{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L72"},"def":{"name":"get_status","visibility":"Public","body":"do_send(next_id, cmd: :StatusGet, params: 0, priority: 0)"}},{"html_id":"logon-instance-method","name":"logon","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L76"},"def":{"name":"logon","visibility":"Public","body":"do_send(cmd: :Logon, params: {:User => @username, :Password => @password}, priority: 99)"}},{"html_id":"matrix_fader(name:String,level:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_fader","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, level : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, level : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L213"},"def":{"name":"matrix_fader","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Faders[type]\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nlevel_actual = percentage * (DB_RANGE.size - 1).to_f\nlevel_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\nif sec = info[:sec]?\n params = {:Name => name, info[:pri] => index[0], sec => index[1], :Value => level_actual}\nelse\n params = {:Name => name, info[:pri] => index, :Value => level_actual}\nend\ndo_send(next_id, info[:type], params, **options)\n"}},{"html_id":"matrix_mute(name:String,value:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_mute","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, value : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, value : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L252"},"def":{"name":"matrix_mute","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Mutes[type]\ndo_send(next_id, info[:type], {:Name => name, info[:pri] => index, :Value => value}, **options)\n"}},{"html_id":"mixer(name:String,inouts:Hash(Int32,Int32|Array(Int32)),mute:Bool=false,**options)-instance-method","name":"mixer","doc":"Example usage:\nmixer 'Parade', {1 => [2,3,4], 3 => 6}, true","summary":"

Example usage: mixer 'Parade', {1 => [2,3,4], 3 => 6}, true

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","args_html":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L184"},"def":{"name":"mixer","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, outputs|\n outputs = ensure_array(outputs)\n do_send(next_id, \"Mixer.SetCrossPointMute\", {:Name => name, :Inputs => input.to_s, :Outputs => outputs.join(' '), :Value => mute}, **options)\nend"}},{"html_id":"mute(fader_id:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L294"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(fader_id, state, component, type, state, **options)"}},{"html_id":"mutes(ids:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L298"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(ids, state, component, type, **options)"}},{"html_id":"next_id-instance-method","name":"next_id","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L398"},"def":{"name":"next_id","visibility":"Public","body":"@id = @id + 1\n@id\n"}},{"html_id":"no_op-instance-method","name":"no_op","doc":"This command does nothing but is useful for making sure the socket is left open","summary":"

This command does nothing but is useful for making sure the socket is left open

","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L68"},"def":{"name":"no_op","visibility":"Public","body":"do_send(cmd: :NoOp, priority: 0, wait: false)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Delimiter)\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@db_based_faders = setting?(Bool, :db_based_faders)\n@username = setting?(String, :username)\n@password = setting?(String, :password)\nif @username && @password\n logon\nend\n"}},{"html_id":"poll_change_group(group_id:String,**options)-instance-method","name":"poll_change_group","doc":"Returns values for all the controls","summary":"

Returns values for all the controls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L160"},"def":{"name":"poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Poll\", {:Id => group_id}, **options)"}},{"html_id":"query_fader(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L306"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"faders = ensure_array(fader_id)\ncomponent ? component_get(component, faders) : control_get(faders)\n"}},{"html_id":"query_faders(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L311"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"query_mute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L315"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(fader_id, component, type)"}},{"html_id":"query_mutes(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L319"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L323"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nresponse = JSON.parse(data)\nlogger.debug do\n \"QSys sent:\"\nend\nlogger.debug do\n response\nend\nif err = response[\"error\"]?\n code = err[\"code\"]\n logger.warn do\n \"Error code #{code} - #{Errors[code]}\"\n end\n if code == 10\n if @username && @password\n logon.get\n return task.try(&.retry(\"Logged on and retrying command\"))\n else\n return task.try(&.abort(\"Login required but no username and/or password in settings\"))\n end\n end\n return task.try(&.abort(err[\"message\"]))\nend\nif result = response[\"result\"]?\nelse\n return task.try(&.success(\"Unknown response\"))\nend\ncase result\nwhen .as_h?\n if result[\"Controls\"]?\n process(result[\"Controls\"].as_a, result[\"Name\"]?)\n else\n if result[\"Platform\"]?\n result.as_h.each do |k, v|\n self[k.underscore] = v\n end\n end\n end\nwhen .as_a?\n process(result.as_a)\nend\ntask.try(&.success)\n"}},{"html_id":"unmute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L302"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(fader_id, false, component, type, **options)"}}],"types":[{"html_id":"drivers/Qsc/QSysRemote/Ids","path":"Qsc/QSysRemote/Ids.html","kind":"alias","full_name":"Qsc::QSysRemote::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Num","path":"Qsc/QSysRemote/Num.html","kind":"alias","full_name":"Qsc::QSysRemote::Num","name":"Num","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/PosTup","path":"Qsc/QSysRemote/PosTup.html","kind":"alias","full_name":"Qsc::QSysRemote::PosTup","name":"PosTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Position: Float64 | Int32)","aliased_html":"{Name: String, Position: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/ValTup","path":"Qsc/QSysRemote/ValTup.html","kind":"alias","full_name":"Qsc::QSysRemote::ValTup","name":"ValTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Value: Float64 | Int32)","aliased_html":"{Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Values","path":"Qsc/QSysRemote/Values.html","kind":"alias","full_name":"Qsc::QSysRemote::Values","name":"Values","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/qsc/q_sys_remote.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(NamedTuple(Name: String, Position: Float64 | Int32)) | Array(NamedTuple(Name: String, Value: Float64 | Int32)) | NamedTuple(Name: String, Position: Float64 | Int32) | NamedTuple(Name: String, Value: Float64 | Int32))","aliased_html":"Array({Name: String, Position: Float64 | Int32}) | Array({Name: String, Value: Float64 | Int32}) | {Name: String, Position: Float64 | Int32} | {Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}}]}]},{"html_id":"drivers/RHBAccess","path":"RHBAccess.html","kind":"module","full_name":"RHBAccess","name":"RHBAccess","abstract":false,"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/RHBAccess/AxiomRoomLogic","path":"RHBAccess/AxiomRoomLogic.html","kind":"class","full_name":"RHBAccess::AxiomRoomLogic","name":"AxiomRoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock-instance-method","name":"lock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L25"},"def":{"name":"lock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.lock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while LOCKING #{@door_ids}\"\n end\nelse\n self[\"locked_by_placeos_at\"] = Time.local\n status?\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@door_ids = setting(Array(String), :axiom_door_ids)\n@cron_string = setting(String, :axiom_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n status?\nend\n"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L43"},"def":{"name":"status?","visibility":"Public","body":"begin\n result = @door_ids.map do |id|\n {id, (axiom.status?(id)).get}\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR requesting STATUS of #{@door_ids}\"\n end\nelse\n doors_locked = 0\n result.each do |id, status|\n self[id] = status[\"Status\"]\n if status[\"Status\"].to_s.starts_with?(\"Locked\")\n doors_locked = doors_locked + 1\n end\n end\n self[\"doors_locked\"] = doors_locked\nend"}},{"html_id":"unlock-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiom_room_logic.cr#L34"},"def":{"name":"unlock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.unlock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while UNLOCKING #{@door_ids}\"\n end\nelse\n self[\"unlocked_by_placeos_at\"] = Time.local\n status?\nend"}}]},{"html_id":"drivers/RHBAccess/Axiomxa","path":"RHBAccess/Axiomxa.html","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock(id:String,permanent:Bool=false)-instance-method","name":"lock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L23"},"def":{"name":"lock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg0|\n __arg0.access_points.lock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"locked\", \"permanent\" => permanent.to_s}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiomxa.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@client = Client.new(base_url: host_name.to_s, username: setting(String, :username), password: setting(String, :password))\n"}},{"html_id":"status?(id:String)-instance-method","name":"status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L33"},"def":{"name":"status?","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = @client.try() do |__arg2|\n __arg2.access_points.status(id: id)\nend\nself[\"access_point_#{id}_status\"] = JSON.parse(response.not_nil!.body)\n"}},{"html_id":"unlock(id:String,permanent:Bool=false)-instance-method","name":"unlock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L28"},"def":{"name":"unlock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg1|\n __arg1.access_points.unlock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"unlocked\", \"permanent\" => permanent.to_s}\n"}}],"types":[{"html_id":"drivers/RHBAccess/Axiomxa/Client","path":"RHBAccess/Axiomxa/Client.html","kind":"alias","full_name":"RHBAccess::Axiomxa::Client","name":"Client","abstract":false,"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhb_access/axiomxa.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Axio::Client","aliased_html":"Axio::Client","const":false,"namespace":{"html_id":"drivers/RHBAccess/Axiomxa","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa"}}]}]},{"html_id":"drivers/Rhombus","path":"Rhombus.html","kind":"module","full_name":"Rhombus","name":"Rhombus","abstract":false,"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Rhombus/SecurityInterop","path":"Rhombus/SecurityInterop.html","kind":"class","full_name":"Rhombus::SecurityInterop","name":"SecurityInterop","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"door_event(json:String)-instance-method","name":"door_event","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L76"},"def":{"name":"door_event","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"new door event detected: #{json}\"\nend\nwebhook = Webhook.new(Interface::DoorSecurity::DoorEvent.from_json(json))\n@event_count = @event_count + 1_u64\n@subscriptions.each do |sub|\n begin\n logger.debug do\n \"notifying webhook of new door event: #{sub.webhook}\"\n end\n webhook.sign(sub.secret)\n response = HTTP::Client.post(sub.webhook, HTTP::Headers {\"Content-Type\" => \"application/json\"}, webhook.to_json)\n if response.success?\n else\n logger.warn do\n \"request #{sub.webhook} failed with status: #{response.status_code}\\n#{response.body}\"\n end\n end\n rescue error\n logger.error(exception: error) do\n \"failed to notify subscription: #{sub.webhook}\"\n end\n end\nend\nself[:event_count] = @event_count\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_interop.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\norg_id = (setting?(String, :organization_id)) || \"event\"\nmonitor(\"security/#{org_id}/door\") do |_subscription, payload|\n door_event(payload)\nend\n@subscriptions = (setting?(Array(Subscription), :subscriptions)) || ([] of Subscription)\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n"}},{"html_id":"request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop.cr#L31"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\n end\n if @debug_webhook\n logger.debug do\n body\n end\n end\n case method.downcase\n when \"post\"\n @subscriptions << (Subscription.from_json(body))\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::CREATED.to_i, {} of String => String, \"\"}\n when \"delete\"\n sub_webhook = (Subscription.from_json(body)).webhook\n @subscriptions.reject! do |sub|\n sub.webhook == sub_webhook\n end\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::ACCEPTED.to_i, {} of String => String, \"\"}\n when \"get\"\n all_doors = [] of JSON::Any\n security.door_list.get.each do |doors|\n all_doors.concat(doors.as_a)\n end\n {HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, {doors: all_doors}.to_json}\n when \"put\"\n door = (Interface::DoorSecurity::Door.from_json(body)).door_id\n case (security.unlock(door)).get.first.as_bool?\n in true\n {HTTP::Status::OK.to_i, {} of String => String, \"\"}\n in false\n {HTTP::Status::FORBIDDEN.to_i, {} of String => String, \"\"}\n in nil\n {HTTP::Status::NOT_IMPLEMENTED.to_i, {} of String => String, \"\"}\n end\n else\n {HTTP::Status::BAD_REQUEST.to_i, {\"Content-Type\" => \"application/json\"}, {error: \"unexpected HTTP request method: #{method}\"}.to_json}\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, error.message.to_s}\nend"}}]},{"html_id":"drivers/Rhombus/SecurityMock","path":"Rhombus/SecurityMock.html","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"card_holders:Array(CardUser)-instance-method","name":"card_holders","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L23"},"def":{"name":"card_holders","return_type":"Array(CardUser)","visibility":"Public","body":"@card_holders"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L22"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"@door_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"door_list_size = (setting?(Int32, :door_list_size)) || 30\nFaker.seed(door_list_size)\ndoor_id = 1000\ndoors = Array(Door).new(door_list_size)\ndoor_list_size.times do\n doors << (Door.new(door_id.to_s, Faker::Commerce.department))\n door_id = door_id + 1\nend\n@door_list = doors\n@card_holders = (0..10).map do\n CardUser.new(Faker::Business.credit_card_number, Faker::Name.name, Faker::Internet.safe_email)\nend\nswipe_event_period = (setting?(Int32, :swipe_event_every)) || 30\nschedule.clear\nschedule.every(swipe_event_period.seconds) do\n door = doors.sample\n action = Action::Granted\n case rand(6)\n when 0, 1, 2\n user = card_holders.sample\n when 3\n action = Action::Denied\n user = card_holders.sample\n when 4\n action = Action::Tamper\n when 5\n action = Action::RequestToExit\n end\n publish(\"security/event/door\", DoorEvent.new(module_id: module_id, security_system: \"mock\", door_id: door.door_id, action: action, card_id: user.try(&.card_id), user_name: user.try(&.user_name), user_email: user.try(&.user_email)).to_json)\nend\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/rhombus/security_mock.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L81"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"self[:last_unlocked] = door_id\ntrue\n"}}],"types":[{"html_id":"drivers/Rhombus/SecurityMock/CardUser","path":"Rhombus/SecurityMock/CardUser.html","kind":"struct","full_name":"Rhombus::SecurityMock::CardUser","name":"CardUser","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus/SecurityMock","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock"},"constructors":[{"html_id":"new(card_id:String,user_name:String,user_email:String)-class-method","name":"new","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(card_id : String, user_name : String, user_email : String)","args_html":"(card_id : String, user_name : String, user_email : String)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"new","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(card_id, user_name, user_email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_mock.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card_id:String-instance-method","name":"card_id","abstract":false,"def":{"name":"card_id","return_type":"String","visibility":"Public","body":"@card_id"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@card_id.clone, @user_name.clone, @user_email.clone)"}},{"html_id":"copy_with(card_id_card_id=@card_id,user_name_user_name=@user_name,user_email_user_email=@user_email)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"args_string":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","args_html":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_mock.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"visibility":"Public","body":"self.class.new(_card_id, _user_name, _user_email)"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Rhombus/Subscription","path":"Rhombus/Subscription.html","kind":"class","full_name":"Rhombus::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(webhook:String,secret:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"args_string":"(webhook : String, secret : Nil | String = nil)","args_html":"(webhook : String, secret : Nil | String = nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L12"},"def":{"name":"new","args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(webhook, secret)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"secret:String|Nil-instance-method","name":"secret","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L10"},"def":{"name":"secret","return_type":"String | ::Nil","visibility":"Public","body":"@secret"}},{"html_id":"webhook:String-instance-method","name":"webhook","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L9"},"def":{"name":"webhook","return_type":"String","visibility":"Public","body":"@webhook"}}]},{"html_id":"drivers/Rhombus/Webhook","path":"Rhombus/Webhook.html","kind":"class","full_name":"Rhombus::Webhook","name":"Webhook","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(event:PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)-class-method","name":"new","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"args_string":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","args_html":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L27"},"def":{"name":"new","args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"visibility":"Public","body":"_ = allocate\n_.initialize(event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"action:PlaceOS::Driver::Interface::DoorSecurity::Action-instance-method","name":"action","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L22"},"def":{"name":"action","return_type":"PlaceOS::Driver::Interface::DoorSecurity::Action","visibility":"Public","body":"@action"}},{"html_id":"card_id:String|Nil-instance-method","name":"card_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L23"},"def":{"name":"card_id","return_type":"String | ::Nil","visibility":"Public","body":"@card_id"}},{"html_id":"door_id:String-instance-method","name":"door_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L19"},"def":{"name":"door_id","return_type":"String","visibility":"Public","body":"@door_id"}},{"html_id":"sign(secret:String|Nil)-instance-method","name":"sign","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"args_string":"(secret : String | Nil)","args_html":"(secret : String | Nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L37"},"def":{"name":"sign","args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"visibility":"Public","body":"if key = secret.presence\n @signature = OpenSSL::HMAC.hexdigest(:sha256, key, timestamp.to_rfc3339)\nelse\n @signature = nil\nend\nself\n"}},{"html_id":"signature:String|Nil-instance-method","name":"signature","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L21"},"def":{"name":"signature","return_type":"String | ::Nil","visibility":"Public","body":"@signature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L20"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"user_email:String|Nil-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L25"},"def":{"name":"user_email","return_type":"String | ::Nil","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String|Nil-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/rhombus/security_interop_models.cr#L24"},"def":{"name":"user_name","return_type":"String | ::Nil","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Samsung","path":"Samsung.html","kind":"module","full_name":"Samsung","name":"Samsung","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Samsung/Displays","path":"Samsung/Displays.html","kind":"module","full_name":"Samsung::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Samsung","kind":"module","full_name":"Samsung","name":"Samsung"},"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol","path":"Samsung/Displays/MDCProtocol.html","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEVICE_SETTINGS","name":"DEVICE_SETTINGS","value":"{network_standby: Bool, auto_off_timer: Bool, auto_power: Bool, volume: Num, contrast: Num, brightness: Num, sharpness: Num, colour: Num, tint: Num, red_gain: Num, green_gain: Num, blue_gain: Num}"},{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_off_timer(value:Bool,**options)-instance-method","name":"auto_off_timer","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_off_timer","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_off_timer\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_off_timer\"), data, **options)\n"}},{"html_id":"auto_power(value:Bool,**options)-instance-method","name":"auto_power","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_power","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_power\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_power\"), data, **options)\n"}},{"html_id":"blue_gain(value:Num,**options)-instance-method","name":"blue_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"blue_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"blue_gain\"), data, **options)\n"}},{"html_id":"brightness(value:Num,**options)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"brightness\"), data, **options)\n"}},{"html_id":"colour(value:Num,**options)-instance-method","name":"colour","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"colour","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"colour\"), data, **options)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L88"},"def":{"name":"connected","visibility":"Public","body":"if self[:hard_off]?.try(&.as_bool)\nelse\n do_device_config\nend\nschedule.every(30.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Num,**options)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"contrast\"), data, **options)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L96"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L215"},"def":{"name":"do_device_config","visibility":"Public","body":"{% for name, kind in DEVICE_SETTINGS %}\n %value = setting?({{ kind }}, {{ name.id.stringify }})\n {{ name.id }}(%value) if %value\n {% end %}"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L181"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::Status, Bytes.empty, priority: 0)\nif self[:hard_off]?.try(&.as_bool)\nelse\n power?\nend\n"}},{"html_id":"green_gain(value:Num,**options)-instance-method","name":"green_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"green_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"green_gain\"), data, **options)\n"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L119"},"def":{"name":"hard_off","visibility":"Public","body":"if self[:power]?.try(&.as_bool)\n do_send(Command::PanelMute, 0)\nend\ndo_send(Command::HardOff, 0)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L130"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L146"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","doc":"Adds video mute state compatible with projectors","summary":"

Adds video mute state compatible with projectors

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L140"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1 : 0\ndo_send(Command::PanelMute, state)\n"}},{"html_id":"network_standby(value:Bool,**options)-instance-method","name":"network_standby","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"network_standby","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"network_standby\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"network_standby\"), data, **options)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L62"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L82"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\n@blank = (setting?(String, :blanking_input)).try(&->Input.parse(String))\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L102"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n do_send(Command::HardOff, 1)\n do_send(Command::PanelMute, 0)\nelse\n if (blanking_input = @blank) && self[:power]?\n switch_to(blanking_input)\n end\n do_send(Command::PanelMute, 1)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L124"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::PanelMute, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L237"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .status?\n self[:hard_off] = hard_off = values[0] == 0\n if hard_off\n self[:power] = false\n end\n self[:volume] = values[1]\n self[:audio_mute] = values[2] == 1\n self[:input] = Input.from_value(values[3])\n check_power_state\n when .panel_mute?\n self[:power] = value == 0\n check_power_state\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .brightness?\n self[:brightness] = value\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n if self[:screen_split]?.try(&.as_bool)\n else\n if current_input == @input_target\n @input_target = nil\n else\n if input_target = @input_target\n switch_to(input_target)\n end\n end\n end\n when .speaker?\n self[:speaker] = SpeakerMode.from_value(value)\n when .hard_off?\n if self[:hard_off]?.try(&.as_bool)\n else\n self[:hard_off] = hard_off = value == 0\n if hard_off\n self[:power] = false\n end\n end\n when .screen_split?\n self[:screen_split] = value >= 0\n when .software_version?\n self[:software_version] = values.join\n when .serial_number?\n self[:serial_number] = values.join\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"red_gain(value:Num,**options)-instance-method","name":"red_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"red_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"red_gain\"), data, **options)\n"}},{"html_id":"serial_number-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L163"},"def":{"name":"serial_number","visibility":"Public","body":"do_send(Command::SerialNumber)"}},{"html_id":"sharpness(value:Num,**options)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"sharpness\"), data, **options)\n"}},{"html_id":"software_version-instance-method","name":"software_version","doc":"check software version","summary":"

check software version

","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L159"},"def":{"name":"software_version","visibility":"Public","body":"do_send(Command::SoftwareVersion)"}},{"html_id":"speaker_select(mode:SpeakerMode,**options)-instance-method","name":"speaker_select","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"args_string":"(mode : SpeakerMode, **options)","args_html":"(mode : SpeakerMode, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L177"},"def":{"name":"speaker_select","args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Speaker, mode.value, **options)"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L167"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"tint(value:Num,**options)-instance-method","name":"tint","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"tint","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"tint\"), data, **options)\n"}},{"html_id":"volume(value:Num,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"volume\"), data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L227"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L222"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol/Command","path":"Samsung/Displays/MDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L332"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L339"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L340"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L327"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L321"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L347"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L323"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L320"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L326"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L317"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L328"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":329,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L329"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L338"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L318"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L331"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L325"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L334"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L341"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L343"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L322"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L330"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L342"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L337"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L316"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L344"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L345"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L324"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L319"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":333,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L333"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L335"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L336"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Input","path":"Samsung/Displays/MDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Num","path":"Samsung/Displays/MDCProtocol/Num.html","kind":"alias","full_name":"Samsung::Displays::MDCProtocol::Num","name":"Num","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"}},{"html_id":"drivers/Samsung/Displays/MDCProtocol/ResponseStatus","path":"Samsung/Displays/MDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L232"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L233"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L234"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/SpeakerMode","path":"Samsung/Displays/MDCProtocol/SpeakerMode.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::SpeakerMode","name":"SpeakerMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L172"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Internal","name":"Internal","value":"0"},{"id":"External","name":"External","value":"1"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"external?-instance-method","name":"external?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L174"},"def":{"name":"external?","visibility":"Public","body":"self == External"}},{"html_id":"internal?-instance-method","name":"internal?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/mdc_protocol.cr#L173"},"def":{"name":"internal?","visibility":"Public","body":"self == Internal"}}]}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","path":"Samsung/Displays/ReducedMDCProtocol.html","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_whiteboard-instance-method","name":"clear_whiteboard","doc":"if the user has been using the display as a whiteboard\nthen the display needs to switch input","summary":"

if the user has been using the display as a whiteboard then the display needs to switch input

","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L148"},"def":{"name":"clear_whiteboard","visibility":"Public","body":"target_input = @input_target\nclear_input = @whiteboard_clear_input\nif target_input && clear_input\n (switch_to(clear_input)).get\n switch_to(target_input)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L93"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L99"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L165"},"def":{"name":"do_device_config","visibility":"Public","body":"value = setting?(Int32 | Float64, :volume)\nif value\n volume(value)\nend\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n do_send(Command::Volume, Bytes.empty, priority: 0)\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L110"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::HardOff, 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L120"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.audio? || layer.audio_video?\n mute_audio(state)\nend"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L129"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L83"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\nif clear_input = setting?(String, :whiteboard_clear_input)\n @whiteboard_clear_input = Input.parse(clear_input)\nelse\n @whiteboard_clear_input = nil\nend\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L105"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\ndo_send(Command::HardOff, state ? 1 : 0)\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L114"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::HardOff, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L190"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n when .hard_off?\n self[:power] = value != 0\n check_power_state\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L141"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"volume(value:Int32|Float64,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64, **options)","args_html":"(value : Int32 | Float64, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L170"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L180"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L175"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Command","path":"Samsung/Displays/ReducedMDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L240"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L257"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L264"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L265"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L252"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L246"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L272"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L248"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L245"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L251"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L242"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L253"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L254"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L263"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L243"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L256"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L250"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L259"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L266"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L268"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L247"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L255"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L267"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L262"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L241"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L269"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L270"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L249"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L244"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L258"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L260"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L261"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Input","path":"Samsung/Displays/ReducedMDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/ResponseStatus","path":"Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L186"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/samsung/displays/reduced_mdc_protocol.cr#L187"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Screen","path":"Screen.html","kind":"class","full_name":"Screen","name":"Screen","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/global_cache/projector_screen_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}}]},{"html_id":"drivers/ScreenTechnics","path":"ScreenTechnics.html","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics","abstract":false,"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/ScreenTechnics/Connect","path":"ScreenTechnics/Connect.html","kind":"class","full_name":"ScreenTechnics::Connect","name":"Connect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_LOOKUP","name":"CMD_LOOKUP","value":"{30 => :up, 33 => :down, 1 => :status, 36 => :stop}"},{"id":"COMMANDS","name":"COMMANDS","value":"{up: 30, down: 33, status: 1, stop: 36}"},{"id":"STATUS","name":"STATUS","value":"{0 => :moving_top, 1 => :moving_bottom, 2 => :moving_preset_1, 3 => :moving_preset_2, 4 => :moving_top, 5 => :moving_bottom, 6 => :at_top, 7 => :at_bottom, 8 => :at_preset_1, 9 => :at_preset_2, 10 => :stopped, 11 => :error, 13 => :error_timeout, 14 => :error_current, 15 => :error_rattle, 16 => :at_bottom}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/ScreenTechnics","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L44"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds, immediate: true) do\n (0...@count).each do |index|\n query_state(index)\n end\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"queue.clear\nschedule.clear\n"}},{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L68"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if down?(index)\n return\nend\nstop(index)\ndo_send(:down, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"down?(index:Int32=0)-instance-method","name":"down?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L75"},"def":{"name":"down?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_bottom\", \"at_bottom\"}.includes?(self[\"screen#{index}\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L55"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i\ncase position\nwhen MoveablePosition::Up\n up(index)\nwhen MoveablePosition::Down\n down(index)\nelse\n raise(\"invalid position requested\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 500.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@count = (setting?(Int32, :screen_count)) || 1"}},{"html_id":"query_state(index:Int32=0)-instance-method","name":"query_state","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L101"},"def":{"name":"query_state","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(:status, index, 32)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/screen_technics/connect.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L125"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Screen sent #{data}\"\nend\nparts = (data.split(/,/)).map do |__arg0|\n __arg0.strip.to_i\nend\ncmd = CMD_LOOKUP[parts[0] - 100]?\nif cmd\n index = parts[2] - 17\n case cmd\n when :up\n logger.debug do\n \"Screen#{index} moving up\"\n end\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = true\n when :down\n logger.debug do\n \"Screen#{index} moving down\"\n end\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = true\n when :stop\n logger.debug do\n \"Screen#{index} stopped\"\n end\n self[\"moving#{index}\"] = false\n screen = \"screen#{index}\"\n if {\"at_top\", \"at_bottom\"}.includes?(self[screen]?)\n else\n self[screen] = :stopped\n end\n when :status\n self[\"screen#{index}\"] = status = STATUS[parts[-1]]\n case status\n when :moving_top, :at_top\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = status == (:moving_top)\n when :moving_bottom, :at_bottom\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = status == (:moving_bottom)\n when :stopped\n self[\"moving#{index}\"] = false\n when :error, :error_timeout, :error_current, :error_rattle\n self[\"moving#{index}\"] = false\n end\n end\n task.try(&.success)\nelse\n error = \"Unknown command #{parts[0]}\"\n logger.debug do\n error\n end\n task.try(&.abort(error))\nend\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/screen_technics/connect.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L90"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i\ndo_send(:stop, index, name: \"stop#{index}\", clear_queue: emergency, priority: emergency ? (queue.priority + 50) : queue.priority)\n"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L79"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if up?(index)\n return\nend\nstop(index)\ndo_send(:up, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"up?(index:Int32=0)-instance-method","name":"up?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/screen_technics/connect.cr#L86"},"def":{"name":"up?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_top\", \"at_top\"}.includes?(self[\"screen#{index}\"]?)"}}]}]},{"html_id":"drivers/SecureOS","path":"SecureOS.html","kind":"module","full_name":"SecureOS","name":"SecureOS","abstract":false,"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/SecureOS/AuthResponse","path":"SecureOS/AuthResponse.html","kind":"struct","full_name":"SecureOS::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:AuthToken-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L93"},"def":{"name":"data","return_type":"AuthToken","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L94"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/AuthToken","path":"SecureOS/AuthToken.html","kind":"struct","full_name":"SecureOS::AuthToken","name":"AuthToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L100"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/SecureOS/Camera","path":"SecureOS/Camera.html","kind":"struct","full_name":"SecureOS::Camera","name":"Camera","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L110"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L111"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L113"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L114"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"settings:JSON::Any-instance-method","name":"settings","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L115"},"def":{"name":"settings","return_type":"JSON::Any","visibility":"Public","body":"@settings"}},{"html_id":"status:JSON::Any-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L116"},"def":{"name":"status","return_type":"JSON::Any","visibility":"Public","body":"@status"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L117"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/CameraResponse","path":"SecureOS/CameraResponse.html","kind":"struct","full_name":"SecureOS::CameraResponse","name":"CameraResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Camera)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L106"},"def":{"name":"data","return_type":"Array(Camera)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L107"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/Error","path":"SecureOS/Error.html","kind":"struct","full_name":"SecureOS::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error:String-instance-method","name":"error","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L87"},"def":{"name":"error","return_type":"String","visibility":"Public","body":"@error"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L86"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"request_id:String|Int64|Nil-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L85"},"def":{"name":"request_id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@request_id"}}]},{"html_id":"drivers/SecureOS/ErrorWrapper","path":"SecureOS/ErrorWrapper.html","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Error-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L52"},"def":{"name":"data","return_type":"Error","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L51"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Event","path":"SecureOS/Event.html","kind":"struct","full_name":"SecureOS::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L73"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L72"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"parameters:JSON::Any|Nil-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L79"},"def":{"name":"parameters","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@parameters"}},{"html_id":"ticks:Int64|Nil-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L74"},"def":{"name":"ticks","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L77"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L71"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/EventWrapper","path":"SecureOS/EventWrapper.html","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Event-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L47"},"def":{"name":"data","return_type":"Event","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L46"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Response","path":"SecureOS/Response.html","kind":"class","full_name":"SecureOS::Response","name":"Response","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/SecureOS/ErrorWrapper","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper"},{"html_id":"drivers/SecureOS/EventWrapper","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper"},{"html_id":"drivers/SecureOS/StateWrapper","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"state\"\n StateWrapper.from_json(json)\nwhen \"event\"\n EventWrapper.from_json(json)\nwhen \"error\"\n ErrorWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/SecureOS/State","path":"SecureOS/State.html","kind":"struct","full_name":"SecureOS::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L59"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"states:Hash(String,Bool)-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L65"},"def":{"name":"states","return_type":"Hash(String, Bool)","visibility":"Public","body":"@states"}},{"html_id":"ticks:Int64-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L60"},"def":{"name":"ticks","return_type":"Int64","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L63"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L58"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/StateType","path":"SecureOS/StateType.html","kind":"enum","full_name":"SecureOS::StateType","name":"StateType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attached","name":"Attached","value":"0"},{"id":"Armed","name":"Armed","value":"1"},{"id":"Alarmed","name":"Alarmed","value":"2"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"instance_methods":[{"html_id":"alarmed?-instance-method","name":"alarmed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L7"},"def":{"name":"alarmed?","visibility":"Public","body":"self == Alarmed"}},{"html_id":"armed?-instance-method","name":"armed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L6"},"def":{"name":"armed?","visibility":"Public","body":"self == Armed"}},{"html_id":"attached?-instance-method","name":"attached?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L5"},"def":{"name":"attached?","visibility":"Public","body":"self == Attached"}}]},{"html_id":"drivers/SecureOS/StateWrapper","path":"SecureOS/StateWrapper.html","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:State-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L42"},"def":{"name":"data","return_type":"State","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L41"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/SubscribeRule","path":"SecureOS/SubscribeRule.html","kind":"struct","full_name":"SecureOS::SubscribeRule","name":"SubscribeRule","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(type:String,id:String,action:Symbol,states:Array(StateType)|Nil=nil,events:Array(String)|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"args_string":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","args_html":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, action, states, events)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Symbol-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L17"},"def":{"name":"action","return_type":"Symbol","visibility":"Public","body":"@action"}},{"html_id":"events:Array(String)|Nil-instance-method","name":"events","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L16"},"def":{"name":"events","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@events"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L14"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"states:Array(StateType)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L15"},"def":{"name":"states","return_type":"Array(StateType) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L13"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Watchlist","path":"SecureOS/Watchlist.html","kind":"struct","full_name":"SecureOS::Watchlist","name":"Watchlist","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L127"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L128"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L130"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L131"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/SecureOS/WatchlistResponse","path":"SecureOS/WatchlistResponse.html","kind":"struct","full_name":"SecureOS::WatchlistResponse","name":"WatchlistResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L121"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Watchlist)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L123"},"def":{"name":"data","return_type":"Array(Watchlist)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api_models.cr#L124"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/WsApi","path":"SecureOS/WsApi.html","kind":"class","full_name":"SecureOS::WsApi","name":"WsApi","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"basic_auth:NamedTuple(username:String,password:String)-instance-method","name":"basic_auth","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth","return_type":"NamedTuple(username: String, password: String)","visibility":"Public","body":"if (__temp_1 = @basic_auth).nil?\n ::raise(::NilAssertionError.new(\"SecureOS::WsApi#basic_auth cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"basic_auth?:NamedTuple(username:String,password:String)|Nil-instance-method","name":"basic_auth?","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth?","return_type":"NamedTuple(username: String, password: String) | ::Nil","visibility":"Public","body":"@basic_auth"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"begin\n response = http_client.get(\"#{@rest_api_host}/api/v1/ws_auth\")\n if response.success?\n auth = AuthResponse.from_json(response.body)\n send({type: :auth, token: auth.data.token}.to_json, wait: false)\n else\n raise(\"Authentication failed\")\n end\n schedule.every(30.seconds) do\n send({type: :get_server_time}.to_json, name: :server_time)\n end\n schedule.every(5.minutes, immediate: true) do\n camera_list\n subscribe_all\n watchlist_list\n end\nrescue error\n logger.warn(exception: error) do\n \"Authentication failed\"\n end\n disconnect\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@rest_api_host = setting(String, :rest_api_host)\n@basic_auth = setting(NamedTuple(username: String, password: String), :basic_auth)\n@camera_types = setting(Array(String), :camera_types)\n@camera_states = setting(Array(StateType), :camera_states)\n@camera_events = setting(Array(String), :camera_events)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/secure_os/ws_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"SecureOS sent: #{raw_json}\"\nend\ntype_check = (JSON.parse(raw_json))[\"type\"]?\nif type_check\n response = Response.from_json(raw_json)\n case response\n in StateWrapper\n self[\"camera_#{response.data.id}_states\"] = response.data\n in EventWrapper\n self[\"camera_#{response.data.id}\"] = response.data\n in ErrorWrapper\n logger.warn do\n \"SecureOS error: #{response.data}\"\n end\n if response.data.error.in?({\"INVALID_AUTH_TOKEN\", \"UNAUTHORIZED\"})\n disconnect\n else\n self[\"last_error\"] = response.data\n end\n in Response\n end\nend\ntask.try(&.success)\n"}},{"html_id":"watchlist_add_lp(watchlist:String,license_plate:String,comment:String=\"\")-instance-method","name":"watchlist_add_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String, comment : String = \"\")","args_html":"(watchlist : String, license_plate : String, comment : String = "")","location":{"filename":"src/secure_os/ws_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L116"},"def":{"name":"watchlist_add_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/set\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate, comment: comment}.to_json)\n if response\n else\n logger.warn do\n \"Failed to add license plate to watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to add license plate to watchlist\"\n end\nend"}},{"html_id":"watchlist_remove_lp(watchlist:String,license_plate:String)-instance-method","name":"watchlist_remove_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String)","args_html":"(watchlist : String, license_plate : String)","location":{"filename":"src/secure_os/ws_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/secure_os/ws_api.cr#L136"},"def":{"name":"watchlist_remove_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/delete\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate}.to_json)\n if response\n else\n logger.warn do\n \"Failed to remove license plate from watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to remove license plate from watchlist\"\n end\nend"}}]}]},{"html_id":"drivers/Settings","path":"Settings.html","kind":"alias","full_name":"Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Core::Settings","aliased_html":"Place::Router::Core::Settings","const":false},{"html_id":"drivers/Sharp","path":"Sharp.html","kind":"module","full_name":"Sharp","name":"Sharp","abstract":false,"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sharp/PnSeries","path":"Sharp/PnSeries.html","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AUDIO","name":"AUDIO","value":"{audio1: \"ASDP 2\", audio2: \"ASDP 3\", dvi: \"ASDP 1\", dvi_alt: \"ASDA 1\", hdmi: \"ASHP 0\", hdmi_3mm: \"ASHP 1\", hdmi_rca: \"ASHP 2\", vga: \"ASAP 1\", component: \"ASCA 1\"}"},{"id":"AUDIO_RESPONSE","name":"AUDIO_RESPONSE","value":"AUDIO.to_h.invert"},{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"OPERATION_CODE","name":"OPERATION_CODE","value":"{video_input: \"INPS\", volume_status: \"VOLM\", mute_status: \"MUTE\", power_on_delay: \"PWOD\", contrast_status: \"CONT\", brightness_status: \"VLMP\", model_number: \"INF1\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sharp","kind":"module","full_name":"Sharp","name":"Sharp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L127"},"def":{"name":"auto_adjust","visibility":"Public","body":"do_send(\"AGIN 1\", timeout: 20.seconds)"}},{"html_id":"brightness(val:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L131"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nbrightness = (percentage * @brightness_max.to_f).round_away.to_i\ndo_send(\"VLMP#{brightness.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"brightness_status(priority:Int32=0,**options)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VLMP\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"send_credentials\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Display\"\n end\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L139"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\ncontrast = (percentage * @contrast_max.to_f).round_away.to_i\nmultiplier = (self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1\ncontrast = contrast * multiplier\ndo_send(\"CONT#{contrast.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"contrast_status(priority:Int32=0,**options)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"CONT\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L61"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L207"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n if self[:model_number]?\n else\n model_number\n end\n power_on_delay\n mute_status\nend"}},{"html_id":"model_number(priority:Int32=0,**options)-instance-method","name":"model_number","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"model_number","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INF1\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sharp/pn_series.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L175"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"Sharp LCD requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"Sharp LCD, requested to mute #{state}\"\n end\n do_send(\"MUTE #{state ? '1' : '0'}\")\n mute_status(50)\nend"}},{"html_id":"mute_status(priority:Int32=0,**options)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"MUTE\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sharp/pn_series.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L65"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"delay = self[:power_on_delay]?.try(&.as_i) || 5\nif state != !!self[:power]?.try(&.as_bool)\n if state\n logger.debug do\n \"-- Sharp LCD, requested to power on\"\n end\n do_send(\"POWR 1\", name: :POWR, timeout: delay.seconds + 15.seconds)\n self[:warming] = true\n self[:power] = true\n do_send(\"POWR????\", name: :POWR, timeout: 10.seconds)\n else\n logger.debug do\n \"-- Sharp LCD, requested to power off\"\n end\n do_send(\"POWR 0\", name: :POWR, timeout: 15.seconds)\n self[:power] = false\n end\nend\npower?\nmute_status(0)\nvolume_status(0)\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L88"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(\"POWR????\", **options, name: :POWR, timeout: 10.seconds)).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0,**options)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"PWOD\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sharp/pn_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L229"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-3])\nlogger.debug do\n \"-- Sharp LCD, received: #{data}\"\nend\nif data == \"Password:OK\"\n return task.try(&.success(\"Login successful\"))\nelse\n if data == \"Password:Login incorrect\"\n schedule.in(5.seconds) do\n send_credentials\n end\n return task.try(&.success(\"Sharp LCD, bad login or logged off. Attempting login..\"))\n else\n if data == \"OK\"\n return task.try(&.success)\n else\n if data == \"WAIT\"\n logger.debug do\n \"-- Sharp LCD, wait\"\n end\n return\n else\n if data == \"ERR\"\n return task.try(&.abort(\"-- Sharp LCD, error\"))\n else\n if data.size < 8\n return task.try(&.abort(\"Sharp sent out of order response: #{data}\"))\n end\n end\n end\n end\n end\nend\ncommand, value = data.split\ncase command\nwhen \"POWR\"\n self[:warming] = false\n self[:power] = value.to_i > 0\nwhen \"INPS\"\n input = Input.from_value?(value.to_i)\n self[:input] = input || \"unknown\"\n logger.debug do\n \"-- Sharp LCD, input #{self[:input]} == #{value}\"\n end\nwhen \"VOLM\"\n vol_percent = (value.to_i.to_f / @volume_max.to_f) * 100.0\n if self[:audio_mute]?.try(&.as_bool)\n else\n self[:volume] = vol_percent.round(2)\n end\nwhen \"MUTE\"\n self[:audio_mute] = (mute = value.to_i == 1)\n if mute\n self[:volume] = 0\n else\n volume_status(90)\n end\nwhen \"CONT\"\n val = value.to_i / ((self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1)\n contrast = (val.to_f / @contrast_max.to_f) * 100.0\n self[:contrast] = contrast.round(2)\nwhen \"VLMP\"\n brightness = (value.to_i.to_f / @brightness_max.to_f) * 100.0\n self[:brightness] = brightness.round(2)\nwhen \"PWOD\"\n self[:power_on_delay] = value.to_i\nwhen \"INF1\"\n self[:model_number] = value\n logger.debug do\n \"-- Sharp LCD, model number #{self[:model_number]}\"\n end\n determine_contrast_mode\nwhen \"ASDP\", \"ASDA\", \"ASHP\", \"ASAP\", \"ASCA\"\n self[:audio_input] = AUDIO_RESPONSE[data] || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"reset-instance-method","name":"reset","doc":"Resets the brightness and contrast settings","summary":"

Resets the brightness and contrast settings

","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L94"},"def":{"name":"reset","visibility":"Public","body":"do_send(\"ARST 2\")"}},{"html_id":"switch_audio(input:String)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/sharp/pn_series.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L119"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch audio to: #{input}\"\nend\ndo_send(AUDIO[input], name: \"audio\")\nmute_status(40)\nvolume_status(40)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sharp/pn_series.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L98"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch to: #{input}\"\nend\n(do_send(input.data, name: :input, delay: 2.seconds, timeout: 20.seconds)).get\nvideo_input(40)\nbrightness_status(40)\ncontrast_status(40)\n"}},{"html_id":"video_input(priority:Int32=0,**options)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INPS\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L150"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"@vol_status.try(&.cancel)\n@vol_status = schedule.in(2.seconds) do\n @vol_status = nil\n volume_status\nend\nval = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ndo_send(\"VOLM#{vol_actual.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L169"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0,**options)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L198"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VOLM\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L164"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sharp/PnSeries/Input","path":"Sharp/PnSeries/Input.html","kind":"enum","full_name":"Sharp::PnSeries::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Sharp/PnSeries","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L21"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"data-instance-method","name":"data","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L23"},"def":{"name":"data","visibility":"Public","body":"\"INPS\" + (self.value.to_s.rjust(4, '0'))"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L18"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L16"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L17"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L15"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L20"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sharp/pn_series.cr#L19"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Shure","path":"Shure.html","kind":"module","full_name":"Shure","name":"Shure","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Shure/Microphone","path":"Shure/Microphone.html","kind":"module","full_name":"Shure::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Shure","kind":"module","full_name":"Shure","name":"Shure"},"types":[{"html_id":"drivers/Shure/Microphone/MXA","path":"Shure/Microphone/MXA.html","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"}],"namespace":{"html_id":"drivers/Shure/Microphone","kind":"module","full_name":"Shure::Microphone","name":"Microphone"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L17"},"def":{"name":"connected","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\" >\")\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Mics\"\n end\n do_poll\nend\nquery_all\nif (setting?(Bool, :send_meter_levels)) != true\n set_meter_rate(0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L192"},"def":{"name":"do_poll","visibility":"Public","body":"query_device_id"}},{"html_id":"flash-instance-method","name":"flash","doc":"flash the LED for 30 seconds","summary":"

flash the LED for 30 seconds

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L81"},"def":{"name":"flash","visibility":"Public","body":"do_send(\"SET FLASH ON\")"}},{"html_id":"led(on:Bool=true)-instance-method","name":"led","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L101"},"def":{"name":"led","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"led_state_muted(on)\nled_state_unmuted(on)\n"}},{"html_id":"led_colour_muted(colour:Colour)-instance-method","name":"led_colour_muted","doc":"Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE","summary":"

Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE

","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L111"},"def":{"name":"led_colour_muted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_MUTED\", colour.to_s.upcase, name: :muted_color)"}},{"html_id":"led_colour_unmuted(colour:Colour)-instance-method","name":"led_colour_unmuted","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L119"},"def":{"name":"led_colour_unmuted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_UNMUTED\", colour.to_s.upcase, name: :unmuted_color)"}},{"html_id":"led_state_muted(on:Bool=true)-instance-method","name":"led_state_muted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L136"},"def":{"name":"led_state_muted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_MUTED\", state)\n"}},{"html_id":"led_state_unmuted(on:Bool=true)-instance-method","name":"led_state_unmuted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L127"},"def":{"name":"led_state_unmuted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_UNMUTED\", state)\n"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L56"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? \"ON\" : \"OFF\"\ndo_send(\"SET DEVICE_AUDIO_MUTE\", val, name: :mute)\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","doc":"part of the mutable interface","summary":"

part of the mutable interface

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L66"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L75"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"if number.in?(1..10)\nelse\n raise(\"must be a number between 1-10, was #{number}\")\nend\ndo_send(\"SET PRESET\", number.to_s, name: :preset)\n"}},{"html_id":"query_all-instance-method","name":"query_all","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L33"},"def":{"name":"query_all","visibility":"Public","body":"do_send(\"GET 0 ALL\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L37"},"def":{"name":"query_device_id","visibility":"Public","body":"do_send(\"GET DEVICE_ID\", name: :device_id)"}},{"html_id":"query_firmware-instance-method","name":"query_firmware","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L41"},"def":{"name":"query_firmware","visibility":"Public","body":"do_send(\"GET FW_VER\", name: :firmware)"}},{"html_id":"query_led_colour_muted-instance-method","name":"query_led_colour_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L106"},"def":{"name":"query_led_colour_muted","visibility":"Public","body":"do_send(\"GET LED_COLOR_MUTED\")"}},{"html_id":"query_led_colour_unmuted-instance-method","name":"query_led_colour_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L115"},"def":{"name":"query_led_colour_unmuted","visibility":"Public","body":"do_send(\"GET LED_COLOR_UNMUTED\")"}},{"html_id":"query_led_state-instance-method","name":"query_led_state","doc":"LED Setup","summary":"

LED Setup

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L97"},"def":{"name":"query_led_state","visibility":"Public","body":"do_send(\"GET DEV_LED_IN_STATE\")"}},{"html_id":"query_led_state_muted-instance-method","name":"query_led_state_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L132"},"def":{"name":"query_led_state_muted","visibility":"Public","body":"do_send(\"GET LED_STATE_MUTED\")"}},{"html_id":"query_led_state_unmuted-instance-method","name":"query_led_state_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L123"},"def":{"name":"query_led_state_unmuted","visibility":"Public","body":"do_send(\"GET LED_STATE_UNMUTED\")"}},{"html_id":"query_mute-instance-method","name":"query_mute","doc":"Mute commands","summary":"

Mute commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L52"},"def":{"name":"query_mute","visibility":"Public","body":"do_send(\"GET DEVICE_AUDIO_MUTE\")"}},{"html_id":"query_preset-instance-method","name":"query_preset","doc":"Preset commands","summary":"

Preset commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L71"},"def":{"name":"query_preset","visibility":"Public","body":"do_send(\"GET PRESET\")"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L141"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(bytes)\nlogger.debug do\n \"-- received: #{data}\"\nend\ndata = ((data.split(\"< \", 2))[1].gsub(/[\\{\\}]/, '\"')).rchop(\" >\")\nresp = (shellsplit(data)).map(&.strip)\nif resp[0] == \"SAMPLE\"\n resp[1..-1].each_with_index do |level, index|\n self[\"output#{index + 1}\"] = level.to_i\n end\n return\nend\nif resp[1] == \"ERR\"\n return task.try(&.abort)\nend\nif resp[1] =~ (/^[0-9]+$/)\n chann = resp[1]\n param = resp[2].try(&.downcase)\n value = resp[3].try(&.downcase)\n self[\"#{param}_#{chann}\"] = value\n return task.try(&.success)\nend\nparam = resp[1].downcase\nvalue = resp[2]\ncase param\nwhen \"device_audio_mute\"\n self[:muted] = value == \"ON\"\nwhen \"dev_led_state_muted\"\n self[:led_muted] = value == \"ON\"\nwhen \"dev_led_state_unmuted\"\n self[:led_unmuted] = value == \"ON\"\nelse\n self[param] = case value\n when \"ON\"\n true\n when \"OFF\"\n false\n when .to_i?\n value.to_i\n else\n value\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_meter_rate(rate:Int32)-instance-method","name":"set_meter_rate","doc":"rate in milliseconds","summary":"

rate in milliseconds

","abstract":false,"args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"args_string":"(rate : Int32)","args_html":"(rate : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L46"},"def":{"name":"set_meter_rate","args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"visibility":"Public","body":"if (rate == 0) || rate >= 100\nelse\n raise(\"rate must be a number greater than 100, was #{rate}\")\nend\ndo_send(\"SET METER_RATE\", rate.to_s, name: :meter_rate)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L61"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}}],"types":[{"html_id":"drivers/Shure/Microphone/MXA/Colour","path":"Shure/Microphone/MXA/Colour.html","kind":"enum","full_name":"Shure::Microphone::MXA::Colour","name":"Colour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"RED","name":"RED","value":"0"},{"id":"GREEN","name":"GREEN","value":"1"},{"id":"BLUE","name":"BLUE","value":"2"},{"id":"PINK","name":"PINK","value":"3"},{"id":"PURPLE","name":"PURPLE","value":"4"},{"id":"YELLOW","name":"YELLOW","value":"5"},{"id":"ORANGE","name":"ORANGE","value":"6"},{"id":"WHITE","name":"WHITE","value":"7"}],"namespace":{"html_id":"drivers/Shure/Microphone/MXA","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L88"},"def":{"name":"blue?","visibility":"Public","body":"self == BLUE"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L87"},"def":{"name":"green?","visibility":"Public","body":"self == GREEN"}},{"html_id":"orange?-instance-method","name":"orange?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L92"},"def":{"name":"orange?","visibility":"Public","body":"self == ORANGE"}},{"html_id":"pink?-instance-method","name":"pink?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L89"},"def":{"name":"pink?","visibility":"Public","body":"self == PINK"}},{"html_id":"purple?-instance-method","name":"purple?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L90"},"def":{"name":"purple?","visibility":"Public","body":"self == PURPLE"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L86"},"def":{"name":"red?","visibility":"Public","body":"self == RED"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L93"},"def":{"name":"white?","visibility":"Public","body":"self == WHITE"}},{"html_id":"yellow?-instance-method","name":"yellow?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/shure/microphone/mxa.cr#L91"},"def":{"name":"yellow?","visibility":"Public","body":"self == YELLOW"}}]}]}]}]},{"html_id":"drivers/Siemens","path":"Siemens.html","kind":"module","full_name":"Siemens","name":"Siemens","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Siemens/Desigo","path":"Siemens/Desigo.html","kind":"class","full_name":"Siemens::Desigo","name":"Desigo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens","kind":"module","full_name":"Siemens","name":"Siemens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"commands(id:String)-instance-method","name":"commands","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L43"},"def":{"name":"commands","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"commands = @client.try() do |__arg3|\n __arg3.commands.get(id: id)\nend\nself[\"commands#{id}\"] = commands\n"}},{"html_id":"execute(id:String,property_name:String,command_id:String,command_inputs_for_execution:String)-instance-method","name":"execute","doc":"Because of the introspect failing on generics,\nwe can pass in the `command_inputs_for_execution` as a JSON string\n\"[{\\\"Name\\\": \\\"Value\\\", \\\"DataType\\\": \\\"ExtendedEnum\\\", \\\"Value\\\": \\\"1\\\"}]\"","summary":"

Because of the introspect failing on generics, we can pass in the command_inputs_for_execution as a JSON string "[{"Name": "Value", "DataType": "ExtendedEnum", "Value": "1"}]"

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"args_string":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","args_html":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","location":{"filename":"src/siemens/desigo.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L51"},"def":{"name":"execute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"visibility":"Public","body":"return_value = @client.try() do |__arg4|\n __arg4.commands.execute(id: id, property_name: property_name, command_id: command_id, command_inputs_for_execution: JSON.parse(command_inputs_for_execution))\nend\nself[\"execute#{id}_property#{property_name}_command#{command_id}\"] = return_value\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"base_url = config.uri.not_nil!.to_s\nusername = setting(String, :username)\npassword = setting(String, :password)\n@client = Client.new(base_url: base_url, username: username, password: password)\nspawn do\n loop do\n @client.try() do |__arg0|\n __arg0.heartbeat.signal\n end\n sleep(60)\n end\nend\n"}},{"html_id":"property_values(id:String)-instance-method","name":"property_values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L33"},"def":{"name":"property_values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"property_values = @client.try() do |__arg1|\n __arg1.property_values.get(id: id)\nend\nself[\"property_values#{id}\"] = property_values\n"}},{"html_id":"values(id:String)-instance-method","name":"values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L38"},"def":{"name":"values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"values = @client.try() do |__arg2|\n __arg2.values.get(id: id)\nend\nself[\"values#{id}\"] = values\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/Client","path":"Siemens/Desigo/Client.html","kind":"alias","full_name":"Siemens::Desigo::Client","name":"Client","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Desigo::Client","aliased_html":"Desigo::Client","const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"}},{"html_id":"drivers/Siemens/Desigo/RoomLogic","path":"Siemens/Desigo/RoomLogic.html","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_queries-instance-method","name":"do_queries","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L25"},"def":{"name":"do_queries","visibility":"Public","body":"responses = @queries.map do |q|\n {q.name, (desigo.values(q.param)).get}\nend\nresponses.each do |name, value|\n self[name] = value.as_a.first.as_h[\"Value\"][\"Value\"]\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@queries = setting(Array(Query), :desigo_queries)\n@cron_string = setting(String, :desigo_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n do_queries\nend\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/RoomLogic/Query","path":"Siemens/Desigo/RoomLogic/Query.html","kind":"struct","full_name":"Siemens::Desigo::RoomLogic::Query","name":"Query","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Siemens/Desigo/RoomLogic","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command:String-instance-method","name":"command","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command","return_type":"String","visibility":"Public","body":"@command"}},{"html_id":"command=(command:String)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@command = command"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L32"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"param:String-instance-method","name":"param","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param","return_type":"String","visibility":"Public","body":"@param"}},{"html_id":"param=(param:String)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"String"}],"args_string":"(param : String)","args_html":"(param : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"String"}],"visibility":"Public","body":"@param = param"}}]}]}]}]},{"html_id":"drivers/SigGraph","path":"SigGraph.html","kind":"alias","full_name":"SigGraph","name":"SigGraph","abstract":false,"locations":[{"filename":"src/place/router/signal_graph_spec.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/signal_graph_spec.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/SignalGraph","path":"SignalGraph.html","kind":"alias","full_name":"SignalGraph","name":"SignalGraph","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/Sony","path":"Sony.html","kind":"module","full_name":"Sony","name":"Sony","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sony/Camera","path":"Sony/Camera.html","kind":"module","full_name":"Sony::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Camera/CGI","path":"Sony/Camera/CGI.html","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L302"},"def":{"name":"home","visibility":"Public","body":"action(\"/command/presetposition.cgi?HomePos=ptz-recall\", name: \"position\") do\n query_status\nend"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L156"},"def":{"name":"info?","visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=system\", priority: 0) do |response|\n response.each do |key, value|\n if {\"ModelName\", \"Serial\", \"SoftVersion\", \"ModelForm\", \"CGIVersion\"}.includes?(key)\n self[key.underscore] = value\n end\n end\n response\nend"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Implement Camera interface","summary":"

Implement Camera interface

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L252"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\npan_speed = pan_speed.to_i\ntilt_speed = tilt_speed.to_i\nrange = -100..100\nin_range(range, pan_speed)\nin_range(range, tilt_speed)\nif @invert_controls && (tilt_speed != 0)\n tilt_speed = -tilt_speed\nend\naction(\"/command/ptzf.cgi?ContinuousPanTiltZoom=#{pan_speed.to_s(16)},#{tilt_speed.to_s(16)},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = ((pan_speed != 0) || (tilt_speed != 0))\n if !@moving\n query_status\n end\n @moving\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"Implement Moveable interface","summary":"

Implement Moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L194"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\ncase position\nwhen MoveablePosition::Up, MoveablePosition::Down, MoveablePosition::Left, MoveablePosition::Right\n if @invert_controls && (position.up? || position.down?)\n position = position.up? ? MoveablePosition::Down : MoveablePosition::Up\n end\n action(\"/command/ptzf.cgi?Move=#{position.to_s.downcase},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = true\n end\nwhen MoveablePosition::In\n zoom(ZoomDirection::In)\nwhen MoveablePosition::Out\n zoom(ZoomDirection::Out)\nelse\n raise(\"unsupported direction: #{position}\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"@pantilt_speed = -100..100\nself[:pan_speed] = self[:tilt_speed] = {min: -100, max: 100, stop: 0}\nself[:has_discrete_zoom] = true\nschedule.every(60.seconds) do\n query_status\nend\nschedule.in(5.seconds) do\n query_status\n info?\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"self[:invert_controls] = @invert_controls = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Int32)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Int32))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32,zoom:Int32|Nil=nil):Nil-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"args_string":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","args_html":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L227"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"in_range(@pan_range, pan)\nin_range(@tilt_range, tilt)\nif zoom\n in_range(@zoom_range, zoom)\n action(\"/command/ptzf.cgi?AbsolutePTZF=#{pan.to_s(16)},#{tilt.to_s(16)},#{zoom.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n self[:zoom] = @zoom_raw = zoom.not_nil!\n end\nelse\n action(\"/command/ptzf.cgi?AbsolutePanTilt=#{pan.to_s(16)},#{tilt.to_s(16)},#{@max_speed.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n end\nend\n"}},{"html_id":"query_status(priority:Int32=0)-instance-method","name":"query_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L93"},"def":{"name":"query_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=ptzf\", priority: priority) do |response|\n response.each do |key, value|\n case key\n when \"AbsolutePTZF\"\n parts = value.split(\",\")\n self[:pan] = @pan = twos_complement(parts[0].to_i(16))\n self[:tilt] = @tilt = twos_complement(parts[1].to_i(16))\n @zoom_raw = parts[2].to_i(16)\n when \"PanMovementRange\"\n parts = value.split(\",\")\n pan_min = twos_complement(parts[0].to_i(16))\n pan_max = twos_complement(parts[1].to_i(16))\n @pan_range = pan_min..pan_max\n self[:pan_range] = {min: pan_min, max: pan_max}\n when \"TiltMovementRange\"\n parts = value.split(\",\")\n tilt_min = twos_complement(parts[0].to_i(16))\n tilt_max = twos_complement(parts[1].to_i(16))\n @tilt_range = tilt_min..tilt_max\n self[:tilt_range] = {min: tilt_min, max: tilt_max}\n when \"ZoomMovementRange\"\n parts = value.split(\",\")\n zoom_min = parts[0].to_i(16)\n zoom_max = parts[1].to_i(16)\n @zoom_range = zoom_min..zoom_max\n self[:zoom_range] = {min: zoom_min, max: zoom_max}\n when \"PtzfStatus\"\n parts = (value.split(\",\")).map do |state|\n Movement.parse(state)\n end[0..2]\n self[:moving] = @moving = parts.includes?(Movement::Moving)\n when \"PanTiltMaxVelocity\"\n @max_speed = value.to_i(16)\n end\n end\n self[:zoom] = @zoom_raw.not_nil!.to_f * (100.0 / @zoom_range.end.to_f)\n response\nend"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L308"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(**preset)\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L325"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L317"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {pan: @pan, tilt: @tilt, zoom: @zoom_raw}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"Implement Stoppable interface","summary":"

Implement Stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L178"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i + 1\naction(\"/command/ptzf.cgi?Move=stop,motor,image#{index}\", priority: 999, name: \"moving\", clear_queue: emergency) do\n if @zooming\n zoom(ZoomDirection::Stop)\n end\n self[:moving] = @moving = false\n query_status\nend\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L287"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nif direction.stop?\n action(\"/command/ptzf.cgi?Move=stop,zoom,image#{index}\", priority: 999, name: \"zooming\") do\n self[:zooming] = @zooming = false\n end\nelse\n action(\"/command/ptzf.cgi?Move=#{direction.out? ? \"wide\" : \"near\"},0,image#{index}\", name: \"zooming\") do\n self[:zooming] = @zooming = true\n end\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L272"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nposition = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_range.end.to_f).to_i\naction(\"/command/ptzf.cgi?AbsoluteZoom=#{zoom_value.to_s(16)}\", name: \"zooming\") do\n @zoom_raw = zoom_value\n self[:zoom] = @zoom = position\nend\n"}}],"macros":[{"html_id":"in_range(range,value)-macro","name":"in_range","abstract":false,"args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(range, value)","args_html":"(range, value)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L218"},"def":{"name":"in_range","args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":" \n{{ value }}\n = if \n{{ range }}\n.includes? \n{{ value }}\n\n \n{{ value }}\n\n \nelse\n \n{{ value }}\n < \n{{ range }}\n.begin ? \n{{ range }}\n.begin : \n{{ range }}\n.end\n \nend\n \n{{ value }}\n = twos_complement(\n{{ value }}\n)\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/CGI/Movement","path":"Sony/Camera/CGI/Movement.html","kind":"enum","full_name":"Sony::Camera::CGI::Movement","name":"Movement","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L25"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Idle","name":"Idle","value":"0"},{"id":"Moving","name":"Moving","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Sony/Camera/CGI","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI"},"instance_methods":[{"html_id":"idle?-instance-method","name":"idle?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L26"},"def":{"name":"idle?","visibility":"Public","body":"self == Idle"}},{"html_id":"moving?-instance-method","name":"moving?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L27"},"def":{"name":"moving?","visibility":"Public","body":"self == Moving"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/cgi_protocol.cr#L28"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA","path":"Sony/Camera/VISCA.html","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","doc":"clear the interface","summary":"

clear the interface

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L67"},"def":{"name":"connected","visibility":"Public","body":"reset_sequence_number\nsend_cmd(Bytes[0, 1], name: :if_clear, priority: 98)\n"}},{"html_id":"encode_position(value:UInt16):String-instance-method","name":"encode_position","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"args_string":"(value : UInt16) : String","args_html":"(value : UInt16) : String","location":{"filename":"src/sony/camera/visca.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L124"},"def":{"name":"encode_position","args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"return_type":"String","visibility":"Public","body":"io = IO::Memory.new\nio.write_bytes(value, IO::ByteFormat::BigEndian)\nbytes = io.to_slice.hexstring.rjust(4, '0')\n\"0#{bytes[0]}0#{bytes[1]}0#{bytes[2]}0#{bytes[3]}\"\n"}},{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L85"},"def":{"name":"home","visibility":"Public","body":"send_cmd(Bytes[6, 4], name: :pantilt)"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L89"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan_neg, pan_value, pan_zero = joyspeed(pan_speed, @max_pan_tilt_speed)\ntilt_neg, tilt_value, tilt_zero = joyspeed(tilt_speed, @max_pan_tilt_speed)\npan_direction = pan_zero ? \"03\" : (pan_neg ? \"01\" : \"02\")\ntilt_direction = tilt_zero ? \"03\" : (tilt_neg ? \"02\" : \"01\")\nbytes = \"0601#{pan_value}#{tilt_value}#{pan_direction}#{tilt_direction}\"\nresp = send_cmd(bytes.hexbytes, name: :joystick)\nif pan_zero && tilt_zero\n spawn do\n resp.get\n schedule.in(1.seconds) do\n pantilt?\n end\n end\nend\nresp\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L172"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","doc":"we want to tokenize the stream, ensure we only process a single packet at a time\nand that we have the complete message","summary":"

we want to tokenize the stream, ensure we only process a single packet at a time and that we have the complete message

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n if bytes.size < 4\n next 0\n end\n ((IO::Memory.new(bytes[2..3])).read_bytes(UInt16, IO::ByteFormat::BigEndian)).to_i + 8\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@presets = (setting?(Presets, :camera_presets)) || @presets\n@max_pan_tilt_speed = (setting?(UInt8, :max_pan_tilt_speed)) || 15_u8\n@zoom_speed = (setting?(UInt8, :zoom_speed)) || 3_u8\n@zoom_max = (setting?(UInt16, :zoom_max)) || 16384_u16\n@camera_address = 128_u8 | ((setting?(UInt8, :camera_no)) || 1_u8)\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan_pos:UInt16-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L39"},"def":{"name":"pan_pos","return_type":"UInt16","visibility":"Public","body":"@pan_pos"}},{"html_id":"pantilt(pan:UInt16,tilt:UInt16,speed:UInt8)-instance-method","name":"pantilt","doc":"moves to an absolute position","summary":"

moves to an absolute position

","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"args_string":"(pan : UInt16, tilt : UInt16, speed : UInt8)","args_html":"(pan : UInt16, tilt : UInt16, speed : UInt8)","location":{"filename":"src/sony/camera/visca.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L138"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"visibility":"Public","body":"speed = speed.clamp(0_u8, @max_pan_tilt_speed)\nbytes = \"0602#{Bytes[speed].hexstring.rjust(2, '0')}00#{encode_position(pan)}#{encode_position(tilt)}\"\nsend_cmd(bytes.hexbytes, name: :pantilt)\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L221"},"def":{"name":"pantilt?","visibility":"Public","body":"send_inq(Bytes[6, 18], name: :pantilt_query, priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/camera/visca.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L74"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"payload = state ? Bytes[4, 0, 2] : Bytes[4, 0, 3]\nsend_cmd(payload, name: :power)\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L79"},"def":{"name":"power?","visibility":"Public","body":"send_inq(Bytes[4, 0], name: :power_query)"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L144"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n pantilt(pan_pos, tilt_pos, @max_pan_tilt_speed)\n zoom_to(zoom_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task,sequence:UInt32|Nil=nil):Nil-instance-method","name":"received","doc":"process incoming data, tokenised so we know each data packet is exactly one message","summary":"

process incoming data, tokenised so we know each data packet is exactly one message

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"args_string":"(data, task, sequence : UInt32 | Nil = nil) : Nil","args_html":"(data, task, sequence : UInt32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/visca.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L336"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"Camera sent: 0x#{data.hexstring}\"\nend\nif sequence.nil?\n logger.info do\n \"unexpected packet received, ignoring as no sequence pending\"\n end\n return\nend\nio = IO::Memory.new(data)\npacket = io.read_bytes(Packet)\npayload = packet.payload\ncase packet.type\nwhen .device_control?\n case payload[-1]\n when 1_u8\n reset_sequence_number(directly: true)\n logger.info do\n \"sequence number error, resetting sequence\"\n end\n when 2_u8\n task.try(&.abort(\"bad request\"))\n end\n return\nwhen .device_reply?\n if task && (task.name == \"reset_sequence_number\")\n task.success\n else\n task.try(&.retry(\"sequence number reset, retrying task\"))\n end\n return\nwhen .reply?\n if sequence != packet.sequence\n logger.info do\n \"unexpected sequence number, ignoring\"\n end\n return\n end\nelse\n logger.info do\n \"unexpected packet type #{packet.type}, ignoring\"\n end\n return\nend\ncheck_command = payload[1] & 240_u8\ncase check_command\nwhen 64_u8\n logger.debug do\n \"ignoring command accepted message\"\n end\n return\nwhen 80_u8\n logger.debug do\n \"command complete message\"\n end\nwhen 96_u8\n case payload[2]\n when 2_u8\n task.try(&.abort(\"syntax error in request\"))\n when 3_u8\n schedule.in(50.milliseconds) do\n task.try(&.retry(\"camera busy\"))\n end\n when 4_u8\n task.try(&.abort(\"request was cancelled by the user\"))\n when 5_u8\n task.try(&.success)\n when 65_u8\n task.try(&.abort(\"request could not be performed\"))\n end\n return\nend\ncase task.try(&.name)\nwhen \"zoom_query\"\n @zoom_raw = zoom_value = decode_position(payload[2..5])\n self[:zoom] = @zoom_pos = zoom_value.to_f * (100.0 / @zoom_max.to_f)\nwhen \"pantilt_query\"\n @pan_pos = decode_position(payload[2..5])\n @tilt_pos = decode_position(payload[6..9])\nwhen \"zoom_to\"\n zoom?\nwhen \"pantilt\"\n pantilt?\nwhen \"power_query\"\n self[:power] = payload[-2] == 2_u8\nend\ntask.try(&.success)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L159"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"reset_sequence_number(directly:Bool=false)-instance-method","name":"reset_sequence_number","abstract":false,"args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"args_string":"(directly : Bool = false)","args_html":"(directly : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L320"},"def":{"name":"reset_sequence_number","args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"visibility":"Public","body":"packet = Packet.new\npacket.type = :device_control\npacket.sequence = @sequence = 1_u32\npacket.payload = Bytes[1_u8]\nif directly\n return transport.send(packet)\nend\nqueue(name: :reset_sequence_number, priority: 99) do |task|\n transport.send(packet, task) do |data|\n received(data, task, @sequence)\n end\nend\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L154"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"send_cmd(bytes:String)-instance-method","name":"send_cmd","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L259"},"def":{"name":"send_cmd","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_cmd(bytes.hexbytes)"}},{"html_id":"send_inq(bytes:String)-instance-method","name":"send_inq","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L287"},"def":{"name":"send_inq","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_inq(bytes.hexbytes)"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L227"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"zoom(:stop)"}},{"html_id":"tilt_pos:UInt16-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L38"},"def":{"name":"tilt_pos","return_type":"UInt16","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L203"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"speed_byte = case direction\nin .stop?\n schedule.in(500.milliseconds) do\n zoom?\n end\n 0_u8\nin .out?\n 32_u8 | @zoom_speed\nin .in?\n 48_u8 | @zoom_speed\nend\nsend_cmd(Bytes[4, 7, speed_byte], name: :zoom)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L217"},"def":{"name":"zoom?","visibility":"Public","body":"send_inq(Bytes[4, 71], name: :zoom_query, priority: 0)"}},{"html_id":"zoom_raw:UInt16-instance-method","name":"zoom_raw","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L36"},"def":{"name":"zoom_raw","return_type":"UInt16","visibility":"Public","body":"@zoom_raw"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L194"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_max.to_f).to_u16\nbytes = \"0447#{encode_position(zoom_value)}\"\nsend_cmd(bytes.hexbytes, name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet","path":"Sony/Camera/VISCA/Packet.html","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Sony::Camera::VISCA::Packet]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: Type}, {type: \"basic\", name: size, cls: UInt16, onlyif: nil, verify: nil, value: -> do\n payload.size.to_u16\nend}, {type: \"basic\", name: sequence, cls: UInt32, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: payload, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"},"doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L235"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"payload:Bytes-instance-method","name":"payload","abstract":false,"def":{"name":"payload","return_type":"Bytes","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:Bytes)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"args_string":"(payload : Bytes)","args_html":"(payload : Bytes)","def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"visibility":"Public","body":"@payload = payload"}},{"html_id":"sequence:UInt32-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt32","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt32)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"args_string":"(sequence : UInt32)","args_html":"(sequence : UInt32)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt16-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt16","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt16)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"args_string":"(size : UInt16)","args_html":"(size : UInt16)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Type)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"}],"args_string":"(type : Type)","args_html":"(type : Type)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Type"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L234"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet/Type","path":"Sony/Camera/VISCA/Packet/Type.html","kind":"enum","full_name":"Sony::Camera::VISCA::Packet::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L237"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"256_u16"},{"id":"Inquiry","name":"Inquiry","value":"272_u16"},{"id":"Reply","name":"Reply","value":"273_u16"},{"id":"DeviceSetting","name":"DeviceSetting","value":"288_u16","doc":"VISCA device setting","summary":"

VISCA device setting

"},{"id":"DeviceControl","name":"DeviceControl","value":"512_u16","doc":"reset: 0x01\nerror: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)","summary":"

reset: 0x01 error: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)

"},{"id":"DeviceReply","name":"DeviceReply","value":"513_u16","doc":"Acknowledge for reset","summary":"

Acknowledge for reset

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA/Packet","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L238"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"device_control?-instance-method","name":"device_control?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L246"},"def":{"name":"device_control?","visibility":"Public","body":"self == DeviceControl"}},{"html_id":"device_reply?-instance-method","name":"device_reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L249"},"def":{"name":"device_reply?","visibility":"Public","body":"self == DeviceReply"}},{"html_id":"device_setting?-instance-method","name":"device_setting?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L242"},"def":{"name":"device_setting?","visibility":"Public","body":"self == DeviceSetting"}},{"html_id":"inquiry?-instance-method","name":"inquiry?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L239"},"def":{"name":"inquiry?","visibility":"Public","body":"self == Inquiry"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L240"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA/Presets","path":"Sony/Camera/VISCA/Presets.html","kind":"alias","full_name":"Sony::Camera::VISCA::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/sony/camera/visca.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/camera/visca.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(UInt16, UInt16, Float64))","aliased_html":"Hash(String, {UInt16, UInt16, Float64})","const":false,"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"}}]}]},{"html_id":"drivers/Sony/Displays","path":"Sony/Displays.html","kind":"module","full_name":"Sony::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Displays/Bravia","path":"Sony/Displays/Bravia.html","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{ir_code: \"IRCC\", power: \"POWR\", volume: \"VOLU\", audio_mute: \"AMUT\", mute: \"PMUT\", channel: \"CHNN\", tv_input: \"ISRC\", input: \"INPT\", toggle_mute: \"TPMU\", pip: \"PIPI\", toggle_pip: \"TPIP\", position_pip: \"TPPP\", broadcast_address: \"BADR\", mac_address: \"MADR\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Displays","kind":"module","full_name":"Sony::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L102"},"def":{"name":"audio_mute?","visibility":"Public","body":"query(Command::AudioMute, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L57"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L126"},"def":{"name":"do_poll","visibility":"Public","body":"if self[:power]?\n input?\n mute?\n audio_mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L48"},"def":{"name":"input?","visibility":"Public","body":"query(Command::Input, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/displays/bravia.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L76"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"request(Command::Mute, state)\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L89"},"def":{"name":"mute?","visibility":"Public","body":"query(Command::Mute, priority: 0)"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/sony/displays/bravia.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L93"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::AudioMute, state)\naudio_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"self[:volume_min] = 0\nself[:volume_max] = 100\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/displays/bravia.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L67"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::Power, state)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L72"},"def":{"name":"power?","visibility":"Public","body":"query(Command::Power)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/displays/bravia.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L147"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"parsed_data = convert_binary(data[3..6])\ncmd = Command.from_response?(parsed_data)\nif cmd.nil?\n return task.try(&.abort(\"unrecognised command: #{parsed_data}\"))\nend\nparam = data[7..-1]\nif param.first? == MessageType::Error.value\n return task.try(&.abort(\"error\"))\nend\ncase MessageType.from_value?(data[2])\nwhen MessageType::Answer\n update_status(cmd, param)\n task.try(&.success)\nwhen MessageType::Notify\n update_status(cmd, param)\nelse\n logger.debug do\n \"Unhandled device response: #{begin\n data[2].chr\n rescue\n data[2]\n end}\"\n end\n task.try(&.abort(\"Unhandled device response\"))\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/displays/bravia.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching input to #{input}\"\nend\nrequest(Command::Input, input.to_param)\nself[:input] = input.to_s\ninput?\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L85"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L98"},"def":{"name":"unmute_audio","visibility":"Public","body":"mute_audio(false)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/sony/displays/bravia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L106"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"level = (level.to_f.clamp(0.0, 100.0)).round_away.to_i\nrequest(Command::Volume, level)\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L112"},"def":{"name":"volume?","visibility":"Public","body":"query(Command::Volume, priority: 0)"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L121"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L116"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sony/Displays/Bravia/Command","path":"Sony/Displays/Bravia/Command.html","kind":"enum","full_name":"Sony::Displays::Bravia::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IrCode","name":"IrCode","value":"0"},{"id":"Power","name":"Power","value":"1"},{"id":"Volume","name":"Volume","value":"2"},{"id":"AudioMute","name":"AudioMute","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Channel","name":"Channel","value":"5"},{"id":"TvInput","name":"TvInput","value":"6"},{"id":"Input","name":"Input","value":"7"},{"id":"ToggleMute","name":"ToggleMute","value":"8"},{"id":"Pip","name":"Pip","value":"9"},{"id":"TogglePip","name":"TogglePip","value":"10"},{"id":"PositionPip","name":"PositionPip","value":"11"},{"id":"BroadcastAddress","name":"BroadcastAddress","value":"12"},{"id":"MacAddress","name":"MacAddress","value":"13"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"class_methods":[{"html_id":"from_response?(message)-class-method","name":"from_response?","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"from_response?","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"case message\nwhen \"IRCC\"\n IrCode\nwhen \"POWR\"\n Power\nwhen \"VOLU\"\n Volume\nwhen \"AMUT\"\n AudioMute\nwhen \"PMUT\"\n Mute\nwhen \"CHNN\"\n Channel\nwhen \"ISRC\"\n TvInput\nwhen \"INPT\"\n Input\nwhen \"TPMU\"\n ToggleMute\nwhen \"PIPI\"\n Pip\nwhen \"TPIP\"\n TogglePip\nwhen \"TPPP\"\n PositionPip\nwhen \"BADR\"\n BroadcastAddress\nwhen \"MADR\"\n MacAddress\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"broadcast_address?-instance-method","name":"broadcast_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"broadcast_address?","visibility":"Public","body":"self == BroadcastAddress"}},{"html_id":"channel?-instance-method","name":"channel?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"channel?","visibility":"Public","body":"self == Channel"}},{"html_id":"function-instance-method","name":"function","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"function","visibility":"Public","body":"case self\nin IrCode\n \"IRCC\"\nin Power\n \"POWR\"\nin Volume\n \"VOLU\"\nin AudioMute\n \"AMUT\"\nin Mute\n \"PMUT\"\nin Channel\n \"CHNN\"\nin TvInput\n \"ISRC\"\nin Input\n \"INPT\"\nin ToggleMute\n \"TPMU\"\nin Pip\n \"PIPI\"\nin TogglePip\n \"TPIP\"\nin PositionPip\n \"TPPP\"\nin BroadcastAddress\n \"BADR\"\nin MacAddress\n \"MADR\"\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"ir_code?-instance-method","name":"ir_code?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"ir_code?","visibility":"Public","body":"self == IrCode"}},{"html_id":"mac_address?-instance-method","name":"mac_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"mac_address?","visibility":"Public","body":"self == MacAddress"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"position_pip?-instance-method","name":"position_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"position_pip?","visibility":"Public","body":"self == PositionPip"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"toggle_mute?-instance-method","name":"toggle_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_mute?","visibility":"Public","body":"self == ToggleMute"}},{"html_id":"toggle_pip?-instance-method","name":"toggle_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_pip?","visibility":"Public","body":"self == TogglePip"}},{"html_id":"tv_input?-instance-method","name":"tv_input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"tv_input?","visibility":"Public","body":"self == TvInput"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L182"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Sony/Displays/Bravia/Input","path":"Sony/Displays/Bravia/Input.html","kind":"enum","full_name":"Sony::Displays::Bravia::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L20"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Tv0","name":"Tv0","value":"0_u32"},{"id":"Hdmi0","name":"Hdmi0","value":"100000000_u32"},{"id":"Mirror0","name":"Mirror0","value":"500000000_u32"},{"id":"Vga0","name":"Vga0","value":"600000000_u32"},{"id":"Tv1","name":"Tv1","value":"1_u32"},{"id":"Hdmi1","name":"Hdmi1","value":"100000001_u32"},{"id":"Mirror1","name":"Mirror1","value":"500000001_u32"},{"id":"Vga1","name":"Vga1","value":"600000001_u32"},{"id":"Tv2","name":"Tv2","value":"2_u32"},{"id":"Hdmi2","name":"Hdmi2","value":"100000002_u32"},{"id":"Mirror2","name":"Mirror2","value":"500000002_u32"},{"id":"Vga2","name":"Vga2","value":"600000002_u32"},{"id":"Tv3","name":"Tv3","value":"3_u32"},{"id":"Hdmi3","name":"Hdmi3","value":"100000003_u32"},{"id":"Mirror3","name":"Mirror3","value":"500000003_u32"},{"id":"Vga3","name":"Vga3","value":"600000003_u32"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"constructors":[{"html_id":"from_param(value:String):self-class-method","name":"from_param","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String) : self","args_html":"(value : String) : self","location":{"filename":"src/sony/displays/bravia.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L28"},"def":{"name":"from_param","args":[{"name":"value","external_name":"value","restriction":"String"}],"return_type":"self","visibility":"Public","body":"begin\n from_value(UInt32.new(value))\nrescue\n raise(\"Unknown enum #{self} value: #{value}\")\nend"}}],"instance_methods":[{"html_id":"hdmi0?-instance-method","name":"hdmi0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi0?","visibility":"Public","body":"self == Hdmi0"}},{"html_id":"hdmi1?-instance-method","name":"hdmi1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi1?","visibility":"Public","body":"self == Hdmi1"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"mirror0?-instance-method","name":"mirror0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror0?","visibility":"Public","body":"self == Mirror0"}},{"html_id":"mirror1?-instance-method","name":"mirror1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror1?","visibility":"Public","body":"self == Mirror1"}},{"html_id":"mirror2?-instance-method","name":"mirror2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror2?","visibility":"Public","body":"self == Mirror2"}},{"html_id":"mirror3?-instance-method","name":"mirror3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror3?","visibility":"Public","body":"self == Mirror3"}},{"html_id":"to_param:String-instance-method","name":"to_param","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L34"},"def":{"name":"to_param","return_type":"String","visibility":"Public","body":"value.to_s.rjust(5, '0')"}},{"html_id":"tv0?-instance-method","name":"tv0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv0?","visibility":"Public","body":"self == Tv0"}},{"html_id":"tv1?-instance-method","name":"tv1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv1?","visibility":"Public","body":"self == Tv1"}},{"html_id":"tv2?-instance-method","name":"tv2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv2?","visibility":"Public","body":"self == Tv2"}},{"html_id":"tv3?-instance-method","name":"tv3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv3?","visibility":"Public","body":"self == Tv3"}},{"html_id":"vga0?-instance-method","name":"vga0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga0?","visibility":"Public","body":"self == Vga0"}},{"html_id":"vga1?-instance-method","name":"vga1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga1?","visibility":"Public","body":"self == Vga1"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga2?","visibility":"Public","body":"self == Vga2"}},{"html_id":"vga3?-instance-method","name":"vga3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga3?","visibility":"Public","body":"self == Vga3"}}]},{"html_id":"drivers/Sony/Displays/Bravia/MessageType","path":"Sony/Displays/Bravia/MessageType.html","kind":"enum","full_name":"Sony::Displays::Bravia::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Answer","name":"Answer","value":"65_u8"},{"id":"Control","name":"Control","value":"67_u8"},{"id":"Enquiry","name":"Enquiry","value":"69_u8"},{"id":"Notify","name":"Notify","value":"78_u8"},{"id":"Error","name":"Error","value":"70_u8"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L136"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"control?-instance-method","name":"control?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L137"},"def":{"name":"control?","visibility":"Public","body":"self == Control"}},{"html_id":"control_character-instance-method","name":"control_character","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L142"},"def":{"name":"control_character","visibility":"Public","body":"value.chr"}},{"html_id":"enquiry?-instance-method","name":"enquiry?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L138"},"def":{"name":"enquiry?","visibility":"Public","body":"self == Enquiry"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L140"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"notify?-instance-method","name":"notify?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/displays/bravia.cr#L139"},"def":{"name":"notify?","visibility":"Public","body":"self == Notify"}}]}]}]},{"html_id":"drivers/Sony/Projector","path":"Sony/Projector.html","kind":"module","full_name":"Sony::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Projector/Fh","path":"Sony/Projector/Fh.html","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INPUTS_LOOKUP","name":"INPUTS_LOOKUP","value":"{\"hdmi1\" => Inputs::HDMI, \"dvi1\" => Inputs::DVI, \"video1\" => Inputs::Video, \"svideo1\" => Inputs::SVideo, \"rgb1\" => Inputs::RGB, \"hdbaset1\" => Inputs::HDBaseT, \"input_a\" => Inputs::InputA, \"input_b\" => Inputs::InputB, \"input_c\" => Inputs::InputC, \"input_d\" => Inputs::InputD, \"input_e\" => Inputs::InputE}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"brightness\", val.clamp(0, 100))"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness?","visibility":"Public","body":"get(\"brightness\")"}},{"html_id":"color(val:Int32)-instance-method","name":"color","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"color","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"color\", val.clamp(0, 100))"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"color?","visibility":"Public","body":"get(\"color\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L48"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"contrast\", val.clamp(0, 100))"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast?","visibility":"Public","body":"get(\"contrast\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(val:Int32)-instance-method","name":"hue","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"hue","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"hue\", val.clamp(0, 100))"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"hue?","visibility":"Public","body":"get(\"hue\")"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L99"},"def":{"name":"input?","visibility":"Public","body":"(get(\"input\")).get\nself[:input].as_s\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/fh.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L66"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"(set(\"blank\", state ? \"on\" : \"off\")).get\nself[:mute] = state\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L75"},"def":{"name":"mute?","visibility":"Public","body":"(get(\"blank\")).get\nself[:mute].as_bool\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L44"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/fh.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(set(\"power\", state ? \"on\" : \"off\")).get\nself[:power] = state\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L61"},"def":{"name":"power?","visibility":"Public","body":"get(\"power_status\")\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(response,task)-instance-method","name":"received","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(response, task)","args_html":"(response, task)","location":{"filename":"src/sony/projector/fh.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L120"},"def":{"name":"received","args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(response, task)"}},{"html_id":"sharpness(val:Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"sharpness\", val.clamp(0, 100))"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness?","visibility":"Public","body":"get(\"sharpness\")"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/sony/projector/fh.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L94"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"(set(\"input\", input.to_message)).get\nself[:input] = input.readable\n"}}],"types":[{"html_id":"drivers/Sony/Projector/Fh/Inputs","path":"Sony/Projector/Fh/Inputs.html","kind":"enum","full_name":"Sony::Projector::Fh::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"Video","name":"Video","value":"2"},{"id":"SVideo","name":"SVideo","value":"3"},{"id":"RGB","name":"RGB","value":"4"},{"id":"HDBaseT","name":"HDBaseT","value":"5"},{"id":"InputA","name":"InputA","value":"6"},{"id":"InputB","name":"InputB","value":"7"},{"id":"InputC","name":"InputC","value":"8"},{"id":"InputD","name":"InputD","value":"9"},{"id":"InputE","name":"InputE","value":"10"}],"namespace":{"html_id":"drivers/Sony/Projector/Fh","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L18"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L13"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L19"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L20"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L21"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L22"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"input_e?-instance-method","name":"input_e?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L23"},"def":{"name":"input_e?","visibility":"Public","body":"self == InputE"}},{"html_id":"readable:String-instance-method","name":"readable","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L34"},"def":{"name":"readable","return_type":"String","visibility":"Public","body":"to_s.downcase"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L17"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L16"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"to_message:String-instance-method","name":"to_message","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L25"},"def":{"name":"to_message","return_type":"String","visibility":"Public","body":"case self\nin HDMI, DVI, Video, SVideo, RGB, HDBaseT\n to_s.downcase + \"1\"\nin InputA, InputB, InputC, InputD, InputE\n to_s.underscore\nend"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/fh.cr#L15"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Sony/Projector/PjTalk","path":"Sony/Projector/PjTalk.html","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CATEGORY","name":"ERROR_CATEGORY","value":"{1_u8 => :item_error, 2_u8 => :community_error, 16_u8 => :request_error, 32_u8 => :network_error, 240_u8 => :comms_error, 241_u8 => :ram_error}"},{"id":"ERRORS","name":"ERRORS","value":"{item_error: {1_u8 => \"Invalid Item\", 2_u8 => \"Invalid Item Request\", 3_u8 => \"Invalid Length\", 4_u8 => \"Invalid Data\", 17_u8 => \"Short Data\", 128_u8 => \"Not Applicable Item\"}, community_error: {1_u8 => \"Different Community\"}, request_error: {1_u8 => \"Invalid Version\", 2_u8 => \"Invalid Category\", 3_u8 => \"Invalid Request\", 17_u8 => \"Short Header\", 18_u8 => \"Short Community\", 19_u8 => \"Short Command\"}, network_error: {1_u8 => \"Timeout\"}, comms_error: {1_u8 => \"Timeout\", 16_u8 => \"Check Sum Error\", 32_u8 => \"Framing Error\", 48_u8 => \"Parity Error\", 64_u8 => \"Over Run Error\", 80_u8 => \"Other Comm Error\", 240_u8 => \"Unknown Response\"}, ram_error: {16_u8 => \"Read Error\", 32_u8 => \"Write Error\"}, unknown: {} of UInt8 => String}"},{"id":"METHODS","name":"METHODS","value":"[:contrast, :brightness, :color, :hue, :sharpness]"},{"id":"PJTALK_HEADER","name":"PJTALK_HEADER","value":"Bytes[2, 10]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(:get, :brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"color?","visibility":"Public","body":"do_send(:get, :color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(:get, :contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L177"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n input?\n mute?\n do_send(:get, :error_status, priority: 0)\n lamp_time?\nend"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"hue?","visibility":"Public","body":"do_send(:get, :hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L93"},"def":{"name":"input?","visibility":"Public","body":"do_send(:get, :input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L97"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(:get, :lamp_timer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L101"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(:set, :mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L110"},"def":{"name":"mute?","visibility":"Public","body":"do_send(:get, :mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.to_slice\n bytes.size < 10 ? -1 : 10 + bytes[9]\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@community = (setting?(String, :community)) || \"SONY\""}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L47"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:set, :power_on, name: :power)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:set, :power_off, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L61"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(:get, :power_status, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L191"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\nresponse_status = ResponseStatus.from_value(data[6])\npjt_command = Command.from_bytes(data[7..8])\npjt_length = data[9]\npjt_data = pjt_length > 0 ? data[10..-1] : Bytes.new(0)\nif response_status.no_good?\n category = ERROR_CATEGORY[pjt_data[0]]? || (:unknown)\n message = ERRORS[category][pjt_data[1]]? || \"unknown: category #{pjt_data[1].to_s(16)}, reason #{pjt_data[1].to_s(16)}\"\n self[:last_error] = \"#{category}: #{message}\"\n logger.debug do\n \"Command #{pjt_command} failed with #{category}: #{message}\"\n end\n return task.try(&.abort)\nend\ncase pjt_command\nwhen .power_on?\n self[:power] = true\nwhen .power_off?\n self[:power] = false\nwhen .lamp_timer?\n self[:lamp_usage] = (pjt_data[-2].to_u16 << 8) + pjt_data[-1]\nwhen .power_status?\n case pjt_data[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\nwhen .mute?\n self[:mute] = pjt_data[-1] == 1\nwhen .input?\n self[:input] = Input.from_bytes(pjt_data)\nwhen .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[pjt_command.to_s.downcase] = pjt_data[-1]\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(:get, :sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L86"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(:set, :input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/PjTalk/Command","path":"Sony/Projector/PjTalk/Command.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L130"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L148"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L138"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L139"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L137"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L135"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L140"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L133"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L142"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L134"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L132"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L131"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L136"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L141"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L144"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/CommandType","path":"Sony/Projector/PjTalk/CommandType.html","kind":"enum","full_name":"Sony::Projector::PjTalk::CommandType","name":"CommandType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L153"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L155"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L154"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/Input","path":"Sony/Projector/PjTalk/Input.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L66"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L79"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L67"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L68"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L69"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L70"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L71"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L73"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L75"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L72"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/ResponseStatus","path":"Sony/Projector/PjTalk/ResponseStatus.html","kind":"enum","full_name":"Sony::Projector::PjTalk::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"NoGood","name":"NoGood","value":"0_u8"},{"id":"Okay","name":"Okay","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"no_good?-instance-method","name":"no_good?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L187"},"def":{"name":"no_good?","visibility":"Public","body":"self == NoGood"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/pj_talk.cr#L188"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Sony/Projector/SerialControl","path":"Sony/Projector/SerialControl.html","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"154_u8"},{"id":"ERRORS","name":"ERRORS","value":"{0 => \"No Error\", 1 => \"Lamp Error\", 2 => \"Fan Error\", 4 => \"Cover Error\", 8 => \"Temperature Error\", 16 => \"D5V Error\", 32 => \"Power Error\", 64 => \"Warning Error\", 128 => \"NVM Data ERROR\"}"},{"id":"INDICATOR","name":"INDICATOR","value":"169_u8"},{"id":"METHODS","name":"METHODS","value":"[\"Contrast\", \"Brightness\", \"Color\", \"Hue\", \"Sharpness\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(Type::Get, Command::Brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"color?","visibility":"Public","body":"do_send(Type::Get, Command::Color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(Type::Get, Command::Contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"hue?","visibility":"Public","body":"do_send(Type::Get, Command::Hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"do_send(Type::Get, Command::Input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L81"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(Type::Get, Command::LampTimer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L85"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(Type::Set, Command::Mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L94"},"def":{"name":"mute?","visibility":"Public","body":"do_send(Type::Get, Command::Mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[DELIMITER])"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L30"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(Type::Set, Command::PowerOn, name: :power)\n do_send(Type::Set, Command::PowerOn, name: :power, delay: 3.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(Type::Set, Command::PowerOff, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L45"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(Type::Get, Command::PowerStatus, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L177"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\ncmd = data[1..2]\ntype = data[3]\nresp = data[4..5]\nchecksum = data[1..5].reduce do |a, b|\n a = a | b\nend\nif data[6] == checksum\nelse\n return task.try(&.abort(\"Checksum should be 0x#{checksum.to_s(base: 16, upcase: true)}\"))\nend\nif type == 3\n if cmd == Bytes[0, 0]\n return task.try(&.success)\n else\n return task.try(&.abort(\"Command failed with 0x#{cmd.join(&.to_s(base: 16, upcase: true))}\"))\n end\nelse\n case command = Command.from_bytes(cmd)\n when .power_on?\n self[:power] = true\n when .power_off?\n self[:power] = false\n when .lamp_timer?\n self[:lamp_usage] = (resp[-2].to_u16 << 8) + resp[-1]\n when .power_status?\n case resp[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\n when .mute?\n self[:mute] = resp[-1] == 1\n when .input?\n self[:input] = Input.from_bytes(resp)\n when .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[command.to_s.downcase] = resp[-1]\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L107"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L100"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(Type::Get, Command::Sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L70"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(Type::Set, Command::Input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/SerialControl/Command","path":"Sony/Projector/SerialControl/Command.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L153"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L143"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L144"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L142"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L140"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L145"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L138"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L147"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L139"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L137"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L136"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L141"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L146"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L149"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Input","path":"Sony/Projector/SerialControl/Input.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L50"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L63"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L51"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L52"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L53"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L54"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L55"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L57"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L59"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L56"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Type","path":"Sony/Projector/SerialControl/Type.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L158"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L160"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/sony/projector/serial_control.cr#L159"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]}]}]}]},{"html_id":"drivers/Steinel","path":"Steinel.html","kind":"module","full_name":"Steinel","name":"Steinel","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Steinel/HPD2","path":"Steinel/HPD2.html","kind":"class","full_name":"Steinel::HPD2","name":"HPD2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{illuminance: SensorType::Illuminance, temperature: SensorType::Temperature, humidity: SensorType::Humidity, presence: SensorType::Presence, people: SensorType::PeopleCount, illuminance_zones: SensorType::Illuminance, presence_zones: SensorType::Presence, people_zones: SensorType::PeopleCount}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Steinel","kind":"module","full_name":"Steinel","name":"Steinel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L98"},"def":{"name":"get_status","visibility":"Public","body":"response = get(\"/api/sensorstatus.php\")\nlogger.debug do\n \"received #{response.body}\"\nend\nif response.success?\n status = SensorStatus.from_json(response.body.not_nil!)\n time = Time.utc.to_unix\n mod_id = module_id\n humidity = Interface::Sensor::Detail.new(SensorType::Humidity, status.humidity.to_f, time, @mac, \"humidity\", \"Humidity\", module_id: mod_id, binding: \"humidity\")\n self[:humidity] = status.humidity.to_f\n temperature = Interface::Sensor::Detail.new(SensorType::Temperature, status.temperature.to_f, time, @mac, \"temperature\", \"Temperature\", module_id: mod_id, binding: \"temperature\", unit: \"Cel\")\n self[:temperature] = status.temperature.to_f\n pres = status.person_presence.zero? ? 0.0 : 1.0\n presence = Interface::Sensor::Detail.new(SensorType::Presence, pres, time, @mac, \"presence\", \"Person Presence\", module_id: mod_id, binding: \"presence\")\n self[:presence] = pres\n people = Interface::Sensor::Detail.new(SensorType::PeopleCount, status.detected_persons.to_f, time, @mac, \"people\", \"Detected Persons\", module_id: mod_id, binding: \"people\")\n self[:people] = status.detected_persons\n illuminance = Interface::Sensor::Detail.new(SensorType::Illuminance, status.global_illuminance_lux, time, @mac, \"illuminance\", \"Illuminance\", module_id: mod_id, binding: \"illuminance\", unit: \"lx\")\n self[:illuminance] = status.global_illuminance_lux\n self[:presence_zones] = status.person_presence_zone.map do |value|\n value.zero? ? 0.0 : 1.0\n end\n presence_zones = status.person_presence_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Presence, value.zero? ? 0.0 : 1.0, time, @mac, \"presence-#{index}\", \"Person Presence in Zone#{index}\")\n end\n self[:people_zones] = status.detected_persons_zone\n people_zones = status.detected_persons_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::PeopleCount, value.to_f, time, @mac, \"people-#{index}\", \"Detected People in Zone#{index}\")\n end\n self[:illuminance_zones] = status.lux_zone\n illuminance_zones = status.lux_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Illuminance, value, time, @mac, \"illuminance-#{index}\", \"Illuminance in Zone#{index}\", unit: \"lx\")\n end\n @state = {humidity: humidity, temperature: temperature, presence: presence, people: people, illuminance: illuminance, presence_zones: presence_zones, people_zones: people_zones, illuminance_zones: illuminance_zones}\n status\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nschedule.every(5.seconds) do\n get_status\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/steinel/hpd2.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L38"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n case id\n when \"humidity\"\n state[:humidity]\n when \"temperature\"\n state[:temperature]\n when \"presence\"\n state[:presence]\n when \"people\"\n state[:people]\n when \"illuminance\"\n state[:illuminance]\n end\n else\n if index = index_str.to_i?\n case id\n when \"presence\"\n state[:presence_zones][index]?\n when \"people\"\n state[:people_zones][index]?\n when \"illuminance\"\n state[:illuminance_zones][index]?\n end\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/steinel/hpd2.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L83"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return state.values.to_a.flatten\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Interface::Sensor::Detail | Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << state[key]\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"state:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))-instance-method","name":"state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L22"},"def":{"name":"state","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail))","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"Steinel::HPD2#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))|Nil-instance-method","name":"state?","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L22"},"def":{"name":"state?","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail)) | ::Nil","visibility":"Public","body":"@state"}}],"types":[{"html_id":"drivers/Steinel/HPD2/SensorStatus","path":"Steinel/HPD2/SensorStatus.html","kind":"class","full_name":"Steinel::HPD2::SensorStatus","name":"SensorStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L151"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/steinel/hpd2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L152"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_version:String-instance-method","name":"app_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version","return_type":"String","visibility":"Public","body":"@app_version"}},{"html_id":"app_version=(app_version:String)-instance-method","name":"app_version=","abstract":false,"args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"args_string":"(app_version : String)","args_html":"(app_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version=","args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"visibility":"Public","body":"@app_version = app_version"}},{"html_id":"arm_sensor_cpu_usage:String-instance-method","name":"arm_sensor_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage","return_type":"String","visibility":"Public","body":"@arm_sensor_cpu_usage"}},{"html_id":"arm_sensor_cpu_usage=(arm_sensor_cpu_usage:String)-instance-method","name":"arm_sensor_cpu_usage=","abstract":false,"args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"args_string":"(arm_sensor_cpu_usage : String)","args_html":"(arm_sensor_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage=","args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@arm_sensor_cpu_usage = arm_sensor_cpu_usage"}},{"html_id":"average_fps5:Float64-instance-method","name":"average_fps5","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5","return_type":"Float64","visibility":"Public","body":"@average_fps5"}},{"html_id":"average_fps50:Float64-instance-method","name":"average_fps50","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50","return_type":"Float64","visibility":"Public","body":"@average_fps50"}},{"html_id":"average_fps50=(average_fps50:Float64)-instance-method","name":"average_fps50=","abstract":false,"args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"args_string":"(average_fps50 : Float64)","args_html":"(average_fps50 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50=","args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"visibility":"Public","body":"@average_fps50 = average_fps50"}},{"html_id":"average_fps5=(average_fps5:Float64)-instance-method","name":"average_fps5=","abstract":false,"args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"args_string":"(average_fps5 : Float64)","args_html":"(average_fps5 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5=","args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"visibility":"Public","body":"@average_fps5 = average_fps5"}},{"html_id":"detected_persons:Int32-instance-method","name":"detected_persons","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons","return_type":"Int32","visibility":"Public","body":"@detected_persons"}},{"html_id":"detected_persons=(detected_persons:Int32)-instance-method","name":"detected_persons=","abstract":false,"args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"args_string":"(detected_persons : Int32)","args_html":"(detected_persons : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons=","args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"visibility":"Public","body":"@detected_persons = detected_persons"}},{"html_id":"detected_persons_zone:Array(Int32)-instance-method","name":"detected_persons_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone","return_type":"Array(Int32)","visibility":"Public","body":"@detected_persons_zone"}},{"html_id":"detected_persons_zone=(detected_persons_zone:Array(Int32))-instance-method","name":"detected_persons_zone=","abstract":false,"args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"args_string":"(detected_persons_zone : Array(Int32))","args_html":"(detected_persons_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone=","args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@detected_persons_zone = detected_persons_zone"}},{"html_id":"detection_zones_present:Int32-instance-method","name":"detection_zones_present","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present","return_type":"Int32","visibility":"Public","body":"@detection_zones_present"}},{"html_id":"detection_zones_present=(detection_zones_present:Int32)-instance-method","name":"detection_zones_present=","abstract":false,"args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"args_string":"(detection_zones_present : Int32)","args_html":"(detection_zones_present : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present=","args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"visibility":"Public","body":"@detection_zones_present = detection_zones_present"}},{"html_id":"final:String-instance-method","name":"final","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L237"},"def":{"name":"final","return_type":"String","visibility":"Public","body":"@final"}},{"html_id":"final=(final:String)-instance-method","name":"final=","abstract":false,"args":[{"name":"final","external_name":"final","restriction":"String"}],"args_string":"(final : String)","args_html":"(final : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L237"},"def":{"name":"final=","args":[{"name":"final","external_name":"final","restriction":"String"}],"visibility":"Public","body":"@final = final"}},{"html_id":"fpga_version:String-instance-method","name":"fpga_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version","return_type":"String","visibility":"Public","body":"@fpga_version"}},{"html_id":"fpga_version=(fpga_version:String)-instance-method","name":"fpga_version=","abstract":false,"args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"args_string":"(fpga_version : String)","args_html":"(fpga_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version=","args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"visibility":"Public","body":"@fpga_version = fpga_version"}},{"html_id":"frame_processing_time_ms:Int32-instance-method","name":"frame_processing_time_ms","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms","return_type":"Int32","visibility":"Public","body":"@frame_processing_time_ms"}},{"html_id":"frame_processing_time_ms=(frame_processing_time_ms:Int32)-instance-method","name":"frame_processing_time_ms=","abstract":false,"args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"args_string":"(frame_processing_time_ms : Int32)","args_html":"(frame_processing_time_ms : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms=","args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"visibility":"Public","body":"@frame_processing_time_ms = frame_processing_time_ms"}},{"html_id":"git_revision:String-instance-method","name":"git_revision","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision","return_type":"String","visibility":"Public","body":"@git_revision"}},{"html_id":"git_revision=(git_revision:String)-instance-method","name":"git_revision=","abstract":false,"args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"args_string":"(git_revision : String)","args_html":"(git_revision : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision=","args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"visibility":"Public","body":"@git_revision = git_revision"}},{"html_id":"global_illuminance_lux:Float64-instance-method","name":"global_illuminance_lux","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux","return_type":"Float64","visibility":"Public","body":"@global_illuminance_lux"}},{"html_id":"global_illuminance_lux=(global_illuminance_lux:Float64)-instance-method","name":"global_illuminance_lux=","abstract":false,"args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"args_string":"(global_illuminance_lux : Float64)","args_html":"(global_illuminance_lux : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux=","args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"visibility":"Public","body":"@global_illuminance_lux = global_illuminance_lux"}},{"html_id":"global_light_value:Int32-instance-method","name":"global_light_value","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value","return_type":"Int32","visibility":"Public","body":"@global_light_value"}},{"html_id":"global_light_value=(global_light_value:Int32)-instance-method","name":"global_light_value=","abstract":false,"args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"args_string":"(global_light_value : Int32)","args_html":"(global_light_value : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value=","args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"visibility":"Public","body":"@global_light_value = global_light_value"}},{"html_id":"humidity:String-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity","return_type":"String","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:String)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"args_string":"(humidity : String)","args_html":"(humidity : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"ir_led_on:Int32-instance-method","name":"ir_led_on","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on","return_type":"Int32","visibility":"Public","body":"@ir_led_on"}},{"html_id":"ir_led_on=(ir_led_on:Int32)-instance-method","name":"ir_led_on=","abstract":false,"args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"args_string":"(ir_led_on : Int32)","args_html":"(ir_led_on : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on=","args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"visibility":"Public","body":"@ir_led_on = ir_led_on"}},{"html_id":"knx_address:String-instance-method","name":"knx_address","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address","return_type":"String","visibility":"Public","body":"@knx_address"}},{"html_id":"knx_address=(knx_address:String)-instance-method","name":"knx_address=","abstract":false,"args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"args_string":"(knx_address : String)","args_html":"(knx_address : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address=","args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"visibility":"Public","body":"@knx_address = knx_address"}},{"html_id":"knx_detected:String-instance-method","name":"knx_detected","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected","return_type":"String","visibility":"Public","body":"@knx_detected"}},{"html_id":"knx_detected=(knx_detected:String)-instance-method","name":"knx_detected=","abstract":false,"args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"args_string":"(knx_detected : String)","args_html":"(knx_detected : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected=","args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"visibility":"Public","body":"@knx_detected = knx_detected"}},{"html_id":"knx_led_state:String-instance-method","name":"knx_led_state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state","return_type":"String","visibility":"Public","body":"@knx_led_state"}},{"html_id":"knx_led_state=(knx_led_state:String)-instance-method","name":"knx_led_state=","abstract":false,"args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"args_string":"(knx_led_state : String)","args_html":"(knx_led_state : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state=","args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"visibility":"Public","body":"@knx_led_state = knx_led_state"}},{"html_id":"knx_program_mode:String-instance-method","name":"knx_program_mode","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode","return_type":"String","visibility":"Public","body":"@knx_program_mode"}},{"html_id":"knx_program_mode=(knx_program_mode:String)-instance-method","name":"knx_program_mode=","abstract":false,"args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"args_string":"(knx_program_mode : String)","args_html":"(knx_program_mode : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode=","args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"visibility":"Public","body":"@knx_program_mode = knx_program_mode"}},{"html_id":"knx_sap_number:String-instance-method","name":"knx_sap_number","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number","return_type":"String","visibility":"Public","body":"@knx_sap_number"}},{"html_id":"knx_sap_number=(knx_sap_number:String)-instance-method","name":"knx_sap_number=","abstract":false,"args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"args_string":"(knx_sap_number : String)","args_html":"(knx_sap_number : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number=","args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"visibility":"Public","body":"@knx_sap_number = knx_sap_number"}},{"html_id":"knx_version:String-instance-method","name":"knx_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version","return_type":"String","visibility":"Public","body":"@knx_version"}},{"html_id":"knx_version=(knx_version:String)-instance-method","name":"knx_version=","abstract":false,"args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"args_string":"(knx_version : String)","args_html":"(knx_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version=","args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"visibility":"Public","body":"@knx_version = knx_version"}},{"html_id":"lux_zone:Array(Float64)-instance-method","name":"lux_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone","return_type":"Array(Float64)","visibility":"Public","body":"@lux_zone"}},{"html_id":"lux_zone=(lux_zone:Array(Float64))-instance-method","name":"lux_zone=","abstract":false,"args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"args_string":"(lux_zone : Array(Float64))","args_html":"(lux_zone : Array(Float64))","location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone=","args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"visibility":"Public","body":"@lux_zone = lux_zone"}},{"html_id":"model_name:String-instance-method","name":"model_name","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name","return_type":"String","visibility":"Public","body":"@model_name"}},{"html_id":"model_name=(model_name:String)-instance-method","name":"model_name=","abstract":false,"args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"args_string":"(model_name : String)","args_html":"(model_name : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name=","args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"visibility":"Public","body":"@model_name = model_name"}},{"html_id":"person_presence:Int32-instance-method","name":"person_presence","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence","return_type":"Int32","visibility":"Public","body":"@person_presence"}},{"html_id":"person_presence=(person_presence:Int32)-instance-method","name":"person_presence=","abstract":false,"args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"args_string":"(person_presence : Int32)","args_html":"(person_presence : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence=","args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"visibility":"Public","body":"@person_presence = person_presence"}},{"html_id":"person_presence_zone:Array(Int32)-instance-method","name":"person_presence_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone","return_type":"Array(Int32)","visibility":"Public","body":"@person_presence_zone"}},{"html_id":"person_presence_zone=(person_presence_zone:Array(Int32))-instance-method","name":"person_presence_zone=","abstract":false,"args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"args_string":"(person_presence_zone : Array(Int32))","args_html":"(person_presence_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone=","args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@person_presence_zone = person_presence_zone"}},{"html_id":"running_time:String-instance-method","name":"running_time","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time","return_type":"String","visibility":"Public","body":"@running_time"}},{"html_id":"running_time=(running_time:String)-instance-method","name":"running_time=","abstract":false,"args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"args_string":"(running_time : String)","args_html":"(running_time : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time=","args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"visibility":"Public","body":"@running_time = running_time"}},{"html_id":"temperature:String-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature","return_type":"String","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:String)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"args_string":"(temperature : String)","args_html":"(temperature : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"uptime:String-instance-method","name":"uptime","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime","return_type":"String","visibility":"Public","body":"@uptime"}},{"html_id":"uptime=(uptime:String)-instance-method","name":"uptime=","abstract":false,"args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"args_string":"(uptime : String)","args_html":"(uptime : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime=","args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"visibility":"Public","body":"@uptime = uptime"}},{"html_id":"web_server_cpu_usage:String-instance-method","name":"web_server_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage","return_type":"String","visibility":"Public","body":"@web_server_cpu_usage"}},{"html_id":"web_server_cpu_usage=(web_server_cpu_usage:String)-instance-method","name":"web_server_cpu_usage=","abstract":false,"args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"args_string":"(web_server_cpu_usage : String)","args_html":"(web_server_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage=","args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@web_server_cpu_usage = web_server_cpu_usage"}}]},{"html_id":"drivers/Steinel/HPD2/SensorType","path":"Steinel/HPD2/SensorType.html","kind":"alias","full_name":"Steinel::HPD2::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/steinel/hpd2.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"}}]}]},{"html_id":"drivers/Stripe","path":"Stripe.html","kind":"module","full_name":"Stripe","name":"Stripe","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Stripe/API","path":"Stripe/API.html","kind":"class","full_name":"Stripe::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Stripe","kind":"module","full_name":"Stripe","name":"Stripe"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_payment_method(type:String,billing_details:Hash(String,String)|Nil=nil,metadata:Hash(String,String)|Nil=nil,acss_debit:Hash(String,String)|Nil=nil,affirm:Hash(String,String)|Nil=nil,afterpay_clearpay:Hash(String,String)|Nil=nil,alipay:Hash(String,String)|Nil=nil,au_becs_debit:Hash(String,String)|Nil=nil,bacs_debit:Hash(String,String)|Nil=nil,bancontact:Hash(String,String)|Nil=nil,blik:Hash(String,String)|Nil=nil,boleto:Hash(String,String)|Nil=nil,card:Hash(String,String)|Nil=nil,customer_balance:Hash(String,String)|Nil=nil,eps:Hash(String,String)|Nil=nil,fpx:Hash(String,String)|Nil=nil,giropay:Hash(String,String)|Nil=nil,ideal:Hash(String,String)|Nil=nil,interac_present:Hash(String,String)|Nil=nil,klarna:Hash(String,String)|Nil=nil,konbini:Hash(String,String)|Nil=nil,link:Hash(String,String)|Nil=nil,oxxo:Hash(String,String)|Nil=nil,p24:Hash(String,String)|Nil=nil,paynow:Hash(String,String)|Nil=nil,promptpay:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,sepa_debit:Hash(String,String)|Nil=nil,sofort:Hash(String,String)|Nil=nil,us_bank_account:Hash(String,String)|Nil=nil,wechat_pay:Hash(String,String)|Nil=nil)-instance-method","name":"add_payment_method","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","args_html":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L22"},"def":{"name":"add_payment_method","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"payment_method = @client.not_nil!.payment_methods.create(type, billing_details, metadata, acss_debit, affirm, afterpay_clearpay, alipay, au_becs_debit, bacs_debit, bancontact, blik, boleto, card, customer_balance, eps, fpx, giropay, ideal, interac_present, klarna, konbini, link, oxxo, p24, paynow, promptpay, radar_options, sepa_debit, sofort, us_bank_account, wechat_pay)\nself[\"payment_method\"] = payment_method\n"}},{"html_id":"cancel_payment_intent(id:String,cancellation_reason:String|Nil=nil)-instance-method","name":"cancel_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"args_string":"(id : String, cancellation_reason : String | Nil = nil)","args_html":"(id : String, cancellation_reason : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L79"},"def":{"name":"cancel_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client.not_nil!.payment_intents.cancel(id: id, cancellation_reason: cancellation_reason)\nself[\"payment_intent\"] = nil\n"}},{"html_id":"confirm_payment_intent(id:String,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,capture_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"confirm_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L74"},"def":{"name":"confirm_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.confirm(id: id, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, capture_method: capture_method, error_on_requires_action: error_on_requires_action, mandate: mandate, mandate_data: mandate_data, off_session: off_session, payment_method_data: payment_method_data, payment_method_options: payment_method_options, payment_method_types: payment_method_types, radar_options: radar_options, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"create_customer(account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"create_customer","abstract":false,"args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L96"},"def":{"name":"create_customer","args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.create(account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}},{"html_id":"create_payment_intent(amount:Int32,currency:String,automatic_payment_methods:Hash(String,String)|Nil=nil,confirm:Bool|Nil=nil,customer:String|Nil=nil,description:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,statement_descriptor:String|Nil=nil,statement_descriptor_suffix:String|Nil=nil,application_fee_amount:Int32|Nil=nil,capture_method:String|Nil=nil,confrimation_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,on_behalf_of:String|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,transfer_data:Hash(String,String)|Nil=nil,transfer_group:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"create_payment_intent","abstract":false,"args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L69"},"def":{"name":"create_payment_intent","args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.create(amount: amount, currency: currency, automatic_payment_methods: automatic_payment_methods, confirm: confirm, customer: customer, description: description, metadata: metadata, off_session: off_session, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, statement_descriptor: statement_descriptor, statement_descriptor_suffix: statement_descriptor_suffix, application_fee_amount: application_fee_amount, capture_method: capture_method, confrimation_method: confrimation_method, error_on_requires_action: error_on_requires_action, mandate_data: mandate_data, on_behalf_of: on_behalf_of, payment_method_data: payment_method_data, payment_method_types: payment_method_types, payment_method_options: payment_method_options, radar_options: radar_options, return_url: return_url, transfer_data: transfer_data, transfer_group: transfer_group, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"get_customer(id:String)-instance-method","name":"get_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/stripe/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L84"},"def":{"name":"get_customer","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"self[\"customer\"] = @client.not_nil!.customers.get(id)"}},{"html_id":"get_product_prices(active:Bool|Nil=nil,currency:String|Nil=nil,product:String|Nil=nil,type:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,lookup_keys:Array(String)|Nil=nil,recurring:Hash(String,String)|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"get_product_prices","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","args_html":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L64"},"def":{"name":"get_product_prices","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"product_prices = @client.not_nil!.prices.list(active: active, currency: currency, product: product, type: type, created: created, ending_before: ending_before, limit: limit, lookup_keys: lookup_keys, recurring: recurring, starting_after: starting_after)\nself[\"product_prices\"] = product_prices\n"}},{"html_id":"list_customers(email:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_customers","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L88"},"def":{"name":"list_customers","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.list(email: email, created: created, ending_before: ending_before, limit: limit, starting_after: starting_after)"}},{"html_id":"list_payment_methods(type:String,customer:String|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_payment_methods","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L59"},"def":{"name":"list_payment_methods","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"payment_methods = @client.not_nil!.payment_methods.list(type: type, customer: customer, ending_before: ending_before, limit: limit, starting_after: starting_after)\nself[\"payment_methods\"] = payment_methods\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/stripe/api.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L15"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\napi_key = setting(String, :api_key)\n@client = Stripetease::Client.new(base_url: host_name, api_key: api_key)\n"}},{"html_id":"search_customers(query:String,limit:Int32|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"search_customers","abstract":false,"args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","args_html":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L92"},"def":{"name":"search_customers","args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.search(query: query, limit: limit, page: page)"}},{"html_id":"update_customer(id:String,customer:String|Nil=nil,account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"update_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L101"},"def":{"name":"update_customer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.update(id: id, customer: customer, account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}}],"types":[{"html_id":"drivers/Stripe/API/Client","path":"Stripe/API/Client.html","kind":"alias","full_name":"Stripe::API::Client","name":"Client","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/stripe/api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Stripetease::Client","aliased_html":"Stripetease::Client","const":false,"namespace":{"html_id":"drivers/Stripe/API","kind":"class","full_name":"Stripe::API","name":"API"}}]}]},{"html_id":"drivers/TvOne","path":"TvOne.html","kind":"module","full_name":"TvOne","name":"TvOne","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TvOne/CorioMaster","path":"TvOne/CorioMaster.html","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TvOne","kind":"module","full_name":"TvOne","name":"TvOne"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L37"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(30.seconds) do\n if @ready\n else\n disconnect\n end\nend\nschedule.every(1.minute) do\n do_poll\nend\nspawn do\n init_connection\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:ready] = @ready = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L62"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"polling device\"\nend\nquery(\"Preset.Take\", expose_as: :preset)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"preset(id:UInt32)-instance-method","name":"preset","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/tv_one/corio_master.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L67"},"def":{"name":"preset","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"(set(\"Preset.Take\", id)).get\nself[:preset] = id\nif wins = @window_cache[id]?\n logger.debug do\n \"loading cached window state\"\n end\n self[:windows] = wins\nend\nspawn do\n windows = query_windows\n logger.debug do\n \"window cache for preset #{id} updated\"\n end\n self[:windows] = @window_cache[id] = windows\nend\nid\n"}},{"html_id":"preset_list-instance-method","name":"preset_list","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L125"},"def":{"name":"preset_list","visibility":"Public","body":"query_preset_list"}},{"html_id":"query_windows-instance-method","name":"query_windows","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L121"},"def":{"name":"query_windows","visibility":"Public","body":"deep_query(\"Windows\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/tv_one/corio_master.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L197"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received => #{data}\"\nend\nif !@ready\n if data =~ (/Interface Ready/i)\n configure_tokenizer\n self[:ready] = @ready = true\n end\n return\nend\nbody = data.lines\ncaptures = ((/!(\\w+)\\W*(.*)$/).match(body.pop)).try(&.captures)\nif captures\nelse\n return task.try(&.abort(\"\"))\nend\ntype = captures[0].as(String)\nmessage = (captures[1].as(String)).downcase\nrequest = task.try do |__arg3|\n __arg3.request_payload.try() do |__arg4|\n (__arg4.strip.downcase.split(\" \"))[0]\n end\nend\ncase type\nwhen \"Done\"\n if request && (request == message)\n response = parse_response(body, request)\n task.try(&.success(response))\n end\nwhen \"Info\"\n logger.info do\n \"#{request} => #{message}\"\n end\n task.try(&.success)\nwhen \"Error\"\n logger.error do\n message\n end\n task.try(&.abort)\nwhen \"Event\"\n logger.info do\n \"unhandled event: #{message}\"\n end\nelse\n logger.error do\n \"unhandled response: #{data}\"\n end\n task.try(&.abort)\nend\n"}},{"html_id":"switch(map:Hash(String,Array(UInt32)))-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"args_string":"(map : Hash(String, Array(UInt32)))","args_html":"(map : Hash(String, Array(UInt32)))","location":{"filename":"src/tv_one/corio_master.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L91"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"visibility":"Public","body":"results = map.flat_map do |slot, windows|\n windows.map do |id|\n window(id, \"Input\", slot)\n end\nend\nspawn do\n results.each(&.get)\n if state = status?(Hash(String, Hash(String, JSON::Any)), :windows)\n map.each do |slot, windows|\n value = JSON::Any.new(slot)\n windows.each do |id|\n if win = state[\"window#{id}\"]?\n win[\"input\"] = value\n end\n end\n end\n self[\"windows\"] = state\n end\nend\nnil\n"}},{"html_id":"sync_state-instance-method","name":"sync_state","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L52"},"def":{"name":"sync_state","visibility":"Public","body":"query(\"Preset.Take\", expose_as: :preset)\nquery_preset_list(expose_as: :presets)\ndeep_query(\"Windows\", expose_as: :windows)\ndeep_query(\"Canvases\", expose_as: :canvases)\ndeep_query(\"Layouts\", expose_as: :layouts)\nquery(\"CORIOmax.Serial_Number\", expose_as: :serial_number)\nquery(\"CORIOmax.Software_Version\", expose_as: :firmware)\n"}},{"html_id":"window(id:UInt32,property:String,value:Int64|Bool|Nil|String)-instance-method","name":"window","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"args_string":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","args_html":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","location":{"filename":"src/tv_one/corio_master.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L117"},"def":{"name":"window","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"visibility":"Public","body":"set(\"Window#{id}.#{property}\", value)"}}],"types":[{"html_id":"drivers/TvOne/CorioMaster/PresetList","path":"TvOne/CorioMaster/PresetList.html","kind":"alias","full_name":"TvOne::CorioMaster::PresetList","name":"PresetList","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/tv_one/corio_master.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, NamedTuple(name: String, canvas: String, time: Int64))","aliased_html":"Hash(Int32, {name: String, canvas: String, time: Int64})","const":false,"namespace":{"html_id":"drivers/TvOne/CorioMaster","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster"}}]}]},{"html_id":"drivers/TwentyFiveLivePro","path":"TwentyFiveLivePro.html","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L4"},{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L4"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L3"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L3"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TwentyFiveLivePro/API","path":"TwentyFiveLivePro/API.html","kind":"class","full_name":"TwentyFiveLivePro::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"availability(id:Int32,start_date:String,end_date:String,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"availability","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L93"},"def":{"name":"availability","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nbody = {\"spaces\" => [{\"spaceId\" => id, \"dates\" => {\"startDt\" => start_date, \"endDt\" => end_date}}]}\nresponse = post(\"/external/spaceAvailability.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"}, body: body.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Availability.from_json(response.body)\n"}},{"html_id":"get_event_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_event_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L256"},"def":{"name":"get_event_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/event/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::EventDetail.from_json(response.body)\n"}},{"html_id":"get_organization_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_organization_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L180"},"def":{"name":"get_organization_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/organization/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::OrganizationDetail.from_json(response.body)\n"}},{"html_id":"get_resource_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_resource_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L119"},"def":{"name":"get_resource_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/resource/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ResourceDetail.from_json(response.body)\n"}},{"html_id":"get_space_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_space_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L32"},"def":{"name":"get_space_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/space/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::SpaceDetail.from_json(response.body)\n"}},{"html_id":"list_events(space_id:Int32=1,page:Int32=1,items_per_page:Int32=100,since:String|Nil=nil,paginate:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","args_html":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L270"},"def":{"name":"list_events","args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"events = [] of Models::Event\nloop do\n params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if since\n form.add(\"created_since\", since)\n end\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/event/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nevents\n"}},{"html_id":"list_organizations(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_organizations","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L194"},"def":{"name":"list_organizations","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"organizations = [] of Models::Organization\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/organization/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\norganizations\n"}},{"html_id":"list_reservations(space_id:Int32,start_date:String,end_date:String)-instance-method","name":"list_reservations","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(space_id : Int32, start_date : String, end_date : String)","args_html":"(space_id : Int32, start_date : String, end_date : String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L241"},"def":{"name":"list_reservations","args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"start_dt\", start_date)\n form.add(\"end_dt\", end_date)\nend\nresponse = get(\"/reservations.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Reservations.from_json(response.body)\n"}},{"html_id":"list_resources(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_resources","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L133"},"def":{"name":"list_resources","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"resources = [] of Models::Resource\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/resource/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nresources\n"}},{"html_id":"list_spaces(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_spaces","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L46"},"def":{"name":"list_spaces","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"spaces = [] of Models::Space\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/space/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nspaces\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/api.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]},{"html_id":"drivers/TwentyFiveLivePro/Date","path":"TwentyFiveLivePro/Date.html","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L13"},"def":{"name":"duration","visibility":"Public","body":"end_date - start_date"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","path":"TwentyFiveLivePro/Date/Converter.html","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Date","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L24"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_rfc3339(value.read_string)"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/date.cr#L20"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_rfc3339)"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models","path":"TwentyFiveLivePro/Models.html","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L5"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L4"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L4"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"instance_methods":[{"html_id":"reservations:Reservations-instance-method","name":"reservations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations","return_type":"Reservations","visibility":"Public","body":"@reservations"}},{"html_id":"reservations=(reservations:Reservations)-instance-method","name":"reservations=","abstract":false,"args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"args_string":"(reservations : Reservations)","args_html":"(reservations : Reservations)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations=","args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"visibility":"Public","body":"@reservations = reservations"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Attribute","path":"TwentyFiveLivePro/Models/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","path":"TwentyFiveLivePro/Models/Availability.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","path":"TwentyFiveLivePro/Models/Availability/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:String-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id","return_type":"String","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:String)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"args_string":"(request_id : String)","args_html":"(request_id : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","path":"TwentyFiveLivePro/Models/Availability/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data/Space","path":"TwentyFiveLivePro/Models/Availability/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"available=(available:Bool)-instance-method","name":"available=","abstract":false,"args":[{"name":"available","external_name":"available","restriction":"Bool"}],"args_string":"(available : Bool)","args_html":"(available : Bool)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available=","args":[{"name":"available","external_name":"available","restriction":"Bool"}],"visibility":"Public","body":"@available = available"}},{"html_id":"conflict_type:Int64|Nil-instance-method","name":"conflict_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conflict_type"}},{"html_id":"conflict_type=(conflict_type:Int64|Nil)-instance-method","name":"conflict_type=","abstract":false,"args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"args_string":"(conflict_type : Int64 | Nil)","args_html":"(conflict_type : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type=","args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conflict_type = conflict_type"}},{"html_id":"dates:Array(Hash(String,JSON::Any))-instance-method","name":"dates","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates","return_type":"Array(Hash(String, JSON::Any))","visibility":"Public","body":"@dates"}},{"html_id":"dates=(dates:Array(Hash(String,JSON::Any)))-instance-method","name":"dates=","abstract":false,"args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"args_string":"(dates : Array(Hash(String, JSON::Any)))","args_html":"(dates : Array(Hash(String, JSON::Any)))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates=","args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"visibility":"Public","body":"@dates = dates"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_types:Array(Expanded::Conflict)|Nil-instance-method","name":"conflict_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types","return_type":"Array(Expanded::Conflict) | ::Nil","visibility":"Public","body":"@conflict_types"}},{"html_id":"conflict_types=(conflict_types:Array(Expanded::Conflict)|Nil)-instance-method","name":"conflict_types=","abstract":false,"args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"args_string":"(conflict_types : Array(Expanded::Conflict) | Nil)","args_html":"(conflict_types : Array(Expanded::Conflict) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types=","args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"visibility":"Public","body":"@conflict_types = conflict_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Category","path":"TwentyFiveLivePro/Models/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"inherit_code:Int64|Nil-instance-method","name":"inherit_code","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code","return_type":"Int64 | ::Nil","visibility":"Public","body":"@inherit_code"}},{"html_id":"inherit_code=(inherit_code:Int64|Nil)-instance-method","name":"inherit_code=","abstract":false,"args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"args_string":"(inherit_code : Int64 | Nil)","args_html":"(inherit_code : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code=","args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@inherit_code = inherit_code"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Event","path":"TwentyFiveLivePro/Models/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","path":"TwentyFiveLivePro/Models/EventDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","path":"TwentyFiveLivePro/Models/EventDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"args_string":"(id : Int64 | Nil)","args_html":"(id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Event)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items","return_type":"Array(Event)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Event))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"args_string":"(items : Array(Event))","args_html":"(items : Array(Event))","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"priority:Int64-instance-method","name":"priority","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority","return_type":"Int64","visibility":"Public","body":"@priority"}},{"html_id":"priority=(priority:Int64)-instance-method","name":"priority=","abstract":false,"args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"args_string":"(priority : Int64)","args_html":"(priority : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority=","args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"visibility":"Public","body":"@priority = priority"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"event_types:Array(Expanded::EventType)|Nil-instance-method","name":"event_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types","return_type":"Array(Expanded::EventType) | ::Nil","visibility":"Public","body":"@event_types"}},{"html_id":"event_types=(event_types:Array(Expanded::EventType)|Nil)-instance-method","name":"event_types=","abstract":false,"args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"args_string":"(event_types : Array(Expanded::EventType) | Nil)","args_html":"(event_types : Array(Expanded::EventType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types=","args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"visibility":"Public","body":"@event_types = event_types"}},{"html_id":"organizations:Array(Expanded::Organization)|Nil-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations","return_type":"Array(Expanded::Organization) | ::Nil","visibility":"Public","body":"@organizations"}},{"html_id":"organizations=(organizations:Array(Expanded::Organization)|Nil)-instance-method","name":"organizations=","abstract":false,"args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"args_string":"(organizations : Array(Expanded::Organization) | Nil)","args_html":"(organizations : Array(Expanded::Organization) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations=","args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"visibility":"Public","body":"@organizations = organizations"}},{"html_id":"parent_nodes:Array(Expanded::ParentNode)|Nil-instance-method","name":"parent_nodes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes","return_type":"Array(Expanded::ParentNode) | ::Nil","visibility":"Public","body":"@parent_nodes"}},{"html_id":"parent_nodes=(parent_nodes:Array(Expanded::ParentNode)|Nil)-instance-method","name":"parent_nodes=","abstract":false,"args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"args_string":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","args_html":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes=","args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"visibility":"Public","body":"@parent_nodes = parent_nodes"}},{"html_id":"resources:Array(Expanded::Resource)|Nil-instance-method","name":"resources","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources","return_type":"Array(Expanded::Resource) | ::Nil","visibility":"Public","body":"@resources"}},{"html_id":"resources=(resources:Array(Expanded::Resource)|Nil)-instance-method","name":"resources=","abstract":false,"args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"args_string":"(resources : Array(Expanded::Resource) | Nil)","args_html":"(resources : Array(Expanded::Resource) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources=","args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"visibility":"Public","body":"@resources = resources"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"spaces:Array(Expanded::Space)|Nil-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces","return_type":"Array(Expanded::Space) | ::Nil","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Expanded::Space)|Nil)-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"args_string":"(spaces : Array(Expanded::Space) | Nil)","args_html":"(spaces : Array(Expanded::Space) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"states:Array(Expanded::State)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states","return_type":"Array(Expanded::State) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"states=(states:Array(Expanded::State)|Nil)-instance-method","name":"states=","abstract":false,"args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"args_string":"(states : Array(Expanded::State) | Nil)","args_html":"(states : Array(Expanded::State) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states=","args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"visibility":"Public","body":"@states = states"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","path":"TwentyFiveLivePro/Models/Expanded.html","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Attribute","path":"TwentyFiveLivePro/Models/Expanded/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}},{"html_id":"attribute_name:String-instance-method","name":"attribute_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name","return_type":"String","visibility":"Public","body":"@attribute_name"}},{"html_id":"attribute_name=(attribute_name:String)-instance-method","name":"attribute_name=","abstract":false,"args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"args_string":"(attribute_name : String)","args_html":"(attribute_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name=","args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"visibility":"Public","body":"@attribute_name = attribute_name"}},{"html_id":"attribute_type:String|Nil-instance-method","name":"attribute_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type","return_type":"String | ::Nil","visibility":"Public","body":"@attribute_type"}},{"html_id":"attribute_type=(attribute_type:String|Nil)-instance-method","name":"attribute_type=","abstract":false,"args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"args_string":"(attribute_type : String | Nil)","args_html":"(attribute_type : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type=","args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attribute_type = attribute_type"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Category","path":"TwentyFiveLivePro/Models/Expanded/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"category_name:String-instance-method","name":"category_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name","return_type":"String","visibility":"Public","body":"@category_name"}},{"html_id":"category_name=(category_name:String)-instance-method","name":"category_name=","abstract":false,"args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"args_string":"(category_name : String)","args_html":"(category_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name=","args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"visibility":"Public","body":"@category_name = category_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Conflict","path":"TwentyFiveLivePro/Models/Expanded/Conflict.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_type_description:String-instance-method","name":"conflict_type_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description","return_type":"String","visibility":"Public","body":"@conflict_type_description"}},{"html_id":"conflict_type_description=(conflict_type_description:String)-instance-method","name":"conflict_type_description=","abstract":false,"args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"args_string":"(conflict_type_description : String)","args_html":"(conflict_type_description : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description=","args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"visibility":"Public","body":"@conflict_type_description = conflict_type_description"}},{"html_id":"conflict_type_id:Int64-instance-method","name":"conflict_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id","return_type":"Int64","visibility":"Public","body":"@conflict_type_id"}},{"html_id":"conflict_type_id=(conflict_type_id:Int64)-instance-method","name":"conflict_type_id=","abstract":false,"args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"args_string":"(conflict_type_id : Int64)","args_html":"(conflict_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id=","args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"visibility":"Public","body":"@conflict_type_id = conflict_type_id"}},{"html_id":"conflict_type_name:String-instance-method","name":"conflict_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name","return_type":"String","visibility":"Public","body":"@conflict_type_name"}},{"html_id":"conflict_type_name=(conflict_type_name:String)-instance-method","name":"conflict_type_name=","abstract":false,"args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"args_string":"(conflict_type_name : String)","args_html":"(conflict_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name=","args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"visibility":"Public","body":"@conflict_type_name = conflict_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Contact","path":"TwentyFiveLivePro/Models/Expanded/Contact.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64|Nil-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64|Nil)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"args_string":"(contact_id : Int64 | Nil)","args_html":"(contact_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"etag:String|Nil-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag","return_type":"String | ::Nil","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String|Nil)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"args_string":"(etag : String | Nil)","args_html":"(etag : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"family_name:String|Nil-instance-method","name":"family_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name","return_type":"String | ::Nil","visibility":"Public","body":"@family_name"}},{"html_id":"family_name=(family_name:String|Nil)-instance-method","name":"family_name=","abstract":false,"args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"args_string":"(family_name : String | Nil)","args_html":"(family_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name=","args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family_name = family_name"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/EventType","path":"TwentyFiveLivePro/Models/Expanded/EventType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::EventType","name":"EventType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"type_id:Int64-instance-method","name":"type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id","return_type":"Int64","visibility":"Public","body":"@type_id"}},{"html_id":"type_id=(type_id:Int64)-instance-method","name":"type_id=","abstract":false,"args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"args_string":"(type_id : Int64)","args_html":"(type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id=","args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"visibility":"Public","body":"@type_id = type_id"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Feature","path":"TwentyFiveLivePro/Models/Expanded/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"feature_name:String-instance-method","name":"feature_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name","return_type":"String","visibility":"Public","body":"@feature_name"}},{"html_id":"feature_name=(feature_name:String)-instance-method","name":"feature_name=","abstract":false,"args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"args_string":"(feature_name : String)","args_html":"(feature_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name=","args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"visibility":"Public","body":"@feature_name = feature_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Layout","path":"TwentyFiveLivePro/Models/Expanded/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name","return_type":"String","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"args_string":"(layout_name : String)","args_html":"(layout_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"visibility":"Public","body":"@layout_name = layout_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Organization","path":"TwentyFiveLivePro/Models/Expanded/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/OrganizationType","path":"TwentyFiveLivePro/Models/Expanded/OrganizationType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::OrganizationType","name":"OrganizationType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"organization_type_name:String-instance-method","name":"organization_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name","return_type":"String","visibility":"Public","body":"@organization_type_name"}},{"html_id":"organization_type_name=(organization_type_name:String)-instance-method","name":"organization_type_name=","abstract":false,"args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"args_string":"(organization_type_name : String)","args_html":"(organization_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name=","args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"visibility":"Public","body":"@organization_type_name = organization_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/ParentNode","path":"TwentyFiveLivePro/Models/Expanded/ParentNode.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::ParentNode","name":"ParentNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_dt:String-instance-method","name":"end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt","return_type":"String","visibility":"Public","body":"@end_dt"}},{"html_id":"end_dt=(end_dt:String)-instance-method","name":"end_dt=","abstract":false,"args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"args_string":"(end_dt : String)","args_html":"(end_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt=","args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"visibility":"Public","body":"@end_dt = end_dt"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"locator:String-instance-method","name":"locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator","return_type":"String","visibility":"Public","body":"@locator"}},{"html_id":"locator=(locator:String)-instance-method","name":"locator=","abstract":false,"args":[{"name":"locator","external_name":"locator","restriction":"String"}],"args_string":"(locator : String)","args_html":"(locator : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator=","args":[{"name":"locator","external_name":"locator","restriction":"String"}],"visibility":"Public","body":"@locator = locator"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}},{"html_id":"start_dt:String-instance-method","name":"start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt","return_type":"String","visibility":"Public","body":"@start_dt"}},{"html_id":"start_dt=(start_dt:String)-instance-method","name":"start_dt=","abstract":false,"args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"args_string":"(start_dt : String)","args_html":"(start_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt=","args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"visibility":"Public","body":"@start_dt = start_dt"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Resource","path":"TwentyFiveLivePro/Models/Expanded/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"resource_id:Int64-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id","return_type":"Int64","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:Int64)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"args_string":"(resource_id : Int64)","args_html":"(resource_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Role","path":"TwentyFiveLivePro/Models/Expanded/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}},{"html_id":"role_name:String-instance-method","name":"role_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name","return_type":"String","visibility":"Public","body":"@role_name"}},{"html_id":"role_name=(role_name:String)-instance-method","name":"role_name=","abstract":false,"args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"args_string":"(role_name : String)","args_html":"(role_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name=","args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"visibility":"Public","body":"@role_name = role_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Space","path":"TwentyFiveLivePro/Models/Expanded/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name","return_type":"String","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"args_string":"(space_formal_name : String)","args_html":"(space_formal_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/State","path":"TwentyFiveLivePro/Models/Expanded/State.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"state:Int64-instance-method","name":"state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state","return_type":"Int64","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int64)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int64"}],"args_string":"(state : Int64)","args_html":"(state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int64"}],"visibility":"Public","body":"@state = state"}},{"html_id":"state_name:String-instance-method","name":"state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name","return_type":"String","visibility":"Public","body":"@state_name"}},{"html_id":"state_name=(state_name:String)-instance-method","name":"state_name=","abstract":false,"args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"args_string":"(state_name : String)","args_html":"(state_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name=","args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"visibility":"Public","body":"@state_name = state_name"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Feature","path":"TwentyFiveLivePro/Models/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"quantity:Int64-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity","return_type":"Int64","visibility":"Public","body":"@quantity"}},{"html_id":"quantity=(quantity:Int64)-instance-method","name":"quantity=","abstract":false,"args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"args_string":"(quantity : Int64)","args_html":"(quantity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity=","args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"visibility":"Public","body":"@quantity = quantity"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Layout","path":"TwentyFiveLivePro/Models/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default_layout:Bool-instance-method","name":"default_layout","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout","return_type":"Bool","visibility":"Public","body":"@default_layout"}},{"html_id":"default_layout=(default_layout:Bool)-instance-method","name":"default_layout=","abstract":false,"args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"args_string":"(default_layout : Bool)","args_html":"(default_layout : Bool)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout=","args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"visibility":"Public","body":"@default_layout = default_layout"}},{"html_id":"layout_capacity:Int64-instance-method","name":"layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity","return_type":"Int64","visibility":"Public","body":"@layout_capacity"}},{"html_id":"layout_capacity=(layout_capacity:Int64)-instance-method","name":"layout_capacity=","abstract":false,"args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"args_string":"(layout_capacity : Int64)","args_html":"(layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity=","args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@layout_capacity = layout_capacity"}},{"html_id":"layout_diagram_id:Int64|Nil-instance-method","name":"layout_diagram_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_diagram_id"}},{"html_id":"layout_diagram_id=(layout_diagram_id:Int64|Nil)-instance-method","name":"layout_diagram_id=","abstract":false,"args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_diagram_id : Int64 | Nil)","args_html":"(layout_diagram_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id=","args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_diagram_id = layout_diagram_id"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_photo_id:Int64|Nil-instance-method","name":"layout_photo_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_photo_id"}},{"html_id":"layout_photo_id=(layout_photo_id:Int64|Nil)-instance-method","name":"layout_photo_id=","abstract":false,"args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_photo_id : Int64 | Nil)","args_html":"(layout_photo_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id=","args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_photo_id = layout_photo_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Organization","path":"TwentyFiveLivePro/Models/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String|Nil-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title","return_type":"String | ::Nil","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String|Nil)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"args_string":"(organization_title : String | Nil)","args_html":"(organization_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64|Nil-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64|Nil)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"args_string":"(organization_type_id : Int64 | Nil)","args_html":"(organization_type_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","path":"TwentyFiveLivePro/Models/OrganizationDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Organization)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items","return_type":"Array(Organization)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Organization))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"args_string":"(items : Array(Organization))","args_html":"(items : Array(Organization))","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title","return_type":"String","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"args_string":"(organization_title : String)","args_html":"(organization_title : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_categories:Array(Expanded::Category)|Nil-instance-method","name":"organization_categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@organization_categories"}},{"html_id":"organization_categories=(organization_categories:Array(Expanded::Category)|Nil)-instance-method","name":"organization_categories=","abstract":false,"args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(organization_categories : Array(Expanded::Category) | Nil)","args_html":"(organization_categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories=","args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@organization_categories = organization_categories"}},{"html_id":"organization_types:Array(Expanded::OrganizationType)|Nil-instance-method","name":"organization_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types","return_type":"Array(Expanded::OrganizationType) | ::Nil","visibility":"Public","body":"@organization_types"}},{"html_id":"organization_types=(organization_types:Array(Expanded::OrganizationType)|Nil)-instance-method","name":"organization_types=","abstract":false,"args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"args_string":"(organization_types : Array(Expanded::OrganizationType) | Nil)","args_html":"(organization_types : Array(Expanded::OrganizationType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types=","args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"visibility":"Public","body":"@organization_types = organization_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","path":"TwentyFiveLivePro/Models/PaginatedResponse.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_item_count:Int64-instance-method","name":"current_item_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count","return_type":"Int64","visibility":"Public","body":"@current_item_count"}},{"html_id":"current_item_count=(current_item_count:Int64)-instance-method","name":"current_item_count=","abstract":false,"args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"args_string":"(current_item_count : Int64)","args_html":"(current_item_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count=","args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"visibility":"Public","body":"@current_item_count = current_item_count"}},{"html_id":"items_per_page:Int64-instance-method","name":"items_per_page","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page","return_type":"Int64","visibility":"Public","body":"@items_per_page"}},{"html_id":"items_per_page=(items_per_page:Int64)-instance-method","name":"items_per_page=","abstract":false,"args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"args_string":"(items_per_page : Int64)","args_html":"(items_per_page : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page=","args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"visibility":"Public","body":"@items_per_page = items_per_page"}},{"html_id":"page_index:Int64-instance-method","name":"page_index","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index","return_type":"Int64","visibility":"Public","body":"@page_index"}},{"html_id":"page_index=(page_index:Int64)-instance-method","name":"page_index=","abstract":false,"args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"args_string":"(page_index : Int64)","args_html":"(page_index : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index=","args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"visibility":"Public","body":"@page_index = page_index"}},{"html_id":"paginate_key:Int64-instance-method","name":"paginate_key","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key","return_type":"Int64","visibility":"Public","body":"@paginate_key"}},{"html_id":"paginate_key=(paginate_key:Int64)-instance-method","name":"paginate_key=","abstract":false,"args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"args_string":"(paginate_key : Int64)","args_html":"(paginate_key : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key=","args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"visibility":"Public","body":"@paginate_key = paginate_key"}},{"html_id":"paging_link_template:String-instance-method","name":"paging_link_template","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template","return_type":"String","visibility":"Public","body":"@paging_link_template"}},{"html_id":"paging_link_template=(paging_link_template:String)-instance-method","name":"paging_link_template=","abstract":false,"args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"args_string":"(paging_link_template : String)","args_html":"(paging_link_template : String)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template=","args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"visibility":"Public","body":"@paging_link_template = paging_link_template"}},{"html_id":"total_items:Int64-instance-method","name":"total_items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items","return_type":"Int64","visibility":"Public","body":"@total_items"}},{"html_id":"total_items=(total_items:Int64)-instance-method","name":"total_items=","abstract":false,"args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"args_string":"(total_items : Int64)","args_html":"(total_items : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items=","args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"visibility":"Public","body":"@total_items = total_items"}},{"html_id":"total_pages:Int64-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages","return_type":"Int64","visibility":"Public","body":"@total_pages"}},{"html_id":"total_pages=(total_pages:Int64)-instance-method","name":"total_pages=","abstract":false,"args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"args_string":"(total_pages : Int64)","args_html":"(total_pages : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages=","args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"visibility":"Public","body":"@total_pages = total_pages"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","path":"TwentyFiveLivePro/Models/Reservations.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"engine:String|Nil-instance-method","name":"engine","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine","return_type":"String | ::Nil","visibility":"Public","body":"@engine"}},{"html_id":"engine=(engine:String|Nil)-instance-method","name":"engine=","abstract":false,"args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"args_string":"(engine : String | Nil)","args_html":"(engine : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine=","args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"visibility":"Public","body":"@engine = engine"}},{"html_id":"reservation:Array(Data)-instance-method","name":"reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation","return_type":"Array(Data)","visibility":"Public","body":"@reservation"}},{"html_id":"reservation=(reservation:Array(Data))-instance-method","name":"reservation=","abstract":false,"args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"args_string":"(reservation : Array(Data))","args_html":"(reservation : Array(Data))","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation=","args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"visibility":"Public","body":"@reservation = reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","path":"TwentyFiveLivePro/Models/Reservations/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_end_dt:Date-instance-method","name":"event_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt","return_type":"Date","visibility":"Public","body":"@event_end_dt"}},{"html_id":"event_end_dt=(event_end_dt:Date)-instance-method","name":"event_end_dt=","abstract":false,"args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"args_string":"(event_end_dt : Date)","args_html":"(event_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt=","args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"visibility":"Public","body":"@event_end_dt = event_end_dt"}},{"html_id":"event_id:Int64-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id","return_type":"Int64","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:Int64)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"args_string":"(event_id : Int64)","args_html":"(event_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_locator:String|Nil-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator","return_type":"String | ::Nil","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String|Nil)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"args_string":"(event_locator : String | Nil)","args_html":"(event_locator : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"event_name:String|Nil-instance-method","name":"event_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_name"}},{"html_id":"event_name=(event_name:String|Nil)-instance-method","name":"event_name=","abstract":false,"args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"args_string":"(event_name : String | Nil)","args_html":"(event_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name=","args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_name = event_name"}},{"html_id":"event_start_dt:Date-instance-method","name":"event_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt","return_type":"Date","visibility":"Public","body":"@event_start_dt"}},{"html_id":"event_start_dt=(event_start_dt:Date)-instance-method","name":"event_start_dt=","abstract":false,"args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"args_string":"(event_start_dt : Date)","args_html":"(event_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt=","args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"visibility":"Public","body":"@event_start_dt = event_start_dt"}},{"html_id":"event_title:String|Nil-instance-method","name":"event_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title","return_type":"String | ::Nil","visibility":"Public","body":"@event_title"}},{"html_id":"event_title=(event_title:String|Nil)-instance-method","name":"event_title=","abstract":false,"args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"args_string":"(event_title : String | Nil)","args_html":"(event_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title=","args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_title = event_title"}},{"html_id":"event_type_class:String|Nil-instance-method","name":"event_type_class","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_class"}},{"html_id":"event_type_class=(event_type_class:String|Nil)-instance-method","name":"event_type_class=","abstract":false,"args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"args_string":"(event_type_class : String | Nil)","args_html":"(event_type_class : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class=","args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_class = event_type_class"}},{"html_id":"event_type_name:String|Nil-instance-method","name":"event_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_name"}},{"html_id":"event_type_name=(event_type_name:String|Nil)-instance-method","name":"event_type_name=","abstract":false,"args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"args_string":"(event_type_name : String | Nil)","args_html":"(event_type_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name=","args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_name = event_type_name"}},{"html_id":"expected_count:Int64-instance-method","name":"expected_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count","return_type":"Int64","visibility":"Public","body":"@expected_count"}},{"html_id":"expected_count=(expected_count:Int64)-instance-method","name":"expected_count=","abstract":false,"args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"args_string":"(expected_count : Int64)","args_html":"(expected_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count=","args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"visibility":"Public","body":"@expected_count = expected_count"}},{"html_id":"last_mod_dt:Date-instance-method","name":"last_mod_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt","return_type":"Date","visibility":"Public","body":"@last_mod_dt"}},{"html_id":"last_mod_dt=(last_mod_dt:Date)-instance-method","name":"last_mod_dt=","abstract":false,"args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"args_string":"(last_mod_dt : Date)","args_html":"(last_mod_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt=","args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"visibility":"Public","body":"@last_mod_dt = last_mod_dt"}},{"html_id":"last_mod_user:String|Nil-instance-method","name":"last_mod_user","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user","return_type":"String | ::Nil","visibility":"Public","body":"@last_mod_user"}},{"html_id":"last_mod_user=(last_mod_user:String|Nil)-instance-method","name":"last_mod_user=","abstract":false,"args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"args_string":"(last_mod_user : String | Nil)","args_html":"(last_mod_user : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user=","args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_mod_user = last_mod_user"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String|Nil-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name","return_type":"String | ::Nil","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String|Nil)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"args_string":"(organization_name : String | Nil)","args_html":"(organization_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"post_event_dt:Date-instance-method","name":"post_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt","return_type":"Date","visibility":"Public","body":"@post_event_dt"}},{"html_id":"post_event_dt=(post_event_dt:Date)-instance-method","name":"post_event_dt=","abstract":false,"args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"args_string":"(post_event_dt : Date)","args_html":"(post_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt=","args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"visibility":"Public","body":"@post_event_dt = post_event_dt"}},{"html_id":"pre_event_dt:Date-instance-method","name":"pre_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt","return_type":"Date","visibility":"Public","body":"@pre_event_dt"}},{"html_id":"pre_event_dt=(pre_event_dt:Date)-instance-method","name":"pre_event_dt=","abstract":false,"args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"args_string":"(pre_event_dt : Date)","args_html":"(pre_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt=","args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"visibility":"Public","body":"@pre_event_dt = pre_event_dt"}},{"html_id":"profile_description:String-instance-method","name":"profile_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description","return_type":"String","visibility":"Public","body":"@profile_description"}},{"html_id":"profile_description=(profile_description:String)-instance-method","name":"profile_description=","abstract":false,"args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"args_string":"(profile_description : String)","args_html":"(profile_description : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description=","args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"visibility":"Public","body":"@profile_description = profile_description"}},{"html_id":"profile_id:Int64-instance-method","name":"profile_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id","return_type":"Int64","visibility":"Public","body":"@profile_id"}},{"html_id":"profile_id=(profile_id:Int64)-instance-method","name":"profile_id=","abstract":false,"args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"args_string":"(profile_id : Int64)","args_html":"(profile_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id=","args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"visibility":"Public","body":"@profile_id = profile_id"}},{"html_id":"profile_name:String|Nil-instance-method","name":"profile_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name","return_type":"String | ::Nil","visibility":"Public","body":"@profile_name"}},{"html_id":"profile_name=(profile_name:String|Nil)-instance-method","name":"profile_name=","abstract":false,"args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"args_string":"(profile_name : String | Nil)","args_html":"(profile_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name=","args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@profile_name = profile_name"}},{"html_id":"registered_count:Int64-instance-method","name":"registered_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count","return_type":"Int64","visibility":"Public","body":"@registered_count"}},{"html_id":"registered_count=(registered_count:Int64)-instance-method","name":"registered_count=","abstract":false,"args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"args_string":"(registered_count : Int64)","args_html":"(registered_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count=","args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"visibility":"Public","body":"@registered_count = registered_count"}},{"html_id":"registration_label:String|Nil-instance-method","name":"registration_label","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label","return_type":"String | ::Nil","visibility":"Public","body":"@registration_label"}},{"html_id":"registration_label=(registration_label:String|Nil)-instance-method","name":"registration_label=","abstract":false,"args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"args_string":"(registration_label : String | Nil)","args_html":"(registration_label : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label=","args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"visibility":"Public","body":"@registration_label = registration_label"}},{"html_id":"registration_url:String-instance-method","name":"registration_url","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url","return_type":"String","visibility":"Public","body":"@registration_url"}},{"html_id":"registration_url=(registration_url:String)-instance-method","name":"registration_url=","abstract":false,"args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"args_string":"(registration_url : String)","args_html":"(registration_url : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url=","args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"visibility":"Public","body":"@registration_url = registration_url"}},{"html_id":"reservation_comment_id:String|Nil-instance-method","name":"reservation_comment_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comment_id"}},{"html_id":"reservation_comment_id=(reservation_comment_id:String|Nil)-instance-method","name":"reservation_comment_id=","abstract":false,"args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"args_string":"(reservation_comment_id : String | Nil)","args_html":"(reservation_comment_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id=","args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comment_id = reservation_comment_id"}},{"html_id":"reservation_comments:String|Nil-instance-method","name":"reservation_comments","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comments"}},{"html_id":"reservation_comments=(reservation_comments:String|Nil)-instance-method","name":"reservation_comments=","abstract":false,"args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"args_string":"(reservation_comments : String | Nil)","args_html":"(reservation_comments : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments=","args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comments = reservation_comments"}},{"html_id":"reservation_end_dt:Date-instance-method","name":"reservation_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt","return_type":"Date","visibility":"Public","body":"@reservation_end_dt"}},{"html_id":"reservation_end_dt=(reservation_end_dt:Date)-instance-method","name":"reservation_end_dt=","abstract":false,"args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"args_string":"(reservation_end_dt : Date)","args_html":"(reservation_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt=","args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_end_dt = reservation_end_dt"}},{"html_id":"reservation_id:Int64-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id","return_type":"Int64","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:Int64)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"args_string":"(reservation_id : Int64)","args_html":"(reservation_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"reservation_start_dt:Date-instance-method","name":"reservation_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt","return_type":"Date","visibility":"Public","body":"@reservation_start_dt"}},{"html_id":"reservation_start_dt=(reservation_start_dt:Date)-instance-method","name":"reservation_start_dt=","abstract":false,"args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"args_string":"(reservation_start_dt : Date)","args_html":"(reservation_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt=","args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_start_dt = reservation_start_dt"}},{"html_id":"reservation_state:Int64-instance-method","name":"reservation_state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state","return_type":"Int64","visibility":"Public","body":"@reservation_state"}},{"html_id":"reservation_state=(reservation_state:Int64)-instance-method","name":"reservation_state=","abstract":false,"args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"args_string":"(reservation_state : Int64)","args_html":"(reservation_state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state=","args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"visibility":"Public","body":"@reservation_state = reservation_state"}},{"html_id":"reservation_state_name:String|Nil-instance-method","name":"reservation_state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_state_name"}},{"html_id":"reservation_state_name=(reservation_state_name:String|Nil)-instance-method","name":"reservation_state_name=","abstract":false,"args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"args_string":"(reservation_state_name : String | Nil)","args_html":"(reservation_state_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name=","args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_state_name = reservation_state_name"}},{"html_id":"space_reservation:Space-instance-method","name":"space_reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation","return_type":"Space","visibility":"Public","body":"@space_reservation"}},{"html_id":"space_reservation=(space_reservation:Space)-instance-method","name":"space_reservation=","abstract":false,"args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"args_string":"(space_reservation : Space)","args_html":"(space_reservation : Space)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation=","args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"visibility":"Public","body":"@space_reservation = space_reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data/Space","path":"TwentyFiveLivePro/Models/Reservations/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual_count:String|Nil-instance-method","name":"actual_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count","return_type":"String | ::Nil","visibility":"Public","body":"@actual_count"}},{"html_id":"actual_count=(actual_count:String|Nil)-instance-method","name":"actual_count=","abstract":false,"args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"args_string":"(actual_count : String | Nil)","args_html":"(actual_count : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count=","args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"visibility":"Public","body":"@actual_count = actual_count"}},{"html_id":"default_layout_capacity:String|Nil-instance-method","name":"default_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity","return_type":"String | ::Nil","visibility":"Public","body":"@default_layout_capacity"}},{"html_id":"default_layout_capacity=(default_layout_capacity:String|Nil)-instance-method","name":"default_layout_capacity=","abstract":false,"args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"args_string":"(default_layout_capacity : String | Nil)","args_html":"(default_layout_capacity : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity=","args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default_layout_capacity = default_layout_capacity"}},{"html_id":"formal_name:String|Nil-instance-method","name":"formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@formal_name"}},{"html_id":"formal_name=(formal_name:String|Nil)-instance-method","name":"formal_name=","abstract":false,"args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"args_string":"(formal_name : String | Nil)","args_html":"(formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name=","args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@formal_name = formal_name"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String|Nil-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name","return_type":"String | ::Nil","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String|Nil)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"args_string":"(layout_name : String | Nil)","args_html":"(layout_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@layout_name = layout_name"}},{"html_id":"selected_layout_capacity:Int64-instance-method","name":"selected_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity","return_type":"Int64","visibility":"Public","body":"@selected_layout_capacity"}},{"html_id":"selected_layout_capacity=(selected_layout_capacity:Int64)-instance-method","name":"selected_layout_capacity=","abstract":false,"args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"args_string":"(selected_layout_capacity : Int64)","args_html":"(selected_layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity=","args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@selected_layout_capacity = selected_layout_capacity"}},{"html_id":"shared:String|Nil-instance-method","name":"shared","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared","return_type":"String | ::Nil","visibility":"Public","body":"@shared"}},{"html_id":"shared=(shared:String|Nil)-instance-method","name":"shared=","abstract":false,"args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"args_string":"(shared : String | Nil)","args_html":"(shared : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared=","args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"visibility":"Public","body":"@shared = shared"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_instruction_id:String|Nil-instance-method","name":"space_instruction_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_instruction_id"}},{"html_id":"space_instruction_id=(space_instruction_id:String|Nil)-instance-method","name":"space_instruction_id=","abstract":false,"args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"args_string":"(space_instruction_id : String | Nil)","args_html":"(space_instruction_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id=","args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instruction_id = space_instruction_id"}},{"html_id":"space_instructions:String|Nil-instance-method","name":"space_instructions","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions","return_type":"String | ::Nil","visibility":"Public","body":"@space_instructions"}},{"html_id":"space_instructions=(space_instructions:String|Nil)-instance-method","name":"space_instructions=","abstract":false,"args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"args_string":"(space_instructions : String | Nil)","args_html":"(space_instructions : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions=","args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instructions = space_instructions"}},{"html_id":"space_name:String|Nil-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String|Nil)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"args_string":"(space_name : String | Nil)","args_html":"(space_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_name = space_name"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Resource","path":"TwentyFiveLivePro/Models/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","path":"TwentyFiveLivePro/Models/ResourceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","path":"TwentyFiveLivePro/Models/ResourceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Resource)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items","return_type":"Array(Resource)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Resource))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"args_string":"(items : Array(Resource))","args_html":"(items : Array(Resource))","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Role","path":"TwentyFiveLivePro/Models/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id","return_type":"Int64","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"args_string":"(contact_id : Int64)","args_html":"(contact_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Space","path":"TwentyFiveLivePro/Models/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","path":"TwentyFiveLivePro/Models/SpaceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","path":"TwentyFiveLivePro/Models/SpaceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Space)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items","return_type":"Array(Space)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Space))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"args_string":"(items : Array(Space))","args_html":"(items : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"args_string":"(attributes : Array(Attribute) | Nil)","args_html":"(attributes : Array(Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"args_string":"(categories : Array(Category) | Nil)","args_html":"(categories : Array(Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"features:Array(Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features","return_type":"Array(Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"args_string":"(features : Array(Feature) | Nil)","args_html":"(features : Array(Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"layouts:Array(Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts","return_type":"Array(Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"args_string":"(layouts : Array(Layout) | Nil)","args_html":"(layouts : Array(Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"roles:Array(Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"args_string":"(roles : Array(Role) | Nil)","args_html":"(roles : Array(Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"features:Array(Expanded::Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features","return_type":"Array(Expanded::Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Expanded::Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"args_string":"(features : Array(Expanded::Feature) | Nil)","args_html":"(features : Array(Expanded::Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"layouts:Array(Expanded::Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts","return_type":"Array(Expanded::Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Expanded::Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"args_string":"(layouts : Array(Expanded::Layout) | Nil)","args_html":"(layouts : Array(Expanded::Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}}]}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/RoomSchedule","path":"TwentyFiveLivePro/RoomSchedule.html","kind":"class","full_name":"TwentyFiveLivePro::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L32"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local\n todays_events = fetch_events(today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y%m%d\"))\n todays_events.sort_by() do |__arg1|\n __arg1.date.duration\n end.reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.date.start_date\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by? do |__arg2|\n __arg2.date.start_date\n end\n previous_event = past_events.max_by? do |__arg3|\n __arg3.date.end_date\n end\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String,since:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"args_string":"(start_date : String, end_date : String, since : String)","args_html":"(start_date : String, end_date : String, since : String)","location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L76"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"visibility":"Public","body":"relevant_events = [] of Models::Event\nevents = Array(Models::Event).from_json((twenty_five_live_pro.list_events(1, 100, since, nil)).get.not_nil!.to_json)\nevents.each do |event|\n details = Models::EventDetail.from_json((twenty_five_live_pro.get_event_details(event.id, [\"all\"], [\"all\"])).get.not_nil!.to_json)\n if expanded_info = details.content.expanded_info\n if spaces = expanded_info.spaces\n if spaces.empty?\n next\n end\n if @space_id == spaces.first.space_id\n if event_data = details.content.data\n if event_items = event_data.items\n if event_items.empty?\n next\n end\n event_items.each do |event_item|\n if date = event_item.date\n if (date.start_date.to_rfc3339.includes?(start_date)) && (date.end_date.to_rfc3339.includes?(start_date))\n relevant_events.push(Models::Event.from_json(event_item.to_json))\n end\n end\n end\n end\n end\n end\n end\n end\nend\nrelevant_events\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/twenty_five_live_pro/room_schedule.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@space_id = setting(String, :twenty_five_live_pro_space_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/UbiPark","path":"UbiPark.html","kind":"module","full_name":"UbiPark","name":"UbiPark","abstract":false,"locations":[{"filename":"src/ubipark/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/UbiPark/API","path":"UbiPark/API.html","kind":"class","full_name":"UbiPark::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ubipark/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/UbiPark","kind":"module","full_name":"UbiPark","name":"UbiPark"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"list_products(car_park_id:Int32|Nil,tenant_id:Int32|Nil)-instance-method","name":"list_products","abstract":false,"args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","args_html":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L84"},"def":{"name":"list_products","args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif car_park_id.nil?\nelse\n query.push(\"carParkID=#{car_park_id}\")\nend\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/productList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_reasons(tenant_id:Int32|Nil)-instance-method","name":"list_reasons","abstract":false,"args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(tenant_id : Int32 | Nil)","args_html":"(tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L105"},"def":{"name":"list_reasons","args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/reasonList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_userpermits(max_records:Int32,offset:Int32,from_last_modified_time:String,car_park_id:Int32,user_id:Int32)-instance-method","name":"list_userpermits","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","location":{"filename":"src/ubipark/api.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L57"},"def":{"name":"list_userpermits","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time, \"carParkId\" => car_park_id, \"userId\" => user_id}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/userpermit/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_users(max_records:Int32,offset:Int32,from_last_modified_time:String)-instance-method","name":"list_users","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","location":{"filename":"src/ubipark/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L37"},"def":{"name":"list_users","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/user/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"make_payment(payment_id:String,promise_pay_card_name:String,user_id:String,tenant_id:Int32,product_id:String,from_date:String,to_date:String,amount:Float64)-instance-method","name":"make_payment","abstract":false,"args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"args_string":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","args_html":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","location":{"filename":"src/ubipark/api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L125"},"def":{"name":"make_payment","args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"visibility":"Public","body":"if amount < 0\n raise(\"amount can't be less than zero\")\nend\nbody = {\"paymentID\" => payment_id, \"promisePayCardName\" => promise_pay_card_name, \"userID\" => user_id, \"tenantID\" => tenant_id, \"productID\" => product_id, \"fromDate\" => from_date, \"toDate\" => to_date, \"amount\" => (\"%.2f\" % amount).to_f64}.to_json\nresponse = post(\"/api/payment/makepayment\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/ubipark/api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@tenant_id = setting(Int32, :tenant_id)\n@api_version = setting(String, :api_version)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]}]},{"html_id":"drivers/Union","path":"Union.html","kind":"struct","full_name":"Union(*T)","name":"Union","abstract":false,"superclass":{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},"ancestors":[{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"lib/http-params-serializable/src/http-params-serializable/ext/union.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/lib/http-params-serializable/src/http-params-serializable/ext/union.cr#L2"},{"filename":"src/place/router/settings.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"FIXME: submit as PR to crystal standard lib to support this neatly","summary":"

FIXME submit as PR to crystal standard lib to support this neatly

","class_methods":[{"html_id":"from_json_object_key?(key:String)-class-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/place/router/settings.cr#L171"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"{% for t in T %}\n instance = {{ t }}.from_json_object_key? key\n return instance unless instance.nil?\n {% end %}\nraise(JSON::ParseException.new(\"Couldn't parse #{self} from #{key}\", 176, 0))\n"}}]},{"html_id":"drivers/Vecos","path":"Vecos.html","kind":"module","full_name":"Vecos","name":"Vecos","abstract":false,"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L3"},{"filename":"src/vecos/releezme/booking.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L3"},{"filename":"src/vecos/releezme/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L3"},{"filename":"src/vecos/releezme/locker.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L3"},{"filename":"src/vecos/releezme/locker_bank.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L3"},{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L4"},{"filename":"src/vecos/releezme/locker_group.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L3"},{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L3"},{"filename":"src/vecos/releezme/locker_users.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L3"},{"filename":"src/vecos/releezme/paging.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L3"},{"filename":"src/vecos/releezme/section.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Vecos/Allocation","path":"Vecos/Allocation.html","kind":"struct","full_name":"Vecos::Allocation","name":"Allocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/allocation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_by_locker_action_on_release?:Bool-instance-method","name":"allocated_by_locker_action_on_release?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L33"},"def":{"name":"allocated_by_locker_action_on_release?","return_type":"Bool","visibility":"Public","body":"@allocated_by_locker_action_on_release"}},{"html_id":"allocated_for_package?:Bool-instance-method","name":"allocated_for_package?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L30"},"def":{"name":"allocated_for_package?","return_type":"Bool","visibility":"Public","body":"@allocated_for_package"}},{"html_id":"dynamically_allocated?:Bool-instance-method","name":"dynamically_allocated?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L18"},"def":{"name":"dynamically_allocated?","return_type":"Bool","visibility":"Public","body":"@dynamically_allocated"}},{"html_id":"expiring:Time-instance-method","name":"expiring","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L24"},"def":{"name":"expiring","return_type":"Time","visibility":"Public","body":"@expiring"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L12"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"self_releasable?:Bool-instance-method","name":"self_releasable?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L15"},"def":{"name":"self_releasable?","return_type":"Bool","visibility":"Public","body":"@self_releasable"}},{"html_id":"shared_to_user?:Bool-instance-method","name":"shared_to_user?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L27"},"def":{"name":"shared_to_user?","return_type":"Bool","visibility":"Public","body":"@shared_to_user"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L21"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"This is the internal user_id - not the user email etc","summary":"

This is the internal user_id - not the user email etc

","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/allocation.cr#L9"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Booking","path":"Vecos/Booking.html","kind":"struct","full_name":"Vecos::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/booking.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/booking.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L26"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L20"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L17"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L11"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/booking.cr#L23"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}}]},{"html_id":"drivers/Vecos/Location","path":"Vecos/Location.html","kind":"struct","full_name":"Vecos::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/location.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:String|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/location.cr#L14"},"def":{"name":"time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Vecos/Locker","path":"Vecos/Locker.html","kind":"struct","full_name":"Vecos::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocked:Bool-instance-method","name":"blocked","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L20"},"def":{"name":"blocked","return_type":"Bool","visibility":"Public","body":"@blocked"}},{"html_id":"door_number:Int32-instance-method","name":"door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L35"},"def":{"name":"door_number","return_type":"Int32","visibility":"Public","body":"@door_number"}},{"html_id":"door_number_prefix:String-instance-method","name":"door_number_prefix","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L32"},"def":{"name":"door_number_prefix","return_type":"String","visibility":"Public","body":"@door_number_prefix"}},{"html_id":"dynamic_allocated:Bool|Nil-instance-method","name":"dynamic_allocated","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L41"},"def":{"name":"dynamic_allocated","return_type":"Bool | ::Nil","visibility":"Public","body":"@dynamic_allocated"}},{"html_id":"expires_date_time_utc:Time|Nil-instance-method","name":"expires_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L62"},"def":{"name":"expires_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@expires_date_time_utc"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L29"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_detected:Bool-instance-method","name":"is_detected","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L26"},"def":{"name":"is_detected","return_type":"Bool","visibility":"Public","body":"@is_detected"}},{"html_id":"is_shareable:Bool|Nil-instance-method","name":"is_shareable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L56"},"def":{"name":"is_shareable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shareable"}},{"html_id":"is_shared:Bool|Nil-instance-method","name":"is_shared","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L53"},"def":{"name":"is_shared","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shared"}},{"html_id":"is_usable:Bool-instance-method","name":"is_usable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L23"},"def":{"name":"is_usable","return_type":"Bool","visibility":"Public","body":"@is_usable"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_brick_id:String-instance-method","name":"locker_brick_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L17"},"def":{"name":"locker_brick_id","return_type":"String","visibility":"Public","body":"@locker_brick_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L11"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"number_of_allocations:Int32|Nil-instance-method","name":"number_of_allocations","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L47"},"def":{"name":"number_of_allocations","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_allocations"}},{"html_id":"number_of_digits_for_door_number:Int32-instance-method","name":"number_of_digits_for_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L68"},"def":{"name":"number_of_digits_for_door_number","return_type":"Int32","visibility":"Public","body":"@number_of_digits_for_door_number"}},{"html_id":"open_time:Int32-instance-method","name":"open_time","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L44"},"def":{"name":"open_time","return_type":"Int32","visibility":"Public","body":"@open_time"}},{"html_id":"self_release_allowed:Bool|Nil-instance-method","name":"self_release_allowed","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L38"},"def":{"name":"self_release_allowed","return_type":"Bool | ::Nil","visibility":"Public","body":"@self_release_allowed"}},{"html_id":"sequence_number:Int32-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L59"},"def":{"name":"sequence_number","return_type":"Int32","visibility":"Public","body":"@sequence_number"}},{"html_id":"shared_to_user:Bool|Nil-instance-method","name":"shared_to_user","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L50"},"def":{"name":"shared_to_user","return_type":"Bool | ::Nil","visibility":"Public","body":"@shared_to_user"}},{"html_id":"start_date_time_utc:Time|Nil-instance-method","name":"start_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker.cr#L65"},"def":{"name":"start_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@start_date_time_utc"}}]},{"html_id":"drivers/Vecos/LockerBank","path":"Vecos/LockerBank.html","kind":"struct","full_name":"Vecos::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L29"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L17"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"published:Bool-instance-method","name":"published","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L20"},"def":{"name":"published","return_type":"Bool","visibility":"Public","body":"@published"}},{"html_id":"random_allocation:Bool|Nil-instance-method","name":"random_allocation","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L23"},"def":{"name":"random_allocation","return_type":"Bool | ::Nil","visibility":"Public","body":"@random_allocation"}},{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L14"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}},{"html_id":"service_mode:Bool-instance-method","name":"service_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank.cr#L26"},"def":{"name":"service_mode","return_type":"Bool","visibility":"Public","body":"@service_mode"}}]},{"html_id":"drivers/Vecos/LockerBankAndLockerGroup","path":"Vecos/LockerBankAndLockerGroup.html","kind":"struct","full_name":"Vecos::LockerBankAndLockerGroup","name":"LockerBankAndLockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"locker_bank:LockerBank-instance-method","name":"locker_bank","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L9"},"def":{"name":"locker_bank","return_type":"LockerBank","visibility":"Public","body":"@locker_bank"}},{"html_id":"locker_group:LockerGroup-instance-method","name":"locker_group","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_bank_and_locker_group.cr#L12"},"def":{"name":"locker_group","return_type":"LockerGroup","visibility":"Public","body":"@locker_group"}}]},{"html_id":"drivers/Vecos/LockerGroup","path":"Vecos/LockerGroup.html","kind":"struct","full_name":"Vecos::LockerGroup","name":"LockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"lock_mode:Int32-instance-method","name":"lock_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L14"},"def":{"name":"lock_mode","return_type":"Int32","visibility":"Public","body":"@lock_mode"}},{"html_id":"locker_booking_feature_enabled:Bool-instance-method","name":"locker_booking_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L17"},"def":{"name":"locker_booking_feature_enabled","return_type":"Bool","visibility":"Public","body":"@locker_booking_feature_enabled"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"postal_service_feature_enabled:Bool-instance-method","name":"postal_service_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group.cr#L20"},"def":{"name":"postal_service_feature_enabled","return_type":"Bool","visibility":"Public","body":"@postal_service_feature_enabled"}}]},{"html_id":"drivers/Vecos/LockerGroupStatus","path":"Vecos/LockerGroupStatus.html","kind":"struct","full_name":"Vecos::LockerGroupStatus","name":"LockerGroupStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_dynamic_lockers:Int32-instance-method","name":"allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L26"},"def":{"name":"allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_dynamic_lockers"}},{"html_id":"allocated_static_lockers:Int32-instance-method","name":"allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L38"},"def":{"name":"allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_static_lockers"}},{"html_id":"available_dynamic_lockers:Int32-instance-method","name":"available_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L23"},"def":{"name":"available_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@available_dynamic_lockers"}},{"html_id":"available_static_lockers:Int32-instance-method","name":"available_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L35"},"def":{"name":"available_static_lockers","return_type":"Int32","visibility":"Public","body":"@available_static_lockers"}},{"html_id":"blocked_allocated_dynamic_lockers:Int32-instance-method","name":"blocked_allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L29"},"def":{"name":"blocked_allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_dynamic_lockers"}},{"html_id":"blocked_allocated_static_lockers:Int32-instance-method","name":"blocked_allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L41"},"def":{"name":"blocked_allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_static_lockers"}},{"html_id":"blocked_unallocated_dynamic_lockers:Int32-instance-method","name":"blocked_unallocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L32"},"def":{"name":"blocked_unallocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_dynamic_lockers"}},{"html_id":"blocked_unallocated_static_lockers:Int32-instance-method","name":"blocked_unallocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L44"},"def":{"name":"blocked_unallocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_static_lockers"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L8"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_group_name:String-instance-method","name":"locker_group_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L11"},"def":{"name":"locker_group_name","return_type":"String","visibility":"Public","body":"@locker_group_name"}},{"html_id":"public_lockers:Int32-instance-method","name":"public_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L20"},"def":{"name":"public_lockers","return_type":"Int32","visibility":"Public","body":"@public_lockers"}},{"html_id":"unusable_lockers:Int32-instance-method","name":"unusable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L17"},"def":{"name":"unusable_lockers","return_type":"Int32","visibility":"Public","body":"@unusable_lockers"}},{"html_id":"usable_lockers:Int32-instance-method","name":"usable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_group_status.cr#L14"},"def":{"name":"usable_lockers","return_type":"Int32","visibility":"Public","body":"@usable_lockers"}}]},{"html_id":"drivers/Vecos/LockerUsers","path":"Vecos/LockerUsers.html","kind":"struct","full_name":"Vecos::LockerUsers","name":"LockerUsers","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_users.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L17"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L11"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L14"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/locker_users.cr#L20"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Paging","path":"Vecos/Paging.html","kind":"struct","full_name":"Vecos::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/paging.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/paging.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"first_item_on_page:Int32-instance-method","name":"first_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L8"},"def":{"name":"first_item_on_page","return_type":"Int32","visibility":"Public","body":"@first_item_on_page"}},{"html_id":"has_next_page:Bool-instance-method","name":"has_next_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L11"},"def":{"name":"has_next_page","return_type":"Bool","visibility":"Public","body":"@has_next_page"}},{"html_id":"has_previous_page:Bool-instance-method","name":"has_previous_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L14"},"def":{"name":"has_previous_page","return_type":"Bool","visibility":"Public","body":"@has_previous_page"}},{"html_id":"is_first_page:Bool-instance-method","name":"is_first_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L17"},"def":{"name":"is_first_page","return_type":"Bool","visibility":"Public","body":"@is_first_page"}},{"html_id":"is_last_page:Bool-instance-method","name":"is_last_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L20"},"def":{"name":"is_last_page","return_type":"Bool","visibility":"Public","body":"@is_last_page"}},{"html_id":"last_item_on_page:Int32-instance-method","name":"last_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L23"},"def":{"name":"last_item_on_page","return_type":"Int32","visibility":"Public","body":"@last_item_on_page"}},{"html_id":"page_count:Int32-instance-method","name":"page_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L26"},"def":{"name":"page_count","return_type":"Int32","visibility":"Public","body":"@page_count"}},{"html_id":"page_number:Int32-instance-method","name":"page_number","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L29"},"def":{"name":"page_number","return_type":"Int32","visibility":"Public","body":"@page_number"}},{"html_id":"page_size:Int32-instance-method","name":"page_size","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L32"},"def":{"name":"page_size","return_type":"Int32","visibility":"Public","body":"@page_size"}},{"html_id":"total_item_count:Int32-instance-method","name":"total_item_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/paging.cr#L35"},"def":{"name":"total_item_count","return_type":"Int32","visibility":"Public","body":"@total_item_count"}}]},{"html_id":"drivers/Vecos/Releezme","path":"Vecos/Releezme.html","kind":"class","full_name":"Vecos::Releezme","name":"Releezme","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bank(bank_id:String)-instance-method","name":"bank","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L170"},"def":{"name":"bank","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"LockerBank.from_json(fetch_item(\"/api/lockerbanks/#{bank_id}\"))"}},{"html_id":"bank_group_lockers_available(bank_id:String,group_id:String)-instance-method","name":"bank_group_lockers_available","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String)","args_html":"(bank_id : String, group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L183"},"def":{"name":"bank_group_lockers_available","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/#{group_id}/availablelockers?pageSize=200\")"}},{"html_id":"bank_groups(bank_id:String)-instance-method","name":"bank_groups","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L174"},"def":{"name":"bank_groups","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockergroups?pageSize=200\")"}},{"html_id":"bank_locker_allocations(bank_id:String)-instance-method","name":"bank_locker_allocations","doc":"NOTE:: Only accessible to System Control Clients","summary":"

NOTE : Only accessible to System Control Clients

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L188"},"def":{"name":"bank_locker_allocations","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/allocations?pageSize=200\")"}},{"html_id":"bank_lockers(bank_id:String)-instance-method","name":"bank_lockers","doc":"returns all the lockers in the bank without paging (but paging json is included)","summary":"

returns all the lockers in the bank without paging (but paging json is included)

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L179"},"def":{"name":"bank_lockers","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockers?pageSize=200\")"}},{"html_id":"banks-instance-method","name":"banks","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L166"},"def":{"name":"banks","visibility":"Public","body":"fetch_pages(\"/api/lockerbanks?pageSize=200\")"}},{"html_id":"bearer_token:String-instance-method","name":"bearer_token","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L106"},"def":{"name":"bearer_token","visibility":"Public","body":"@bearer_token"}},{"html_id":"book_locker(starting:Int64,ending:Int64,user_id:String,locker_id:String|Nil=nil,group_id:String|Nil=nil,bank_id:String|Nil=nil,timezone:String=\"UTC\")-instance-method","name":"book_locker","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"args_string":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = \"UTC\")","args_html":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = "UTC")","location":{"filename":"src/vecos/releezme.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L244"},"def":{"name":"book_locker","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"tz = Time::Location.load(timezone)\nresponse = post(\"/api/bookings\", body: {\"StartDateTimeUtc\" => ((Time.unix(starting)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"EndDateTimeUtc\" => ((Time.unix(ending)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"LockerGroupId\" => group_id, \"LockerBankId\" => bank_id, \"LockerId\" => locker_id, \"ExternalUserId\" => user_id}.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"bookings(user_id:String)-instance-method","name":"bookings","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L212"},"def":{"name":"bookings","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings?#{params}\")\n"}},{"html_id":"bookings_availability(user_id:String,starting:Int64,ending:Int64,section_id:String|Nil=nil,location_id:String|Nil=nil,bank_id:String|Nil=nil,group_id:String|Nil=nil,locker_id:String|Nil=nil)-instance-method","name":"bookings_availability","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","args_html":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L220"},"def":{"name":"bookings_availability","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"startDateTimeUtc\", (Time.unix(starting)).to_rfc3339)\n form.add(\"endDateTimeUtc\", (Time.unix(ending)).to_rfc3339)\n if section_id.presence\n form.add(\"sectionId\", section_id.as(String))\n end\n if location_id.presence\n form.add(\"locationId\", location_id.as(String))\n end\n if bank_id.presence\n form.add(\"lockerBankId\", bank_id.as(String))\n end\n if bank_id.presence && group_id.presence\n form.add(\"lockerBankId\", group_id.as(String))\n end\n if locker_id.presence\n form.add(\"lockerId\", locker_id.as(String))\n end\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings/availability?#{params}\")\n"}},{"html_id":"can_allocate_locker?(user_id:String):String-instance-method","name":"can_allocate_locker?","doc":"check if a user can be allocated a new locker","summary":"

check if a user can be allocated a new locker

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L274"},"def":{"name":"can_allocate_locker?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = get(\"/api/lockers/canallocate?#{params}\")\nresponse.body\n"}},{"html_id":"can_share_locker_with?(locker_id:String,owner_id:String,search:String)-instance-method","name":"can_share_locker_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, search : String)","args_html":"(locker_id : String, owner_id : String, search : String)","location":{"filename":"src/vecos/releezme.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L339"},"def":{"name":"can_share_locker_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"searchString\", search)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"companies-instance-method","name":"companies","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L114"},"def":{"name":"companies","visibility":"Public","body":"(JSON.parse(fetch_item(\"/api/companies\")))[\"Companies\"]"}},{"html_id":"fetch_item(location:String):String-instance-method","name":"fetch_item","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L97"},"def":{"name":"fetch_item","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get(location)\nif response.status_code == 401\n @expires = 1.minute.ago\nend\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nresponse.body\n"}},{"html_id":"fetch_pages(location:String):Array(JSON::Any)-instance-method","name":"fetch_pages","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : Array(JSON::Any)","args_html":"(location : String) : Array(JSON::Any)","location":{"filename":"src/vecos/releezme.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L71"},"def":{"name":"fetch_pages","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"Array(JSON::Any)","visibility":"Public","body":"append = location.includes?('?') ? '&' : '?'\nnext_page = \"#{location}#{append}pageNumber=#{1}\"\ndata = [] of JSON::Any\nloop do\n response = get(next_page)\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = (JSON.parse(response.body)).as_h\n pages = if has_paging = payload.delete(\"Paging\")\n Paging.from_json(has_paging.to_json)\n end\n data.concat(payload[payload.keys.first].as_a)\n if pages && pages.has_next_page\n else\n break\n end\n next_page = \"#{location}#{append}pageNumber=#{pages.page_number + 1}\"\nend\ndata\n"}},{"html_id":"group(group_id:String)-instance-method","name":"group","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L200"},"def":{"name":"group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"Array(LockerGroup).from_json(fetch_item(\"/api/lockergroups/#{group_id}\"))"}},{"html_id":"group_locker_banks(group_id:String)-instance-method","name":"group_locker_banks","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L204"},"def":{"name":"group_locker_banks","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockergroups/#{group_id}/lockerbanks?pageSize=200\")"}},{"html_id":"groups-instance-method","name":"groups","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L196"},"def":{"name":"groups","visibility":"Public","body":"fetch_pages(\"/api/lockergroups?pageSize=200\")"}},{"html_id":"location(location_id:String)-instance-method","name":"location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L127"},"def":{"name":"location","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"Location.from_json(fetch_item(\"/api/locations/#{location_id}\"))"}},{"html_id":"location_sections(location_id:String)-instance-method","name":"location_sections","doc":"typically these are floors in the building","summary":"

typically these are floors in the building

","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L132"},"def":{"name":"location_sections","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/locations/#{location_id}/sections?pageSize=200\")"}},{"html_id":"locations-instance-method","name":"locations","doc":"typically these are buildings","summary":"

typically these are buildings

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L123"},"def":{"name":"locations","visibility":"Public","body":"fetch_pages(\"/api/locations?pageSize=200\")"}},{"html_id":"locker_allocate(locker_id:String,user_id:String)-instance-method","name":"locker_allocate","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, user_id : String)","args_html":"(locker_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L282"},"def":{"name":"locker_allocate","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_allocate_random(bank_id:String,group_id:String,user_id:String)-instance-method","name":"locker_allocate_random","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String, user_id : String)","args_html":"(bank_id : String, group_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L291"},"def":{"name":"locker_allocate_random","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"lockerBankId\", bank_id)\n form.add(\"lockerGroupId\", group_id)\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_release(locker_id:String,user_id:String|Nil=nil):Nil-instance-method","name":"locker_release","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, user_id : String | Nil = nil) : Nil","args_html":"(locker_id : String, user_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L302"},"def":{"name":"locker_release","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"params = URI::Params.build do |form|\n if user_id.presence\n form.add(\"externalUserId\", user_id)\n end\nend\nresponse = post(\"/api/lockers/#{locker_id}/release?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"locker_shared_with?(locker_id:String,owner_id:String)-instance-method","name":"locker_shared_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String)","args_html":"(locker_id : String, owner_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L347"},"def":{"name":"locker_shared_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"locker_unlock(locker_id:String,pin_code:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, pin_code : String | Nil = nil)","args_html":"(locker_id : String, pin_code : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L310"},"def":{"name":"locker_unlock","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"pin_route = pin_code ? nil : \"/withoutpincode\"\nresponse = post(\"/api/lockers/#{locker_id}/pincode/unlock#{pin_route}\", body: pin_code)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String)-instance-method","name":"lockers_allocated_to","doc":"the lockers that are currently allocated to the specified user\nthe user ID is typically email - defined by the client","summary":"

the lockers that are currently allocated to the specified user the user ID is typically email - defined by the client

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L265"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/lockers/allocated?#{params}\")\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"client_id = setting(String, :client_id)\nclient_secret = setting(String, :client_secret)\nusername = setting(String, :username)\npassword = setting(String, :password)\nreleezme_authentication_domain = setting(String, :releezme_authentication_domain)\ntransport.before_request do |req|\n access_token = get_access_token(client_id, client_secret, username, password, releezme_authentication_domain)\n req.headers[\"Authorization\"] = access_token\n req.headers[\"Content-Type\"] = \"application/json\"\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"section(section_id:String)-instance-method","name":"section","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L145"},"def":{"name":"section","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"Section.from_json(fetch_item(\"/api/locations/#{section_id}\"))"}},{"html_id":"section_banks_allocatable(section_id:String,user_id:String)-instance-method","name":"section_banks_allocatable","doc":"banks and groups in the banks that the user can allocate to themselves","summary":"

banks and groups in the banks that the user can allocate to themselves

","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(section_id : String, user_id : String)","args_html":"(section_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L154"},"def":{"name":"section_banks_allocatable","args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/sections/#{section_id}/lockerbanklockergroups/allocatable?#{params}\")\n"}},{"html_id":"section_locker_banks(section_id:String)-instance-method","name":"section_locker_banks","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L149"},"def":{"name":"section_locker_banks","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/sections/#{section_id}/lockerbanks?pageSize=200\")"}},{"html_id":"sections-instance-method","name":"sections","doc":"all floors from all buildings in one request","summary":"

all floors from all buildings in one request

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L141"},"def":{"name":"sections","visibility":"Public","body":"fetch_pages(\"/api/sections?pageSize=200\")"}},{"html_id":"share_locker_with(locker_id:String,owner_id:String,user_id:String):Bool-instance-method","name":"share_locker_with","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, user_id : String) : Bool","args_html":"(locker_id : String, owner_id : String, user_id : String) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L320"},"def":{"name":"share_locker_with","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"sharedUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/share?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"unshare_locker(locker_id:String,owner_id:String,shared_with_internal_id:String|Nil=nil):Bool-instance-method","name":"unshare_locker","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","args_html":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme.cr#L330"},"def":{"name":"unshare_locker","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/unshare/#{shared_with_internal_id}?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations","path":"Vecos/ReleezmeLocations.html","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L68"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L271"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of lockers on this level","summary":"

array of lockers on this level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L277"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for lockers in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nreleexme_section_id = @floor_mappings[zone_id]\nbanks = Array(Vecos::LockerBank).from_json((releezme.section_locker_banks(releexme_section_id)).get.to_json)\nif @door_number_lookup && @last_mapped < 3.hour.ago\n @last_mapped = Time.utc\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n self[locker.full_door_number.downcase] = locker.id\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nelse\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L60"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L258"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"releezme incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/vecos/releezme_locations.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L132"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"user_id = get_user_key(user_id)\nlocker_id = locker_id ? lookup_id(locker_id.to_s) : nil\nif expires_at\n timezone = system.timezone || \"UTC\"\n booking = if locker_id\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, locker_id, timezone: timezone)).get\n else\n group_id = get_group_id(user_id, bank_id)\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, group_id: group_id, bank_id: bank_id, timezone: timezone)).get\n end\n PlaceLocker.new(Vecos::Booking.from_json(booking.to_json))\nelse\n if locker_id\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate(locker_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n else\n group_id = get_group_id(user_id, bank_id)\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate_random(bank_id, group_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n end\nend\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L169"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\nif owner_id\n owner_id = get_user_key(owner_id)\nend\n(releezme.locker_release(locker_id, owner_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L190"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.share_locker_with(locker_id, get_user_key(owner_id), get_user_key(share_with))).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L225"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nshared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\nshared_with.map do |user|\n user.email || user.user_id\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L237"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.locker_unlock(locker_id, pin_code)).get\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L201"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nif shared_with_id\n shared_with_external_id = get_user_key(shared_with_id)\n shared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\n shared_user = shared_with.find do |user|\n user.user_id == shared_with_external_id\n end\n if shared_user\n else\n return\n end\n shared_with_id = shared_user.id\nend\n(releezme.unshare_locker(locker_id, owner_id, shared_with_id)).get\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L183"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"user_id = get_user_key(user_id)\nlockers = Array(Vecos::Locker).from_json((releezme.lockers_allocated_to(user_id)).get.to_json)\nlockers.map do |locker|\n PlaceLocker.new(locker, true)\nend\n"}},{"html_id":"lookup_id(locker_id:String):String-instance-method","name":"lookup_id","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"args_string":"(locker_id : String) : String","args_html":"(locker_id : String) : String","location":{"filename":"src/vecos/releezme_locations.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L70"},"def":{"name":"lookup_id","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if @door_number_lookup\n (status?(String, locker_id.downcase)) || locker_id\nelse\n locker_id\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L265"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@door_number_lookup = (setting?(Bool, :door_number_lookup)) || false\n@user_id_key = (setting?(String, :user_id_key)) || \"email\"\n@floor_mappings = (setting(Hash(String, Mapping), :vecos_floor_mappings)).transform_values(&.section_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\nif @door_number_lookup\n schedule.clear\n schedule.in((rand(10)).seconds) do\n @floor_mappings.each_key do |zone_id|\n device_locations(zone_id)\n end\n end\nend\n"}}],"types":[{"html_id":"drivers/Vecos/ReleezmeLocations/Mapping","path":"Vecos/ReleezmeLocations/Mapping.html","kind":"struct","full_name":"Vecos::ReleezmeLocations::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L56"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations/PlaceLocker","path":"Vecos/ReleezmeLocations/PlaceLocker.html","kind":"alias","full_name":"Vecos::ReleezmeLocations::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"}}]},{"html_id":"drivers/Vecos/Section","path":"Vecos/Section.html","kind":"struct","full_name":"Vecos::Section","name":"Section","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/section.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/section.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L14"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vecos/releezme/section.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Vergesense","path":"Vergesense.html","kind":"module","full_name":"Vergesense","name":"Vergesense","abstract":false,"locations":[{"filename":"src/vergesense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Vergesense Data Models","summary":"

Vergesense Data Models

","types":[{"html_id":"drivers/Vergesense/Building","path":"Vergesense/Building.html","kind":"struct","full_name":"Vergesense::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L10"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"address=(address:String|Nil)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"args_string":"(address : String | Nil)","args_html":"(address : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L10"},"def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@address = address"}},{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L8"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Vergesense/BuildingWithFloors","path":"Vergesense/BuildingWithFloors.html","kind":"struct","full_name":"Vergesense::BuildingWithFloors","name":"BuildingWithFloors","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L17"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"floors=(floors:Array(Floor))-instance-method","name":"floors=","abstract":false,"args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"args_string":"(floors : Array(Floor))","args_html":"(floors : Array(Floor))","location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L17"},"def":{"name":"floors=","args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"visibility":"Public","body":"@floors = floors"}}]},{"html_id":"drivers/Vergesense/Environment","path":"Vergesense/Environment.html","kind":"struct","full_name":"Vergesense::Environment","name":"Environment","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"humidity:Sensor-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L43"},"def":{"name":"humidity","return_type":"Sensor","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:Sensor)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"args_string":"(humidity : Sensor)","args_html":"(humidity : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L43"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"iaq:Sensor|Nil-instance-method","name":"iaq","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L44"},"def":{"name":"iaq","return_type":"Sensor | ::Nil","visibility":"Public","body":"@iaq"}},{"html_id":"iaq=(iaq:Sensor|Nil)-instance-method","name":"iaq=","abstract":false,"args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"args_string":"(iaq : Sensor | Nil)","args_html":"(iaq : Sensor | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L44"},"def":{"name":"iaq=","args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"visibility":"Public","body":"@iaq = iaq"}},{"html_id":"sensor:String-instance-method","name":"sensor","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L40"},"def":{"name":"sensor","return_type":"String","visibility":"Public","body":"@sensor"}},{"html_id":"sensor=(sensor:String)-instance-method","name":"sensor=","abstract":false,"args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"args_string":"(sensor : String)","args_html":"(sensor : String)","location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L40"},"def":{"name":"sensor=","args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"visibility":"Public","body":"@sensor = sensor"}},{"html_id":"temperature:Sensor-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L45"},"def":{"name":"temperature","return_type":"Sensor","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Sensor)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"args_string":"(temperature : Sensor)","args_html":"(temperature : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L45"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L41"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L41"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/Floor","path":"Vergesense/Floor.html","kind":"struct","full_name":"Vergesense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L25"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L25"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"floor_ref_id:String-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id","return_type":"String","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"args_string":"(floor_ref_id : String)","args_html":"(floor_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L27"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L27"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/Vergesense/Geometry","path":"Vergesense/Geometry.html","kind":"struct","full_name":"Vergesense::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"coordinates:Array(Array(Array(Float64)))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L95"},"def":{"name":"coordinates","return_type":"Array(Array(Array(Float64)))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Array(Array(Float64))))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"args_string":"(coordinates : Array(Array(Array(Float64))))","args_html":"(coordinates : Array(Array(Array(Float64))))","location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L95"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L94"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L94"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Vergesense/LocationService","path":"Vergesense/LocationService.html","kind":"class","full_name":"Vergesense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L89"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L94"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfloor = @occupancy_mappings[zone_id]?\nif floor\nelse\n return [] of Nil\nend\ndesk_types = @desk_space_types\nfloor.spaces.compact_map do |space|\n loc_type = space.space_type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n people_count = space.people.try(&.count)\n if @return_empty_spaces || (people_count && people_count > 0)\n if env = space.environment\n humidity = env.humidity.value\n temperature = env.temperature.value\n iaq = env.iaq.try(&.value)\n end\n {location: loc_type, at_location: people_count || 0, map_id: space.name, level: zone_id, building: @building_mappings[zone_id]?, capacity: space.capacity, vergesense_space_id: space.ref_id, vergesense_space_type: space.space_type, area_humidity: humidity, area_temperature: temperature, area_air_quality: iaq, signs_of_life: space.signs_of_life}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L79"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vergesense/location_service.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L84"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/location_service.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@notify_updates = (setting?(Bool, :notify_updates)) || false\n@desk_space_types = (setting?(Array(String), :desk_space_types)) || [\"desk\"]\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.values.map do |z|\n level = z[:level_id]\n @building_mappings[level] = z[:building_id]\n level\nend\nbind_floor_status\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L137"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id\n else\n return nil\n end\n zone_id, _, space_id = mac.rpartition('-')\n if zone_id.empty? || space_id.empty?\n return nil\n end\n floor = @occupancy_mappings[zone_id]?\n if floor\n else\n return nil\n end\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return nil\n end\n case id\n when \"people\"\n build_sensor_details(zone_id, floor, floor_space, :people_count)\n when \"presence\"\n build_sensor_details(zone_id, floor, floor_space, :presence)\n when \"humidity\"\n build_sensor_details(zone_id, floor, floor_space, :humidity)\n when \"temp\"\n build_sensor_details(zone_id, floor, floor_space, :temperature)\n when \"air\"\n build_sensor_details(zone_id, floor, floor_space, :air_quality)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/vergesense/location_service.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/location_service.cr#L171"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n level_zone, _, space_id = mac.rpartition('-')\n if (zone_id && (zone_id != level_zone)) || space_id.empty?\n return NO_MATCH\n end\n zone_id = level_zone\nend\nif zone_id && !(@occupancy_mappings.has_key?(zone_id))\n return NO_MATCH\nend\nif space_id\n floor = @occupancy_mappings[zone_id]\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return NO_MATCH\n end\n spaces = [{zone_id, floor, floor_space}]\nelse\n if zone_id\n floor = @occupancy_mappings[zone_id]\n spaces = floor.spaces.map do |space|\n {zone_id, floor, space}\n end\n else\n spaces = @occupancy_mappings.flat_map do |__temp_1103|\n zone, floor = __temp_1103\n floor.spaces.map do |space|\n {zone, floor, space}\n end\n end\n end\nend\nif sensor_type\n spaces.compact_map do |__temp_1104|\n zone, floor, space = __temp_1104\n build_sensor_details(zone.not_nil!, floor, space, sensor_type)\n end\nelse\n spaces.flat_map do |__temp_1105|\n zone, floor, space = __temp_1105\n space_sensors(zone.not_nil!, floor, space)\n end.compact\nend\n"}}]},{"html_id":"drivers/Vergesense/MqttExport","path":"Vergesense/MqttExport.html","kind":"class","full_name":"Vergesense::MqttExport","name":"MqttExport","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/mqtt_export.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L42"},"def":{"name":"inspect_state","visibility":"Public","body":"{vergesense_subscriptions: @subscriptions, people_counts: @previous_counts}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/mqtt_export.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@mqtt_root_topic = (setting(String, :mqtt_root_topic)) || \"/t/root-topic\"\n@floors_to_export = (setting(Array(String), :floors_to_export)) || ([] of String)\n@debug = (setting(Bool, :debug)) || false\nsubscriptions.clear\n@subscriptions = 0\n@floors_to_export.each do |floor|\n system.subscribe(:Vergesense_1, floor) do |_subscription, vergesense_floor_json|\n vergesense_to_mqtt(Floor.from_json(vergesense_floor_json))\n end\n @subscriptions = @subscriptions + 1\nend\n"}}]},{"html_id":"drivers/Vergesense/People","path":"Vergesense/People.html","kind":"struct","full_name":"Vergesense::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L98"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L99"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:UInt32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L101"},"def":{"name":"count","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"count=(count:UInt32|Nil)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"args_string":"(count : UInt32 | Nil)","args_html":"(count : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L101"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@count = count"}}]},{"html_id":"drivers/Vergesense/Report","path":"Vergesense/Report.html","kind":"struct","full_name":"Vergesense::Report","name":"Report","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person_count:Int32|Nil-instance-method","name":"person_count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L52"},"def":{"name":"person_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@person_count"}},{"html_id":"person_count=(person_count:Int32|Nil)-instance-method","name":"person_count=","abstract":false,"args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"args_string":"(person_count : Int32 | Nil)","args_html":"(person_count : Int32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L52"},"def":{"name":"person_count=","args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@person_count = person_count"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L51"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L51"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/RoomSensor","path":"Vergesense/RoomSensor.html","kind":"class","full_name":"Vergesense::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @floor_name).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#floor_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_name?:String|Nil-instance-method","name":"floor_name?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name?","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsystem.subscribe(:Vergesense, 1, \"init_complete\") do |_sub, value|\n if value == \"true\"\n subscribe_to_sensor\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/vergesense/room_sensor.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L96"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"verg-#{@space_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nwhen \"humidity\"\n build_sensor_details(:humidity)\nwhen \"temperature\"\n build_sensor_details(:temperature)\nwhen \"air_quality\"\n build_sensor_details(:air_quality)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/vergesense/room_sensor.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L77"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"verg-#{@space_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"space:Space-instance-method","name":"space","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:Space|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space?","return_type":"Space | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/Vergesense/Sensor","path":"Vergesense/Sensor.html","kind":"struct","full_name":"Vergesense::Sensor","name":"Sensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"units:String-instance-method","name":"units","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L33"},"def":{"name":"units","return_type":"String","visibility":"Public","body":"@units"}},{"html_id":"units=(units:String)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"String"}],"args_string":"(units : String)","args_html":"(units : String)","location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L33"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"String"}],"visibility":"Public","body":"@units = units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L34"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Float64)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64"}],"args_string":"(value : Float64)","args_html":"(value : Float64)","location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L34"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Float64"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Vergesense/Space","path":"Vergesense/Space.html","kind":"class","full_name":"Vergesense::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String|Nil-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String|Nil)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"args_string":"(building_ref_id : String | Nil)","args_html":"(building_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L64"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L64"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"environment:Environment|Nil-instance-method","name":"environment","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L69"},"def":{"name":"environment","return_type":"Environment | ::Nil","visibility":"Public","body":"@environment"}},{"html_id":"environment=(environment:Environment|Nil)-instance-method","name":"environment=","abstract":false,"args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"args_string":"(environment : Environment | Nil)","args_html":"(environment : Environment | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L69"},"def":{"name":"environment=","args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"visibility":"Public","body":"@environment = environment"}},{"html_id":"floor_key-instance-method","name":"floor_key","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L82"},"def":{"name":"floor_key","visibility":"Public","body":"\"#{building_ref_id}-#{floor_ref_id}\".strip"}},{"html_id":"floor_ref_id:String|Nil-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String|Nil)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"args_string":"(floor_ref_id : String | Nil)","args_html":"(floor_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"last_reports:Array(Report)|Nil-instance-method","name":"last_reports","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L68"},"def":{"name":"last_reports","return_type":"Array(Report) | ::Nil","visibility":"Public","body":"@last_reports"}},{"html_id":"last_reports=(last_reports:Array(Report)|Nil)-instance-method","name":"last_reports=","abstract":false,"args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"args_string":"(last_reports : Array(Report) | Nil)","args_html":"(last_reports : Array(Report) | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L68"},"def":{"name":"last_reports=","args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"visibility":"Public","body":"@last_reports = last_reports"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"motion_detected:Bool|Nil-instance-method","name":"motion_detected","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected","return_type":"Bool | ::Nil","visibility":"Public","body":"@motion_detected"}},{"html_id":"motion_detected=(motion_detected:Bool|Nil)-instance-method","name":"motion_detected=","abstract":false,"args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"args_string":"(motion_detected : Bool | Nil)","args_html":"(motion_detected : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected=","args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@motion_detected = motion_detected"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L63"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L63"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"people:People|Nil-instance-method","name":"people","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L67"},"def":{"name":"people","return_type":"People | ::Nil","visibility":"Public","body":"@people"}},{"html_id":"people=(people:People|Nil)-instance-method","name":"people=","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"args_string":"(people : People | Nil)","args_html":"(people : People | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L67"},"def":{"name":"people=","args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"visibility":"Public","body":"@people = people"}},{"html_id":"ref_id-instance-method","name":"ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L86"},"def":{"name":"ref_id","visibility":"Public","body":"(self.space_ref_id || self.floor_ref_id) || self.space_type"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"signs_of_life?:Bool|Nil-instance-method","name":"signs_of_life?","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L73"},"def":{"name":"signs_of_life?","return_type":"Bool | ::Nil","visibility":"Public","body":"if report = last_reports.try(&.first?)\n if report.timestamp >= 2.hours.ago\n report.signs_of_life\n end\nend"}},{"html_id":"space_ref_id:String|Nil-instance-method","name":"space_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_ref_id"}},{"html_id":"space_ref_id=(space_ref_id:String|Nil)-instance-method","name":"space_ref_id=","abstract":false,"args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"args_string":"(space_ref_id : String | Nil)","args_html":"(space_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id=","args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_ref_id = space_ref_id"}},{"html_id":"space_type:String|Nil-instance-method","name":"space_type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L62"},"def":{"name":"space_type","return_type":"String | ::Nil","visibility":"Public","body":"@space_type"}},{"html_id":"space_type=(space_type:String|Nil)-instance-method","name":"space_type=","abstract":false,"args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"args_string":"(space_type : String | Nil)","args_html":"(space_type : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L62"},"def":{"name":"space_type=","args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_type = space_type"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L70"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time|Nil)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"args_string":"(timestamp : Time | Nil)","args_html":"(timestamp : Time | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/models.cr#L70"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/VergesenseAPI","path":"Vergesense/VergesenseAPI.html","kind":"class","full_name":"Vergesense::VergesenseAPI","name":"VergesenseAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/vergesense_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_key(space_id:String)-instance-method","name":"floor_key","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L85"},"def":{"name":"floor_key","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@spaces[space_id]"}},{"html_id":"init_sync-instance-method","name":"init_sync","doc":"Performs initial sync by loading buildings / floors / spaces","summary":"

Performs initial sync by loading buildings / floors / spaces

","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L45"},"def":{"name":"init_sync","visibility":"Public","body":"begin\n @sync_lock.synchronize do\n init_buildings\n if @buildings\n init_floors\n init_spaces\n init_floors_status\n self[\"init_complete\"] = true\n end\n end\nrescue e\n logger.error do\n \"failed to perform vergesense API sync\\n#{e.inspect_with_backtrace}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.in(200.milliseconds) do\n init_sync\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :vergesense_api_key)\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@poll_every = (setting?(Int32, :poll_every)).try(&.seconds)\nschedule.clear\nif poll_time = @poll_every\n schedule.every(poll_time) do\n init_sync\n end\nend\n"}},{"html_id":"space_report_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"space_report_api","doc":"Webhook endpoint for space_report API, expects version 2","summary":"

Webhook endpoint for space_report API, expects version 2

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/vergesense/vergesense_api.cr#L65"},"def":{"name":"space_report_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"space_report API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nbegin\n remote_space = Space.from_json(body)\n logger.debug do\n \"parsed vergesense payload\"\n end\n update_floor_space(remote_space)\n update_single_floor_status(remote_space.floor_key, @floors[remote_space.floor_key]?)\nrescue e\n logger.error do\n \"failed to parse vergesense space_report API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]}]},{"html_id":"drivers/Whispir","path":"Whispir.html","kind":"module","full_name":"Whispir","name":"Whispir","abstract":false,"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Whispir/Messages","path":"Whispir/Messages.html","kind":"class","full_name":"Whispir::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/Whispir","kind":"module","full_name":"Whispir","name":"Whispir"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/whispir/messages.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/whispir/messages.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/whispir/messages.cr#L29"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponse = post(\"/messages?apikey=#{@api_key}\", body: {to: phone_numbers.join(\";\"), subject: \"PlaceOS Notification\", body: message}.to_json, headers: {\"Content-Type\" => \"application/vnd.whispir.message-v1+json\", \"Accept\" => \"application/vnd.whispir.message-v1+json\", \"x-api-key\" => @api_key})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nlocation = response.headers[\"Location\"]?\nlogger.debug do\n \"message sent: #{location}\"\nend\nlocation\n"}}]}]},{"html_id":"drivers/Wiegand","path":"Wiegand.html","kind":"module","full_name":"Wiegand","name":"Wiegand","abstract":false,"locations":[{"filename":"src/wiegand/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Wiegand/Base","path":"Wiegand/Base.html","kind":"class","full_name":"Wiegand::Base","name":"Base","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Wiegand/Wiegand26","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26"},{"html_id":"drivers/Wiegand/Wiegand35","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"doc":"Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb","summary":"

Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb

","class_methods":[{"html_id":"count_1s(int:UInt32|UInt64)-class-method","name":"count_1s","abstract":false,"args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"args_string":"(int : UInt32 | UInt64)","args_html":"(int : UInt32 | UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L14"},"def":{"name":"count_1s","args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"visibility":"Public","body":"((int.to_s(2)).gsub(\"0\", \"\")).size"}}],"constructors":[{"html_id":"new(wiegand:UInt64,facility:UInt32,card_number:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","args_html":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L8"},"def":{"name":"new","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(wiegand, facility, card_number)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"card_number:UInt32-instance-method","name":"card_number","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L6"},"def":{"name":"card_number","return_type":"UInt32","visibility":"Public","body":"@card_number"}},{"html_id":"card_number=(card_number:UInt32)-instance-method","name":"card_number=","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(card_number : UInt32)","args_html":"(card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L6"},"def":{"name":"card_number=","args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"@card_number = card_number"}},{"html_id":"facility:UInt32-instance-method","name":"facility","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L5"},"def":{"name":"facility","return_type":"UInt32","visibility":"Public","body":"@facility"}},{"html_id":"facility=(facility:UInt32)-instance-method","name":"facility=","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"args_string":"(facility : UInt32)","args_html":"(facility : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L5"},"def":{"name":"facility=","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"visibility":"Public","body":"@facility = facility"}},{"html_id":"wiegand:UInt64-instance-method","name":"wiegand","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L4"},"def":{"name":"wiegand","return_type":"UInt64","visibility":"Public","body":"@wiegand"}},{"html_id":"wiegand=(wiegand:UInt64)-instance-method","name":"wiegand=","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L4"},"def":{"name":"wiegand=","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"@wiegand = wiegand"}}]},{"html_id":"drivers/Wiegand/Wiegand26","path":"Wiegand/Wiegand26.html","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"131070"},{"id":"CARD_PAR_MASK","name":"CARD_PAR_MASK","value":"131071"},{"id":"FAC_PAR_MASK","name":"FAC_PAR_MASK","value":"66977792"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"33423360"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-class-method","name":"from_components","doc":"Convert components to wiegand 26 card data","summary":"

Convert components to wiegand 26 card data

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L44"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = 0\nwiegand = wiegand + (card_number << 1)\nif (count_1s(card_number)).odd?\n wiegand = wiegand + (FAC_PAR_MASK ^ FACILITY_MASK)\nend\nwiegand = wiegand + (facility << 17)\nif (count_1s(facility)).even?\n wiegand = wiegand + 1\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_wiegand(wiegand:UInt64)-instance-method","name":"from_wiegand","doc":"Convert wiegand 26 card data to components\n\nHex card data: 0x21a6616\nCard Number: 13067\nCard Facility Code: 13","summary":"

Convert wiegand 26 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L30"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"card_number = (wiegand & CARD_MASK) >> 1\ncard_1s = count_1s(wiegand & CARD_PAR_MASK)\nfacility = (wiegand & FACILITY_MASK) >> 17\nfacility_1s = count_1s(wiegand & FAC_PAR_MASK)\nparity_passed = card_1s.odd? && facility_1s.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}]},{"html_id":"drivers/Wiegand/Wiegand35","path":"Wiegand/Wiegand35.html","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L59"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"4194300"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"17175674880_i64"},{"id":"PAR_EVEN_MASK","name":"PAR_EVEN_MASK","value":"14725602156_i64"},{"id":"PAR_ODD_MASK","name":"PAR_ODD_MASK","value":"7362801078_i64"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_wiegand(wiegand)-class-method","name":"from_wiegand","doc":"Convert wiegand 35 card data to components\n\n1 + 12 + 20 + 2\n1 + facility + card num + 2","summary":"

Convert wiegand 35 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"args_string":"(wiegand)","args_html":"(wiegand)","location":{"filename":"src/wiegand/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L89"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"visibility":"Public","body":"str = ((wiegand.to_s(2)).rjust(35, '0')).reverse\ndata = str.to_i(2)\neven_count = (count_1s(data & PAR_EVEN_MASK)) + (str[0] == '1' ? 1 : 0)\nodd_count = count_1s(data & PAR_ODD_MASK)\nparity_passed = odd_count.odd? && even_count.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nfacility = (data & FACILITY_MASK) >> 22\ncard_number = (data & CARD_MASK) >> 2\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-instance-method","name":"from_components","doc":"Outputs the HEX code of what is written to the swipe card\n\nHex card data: 0x06F20107F\nCard Number: 2540\nCard Facility Code: 4033","summary":"

Outputs the HEX code of what is written to the swipe card

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/wiegand/models.cr#L70"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = (facility << 22) + (card_number << 2)\neven_count = count_1s(wiegand & PAR_EVEN_MASK)\nodd_count = count_1s(wiegand & PAR_ODD_MASK)\nif even_count.odd?\n wiegand = wiegand + (1 << 34)\nend\nif odd_count.even?\n wiegand = wiegand + 2\nend\nwiegand = ((wiegand.to_s(2)).rjust(35, '0')).reverse.to_i(2)\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}]}]},{"html_id":"drivers/WilliamsAV","path":"WilliamsAV.html","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV","abstract":false,"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM","path":"WilliamsAV/WaveCastFM.html","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TYPES","name":"TYPES","value":"{Command::TDU8_REBOOT => Type::TT_U8, Command::TDU8_RESTORE_DEFAULTS => Type::TT_U8, Command::TDU8_VU_METER_VALUE => Type::TT_U8, Command::TDU8_INPUT_GAIN => Type::TT_U8, Command::TDU8_INPUT_SOURCE => Type::TT_U8, Command::TDU8_PRESET => Type::TT_U8, Command::TDU8_HIGH_PASS => Type::TT_U8, Command::TDU8_LOW_PASS => Type::TT_U8, Command::TDU8_COMPRESSION => Type::TT_U8, Command::TDU8_USE_DHCP => Type::TT_U8, Command::TDU8_AUDIO_TX_MODE => Type::TT_U8, Command::TDU8_TTL => Type::TT_U8, Command::TDU8_SECURE_MODE => Type::TT_U8, Command::TDU8_PANEL_LOCK => Type::TT_U8, Command::TDU32_RF_TIMEOUT => Type::TT_U32, Command::TDU8_RF_CHANNEL => Type::TT_U8, Command::TDU8_RF_17_CHANNEL_MODE => Type::TT_U8, Command::TDU8_RF_POWER => Type::TT_U8, Command::TDSTR_SERVER_NAME => Type::TT_STRING, Command::TDSTR_STATIC_IP_ADDR => Type::TT_STRING, Command::TDSTR_STATIC_SUBNET_MASK => Type::TT_STRING, Command::TDSTR_STATIC_GATEWAY_ADDR => Type::TT_STRING, Command::TDSTR_MULTICAST_ADDR => Type::TT_STRING, Command::TDSTR_JOIN_CODE => Type::TT_STRING}"}],"namespace":{"html_id":"drivers/WilliamsAV","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel_number:Int32|Nil-instance-method","name":"channel_number","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L34"},"def":{"name":"channel_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@channel_number"}},{"html_id":"channel_offset-instance-method","name":"channel_offset","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L26"},"def":{"name":"channel_offset","visibility":"Public","body":"(3000 * (@channel_number || 0)) + (rand(750))"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L30"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(channel_offset.milliseconds) do\n query_state\nend"}},{"html_id":"enable_join_code(state:Bool)-instance-method","name":"enable_join_code","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L186"},"def":{"name":"enable_join_code","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_SECURE_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"input_gain(value:UInt8)-instance-method","name":"input_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L223"},"def":{"name":"input_gain","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 50_u8)\nwrite(Command::TDU8_INPUT_GAIN, value)\n"}},{"html_id":"input_source(value:InputSource)-instance-method","name":"input_source","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"args_string":"(value : InputSource)","args_html":"(value : InputSource)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L238"},"def":{"name":"input_source","args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"visibility":"Public","body":"write(Command::TDU8_INPUT_SOURCE, value.to_u8)"}},{"html_id":"lock_front_panel(state:Bool)-instance-method","name":"lock_front_panel","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L266"},"def":{"name":"lock_front_panel","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_PANEL_LOCK, state ? 1_u8 : 0_u8)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@channel_number = setting?(Int32, :channel_number)\nschedule.clear\nschedule.cron(\"* * * * *\") do\n connected\nend\n"}},{"html_id":"preset(value:Preset)-instance-method","name":"preset","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Preset"}],"args_string":"(value : Preset)","args_html":"(value : Preset)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L250"},"def":{"name":"preset","args":[{"name":"value","external_name":"value","restriction":"Preset"}],"visibility":"Public","body":"write(Command::TDU8_PRESET, value.to_u8)"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L99"},"def":{"name":"query_state","visibility":"Public","body":"if channel = channel_number\n body_data = URI::Params.build do |form|\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end.to_s\n logger.debug do\n \"switching current channel to: #{channel}\"\n end\n response = post(\"/TBL-WRITE\", body: body_data)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\nend\nresponse = get(\"/TBL-READ?All\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\ncount = 0\n(response.body.split('\\n')).each do |line|\n if line.presence\n else\n next\n end\n parts = (line.split(\",\")).map!(&.strip)\n begin\n type = Type.parse(parts[0])\n command = (Command.parse?(parts[1])) || parts[1]\n value_raw = parts[2]\n value = case type\n in Type::TT_FLOAT\n value_raw.to_f\n in Type::TT_U8, Type::TT_U32, Type::TT_S8, Type::TT_S32\n value_raw.to_i\n in Type::TT_STRING\n value_raw\n end\n set_status(command, value)\n count = count + 1\n rescue error\n raise(\"error parsing response line\\n#{error.inspect_with_backtrace}\")\n end\nend\n\"#{count} values updated\"\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L207"},"def":{"name":"reboot","visibility":"Public","body":"write(Command::TDU8_REBOOT, 1_u8)"}},{"html_id":"restore_defaults-instance-method","name":"restore_defaults","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L212"},"def":{"name":"restore_defaults","visibility":"Public","body":"write(Command::TDU8_RESTORE_DEFAULTS, 1_u8)"}},{"html_id":"set_join_code(pin:String)-instance-method","name":"set_join_code","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L191"},"def":{"name":"set_join_code","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_JOIN_CODE, pin)"}},{"html_id":"set_multicast_address(ip_address:String)-instance-method","name":"set_multicast_address","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L271"},"def":{"name":"set_multicast_address","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_MULTICAST_ADDR, ip_address)"}},{"html_id":"set_random_join_code(size:Int32=4)-instance-method","name":"set_random_join_code","doc":"creates a numeric pin size digits long","summary":"

creates a numeric pin size digits long

","abstract":false,"args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"args_string":"(size : Int32 = 4)","args_html":"(size : Int32 = 4)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L197"},"def":{"name":"set_random_join_code","args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"visibility":"Public","body":"pin = String.build do |str|\n size.times do\n (rand(9)).to_s(str)\n end\nend\nset_join_code(pin)\n"}},{"html_id":"set_ttl(value:UInt8)-instance-method","name":"set_ttl","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L260"},"def":{"name":"set_ttl","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 30_u8)\nwrite(Command::TDU8_TTL, value)\n"}},{"html_id":"set_vu_meter(value:UInt8,overload:Bool=false)-instance-method","name":"set_vu_meter","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"args_string":"(value : UInt8, overload : Bool = false)","args_html":"(value : UInt8, overload : Bool = false)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L217"},"def":{"name":"set_vu_meter","args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"visibility":"Public","body":"if overload\nelse\n value = value.clamp(0_u8, 9_u8)\nend\nwrite(Command::TDU8_VU_METER_VALUE, value)\n"}},{"html_id":"transmit_multicast(state:Bool)-instance-method","name":"transmit_multicast","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L255"},"def":{"name":"transmit_multicast","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_AUDIO_TX_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"write(command:Command,value:UInt8|UInt32|String)-instance-method","name":"write","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"args_string":"(command : Command, value : UInt8 | UInt32 | String)","args_html":"(command : Command, value : UInt8 | UInt32 | String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L165"},"def":{"name":"write","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"visibility":"Public","body":"body_data = URI::Params.build do |form|\n if channel = channel_number\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end\n form.add(\"type\", TYPES[command].to_s)\n form.add(\"id\", command.to_s)\n form.add(\"value\", value.to_s)\nend.to_s\nlogger.debug do\n \"updating setting: #{body_data}\"\nend\nresponse = post(\"/TBL-WRITE\", body: body_data)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nset_status(command, value)\n"}}],"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM/Command","path":"WilliamsAV/WaveCastFM/Command.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TDU8_REBOOT","name":"TDU8_REBOOT","value":"0"},{"id":"TDU8_RESTORE_DEFAULTS","name":"TDU8_RESTORE_DEFAULTS","value":"1"},{"id":"TDU8_VU_METER_VALUE","name":"TDU8_VU_METER_VALUE","value":"2"},{"id":"TDU8_INPUT_GAIN","name":"TDU8_INPUT_GAIN","value":"3"},{"id":"TDU8_INPUT_SOURCE","name":"TDU8_INPUT_SOURCE","value":"4"},{"id":"TDU8_PRESET","name":"TDU8_PRESET","value":"5"},{"id":"TDU8_HIGH_PASS","name":"TDU8_HIGH_PASS","value":"6"},{"id":"TDU8_LOW_PASS","name":"TDU8_LOW_PASS","value":"7"},{"id":"TDU8_COMPRESSION","name":"TDU8_COMPRESSION","value":"8"},{"id":"TDU8_USE_DHCP","name":"TDU8_USE_DHCP","value":"9"},{"id":"TDU8_AUDIO_TX_MODE","name":"TDU8_AUDIO_TX_MODE","value":"10"},{"id":"TDU8_TTL","name":"TDU8_TTL","value":"11"},{"id":"TDU8_SECURE_MODE","name":"TDU8_SECURE_MODE","value":"12"},{"id":"TDU8_PANEL_LOCK","name":"TDU8_PANEL_LOCK","value":"13"},{"id":"TDU32_RF_TIMEOUT","name":"TDU32_RF_TIMEOUT","value":"14"},{"id":"TDU8_RF_CHANNEL","name":"TDU8_RF_CHANNEL","value":"15"},{"id":"TDU8_RF_17_CHANNEL_MODE","name":"TDU8_RF_17_CHANNEL_MODE","value":"16"},{"id":"TDU8_RF_POWER","name":"TDU8_RF_POWER","value":"17"},{"id":"TDSTR_SERVER_NAME","name":"TDSTR_SERVER_NAME","value":"18"},{"id":"TDSTR_STATIC_IP_ADDR","name":"TDSTR_STATIC_IP_ADDR","value":"19"},{"id":"TDSTR_STATIC_SUBNET_MASK","name":"TDSTR_STATIC_SUBNET_MASK","value":"20"},{"id":"TDSTR_STATIC_GATEWAY_ADDR","name":"TDSTR_STATIC_GATEWAY_ADDR","value":"21"},{"id":"TDSTR_MULTICAST_ADDR","name":"TDSTR_MULTICAST_ADDR","value":"22"},{"id":"TDSTR_JOIN_CODE","name":"TDSTR_JOIN_CODE","value":"23"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tdstr_join_code?-instance-method","name":"tdstr_join_code?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L60"},"def":{"name":"tdstr_join_code?","visibility":"Public","body":"self == TDSTR_JOIN_CODE"}},{"html_id":"tdstr_multicast_addr?-instance-method","name":"tdstr_multicast_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L59"},"def":{"name":"tdstr_multicast_addr?","visibility":"Public","body":"self == TDSTR_MULTICAST_ADDR"}},{"html_id":"tdstr_server_name?-instance-method","name":"tdstr_server_name?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L55"},"def":{"name":"tdstr_server_name?","visibility":"Public","body":"self == TDSTR_SERVER_NAME"}},{"html_id":"tdstr_static_gateway_addr?-instance-method","name":"tdstr_static_gateway_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L58"},"def":{"name":"tdstr_static_gateway_addr?","visibility":"Public","body":"self == TDSTR_STATIC_GATEWAY_ADDR"}},{"html_id":"tdstr_static_ip_addr?-instance-method","name":"tdstr_static_ip_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L56"},"def":{"name":"tdstr_static_ip_addr?","visibility":"Public","body":"self == TDSTR_STATIC_IP_ADDR"}},{"html_id":"tdstr_static_subnet_mask?-instance-method","name":"tdstr_static_subnet_mask?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L57"},"def":{"name":"tdstr_static_subnet_mask?","visibility":"Public","body":"self == TDSTR_STATIC_SUBNET_MASK"}},{"html_id":"tdu32_rf_timeout?-instance-method","name":"tdu32_rf_timeout?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L51"},"def":{"name":"tdu32_rf_timeout?","visibility":"Public","body":"self == TDU32_RF_TIMEOUT"}},{"html_id":"tdu8_audio_tx_mode?-instance-method","name":"tdu8_audio_tx_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L47"},"def":{"name":"tdu8_audio_tx_mode?","visibility":"Public","body":"self == TDU8_AUDIO_TX_MODE"}},{"html_id":"tdu8_compression?-instance-method","name":"tdu8_compression?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L45"},"def":{"name":"tdu8_compression?","visibility":"Public","body":"self == TDU8_COMPRESSION"}},{"html_id":"tdu8_high_pass?-instance-method","name":"tdu8_high_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L43"},"def":{"name":"tdu8_high_pass?","visibility":"Public","body":"self == TDU8_HIGH_PASS"}},{"html_id":"tdu8_input_gain?-instance-method","name":"tdu8_input_gain?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L40"},"def":{"name":"tdu8_input_gain?","visibility":"Public","body":"self == TDU8_INPUT_GAIN"}},{"html_id":"tdu8_input_source?-instance-method","name":"tdu8_input_source?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L41"},"def":{"name":"tdu8_input_source?","visibility":"Public","body":"self == TDU8_INPUT_SOURCE"}},{"html_id":"tdu8_low_pass?-instance-method","name":"tdu8_low_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L44"},"def":{"name":"tdu8_low_pass?","visibility":"Public","body":"self == TDU8_LOW_PASS"}},{"html_id":"tdu8_panel_lock?-instance-method","name":"tdu8_panel_lock?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L50"},"def":{"name":"tdu8_panel_lock?","visibility":"Public","body":"self == TDU8_PANEL_LOCK"}},{"html_id":"tdu8_preset?-instance-method","name":"tdu8_preset?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L42"},"def":{"name":"tdu8_preset?","visibility":"Public","body":"self == TDU8_PRESET"}},{"html_id":"tdu8_reboot?-instance-method","name":"tdu8_reboot?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L37"},"def":{"name":"tdu8_reboot?","visibility":"Public","body":"self == TDU8_REBOOT"}},{"html_id":"tdu8_restore_defaults?-instance-method","name":"tdu8_restore_defaults?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L38"},"def":{"name":"tdu8_restore_defaults?","visibility":"Public","body":"self == TDU8_RESTORE_DEFAULTS"}},{"html_id":"tdu8_rf_17_channel_mode?-instance-method","name":"tdu8_rf_17_channel_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L53"},"def":{"name":"tdu8_rf_17_channel_mode?","visibility":"Public","body":"self == TDU8_RF_17_CHANNEL_MODE"}},{"html_id":"tdu8_rf_channel?-instance-method","name":"tdu8_rf_channel?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L52"},"def":{"name":"tdu8_rf_channel?","visibility":"Public","body":"self == TDU8_RF_CHANNEL"}},{"html_id":"tdu8_rf_power?-instance-method","name":"tdu8_rf_power?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L54"},"def":{"name":"tdu8_rf_power?","visibility":"Public","body":"self == TDU8_RF_POWER"}},{"html_id":"tdu8_secure_mode?-instance-method","name":"tdu8_secure_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L49"},"def":{"name":"tdu8_secure_mode?","visibility":"Public","body":"self == TDU8_SECURE_MODE"}},{"html_id":"tdu8_ttl?-instance-method","name":"tdu8_ttl?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L48"},"def":{"name":"tdu8_ttl?","visibility":"Public","body":"self == TDU8_TTL"}},{"html_id":"tdu8_use_dhcp?-instance-method","name":"tdu8_use_dhcp?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L46"},"def":{"name":"tdu8_use_dhcp?","visibility":"Public","body":"self == TDU8_USE_DHCP"}},{"html_id":"tdu8_vu_meter_value?-instance-method","name":"tdu8_vu_meter_value?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L39"},"def":{"name":"tdu8_vu_meter_value?","visibility":"Public","body":"self == TDU8_VU_METER_VALUE"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/InputSource","path":"WilliamsAV/WaveCastFM/InputSource.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::InputSource","name":"InputSource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"AnalogLineIn","name":"AnalogLineIn","value":"1"},{"id":"Mic","name":"Mic","value":"2"},{"id":"PhantomMic","name":"PhantomMic","value":"3"},{"id":"AES","name":"AES","value":"4"},{"id":"S_PDIF","name":"S_PDIF","value":"5"},{"id":"TestTone","name":"TestTone","value":"6"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"aes?-instance-method","name":"aes?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L232"},"def":{"name":"aes?","visibility":"Public","body":"self == AES"}},{"html_id":"analog_line_in?-instance-method","name":"analog_line_in?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L229"},"def":{"name":"analog_line_in?","visibility":"Public","body":"self == AnalogLineIn"}},{"html_id":"mic?-instance-method","name":"mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L230"},"def":{"name":"mic?","visibility":"Public","body":"self == Mic"}},{"html_id":"phantom_mic?-instance-method","name":"phantom_mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L231"},"def":{"name":"phantom_mic?","visibility":"Public","body":"self == PhantomMic"}},{"html_id":"s_pdif?-instance-method","name":"s_pdif?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L233"},"def":{"name":"s_pdif?","visibility":"Public","body":"self == S_PDIF"}},{"html_id":"test_tone?-instance-method","name":"test_tone?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L234"},"def":{"name":"test_tone?","visibility":"Public","body":"self == TestTone"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Preset","path":"WilliamsAV/WaveCastFM/Preset.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Preset","name":"Preset","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L242"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Voice","name":"Voice","value":"1"},{"id":"Music","name":"Music","value":"2"},{"id":"HearingAssist","name":"HearingAssist","value":"3"},{"id":"Custom","name":"Custom","value":"4"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"custom?-instance-method","name":"custom?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L246"},"def":{"name":"custom?","visibility":"Public","body":"self == Custom"}},{"html_id":"hearing_assist?-instance-method","name":"hearing_assist?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L245"},"def":{"name":"hearing_assist?","visibility":"Public","body":"self == HearingAssist"}},{"html_id":"music?-instance-method","name":"music?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L244"},"def":{"name":"music?","visibility":"Public","body":"self == Music"}},{"html_id":"voice?-instance-method","name":"voice?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L243"},"def":{"name":"voice?","visibility":"Public","body":"self == Voice"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Type","path":"WilliamsAV/WaveCastFM/Type.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L63"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TT_FLOAT","name":"TT_FLOAT","value":"0"},{"id":"TT_U8","name":"TT_U8","value":"1"},{"id":"TT_U32","name":"TT_U32","value":"2"},{"id":"TT_S8","name":"TT_S8","value":"3"},{"id":"TT_S32","name":"TT_S32","value":"4"},{"id":"TT_STRING","name":"TT_STRING","value":"5"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tt_float?-instance-method","name":"tt_float?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L64"},"def":{"name":"tt_float?","visibility":"Public","body":"self == TT_FLOAT"}},{"html_id":"tt_s32?-instance-method","name":"tt_s32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L68"},"def":{"name":"tt_s32?","visibility":"Public","body":"self == TT_S32"}},{"html_id":"tt_s8?-instance-method","name":"tt_s8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L67"},"def":{"name":"tt_s8?","visibility":"Public","body":"self == TT_S8"}},{"html_id":"tt_string?-instance-method","name":"tt_string?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L69"},"def":{"name":"tt_string?","visibility":"Public","body":"self == TT_STRING"}},{"html_id":"tt_u32?-instance-method","name":"tt_u32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L66"},"def":{"name":"tt_u32?","visibility":"Public","body":"self == TT_U32"}},{"html_id":"tt_u8?-instance-method","name":"tt_u8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/williams_av/wave_cast_fm.cr#L65"},"def":{"name":"tt_u8?","visibility":"Public","body":"self == TT_U8"}}]}]}]},{"html_id":"drivers/Winmate","path":"Winmate.html","kind":"module","full_name":"Winmate","name":"Winmate","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Winmate/LedLightBar","path":"Winmate/LedLightBar.html","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COLOUR_LOOKUP","name":"COLOUR_LOOKUP","value":"{16 => Led::Red, 17 => Led::Green, 18 => Led::Blue}"},{"id":"COLOURS","name":"COLOURS","value":"{Led::Red => 16_u8, Led::Green => 17_u8, Led::Blue => 18_u8}"},{"id":"COMMANDS","name":"COMMANDS","value":"{set: 97_u8, get: 96_u8}"},{"id":"DEFAULT_COLOURS","name":"DEFAULT_COLOURS","value":"{\"red\" => {red: 255_u8, green: 0_u8, blue: 0_u8}, \"green\" => {red: 0_u8, green: 255_u8, blue: 0_u8}, \"blue\" => {red: 0_u8, green: 0_u8, blue: 255_u8}, \"orange\" => {red: 200_u8, green: 0_u8, blue: 0_u8}, \"off\" => {red: 0_u8, green: 0_u8, blue: 0_u8}}"}],"namespace":{"html_id":"drivers/Winmate","kind":"module","full_name":"Winmate","name":"Winmate"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"colour(colour:String)-instance-method","name":"colour","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"String"}],"args_string":"(colour : String)","args_html":"(colour : String)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L72"},"def":{"name":"colour","args":[{"name":"colour","external_name":"colour","restriction":"String"}],"visibility":"Public","body":"colours = @colours[colour]\nself[:colour_name] = colour\ncolours.each do |component, intensity|\n led = Led.parse(component.to_s)\n set(led, intensity)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L53"},"def":{"name":"connected","visibility":"Public","body":"@buffer = String.new\ntransport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n bytes[0].to_i\nend\ndo_poll\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Polling Winmate LED\"\n end\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L68"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L121"},"def":{"name":"do_poll","visibility":"Public","body":"query(:red, priority: 0)\nquery(:green, priority: 0)\nquery(:blue, priority: 0)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"colours = (setting?(Colours, :colours)) || Colours.new\n@colours = colours.merge(DEFAULT_COLOURS)\n"}},{"html_id":"query(led:Led,**options)-instance-method","name":"query","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"}],"args_string":"(led : Led, **options)","args_html":"(led : Led, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L104"},"def":{"name":"query","args":[{"name":"led","external_name":"led","restriction":"Led"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(**options.merge({command: :get, colour: led}))"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L127"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received: #{bytes.hexstring}\"\nend\nif check_checksum(bytes)\nelse\n logger.warn do\n \"Error processing response. Possibly incorrect baud rate configured\"\n end\n return task.try(&.abort)\nend\nindicator = bytes[1]\ncolour = COLOUR_LOOKUP[indicator]?\nif colour\n self[colour.to_s.downcase] = bytes[2]\n task.try(&.success(bytes[2]))\nelse\n if indicator == 12\n else\n return task.try(&.abort)\n end\n task.try(&.success)\nend\n"}},{"html_id":"set(led:Led,value:UInt8,**options)-instance-method","name":"set","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(led : Led, value : UInt8, **options)","args_html":"(led : Led, value : UInt8, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L111"},"def":{"name":"set","args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[led.to_s.downcase] = value\ndo_send(**options.merge({command: :set, colour: led, value: value}))\n"}}],"types":[{"html_id":"drivers/Winmate/LedLightBar/Colours","path":"Winmate/LedLightBar/Colours.html","kind":"alias","full_name":"Winmate::LedLightBar::Colours","name":"Colours","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, NamedTuple(red: UInt8, green: UInt8, blue: UInt8))","aliased_html":"Hash(String, {red: UInt8, green: UInt8, blue: UInt8})","const":false,"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"}},{"html_id":"drivers/Winmate/LedLightBar/Led","path":"Winmate/LedLightBar/Led.html","kind":"enum","full_name":"Winmate::LedLightBar::Led","name":"Led","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L84"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L83"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/winmate/led_light_bar.cr#L82"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]}]}]},{"html_id":"drivers/Xovis","path":"Xovis.html","kind":"module","full_name":"Xovis","name":"Xovis","abstract":false,"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Xovis/SensorAPI","path":"Xovis/SensorAPI.html","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"line-counts\" => SensorType::QueueSize, \"zone-occupancy-counts\" => SensorType::PeopleCount, \"zone-in-out-counts\" => SensorType::Counter}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Xovis","kind":"module","full_name":"Xovis","name":"Xovis"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capacity_data-instance-method","name":"capacity_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L146"},"def":{"name":"capacity_data","visibility":"Public","body":"response = get(\"/api/info/persistence\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlast_checked = Time.utc.to_unix\n{\"line\", \"zone-occupancy\", \"zone-in-out\"}.each do |count_name|\n xml_key_name = \"//count-#{count_name}-storage\"\n if count_data = (document.xpath_nodes(xml_key_name)).first?\n count_type = (count_name.split(\"-\", 2))[0]\n capacity = xpath_text(document, \"#{xml_key_name}/capacity\", &.to_i)\n key = \"#{count_name}-counts\"\n @state[key] = self[key] = (document.xpath_nodes(\"#{xml_key_name}/count-#{count_type}s/count-#{count_type}\")).map_with_index do |zone, index|\n attrs = {} of String => String | Int32 | Int64 | Nil\n zone.children.each do |child|\n content = child.text.strip\n attrs[child.name] = case child.name\n when \"entry-count\"\n content.to_i\n when \"first-entry\", \"last-entry\"\n content.empty? ? nil : (Time.parse!(content, \"%Y-%m-%dT%H:%M:%S%z\")).to_unix\n when \"text\"\n next\n else\n content\n end\n end\n last_entry = attrs[\"last-entry\"].as(Int64 | ::Nil)\n sensor = case count_name\n when \"line\"\n SensorDetail.new(SensorType::QueueSize, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"line-#{index}\", attrs[\"name\"].as(String))\n when \"zone-occupancy\"\n SensorDetail.new(SensorType::PeopleCount, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-occupancy-#{index}\", \"Occupancy #{attrs[\"name\"].as(String)}\")\n when \"zone-in-out\"\n SensorDetail.new(SensorType::Counter, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-in-out-#{index}\", \"In Out #{attrs[\"name\"].as(String)}\")\n else\n next\n end\n sensor.capacity = capacity\n sensor.last_entry = last_entry\n sensor.first_entry = attrs[\"first-entry\"].as(Int64 | ::Nil)\n sensor\n end.compact\n end\nend\ntrue\n"}},{"html_id":"count_data-instance-method","name":"count_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L126"},"def":{"name":"count_data","visibility":"Public","body":"response = get(\"/api/count-data\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlines = {} of String => NamedTuple(name: String, id: String, type: String, sensor: String, data: Hash(String, String | Int32 | Float32))\nlines_xml = document.xpath_nodes(\"//lines/line\")\nself[:lines] = lines_xml.map do |line|\n attrs = {} of String => String | Hash(String, Int32)\n counts = {} of String => Int32\n line.attributes.each do |attr|\n attrs[attr.name] = attr.content\n end\n line.children.each do |child|\n if child.name == \"text\"\n next\n end\n counts[child.name] = child.text.to_i\n end\n attrs[\"counts\"] = counts\n attrs\nend\n"}},{"html_id":"device_status-instance-method","name":"device_status","doc":"Combined `/info` and `/info/status`","summary":"

Combined /info and /info/status

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L198"},"def":{"name":"device_status","visibility":"Public","body":"response = get(\"/api/info/sensor-status\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nparse_type_info(document, \"version\")\nparse_type_info(document, \"temperature\")\nif sensor = parse_text_info(document, \"sensor\")\n @mac = sensor[\"serial-number\"]? || @mac\nend\nparse_text_info(document, \"illumination\")\nparse_text_info(document, \"configuration\")\nparse_text_info(document, \"operation\")\ntrue\n"}},{"html_id":"get_logs-instance-method","name":"get_logs","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L105"},"def":{"name":"get_logs","visibility":"Public","body":"response = get(\"/api/info/log\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining logs: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_token-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L98"},"def":{"name":"get_token","visibility":"Public","body":"response = get(\"/api/auth/token\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"is_alive?-instance-method","name":"is_alive?","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L118"},"def":{"name":"is_alive?","visibility":"Public","body":"begin\n response = get(\"/api/info/alive\", headers: {\"Accept\" => \"text/xml\"})\n check_success(response)\n true\nrescue\n false\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 15).seconds\n@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nquery_capacity = setting?(Bool, :query_capacity)\nquery_counts = setting?(Bool, :query_counts)\nschedule.clear\nschedule.every(@poll_rate) do\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\nschedule.every(5.minutes) do\n device_status\nend\nschedule.in(@poll_rate / 3) do\n device_status\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\n"}},{"html_id":"reset_count-instance-method","name":"reset_count","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L112"},"def":{"name":"reset_count","visibility":"Public","body":"response = get(\"/api/count-data/reset\", headers: {\"Accept\" => \"text/xml\"})\ncheck_success(response)\ntrue\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/xovis/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L54"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n return nil\n end\n index = index_str.to_i\n if sensors = @state[\"#{sensor}-counts\"]?\n sensors[index]?\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/xovis/sensor_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L81"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return @state.values.flatten.map do |__arg0|\n __arg0.as(Interface::Sensor::Detail)\n end\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << @state[key].map do |__arg1|\n __arg1.as(Interface::Sensor::Detail)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}}],"types":[{"html_id":"drivers/Xovis/SensorAPI/SensorDetail","path":"Xovis/SensorAPI/SensorDetail.html","kind":"class","full_name":"Xovis::SensorAPI::SensorDetail","name":"SensorDetail","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Xovis/SensorAPI","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"args_string":"(capacity : Int32 | Nil)","args_html":"(capacity : Int32 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"first_entry:Int64|Nil-instance-method","name":"first_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@first_entry"}},{"html_id":"first_entry=(first_entry:Int64|Nil)-instance-method","name":"first_entry=","abstract":false,"args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"args_string":"(first_entry : Int64 | Nil)","args_html":"(first_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry=","args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@first_entry = first_entry"}},{"html_id":"last_entry:Int64|Nil-instance-method","name":"last_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_entry"}},{"html_id":"last_entry=(last_entry:Int64|Nil)-instance-method","name":"last_entry=","abstract":false,"args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"args_string":"(last_entry : Int64 | Nil)","args_html":"(last_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry=","args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_entry = last_entry"}}]}]}]},{"html_id":"drivers/XYSense","path":"XYSense.html","kind":"module","full_name":"XYSense","name":"XYSense","abstract":false,"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/XYSense/LocationService","path":"XYSense/LocationService.html","kind":"class","full_name":"XYSense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/XYSense","kind":"module","full_name":"XYSense","name":"XYSense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/xy_sense/location_service.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L187"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L192"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\n@occupancy_mappings[zone_id].compact_map do |space_name, space|\n capacity = space.details.capacity\n if capacity == 1\n if space.headcount > 0\n else\n next\n end\n if location.presence && (location != \"desk\")\n next\n end\n {location: :desk, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n else\n if location.presence && (location != \"area\")\n next\n end\n {location: :area, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n end\nend\n"}},{"html_id":"floor_subscriptions-instance-method","name":"floor_subscriptions","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L134"},"def":{"name":"floor_subscriptions","visibility":"Public","body":"@floor_subscriptions.keys"}},{"html_id":"level_state_change(zone_id:String,spaces:Array(Occupancy))-instance-method","name":"level_state_change","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"args_string":"(zone_id : String, spaces : Array(Occupancy))","args_html":"(zone_id : String, spaces : Array(Occupancy))","location":{"filename":"src/xy_sense/location_service.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L157"},"def":{"name":"level_state_change","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"visibility":"Public","body":"begin\n area_occupancy = {} of String => Occupancy\n spaces.each do |space|\n space.details = @space_details[space.space_id]\n space_name = space.details.name\n if space_name\n else\n logger.warn do\n \"missing space name for id #{space.details.id}\"\n end\n next\n end\n area_occupancy[space_name] = space\n end\n @occupancy_mappings[zone_id] = area_occupancy\n area_manager.update_available({zone_id})\nrescue error\n logger.error(exception: error) do\n \"error updating level #{zone_id} space changes\"\n end\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L177"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L182"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@floor_mappings = setting(Hash(String, NamedTuple(zone_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.map do |_, detail|\n detail[:zone_id]\nend\nschedule.clear\nschedule.every(30.minutes) do\n sync_floor_states\nend\n"}},{"html_id":"sync_floor_states-instance-method","name":"sync_floor_states","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L138"},"def":{"name":"sync_floor_states","visibility":"Public","body":"logger.debug do\n \"-- updating space details...\"\nend\ndetails = update_space_details\nlogger.debug do\n \"-- details:\\n#{details}\"\nend\nlogger.debug do\n \"-- grabbing floor details...\"\nend\nxy = xy_sense\n@change_lock.synchronize do\n floor_subscriptions.each do |zone_id|\n level_state_change(zone_id, xy.status(Array(Occupancy), zone_id))\n end\nend\nlogger.debug do\n \"-- floor states synced!\"\nend\n@occupancy_mappings\n"}},{"html_id":"update_space_details-instance-method","name":"update_space_details","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L79"},"def":{"name":"update_space_details","visibility":"Public","body":"@change_lock.synchronize do\n floors = xy_sense.status(Hash(String, FloorDetails), :floors)\n space_details = {} of String => SpaceDetails\n floors.each do |floor_id, floor|\n mapping = @floor_mappings[floor_id]?\n if mapping\n else\n next\n end\n floor.spaces.each do |space|\n space_details[space.id] = space\n end\n end\n @space_details = space_details\nend"}}],"types":[{"html_id":"drivers/XYSense/LocationService/FloorDetails","path":"XYSense/LocationService/FloorDetails.html","kind":"class","full_name":"XYSense::LocationService::FloorDetails","name":"FloorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"doc":"===================================\nBindings into xy-sense data\n===================================","summary":"

=================================== Bindings into xy-sense data ===================================

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"floor_name=(floor_name:String)-instance-method","name":"floor_name=","abstract":false,"args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"args_string":"(floor_name : String)","args_html":"(floor_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name=","args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"visibility":"Public","body":"@floor_name = floor_name"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_name:String-instance-method","name":"location_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name","return_type":"String","visibility":"Public","body":"@location_name"}},{"html_id":"location_name=(location_name:String)-instance-method","name":"location_name=","abstract":false,"args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"args_string":"(location_name : String)","args_html":"(location_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name=","args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"visibility":"Public","body":"@location_name = location_name"}},{"html_id":"spaces:Array(SpaceDetails)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces","return_type":"Array(SpaceDetails)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(SpaceDetails))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"args_string":"(spaces : Array(SpaceDetails))","args_html":"(spaces : Array(SpaceDetails))","location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/XYSense/LocationService/Occupancy","path":"XYSense/LocationService/Occupancy.html","kind":"class","full_name":"XYSense::LocationService::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L61"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"collected:Time-instance-method","name":"collected","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected","return_type":"Time","visibility":"Public","body":"@collected"}},{"html_id":"collected=(collected:Time)-instance-method","name":"collected=","abstract":false,"args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"args_string":"(collected : Time)","args_html":"(collected : Time)","location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected=","args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"visibility":"Public","body":"@collected = collected"}},{"html_id":"details:SpaceDetails-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"SpaceDetails","visibility":"Public","body":"if (__temp_1 = @details).nil?\n ::raise(::NilAssertionError.new(\"XYSense::LocationService::Occupancy#details cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"details=(details:SpaceDetails)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"args_string":"(details : SpaceDetails)","args_html":"(details : SpaceDetails)","location":{"filename":"src/xy_sense/location_service.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L71"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"visibility":"Public","body":"@details = details"}},{"html_id":"details?:SpaceDetails|Nil-instance-method","name":"details?","abstract":false,"def":{"name":"details?","return_type":"SpaceDetails | ::Nil","visibility":"Public","body":"@details"}},{"html_id":"headcount:Int32-instance-method","name":"headcount","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount","return_type":"Int32","visibility":"Public","body":"@headcount"}},{"html_id":"headcount=(headcount:Int32)-instance-method","name":"headcount=","abstract":false,"args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"args_string":"(headcount : Int32)","args_html":"(headcount : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount=","args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"visibility":"Public","body":"@headcount = headcount"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:String)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L63"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L63"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/XYSense/LocationService/SpaceDetails","path":"XYSense/LocationService/SpaceDetails.html","kind":"class","full_name":"XYSense::LocationService::SpaceDetails","name":"SpaceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L57"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"category=(category:String)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"String"}],"args_string":"(category : String)","args_html":"(category : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L57"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"String"}],"visibility":"Public","body":"@category = category"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L54"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L54"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L55"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/xy_sense/location_service.cr#L55"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]}]}]},{"html_id":"drivers/Zencontrol","path":"Zencontrol.html","kind":"module","full_name":"Zencontrol","name":"Zencontrol","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI","path":"Zencontrol/AdvancedTPI.html","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CODES","name":"ERROR_CODES","value":"{1_u8 => \"The checksum check failed\", 2_u8 => \"A short on the DALI line was detected\", 3_u8 => \"A receive error occured\", 4_u8 => \"The command in the request is unrecognised\", 176_u8 => \"The command requested relies on a paid feature that hasn't been purchsed\", 177_u8 => \"Invalid arguments supplied for the given command in the re quest\", 178_u8 => \"The command couldn't be processed\", 179_u8 => \"The queue or buffer that's required to process the command in the request\\n is full or broken\", 180_u8 => \"The command in the request may stream multiple responses back, but this\\n feature isn't available for some reason\", 181_u8 => \"The DALI related request couldn't be processed due to an error\", 182_u8 => \"There are an insufficient number of the required resource remaining service\\n the request\", 183_u8 => \"An unexpected result occurred\"}"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L61"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L103"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(170_u8, area_id.to_u8)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L81"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(173_u8, area_id.to_u8)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n bytes.size < 3 ? 0 : (bytes[2].to_i + 4)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :api_version)) || 4_u8"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L187"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\nio = IO::Memory.new(data)\nresponse = io.read_bytes(ResponseFrame)\ncase response.type\nwhen .okay?, .no_answer?\nwhen .answer?\n if (request = task.try(&.request_payload)) && (request.sequence == response.sequence)\n case request.command\n when 173_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[area.to_s] = response.bytes[0]\n when 170_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[(area.append(\"level\")).to_s] = response.bytes[0]\n else\n logger.debug do\n \"unknown answer for #{request.command.to_s(16)}\\n - req: #{request.to_slice.hexstring}\\n - resp: #{response.to_slice.hexstring}\"\n end\n end\n end\nwhen .error?\n error_code = response.bytes[0]\n error_message = ERROR_CODES[error_code]?\n logger.error do\n \"request failed with code #{error_code}, message: #{error_message}\"\n end\n return task.try(&.abort(error_message))\nend\nif request = task.try(&.request_payload)\n if request.sequence == response.sequence\n return task.try(&.success)\n else\n return\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L89"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u32\nbasic_request(162_u8, area_id.to_u8, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L70"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nself[area.to_s] = scene\nbasic_request(161_u8, area_id.to_u8, scene)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L55"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI/Area","path":"Zencontrol/AdvancedTPI/Area.html","kind":"alias","full_name":"Zencontrol::AdvancedTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"}},{"html_id":"drivers/Zencontrol/AdvancedTPI/BasicRequest","path":"Zencontrol/AdvancedTPI/BasicRequest.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::BasicRequest","name":"BasicRequest","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::BasicRequest]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: version, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: command, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: address, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bitfield\", name: 28, cls: Zencontrol::AdvancedTPI::BasicRequest, onlyif: nil, verify: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n (((((version ^ sequence) ^ command) ^ address) ^ ((data >> 16) & 255).to_u8) ^ ((data >> 8) & 255).to_u8) ^ (data & 255).to_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L114"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"address:UInt8-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"UInt8","visibility":"Public","body":"@address"}},{"html_id":"address=(address:UInt8)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8)","args_html":"(address : UInt8)","def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"visibility":"Public","body":"@address = address"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"command:UInt8-instance-method","name":"command","abstract":false,"def":{"name":"command","return_type":"UInt8","visibility":"Public","body":"@command"}},{"html_id":"command=(command:UInt8)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"args_string":"(command : UInt8)","args_html":"(command : UInt8)","def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"visibility":"Public","body":"@command = command"}},{"html_id":"data:UInt32-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"UInt32","visibility":"Public","body":"@data"}},{"html_id":"data=(data:UInt32)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"args_string":"(data : UInt32)","args_html":"(data : UInt32)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"visibility":"Public","body":"@data = data"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"version:UInt8-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"UInt8","visibility":"Public","body":"@version"}},{"html_id":"version=(version:UInt8)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"args_string":"(version : UInt8)","args_html":"(version : UInt8)","def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"visibility":"Public","body":"@version = version"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseFrame","path":"Zencontrol/AdvancedTPI/ResponseFrame.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::ResponseFrame","name":"ResponseFrame","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::ResponseFrame]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: ResponseType}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: size, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: bytes, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: -> do\n sum = (type.to_u8 ^ sequence) ^ size\n checksum == (bytes.reduce(sum) do |acc, i|\n i ^ acc\n end)\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L175"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bytes:Bytes-instance-method","name":"bytes","abstract":false,"def":{"name":"bytes","return_type":"Bytes","visibility":"Public","body":"@bytes"}},{"html_id":"bytes=(bytes:Bytes)-instance-method","name":"bytes=","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"args_string":"(bytes : Bytes)","args_html":"(bytes : Bytes)","def":{"name":"bytes=","args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"visibility":"Public","body":"@bytes = bytes"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt8-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt8","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt8)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"args_string":"(size : UInt8)","args_html":"(size : UInt8)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:ResponseType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"ResponseType","visibility":"Public","body":"@type"}},{"html_id":"type=(type:ResponseType)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"args_string":"(type : ResponseType)","args_html":"(type : ResponseType)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_response_frame(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_response_frame","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_response_frame","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::ResponseFrame = Zencontrol::AdvancedTPI::ResponseFrame.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseType","path":"Zencontrol/AdvancedTPI/ResponseType.html","kind":"enum","full_name":"Zencontrol::AdvancedTPI::ResponseType","name":"ResponseType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L167"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Okay","name":"Okay","value":"160"},{"id":"Answer","name":"Answer","value":"161"},{"id":"NoAnswer","name":"NoAnswer","value":"162"},{"id":"Error","name":"Error","value":"163"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L169"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L171"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"no_answer?-instance-method","name":"no_answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L170"},"def":{"name":"no_answer?","visibility":"Public","body":"self == NoAnswer"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/advanced_tpi.cr#L168"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Zencontrol/ClassicTPI","path":"Zencontrol/ClassicTPI.html","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BROADCAST","name":"BROADCAST","value":"Bytes[255, 255, 255, 255, 255, 255]"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L52"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L88"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[(area.append(\"level\")).to_s]?\nend"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L70"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[area.to_s]?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L34"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :version)) || 1_u8\ncontroller = setting?(String, :controller_id)\nif controller\n @controller = (controller.rjust(12, '0')).hexbytes\nelse\n @controller = BROADCAST\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L101"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L76"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u8\narea_id = ((area.id.as(UInt32)).clamp(0, 127)).to_u8\nself[(area.append(\"level\")).to_s] = level\ndo_send(area_id, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L61"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nscene = (scene.clamp(0, 15)) + 16\narea_id = ((area.id.as(UInt32)).clamp(0, 127)) + 128\nself[area.to_s] = scene\ndo_send(area_id.to_u8, scene.to_u8)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L46"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/ClassicTPI/Area","path":"Zencontrol/ClassicTPI/Area.html","kind":"alias","full_name":"Zencontrol::ClassicTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/0346aae5a975cb44c68beae0f24b85fb5922e49e/src/zencontrol/classic_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/ClassicTPI","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI"}}]}]}]}}) \ No newline at end of file +crystal_doc_search_index_callback({"repository_name":"drivers","body":"# PlaceOS Drivers\n\n[![CI](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml/badge.svg)](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml)\n\nManage and test [PlaceOS](https://place.technology) drivers.\n\n## Development\n\n### `harness`\n\n`harness` is a helper for easing development of PlaceOS Drivers.\n\n```\nUsage: ./harness [-h|--help] [command]\n\nHelper script for interfacing with the PlaceOS Driver spec runner\n\nCommand:\n report check all drivers' compilation status\n up starts the harness\n down stops the harness\n build builds drivers and uploads them to S3\n format formats driver code\n help display this message\n```\n\nTo spin up the test harness, clone the repository and run...\n\n```shell-session\n$ ./harness up\n```\n\nPoint a browser to [localhost:8085](http://localhost:8085), and you're good to go.\n\nWhen the environment is not in use, remember to run...\n\n```shell-session\n$ ./harness down\n```\n\nBefore committing, please run...\n\n```shell-session\n$ ./harness format\n```\n\n## Documentation\n\n- [Existing Driver Docs](https://placeos.github.io/drivers/)\n- [Writing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver)\n- [Testing a PlaceOS Driver](https://docs.placeos.com/tutorials/backend/write-a-driver/testing-drivers)\n- [Sending Emails](docs/guide-event-emails.md)\n- [Environment Setup](docs/setup.md)\n- [Runtime Debugging](docs/runtime-debugging.md)\n- [Directory Structure](docs/directory_structure.md)\n- [PlaceOS Spec Runner HTTP API](docs/http-api.md)\n\n## Contributing\n\n1. [Fork it](https://github.com/PlaceOS/drivers/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n","program":{"html_id":"drivers/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"}],"locations":[],"repository_name":"drivers","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"CAPTURE_STATUS","name":"CAPTURE_STATUS","value":"\" \\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n 2014-02-12T15:30:00.000Z\\n 3000\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n \\n John Doe\\n \\n \\n
\\n \\n Some other capture\\n 2014-02-13T15:30:00.000Z\\n 1500\\n
Some other capture
\\n \\n \\n Steve\\n \\n \\n
\\n
\""},{"id":"DEFAULT_PASSWORD_EXCLUDE","name":"DEFAULT_PASSWORD_EXCLUDE","value":"\"0Oo1Il`'\\\\/\""},{"id":"DEFAULT_PASSWORD_LENGTH","name":"DEFAULT_PASSWORD_LENGTH","value":"6","doc":"Password defaults","summary":"

Password defaults

"},{"id":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","name":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","name":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","value":"1"},{"id":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","name":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","value":"0"},{"id":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","name":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","value":"0"},{"id":"DESK_LOC","name":"DESK_LOC","value":"{\"location\" => \"desk\", \"at_location\" => true, \"map_id\" => \"desk-4-1006\", \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"},{"id":"EXAMPLE_COLOCATION","name":"EXAMPLE_COLOCATION","value":"\"[\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1b\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 7662\\n }\\n ]\\n },\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:03:c0:1e\\\",\\n \\\"startTime\\\": \\\"2022-02-25T04:02:43Z\\\",\\n \\\"endTime\\\": \\\"2022-03-02T04:02:43Z\\\",\\n \\\"contacts\\\": [\\n {\\n \\\"trackingId\\\": \\\"00:fa:b6:02:4b:a3\\\",\\n \\\"durationSec\\\": 2386\\n }\\n ]\\n }\\n ]\""},{"id":"EXAMPLE_RESPONSE","name":"EXAMPLE_RESPONSE","value":"\"{\\\"content\\\": #{EXAMPLE_COLOCATION}}\""},{"id":"PASSWORD_LOWERCASE_CHARACTERS","name":"PASSWORD_LOWERCASE_CHARACTERS","value":"('a'..'z').to_a"},{"id":"PASSWORD_NUMBER_CHARACTERS","name":"PASSWORD_NUMBER_CHARACTERS","value":"('0'..'9').to_a"},{"id":"PASSWORD_SYMBOL_CHARACTERS","name":"PASSWORD_SYMBOL_CHARACTERS","value":"['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '-', '=', '{', '}', '[', ']', '|', '\\\\', ':', ';', '\"', '\\'', '<', '>', ',', '.', '?', '/', '`', '~']"},{"id":"PASSWORD_UPPERCASE_CHARACTERS","name":"PASSWORD_UPPERCASE_CHARACTERS","value":"('A'..'Z').to_a"},{"id":"RAW_GUEST_RESPONSE","name":"RAW_GUEST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Guest\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": false,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RAW_HASH_RESPONSE","name":"RAW_HASH_RESPONSE","value":"\"{\\n \\\"host\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJCWXpoYmV4W\\\",\\n \\\"short\\\": \\\"abc1234\\\"\\n }],\\n \\\"guest\\\": [{\\n \\\"cipher\\\": \\\"eyJwMnMiOiJaVVJsejNsb1\\\",\\n \\\"short\\\": \\\"def1234\\\"\\n }],\\n \\\"baseUrl\\\": \\\"https://somedomain.com/chat/\\\"\\n}\""},{"id":"RAW_HOST_RESPONSE","name":"RAW_HOST_RESPONSE","value":"\"{\\n \\\"userIdentifier\\\": \\\"Host\\\",\\n \\\"isLoggedIn\\\": false,\\n \\\"isHost\\\": true,\\n \\\"organizationId\\\": \\\"16917798-5582-49a7-92d0-4410f6964000\\\",\\n \\\"orgName\\\": \\\"PlaceOS\\\",\\n \\\"token\\\": \\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"spaceId\\\": \\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"visitId\\\": \\\"1\\\",\\n \\\"integrationType\\\": \\\"jose\\\"\\n}\""},{"id":"RETVAL","name":"RETVAL","value":"\"{\\n \\\"space_id\\\":\\\"Y2lzY29zcGFyazovL3VzL1JPT00vODhhZGM1ODAtOThmMi0xMWVjLThiYjQtZjM2MmNkNDBlZDQ1\\\",\\n \\\"host_token\\\":\\\"NmFmZGQwODYtZmIzNi00OTlmLWE3N2QtNzUyNzk2MDk4NDU5MjZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"guest_token\\\":\\\"NmFmZGQwODYtZmIzNi05OTlmLWE3N2QtMzUyNzk2MDk4NDU5MeZlNmM2YmQtNjY2_PF84_e2d06a2e-ac4e-464f-968d-a5f8a5ac6303\\\",\\n \\\"host_url\\\": \\\"https://somedomain.com/chat/abc1234\\\",\\n \\\"guest_url\\\": \\\"https://somedomain.com/chat/def1234\\\"\\n}\""},{"id":"SPACES_RESPONSE","name":"SPACES_RESPONSE","value":"[{\"id\" => 96978, \"location\" => {\"id\" => 775, \"scalingFactor\" => nil, \"raw\" => true, \"policy\" => true}, \"name\" => \"WS7-01\", \"srf\" => {\"x\" => 91, \"y\" => 2169, \"z\" => 0}, \"marker\" => {\"type\" => \"CIRCLE\", \"data\" => \"20\"}, \"category\" => {\"id\" => 297, \"name\" => \"Assigned Desks\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => true, \"iconUrl\" => nil, \"colorScheme\" => \"#ffb3b3\", \"orderingIndex\" => 113}, \"sensingPolicyId\" => 247, \"department\" => {\"id\" => 498, \"name\" => \"Sales\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => nil}, \"subCategory\" => {\"id\" => 194, \"name\" => \"None\", \"shortName\" => nil, \"showOnSignage\" => false, \"showInAnalytics\" => false, \"colorScheme\" => nil, \"orderingIndex\" => 194}, \"device\" => {\"id\" => 2016090160, \"displayName\" => \"1609010160\", \"updatedAt\" => nil, \"floorId\" => nil, \"shape\" => nil, \"coord\" => nil, \"blessId\" => 1609010160, \"blessQr\" => nil, \"accessedAt\" => \"2021-03-11T08:06:01.000+0000\", \"installedOn\" => nil, \"licenseeId\" => nil, \"hardware\" => nil, \"network\" => nil, \"itemId\" => nil}, \"markerUniqueId\" => \"K_2493713878097_18542\", \"live\" => false, \"capacity\" => 1, \"counter\" => \"NO_COUNTER\", \"serial\" => 1, \"locationId\" => 775, \"counted\" => true}].to_json"},{"id":"SYSTEM_STATUS","name":"SYSTEM_STATUS","value":"\" \\n 2014-02-12T15:02:19.037Z\\n \\n 3.0\\n \\n \\n Audio Only (Podcast). Balanced between file size & quality\\n Display Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n DualDisplay (Podcast/Vodcast/EchoPlayer). Optimized for file size & bandwidth\\n Dual Video (Podcast/Vodcast/EchoPlayer) -Balance between file size & quality\\n Dual Video (Podcast/Vodcast/EchoPlayer) -High Quality\\n Video Only (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Balanced between file size & quality\\n \\n \\n media\\n 2014-02-12T23:00:00.000Z\\n 3000\\n \\n Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014\\n
Underwater Basket Weaving 101 (UWBW-101-100) Spring 2014
\\n \\n John Doe\\n \\n \\n Display/Video (Podcast/Vodcast/EchoPlayer). Optimized for quality/full motion video\\n archive\\n \\n \\n \\n balanced\\n stereo\\n -6\\n 44100\\n 0\\n false\\n \\n \\n 1\\n dvi\\n 50\\n 50\\n 50\\n 10.0\\n 960\\n 720\\n true\\n true\\n \\n \\n 2\\n composite\\n 50\\n 50\\n 50\\n 29.97\\n 704\\n 480\\n true\\n false\\n ntsc\\n \\n \\n audio\\n aac\\n true\\n \\n 128000\\n lc\\n \\n \\n \\n graphics1\\n h264\\n \\n vbr\\n 736000\\n 1104000\\n base\\n 50\\n \\n \\n \\n graphics2\\n h264\\n \\n vbr\\n 1056000\\n 1584000\\n base\\n 150\\n \\n \\n \\n audio-archive\\n \\n file\\n audio.aac\\n \\n \\n \\n graphics1-archive\\n \\n file\\n display.h264\\n \\n \\n \\n graphics2-archive\\n \\n file\\n video.h264\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\""},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"WIRELESS_LOC","name":"WIRELESS_LOC","value":"{\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => 16.764784482481577, \"y\" => 25.435735950388988, \"lng\" => 55.274935030154325, \"lat\" => 25.201036346211698, \"variance\" => 7.944837533996209, \"last_seen\" => 1601526474, \"building\" => \"zone_1234\", \"level\" => \"zone_1234\"}"}],"included_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"extended_modules":[{"html_id":"drivers/Debug/KernelExtension","kind":"module","full_name":"Debug::KernelExtension","name":"KernelExtension"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/Spec/Expectations","kind":"module","full_name":"Spec::Expectations","name":"Expectations"},{"html_id":"drivers/Spec/Methods","kind":"module","full_name":"Spec::Methods","name":"Methods"}],"class_methods":[{"html_id":"create_request(mode:String,device_name:String,modbus_device:String,md5:String,file_time:String,file_descriptor:String,file_name:String,file:String|Nil)-class-method","name":"create_request","doc":"Some of these fields may not be present in every request but\nhaving them there doesn't hurt anything so why bother removing them","summary":"

Some of these fields may not be present in every request but having them there doesn't hurt anything so why bother removing them

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"args_string":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","args_html":"(mode : String, device_name : String, modbus_device : String, md5 : String, file_time : String, file_descriptor : String, file_name : String, file : String | Nil)","location":{"filename":"src/leviton/acquisuite_spec.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite_spec.cr#L87"},"def":{"name":"create_request","args":[{"name":"mode","external_name":"mode","restriction":"String"},{"name":"device_name","external_name":"device_name","restriction":"String"},{"name":"modbus_device","external_name":"modbus_device","restriction":"String"},{"name":"md5","external_name":"md5","restriction":"String"},{"name":"file_time","external_name":"file_time","restriction":"String"},{"name":"file_descriptor","external_name":"file_descriptor","restriction":"String"},{"name":"file_name","external_name":"file_name","restriction":"String"},{"name":"file","external_name":"file","restriction":"String | ::Nil"}],"visibility":"Public","body":"if file.nil?\n file = \"fileplaceholder\"\nend\n\"--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODE\\\"\\n\\n#{mode}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICENAME\\\"\\n\\n#{device_name}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MODBUSDEVICE\\\"\\n\\n#{modbus_device}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"MD5CHECKSUM\\\"\\n\\n#{md5}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"FILETIME\\\"\\n\\n#{file_time}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY\\nContent-Disposition: form-data; name=\\\"#{file_descriptor}\\\"; filename=\\\"#{file_name}\\\"\\nContent-Type: application/octet-stream;\\n\\n#{file}\\n--MIME_BOUNDRY_MIME_BOUNDRY_MIME_BOUNDRY--\\n\"\n"}},{"html_id":"generate_password(length:Int32|Nil=DEFAULT_PASSWORD_LENGTH,exclude:String|Nil=DEFAULT_PASSWORD_EXCLUDE,minimum_lowercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_LOWERCASE,minimum_uppercase:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_UPPERCASE,minimum_numbers:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_NUMBERS,minimum_symbols:Int32|Nil=DEFAULT_PASSWORD_MINIMUM_SYMBOLS):String-class-method","name":"generate_password","abstract":false,"args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"args_string":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","args_html":"(length : Int32 | Nil = DEFAULT_PASSWORD_LENGTH, exclude : String | Nil = DEFAULT_PASSWORD_EXCLUDE, minimum_lowercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_LOWERCASE, minimum_uppercase : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_UPPERCASE, minimum_numbers : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_NUMBERS, minimum_symbols : Int32 | Nil = DEFAULT_PASSWORD_MINIMUM_SYMBOLS) : String","location":{"filename":"src/place/password_generator_helper.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/password_generator_helper.cr#L14"},"def":{"name":"generate_password","args":[{"name":"length","default_value":"DEFAULT_PASSWORD_LENGTH","external_name":"length","restriction":"Int32 | ::Nil"},{"name":"exclude","default_value":"DEFAULT_PASSWORD_EXCLUDE","external_name":"exclude","restriction":"String | ::Nil"},{"name":"minimum_lowercase","default_value":"DEFAULT_PASSWORD_MINIMUM_LOWERCASE","external_name":"minimum_lowercase","restriction":"Int32 | ::Nil"},{"name":"minimum_uppercase","default_value":"DEFAULT_PASSWORD_MINIMUM_UPPERCASE","external_name":"minimum_uppercase","restriction":"Int32 | ::Nil"},{"name":"minimum_numbers","default_value":"DEFAULT_PASSWORD_MINIMUM_NUMBERS","external_name":"minimum_numbers","restriction":"Int32 | ::Nil"},{"name":"minimum_symbols","default_value":"DEFAULT_PASSWORD_MINIMUM_SYMBOLS","external_name":"minimum_symbols","restriction":"Int32 | ::Nil"}],"return_type":"String","visibility":"Public","body":"length || (length = DEFAULT_PASSWORD_LENGTH)\nexclude || (exclude = DEFAULT_PASSWORD_EXCLUDE)\nminimum_lowercase || (minimum_lowercase = DEFAULT_PASSWORD_MINIMUM_LOWERCASE)\nminimum_uppercase || (minimum_uppercase = DEFAULT_PASSWORD_MINIMUM_UPPERCASE)\nminimum_numbers || (minimum_numbers = DEFAULT_PASSWORD_MINIMUM_NUMBERS)\nminimum_symbols || (minimum_symbols = DEFAULT_PASSWORD_MINIMUM_SYMBOLS)\nminimums = ((minimum_lowercase + minimum_uppercase) + minimum_numbers) + minimum_symbols\nif length < minimums\n length = minimums\nend\ncharacters = [] of Char\nif minimum_lowercase > 0\n characters = PASSWORD_LOWERCASE_CHARACTERS\nend\nif minimum_uppercase > 0\n characters = characters + PASSWORD_UPPERCASE_CHARACTERS\nend\nif minimum_numbers > 0\n characters = characters + PASSWORD_NUMBER_CHARACTERS\nend\nif minimum_symbols > 0\n characters = characters + PASSWORD_SYMBOL_CHARACTERS\nend\ncharacters = characters - exclude.chars\nif characters.empty?\n characters = (PASSWORD_LOWERCASE_CHARACTERS + PASSWORD_NUMBER_CHARACTERS) - DEFAULT_PASSWORD_EXCLUDE.chars\nend\npassword = [] of Char\nminimum_lowercase.times do\n password << (PASSWORD_LOWERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_uppercase.times do\n password << (PASSWORD_UPPERCASE_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_numbers.times do\n password << (PASSWORD_NUMBER_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\nminimum_symbols.times do\n password << (PASSWORD_SYMBOL_CHARACTERS - exclude.chars).sample(random: Random::Secure)\nend\n(length - minimums).times do\n password << characters.sample(random: Random::Secure)\nend\npassword.shuffle(random: Random::Secure).join\n"}}],"types":[{"html_id":"drivers/AmberTech","path":"AmberTech.html","kind":"module","full_name":"AmberTech","name":"AmberTech","abstract":false,"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AmberTech/Devices","path":"AmberTech/Devices.html","kind":"class","full_name":"AmberTech::Devices","name":"Devices","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_ip:String-instance-method","name":"current_ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L37"},"def":{"name":"current_ip","return_type":"String","visibility":"Public","body":"@current_ip"}},{"html_id":"device_info:Array(DevInfo)-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L34"},"def":{"name":"device_info","return_type":"Array(DevInfo)","visibility":"Public","body":"@device_info"}}]},{"html_id":"drivers/AmberTech/DevInfo","path":"AmberTech/DevInfo.html","kind":"class","full_name":"AmberTech::DevInfo","name":"DevInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L16"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L17"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"ip_gateway:String-instance-method","name":"ip_gateway","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L23"},"def":{"name":"ip_gateway","return_type":"String","visibility":"Public","body":"@ip_gateway"}},{"html_id":"ip_subnet:String-instance-method","name":"ip_subnet","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L20"},"def":{"name":"ip_subnet","return_type":"String","visibility":"Public","body":"@ip_subnet"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"pass:String|Nil-instance-method","name":"pass","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L25"},"def":{"name":"pass","return_type":"String | ::Nil","visibility":"Public","body":"@pass"}},{"html_id":"pass2:String|Nil-instance-method","name":"pass2","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L26"},"def":{"name":"pass2","return_type":"String | ::Nil","visibility":"Public","body":"@pass2"}},{"html_id":"status:Status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L27"},"def":{"name":"status","return_type":"Status","visibility":"Public","body":"@status"}},{"html_id":"ver:String-instance-method","name":"ver","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L15"},"def":{"name":"ver","return_type":"String","visibility":"Public","body":"@ver"}}]},{"html_id":"drivers/AmberTech/Grandview","path":"AmberTech/Grandview.html","kind":"class","full_name":"AmberTech::Grandview","name":"Grandview","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L109"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:down)"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L113"},"def":{"name":"down?","visibility":"Public","body":"{\"closed\", \"closing\"}.includes?(self[\"status\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moveable interface","summary":"

moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L30"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"command = case position\nwhen .up?, .close?, .in?\n \"/Close.js?a=100\"\nwhen .down?, .open?, .out?\n \"/Open.js?a=100\"\nelse\n raise(\"unsupported move option: #{position}\")\nend\nqueue(name: \"move\") do |task|\n response = get(command, headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 2.seconds\nschedule.every(1.minute) do\n status\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L59"},"def":{"name":"status","visibility":"Public","body":"if queue.online\n queue(name: \"status\", priority: 0) do |task|\n response = perform_status_request\n if response.success?\n task.success(parse_status(response))\n else\n task.abort(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n end\nelse\n response = perform_status_request\n if response.success?\n parse_status(response)\n end\nend"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"stoppable interface","summary":"

stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/amber_tech/grandview.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L49"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"queue(name: \"stop\", priority: 999, clear_queue: emergency) do |task|\n response = get(\"/Stop.js?a=100\", headers: build_headers)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\n self[:status] = status = parse_state((StatusResp.from_json(response.body)).status)\n task.success(status)\nend"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","doc":"compatibility with Screen Technics","summary":"

compatibility with Screen Technics

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/amber_tech/grandview.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L101"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"move(:up)"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/amber_tech/grandview.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview.cr#L105"},"def":{"name":"up?","visibility":"Public","body":"{\"opened\", \"opening\"}.includes?(self[\"status\"]?)"}}]},{"html_id":"drivers/AmberTech/Status","path":"AmberTech/Status.html","kind":"enum","full_name":"AmberTech::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stop","name":"Stop","value":"0"},{"id":"Opening","name":"Opening","value":"1"},{"id":"Opened","name":"Opened","value":"2"},{"id":"Closing","name":"Closing","value":"3"},{"id":"Closed","name":"Closed","value":"4"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L9"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"closing?-instance-method","name":"closing?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L8"},"def":{"name":"closing?","visibility":"Public","body":"self == Closing"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == Opened"}},{"html_id":"opening?-instance-method","name":"opening?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L6"},"def":{"name":"opening?","visibility":"Public","body":"self == Opening"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L5"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/AmberTech/StatusResp","path":"AmberTech/StatusResp.html","kind":"class","full_name":"AmberTech::StatusResp","name":"StatusResp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amber_tech/grandview_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/AmberTech","kind":"module","full_name":"AmberTech","name":"AmberTech"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/amber_tech/grandview_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:Status|String-instance-method","name":"status","abstract":false,"location":{"filename":"src/amber_tech/grandview_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amber_tech/grandview_models.cr#L43"},"def":{"name":"status","return_type":"Status | String","visibility":"Public","body":"@status"}}]}]},{"html_id":"drivers/Amx","path":"Amx.html","kind":"module","full_name":"Amx","name":"Amx","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Amx/Svsi","path":"Amx/Svsi.html","kind":"module","full_name":"Amx::Svsi","name":"Svsi","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Amx","kind":"module","full_name":"Amx","name":"Amx"},"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","path":"Amx/Svsi/NSeriesDecoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"OutputModes","name":"OutputModes","value":"[\"auto\", \"1080p59.94\", \"1080p60\", \"720p60\", \"4K30\", \"4K25\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L41"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L49"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L208"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"live(state:Bool=true)-instance-method","name":"live","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L86"},"def":{"name":"live","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? do_send(Command::Live) : local(self[:playlist].as_i)"}},{"html_id":"local(playlist:Int32=0)-instance-method","name":"local","abstract":false,"args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"args_string":"(playlist : Int32 = 0)","args_html":"(playlist : Int32 = 0)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L90"},"def":{"name":"local","args":[{"name":"playlist","default_value":"0","external_name":"playlist","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Local, playlist)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L72"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\n do_send(Command::Mute, name: :mute)\n do_send(Command::SetAudio, 0)\nelse\n do_send(Command::SetAudio, @previous_stream || 0)\n do_send(Command::Unmute, name: :mute)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L37"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"output_resolution(mode:String)-instance-method","name":"output_resolution","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L108"},"def":{"name":"output_resolution","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if OutputModes.includes?(mode)\nelse\n logger.error do\n \"\\\"#{mode}\\\" is not a valid resolution\"\n end\n return\nend\ndo_send(Command::ModeSet, mode)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L174"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nprop, value = data.split(':')\ncase Response.from_mapped_value?(prop.downcase)\nin Response::Stream\n self[:video] = @stream = value.to_i\nin Response::StreamAudio\n stream_id = value.to_i\n self[:audio_actual] = stream_id\n self[:audio] = stream_id == 0 ? (@mute ? 0 : @stream) : stream_id\nin Response::Name\n self[:device_name] = value\nin Response::Playmode\n self[:local_playback] = value == \"local\"\nin Response::Playlist\n self[:playlist] = value.to_i\nin Response::Mute\n self[:mute] = @mute = value == \"1\"\nin Response::ScalerBypass\n self[:scaler_active] = value != \"no\"\nin Response::Mode\n self[:output_res] = value\nin Response::InputRes\n self[:input_res] = value\nin Nil\n raise(\"Unexpected response: #{prop}\")\nend\ntask.try(&.success)\n"}},{"html_id":"scaler(state:Bool)-instance-method","name":"scaler","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L94"},"def":{"name":"scaler","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"action = state ? Command::ScalerEnable : Command::ScalerDisable\ndo_send(action, name: :scaler)\n"}},{"html_id":"switch_audio(stream_id:Int32)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L62"},"def":{"name":"switch_audio","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"@previous_stream = stream_id\nunmute\n"}},{"html_id":"switch_kvm(ip_address:String,video_follow:Bool=true)-instance-method","name":"switch_kvm","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"args_string":"(ip_address : String, video_follow : Bool = true)","args_html":"(ip_address : String, video_follow : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L67"},"def":{"name":"switch_kvm","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"video_follow","default_value":"true","external_name":"video_follow","restriction":"Bool"}],"visibility":"Public","body":"host = \"#{ip_address},#{video_follow ? 1 : 0}\"\ndo_send(Command::SwitchKVM, host)\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L53"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"switch_video(input)\nswitch_audio(0)\n"}},{"html_id":"switch_video(stream_id:Int32)-instance-method","name":"switch_video","abstract":false,"args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"args_string":"(stream_id : Int32)","args_html":"(stream_id : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L58"},"def":{"name":"switch_video","args":[{"name":"stream_id","external_name":"stream_id","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Set, stream_id)"}},{"html_id":"videowall(width:Int32,height:Int32,x_pos:Int32,y_pos:Int32,scale:VideowallScalingMode=VideowallScalingMode::Auto)-instance-method","name":"videowall","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"args_string":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","args_html":"(width : Int32, height : Int32, x_pos : Int32, y_pos : Int32, scale : VideowallScalingMode = VideowallScalingMode::Auto)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L116"},"def":{"name":"videowall","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"x_pos","external_name":"x_pos","restriction":"Int32"},{"name":"y_pos","external_name":"y_pos","restriction":"Int32"},{"name":"scale","default_value":"VideowallScalingMode::Auto","external_name":"scale","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"if width > 1 && height > 1\n videowall_size(width, height)\n videowall_position(x_pos, y_pos)\n videowall_scaling(scale)\n videowall_enable\nelse\n videowall_disable\nend"}},{"html_id":"videowall_disable-instance-method","name":"videowall_disable","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L138"},"def":{"name":"videowall_disable","visibility":"Public","body":"videowall_enable(false)"}},{"html_id":"videowall_enable(state:Bool=true)-instance-method","name":"videowall_enable","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L133"},"def":{"name":"videowall_enable","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? \"on\" : \"off\"\ndo_send(Command::SetSettings, \"wallEnable\", state)\n"}},{"html_id":"videowall_position(x:Int32,y:Int32)-instance-method","name":"videowall_position","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L147"},"def":{"name":"videowall_position","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallMonPosV\", x)\ndo_send(Command::SetSettings, \"wallMonPosH\", y)\n"}},{"html_id":"videowall_scaling(scaling_mode:VideowallScalingMode)-instance-method","name":"videowall_scaling","abstract":false,"args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"args_string":"(scaling_mode : VideowallScalingMode)","args_html":"(scaling_mode : VideowallScalingMode)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L158"},"def":{"name":"videowall_scaling","args":[{"name":"scaling_mode","external_name":"scaling_mode","restriction":"VideowallScalingMode"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallStretch\", scaling_mode)"}},{"html_id":"videowall_size(width:Int32,height:Int32)-instance-method","name":"videowall_size","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32)","args_html":"(width : Int32, height : Int32)","location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L142"},"def":{"name":"videowall_size","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::SetSettings, \"wallHorMons\", width)\ndo_send(Command::SetSettings, \"wallVerMons\", height)\n"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Command","path":"Amx/Svsi/NSeriesDecoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"Set","name":"Set","value":"1"},{"id":"SetSettings","name":"SetSettings","value":"2"},{"id":"SwitchKVM","name":"SwitchKVM","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Unmute","name":"Unmute","value":"5"},{"id":"SetAudio","name":"SetAudio","value":"6"},{"id":"Live","name":"Live","value":"7"},{"id":"Local","name":"Local","value":"8"},{"id":"ScalerEnable","name":"ScalerEnable","value":"9"},{"id":"ScalerDisable","name":"ScalerDisable","value":"10"},{"id":"ModeSet","name":"ModeSet","value":"11"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mode_set?-instance-method","name":"mode_set?","abstract":false,"def":{"name":"mode_set?","visibility":"Public","body":"self == ModeSet"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"scaler_disable?-instance-method","name":"scaler_disable?","abstract":false,"def":{"name":"scaler_disable?","visibility":"Public","body":"self == ScalerDisable"}},{"html_id":"scaler_enable?-instance-method","name":"scaler_enable?","abstract":false,"def":{"name":"scaler_enable?","visibility":"Public","body":"self == ScalerEnable"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"def":{"name":"set?","visibility":"Public","body":"self == Set"}},{"html_id":"set_audio?-instance-method","name":"set_audio?","abstract":false,"def":{"name":"set_audio?","visibility":"Public","body":"self == SetAudio"}},{"html_id":"set_settings?-instance-method","name":"set_settings?","abstract":false,"def":{"name":"set_settings?","visibility":"Public","body":"self == SetSettings"}},{"html_id":"switch_kvm?-instance-method","name":"switch_kvm?","abstract":false,"def":{"name":"switch_kvm?","visibility":"Public","body":"self == SwitchKVM"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/Response","path":"Amx/Svsi/NSeriesDecoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Stream","name":"Stream","value":"0"},{"id":"StreamAudio","name":"StreamAudio","value":"1"},{"id":"Name","name":"Name","value":"2"},{"id":"Playmode","name":"Playmode","value":"3"},{"id":"Playlist","name":"Playlist","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"ScalerBypass","name":"ScalerBypass","value":"6"},{"id":"Mode","name":"Mode","value":"7"},{"id":"InputRes","name":"InputRes","value":"8"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"input_res?-instance-method","name":"input_res?","abstract":false,"def":{"name":"input_res?","visibility":"Public","body":"self == InputRes"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playlist?-instance-method","name":"playlist?","abstract":false,"def":{"name":"playlist?","visibility":"Public","body":"self == Playlist"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"scaler_bypass?-instance-method","name":"scaler_bypass?","abstract":false,"def":{"name":"scaler_bypass?","visibility":"Public","body":"self == ScalerBypass"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}},{"html_id":"stream_audio?-instance-method","name":"stream_audio?","abstract":false,"def":{"name":"stream_audio?","visibility":"Public","body":"self == StreamAudio"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesDecoder/VideowallScalingMode","path":"Amx/Svsi/NSeriesDecoder/VideowallScalingMode.html","kind":"enum","full_name":"Amx::Svsi::NSeriesDecoder::VideowallScalingMode","name":"VideowallScalingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L152"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Fit","name":"Fit","value":"1"},{"id":"Stretch","name":"Stretch","value":"2"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesDecoder","kind":"class","full_name":"Amx::Svsi::NSeriesDecoder","name":"NSeriesDecoder"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L153"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"fit?-instance-method","name":"fit?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L154"},"def":{"name":"fit?","visibility":"Public","body":"self == Fit"}},{"html_id":"stretch?-instance-method","name":"stretch?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_decoder.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_decoder.cr#L155"},"def":{"name":"stretch?","visibility":"Public","body":"self == Stretch"}}]}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","path":"Amx/Svsi/NSeriesEncoder.html","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L8"},{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CommonCommands","name":"CommonCommands","value":"[:monitor, :monitornotify, :live, :local, :serial, :readresponse, :sendir, :sendirraw, :audioon, :audiooff, :enablehdmiaudio, :disablehdmiaudio, :autohdmiaudio, :record, :dsrecord, :dvrswitch1, :dvrswitch2, :mpeg, :mpegall, :deletempegfile, :play, :stop, :pause, :unpause, :fastforward, :rewind, :deletefile, :stepforward, :stepreverse, :stoprecord, :recordhold, :recordrelease, :playhold, :playrelease, :deleteallplaylist, :deleteallmpegs, :remotecopy, :wpswitch, :wpaudioin, :wpactive, :wpinactive, :wpaudioon, :wpaudiooff, :wpmodeon, :wpmodeoff, :wparrange, :wpbackground, :wpcrop, :wppriority, :wpbordon, :wpbordoff, :wppreset, :atrswitch, :atrmute, :atrunmute, :atrtxmute, :atrtxunmute, :atrhpvol, :atrlovol, :atrlovolup, :atrlovoldown, :atrhpvolup, :atrhpvoldown, :openrelay, :closerelay, :videowall, :script, :goto, :tcpclient, :udpclient, :reboot, :gc_serial, :gc_openrelay, :gc_closerelay, :gc_ir]"},{"id":"Modes","name":"Modes","value":"(1..8).map(&.to_s)"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"atrhpvol(ip_address:String,*args,**options)-instance-method","name":"atrhpvol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvol\", ip_address, *args, **options)"}},{"html_id":"atrhpvoldown(ip_address:String,*args,**options)-instance-method","name":"atrhpvoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvoldown\", ip_address, *args, **options)"}},{"html_id":"atrhpvolup(ip_address:String,*args,**options)-instance-method","name":"atrhpvolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrhpvolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrhpvolup\", ip_address, *args, **options)"}},{"html_id":"atrlovol(ip_address:String,*args,**options)-instance-method","name":"atrlovol","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovol","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovol\", ip_address, *args, **options)"}},{"html_id":"atrlovoldown(ip_address:String,*args,**options)-instance-method","name":"atrlovoldown","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovoldown","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovoldown\", ip_address, *args, **options)"}},{"html_id":"atrlovolup(ip_address:String,*args,**options)-instance-method","name":"atrlovolup","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrlovolup","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrlovolup\", ip_address, *args, **options)"}},{"html_id":"atrmute(ip_address:String,*args,**options)-instance-method","name":"atrmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrmute\", ip_address, *args, **options)"}},{"html_id":"atrswitch(ip_address:String,*args,**options)-instance-method","name":"atrswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrswitch\", ip_address, *args, **options)"}},{"html_id":"atrtxmute(ip_address:String,*args,**options)-instance-method","name":"atrtxmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxmute\", ip_address, *args, **options)"}},{"html_id":"atrtxunmute(ip_address:String,*args,**options)-instance-method","name":"atrtxunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrtxunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrtxunmute\", ip_address, *args, **options)"}},{"html_id":"atrunmute(ip_address:String,*args,**options)-instance-method","name":"atrunmute","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"atrunmute","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"atrunmute\", ip_address, *args, **options)"}},{"html_id":"audiofollow(output:InOut,*args,**options)-instance-method","name":"audiofollow","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"audiofollow","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiofollow\", get_output(output), *args, **options)"}},{"html_id":"audiooff(ip_address:String,*args,**options)-instance-method","name":"audiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audiooff\", ip_address, *args, **options)"}},{"html_id":"audioon(ip_address:String,*args,**options)-instance-method","name":"audioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"audioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"audioon\", ip_address, *args, **options)"}},{"html_id":"autocc(input:InOut,*args,**options)-instance-method","name":"autocc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"autocc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autocc\", get_input(input), *args, **options)"}},{"html_id":"autohdmiaudio(ip_address:String,*args,**options)-instance-method","name":"autohdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"autohdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"autohdmiaudio\", ip_address, *args, **options)"}},{"html_id":"closerelay(ip_address:String,*args,**options)-instance-method","name":"closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"closerelay\", ip_address, *args, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"@lookup.each_key do |ip_address|\n monitor(ip_address, priority: 0)\n monitornotify(ip_address, priority: 0)\nend\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Maintaining Connection --\"\n end\n monitornotify(@list.first, priority: 0)\nend\n"}},{"html_id":"cropref(output:InOut,*args,**options)-instance-method","name":"cropref","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"cropref","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"cropref\", get_output(output), *args, **options)"}},{"html_id":"deleteallmpegs(ip_address:String,*args,**options)-instance-method","name":"deleteallmpegs","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallmpegs","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallmpegs\", ip_address, *args, **options)"}},{"html_id":"deleteallplaylist(ip_address:String,*args,**options)-instance-method","name":"deleteallplaylist","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deleteallplaylist","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deleteallplaylist\", ip_address, *args, **options)"}},{"html_id":"deletefile(ip_address:String,*args,**options)-instance-method","name":"deletefile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletefile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletefile\", ip_address, *args, **options)"}},{"html_id":"deletempegfile(ip_address:String,*args,**options)-instance-method","name":"deletempegfile","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"deletempegfile","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"deletempegfile\", ip_address, *args, **options)"}},{"html_id":"disablecc(input:InOut,*args,**options)-instance-method","name":"disablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"disablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablecc\", get_input(input), *args, **options)"}},{"html_id":"disablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"disablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"disablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"disablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L48"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::GetStatus, priority: 0)"}},{"html_id":"do_send(command:Command,*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(command : Command, *args, **options)","args_html":"(command : Command, *args, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L111"},"def":{"name":"do_send","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"arguments = [command.mapped_value]\nif (splat = args.to_a).is_a?(Array(NoReturn))\nelse\n arguments = arguments + splat\nend\nrequest = \"#{arguments.join(':')}#{DELIMITER}\"\nsend(request, **options)\n"}},{"html_id":"do_send(*args,**options)-instance-method","name":"do_send","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L201"},"def":{"name":"do_send","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"cmd = args.join(' ')\nlogger.debug do\n \"sending #{cmd}\"\nend\nsend(\"#{cmd}\\r\\n\", **options)\n"}},{"html_id":"dsrecord(ip_address:String,*args,**options)-instance-method","name":"dsrecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dsrecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dsrecord\", ip_address, *args, **options)"}},{"html_id":"dvioff(output:InOut,*args,**options)-instance-method","name":"dvioff","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvioff","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvioff\", get_output(output), *args, **options)"}},{"html_id":"dvion(output:InOut,*args,**options)-instance-method","name":"dvion","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"dvion","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvion\", get_output(output), *args, **options)"}},{"html_id":"dvrswitch1(ip_address:String,*args,**options)-instance-method","name":"dvrswitch1","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch1","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch1\", ip_address, *args, **options)"}},{"html_id":"dvrswitch2(ip_address:String,*args,**options)-instance-method","name":"dvrswitch2","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"dvrswitch2","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"dvrswitch2\", ip_address, *args, **options)"}},{"html_id":"enablecc(input:InOut,*args,**options)-instance-method","name":"enablecc","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"enablecc","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablecc\", get_input(input), *args, **options)"}},{"html_id":"enablehdmiaudio(ip_address:String,*args,**options)-instance-method","name":"enablehdmiaudio","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"enablehdmiaudio","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"enablehdmiaudio\", ip_address, *args, **options)"}},{"html_id":"fastforward(ip_address:String,*args,**options)-instance-method","name":"fastforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"fastforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"fastforward\", ip_address, *args, **options)"}},{"html_id":"gc_closerelay(ip_address:String,*args,**options)-instance-method","name":"gc_closerelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_closerelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_closerelay\", ip_address, *args, **options)"}},{"html_id":"gc_ir(ip_address:String,*args,**options)-instance-method","name":"gc_ir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_ir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_ir\", ip_address, *args, **options)"}},{"html_id":"gc_openrelay(ip_address:String,*args,**options)-instance-method","name":"gc_openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_openrelay\", ip_address, *args, **options)"}},{"html_id":"gc_serial(ip_address:String,*args,**options)-instance-method","name":"gc_serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"gc_serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"gc_serial\", ip_address, *args, **options)"}},{"html_id":"getStatus(output:InOut,*args,**options)-instance-method","name":"getStatus","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"getStatus","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"getStatus\", get_output(output), *args, **options)"}},{"html_id":"goto(ip_address:String,*args,**options)-instance-method","name":"goto","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"goto","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"goto\", ip_address, *args, **options)"}},{"html_id":"live(ip_address:String,*args,**options)-instance-method","name":"live","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"live","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"live\", ip_address, *args, **options)"}},{"html_id":"local(ip_address:String,*args,**options)-instance-method","name":"local","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"local","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"local\", ip_address, *args, **options)"}},{"html_id":"media_source(mode:String)-instance-method","name":"media_source","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L58"},"def":{"name":"media_source","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"if mode == \"live\"\n do_send(Command::Live)\nelse\n if Modes.includes?(mode)\n do_send(Command::Local, mode)\n else\n raise(\"invalid mode #{mode}\")\n end\nend"}},{"html_id":"modeoff(input:InOut,*args,**options)-instance-method","name":"modeoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"modeoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"modeoff\", get_input(input), *args, **options)"}},{"html_id":"monitor(ip_address:String,*args,**options)-instance-method","name":"monitor","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitor","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitor\", ip_address, *args, **options)"}},{"html_id":"monitornotify(ip_address:String,*args,**options)-instance-method","name":"monitornotify","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"monitornotify","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"monitornotify\", ip_address, *args, **options)"}},{"html_id":"mpeg(ip_address:String,*args,**options)-instance-method","name":"mpeg","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpeg","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpeg\", ip_address, *args, **options)"}},{"html_id":"mpegall(ip_address:String,*args,**options)-instance-method","name":"mpegall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"mpegall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"mpegall\", ip_address, *args, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L155"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"address = index.is_a?(Int32) && (val = @encoders[index]? || @decoders[index]?) ? val : index.as(String)\nif state\n if layer.audio_video? || layer.video?\n dvioff(address)\n end\n if layer.audio_video? || layer.audio?\n audiooff(address)\n end\nelse\n if layer.audio_video? || layer.video?\n dvion(address)\n end\n if layer.audio_video? || layer.audio?\n audioon(address)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = (setting?(Hash(String, String), :inputs)) || ({} of String => String)\n@outputs = (setting?(Hash(String, String), :outputs)) || ({} of String => String)\n@encoders = @inputs.keys\n@decoders = @outputs.keys\n@lookup = @inputs.merge(@outputs)\n@list = @encoders + @decoders\n"}},{"html_id":"openrelay(ip_address:String,*args,**options)-instance-method","name":"openrelay","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"openrelay","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"openrelay\", ip_address, *args, **options)"}},{"html_id":"pause(ip_address:String,*args,**options)-instance-method","name":"pause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"pause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"pause\", ip_address, *args, **options)"}},{"html_id":"play(ip_address:String,*args,**options)-instance-method","name":"play","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"play","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"play\", ip_address, *args, **options)"}},{"html_id":"playhold(ip_address:String,*args,**options)-instance-method","name":"playhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playhold\", ip_address, *args, **options)"}},{"html_id":"playrelease(ip_address:String,*args,**options)-instance-method","name":"playrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"playrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"playrelease\", ip_address, *args, **options)"}},{"html_id":"readresponse(ip_address:String,*args,**options)-instance-method","name":"readresponse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"readresponse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"readresponse\", ip_address, *args, **options)"}},{"html_id":"reboot(ip_address:String,*args,**options)-instance-method","name":"reboot","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"reboot","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"reboot\", ip_address, *args, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L170"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received: #{data}\"\nend\nresp = data.split(':')\ncase resp.size\nwhen 13\n self[resp[0]] = {communications: resp[1] == \"1\", dvioff: resp[2] == \"1\", scaler: resp[3] == \"1\", source_detected: resp[4] == \"1\", mode: resp[5], audio_enabled: resp[6] == \"1\", video_stream: resp[7].to_i, audio_stream: resp[8] == \"follow video\" ? resp[8] : resp[8].to_i, playlist: resp[9], colorspace: resp[10], hdmiaudio: resp[11], resolution: resp[12]}\nwhen 10\n self[resp[0]] = resp\nelse\n logger.warn do\n \"unknown response type: #{resp}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"record(ip_address:String,*args,**options)-instance-method","name":"record","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"record","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"record\", ip_address, *args, **options)"}},{"html_id":"recordhold(ip_address:String,*args,**options)-instance-method","name":"recordhold","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordhold","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordhold\", ip_address, *args, **options)"}},{"html_id":"recordrelease(ip_address:String,*args,**options)-instance-method","name":"recordrelease","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"recordrelease","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"recordrelease\", ip_address, *args, **options)"}},{"html_id":"remotecopy(ip_address:String,*args,**options)-instance-method","name":"remotecopy","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"remotecopy","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"remotecopy\", ip_address, *args, **options)"}},{"html_id":"rewind(ip_address:String,*args,**options)-instance-method","name":"rewind","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"rewind","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"rewind\", ip_address, *args, **options)"}},{"html_id":"script(ip_address:String,*args,**options)-instance-method","name":"script","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"script","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"script\", ip_address, *args, **options)"}},{"html_id":"sendir(ip_address:String,*args,**options)-instance-method","name":"sendir","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendir","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendir\", ip_address, *args, **options)"}},{"html_id":"sendirraw(ip_address:String,*args,**options)-instance-method","name":"sendirraw","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"sendirraw","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"sendirraw\", ip_address, *args, **options)"}},{"html_id":"serial(ip_address:String,*args,**options)-instance-method","name":"serial","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"serial","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"serial\", ip_address, *args, **options)"}},{"html_id":"serialhex(ip_address:String,wait_time:Int32=1,*data,**options)-instance-method","name":"serialhex","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"args_string":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","args_html":"(ip_address : String, wait_time : Int32 = 1, *data, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L85"},"def":{"name":"serialhex","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"wait_time","default_value":"1","external_name":"wait_time","restriction":"Int32"},{"name":"data","external_name":"data","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":2,"visibility":"Public","body":"do_send(\"serialhex\", wait_time, ip_address, *data, **options)"}},{"html_id":"stepforward(ip_address:String,*args,**options)-instance-method","name":"stepforward","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepforward","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepforward\", ip_address, *args, **options)"}},{"html_id":"stepreverse(ip_address:String,*args,**options)-instance-method","name":"stepreverse","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stepreverse","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stepreverse\", ip_address, *args, **options)"}},{"html_id":"stop(ip_address:String,*args,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stop\", ip_address, *args, **options)"}},{"html_id":"stoprecord(ip_address:String,*args,**options)-instance-method","name":"stoprecord","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"stoprecord","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"stoprecord\", ip_address, *args, **options)"}},{"html_id":"switch(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L103"},"def":{"name":"switch","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n dvion(output_actual, **options)\n audioon(output_actual, **options)\n audiofollow(output_actual, **options)\n self[\"video#{output_actual}\"] = input_actual\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switch, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n output_actual = get_output(o)\n dvioff(output_actual, **options)\n audiooff(output_actual, **options)\n end\n end\nend"}},{"html_id":"switch_audio(inouts:Hash(Int32,InOut|Array(InOut)),**options)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"args_string":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","args_html":"(inouts : Hash(Int32, InOut | Array(InOut)), **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L131"},"def":{"name":"switch_audio","args":[{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, InOut | Array(InOut))"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, output|\n outputs = output.is_a?(InOut) ? [output] : output\n if input != 0\n input_actual = get_input(input)\n outputs.each do |o|\n output_actual = get_output(o)\n audioon(input_actual, **options)\n audioon(output_actual, **options)\n self[\"audio#{output_actual}\"] = input_actual\n do_send(:switchaudio, output_actual, input_actual, **options)\n end\n else\n outputs.each do |o|\n audiooff(get_output(o), **options)\n end\n end\nend"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L52"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::VideoSource, input, **options)"}},{"html_id":"tcpclient(ip_address:String,*args,**options)-instance-method","name":"tcpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"tcpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"tcpclient\", ip_address, *args, **options)"}},{"html_id":"udpclient(ip_address:String,*args,**options)-instance-method","name":"udpclient","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"udpclient","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"udpclient\", ip_address, *args, **options)"}},{"html_id":"uncompressedoff(input:InOut,*args,**options)-instance-method","name":"uncompressedoff","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(input : InOut, *args, **options)","args_html":"(input : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L90"},"def":{"name":"uncompressedoff","args":[{"name":"input","external_name":"input","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"uncompressedoff\", get_input(input), *args, **options)"}},{"html_id":"unpause(ip_address:String,*args,**options)-instance-method","name":"unpause","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"unpause","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"unpause\", ip_address, *args, **options)"}},{"html_id":"videowall(ip_address:String,*args,**options)-instance-method","name":"videowall","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"videowall","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"videowall\", ip_address, *args, **options)"}},{"html_id":"volume(output:InOut,*args,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(output : InOut, *args, **options)","args_html":"(output : InOut, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L97"},"def":{"name":"volume","args":[{"name":"output","external_name":"output","restriction":"InOut"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"volume\", get_output(output), *args, **options)"}},{"html_id":"wpactive(ip_address:String,*args,**options)-instance-method","name":"wpactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpactive\", ip_address, *args, **options)"}},{"html_id":"wparrange(ip_address:String,*args,**options)-instance-method","name":"wparrange","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wparrange","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wparrange\", ip_address, *args, **options)"}},{"html_id":"wpaudioin(ip_address:String,*args,**options)-instance-method","name":"wpaudioin","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioin","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioin\", ip_address, *args, **options)"}},{"html_id":"wpaudiooff(ip_address:String,*args,**options)-instance-method","name":"wpaudiooff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudiooff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudiooff\", ip_address, *args, **options)"}},{"html_id":"wpaudioon(ip_address:String,*args,**options)-instance-method","name":"wpaudioon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpaudioon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpaudioon\", ip_address, *args, **options)"}},{"html_id":"wpbackground(ip_address:String,*args,**options)-instance-method","name":"wpbackground","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbackground","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbackground\", ip_address, *args, **options)"}},{"html_id":"wpbordoff(ip_address:String,*args,**options)-instance-method","name":"wpbordoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordoff\", ip_address, *args, **options)"}},{"html_id":"wpbordon(ip_address:String,*args,**options)-instance-method","name":"wpbordon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpbordon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpbordon\", ip_address, *args, **options)"}},{"html_id":"wpcrop(ip_address:String,*args,**options)-instance-method","name":"wpcrop","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpcrop","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpcrop\", ip_address, *args, **options)"}},{"html_id":"wpinactive(ip_address:String,*args,**options)-instance-method","name":"wpinactive","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpinactive","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpinactive\", ip_address, *args, **options)"}},{"html_id":"wpmodeoff(ip_address:String,*args,**options)-instance-method","name":"wpmodeoff","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeoff","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeoff\", ip_address, *args, **options)"}},{"html_id":"wpmodeon(ip_address:String,*args,**options)-instance-method","name":"wpmodeon","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpmodeon","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpmodeon\", ip_address, *args, **options)"}},{"html_id":"wppreset(ip_address:String,*args,**options)-instance-method","name":"wppreset","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppreset","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppreset\", ip_address, *args, **options)"}},{"html_id":"wppriority(ip_address:String,*args,**options)-instance-method","name":"wppriority","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wppriority","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wppriority\", ip_address, *args, **options)"}},{"html_id":"wpswitch(ip_address:String,*args,**options)-instance-method","name":"wpswitch","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(ip_address : String, *args, **options)","args_html":"(ip_address : String, *args, **options)","location":{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L79"},"def":{"name":"wpswitch","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":1,"visibility":"Public","body":"do_send(\"wpswitch\", ip_address, *args, **options)"}}],"types":[{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Command","path":"Amx/Svsi/NSeriesEncoder/Command.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"GetStatus","name":"GetStatus","value":"0"},{"id":"VideoSource","name":"VideoSource","value":"1"},{"id":"Live","name":"Live","value":"2"},{"id":"Local","name":"Local","value":"3"},{"id":"Disable","name":"Disable","value":"4"},{"id":"Mute","name":"Mute","value":"5"},{"id":"Unmute","name":"Unmute","value":"6"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"disable?-instance-method","name":"disable?","abstract":false,"def":{"name":"disable?","visibility":"Public","body":"self == Disable"}},{"html_id":"get_status?-instance-method","name":"get_status?","abstract":false,"def":{"name":"get_status?","visibility":"Public","body":"self == GetStatus"}},{"html_id":"live?-instance-method","name":"live?","abstract":false,"def":{"name":"live?","visibility":"Public","body":"self == Live"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"unmute?-instance-method","name":"unmute?","abstract":false,"def":{"name":"unmute?","visibility":"Public","body":"self == Unmute"}},{"html_id":"video_source?-instance-method","name":"video_source?","abstract":false,"def":{"name":"video_source?","visibility":"Public","body":"self == VideoSource"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/InOut","path":"Amx/Svsi/NSeriesEncoder/InOut.html","kind":"alias","full_name":"Amx::Svsi::NSeriesEncoder::InOut","name":"InOut","abstract":false,"locations":[{"filename":"src/amx/svsi/n_series_switcher.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_switcher.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Int32 | String)","aliased_html":"Int32 | String","const":false,"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"}},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Input","path":"Amx/Svsi/NSeriesEncoder/Input.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmionly","name":"Hdmionly","value":"0"},{"id":"Vgaonly","name":"Vgaonly","value":"1"},{"id":"Hdmivga","name":"Hdmivga","value":"2"},{"id":"Vgahdmi","name":"Vgahdmi","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"hdmionly?-instance-method","name":"hdmionly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L12"},"def":{"name":"hdmionly?","visibility":"Public","body":"self == Hdmionly"}},{"html_id":"hdmivga?-instance-method","name":"hdmivga?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L14"},"def":{"name":"hdmivga?","visibility":"Public","body":"self == Hdmivga"}},{"html_id":"vgahdmi?-instance-method","name":"vgahdmi?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L15"},"def":{"name":"vgahdmi?","visibility":"Public","body":"self == Vgahdmi"}},{"html_id":"vgaonly?-instance-method","name":"vgaonly?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L13"},"def":{"name":"vgaonly?","visibility":"Public","body":"self == Vgaonly"}}]},{"html_id":"drivers/Amx/Svsi/NSeriesEncoder/Response","path":"Amx/Svsi/NSeriesEncoder/Response.html","kind":"enum","full_name":"Amx::Svsi::NSeriesEncoder::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L82"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Name","name":"Name","value":"0"},{"id":"Stream","name":"Stream","value":"1"},{"id":"Playmode","name":"Playmode","value":"2"},{"id":"Mute","name":"Mute","value":"3"}],"namespace":{"html_id":"drivers/Amx/Svsi/NSeriesEncoder","kind":"class","full_name":"Amx::Svsi::NSeriesEncoder","name":"NSeriesEncoder"},"instance_methods":[{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L86"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L83"},"def":{"name":"name?","visibility":"Public","body":"self == Name"}},{"html_id":"playmode?-instance-method","name":"playmode?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L85"},"def":{"name":"playmode?","visibility":"Public","body":"self == Playmode"}},{"html_id":"stream?-instance-method","name":"stream?","abstract":false,"location":{"filename":"src/amx/svsi/n_series_encoder.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/n_series_encoder.cr#L84"},"def":{"name":"stream?","visibility":"Public","body":"self == Stream"}}]}]},{"html_id":"drivers/Amx/Svsi/VirtualSwitcher","path":"Amx/Svsi/VirtualSwitcher.html","kind":"class","full_name":"Amx::Svsi::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Amx/Svsi","kind":"module","full_name":"Amx::Svsi","name":"Svsi"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L22"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nconnect(map) do |mod, stream|\n if layer.all? || layer.audio?\n mod.switch_audio(stream)\n end\n if layer.all? || layer.video?\n mod.switch_video(stream)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/amx/svsi/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/amx/svsi/virtual_switcher.cr#L18"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"decoders.each(&.switch_to(input))"}}]}]}]},{"html_id":"drivers/Ashrae","path":"Ashrae.html","kind":"module","full_name":"Ashrae","name":"Ashrae","abstract":false,"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Ashrae/BACnet","path":"Ashrae/BACnet.html","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L157"},"def":{"name":"connected","visibility":"Public","body":"bbmd_ip = setting?(String, :bbmd_ip)\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"device(device_id:UInt32)-instance-method","name":"device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L205"},"def":{"name":"device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device_details((get_device(device_id)).not_nil!)"}},{"html_id":"devices-instance-method","name":"devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L209"},"def":{"name":"devices","visibility":"Public","body":"device_registry.devices.map do |device|\n device_details(device)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L55"},"def":{"name":"on_load","visibility":"Public","body":"server = UDPSocket.new\nserver.bind(\"0.0.0.0\", 47808)\nserver.write_timeout = 200.milliseconds\n@udp_server = server\nqueue.timeout = 2.seconds\nclient = ::BACnet::Client::IPv4.new(0, 2.seconds)\nclient.on_transmit do |message, address|\n if address.address == Socket::IPAddress::BROADCAST\n if @bbmd_forwarding.size == 4\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::ForwardedNPDU\n message.data_link.address.ip1 = @bbmd_forwarding[0]\n message.data_link.address.ip2 = @bbmd_forwarding[1]\n message.data_link.address.ip3 = @bbmd_forwarding[2]\n message.data_link.address.ip4 = @bbmd_forwarding[3]\n message.data_link.address.port = 47808_u16\n end\n logger.debug do\n \"sending broadcase message #{message.inspect}\"\n end\n devices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\n devices.each do |dev|\n begin\n server.send(message, to: dev.address)\n rescue error\n logger.warn(exception: error) do\n \"error sending message to #{dev.address}\"\n end\n end\n end\n message.data_link.request_type = ::BACnet::Message::IPv4::Request::DistributeBroadcastToNetwork\n payload = DispatchProtocol.new\n payload.message = DispatchProtocol::MessageType::WRITE\n payload.ip_address = @bbmd_ip.address\n payload.id_or_port = @bbmd_ip.port.to_u64\n payload.data = message.to_slice\n transport.send(payload.to_slice)\n else\n server.send(message, to: address)\n end\nend\n@bacnet_client = client\nregistry = ::BACnet::Client::DeviceRegistry.new(client, logger)\nregistry.on_new_device do |device|\n new_device_found(device)\nend\n@device_registry = registry\nspawn do\n process_data(server, client)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L128"},"def":{"name":"on_unload","visibility":"Public","body":"udp_server.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L132"},"def":{"name":"on_update","visibility":"Public","body":"bbmd_ip = (setting?(String, :bbmd_ip)) || \"\"\nbbmd_forwarding = (setting?(String, :bbmd_forwarding)) || \"\"\n@bbmd_forwarding = (bbmd_forwarding.strip.split(\".\")).select(&.presence).map(&.to_u8)\nif bbmd_ip.presence\n @bbmd_ip = Socket::IPAddress.new(bbmd_ip, 47808)\nend\n@verbose_debug = (setting?(Bool, :verbose_debug)) || false\nschedule.clear\nschedule.in(5.seconds) do\n query_known_devices\nend\npoll_period = (setting?(UInt32, :poll_period)) || 3\nschedule.every(poll_period.minutes) do\n logger.debug do\n \"--- Polling all known bacnet devices\"\n end\n keys = @mutex.synchronize do\n @devices.keys\n end\n keys.each do |device_id|\n poll_device(device_id)\n end\nend\nif bbmd_ip.presence\n perform_discovery\nend\n"}},{"html_id":"packets_processed:UInt64-instance-method","name":"packets_processed","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L153"},"def":{"name":"packets_processed","visibility":"Public","body":"@packets_processed"}},{"html_id":"perform_discovery:Nil-instance-method","name":"perform_discovery","doc":"Performs a WhoIs discovery against the BACnet network","summary":"

Performs a WhoIs discovery against the BACnet network

","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L258"},"def":{"name":"perform_discovery","return_type":"Nil","visibility":"Public","body":"bacnet_client.who_is"}},{"html_id":"poll_device(device_id:UInt32)-instance-method","name":"poll_device","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"args_string":"(device_id : UInt32)","args_html":"(device_id : UInt32)","location":{"filename":"src/ashrae/bacnet.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L232"},"def":{"name":"poll_device","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"}],"visibility":"Public","body":"device = get_device(device_id)\nif device\nelse\n return false\nend\nclient = bacnet_client\nobjects = @mutex.synchronize do\n device.objects.dup\nend\nobjects.each do |obj|\n if obj.object_type.in?(::BACnet::Client::DeviceRegistry::OBJECTS_WITH_VALUES)\n else\n next\n end\n name = object_binding(device_id, obj)\n queue(name: name, priority: 0, timeout: 500.milliseconds) do |task|\n spawn_action(task) do\n obj.sync_value(client)\n self[name] = object_value(obj)\n end\n end\n Fiber.yield\nend\ntrue\n"}},{"html_id":"query_known_devices-instance-method","name":"query_known_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L213"},"def":{"name":"query_known_devices","visibility":"Public","body":"sent = [] of UInt32\n@seen_devices.each_value do |info|\n sent << info.id.not_nil!\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\nend\ndevices = (setting?(Array(DeviceAddress), :known_devices)) || ([] of DeviceAddress)\ndevices.each do |info|\n if id = info.id\n if id.in?(sent)\n next\n end\n sent << id\n logger.debug do\n \"inspecting #{info.address} - #{info.id}\"\n end\n device_registry.inspect_device(info.address, info.identifier, info.net, info.addr)\n end\nend\n\"inspected #{sent.size} devices\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/ashrae/bacnet.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L406"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"protocol = (IO::Memory.new(data)).read_bytes(DispatchProtocol)\nlogger.debug do\n \"received message: #{protocol.message} #{protocol.ip_address}:#{protocol.id_or_port} (size #{protocol.data_size})\"\nend\nif protocol.message.received?\n message = (IO::Memory.new(protocol.data)).read_bytes(::BACnet::Message::IPv4)\n if @verbose_debug\n logger.debug do\n \"dispatch sent:\\n#{message.inspect}\"\n end\n end\n bacnet_client.received(message, @bbmd_ip)\n app = message.application\n is_iam = false\n is_cov = case app\n when ::BACnet::ConfirmedRequest\n app.service.cov_notification?\n when ::BACnet::UnconfirmedRequest\n is_iam = app.service.i_am?\n app.service.cov_notification?\n else\n false\n end\n network = message.network\n if network && is_cov\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n if network.source_specifier\n addr = network.source_address\n net = network.source.network\n end\n device = message.objects.find do |obj|\n obj.tag == 1\n end.not_nil!.to_object_id.instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, net, addr)\n end\n if network && is_iam\n ip = if message.data_link.request_type.forwarded_npdu?\n ip_add = message.data_link.address\n \"#{ip_add.ip1}.#{ip_add.ip2}.#{ip_add.ip3}.#{ip_add.ip4}\"\n else\n protocol.ip_address\n end\n details = ::BACnet::Client::Message::IAm.parse(message)\n device = details[:object_id].instance_number\n @seen_devices[device] = DeviceAddress.new(ip, device, details[:network], details[:address])\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_seen_devices-instance-method","name":"save_seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L631"},"def":{"name":"save_seen_devices","visibility":"Public","body":"define_setting(:known_devices, @seen_devices.values)"}},{"html_id":"seen_devices:Hash(UInt32,Ashrae::DeviceAddress)-instance-method","name":"seen_devices","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L463"},"def":{"name":"seen_devices","visibility":"Public","body":"@seen_devices"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/ashrae/bacnet.cr","line_number":601,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L601"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ndevice_id = mac.to_u32?\nif device_id\nelse\n return nil\nend\ndevice = get_device(device_id)\nif device\nelse\n return nil\nend\nobj_type_string, instance_id_string = id.split('[', 2)\ninstance_id = instance_id_string.rchop.to_u32?\nif instance_id\nelse\n return nil\nend\nobject_type = ObjectType.parse?(obj_type_string)\nif object_type\nelse\n return nil\nend\nobject = get_object_details(device_id, instance_id, object_type)\nif object.changed < 1.minutes.ago\n begin\n object.sync_value(bacnet_client)\n rescue error\n logger.warn(exception: error) do\n \"failed to obtain latest value for sensor at #{mac}.#{id}\"\n end\n end\nend\nto_sensor(device_id, device, object)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/ashrae/bacnet.cr","line_number":577,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L577"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n if mac\n device_id = mac.to_u32?\n if device_id\n else\n return NO_MATCH\n end\n device = get_device(device_id)\n if device\n else\n return NO_MATCH\n end\n return device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n matches = @mutex.synchronize do\n @devices.map do |__temp_100|\n device_id, device = __temp_100\n device.objects.compact_map do |obj|\n to_sensor(device_id, device, obj, filter)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"update_value(device_id:UInt32,instance_id:UInt32,object_type:ObjectType)-instance-method","name":"update_value","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","args_html":"(device_id : UInt32, instance_id : UInt32, object_type : ObjectType)","location":{"filename":"src/ashrae/bacnet.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L264"},"def":{"name":"update_value","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"object_type","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"obj = get_object_details(device_id, instance_id, object_type)\nname = object_binding(device_id, obj)\nqueue(name: name, priority: 50) do |task|\n spawn_action(task) do\n obj.sync_value(bacnet_client)\n self[name] = object_value(obj)\n end\nend\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/ashrae/bacnet.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L29"},"def":{"name":"websocket_headers","visibility":"Public","body":"dispatcher_key = setting?(String, :dispatcher_key)\nHTTP::Headers {\"Authorization\" => \"Bearer #{dispatcher_key}\", \"X-Module-ID\" => module_id}\n"}},{"html_id":"write_binary(device_id:UInt32,instance_id:UInt32,value:Bool,object_type:ObjectType=ObjectType::BinaryValue)-instance-method","name":"write_binary","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Bool, object_type : ObjectType = ObjectType::BinaryValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L371"},"def":{"name":"write_binary","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"object_type","default_value":"ObjectType::BinaryValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"val = value ? 1 : 0\nobject = get_object_details(device_id, instance_id, object_type)\nval = ::BACnet::Object.new.set_value(val)\nval.short_tag = 9_u8\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, val, network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_double(device_id:UInt32,instance_id:UInt32,value:Float64,object_type:ObjectType=ObjectType::LargeAnalogValue)-instance-method","name":"write_double","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float64, object_type : ObjectType = ObjectType::LargeAnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L299"},"def":{"name":"write_double","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"object_type","default_value":"ObjectType::LargeAnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_real(device_id:UInt32,instance_id:UInt32,value:Float32,object_type:ObjectType=ObjectType::AnalogValue)-instance-method","name":"write_real","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Float32, object_type : ObjectType = ObjectType::AnalogValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L281"},"def":{"name":"write_real","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Float32"},{"name":"object_type","default_value":"ObjectType::AnalogValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_signed_int(device_id:UInt32,instance_id:UInt32,value:Int64,object_type:ObjectType=ObjectType::IntegerValue)-instance-method","name":"write_signed_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : Int64, object_type : ObjectType = ObjectType::IntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L335"},"def":{"name":"write_signed_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"Int64"},{"name":"object_type","default_value":"ObjectType::IntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_string(device_id:UInt32,instance_id:UInt32,value:String,object_type:ObjectType=ObjectType::CharacterStringValue)-instance-method","name":"write_string","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : String, object_type : ObjectType = ObjectType::CharacterStringValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L353"},"def":{"name":"write_string","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"String"},{"name":"object_type","default_value":"ObjectType::CharacterStringValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}},{"html_id":"write_unsigned_int(device_id:UInt32,instance_id:UInt32,value:UInt64,object_type:ObjectType=ObjectType::PositiveIntegerValue)-instance-method","name":"write_unsigned_int","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"args_string":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","args_html":"(device_id : UInt32, instance_id : UInt32, value : UInt64, object_type : ObjectType = ObjectType::PositiveIntegerValue)","location":{"filename":"src/ashrae/bacnet.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L317"},"def":{"name":"write_unsigned_int","args":[{"name":"device_id","external_name":"device_id","restriction":"UInt32"},{"name":"instance_id","external_name":"instance_id","restriction":"UInt32"},{"name":"value","external_name":"value","restriction":"UInt64"},{"name":"object_type","default_value":"ObjectType::PositiveIntegerValue","external_name":"object_type","restriction":"ObjectType"}],"visibility":"Public","body":"object = get_object_details(device_id, instance_id, object_type)\nqueue(priority: 99) do |task|\n spawn_action(task) do\n bacnet_client.write_property(object.ip_address, ::BACnet::ObjectIdentifier.new(object_type, instance_id), ::BACnet::PropertyType::PresentValue, ::BACnet::Object.new.set_value(value), network: object.network, address: object.address)\n end\nend\nvalue\n"}}],"types":[{"html_id":"drivers/Ashrae/BACnet/DeviceInfo","path":"Ashrae/BACnet/DeviceInfo.html","kind":"alias","full_name":"Ashrae::BACnet::DeviceInfo","name":"DeviceInfo","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::Client::DeviceRegistry::DeviceInfo","aliased_html":"BACnet::Client::DeviceRegistry::DeviceInfo","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}},{"html_id":"drivers/Ashrae/BACnet/ObjectType","path":"Ashrae/BACnet/ObjectType.html","kind":"alias","full_name":"Ashrae::BACnet::ObjectType","name":"ObjectType","abstract":false,"locations":[{"filename":"src/ashrae/bacnet.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet.cr#L262"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"BACnet::ObjectIdentifier::ObjectType","aliased_html":"BACnet::ObjectIdentifier::ObjectType","const":false,"namespace":{"html_id":"drivers/Ashrae/BACnet","kind":"class","full_name":"Ashrae::BACnet","name":"BACnet"}}]},{"html_id":"drivers/Ashrae/BACnetDataPoints","path":"Ashrae/BACnetDataPoints.html","kind":"class","full_name":"Ashrae::BACnetDataPoints","name":"BACnetDataPoints","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_datapoints.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ashrae/bacnet_datapoints.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_datapoints.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\npoints = setting(Hash(String, String), :points)\npoints.each do |__temp_167|\n key, status = __temp_167\n bacnet.subscribe(status) do |_sub, payload|\n self[key] = JSON.parse(payload)\n end\nend\n"}}]},{"html_id":"drivers/Ashrae/DeviceAddress","path":"Ashrae/DeviceAddress.html","kind":"class","full_name":"Ashrae::DeviceAddress","name":"DeviceAddress","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"constructors":[{"html_id":"new(ip:String,id:UInt32|Nil,net:UInt16|Nil,addr:Nil|String)-class-method","name":"new","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"args_string":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","args_html":"(ip : String, id : UInt32 | Nil, net : UInt16 | Nil, addr : Nil | String)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L8"},"def":{"name":"new","args":[{"name":"ip","external_name":"ip","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::UInt32 | ::Nil"},{"name":"net","external_name":"net","restriction":"::UInt16 | ::Nil"},{"name":"addr","external_name":"addr","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ip, id, net, addr)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"addr:String|Nil-instance-method","name":"addr","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L14"},"def":{"name":"addr","return_type":"String | ::Nil","visibility":"Public","body":"@addr"}},{"html_id":"address-instance-method","name":"address","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L16"},"def":{"name":"address","visibility":"Public","body":"Socket::IPAddress.new(@ip, 47808)"}},{"html_id":"id:UInt32|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L12"},"def":{"name":"id","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"identifier-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L20"},"def":{"name":"identifier","visibility":"Public","body":"::BACnet::ObjectIdentifier.new(:device, @id.not_nil!)"}},{"html_id":"ip:String-instance-method","name":"ip","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L11"},"def":{"name":"ip","return_type":"String","visibility":"Public","body":"@ip"}},{"html_id":"net:UInt16|Nil-instance-method","name":"net","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L13"},"def":{"name":"net","return_type":"UInt16 | ::Nil","visibility":"Public","body":"@net"}}]},{"html_id":"drivers/Ashrae/DispatchProtocol","path":"Ashrae/DispatchProtocol.html","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Ashrae::DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend}, {type: \"bytes\", name: data, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Ashrae","kind":"module","full_name":"Ashrae","name":"Ashrae"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L26"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/ashrae/bacnet_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L25"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}}],"types":[{"html_id":"drivers/Ashrae/DispatchProtocol/MessageType","path":"Ashrae/DispatchProtocol/MessageType.html","kind":"enum","full_name":"Ashrae::DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ashrae/bacnet_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L28"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0"},{"id":"CLOSED","name":"CLOSED","value":"1"},{"id":"RECEIVED","name":"RECEIVED","value":"2"},{"id":"WRITE","name":"WRITE","value":"3"},{"id":"CLOSE","name":"CLOSE","value":"4"}],"namespace":{"html_id":"drivers/Ashrae/DispatchProtocol","kind":"class","full_name":"Ashrae::DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L33"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L30"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L29"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L31"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/ashrae/bacnet_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ashrae/bacnet_models.cr#L32"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]}]},{"html_id":"drivers/Aver","path":"Aver.html","kind":"module","full_name":"Aver","name":"Aver","abstract":false,"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Aver/Auth","path":"Aver/Auth.html","kind":"struct","full_name":"Aver::Auth","name":"Auth","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L14"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Aver/AxisSelect","path":"Aver/AxisSelect.html","kind":"enum","full_name":"Aver::AxisSelect","name":"AxisSelect","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pan","name":"Pan","value":"0"},{"id":"Tilt","name":"Tilt","value":"1"},{"id":"Zoom","name":"Zoom","value":"2"},{"id":"Focus","name":"Focus","value":"3"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L8"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L5"},"def":{"name":"pan?","visibility":"Public","body":"self == Pan"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L6"},"def":{"name":"tilt?","visibility":"Public","body":"self == Tilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L7"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Aver/Cam520Pro","path":"Aver/Cam520Pro.html","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"send(\"token:#{authenticate}\")\nschedule.clear\nschedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.minutes) do\n keep_alive\nend\npan?\ntilt?\nzoom?\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L67"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L129"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\nif pan_speed.abs >= tilt_speed.abs\n axis = AxisSelect::Pan\n stop = AxisSelect::Tilt\n dir = pan_speed >= 0.0 ? 0 : 1\n cmd = pan_speed.zero? ? 2 : 1\nelse\n stop = AxisSelect::Pan\n axis = AxisSelect::Tilt\n dir = tilt_speed >= 0.0 ? 0 : 1\n cmd = tilt_speed.zero? ? 2 : 1\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: stop.to_i, dir: dir, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: axis.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"keep_alive-instance-method","name":"keep_alive","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L95"},"def":{"name":"keep_alive","visibility":"Public","body":"send(\"alive\")"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L292"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L30"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.before_request do |request|\n logger.debug do\n \"performing request: #{request.method} #{request.path}\\n#{String.new((request.body.as(IO::Memory)).to_slice)}\"\n end\n if request.path != \"/login_name\"\n bearer = bearer_token.presence || authenticate\n request.headers[\"Authorization\"] = \"Bearer #{bearer}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\nif @username != \"spec\"\n device_host = URI.parse(config.uri.not_nil!)\n device_host.port = nil\n transport.http_uri_override = device_host\nend\n@zoom_max = setting(Int32, :zoom_max)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan?-instance-method","name":"pan?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L219"},"def":{"name":"pan?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_p_s\"}.to_json)\n@pan_pos = parse(response, Int32)\n"}},{"html_id":"pan_direct(position:Int32)-instance-method","name":"pan_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L199"},"def":{"name":"pan_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_p\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"pan_pos:Int32-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L99"},"def":{"name":"pan_pos","return_type":"Int32","visibility":"Public","body":"@pan_pos"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy interface as no power command, camera is always on","summary":"

dummy interface as no power command, camera is always on

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/aver/cam520_pro.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L350"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L170"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n zoom_native(zoom_pos)\n pan_direct(pan_pos)\n tilt_direct(tilt_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task):Nil-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task) : Nil","args_html":"(data, task) : Nil","location":{"filename":"src/aver/cam520_pro.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"return_type":"Nil","visibility":"Public","body":"begin\n data = String.new(data)\n logger.debug do\n \"Camera sent: #{data}\"\n end\n payload = (Event.from_json(data)).data\n case payload\n in Option\n value = payload.value.to_i\n case payload.option\n in .ptz_ps?\n @pan_pos = value\n in .ptz_ts?\n @tilt_pos = value\n in .ptz_zs?\n @zoom_pos = value\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n end\n in Event\n raise(\"not possible\")\n end\nensure\n task.try(&.success)\nend"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L189"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L181"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan?\ntilt?\nzoom?\n@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/aver/cam520_pro.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L313"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"spawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Tilt.to_i, dir: 0, cmd: 2}.to_json)\nend\nspawn do\n post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Pan.to_i, dir: 0, cmd: 2}.to_json)\nend\nFiber.yield\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: 0, cmd: 2}.to_json)\nparse(response, Nil)\n"}},{"html_id":"tilt?-instance-method","name":"tilt?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L228"},"def":{"name":"tilt?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_t_s\"}.to_json)\n@tilt_pos = parse(response, Int32)\n"}},{"html_id":"tilt_direct(position:Int32)-instance-method","name":"tilt_direct","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L209"},"def":{"name":"tilt_direct","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_t\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"tilt_pos:Int32-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L100"},"def":{"name":"tilt_pos","return_type":"Int32","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L246"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .stop?\n dir = 0\n cmd = 2\nin .out?\n dir = 1\n cmd = 1\nin .in?\n dir = 0\n cmd = 1\nend\nresponse = post(\"/camera_move\", body: {method: \"SetPtzf\", axis: AxisSelect::Zoom.to_i, dir: dir, cmd: cmd}.to_json)\nparse(response, Nil)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L279"},"def":{"name":"zoom?","visibility":"Public","body":"response = post(\"/get_option\", body: {method: \"Get\", option: \"ptz_z_s\"}.to_json)\n@zoom_pos = value = parse(response, Int32)\nself[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\n"}},{"html_id":"zoom_native(position:Int32)-instance-method","name":"zoom_native","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Int32"}],"args_string":"(position : Int32)","args_html":"(position : Int32)","location":{"filename":"src/aver/cam520_pro.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L269"},"def":{"name":"zoom_native","args":[{"name":"position","external_name":"position","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/set_option\", body: {method: \"Set\", option: \"ptz_z\", value: position}.to_json)\n(parse(response, Nil)) || position\n"}},{"html_id":"zoom_pos:Int32-instance-method","name":"zoom_pos","abstract":false,"location":{"filename":"src/aver/cam520_pro.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L101"},"def":{"name":"zoom_pos","return_type":"Int32","visibility":"Public","body":"@zoom_pos"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/aver/cam520_pro.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L240"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_native((percentage * @zoom_max.to_f).to_i)\n"}}],"macros":[{"html_id":"parse(response,klass=::Union(Nil,::Nil))-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"args_string":"(response, klass = ::Union(Nil, ::Nil))","args_html":"(response, klass = ::Union(Nil, ::Nil))","location":{"filename":"src/aver/cam520_pro.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L79"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","default_value":"::Union(Nil, ::Nil)","external_name":"klass","restriction":""}],"visibility":"Public","body":" check_success(\n{{ response }}\n)\n HttpResponse(\n{{ klass }}\n).from_json(\n{{ response }}\n.body.not_nil!).data\n \n"}}],"types":[{"html_id":"drivers/Aver/Cam520Pro/Presets","path":"Aver/Cam520Pro/Presets.html","kind":"alias","full_name":"Aver::Cam520Pro::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/aver/cam520_pro.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro.cr#L167"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int32, Int32, Int32))","aliased_html":"Hash(String, {Int32, Int32, Int32})","const":false,"namespace":{"html_id":"drivers/Aver/Cam520Pro","kind":"class","full_name":"Aver::Cam520Pro","name":"Cam520Pro"}}]},{"html_id":"drivers/Aver/Event","path":"Aver/Event.html","kind":"struct","full_name":"Aver::Event","name":"Event","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L25"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Aver/EventOption","kind":"struct","full_name":"Aver::EventOption","name":"EventOption"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"event\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'event' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'event'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"option\"\n EventOption.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'event' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L28"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]},{"html_id":"drivers/Aver/EventOption","path":"Aver/EventOption.html","kind":"struct","full_name":"Aver::EventOption","name":"EventOption","abstract":false,"superclass":{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Aver/Event","kind":"struct","full_name":"Aver::Event","name":"Event"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Option-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L51"},"def":{"name":"data","return_type":"Option","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Aver/HttpResponse","path":"Aver/HttpResponse.html","kind":"struct","full_name":"Aver::HttpResponse(Data)","name":"HttpResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L20"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L22"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"msg:String-instance-method","name":"msg","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L21"},"def":{"name":"msg","return_type":"String","visibility":"Public","body":"@msg"}}]},{"html_id":"drivers/Aver/Option","path":"Aver/Option.html","kind":"struct","full_name":"Aver::Option","name":"Option","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/aver/cam520_pro_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"option:OptionType-instance-method","name":"option","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L44"},"def":{"name":"option","return_type":"OptionType","visibility":"Public","body":"@option"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L45"},"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Aver/OptionType","path":"Aver/OptionType.html","kind":"enum","full_name":"Aver::OptionType","name":"OptionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aver/cam520_pro_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PtzPS","name":"PtzPS","value":"0"},{"id":"PtzTS","name":"PtzTS","value":"1"},{"id":"PtzZS","name":"PtzZS","value":"2"}],"namespace":{"html_id":"drivers/Aver","kind":"module","full_name":"Aver","name":"Aver"},"instance_methods":[{"html_id":"ptz_ps?-instance-method","name":"ptz_ps?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L36"},"def":{"name":"ptz_ps?","visibility":"Public","body":"self == PtzPS"}},{"html_id":"ptz_ts?-instance-method","name":"ptz_ts?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L37"},"def":{"name":"ptz_ts?","visibility":"Public","body":"self == PtzTS"}},{"html_id":"ptz_zs?-instance-method","name":"ptz_zs?","abstract":false,"location":{"filename":"src/aver/cam520_pro_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aver/cam520_pro_models.cr#L38"},"def":{"name":"ptz_zs?","visibility":"Public","body":"self == PtzZS"}}]}]},{"html_id":"drivers/AWS","path":"AWS.html","kind":"module","full_name":"AWS","name":"AWS","abstract":false,"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/AWS/SnsSms","path":"AWS/SnsSms.html","kind":"class","full_name":"AWS::SnsSms","name":"SnsSms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/aws/sns_sms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/AWS","kind":"module","full_name":"AWS","name":"AWS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"access_key = setting(String, :aws_access_key)\nsecret = setting(String, :aws_secret)\nuri_parts = (URI.parse(config.uri.not_nil!)).host.not_nil!.split('.')\nservice = uri_parts[0]\nregion = uri_parts[1]\n@signer = Awscr::Signer::Signers::V4.new(service, region, access_key, secret)\ntransport.before_request do |request|\n signer.sign(request)\nend\n"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/aws/sns_sms.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L36"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponses = phone_numbers.map do |number|\n params = URI::Params.build do |form|\n form.add(\"Action\", \"Publish\")\n form.add(\"PhoneNumber\", number)\n form.add(\"Message\", message)\n if source\n if source =~ (/^\\+?\\d{5,14}$/)\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.MM.SMS.OriginationNumber\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source)\n else\n form.add(\"MessageAttributes.entry.1.Name\", \"AWS.SNS.SMS.SenderID\")\n form.add(\"MessageAttributes.entry.1.Value.DataType\", \"String\")\n form.add(\"MessageAttributes.entry.1.Value.StringValue\", source.gsub(' ', '-'))\n end\n end\n end\n post(\"/?#{params}\", headers: HTTP::Headers {\"Accept\" => \"application/json\"})\nend\nresponses.each do |response|\n if response.success?\n else\n raise(\"request failed with #{response.status_code}: #{response.body}\")\n end\nend\nnil\n"}},{"html_id":"signer:Awscr::Signer::Signers::V4-instance-method","name":"signer","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L21"},"def":{"name":"signer","return_type":"Awscr::Signer::Signers::V4","visibility":"Public","body":"if (__temp_1 = @signer).nil?\n ::raise(::NilAssertionError.new(\"AWS::SnsSms#signer cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"signer?:Awscr::Signer::Signers::V4|Nil-instance-method","name":"signer?","abstract":false,"location":{"filename":"src/aws/sns_sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/aws/sns_sms.cr#L21"},"def":{"name":"signer?","return_type":"Awscr::Signer::Signers::V4 | ::Nil","visibility":"Public","body":"@signer"}}]}]},{"html_id":"drivers/Biamp","path":"Biamp.html","kind":"module","full_name":"Biamp","name":"Biamp","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L3"},{"filename":"src/biamp/tesira.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Biamp/Nexia","path":"Biamp/Nexia.html","kind":"class","full_name":"Biamp::Nexia","name":"Nexia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/nexia.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L19"},"def":{"name":"connected","visibility":"Public","body":"send(Bytes[255, 254, 1], wait: false)\nschedule.every(60.seconds, true) do\n query_device_id\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(id:Int32,level:Float64|Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, level : Float64 | Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L78"},"def":{"name":"fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = get_range(type)\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = level_actual + range.begin.to_f\nsend(Command[:SETD, device_id, type.mapped_value, id, index, level_actual], name: \"fader_#{id}\")\n"}},{"html_id":"mixer(id:Int32,inouts:Hash(Int32,Array(Int32))|Array(Int32),mute:Bool=false,type:Mixer=Mixer::Matrix)-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"args_string":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","args_html":"(id : Int32, inouts : Hash(Int32, Array(Int32)) | Array(Int32), mute : Bool = false, type : Mixer = Mixer::Matrix)","location":{"filename":"src/biamp/nexia.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L44"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"Mixer::Matrix","external_name":"type","restriction":"Mixer"}],"visibility":"Public","body":"value = mute ? 0 : 1\nif inouts.is_a?(Hash)\n inouts.each do |input, outputs|\n outputs.each do |output|\n send(Command[:SET, device_id, type.mapped_value, id, input, output, value])\n end\n end\nelse\n inouts.each do |input|\n send(Command[:SET, device_id, Mixer::Auto.mapped_value, id, input, value])\n end\nend\n"}},{"html_id":"mute(id:Int32,state:Bool=true,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, state : Bool = true, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L106"},"def":{"name":"mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"value = state ? 1 : 0\nsend(Command[:SETD, device_id, type.mapped_value, id, index, value], name: \"mute_#{id}\")\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 30.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\", \"\\xFF\\xFE\\u0001\")\n"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/biamp/nexia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L34"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"send(Command[:RECALL, 0, \"PRESET\", number], name: \"preset_#{number}\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/biamp/nexia.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L30"},"def":{"name":"query_device_id","visibility":"Public","body":"send(Command[:GETD, 0, \"DEVID\"])"}},{"html_id":"query_fader(id:Int32,index:Int32=1,type:Faders=Faders::Fader)-instance-method","name":"query_fader","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"args_string":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Faders = Faders::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L90"},"def":{"name":"query_fader","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Faders::Fader","external_name":"type","restriction":"Faders"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"query_mute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L115"},"def":{"name":"query_mute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"send(Command[:GETD, device_id, type.mapped_value, id, index])"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/nexia.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L119"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"case response = Response.parse(data)\nin Response::FullPath\n logger.debug do\n \"Device responded #{response.message}\"\n end\n result = process_full_path_response(response)\n task.try(&.success(result))\nin Response::OK\n logger.info do\n \"OK\"\n end\n task.try(&.success)\nin Response::Error\n logger.warn do\n \"Device error: #{data}\"\n end\n task.try(&.abort(response.message))\nin Response::Invalid\n logger.error do\n \"Invalid response structure\"\n end\n task.try(&.abort(response.data))\nend"}},{"html_id":"unmute(id:Int32,index:Int32=1,type:Mutes=Mutes::Fader)-instance-method","name":"unmute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"args_string":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","args_html":"(id : Int32, index : Int32 = 1, type : Mutes = Mutes::Fader)","location":{"filename":"src/biamp/nexia.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/nexia.cr#L111"},"def":{"name":"unmute","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32"},{"name":"type","default_value":"Mutes::Fader","external_name":"type","restriction":"Mutes"}],"visibility":"Public","body":"mute(id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Nexia/Faders","path":"Biamp/Nexia/Faders.html","kind":"enum","full_name":"Biamp::Nexia::Faders","name":"Faders","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"MatrixCrosspoint","name":"MatrixCrosspoint","value":"3"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"4"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"5"},{"id":"AutoIn","name":"AutoIn","value":"6"},{"id":"AutoOut","name":"AutoOut","value":"7"},{"id":"IoIn","name":"IoIn","value":"8"},{"id":"IoOut","name":"IoOut","value":"9"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_crosspoint?-instance-method","name":"matrix_crosspoint?","abstract":false,"def":{"name":"matrix_crosspoint?","visibility":"Public","body":"self == MatrixCrosspoint"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mixer","path":"Biamp/Nexia/Mixer.html","kind":"enum","full_name":"Biamp::Nexia::Mixer","name":"Mixer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Matrix","name":"Matrix","value":"0"},{"id":"Standard","name":"Standard","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]},{"html_id":"drivers/Biamp/Nexia/Mutes","path":"Biamp/Nexia/Mutes.html","kind":"enum","full_name":"Biamp::Nexia::Mutes","name":"Mutes","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fader","name":"Fader","value":"0"},{"id":"MatrixIn","name":"MatrixIn","value":"1"},{"id":"MatrixOut","name":"MatrixOut","value":"2"},{"id":"AutoIn","name":"AutoIn","value":"3"},{"id":"AutoOut","name":"AutoOut","value":"4"},{"id":"StdmatrixIn","name":"StdmatrixIn","value":"5"},{"id":"StdmatrixOut","name":"StdmatrixOut","value":"6"},{"id":"IoIn","name":"IoIn","value":"7"},{"id":"IoOut","name":"IoOut","value":"8"}],"namespace":{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"},"instance_methods":[{"html_id":"auto_in?-instance-method","name":"auto_in?","abstract":false,"def":{"name":"auto_in?","visibility":"Public","body":"self == AutoIn"}},{"html_id":"auto_out?-instance-method","name":"auto_out?","abstract":false,"def":{"name":"auto_out?","visibility":"Public","body":"self == AutoOut"}},{"html_id":"fader?-instance-method","name":"fader?","abstract":false,"def":{"name":"fader?","visibility":"Public","body":"self == Fader"}},{"html_id":"io_in?-instance-method","name":"io_in?","abstract":false,"def":{"name":"io_in?","visibility":"Public","body":"self == IoIn"}},{"html_id":"io_out?-instance-method","name":"io_out?","abstract":false,"def":{"name":"io_out?","visibility":"Public","body":"self == IoOut"}},{"html_id":"matrix_in?-instance-method","name":"matrix_in?","abstract":false,"def":{"name":"matrix_in?","visibility":"Public","body":"self == MatrixIn"}},{"html_id":"matrix_out?-instance-method","name":"matrix_out?","abstract":false,"def":{"name":"matrix_out?","visibility":"Public","body":"self == MatrixOut"}},{"html_id":"stdmatrix_in?-instance-method","name":"stdmatrix_in?","abstract":false,"def":{"name":"stdmatrix_in?","visibility":"Public","body":"self == StdmatrixIn"}},{"html_id":"stdmatrix_out?-instance-method","name":"stdmatrix_out?","abstract":false,"def":{"name":"stdmatrix_out?","visibility":"Public","body":"self == StdmatrixOut"}}],"macros":[{"html_id":"[](mapped_value)-macro","name":"[]","doc":"Provides compile-time resolution from a statically known mapped value\nto a member of `self`.","summary":"

Provides compile-time resolution from a statically known mapped value to a member of self.

","abstract":false,"args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"args_string":"(mapped_value)","args_html":"(mapped_value)","def":{"name":"[]","args":[{"name":"mapped_value","external_name":"mapped_value","restriction":""}],"visibility":"Public","body":" \n{% if mapped_value.is_a?(Path) %}\n {% value = mapped_value.resolve %}\n {% else %}{% if mapped_value.is_a?(Var) %}\n {{ raise(\"Cannot statically resolve #{mapped_value} - use #{@type}.from_mapped_value to lookup at runtime\") }}\n {% else %}\n {% value = mapped_value %}\n {% end %}{% end %}\n\n\n \n{% found = false %}\n\n \n{% for member_value, idx in (@type.annotation(MappedValues)).args %}\n {% if (value == member_value) && !found %}\n {% found = true %}\n {{ \"#{@type.name}::#{@type.constants[idx]}\".id }}\n {% end %}\n {% end %}\n\n\n \n{{ unless found\n raise(\"No mapping defined from #{value} to #{@type}\")\nend }}\n\n \n"}}]}]},{"html_id":"drivers/Biamp/NTP","path":"Biamp/NTP.html","kind":"module","full_name":"Biamp::NTP","name":"NTP","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Biamp/Nexia","kind":"class","full_name":"Biamp::Nexia","name":"Nexia"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"doc":"Biamp ATP/NTP protocol utilities.\nhttps://support.biamp.com/Audia-Nexia/Control/Audia-Nexia_Text_Protocol","summary":"

Biamp ATP/NTP protocol utilities.

","types":[{"html_id":"drivers/Biamp/NTP/Command","path":"Biamp/NTP/Command.html","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"constructors":[{"html_id":"new(type:Type,device:Int32,attribute:String,instance:Int32|Nil=nil,index_1:Int32|Nil=nil,index_2:Int32|Nil=nil,value:String|Int32|Float64|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"args_string":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","args_html":"(type : Type, device : Int32, attribute : String, instance : Int32 | Nil = nil, index_1 : Int32 | Nil = nil, index_2 : Int32 | Nil = nil, value : String | Int32 | Float64 | Nil = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"index_1","default_value":"nil","external_name":"index_1","restriction":"Int32 | ::Nil"},{"name":"index_2","default_value":"nil","external_name":"index_2","restriction":"Int32 | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | Int32 | Float64 | Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, device, attribute, instance, index_1, index_2, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @device.clone, @attribute.clone, @instance.clone, @index_1.clone, @index_2.clone, @value.clone)"}},{"html_id":"copy_with(type_type=@type,device_device=@device,attribute_attribute=@attribute,instance_instance=@instance,index_1_index_1=@index_1,index_2_index_2=@index_2,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","args_html":"(type _type = @type, device _device = @device, attribute _attribute = @attribute, instance _instance = @instance, index_1 _index_1 = @index_1, index_2 _index_2 = @index_2, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L4"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_instance","default_value":"@instance","external_name":"instance","restriction":""},{"name":"_index_1","default_value":"@index_1","external_name":"index_1","restriction":""},{"name":"_index_2","default_value":"@index_2","external_name":"index_2","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _device, _attribute, _instance, _index_1, _index_2, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"index_1:Int32|Nil-instance-method","name":"index_1","abstract":false,"def":{"name":"index_1","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_1"}},{"html_id":"index_2:Int32|Nil-instance-method","name":"index_2","abstract":false,"def":{"name":"index_2","return_type":"Int32 | ::Nil","visibility":"Public","body":"@index_2"}},{"html_id":"instance:Int32|Nil-instance-method","name":"instance","abstract":false,"def":{"name":"instance","return_type":"Int32 | ::Nil","visibility":"Public","body":"@instance"}},{"html_id":"to_io(io:IO,format=nil)-instance-method","name":"to_io","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"args_string":"(io : IO, format = nil)","args_html":"(io : IO, format = nil)","location":{"filename":"src/biamp/ntp.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L33"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"nil","external_name":"format","restriction":""}],"visibility":"Public","body":"io << type\n{device, attribute, instance, index_1, index_2, value}.each do |field|\n if field.nil?\n next\n end\n (io << ' ') << field\nend\nio << '\\n'\n"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"value:String|Int32|Float64|Nil-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String | Int32 | Float64 | Nil","visibility":"Public","body":"@value"}}],"macros":[{"html_id":"[](type,*params)-macro","name":"[]","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"args_string":"(type, *params)","args_html":"(type, *params)","location":{"filename":"src/biamp/ntp.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L12"},"def":{"name":"[]","args":[{"name":"type","external_name":"type","restriction":""},{"name":"params","external_name":"params","restriction":""}],"splat_index":1,"visibility":"Public","body":" \n{% if (type == (:GET)) || (type == (:GETD)) %}\n {{ @type.name }}.new({{ type }}, {{ params.splat }})\n {% else %}\n {{ @type.name }}.new({{ type }}, {{ params[0...-1].splat }}, value: {{ params[-1] }})\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Biamp/NTP/Command/Type","path":"Biamp/NTP/Command/Type.html","kind":"enum","full_name":"Biamp::NTP::Command::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L18"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SET","name":"SET","value":"0"},{"id":"SETD","name":"SETD","value":"1"},{"id":"GET","name":"GET","value":"2"},{"id":"GETD","name":"GETD","value":"3"},{"id":"INC","name":"INC","value":"4"},{"id":"INCD","name":"INCD","value":"5"},{"id":"DEC","name":"DEC","value":"6"},{"id":"DECD","name":"DECD","value":"7"},{"id":"RECALL","name":"RECALL","value":"8"},{"id":"DIAL","name":"DIAL","value":"9"}],"namespace":{"html_id":"drivers/Biamp/NTP/Command","kind":"struct","full_name":"Biamp::NTP::Command","name":"Command"},"instance_methods":[{"html_id":"dec?-instance-method","name":"dec?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L27"},"def":{"name":"dec?","visibility":"Public","body":"self == DEC"}},{"html_id":"decd?-instance-method","name":"decd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L28"},"def":{"name":"decd?","visibility":"Public","body":"self == DECD"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L30"},"def":{"name":"dial?","visibility":"Public","body":"self == DIAL"}},{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L23"},"def":{"name":"get?","visibility":"Public","body":"self == GET"}},{"html_id":"getd?-instance-method","name":"getd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L24"},"def":{"name":"getd?","visibility":"Public","body":"self == GETD"}},{"html_id":"inc?-instance-method","name":"inc?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L25"},"def":{"name":"inc?","visibility":"Public","body":"self == INC"}},{"html_id":"incd?-instance-method","name":"incd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L26"},"def":{"name":"incd?","visibility":"Public","body":"self == INCD"}},{"html_id":"recall?-instance-method","name":"recall?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L29"},"def":{"name":"recall?","visibility":"Public","body":"self == RECALL"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L21"},"def":{"name":"set?","visibility":"Public","body":"self == SET"}},{"html_id":"setd?-instance-method","name":"setd?","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L22"},"def":{"name":"setd?","visibility":"Public","body":"self == SETD"}}]}]},{"html_id":"drivers/Biamp/NTP/Response","path":"Biamp/NTP/Response.html","kind":"module","full_name":"Biamp::NTP::Response","name":"Response","abstract":false,"locations":[{"filename":"src/biamp/ntp.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP","kind":"module","full_name":"Biamp::NTP","name":"NTP"},"class_methods":[{"html_id":"parse(data:Bytes)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L55"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"case data[0]\nwhen '#'\n response = String.new(data)\n if response.includes?(\" -ERR\")\n Error.new(response)\n else\n fields = response[1..].split\n type = Command::Type.parse(fields[0])\n device = fields[1].to_i\n attribute = fields[2]\n params = fields[3..]\n value = type.getd? ? fields[-1] : fields[-2]\n FullPath.new(response, type, device, attribute, params, value)\n end\nwhen '+'\n OK.new\nwhen '-'\n Error.new(String.new(data))\nelse\n Invalid.new(data)\nend"}}],"types":[{"html_id":"drivers/Biamp/NTP/Response/Error","path":"Biamp/NTP/Response/Error.html","kind":"struct","full_name":"Biamp::NTP::Response::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"}],"args_string":"(message : String)","args_html":"(message : String)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone)"}},{"html_id":"copy_with(message_message=@message)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"args_string":"(message _message = @message)","args_html":"(message _message = @message)","location":{"filename":"src/biamp/ntp.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L52"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""}],"visibility":"Public","body":"self.class.new(_message)"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Biamp/NTP/Response/FullPath","path":"Biamp/NTP/Response/FullPath.html","kind":"struct","full_name":"Biamp::NTP::Response::FullPath","name":"FullPath","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(message:String,type:Command::Type,device:Int32,attribute:String,params:Array(String),value:String)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","args_html":"(message : String, type : Command::Type, device : Int32, attribute : String, params : Array(String), value : String)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":"String"},{"name":"type","external_name":"type","restriction":"Command::Type"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"attribute","external_name":"attribute","restriction":"String"},{"name":"params","external_name":"params","restriction":"Array(String)"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(message, type, device, attribute, params, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attribute:String-instance-method","name":"attribute","abstract":false,"def":{"name":"attribute","return_type":"String","visibility":"Public","body":"@attribute"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@message.clone, @type.clone, @device.clone, @attribute.clone, @params.clone, @value.clone)"}},{"html_id":"copy_with(message_message=@message,type_type=@type,device_device=@device,attribute_attribute=@attribute,params_params=@params,value_value=@value)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"args_string":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","args_html":"(message _message = @message, type _type = @type, device _device = @device, attribute _attribute = @attribute, params _params = @params, value _value = @value)","location":{"filename":"src/biamp/ntp.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_message","default_value":"@message","external_name":"message","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_device","default_value":"@device","external_name":"device","restriction":""},{"name":"_attribute","default_value":"@attribute","external_name":"attribute","restriction":""},{"name":"_params","default_value":"@params","external_name":"params","restriction":""},{"name":"_value","default_value":"@value","external_name":"value","restriction":""}],"visibility":"Public","body":"self.class.new(_message, _type, _device, _attribute, _params, _value)"}},{"html_id":"device:Int32-instance-method","name":"device","abstract":false,"def":{"name":"device","return_type":"Int32","visibility":"Public","body":"@device"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"params:Array(String)-instance-method","name":"params","abstract":false,"def":{"name":"params","return_type":"Array(String)","visibility":"Public","body":"@params"}},{"html_id":"type:Command::Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Command::Type","visibility":"Public","body":"@type"}},{"html_id":"value:String-instance-method","name":"value","abstract":false,"def":{"name":"value","return_type":"String","visibility":"Public","body":"@value"}}]},{"html_id":"drivers/Biamp/NTP/Response/Invalid","path":"Biamp/NTP/Response/Invalid.html","kind":"struct","full_name":"Biamp::NTP::Response::Invalid","name":"Invalid","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new(data:Bytes)-class-method","name":"new","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"new","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"_ = allocate\n_.initialize(data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@data.clone)"}},{"html_id":"copy_with(data_data=@data)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"args_string":"(data _data = @data)","args_html":"(data _data = @data)","location":{"filename":"src/biamp/ntp.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L53"},"def":{"name":"copy_with","args":[{"name":"_data","default_value":"@data","external_name":"data","restriction":""}],"visibility":"Public","body":"self.class.new(_data)"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}}]},{"html_id":"drivers/Biamp/NTP/Response/OK","path":"Biamp/NTP/Response/OK.html","kind":"struct","full_name":"Biamp::NTP::Response::OK","name":"OK","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Biamp/NTP/Response","kind":"module","full_name":"Biamp::NTP::Response","name":"Response"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"clone","visibility":"Public","body":"self.class.new()"}},{"html_id":"copy_with-instance-method","name":"copy_with","abstract":false,"location":{"filename":"src/biamp/ntp.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/ntp.cr#L51"},"def":{"name":"copy_with","visibility":"Public","body":"self.class.new()"}}]}]}]},{"html_id":"drivers/Biamp/Tesira","path":"Biamp/Tesira.html","kind":"class","full_name":"Biamp::Tesira","name":"Tesira","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/biamp/tesira.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"FADERS","name":"FADERS","value":"{\"fader\" => \"level\", \"matrix_in\" => \"inputLevel\", \"matrix_out\" => \"outputLevel\", \"matrix_crosspoint\" => \"crosspointLevel\", \"level\" => \"fader\", \"inputLevel\" => \"matrix_in\", \"outputLevel\" => \"matrix_out\", \"crosspointLevel\" => \"matrix_crosspoint\"}"},{"id":"MIXERS","name":"MIXERS","value":"{\"matrix\" => \"crosspointLevelState\", \"mixer\" => \"crosspoint\"}"},{"id":"MUTES","name":"MUTES","value":"{\"fader\" => \"mute\", \"matrix_in\" => \"inputMute\", \"matrix_out\" => \"outputMute\", \"mute\" => \"fader\", \"inputMute\" => \"matrix_in\", \"outputMute\" => \"matrix_out\"}"}],"namespace":{"html_id":"drivers/Biamp","kind":"module","full_name":"Biamp","name":"Biamp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"@telnet = telnet = Telnet.new do |telnet_response|\n transport.send(telnet_response)\nend\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\nif setting(Bool, :no_password)\n do_send((setting(String, :username)) || \"admin\", wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\nend\ndo_send(\"SESSION set verbose false\", priority: 96)\nschedule.clear\nschedule.every(60.seconds) do\n do_send(\"DEVICE get serialNumber\", priority: 95)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L45"},"def":{"name":"disconnected","visibility":"Public","body":"transport.tokenizer = nil\nschedule.clear\n"}},{"html_id":"fader(fader_id:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L103"},"def":{"name":"fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader_type = FADERS[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, fader_type, i, level), priority: 30, name: \"fade_#{fad}_#{i}\")\n self[\"#{fader_type}_#{fad}_#{i}\"] = level\n end\nend\n"}},{"html_id":"faders(ids:Ids,level:Num|Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, level : Num | Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L118"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Num | Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fader(ids, level, index, type)"}},{"html_id":"get_aliases-instance-method","name":"get_aliases","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L66"},"def":{"name":"get_aliases","visibility":"Public","body":"do_send(\"SESSION get aliases\")"}},{"html_id":"mixer(id:String,inouts:Hash(Int32,Int32|Array(Int32))|Array(Int32),mute:Bool=false,type:String=\"matrix\")-instance-method","name":"mixer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"args_string":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = \"matrix\")","args_html":"(id : String, inouts : Hash(Int32, Int32 | Array(Int32)) | Array(Int32), mute : Bool = false, type : String = "matrix")","location":{"filename":"src/biamp/tesira.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L75"},"def":{"name":"mixer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32)) | Array(Int32)"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"},{"name":"type","default_value":"\"matrix\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mixer_type = MIXERS[type] || type\nif inouts.is_a?(Hash)\n inouts.each do |input, outs|\n outputs = ensure_array(outs)\n outputs.each do |output|\n do_send(build(id, :set, mixer_type, input, output, mute), priority: 30, name: \"mixmute_#{input}_#{output}\")\n end\n end\nelse\n inouts.each do |input|\n do_send(build(id, :set, mixer_type, input, mute), priority: 30, name: \"mixmute_#{input}\")\n end\nend\n"}},{"html_id":"mute(fader_id:Ids,value:Bool=true,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, value : Bool = true, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L131"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"value","default_value":"true","external_name":"value","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_ids = ensure_array(fader_id)\nindicies = ensure_array(index)\nfader_ids.each do |fad|\n indicies.each do |i|\n do_send(build(fad, :set, mute_type, i, value), priority: 30, name: \"mute_#{fad}_#{i}\")\n self[\"#{mute_type}_#{fad}_#{i}_mute\"] = value\n end\nend\n"}},{"html_id":"mutes(ids:Ids,muted:Bool,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, muted : Bool, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L145"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"muted","external_name":"muted","restriction":"Bool"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(ids, muted, index, type)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L21"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 30.milliseconds\n"}},{"html_id":"preset(number_or_name:String|Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"args_string":"(number_or_name : String | Int32)","args_html":"(number_or_name : String | Int32)","location":{"filename":"src/biamp/tesira.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L50"},"def":{"name":"preset","args":[{"name":"number_or_name","external_name":"number_or_name","restriction":"String | Int32"}],"visibility":"Public","body":"if number_or_name.is_a?(Int32)\n do_send(\"DEVICE recallPreset #{number_or_name}\", priority: 30, name: \"preset_#{number_or_name}\")\nelse\n do_send(build(:DEVICE, :recallPresetByName, number_or_name), priority: 30, name: \"preset_#{number_or_name}\")\nend"}},{"html_id":"query_fader(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L153"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"fad_type = FADERS[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, fad_type, index))\n"}},{"html_id":"query_faders(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_faders","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L162"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(ids, index, type)"}},{"html_id":"query_mute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L166"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute_type = MUTES[type] || type\nfader_id = (ensure_array(fader_id))[0]\nindex = (ensure_array(index))[0]\ndo_send(build(fader_id, :get, mute_type, index))\n"}},{"html_id":"query_mutes(ids:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"query_mutes","doc":"Named params version","summary":"

Named params version

","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(ids : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L175"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_mute(ids, index, type)"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L62"},"def":{"name":"reboot","visibility":"Public","body":"do_send(\"DEVICE reboot\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/biamp/tesira.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L179"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Tesira responded -> data: #{data}\"\nend\nresult = data.split(\" \")\nif result[0] == \"-\"\n task.try(&.abort)\nend\nif data =~ (/login:|server/i)\n transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nend\ntask.try(&.success)\n"}},{"html_id":"start_audio-instance-method","name":"start_audio","abstract":false,"location":{"filename":"src/biamp/tesira.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L58"},"def":{"name":"start_audio","visibility":"Public","body":"do_send(\"DEVICE startAudio\")"}},{"html_id":"unmute(fader_id:Ids,index:Int32|Array(Int32)=1,type:String=\"fader\")-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = \"fader\")","args_html":"(fader_id : Ids, index : Int32 | Array(Int32) = 1, type : String = "fader")","location":{"filename":"src/biamp/tesira.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L149"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | Array(Int32)"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"mute(fader_id, false, index, type)"}}],"types":[{"html_id":"drivers/Biamp/Tesira/Ids","path":"Biamp/Tesira/Ids.html","kind":"alias","full_name":"Biamp::Tesira::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}},{"html_id":"drivers/Biamp/Tesira/Num","path":"Biamp/Tesira/Num.html","kind":"alias","full_name":"Biamp::Tesira::Num","name":"Num","abstract":false,"locations":[{"filename":"src/biamp/tesira.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/biamp/tesira.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Biamp/Tesira","kind":"class","full_name":"Biamp::Tesira","name":"Tesira"}}]}]},{"html_id":"drivers/Bose","path":"Bose.html","kind":"module","full_name":"Bose","name":"Bose","abstract":false,"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Bose/ControlSpaceSerial","path":"Bose/ControlSpaceSerial.html","kind":"class","full_name":"Bose::ControlSpaceSerial","name":"ControlSpaceSerial","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/bose/control_space_serial.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Bose","kind":"module","full_name":"Bose","name":"Bose"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.debug do\n \"-- maintaining connection\"\n end\n do_send(\"GS\", priority: 99)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_parameter_group-instance-method","name":"get_parameter_group","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L41"},"def":{"name":"get_parameter_group","visibility":"Public","body":"do_send(\"GS\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[13])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/bose/control_space_serial.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/bose/control_space_serial.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L45"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).rchop\nlogger.debug do\n \"ControlSpace sent: #{data}\"\nend\nparts = data.split(\" \")\ncase parts[0]\nwhen \"S\"\n self[:parameter_group] = parts[1].to_i(16)\nend\ntask.try(&.success)\n"}},{"html_id":"set_parameter_group(id:UInt8)-instance-method","name":"set_parameter_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"args_string":"(id : UInt8)","args_html":"(id : UInt8)","location":{"filename":"src/bose/control_space_serial.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/bose/control_space_serial.cr#L36"},"def":{"name":"set_parameter_group","args":[{"name":"id","external_name":"id","restriction":"UInt8"}],"visibility":"Public","body":"(do_send(\"SS #{(id.to_s(16)).upcase}\", wait: false, name: \"set_pgroup\")).get\nself[:parameter_group] = id\n"}}]}]},{"html_id":"drivers/Cisco","path":"Cisco.html","kind":"module","full_name":"Cisco","name":"Cisco","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L4"},{"filename":"src/cisco/webex/api/messages.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L1"},{"filename":"src/cisco/webex/api/people.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L1"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L1"},{"filename":"src/cisco/webex/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L1"},{"filename":"src/cisco/webex/command.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L1"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L1"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L1"},{"filename":"src/cisco/webex/constants.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L1"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L1"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L1"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L1"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L1"},{"filename":"src/cisco/webex/models/device.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L1"},{"filename":"src/cisco/webex/models/event.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L1"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L1"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L1"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L1"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L1"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L1"},{"filename":"src/cisco/webex/models/message.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L1"},{"filename":"src/cisco/webex/models/peek.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L1"},{"filename":"src/cisco/webex/models/person.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L1"},{"filename":"src/cisco/webex/models/room.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L1"},{"filename":"src/cisco/webex/session.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L1"},{"filename":"src/cisco/webex/status_code.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L1"},{"filename":"src/cisco/webex/utils.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint","path":"Cisco/CollaborationEndpoint.html","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"instance_methods":[{"html_id":"bind_feedback(path:String,status_key:String)-instance-method","name":"bind_feedback","doc":"Bind arbitary device feedback to a status variable.","summary":"

Bind arbitary device feedback to a status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L425"},"def":{"name":"bind_feedback","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"register_feedback(path) do |value_path, value|\n if value_path == path\n self[status_key] = value\n else\n key_path = value_path.sub(path, \"\")\n hash = @status_keys[status_key]\n hash[key_path] = value\n self[status_key] = hash\n end\nend"}},{"html_id":"bind_status(path:String,status_key:String)-instance-method","name":"bind_status","doc":"Bind device status to a module status variable.","summary":"

Bind device status to a module status variable.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"args_string":"(path : String, status_key : String)","args_html":"(path : String, status_key : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L439"},"def":{"name":"bind_status","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"status_key","external_name":"status_key","restriction":"String"}],"visibility":"Public","body":"bind_path = \"Status/#{path.tr(\" \", \"/\")}\"\nbind_feedback(\"/#{bind_path}\", status_key)\npayload = xstatus(path)\nif (payload.size == 1) && (payload.has_key?(bind_path))\n self[status_key] = payload[bind_path]\nelse\n self[status_key] = @status_keys[status_key] = payload.transform_keys do |key|\n key.sub(path, \"\")\n end\nend\npayload\n"}},{"html_id":"clear_event(path:String)-instance-method","name":"clear_event","doc":"Clear external event subscribtions for a specific device path.","summary":"

Clear external event subscribtions for a specific device path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L481"},"def":{"name":"clear_event","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Clearing event subscription for #{path}\"\nend\nunregister_feedback(path)\n"}},{"html_id":"clear_feedback_subscriptions(connected:Bool=true)-instance-method","name":"clear_feedback_subscriptions","abstract":false,"args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool = true)","args_html":"(connected : Bool = true)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L409"},"def":{"name":"clear_feedback_subscriptions","args":[{"name":"connected","default_value":"true","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"Unsubscribing all feedback\"\nend\n@status_keys.clear\nfeedback.clear\n@feedback_paths.clear\nif connected\n do_send(XAPI.xfeedback(:deregister_all))\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"reset_connection_flags\nschedule.every(2.minutes) do\n ensure_feedback_registered\nend\nschedule.every(30.seconds) do\n if @last_received > 40.seconds.ago.to_unix\n heartbeat(timeout: 35)\n else\n disconnect\n end\nend\nschedule.in(10.seconds) do\n if @ready || @init_called\n else\n init_connection\n end\n schedule.in(15.seconds) do\n if !@ready || self[\"configuration\"]?.nil?\n disconnect\n end\n end\nend\nbegin\n transport.send(\"xPreferences OutputMode JSON\\n\")\nrescue\nend\nqueue.clear(abort_current: true)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L95"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nreset_connection_flags\nclear_feedback_subscriptions(false)\nqueue.clear(abort_current: true)\nself[:ready] = false\n"}},{"html_id":"ensure_feedback_registered-instance-method","name":"ensure_feedback_registered","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L107"},"def":{"name":"ensure_feedback_registered","visibility":"Public","body":"send(\"xPreferences OutputMode JSON\\n\", priority: 0, wait: false, name: \"output_json\")\nresults = @feedback_paths.map do |path|\n request = XAPI.xfeedback(:register, path)\n do_send(request, priority: 0, name: path)\nend\nspawn do\n success = 0\n results.each do |task|\n begin\n if task.get.state.success?\n success = success + 1\n end\n rescue\n end\n end\n logger.debug do\n \"FEEDBACK REGISTERED #{success}\"\n end\n if success > 0\n else\n disconnect\n end\nend\n@feedback_paths.size\n"}},{"html_id":"feedback_paths:Array(String)-instance-method","name":"feedback_paths","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L34"},"def":{"name":"feedback_paths","return_type":"Array(String)","visibility":"Public","body":"@feedback_paths"}},{"html_id":"generate_request_uuid-instance-method","name":"generate_request_uuid","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L103"},"def":{"name":"generate_request_uuid","visibility":"Public","body":"UUID.random.to_s"}},{"html_id":"on_event(path:String,mod_id:String,channel:String)-instance-method","name":"on_event","doc":"Subscribe another module to async device events.\nCallback methods must be of arity 1 and public.","summary":"

Subscribe another module to async device events.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"args_string":"(path : String, mod_id : String, channel : String)","args_html":"(path : String, mod_id : String, channel : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L471"},"def":{"name":"on_event","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"mod_id","external_name":"mod_id","restriction":"String"},{"name":"channel","external_name":"channel","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Registering callback for #{path} to #{mod_id}/#{channel}\"\nend\nregister_feedback(path) do |event_path, value|\n event_json = {event_path => value}.to_json\n logger.debug do\n \"Publishing #{path} event to #{mod_id}/#{channel} with payload #{event_json}\"\n end\n publish(\"#{mod_id}/#{channel}\", event_json)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 80.milliseconds\nqueue.timeout = 3.seconds\n@peripheral_id = setting?(String, :peripheral_id)\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L51"},"def":{"name":"on_update","visibility":"Public","body":"if @ignore_update\n @ignore_update = false\n return\nend\n@presets = (setting?(Presets, :camera_presets)) || @presets\nself[:camera_presets] = @presets.transform_values do |val|\n val.keys\nend\ndriver = self\nif driver.responds_to?(:load_settings)\n driver.load_settings\nend\ndisconnect\n"}},{"html_id":"peripheral_id:String-instance-method","name":"peripheral_id","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L20"},"def":{"name":"peripheral_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @peripheral_id).nil?\n @peripheral_id = (begin\n uuid = generate_request_uuid\n @ignore_update = true\n define_setting(:peripheral_id, uuid)\n uuid\n end)\nelse\n __temp_1\nend"}},{"html_id":"push_config-instance-method","name":"push_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L455"},"def":{"name":"push_config","visibility":"Public","body":"if config = setting?(Config, :configuration)\n xconfigurations(config)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L332"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n @last_received = Time.utc.to_unix\n payload = String.new(data)\n logger.debug do\n \"<- #{payload}\"\n end\n if transport.tokenizer.nil? && (payload =~ XAPI::LOGIN_COMPLETE)\n queue.clear(abort_current: true)\n sleep(500.milliseconds)\n transport.send(\"xPreferences OutputMode JSON\\n\")\n logger.info do\n \"initializing connection\"\n end\n spawn do\n init_connection\n end\n return\n end\n response = XAPI.parse(payload)\n if task.nil?\n return feedback.notify(response)\n end\n if task.xapi_request_id == response[\"ResultId\"]?\n command_result = task.xapi_callback.try(&.call(response))\n if command_result.nil?\n feedback.notify(response)\n end\n command_result == (:abort) ? task.abort : task.success(command_result)\n else\n feedback.notify(response)\n end\nrescue error : JSON::ParseException\n payload = (String.new(data)).strip\n case payload\n when \"OK\"\n task.try(&.success(payload))\n when \"Command not recognized.\"\n logger.error do\n \"Command not recognized: `#{task.try(&.request_payload)}`\"\n end\n task.try(&.abort(payload))\n else\n logger.debug do\n \"Malformed device response: #{error}\\n#{payload}\"\n end\n task.try(&.abort(\"Malformed device response: #{error}\"))\n end\nend"}},{"html_id":"register_feedback(path:String,&update_handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"register_feedback","doc":"Subscribe to feedback from the device.","summary":"

Subscribe to feedback from the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &update_handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L376"},"def":{"name":"register_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"update_handler","external_name":"update_handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"if !@ready\n if feedback.contains?(path)\n else\n @feedback_paths << path\n @feedback_paths.uniq!\n feedback.insert(path, &update_handler)\n end\n return true\nend\nlogger.debug do\n \"Subscribing to device feedback for #{path}\"\nend\nif feedback.contains?(path)\nelse\n @feedback_paths << path\n @feedback_paths.uniq!\n request = XAPI.xfeedback(:register, path)\n result = do_send(request, name: path)\nend\nfeedback.insert(path, &update_handler)\nresult.try(&.get) || true\n"}},{"html_id":"sync_config-instance-method","name":"sync_config","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L461"},"def":{"name":"sync_config","visibility":"Public","body":"bind_feedback(\"/Configuration\", \"configuration\")\nsend(\"xConfiguration *\\n\", wait: false)\n"}},{"html_id":"unregister_feedback(path:String)-instance-method","name":"unregister_feedback","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L401"},"def":{"name":"unregister_feedback","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"if path == \"/\"\n return clear_feedback_subscriptions\nend\nlogger.debug do\n \"Unsubscribing feedback for #{path}\"\nend\nfeedback.remove(path)\n@feedback_paths.delete(path)\ndo_send(XAPI.xfeedback(:deregister, path))\n"}},{"html_id":"xcommand(command:String,multiline_body:String|Nil=nil,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-instance-method","name":"xcommand","doc":"Execute an xCommand on the device.","summary":"

Execute an xCommand on the device.

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(command : String, multiline_body : String | Nil = nil, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L140"},"def":{"name":"xcommand","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"multiline_body","default_value":"nil","external_name":"multiline_body","restriction":"String | ::Nil"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"request = XAPI.xcommand(command, **kwargs.merge({hash_args: hash_args}))\nname = if kwargs.empty?\n command\nelse\n if kwargs.size == 1\n \"#{command} #{kwargs.keys.to_a.first}\"\n end\nend\npriority = kwargs[:priority]? || queue.priority\ndo_send(request, multiline_body, name: name, priority: priority) do |response|\n result_key = (((command.split(' ')).last(2)).join(\"\")) + \"Result\"\n command_result = response[\"CommandResponse/#{result_key}/status\"]?\n failure_result = response[\"CommandResponse/Result/Reason\"]?\n result = command_result || failure_result\n if result\n if result == \"OK\"\n result\n else\n failure_result || (failure_result = response[\"CommandResponse/#{result_key}/Reason\"]?)\n logger.error do\n failure_result.inspect\n end\n :abort\n end\n else\n logger.warn do\n \"Unexpected response format\"\n end\n :abort\n end\nend\n"}},{"html_id":"xconfiguration(path:String,hash_args:Hash(String,JSONBasic)={}ofString=>JSONBasic,**kwargs)-instance-method","name":"xconfiguration","doc":"Apply a single configuration on the device.","summary":"

Apply a single configuration on the device.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"args_string":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSONBasic) = {} of String => JSONBasic, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L186"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSONBasic","external_name":"hash_args","restriction":"Hash(String, JSONBasic)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"promises = hash_args.map do |setting, value|\n apply_configuration(path, setting, value)\nend\nkwargs.each do |setting, value|\n promise = apply_configuration(path, setting, value)\n promises << promise\nend\n(Promise.all(promises)).get.first\n"}},{"html_id":"xconfigurations(config:Config)-instance-method","name":"xconfigurations","doc":"Push a configuration settings to the device.","summary":"

Push a configuration settings to the device.

","abstract":false,"args":[{"name":"config","external_name":"config","restriction":"Config"}],"args_string":"(config : Config)","args_html":"(config : Config)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L135"},"def":{"name":"xconfigurations","args":[{"name":"config","external_name":"config","restriction":"Config"}],"visibility":"Public","body":"config.each do |path, settings|\n xconfiguration(path, settings)\nend"}},{"html_id":"xstatus(path:String)-instance-method","name":"xstatus","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L229"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"request = XAPI.xstatus(path)\npromise = Promise.new(Hash(String, Enumerable::JSONComplex))\ntask = do_send(request) do |response|\n prefix = \"Status/#{(XAPI.tokenize(path)).join('/')}\"\n results = {} of String => Enumerable::JSONComplex\n response.each do |key, value|\n if key.starts_with?(prefix)\n results[key] = value\n end\n end\n if !results.empty?\n promise.resolve(results)\n results\n else\n if error = response[\"Status/status\"]? || response[\"CommandResponse/Status/status\"]?\n reason = response[\"Status/Reason\"]? || response[\"CommandResponse/Status/Reason\"]?\n xpath = response[\"Status/XPath\"]? || response[\"CommandResponse/Status/XPath\"]?\n error_msg = \"#{reason} (#{xpath})\"\n promise.reject(RuntimeError.new(error_msg))\n logger.error do\n error_msg\n end\n :abort\n else\n results[prefix] = nil\n promise.resolve(results)\n results\n end\n end\nend\nspawn do\n task.get\n if task.state == (:abort)\n promise.reject(RuntimeError.new(\"failed to obtain status: #{path}\"))\n end\nend\npromise.get\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","path":"Cisco/CollaborationEndpoint/Cameras.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"camera_move(camera_id:Int32,pan:Interface::Camera::PanDirection|Nil=nil,pan_speed:Int32|Nil=nil,tilt:Interface::Camera::TiltDirection|Nil=nil,tilt_speed:Int32|Nil=nil,zoom:Interface::Zoomable::ZoomDirection|Nil=nil,zoom_speed:Int32|Nil=nil,focus:FocusDirection|Nil=nil)-instance-method","name":"camera_move","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"args_string":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","args_html":"(camera_id : Int32, pan : Interface::Camera::PanDirection | Nil = nil, pan_speed : Int32 | Nil = nil, tilt : Interface::Camera::TiltDirection | Nil = nil, tilt_speed : Int32 | Nil = nil, zoom : Interface::Zoomable::ZoomDirection | Nil = nil, zoom_speed : Int32 | Nil = nil, focus : FocusDirection | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L43"},"def":{"name":"camera_move","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"pan","default_value":"nil","external_name":"pan","restriction":"Interface::Camera::PanDirection | ::Nil"},{"name":"pan_speed","default_value":"nil","external_name":"pan_speed","restriction":"Int32 | ::Nil"},{"name":"tilt","default_value":"nil","external_name":"tilt","restriction":"Interface::Camera::TiltDirection | ::Nil"},{"name":"tilt_speed","default_value":"nil","external_name":"tilt_speed","restriction":"Int32 | ::Nil"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Interface::Zoomable::ZoomDirection | ::Nil"},{"name":"zoom_speed","default_value":"nil","external_name":"zoom_speed","restriction":"Int32 | ::Nil"},{"name":"focus","default_value":"nil","external_name":"focus","restriction":"FocusDirection | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif pan_speed\n if (1..15).includes?(pan_speed)\n else\n raise(ArgumentError.new(\"\\\"pan_speed\\\" must be within #{1..15}, was #{pan_speed}\"))\n end\nend\nif tilt_speed\n if (1..15).includes?(tilt_speed)\n else\n raise(ArgumentError.new(\"\\\"tilt_speed\\\" must be within #{1..15}, was #{tilt_speed}\"))\n end\nend\nif zoom_speed\n if (1..15).includes?(zoom_speed)\n else\n raise(ArgumentError.new(\"\\\"zoom_speed\\\" must be within #{1..15}, was #{zoom_speed}\"))\n end\nend\nxcommand(\"Camera Ramp\", camera_id: camera_id, pan: pan, pan_speed: pan_speed, tilt: tilt, tilt_speed: tilt_speed, zoom: zoom, zoom_speed: zoom_speed, focus: focus)\n"}},{"html_id":"camera_position_reset(camera_id:Int32,axis:CameraAxis|Nil=nil)-instance-method","name":"camera_position_reset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"args_string":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","args_html":"(camera_id : Int32, axis : CameraAxis | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L40"},"def":{"name":"camera_position_reset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"axis","default_value":"nil","external_name":"axis","restriction":"CameraAxis | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nxcommand(\"Camera PositionReset\", camera_id: camera_id, axis: axis)\n"}},{"html_id":"camera_preset(preset_id:Int32)-instance-method","name":"camera_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L16"},"def":{"name":"camera_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Activate\", preset_id: preset_id)\n"}},{"html_id":"camera_remove_preset(preset_id:Int32)-instance-method","name":"camera_remove_preset","abstract":false,"args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"args_string":"(preset_id : Int32)","args_html":"(preset_id : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L24"},"def":{"name":"camera_remove_preset","args":[{"name":"preset_id","external_name":"preset_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Remove\", preset_id: preset_id)\n"}},{"html_id":"camera_store_preset(camera_id:Int32,preset_id:Int32,name:String|Nil=nil,take_snapshot:Bool|Nil=nil,default_position:Bool|Nil=nil)-instance-method","name":"camera_store_preset","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"args_string":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","args_html":"(camera_id : Int32, preset_id : Int32, name : String | Nil = nil, take_snapshot : Bool | Nil = nil, default_position : Bool | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L18"},"def":{"name":"camera_store_preset","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"},{"name":"preset_id","external_name":"preset_id","restriction":"Int32"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"take_snapshot","default_value":"nil","external_name":"take_snapshot","restriction":"Bool | ::Nil"},{"name":"default_position","default_value":"nil","external_name":"default_position","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if (1..2).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..2}, was #{camera_id}\"))\nend\nif (1..35).includes?(preset_id)\nelse\n raise(ArgumentError.new(\"preset_id must be within #{1..35}, was #{preset_id}\"))\nend\nxcommand(\"Camera Preset Store\", camera_id: camera_id, preset_id: preset_id, name: name, take_snapshot: take_snapshot, default_position: default_position)\n"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L107"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"pan_speed = pan_speed.clamp(-100.0, 100.0)\ntilt_speed = tilt_speed.clamp(-100.0, 100.0)\npan = if pan_speed.zero?\n pan_speed = nil\n PanDirection::Stop\nelse\n pan_speed.negative? ? PanDirection::Left : PanDirection::Right\nend\ntilt = if tilt_speed.zero?\n tilt_speed = nil\n TiltDirection::Stop\nelse\n tilt_speed.negative? ? TiltDirection::Down : TiltDirection::Up\nend\ncam = index.to_i\nif cam.zero?\n cam = 1\nend\nif pan_speed\n percentage = pan_speed.abs / 100.0\n pan_speed_actual = (percentage * 15.0).round.to_i\nend\nif tilt_speed\n percentage = tilt_speed.abs / 100.0\n tilt_speed_actual = (percentage * 15.0).round.to_i\nend\ncamera_move(camera_id: cam, pan: pan, pan_speed: pan_speed_actual, tilt: tilt, tilt_speed: tilt_speed_actual, zoom: ZoomDirection::Stop)\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L68"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncase position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0.0, tilt_speed: position.down? ? -50.0 : 50.0, index: cam)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -50.0 : 50.0, tilt_speed: 0.0, index: cam)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out, cam)\nend\n"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L148"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npreset = presets[position]?\nif preset\nelse\n raise(\"preset '#{position}' not found on camera #{index}\")\nend\ncamera_preset(preset_id: preset)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L179"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\npresets.delete(name)\nif presets.empty?\n @presets.delete(cam)\nelse\n @presets[cam] = presets\nend\nsave_presets\ntrue\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L159"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\npresets = @presets[cam]? || ({} of String => Int32)\nin_use = @presets.values.flat_map(&.values)\nnext_available = ((1..35).to_a - in_use).first\npresets[name] = next_available\ncamera_store_preset(camera_id: cam, preset_id: next_available, name: name).get\n@presets[cam] = presets\nsave_presets\ntrue\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L56"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, pan: PanDirection::Stop, tilt: TiltDirection::Stop, zoom: ZoomDirection::Stop)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L96"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"cam = index.to_i\nif cam.zero?\n cam = 1\nend\ncamera_move(camera_id: cam, zoom: direction, zoom_speed: 6)\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L92"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"raise(\"direct zoom unsupported on this camera\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/CameraAxis","path":"Cisco/CollaborationEndpoint/Cameras/CameraAxis.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::CameraAxis","name":"CameraAxis","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L27"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"0"},{"id":"Focus","name":"Focus","value":"1"},{"id":"PanTilt","name":"PanTilt","value":"2"},{"id":"Zoom","name":"Zoom","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L28"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"focus?-instance-method","name":"focus?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L29"},"def":{"name":"focus?","visibility":"Public","body":"self == Focus"}},{"html_id":"pan_tilt?-instance-method","name":"pan_tilt?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L30"},"def":{"name":"pan_tilt?","visibility":"Public","body":"self == PanTilt"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L31"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/FocusDirection","path":"Cisco/CollaborationEndpoint/Cameras/FocusDirection.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Cameras::FocusDirection","name":"FocusDirection","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L34"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Far","name":"Far","value":"0"},{"id":"Near","name":"Near","value":"1"},{"id":"Stop","name":"Stop","value":"2"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},"instance_methods":[{"html_id":"far?-instance-method","name":"far?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L35"},"def":{"name":"far?","visibility":"Public","body":"self == Far"}},{"html_id":"near?-instance-method","name":"near?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L36"},"def":{"name":"near?","visibility":"Public","body":"self == Near"}},{"html_id":"stop?-instance-method","name":"stop?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L37"},"def":{"name":"stop?","visibility":"Public","body":"self == Stop"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras/Interface","path":"Cisco/CollaborationEndpoint/Cameras/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Cameras::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/cameras.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/cameras.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Config","path":"Cisco/CollaborationEndpoint/Config.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Config","name":"Config","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L132"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","aliased_html":"Hash(String, Hash(String, Bool | Float64 | Int64 | String | Nil))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Feedback","path":"Cisco/CollaborationEndpoint/Feedback.html","kind":"class","full_name":"Cisco::CollaborationEndpoint::Feedback","name":"Feedback","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L2"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clear-instance-method","name":"clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L44"},"def":{"name":"clear","visibility":"Public","body":"@callbacks = Hash(String, Array(Proc(String, Enumerable::JSONComplex, Nil))).new do |h, k|\n h[k] = [] of Proc(String, Enumerable::JSONComplex, Nil)\nend"}},{"html_id":"contains?(path:String)-instance-method","name":"contains?","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L23"},"def":{"name":"contains?","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"found = false\n@callbacks.each_key do |key|\n if path.starts_with?(key)\n found = true\n break\n end\nend\nfound\n"}},{"html_id":"insert(path:String,&handler:Proc(String,Enumerable::JSONComplex,Nil))-instance-method","name":"insert","doc":"Insert a response handler block to be notified of updates effecting the\nspecified feedback path.","summary":"

Insert a response handler block to be notified of updates effecting the specified feedback path.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","args_html":"(path : String, &handler : Proc(String, Enumerable::JSONComplex, Nil))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L18"},"def":{"name":"insert","args":[{"name":"path","external_name":"path","restriction":"String"}],"yields":0,"block_arity":0,"block_arg":{"name":"handler","external_name":"handler","restriction":"Proc(String, Enumerable::JSONComplex, Nil)"},"visibility":"Public","body":"@callbacks[path] << handler\nself\n"}},{"html_id":"notify(path:String,value:Enumerable::JSONComplex)-instance-method","name":"notify","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"args_string":"(path : String, value : Enumerable::JSONComplex)","args_html":"(path : String, value : Enumerable::JSONComplex)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L34"},"def":{"name":"notify","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"value","external_name":"value","restriction":"Enumerable::JSONComplex"}],"visibility":"Public","body":"@callbacks.each do |key, callbacks|\n if path.starts_with?(key)\n callbacks.each(&.call(path, value))\n end\nend"}},{"html_id":"notify(payload:Hash(String,Enumerable::JSONComplex))-instance-method","name":"notify","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"args_string":"(payload : Hash(String, Enumerable::JSONComplex))","args_html":"(payload : Hash(String, Enumerable::JSONComplex))","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L40"},"def":{"name":"notify","args":[{"name":"payload","external_name":"payload","restriction":"Hash(String, Enumerable::JSONComplex)"}],"visibility":"Public","body":"payload.each do |key, value|\n notify(\"/#{key}\", value)\nend"}},{"html_id":"remove(path:String)-instance-method","name":"remove","doc":"Nuke a subtree below the path","summary":"

Nuke a subtree below the path

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/feedback.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/feedback.cr#L9"},"def":{"name":"remove","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"remove = [] of String\n@callbacks.each_key do |key|\n if key.starts_with?(path)\n remove << key\n end\nend\nremove.each do |key|\n @callbacks.delete(key)\nend\nself\n"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/JSONBasic","path":"Cisco/CollaborationEndpoint/JSONBasic.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","path":"Cisco/CollaborationEndpoint/Powerable.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"half_wake-instance-method","name":"half_wake","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L14"},"def":{"name":"half_wake","visibility":"Public","body":"xcommand(\"Standby HalfWake\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? powerup : half_wake\nself[:power] = state\n"}},{"html_id":"power_state(state:Interface::Powerable::PowerState)-instance-method","name":"power_state","doc":"override this to implement `PowerState::FullOff` if it is available for the device","summary":"

override this to implement PowerState::FullOff if it is available for the device

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"args_string":"(state : Interface::Powerable::PowerState)","args_html":"(state : Interface::Powerable::PowerState)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L23"},"def":{"name":"power_state","args":[{"name":"state","external_name":"state","restriction":"Interface::Powerable::PowerState"}],"visibility":"Public","body":"case state\nin .on?\n power(true)\nin .off?\n power(false)\nin .full_off?\n standby\n self[:power] = false\nend\nself[:power_state] = state\n"}},{"html_id":"powerup-instance-method","name":"powerup","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L13"},"def":{"name":"powerup","visibility":"Public","body":"xcommand(\"Standby Deactivate\")"}},{"html_id":"reset_standby_timer(delay:Int32)-instance-method","name":"reset_standby_timer","abstract":false,"args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"args_string":"(delay : Int32)","args_html":"(delay : Int32)","location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L16"},"def":{"name":"reset_standby_timer","args":[{"name":"delay","external_name":"delay","restriction":"Int32"}],"visibility":"Public","body":"if (1..480).includes?(delay)\nelse\n raise(ArgumentError.new(\"delay must be within #{1..480}, was #{delay}\"))\nend\nxcommand(\"Standby ResetTimer\", delay: delay)\n"}},{"html_id":"standby-instance-method","name":"standby","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L15"},"def":{"name":"standby","visibility":"Public","body":"xcommand(\"Standby Activate\")"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/Interface","path":"Cisco/CollaborationEndpoint/Powerable/Interface.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Powerable::Interface","name":"Interface","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface","aliased_html":"PlaceOS::Driver::Interface","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"}},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable/PowerOff","path":"Cisco/CollaborationEndpoint/Powerable/PowerOff.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Powerable::PowerOff","name":"PowerOff","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Restart","name":"Restart","value":"0"},{"id":"Shutdown","name":"Shutdown","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},"instance_methods":[{"html_id":"restart?-instance-method","name":"restart?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L37"},"def":{"name":"restart?","visibility":"Public","body":"self == Restart"}},{"html_id":"shutdown?-instance-method","name":"shutdown?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/powerable.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/powerable.cr#L38"},"def":{"name":"shutdown?","visibility":"Public","body":"self == Shutdown"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","path":"Cisco/CollaborationEndpoint/Presentation.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"presentation_start(presentation_source:Int32|Nil=nil,sending_mode:SendingMode|Nil=nil,connector_id:Int32|Nil=nil,instance:Int32|Nil=nil)-instance-method","name":"presentation_start","abstract":false,"args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"args_string":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","args_html":"(presentation_source : Int32 | Nil = nil, sending_mode : SendingMode | Nil = nil, connector_id : Int32 | Nil = nil, instance : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L24"},"def":{"name":"presentation_start","args":[{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"},{"name":"sending_mode","default_value":"nil","external_name":"sending_mode","restriction":"SendingMode | ::Nil"},{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if presentation_source\n if (1..2).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..2}, was #{presentation_source}\"))\n end\nend\nif connector_id\n if (1..2).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..2}, was #{connector_id}\"))\n end\nend\nif instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nxcommand(\"Presentation Start\", presentation_source: presentation_source, sending_mode: sending_mode, connector_id: connector_id, instance: instance)\n"}},{"html_id":"presentation_stop(instance:Int32|Nil=nil,presentation_source:Int32|Nil=nil)-instance-method","name":"presentation_stop","abstract":false,"args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"args_string":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","args_html":"(instance : Int32 | Nil = nil, presentation_source : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L29"},"def":{"name":"presentation_stop","args":[{"name":"instance","default_value":"nil","external_name":"instance","restriction":"Int32 | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if instance\n if (1..6).includes?(instance)\n else\n raise(ArgumentError.new(\"\\\"instance\\\" must be within #{1..6}, was #{instance}\"))\n end\nend\nif presentation_source\n if (1..4).includes?(presentation_source)\n else\n raise(ArgumentError.new(\"\\\"presentation_source\\\" must be within #{1..4}, was #{presentation_source}\"))\n end\nend\nxcommand(\"Presentation Stop\", instance: instance, presentation_source: presentation_source)\n"}},{"html_id":"send_presentation_to(remote:Bool)-instance-method","name":"send_presentation_to","abstract":false,"args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"args_string":"(remote : Bool)","args_html":"(remote : Bool)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L51"},"def":{"name":"send_presentation_to","args":[{"name":"remote","external_name":"remote","restriction":"Bool"}],"visibility":"Public","body":"@sending_mode = remote ? SendingMode::LocalRemote : SendingMode::LocalOnly\nself[:present_to_remote] = remote\nif input = @presenting_input\n presentation_start(presentation_source: input, sending_mode: @sending_mode)\nend\n"}},{"html_id":"switch_to(input:PresentationInputs)-instance-method","name":"switch_to","doc":"Provide compatabilty with the router module for activating presentation.","summary":"

Provide compatabilty with the router module for activating presentation.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"args_string":"(input : PresentationInputs)","args_html":"(input : PresentationInputs)","location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L34"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"PresentationInputs"}],"visibility":"Public","body":"if input.none?\n @presenting_input = nil\n presentation_stop\nelse\n source = input.to_s[5..-1].to_i\n @presenting_input = source\n presentation_start(presentation_source: source, sending_mode: @sending_mode)\nend\nself[:presenting_input] = @presenting_input\n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/PresentationInputs","path":"Cisco/CollaborationEndpoint/Presentation/PresentationInputs.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::PresentationInputs","name":"PresentationInputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"},{"id":"Input3","name":"Input3","value":"3"},{"id":"Input4","name":"Input4","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"input3?-instance-method","name":"input3?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L9"},"def":{"name":"input3?","visibility":"Public","body":"self == Input3"}},{"html_id":"input4?-instance-method","name":"input4?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L10"},"def":{"name":"input4?","visibility":"Public","body":"self == Input4"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation/SendingMode","path":"Cisco/CollaborationEndpoint/Presentation/SendingMode.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Presentation::SendingMode","name":"SendingMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LocalRemote","name":"LocalRemote","value":"0"},{"id":"LocalOnly","name":"LocalOnly","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},"instance_methods":[{"html_id":"local_only?-instance-method","name":"local_only?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L18"},"def":{"name":"local_only?","visibility":"Public","body":"self == LocalOnly"}},{"html_id":"local_remote?-instance-method","name":"local_remote?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/presentation.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/presentation.cr#L17"},"def":{"name":"local_remote?","visibility":"Public","body":"self == LocalRemote"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presets","path":"Cisco/CollaborationEndpoint/Presets.html","kind":"alias","full_name":"Cisco::CollaborationEndpoint::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Hash(String, Int32))","aliased_html":"Hash(Int32, Hash(String, Int32))","const":false,"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"Camera idx => Preset name => Preset id","summary":"

Camera idx => Preset name => Preset id

"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Toogle","path":"Cisco/CollaborationEndpoint/Toogle.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L15"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"doc":"used by many of the commands","summary":"

used by many of the commands

","instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L17"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint.cr#L16"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","path":"Cisco/CollaborationEndpoint/UIExtensions.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions","abstract":false,"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"}],"including_types":[{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},{"html_id":"drivers/Cisco/RoomOS","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"instance_methods":[{"html_id":"msg_alert(text:String,title:String|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"msg_alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(text : String, title : String | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L7"},"def":{"name":"msg_alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message Alert Display\", text: text, title: title, duration: duration)\n"}},{"html_id":"msg_alert_clear-instance-method","name":"msg_alert_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L6"},"def":{"name":"msg_alert_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"msg_prompt(text:String,options:Array(JSON::Any::Type),title:String|Nil=nil,feedback_id:String|Nil=nil,duration:Int64|Nil=nil)-instance-method","name":"msg_prompt","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"args_string":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","args_html":"(text : String, options : Array(JSON::Any::Type), title : String | Nil = nil, feedback_id : String | Nil = nil, duration : Int64 | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L14"},"def":{"name":"msg_prompt","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"options","external_name":"options","restriction":"Array(JSON::Any::Type)"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"feedback_id","default_value":"nil","external_name":"feedback_id","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"option_map = {} of String => JSON::Any::Type\n(\"Option.1\"..\"Option.5\").each_with_index do |key, i|\n if i >= options.size\n break\n end\n option_map[key] = options[i]\nend\nxcommand(\"UserInterface Message Prompt Display\", hash_args: Hash(String, JSON::Any::Type) {\"text\" => text, \"title\" => title, \"feedback_id\" => feedback_id, \"duration\" => duration}.merge(option_map))\n"}},{"html_id":"msg_prompt_clear-instance-method","name":"msg_prompt_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L12"},"def":{"name":"msg_prompt_clear","visibility":"Public","body":"xcommand(\"UserInterface Message Prompt Clear\")"}},{"html_id":"msg_text(text:String,feedback_id:String,title:String|Nil=nil,duration:Int32|Nil=nil,input_type:TextInputType|Nil=nil,keyboard_state:TextKeyboardState|Nil=nil,place_holder:String|Nil=nil,submit_text:String|Nil=nil)-instance-method","name":"msg_text","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"args_string":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","args_html":"(text : String, feedback_id : String, title : String | Nil = nil, duration : Int32 | Nil = nil, input_type : TextInputType | Nil = nil, keyboard_state : TextKeyboardState | Nil = nil, place_holder : String | Nil = nil, submit_text : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L45"},"def":{"name":"msg_text","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"feedback_id","external_name":"feedback_id","restriction":"String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"input_type","default_value":"nil","external_name":"input_type","restriction":"TextInputType | ::Nil"},{"name":"keyboard_state","default_value":"nil","external_name":"keyboard_state","restriction":"TextKeyboardState | ::Nil"},{"name":"place_holder","default_value":"nil","external_name":"place_holder","restriction":"String | ::Nil"},{"name":"submit_text","default_value":"nil","external_name":"submit_text","restriction":"String | ::Nil"}],"visibility":"Public","body":"if duration\n if (0..3600).includes?(duration)\n else\n raise(ArgumentError.new(\"\\\"duration\\\" must be within #{0..3600}, was #{duration}\"))\n end\nend\nxcommand(\"UserInterface Message TextInput Display\", text: text, feedback_id: feedback_id, title: title, duration: duration, input_type: input_type, keyboard_state: keyboard_state, place_holder: place_holder, submit_text: submit_text)\n"}},{"html_id":"msg_text_clear-instance-method","name":"msg_text_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L44"},"def":{"name":"msg_text_clear","visibility":"Public","body":"xcommand(\"UserInterface Message TextInput Clear\")"}},{"html_id":"ui_extensions_clear-instance-method","name":"ui_extensions_clear","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L73"},"def":{"name":"ui_extensions_clear","visibility":"Public","body":"xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"ui_extensions_deploy(id:String,xml_def:String)-instance-method","name":"ui_extensions_deploy","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L65"},"def":{"name":"ui_extensions_deploy","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface Extensions Set\", xml_def, config_id: id)"}},{"html_id":"ui_extensions_list-instance-method","name":"ui_extensions_list","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L69"},"def":{"name":"ui_extensions_list","visibility":"Public","body":"xcommand(\"UserInterface Extensions List\")"}},{"html_id":"ui_set_value(widget:String,value:JSON::Any::Type|Nil=nil)-instance-method","name":"ui_set_value","abstract":false,"args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"args_string":"(widget : String, value : JSON::Any::Type | Nil = nil)","args_html":"(widget : String, value : JSON::Any::Type | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L55"},"def":{"name":"ui_set_value","args":[{"name":"widget","external_name":"widget","restriction":"String"},{"name":"value","default_value":"nil","external_name":"value","restriction":"JSON::Any::Type | ::Nil"}],"visibility":"Public","body":"if value.nil?\n xcommand(\"UserInterface Extensions Widget UnsetValue\", widget_id: widget)\nelse\n xcommand(\"UserInterface Extensions Widget SetValue\", value: value, widget_id: widget)\nend"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextInputType","path":"Cisco/CollaborationEndpoint/UIExtensions/TextInputType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextInputType","name":"TextInputType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L32"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"SingleLine","name":"SingleLine","value":"0"},{"id":"Numeric","name":"Numeric","value":"1"},{"id":"Password","name":"Password","value":"2"},{"id":"PIN","name":"PIN","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"numeric?-instance-method","name":"numeric?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L34"},"def":{"name":"numeric?","visibility":"Public","body":"self == Numeric"}},{"html_id":"password?-instance-method","name":"password?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L35"},"def":{"name":"password?","visibility":"Public","body":"self == Password"}},{"html_id":"pin?-instance-method","name":"pin?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L36"},"def":{"name":"pin?","visibility":"Public","body":"self == PIN"}},{"html_id":"single_line?-instance-method","name":"single_line?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L33"},"def":{"name":"single_line?","visibility":"Public","body":"self == SingleLine"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState","path":"Cisco/CollaborationEndpoint/UIExtensions/TextKeyboardState.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::UIExtensions::TextKeyboardState","name":"TextKeyboardState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L39"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L41"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/ui_extensions.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/ui_extensions.cr#L40"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","path":"Cisco/CollaborationEndpoint/XAPI.html","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L3"},{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOL_OR","name":"BOOL_OR","value":"->(term : String) do\n ->(val : String) do\n val == term ? term : BOOLEAN.call(val)\n end\nend"},{"id":"BOOLEAN","name":"BOOLEAN","value":"->(val : String) do\n TRUTHY.includes?(val.downcase)\nend"},{"id":"COMMAND_RESPONSE","name":"COMMAND_RESPONSE","value":"Regex.union(INVALID_COMMAND, SUCCESS)"},{"id":"FALSEY","name":"FALSEY","value":"{\"false\", \"unavailable\", \"off\", \"inactive\"}"},{"id":"INVALID_COMMAND","name":"INVALID_COMMAND","value":"/(?<=Command not recognized\\.)[\\r\\n]+/","doc":"Regexp's for tokenizing the xAPI command and response structure.","summary":"

Regexp's for tokenizing the xAPI command and response structure.

"},{"id":"LOGIN_COMPLETE","name":"LOGIN_COMPLETE","value":"/Login successful/"},{"id":"PARSERS","name":"PARSERS","value":"{\"TTPAR_OnOff\" => BOOLEAN, \"TTPAR_OnOffAuto\" => BOOL_OR.call(\"Auto\"), \"TTPAR_OnOffCurrent\" => BOOL_OR.call(\"Current\"), \"TTPAR_MuteEnabled\" => BOOLEAN}"},{"id":"SUCCESS","name":"SUCCESS","value":"/(?<=OK)[\\r\\n]+/"},{"id":"TRUTHY","name":"TRUTHY","value":"{\"true\", \"available\", \"standby\", \"on\", \"active\"}"}],"including_types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},"class_methods":[{"html_id":"create_action(__action__:ActionType,*args,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,priority:Int32|Nil=nil,**kwargs)-class-method","name":"create_action","doc":"Serialize an xAPI action into transmittable command.","summary":"

Serialize an xAPI action into transmittable command.

","abstract":false,"args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"args_string":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","args_html":"(__action__ : ActionType, *args, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, priority : Int32 | Nil = nil, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L45"},"def":{"name":"create_action","args":[{"name":"__action__","external_name":"__action__","restriction":"ActionType"},{"name":"args","external_name":"args","restriction":""},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"},{"name":"priority","default_value":"nil","external_name":"priority","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":1,"visibility":"Public","body":"[__action__.to_s.camelcase(lower: true), args.compact_map(&.to_s), hash_args.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend, kwargs.map do |key, value|\n if value\n if value.is_a?(String)\n value = \"\\\"#{value}\\\"\"\n end\n \"#{key.to_s.camelcase}: #{value}\"\n end\nend.to_a.compact!].flatten.join(\" \")"}},{"html_id":"parse(data:String)-class-method","name":"parse","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L31"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"(JSON.parse(data)).as_h.flatten_xapi_json"}},{"html_id":"tokenize(path:String)-class-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L101"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split(/[\\s\\/\\\\]/)).reject(&.empty?)"}},{"html_id":"value_convert(value:String,valuespace:String|Nil=nil)-class-method","name":"value_convert","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"args_string":"(value : String, valuespace : String | Nil = nil)","args_html":"(value : String, valuespace : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L15"},"def":{"name":"value_convert","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"valuespace","default_value":"nil","external_name":"valuespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"begin\n parser = PARSERS[valuespace]?\n if parser\n else\n return value.to_i64\n end\n parser.call(value)\nrescue\n check = value.downcase\n if check.in?(TRUTHY)\n true\n else\n if check.in?(FALSEY)\n false\n else\n value\n end\n end\nend"}},{"html_id":"xcommand(path:String,hash_args:Hash(String,JSON::Any::Type)={}ofString=>JSON::Any::Type,**kwargs)-class-method","name":"xcommand","doc":"Serialize an xCommand into transmittable command.","summary":"

Serialize an xCommand into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","args_html":"(path : String, hash_args : Hash(String, JSON::Any::Type) = {} of String => JSON::Any::Type, **kwargs)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L71"},"def":{"name":"xcommand","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"hash_args","default_value":"{} of String => JSON::Any::Type","external_name":"hash_args","restriction":"Hash(String, JSON::Any::Type)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"create_action(ActionType::XCommand, path, **kwargs.merge({hash_args: hash_args}))"}},{"html_id":"xconfiguration(path:String,setting:String,value:JSON::Any::Type)-class-method","name":"xconfiguration","doc":"Serialize an xConfiguration action into a transmittable command.","summary":"

Serialize an xConfiguration action into a transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"args_string":"(path : String, setting : String, value : JSON::Any::Type)","args_html":"(path : String, setting : String, value : JSON::Any::Type)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L80"},"def":{"name":"xconfiguration","args":[{"name":"path","external_name":"path","restriction":"String"},{"name":"setting","external_name":"setting","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any::Type"}],"visibility":"Public","body":"create_action(ActionType::XConfiguration, path, hash_args: {setting => value})"}},{"html_id":"xfeedback(action:FeedbackAction,path:String|Nil=nil)-class-method","name":"xfeedback","doc":"Serialize a xFeedback subscription request.","summary":"

Serialize a xFeedback subscription request.

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"args_string":"(action : FeedbackAction, path : String | Nil = nil)","args_html":"(action : FeedbackAction, path : String | Nil = nil)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L92"},"def":{"name":"xfeedback","args":[{"name":"action","external_name":"action","restriction":"FeedbackAction"},{"name":"path","default_value":"nil","external_name":"path","restriction":"String | ::Nil"}],"visibility":"Public","body":"if path\n xpath = tokenize(path)\n create_action(ActionType::XFeedback, action, \"/#{xpath.join('/')}\")\nelse\n create_action(ActionType::XFeedback, action)\nend"}},{"html_id":"xstatus(path:String)-class-method","name":"xstatus","doc":"Serialize an xStatus request into transmittable command.","summary":"

Serialize an xStatus request into transmittable command.

","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L87"},"def":{"name":"xstatus","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"create_action(ActionType::XStatus, path)"}}],"macros":[{"html_id":"command(cmd_name,**params)-macro","name":"command","abstract":false,"args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"args_string":"(cmd_name, **params)","args_html":"(cmd_name, **params)","location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L106"},"def":{"name":"command","args":[{"name":"cmd_name","external_name":"cmd_name","restriction":""}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":" \n{% for cmd, name in cmd_name %}\n def {{ name.id }}(\n {% for param, klass in params %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {% if klass.is_a?(RangeLiteral) %}\n {{ param.id }} : Int32{% if optional %}? = nil{% end %},\n {% else %}\n {{ param.id }} : {{ klass }}{% if optional %}? = nil{% end %},\n {% end %}\n {% end %}\n )\n {% for param, klass in params %}\n {% if klass.is_a?(RangeLiteral) %}\n {% optional = false %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% optional = true %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n {% if optional %} if {{ param.id }}{% end %}\n raise ArgumentError.new(\"#{ {{ param.stringify }} } must be within #{ {{ klass }} }, was #{ {{ param.id }} }\") unless ({{ klass }}).includes?({{ param.id }})\n {% if optional %}end{% end %}\n {% end %}\n {% end %}\n\n # send the command\n xcommand(\n {{ cmd }},\n {% for param, klass in params %}\n {% if param.stringify.ends_with?(\"_\") %}\n {% param = param.stringify[0..-2] %}\n {% end %}\n\n {{ param.id }}: {{ param.id }},\n {% end %}\n )\n end\n {% end %}\n\n \n"}}],"types":[{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/ActionType","path":"Cisco/CollaborationEndpoint/XAPI/ActionType.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::ActionType","name":"ActionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L29"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"XConfiguration","name":"XConfiguration","value":"0"},{"id":"XCommand","name":"XCommand","value":"1"},{"id":"XStatus","name":"XStatus","value":"2"},{"id":"XFeedback","name":"XFeedback","value":"3"},{"id":"XPreferences","name":"XPreferences","value":"4"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"x_command?-instance-method","name":"x_command?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L31"},"def":{"name":"x_command?","visibility":"Public","body":"self == XCommand"}},{"html_id":"x_configuration?-instance-method","name":"x_configuration?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L30"},"def":{"name":"x_configuration?","visibility":"Public","body":"self == XConfiguration"}},{"html_id":"x_feedback?-instance-method","name":"x_feedback?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L33"},"def":{"name":"x_feedback?","visibility":"Public","body":"self == XFeedback"}},{"html_id":"x_preferences?-instance-method","name":"x_preferences?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L34"},"def":{"name":"x_preferences?","visibility":"Public","body":"self == XPreferences"}},{"html_id":"x_status?-instance-method","name":"x_status?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L32"},"def":{"name":"x_status?","visibility":"Public","body":"self == XStatus"}}]},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI/FeedbackAction","path":"Cisco/CollaborationEndpoint/XAPI/FeedbackAction.html","kind":"enum","full_name":"Cisco::CollaborationEndpoint::XAPI::FeedbackAction","name":"FeedbackAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L37"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Register","name":"Register","value":"0"},{"id":"Deregister","name":"Deregister","value":"1"},{"id":"DeregisterAll","name":"DeregisterAll","value":"2"},{"id":"List","name":"List","value":"3"}],"namespace":{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},"instance_methods":[{"html_id":"deregister?-instance-method","name":"deregister?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L39"},"def":{"name":"deregister?","visibility":"Public","body":"self == Deregister"}},{"html_id":"deregister_all?-instance-method","name":"deregister_all?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L40"},"def":{"name":"deregister_all?","visibility":"Public","body":"self == DeregisterAll"}},{"html_id":"list?-instance-method","name":"list?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L41"},"def":{"name":"list?","visibility":"Public","body":"self == List"}},{"html_id":"register?-instance-method","name":"register?","abstract":false,"location":{"filename":"src/cisco/collaboration_endpoint/xapi.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/xapi.cr#L38"},"def":{"name":"register?","visibility":"Public","body":"self == Register"}}]}]}]},{"html_id":"drivers/Cisco/DNASpaces","path":"Cisco/DNASpaces.html","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L9"},{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IOT_SENSORS","name":"IOT_SENSORS","value":"{SensorType::Presence, SensorType::PeopleCount, SensorType::Humidity, SensorType::AirQuality, SensorType::SoundPressure, SensorType::Temperature}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate-instance-method","name":"activate","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L98"},"def":{"name":"activate","visibility":"Public","body":"if @activation_token.empty?\n return\nend\nresponse = get(\"/client/v1/partner/partnerPublicKey/\")\nif response.success?\nelse\n raise(\"failed to obtain partner public key, code #{response.status_code}\")\nend\nlogger.debug do\n \"public key requested: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: Array(ActivactionPublicKey)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining partner public key: #{payload[:message]}\")\nend\npublic_key = payload[:data][0].public_key\npayload, header = JWT.decode(@activation_token, public_key, JWT::Algorithm::RS256, @verify_activation_key)\napp_id = payload[\"appId\"].as_s\nref_id = payload[\"activationRefId\"].as_s\ntenant_id = payload[\"tenantId\"].as_i64.to_s\nresponse = post(\"/client/v1/partner/activateOnPremiseApp\", headers: {\"Content-Type\" => \"application/json\", \"Authorization\" => \"Bearer #{@activation_token}\"}, body: {appId: app_id, activationRefId: ref_id}.to_json)\nif response.success?\nelse\n raise(\"failed to obtain API key, code #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"application activated: #{response.body}\"\nend\npayload = NamedTuple(status: Bool, message: String, data: NamedTuple(apiKey: String)).from_json(response.body.not_nil!)\nif payload[:status]\nelse\n raise(\"unexpected failure obtaining API key: #{payload[:message]}\")\nend\napi_key = payload[:data][:apiKey]\nlogger.debug do\n \"saving API key: #{tenant_id}, #{api_key}\"\nend\ndefine_setting(:tenant_id, tenant_id)\ndefine_setting(:dna_spaces_api_key, api_key)\ndefine_setting(:dna_spaces_activation_key, \"\")\nlogger.debug do\n \"settings saved! Starting stream\"\nend\n@api_key = api_key\n@tenant_id = tenant_id\n@description_lock.synchronize do\n if !@streaming\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":530,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L530"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"if location = locate_mac(mac_address)\n {location: \"wireless\", assigned_to: format_username(location.raw_user_id), mac_address: format_mac(mac_address)}\nend"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L241"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago.to_unix\nremove_keys = [] of String\nlocations do |locs|\n locs.each do |mac, location|\n if location.last_seen < old\n remove_keys << mac\n end\n end\n remove_keys.each do |mac|\n locs.delete(mac)\n end\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L541"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of Nil\nend\nfloors = [] of String\nadjustments = {} of String => Tuple(Float64, Float64, Float64, Float64)\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n offset_x = (data[\"offset_x\"]? || 0.0).as(Float64)\n offset_y = (data[\"offset_y\"]? || 0.0).as(Float64)\n map_width = (data[\"map_width\"]? || -1.0).as(Float64)\n map_height = (data[\"map_height\"]? || -1.0).as(Float64)\n adjustments[floor_id] = {offset_x, offset_y, map_width, map_height}\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of Nil\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago.to_unix\nmatching = locations(&.compact_map do |mac, loc|\n if loc.last_seen < oldest_location\n too_old = too_old + 1\n next\n end\n if (floors & loc.location_mappings.values).empty?\n wrong_floor = wrong_floor + 1\n next\n end\n loc.device.mac_address = mac\n loc\nend)\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.map_id).flat_map do |map_id, locations|\n map_width = -1.0\n map_height = -1.0\n offset_x = 0.0\n offset_y = 0.0\n locations.first.location_mappings.each_value do |location_id|\n if level_data = adjustments[location_id]?\n offset_x, offset_y, map_width, map_height = level_data\n break\n end\n end\n if (map_width == -1.0) || (map_height == -1.0)\n if map_size = get_map_details(map_id)\n map_width = map_width > -1.0 ? map_width : (map_size.length - offset_x)\n map_height = map_height > -1.0 ? map_height : (map_size.width - offset_y)\n end\n end\n locations.compact_map do |loc|\n if loc.is_a?(WebexTelemetryUpdate)\n next\n end\n lat = loc.latitude\n lon = loc.longitude\n {location: :wireless, coordinates_from: \"top-left\", x: loc.x_pos - offset_x, y: loc.y_pos - offset_y, lon: lon, lat: lat, s2_cell_id: ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, mac: loc.device.mac_address, variance: loc.unc, last_seen: loc.last_seen, map_width: map_width, map_height: map_height, ssid: loc.ssid, manufacturer: loc.device.manufacturer, os: loc.device.os}\n end\nend\n"}},{"html_id":"devices(&)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L191"},"def":{"name":"devices","yields":1,"block_arity":1,"visibility":"Public","body":"@dev_lock.synchronize do\n yield @devices\nend"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":632,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L632"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L636"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_location_info(location_id:String)-instance-method","name":"get_location_info","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L165"},"def":{"name":"get_location_info","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/partners/v1/locations/#{location_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain location id #{location_id}, code #{response.status_code}\")\nend\nLocationInfo.from_json(response.body.not_nil!)\n"}},{"html_id":"get_map_details(map_id:String)-instance-method","name":"get_map_details","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L223"},"def":{"name":"get_map_details","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"map = @map_lock.synchronize do\n @map_details[map_id]?\nend\nif !map\n response = get(\"/api/partners/v1/maps/#{map_id}?partnerTenantId=#{@tenant_id}\", headers: {\"X-API-KEY\" => @api_key})\n if !response.success?\n message = \"failed to obtain map id #{map_id}, code #{response.status_code}\"\n logger.warn do\n message\n end\n return nil\n end\n map = (MapInfo.from_json(response.body.not_nil!)).dimension\n @map_lock.synchronize do\n @map_details[map_id] = map\n end\nend\nmap\n"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L213"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"MAC Locations: #{locations(&.keys)}\"\nend\n{tracking: locations(&.size), events_received: @events_received}\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L207"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"formatted_address = format_mac(address)\nlocations do |locs|\n locs[formatted_address]?\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"=============================\nLocatable interface\n=============================","summary":"

============================= Locatable interface =============================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L443"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"if macs = user_lookup(username.presence || email.presence.not_nil!)\n location_max_age = @max_location_age.ago.to_unix\n macs.compact_map do |mac|\n if location = locate_mac(mac)\n if location.is_a?(WebexTelemetryUpdate)\n next\n end\n if location.last_seen > location_max_age\n location.device.mac_address = mac\n location\n end\n end\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end.map do |location|\n lat = location.latitude\n lon = location.longitude\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"top-left\", \"x\" => location.x_pos, \"y\" => location.y_pos, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => ((S2Cells.at(lat, lon)).parent(@s2_level)).to_token, \"mac\" => location.device.mac_address, \"variance\" => location.unc, \"last_seen\" => location.last_seen, \"dna_floor_id\" => location.map_id, \"ssid\" => location.ssid, \"manufacturer\" => location.device.manufacturer, \"os\" => location.device.os}\n map_width = 0.0\n map_height = 0.0\n offset_x = 0.0\n offset_y = 0.0\n location.location_mappings.each_value do |location_id|\n if level_data = @floorplan_mappings[location_id]?\n level_data.each do |key, value|\n case key\n when \"offset_x\"\n offset_x = value.as(Float64)\n loc[\"x\"] = location.x_pos - offset_x\n when \"offset_y\"\n offset_y = value.as(Float64)\n loc[\"y\"] = location.y_pos - offset_y\n when \"map_width\"\n map_width = value.as(Float64)\n when \"map_height\"\n map_height = value.as(Float64)\n else\n loc[key] = value\n end\n end\n break\n end\n end\n if map_width > 0.0 && map_height > 0.0\n loc[\"map_width\"] = map_width\n loc[\"map_height\"] = map_height\n else\n if map_size = get_map_details(location.map_id)\n loc[\"map_width\"] = map_width > 0.0 ? map_width : (map_size.length - offset_x)\n loc[\"map_height\"] = map_height > 0.0 ? map_height : (map_size.width - offset_y)\n end\n end\n loc\n end\nelse\n [] of Nil\nend"}},{"html_id":"locations(&)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L187"},"def":{"name":"locations","yields":1,"block_arity":1,"visibility":"Public","body":"@loc_lock.synchronize do\n yield @locations\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":525,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L525"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(user_lookup(username.presence || email.presence.not_nil!)).try(&.to_a) || ([] of String)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L48"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close\n@stream_active = false\nupdate_monitoring_status(running: false)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L65"},"def":{"name":"on_update","visibility":"Public","body":"@max_location_age = ((setting?(UInt32, :max_location_age)) || 10).minutes\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@debug_stream = (setting?(Bool, :debug_stream)) || false\n@verify_activation_key = (setting?(Bool, :verify_activation_key)) || false\nschedule.clear\nschedule.every(30.minutes) do\n cleanup_caches\nend\nschedule.every(5.minutes) do\n update_monitoring_status\nend\nschedule.in(5.seconds) do\n update_monitoring_status\nend\n@activation_token = (setting?(String, :dna_spaces_activation_key)) || \"\"\nif @activation_token.empty?\n @api_key = setting(String, :dna_spaces_api_key)\n @tenant_id = (setting(String | Int64, :tenant_id)).to_s\nelse\n @api_key = (setting?(String, :dna_spaces_api_key)) || \"\"\n @tenant_id = (setting?(String | Int64, :tenant_id)).try(&.to_s) || \"\"\n if @api_key.empty?\n schedule.in(5.seconds) do\n activate\n end\n end\nend\n@description_lock.synchronize do\n if !@streaming && !@api_key.empty?\n @streaming = true\n spawn do\n start_streaming_events\n end\n end\nend\n"}},{"html_id":"seen_locations-instance-method","name":"seen_locations","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L177"},"def":{"name":"seen_locations","visibility":"Public","body":"@description_lock.synchronize do\n @location_descriptions.dup\nend"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L114"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nmac = format_mac(mac)\ndevice = devices do |dev|\n dev[mac]?\nend\nif device\nelse\n return nil\nend\nfilter = SensorType.parse(id)\ncase device\nin IotTelemetry, WebexTelemetryUpdate\n (to_sensors(nil, filter, device)).first?\nin DeviceLocationUpdate\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/dna_spaces/sensor_interface.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/sensor_interface.cr#L85"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nfilter = type ? SensorType.parse(type) : nil\nif filter && !(filter.in?(IOT_SENSORS))\n return NO_MATCH\nend\nif mac\n mac = format_mac(mac)\n device = devices do |dev|\n dev[mac]?\n end\n if device\n else\n return NO_MATCH\n end\n return case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\ndevice_values = devices(&.values)\ndevice_values.flat_map do |device|\n case device\n in IotTelemetry, WebexTelemetryUpdate\n to_sensors(zone_id, filter, device)\n in DeviceLocationUpdate\n NO_MATCH\n end\nend\n"}},{"html_id":"update_monitoring_status(running:Bool=true):Nil-instance-method","name":"update_monitoring_status","doc":"This provides the DNA Spaces dashboard with stream consumption status","summary":"

This provides the DNA Spaces dashboard with stream consumption status

","abstract":false,"args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"args_string":"(running : Bool = true) : Nil","args_html":"(running : Bool = true) : Nil","location":{"filename":"src/cisco/dna_spaces.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L647"},"def":{"name":"update_monitoring_status","args":[{"name":"running","default_value":"true","external_name":"running","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = put(\"/api/partners/v1/monitoring/status\", headers: {\"Content-Type\" => \"application/json\", \"X-API-KEY\" => @api_key}, body: {data: {overallStatus: {status: running ? \"up\" : \"down\", notices: [] of Nil}, instanceDetails: {ipAddress: \"\", instanceId: module_id}, cloudFirehose: {status: @stream_active ? \"connected\" : \"disconnected\", lastReceived: @last_received}, localFirehose: {status: \"disconnected\", lastReceived: 0}, subsystems: [] of Nil}}.to_json)\nif response.success?\nelse\n raise(\"failed to update status, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"user_lookup(&)-instance-method","name":"user_lookup","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L198"},"def":{"name":"user_lookup","yields":1,"block_arity":1,"visibility":"Public","body":"@user_loc.synchronize do\n yield @user_lookup\nend"}},{"html_id":"user_lookup(user_id:String)-instance-method","name":"user_lookup","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L202"},"def":{"name":"user_lookup","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"formatted_user = format_username(user_id)\nuser_lookup do |lookup|\n lookup[formatted_user]?\nend\n"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/ActivactionPublicKey","path":"Cisco/DNASpaces/ActivactionPublicKey.html","kind":"class","full_name":"Cisco::DNASpaces::ActivactionPublicKey","name":"ActivactionPublicKey","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"public_key-instance-method","name":"public_key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L11"},"def":{"name":"public_key","visibility":"Public","body":"\"-----BEGIN PUBLIC KEY-----\\n#{@public_key}\\n-----END PUBLIC KEY-----\\n\""}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/activation_publickey.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/activation_publickey.cr#L6"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivaction","path":"Cisco/DNASpaces/AppActivaction.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivaction","name":"AppActivaction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance_name:String-instance-method","name":"instance_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L20"},"def":{"name":"instance_name","return_type":"String","visibility":"Public","body":"@instance_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L13"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"reference_id:String-instance-method","name":"reference_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L17"},"def":{"name":"reference_id","return_type":"String","visibility":"Public","body":"@reference_id"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L10"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/app_activaction.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/app_activaction.cr#L7"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","path":"Cisco/DNASpaces/AppActivactionWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L109"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L110"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:AppActivaction-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L113"},"def":{"name":"payload","return_type":"AppActivaction","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/BlePayload","path":"Cisco/DNASpaces/BlePayload.html","kind":"class","full_name":"Cisco::DNASpaces::BlePayload","name":"BlePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data","return_type":"String","visibility":"Public","body":"@data"}},{"html_id":"data=(data:String)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L8"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"@data = data"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L7"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdate","path":"Cisco/DNASpaces/BleRssiUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdate","name":"BleRssiUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L48"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"notification:RssiNotification-instance-method","name":"notification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L47"},"def":{"name":"notification","return_type":"RssiNotification","visibility":"Public","body":"@notification"}}]},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","path":"Cisco/DNASpaces/BleRssiUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L123"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L123"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L124"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:BleRssiUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L127"},"def":{"name":"payload","return_type":"BleRssiUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Device","path":"Cisco/DNASpaces/Device.html","kind":"class","full_name":"Cisco::DNASpaces::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L7"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"email-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L16"},"def":{"name":"email","visibility":"Public","body":"@email.try(&.downcase)"}},{"html_id":"email_raw:String?-instance-method","name":"email_raw","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L20"},"def":{"name":"email_raw","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L27"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L24"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L30"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","doc":"We make this editable so we can store the formatted version here","summary":"

We make this editable so we can store the formatted version here

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L41"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L42"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L13"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L43"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os_version:String|Nil-instance-method","name":"os_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L46"},"def":{"name":"os_version","return_type":"String | ::Nil","visibility":"Public","body":"@os_version"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L33"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L12"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L47"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCount","path":"Cisco/DNASpaces/DeviceCount.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCount","name":"DeviceCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"associated_count:Int32-instance-method","name":"associated_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L9"},"def":{"name":"associated_count","return_type":"Int32","visibility":"Public","body":"@associated_count"}},{"html_id":"estimated_capacity_percentage:Float64-instance-method","name":"estimated_capacity_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L21"},"def":{"name":"estimated_capacity_percentage","return_type":"Float64","visibility":"Public","body":"@estimated_capacity_percentage"}},{"html_id":"estimated_density:Float64-instance-method","name":"estimated_density","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L18"},"def":{"name":"estimated_density","return_type":"Float64","visibility":"Public","body":"@estimated_density"}},{"html_id":"estimated_probing_count:Int32-instance-method","name":"estimated_probing_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L12"},"def":{"name":"estimated_probing_count","return_type":"Int32","visibility":"Public","body":"@estimated_probing_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L6"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"probing_randomized_percentage:Float64-instance-method","name":"probing_randomized_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_count.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_count.cr#L15"},"def":{"name":"probing_randomized_percentage","return_type":"Float64","visibility":"Public","body":"@probing_randomized_percentage"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","path":"Cisco/DNASpaces/DeviceCountWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L116"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L117"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceCount-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L120"},"def":{"name":"payload","return_type":"DeviceCount","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntry","path":"Cisco/DNASpaces/DeviceEntry.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntry","name":"DeviceEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"days_sinc_last_visit:Int32-instance-method","name":"days_sinc_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L25"},"def":{"name":"days_sinc_last_visit","return_type":"Int32","visibility":"Public","body":"@days_sinc_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L22"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L16"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L13"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L19"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_entry.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_entry.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","path":"Cisco/DNASpaces/DeviceEntryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L53"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L54"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceEntry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L57"},"def":{"name":"payload","return_type":"DeviceEntry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExit","path":"Cisco/DNASpaces/DeviceExit.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExit","name":"DeviceExit","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L34"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L22"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L19"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L28"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L25"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L31"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L37"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L16"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_exit.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_exit.cr#L10"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","path":"Cisco/DNASpaces/DeviceExitWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L60"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L61"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceExit-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L64"},"def":{"name":"payload","return_type":"DeviceExit","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdate","path":"Cisco/DNASpaces/DeviceLocationUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdate","name":"DeviceLocationUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L33"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L6"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L21"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L38"},"def":{"name":"has_position?","visibility":"Public","body":"true"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L18"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L34"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L46"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L35"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L24"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L12"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L9"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L36"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"@unc"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L15"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L27"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_location_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_location_update.cr#L30"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","path":"Cisco/DNASpaces/DeviceLocationUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L82"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DeviceLocationUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L85"},"def":{"name":"payload","return_type":"DeviceLocationUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresence","path":"Cisco/DNASpaces/DevicePresence.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresence","name":"DevicePresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_devices_count:Int32-instance-method","name":"active_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L50"},"def":{"name":"active_devices_count","return_type":"Int32","visibility":"Public","body":"@active_devices_count"}},{"html_id":"days_since_last_visit:Int32-instance-method","name":"days_since_last_visit","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L23"},"def":{"name":"days_since_last_visit","return_type":"Int32","visibility":"Public","body":"@days_since_last_visit"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L11"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device_classification:String-instance-method","name":"device_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L44"},"def":{"name":"device_classification","return_type":"String","visibility":"Public","body":"@device_classification"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L29"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L26"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_date_time:String-instance-method","name":"exit_date_time","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L35"},"def":{"name":"exit_date_time","return_type":"String","visibility":"Public","body":"@exit_date_time"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L32"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_devices_count:Int32-instance-method","name":"inactive_devices_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L53"},"def":{"name":"inactive_devices_count","return_type":"Int32","visibility":"Public","body":"@inactive_devices_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L12"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L7"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L17"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L14"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L41"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"visit_classification:String-instance-method","name":"visit_classification","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L47"},"def":{"name":"visit_classification","return_type":"String","visibility":"Public","body":"@visit_classification"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L38"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L20"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/device_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/device_presence.cr#L10"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}]},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","path":"Cisco/DNASpaces/DevicePresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L96"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:DevicePresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L99"},"def":{"name":"payload","return_type":"DevicePresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/Dimension","path":"Cisco/DNASpaces/Dimension.html","kind":"class","full_name":"Cisco::DNASpaces::Dimension","name":"Dimension","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L8"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L6"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"offset_x:Float64-instance-method","name":"offset_x","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L11"},"def":{"name":"offset_x","return_type":"Float64","visibility":"Public","body":"@offset_x"}},{"html_id":"offset_y:Float64-instance-method","name":"offset_y","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L14"},"def":{"name":"offset_y","return_type":"Float64","visibility":"Public","body":"@offset_y"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L7"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/Cisco/DNASpaces/Events","path":"Cisco/DNASpaces/Events.html","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Cisco/DNASpaces/AppActivactionWrapper","kind":"class","full_name":"Cisco::DNASpaces::AppActivactionWrapper","name":"AppActivactionWrapper"},{"html_id":"drivers/Cisco/DNASpaces/BleRssiUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::BleRssiUpdateWrapper","name":"BleRssiUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceCountWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceCountWrapper","name":"DeviceCountWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceEntryWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceEntryWrapper","name":"DeviceEntryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceExitWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceExitWrapper","name":"DeviceExitWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DeviceLocationUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::DeviceLocationUpdateWrapper","name":"DeviceLocationUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/DevicePresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::DevicePresenceWrapper","name":"DevicePresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper"},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive"},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper"},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper"},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper"},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is used to map the various events into a simpler data structure","summary":"

This is used to map the various events into a simpler data structure

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"event type hint","summary":"

event type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"eventType\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'eventType' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'eventType'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"KEEP_ALIVE\"\n KeepAlive.from_json(json)\nwhen \"DEVICE_ENTRY\"\n DeviceEntryWrapper.from_json(json)\nwhen \"DEVICE_EXIT\"\n DeviceExitWrapper.from_json(json)\nwhen \"PROFILE_UPDATE\"\n ProfileUpdateWrapper.from_json(json)\nwhen \"LOCATION_CHANGE\"\n LocationChangeWrapper.from_json(json)\nwhen \"DEVICE_LOCATION_UPDATE\"\n DeviceLocationUpdateWrapper.from_json(json)\nwhen \"TP_PEOPLE_COUNT_UPDATE\"\n PeopleCountUpdateWrapper.from_json(json)\nwhen \"DEVICE_PRESENCE\"\n DevicePresenceWrapper.from_json(json)\nwhen \"USER_PRESENCE\"\n UserPresenceWrapper.from_json(json)\nwhen \"APP_ACTIVATION\"\n AppActivactionWrapper.from_json(json)\nwhen \"DEVICE_COUNT\"\n DeviceCountWrapper.from_json(json)\nwhen \"BLE_RSSI_UPDATE\"\n BleRssiUpdateWrapper.from_json(json)\nwhen \"IOT_TELEMETRY\"\n IotTelemetryWrapper.from_json(json)\nwhen \"WEBEX_TELEMETRY\"\n WebexTelemetryUpdateWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'eventType' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"partner_tenant_id:String-instance-method","name":"partner_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L42"},"def":{"name":"partner_tenant_id","return_type":"String","visibility":"Public","body":"@partner_tenant_id"}},{"html_id":"record_timestamp:Int64-instance-method","name":"record_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L33"},"def":{"name":"record_timestamp","return_type":"Int64","visibility":"Public","body":"@record_timestamp"}},{"html_id":"record_uid:String-instance-method","name":"record_uid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L30"},"def":{"name":"record_uid","return_type":"String","visibility":"Public","body":"@record_uid"}},{"html_id":"spaces_tenant_id:String-instance-method","name":"spaces_tenant_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L36"},"def":{"name":"spaces_tenant_id","return_type":"String","visibility":"Public","body":"@spaces_tenant_id"}},{"html_id":"spaces_tenant_name:String-instance-method","name":"spaces_tenant_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L39"},"def":{"name":"spaces_tenant_name","return_type":"String","visibility":"Public","body":"@spaces_tenant_name"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotDeviceInfo","path":"Cisco/DNASpaces/IotDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::IotDeviceInfo","name":"IotDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"device_name=(device_name:String)-instance-method","name":"device_name=","abstract":false,"args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"args_string":"(device_name : String)","args_html":"(device_name : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L17"},"def":{"name":"device_name=","args":[{"name":"device_name","external_name":"device_name","restriction":"String"}],"visibility":"Public","body":"@device_name = device_name"}},{"html_id":"firmware_version:String-instance-method","name":"firmware_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version","return_type":"String","visibility":"Public","body":"@firmware_version"}},{"html_id":"firmware_version=(firmware_version:String)-instance-method","name":"firmware_version=","abstract":false,"args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"args_string":"(firmware_version : String)","args_html":"(firmware_version : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L20"},"def":{"name":"firmware_version=","args":[{"name":"firmware_version","external_name":"firmware_version","restriction":"String"}],"visibility":"Public","body":"@firmware_version = firmware_version"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L11"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L14"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"manufacturer:String-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer","return_type":"String","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"args_string":"(manufacturer : String)","args_html":"(manufacturer : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L24"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L26"},"def":{"name":"os","visibility":"Public","body":"type"}},{"html_id":"raw_id:String-instance-method","name":"raw_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id","return_type":"String","visibility":"Public","body":"@raw_id"}},{"html_id":"raw_id=(raw_id:String)-instance-method","name":"raw_id=","abstract":false,"args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"args_string":"(raw_id : String)","args_html":"(raw_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L23"},"def":{"name":"raw_id=","args":[{"name":"raw_id","external_name":"raw_id","restriction":"String"}],"visibility":"Public","body":"@raw_id = raw_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L8"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotPosition","path":"Cisco/DNASpaces/IotPosition.html","kind":"class","full_name":"Cisco::DNASpaces::IotPosition","name":"IotPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L32"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence_factor:Float64-instance-method","name":"confidence_factor","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L44"},"def":{"name":"confidence_factor","return_type":"Float64","visibility":"Public","body":"@confidence_factor"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L45"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L49"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L46"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L35"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"time_located:Int64-instance-method","name":"time_located","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located","return_type":"Int64","visibility":"Public","body":"@time_located"}},{"html_id":"time_located=(time_located:Int64)-instance-method","name":"time_located=","abstract":false,"args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"args_string":"(time_located : Int64)","args_html":"(time_located : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L52"},"def":{"name":"time_located=","args":[{"name":"time_located","external_name":"time_located","restriction":"Int64"}],"visibility":"Public","body":"@time_located = time_located"}},{"html_id":"x_pos:Float64-instance-method","name":"x_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L38"},"def":{"name":"x_pos","return_type":"Float64","visibility":"Public","body":"@x_pos"}},{"html_id":"y_pos:Float64-instance-method","name":"y_pos","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L41"},"def":{"name":"y_pos","return_type":"Float64","visibility":"Public","body":"@y_pos"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetry","path":"Cisco/DNASpaces/IotTelemetry.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetry","name":"IotTelemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_pressure-instance-method","name":"air_pressure","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L165"},"def":{"name":"air_pressure","visibility":"Public","body":"if pressure = @air_pressure_actual\n pressure[:pressure]\nend"}},{"html_id":"air_pressure_actual:NamedTuple(pressure:Float64)|Nil-instance-method","name":"air_pressure_actual","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L127"},"def":{"name":"air_pressure_actual","return_type":"NamedTuple(pressure: Float64) | ::Nil","visibility":"Public","body":"@air_pressure_actual"}},{"html_id":"air_quality-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L147"},"def":{"name":"air_quality","visibility":"Public","body":"if index = @air_quality_index\n index[:airQualityIndex]\nend"}},{"html_id":"air_quality_index:NamedTuple(airQualityIndex:Float64)|Nil-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L118"},"def":{"name":"air_quality_index","return_type":"NamedTuple(airQualityIndex: Float64) | ::Nil","visibility":"Public","body":"@air_quality_index"}},{"html_id":"ambient_noise-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L143"},"def":{"name":"ambient_noise","visibility":"Public","body":"tele_presence_data.try(&.ambient_noise)"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L177"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .humidity?\n \"#{mac}->humidity->humidityInPercentage\"\nwhen .air_quality?\n \"#{mac}->airQuality->airQualityIndex\"\nwhen .people_count?\n \"#{mac}->tpData->peopleCount\"\nwhen .temperature?\n \"#{mac}->temperature->temperatureInCelsius\"\nend"}},{"html_id":"confidence_factor(*args,**options)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.confidence_factor(*args, **options)"}},{"html_id":"confidence_factor(*args,**options,&)-instance-method","name":"confidence_factor","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L215"},"def":{"name":"confidence_factor","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.confidence_factor(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"detected_position:IotPosition|Nil-instance-method","name":"detected_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L98"},"def":{"name":"detected_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@detected_position"}},{"html_id":"device:IotDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L95"},"def":{"name":"device","return_type":"IotDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device_rtc:Int64-instance-method","name":"device_rtc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L106"},"def":{"name":"device_rtc","return_type":"Int64","visibility":"Public","body":"@device_rtc"}},{"html_id":"has_position?-instance-method","name":"has_position?","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L204"},"def":{"name":"has_position?","visibility":"Public","body":"!!(@detected_position || @placed_position)"}},{"html_id":"humidity-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L159"},"def":{"name":"humidity","visibility":"Public","body":"if humidity = @humidity_percent\n humidity[:humidityInPercentage]\nend"}},{"html_id":"humidity_percent:NamedTuple(humidityInPercentage:Float64)|Nil-instance-method","name":"humidity_percent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L124"},"def":{"name":"humidity_percent","return_type":"NamedTuple(humidityInPercentage: Float64) | ::Nil","visibility":"Public","body":"@humidity_percent"}},{"html_id":"last_seen-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L228"},"def":{"name":"last_seen","visibility":"Public","body":"tele_presence_data.try(&.time_stamp) || (has_position? ? position.time_located : device_rtc)"}},{"html_id":"last_seen=(time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":""}],"args_string":"(time)","args_html":"(time)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L232"},"def":{"name":"last_seen=","args":[{"name":"time","external_name":"time","restriction":""}],"visibility":"Public","body":"if tele_data = tele_presence_data\n tele_data.time_stamp = time\nelse\n if has_position?\n position.time_located = time\n else\n @device_rtc = time\n end\nend\ntime\n"}},{"html_id":"latitude(*args,**options)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.latitude(*args, **options)"}},{"html_id":"latitude(*args,**options,&)-instance-method","name":"latitude","doc":"make this class quack like a wifi DeviceLocationUpdate","summary":"

make this class quack like a wifi DeviceLocationUpdate

","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L213"},"def":{"name":"latitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.latitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L103"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L194"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"longitude(*args,**options)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.longitude(*args, **options)"}},{"html_id":"longitude(*args,**options,&)-instance-method","name":"longitude","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L214"},"def":{"name":"longitude","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.longitude(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id(*args,**options)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.map_id(*args, **options)"}},{"html_id":"map_id(*args,**options,&)-instance-method","name":"map_id","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L218"},"def":{"name":"map_id","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.map_id(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"map_id=(id)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L220"},"def":{"name":"map_id=","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"position.map_id = id"}},{"html_id":"people_count-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L135"},"def":{"name":"people_count","visibility":"Public","body":"tele_presence_data.try(&.people_count)"}},{"html_id":"pir_trigger:NamedTuple(timestamp:Int64)|Nil-instance-method","name":"pir_trigger","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L130"},"def":{"name":"pir_trigger","return_type":"NamedTuple(timestamp: Int64) | ::Nil","visibility":"Public","body":"@pir_trigger"}},{"html_id":"pir_triggered-instance-method","name":"pir_triggered","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L171"},"def":{"name":"pir_triggered","visibility":"Public","body":"if pir_trigger = @pir_trigger\n pir_trigger[:timestamp]\nend"}},{"html_id":"placed_position:IotPosition|Nil-instance-method","name":"placed_position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L101"},"def":{"name":"placed_position","return_type":"IotPosition | ::Nil","visibility":"Public","body":"@placed_position"}},{"html_id":"position:IotPosition-instance-method","name":"position","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L208"},"def":{"name":"position","return_type":"IotPosition","visibility":"Public","body":"(@detected_position || @placed_position).not_nil!"}},{"html_id":"presence-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L139"},"def":{"name":"presence","visibility":"Public","body":"tele_presence_data.try(&.presence)"}},{"html_id":"raw_header:Int64-instance-method","name":"raw_header","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L109"},"def":{"name":"raw_header","return_type":"Int64","visibility":"Public","body":"@raw_header"}},{"html_id":"raw_payload:String-instance-method","name":"raw_payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L112"},"def":{"name":"raw_payload","return_type":"String","visibility":"Public","body":"@raw_payload"}},{"html_id":"raw_user_id-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L243"},"def":{"name":"raw_user_id","visibility":"Public","body":"\"\""}},{"html_id":"sequence_num:Int64-instance-method","name":"sequence_num","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L115"},"def":{"name":"sequence_num","return_type":"Int64","visibility":"Public","body":"@sequence_num"}},{"html_id":"ssid-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L251"},"def":{"name":"ssid","visibility":"Public","body":"\"IoT\""}},{"html_id":"tele_presence_data:TpData|Nil-instance-method","name":"tele_presence_data","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L133"},"def":{"name":"tele_presence_data","return_type":"TpData | ::Nil","visibility":"Public","body":"@tele_presence_data"}},{"html_id":"temperature-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L153"},"def":{"name":"temperature","visibility":"Public","body":"if temp = @temperature_celsius\n temp[:temperatureInCelsius]\nend"}},{"html_id":"temperature_celsius:NamedTuple(temperatureInCelsius:Float64)|Nil-instance-method","name":"temperature_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L121"},"def":{"name":"temperature_celsius","return_type":"NamedTuple(temperatureInCelsius: Float64) | ::Nil","visibility":"Public","body":"@temperature_celsius"}},{"html_id":"unc:Float64-instance-method","name":"unc","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L247"},"def":{"name":"unc","return_type":"Float64","visibility":"Public","body":"3.0"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L224"},"def":{"name":"visit_id","visibility":"Public","body":"\"unknown for IoT\""}},{"html_id":"x_pos(*args,**options)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.x_pos(*args, **options)"}},{"html_id":"x_pos(*args,**options,&)-instance-method","name":"x_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L216"},"def":{"name":"x_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.x_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"y_pos(*args,**options)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"position.y_pos(*args, **options)"}},{"html_id":"y_pos(*args,**options,&)-instance-method","name":"y_pos","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L217"},"def":{"name":"y_pos","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"position.y_pos(*args, **options) do |*yield_args|\n yield *yield_args\nend"}}]},{"html_id":"drivers/Cisco/DNASpaces/IotTelemetryWrapper","path":"Cisco/DNASpaces/IotTelemetryWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::IotTelemetryWrapper","name":"IotTelemetryWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L131"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:IotTelemetry-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L134"},"def":{"name":"payload","return_type":"IotTelemetry","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/KeepAlive","path":"Cisco/DNASpaces/KeepAlive.html","kind":"class","full_name":"Cisco::DNASpaces::KeepAlive","name":"KeepAlive","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L46"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L48"},"def":{"name":"payload","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/Location","path":"Cisco/DNASpaces/Location.html","kind":"class","full_name":"Cisco::DNASpaces::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"descriptions(mappings={}ofString=>String)-instance-method","name":"descriptions","doc":"Maps location_ids to location names","summary":"

Maps location_ids to location names

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L25"},"def":{"name":"descriptions","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.descriptions(mappings))\nmappings[location_id] = name\nmappings\n"}},{"html_id":"details(mappings={}ofString=>String)-instance-method","name":"details","doc":"Maps tag names to location_ids","summary":"

Maps tag names to location_ids

","abstract":false,"args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"args_string":"(mappings = {} of String => String)","args_html":"(mappings = {} of String => String)","location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L18"},"def":{"name":"details","args":[{"name":"mappings","default_value":"{} of String => String","external_name":"mappings","restriction":""}],"visibility":"Public","body":"parent.try(&.details(mappings))\ntags.each do |tag|\n mappings[tag] = location_id\nend\nmappings\n"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L7"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"parent:Location|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L15"},"def":{"name":"parent","return_type":"Location | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","doc":"TODO:: this might be better as an enum\nif there are only limited types","summary":"

TODO : this might be better as an enum if there are only limited types

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location.cr#L13"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange","path":"Cisco/DNASpaces/LocationChange.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_type:String-instance-method","name":"change_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L7"},"def":{"name":"change_type","return_type":"String","visibility":"Public","body":"@change_type"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L8"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/LocationChange/LocationDetails","path":"Cisco/DNASpaces/LocationChange/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L25"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L22"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L24"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L27"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L28"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"metadata:Array(Metadata)-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L30"},"def":{"name":"metadata","return_type":"Array(Metadata)","visibility":"Public","body":"@metadata"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L23"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L21"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChange/Metadata","path":"Cisco/DNASpaces/LocationChange/Metadata.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChange::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/LocationChange","kind":"class","full_name":"Cisco::DNASpaces::LocationChange","name":"LocationChange"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L13"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"values:Array(String)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_change.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_change.cr#L14"},"def":{"name":"values","return_type":"Array(String)","visibility":"Public","body":"@values"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/LocationChangeWrapper","path":"Cisco/DNASpaces/LocationChangeWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::LocationChangeWrapper","name":"LocationChangeWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L74"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L75"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:LocationChange-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L78"},"def":{"name":"payload","return_type":"LocationChange","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationDetails","path":"Cisco/DNASpaces/LocationDetails.html","kind":"class","full_name":"Cisco::DNASpaces::LocationDetails","name":"LocationDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L12"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L9"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L11"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L14"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L15"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L10"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/location_details.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/location_details.cr#L7"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Cisco/DNASpaces/LocationInfo","path":"Cisco/DNASpaces/LocationInfo.html","kind":"class","full_name":"Cisco::DNASpaces::LocationInfo","name":"LocationInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L156"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L157"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:LocationDetails-instance-method","name":"details","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L162"},"def":{"name":"details","return_type":"LocationDetails","visibility":"Public","body":"@details"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces.cr#L159"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}}]},{"html_id":"drivers/Cisco/DNASpaces/MapInfo","path":"Cisco/DNASpaces/MapInfo.html","kind":"class","full_name":"Cisco::DNASpaces::MapInfo","name":"MapInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dimension:Cisco::DNASpaces::Dimension-instance-method","name":"dimension","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L29"},"def":{"name":"dimension","return_type":"Cisco::DNASpaces::Dimension","visibility":"Public","body":"@dimension"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L21"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_height:Float64-instance-method","name":"image_height","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L27"},"def":{"name":"image_height","return_type":"Float64","visibility":"Public","body":"@image_height"}},{"html_id":"image_width:Float64-instance-method","name":"image_width","abstract":false,"location":{"filename":"src/cisco/dna_spaces/map_info.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/map_info.cr#L24"},"def":{"name":"image_width","return_type":"Float64","visibility":"Public","body":"@image_width"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdate","path":"Cisco/DNASpaces/PeopleCountUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdate","name":"PeopleCountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"This is triggered from telepresence devices","summary":"

This is triggered from telepresence devices

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L25"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L19"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L22"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L9"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L13"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L10"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L28"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L16"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L31"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"tp_device_id:String-instance-method","name":"tp_device_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/people_count_update.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/people_count_update.cr#L8"},"def":{"name":"tp_device_id","return_type":"String","visibility":"Public","body":"@tp_device_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/PeopleCountUpdateWrapper","path":"Cisco/DNASpaces/PeopleCountUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::PeopleCountUpdateWrapper","name":"PeopleCountUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L88"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L89"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:PeopleCountUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L92"},"def":{"name":"payload","return_type":"PeopleCountUpdate","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/ProfileUpdateWrapper","path":"Cisco/DNASpaces/ProfileUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::ProfileUpdateWrapper","name":"ProfileUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L68"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:Device-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L71"},"def":{"name":"payload","return_type":"Device","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiMeasurement","path":"Cisco/DNASpaces/RssiMeasurement.html","kind":"class","full_name":"Cisco::DNASpaces::RssiMeasurement","name":"RssiMeasurement","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L15"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"antenna_id:Int32-instance-method","name":"antenna_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id","return_type":"Int32","visibility":"Public","body":"@antenna_id"}},{"html_id":"antenna_id=(antenna_id:Int32)-instance-method","name":"antenna_id=","abstract":false,"args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"args_string":"(antenna_id : Int32)","args_html":"(antenna_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L24"},"def":{"name":"antenna_id=","args":[{"name":"antenna_id","external_name":"antenna_id","restriction":"Int32"}],"visibility":"Public","body":"@antenna_id = antenna_id"}},{"html_id":"band_id:Int32-instance-method","name":"band_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id","return_type":"Int32","visibility":"Public","body":"@band_id"}},{"html_id":"band_id=(band_id:Int32)-instance-method","name":"band_id=","abstract":false,"args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"args_string":"(band_id : Int32)","args_html":"(band_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L21"},"def":{"name":"band_id=","args":[{"name":"band_id","external_name":"band_id","restriction":"Int32"}],"visibility":"Public","body":"@band_id = band_id"}},{"html_id":"if_slot_id:Int32-instance-method","name":"if_slot_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id","return_type":"Int32","visibility":"Public","body":"@if_slot_id"}},{"html_id":"if_slot_id=(if_slot_id:Int32)-instance-method","name":"if_slot_id=","abstract":false,"args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"args_string":"(if_slot_id : Int32)","args_html":"(if_slot_id : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L18"},"def":{"name":"if_slot_id=","args":[{"name":"if_slot_id","external_name":"if_slot_id","restriction":"Int32"}],"visibility":"Public","body":"@if_slot_id = if_slot_id"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L26"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L27"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/RssiNotification","path":"Cisco/DNASpaces/RssiNotification.html","kind":"class","full_name":"Cisco::DNASpaces::RssiNotification","name":"RssiNotification","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L34"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"measurements:Array(RssiMeasurement)-instance-method","name":"measurements","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements","return_type":"Array(RssiMeasurement)","visibility":"Public","body":"@measurements"}},{"html_id":"measurements=(measurements:Array(RssiMeasurement))-instance-method","name":"measurements=","abstract":false,"args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"args_string":"(measurements : Array(RssiMeasurement))","args_html":"(measurements : Array(RssiMeasurement))","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L37"},"def":{"name":"measurements=","args":[{"name":"measurements","external_name":"measurements","restriction":"Array(RssiMeasurement)"}],"visibility":"Public","body":"@measurements = measurements"}},{"html_id":"payload:BlePayload-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload","return_type":"BlePayload","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:BlePayload)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"args_string":"(payload : BlePayload)","args_html":"(payload : BlePayload)","location":{"filename":"src/cisco/dna_spaces/ble_rssi_update.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/ble_rssi_update.cr#L40"},"def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"BlePayload"}],"visibility":"Public","body":"@payload = payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/TpData","path":"Cisco/DNASpaces/TpData.html","kind":"class","full_name":"Cisco::DNASpaces::TpData","name":"TpData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_calls:Int32-instance-method","name":"active_calls","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls","return_type":"Int32","visibility":"Public","body":"@active_calls"}},{"html_id":"active_calls=(active_calls:Int32)-instance-method","name":"active_calls=","abstract":false,"args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"args_string":"(active_calls : Int32)","args_html":"(active_calls : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L71"},"def":{"name":"active_calls=","args":[{"name":"active_calls","external_name":"active_calls","restriction":"Int32"}],"visibility":"Public","body":"@active_calls = active_calls"}},{"html_id":"air_quality_index:Float64-instance-method","name":"air_quality_index","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index","return_type":"Float64","visibility":"Public","body":"@air_quality_index"}},{"html_id":"air_quality_index=(air_quality_index:Float64)-instance-method","name":"air_quality_index=","abstract":false,"args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"args_string":"(air_quality_index : Float64)","args_html":"(air_quality_index : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L80"},"def":{"name":"air_quality_index=","args":[{"name":"air_quality_index","external_name":"air_quality_index","restriction":"Float64"}],"visibility":"Public","body":"@air_quality_index = air_quality_index"}},{"html_id":"ambient_noise:Int32-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise","return_type":"Int32","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_noise=(ambient_noise:Int32)-instance-method","name":"ambient_noise=","abstract":false,"args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"args_string":"(ambient_noise : Int32)","args_html":"(ambient_noise : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L65"},"def":{"name":"ambient_noise=","args":[{"name":"ambient_noise","external_name":"ambient_noise","restriction":"Int32"}],"visibility":"Public","body":"@ambient_noise = ambient_noise"}},{"html_id":"dryness_score:Int32-instance-method","name":"dryness_score","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score","return_type":"Int32","visibility":"Public","body":"@dryness_score"}},{"html_id":"dryness_score=(dryness_score:Int32)-instance-method","name":"dryness_score=","abstract":false,"args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"args_string":"(dryness_score : Int32)","args_html":"(dryness_score : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L68"},"def":{"name":"dryness_score=","args":[{"name":"dryness_score","external_name":"dryness_score","restriction":"Int32"}],"visibility":"Public","body":"@dryness_score = dryness_score"}},{"html_id":"humidity_in_percentage:Float64-instance-method","name":"humidity_in_percentage","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage","return_type":"Float64","visibility":"Public","body":"@humidity_in_percentage"}},{"html_id":"humidity_in_percentage=(humidity_in_percentage:Float64)-instance-method","name":"humidity_in_percentage=","abstract":false,"args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"args_string":"(humidity_in_percentage : Float64)","args_html":"(humidity_in_percentage : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L86"},"def":{"name":"humidity_in_percentage=","args":[{"name":"humidity_in_percentage","external_name":"humidity_in_percentage","restriction":"Float64"}],"visibility":"Public","body":"@humidity_in_percentage = humidity_in_percentage"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"@people_count"}},{"html_id":"people_count=(people_count:Int32)-instance-method","name":"people_count=","abstract":false,"args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"args_string":"(people_count : Int32)","args_html":"(people_count : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L59"},"def":{"name":"people_count=","args":[{"name":"people_count","external_name":"people_count","restriction":"Int32"}],"visibility":"Public","body":"@people_count = people_count"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L88"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"@presence"}},{"html_id":"presentation_state:Int32-instance-method","name":"presentation_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state","return_type":"Int32","visibility":"Public","body":"@presentation_state"}},{"html_id":"presentation_state=(presentation_state:Int32)-instance-method","name":"presentation_state=","abstract":false,"args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"args_string":"(presentation_state : Int32)","args_html":"(presentation_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L74"},"def":{"name":"presentation_state=","args":[{"name":"presentation_state","external_name":"presentation_state","restriction":"Int32"}],"visibility":"Public","body":"@presentation_state = presentation_state"}},{"html_id":"standby_state:Int32-instance-method","name":"standby_state","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state","return_type":"Int32","visibility":"Public","body":"@standby_state"}},{"html_id":"standby_state=(standby_state:Int32)-instance-method","name":"standby_state=","abstract":false,"args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"args_string":"(standby_state : Int32)","args_html":"(standby_state : Int32)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L62"},"def":{"name":"standby_state=","args":[{"name":"standby_state","external_name":"standby_state","restriction":"Int32"}],"visibility":"Public","body":"@standby_state = standby_state"}},{"html_id":"temperature_in_celsius:Float64-instance-method","name":"temperature_in_celsius","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius","return_type":"Float64","visibility":"Public","body":"@temperature_in_celsius"}},{"html_id":"temperature_in_celsius=(temperature_in_celsius:Float64)-instance-method","name":"temperature_in_celsius=","abstract":false,"args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"args_string":"(temperature_in_celsius : Float64)","args_html":"(temperature_in_celsius : Float64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L83"},"def":{"name":"temperature_in_celsius=","args":[{"name":"temperature_in_celsius","external_name":"temperature_in_celsius","restriction":"Float64"}],"visibility":"Public","body":"@temperature_in_celsius = temperature_in_celsius"}},{"html_id":"time_stamp:Int64-instance-method","name":"time_stamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp","return_type":"Int64","visibility":"Public","body":"@time_stamp"}},{"html_id":"time_stamp=(time_stamp:Int64)-instance-method","name":"time_stamp=","abstract":false,"args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"args_string":"(time_stamp : Int64)","args_html":"(time_stamp : Int64)","location":{"filename":"src/cisco/dna_spaces/iot_telemetry.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/iot_telemetry.cr#L77"},"def":{"name":"time_stamp=","args":[{"name":"time_stamp","external_name":"time_stamp","restriction":"Int64"}],"visibility":"Public","body":"@time_stamp = time_stamp"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence","path":"Cisco/DNASpaces/UserPresence.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active_users_count:UserCount-instance-method","name":"active_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L79"},"def":{"name":"active_users_count","return_type":"UserCount","visibility":"Public","body":"@active_users_count"}},{"html_id":"entry_datetime:String-instance-method","name":"entry_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L64"},"def":{"name":"entry_datetime","return_type":"String","visibility":"Public","body":"@entry_datetime"}},{"html_id":"entry_timestamp:Int64-instance-method","name":"entry_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L61"},"def":{"name":"entry_timestamp","return_type":"Int64","visibility":"Public","body":"@entry_timestamp"}},{"html_id":"exit_datetime:String-instance-method","name":"exit_datetime","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L70"},"def":{"name":"exit_datetime","return_type":"String","visibility":"Public","body":"@exit_datetime"}},{"html_id":"exit_timestamp:Int64-instance-method","name":"exit_timestamp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L67"},"def":{"name":"exit_timestamp","return_type":"Int64","visibility":"Public","body":"@exit_timestamp"}},{"html_id":"inactive_users_count:UserCount-instance-method","name":"inactive_users_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L82"},"def":{"name":"inactive_users_count","return_type":"UserCount","visibility":"Public","body":"@inactive_users_count"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L52"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"presence_event_type:String-instance-method","name":"presence_event_type","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L46"},"def":{"name":"presence_event_type","return_type":"String","visibility":"Public","body":"@presence_event_type"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L55"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"@raw_user_id"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L76"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L51"},"def":{"name":"user","return_type":"User","visibility":"Public","body":"@user"}},{"html_id":"visit_duration_minutes:Int32-instance-method","name":"visit_duration_minutes","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L73"},"def":{"name":"visit_duration_minutes","return_type":"Int32","visibility":"Public","body":"@visit_duration_minutes"}},{"html_id":"visit_id:String-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L58"},"def":{"name":"visit_id","return_type":"String","visibility":"Public","body":"@visit_id"}},{"html_id":"was_in_active:Bool-instance-method","name":"was_in_active","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L49"},"def":{"name":"was_in_active","return_type":"Bool","visibility":"Public","body":"@was_in_active"}}],"types":[{"html_id":"drivers/Cisco/DNASpaces/UserPresence/User","path":"Cisco/DNASpaces/UserPresence/User.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L13"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L16"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L20"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"gender:String|Nil-instance-method","name":"gender","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L17"},"def":{"name":"gender","return_type":"String | ::Nil","visibility":"Public","body":"@gender"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L23"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L15"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"postal_code:String|Nil-instance-method","name":"postal_code","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L26"},"def":{"name":"postal_code","return_type":"String | ::Nil","visibility":"Public","body":"@postal_code"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L14"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L10"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresence/UserCount","path":"Cisco/DNASpaces/UserPresence/UserCount.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresence::UserCount","name":"UserCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces/UserPresence","kind":"class","full_name":"Cisco::DNASpaces::UserPresence","name":"UserPresence"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"total_users:Int64-instance-method","name":"total_users","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L42"},"def":{"name":"total_users","return_type":"Int64","visibility":"Public","body":"@total_users"}},{"html_id":"users_with_user_id:Int64-instance-method","name":"users_with_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L36"},"def":{"name":"users_with_user_id","return_type":"Int64","visibility":"Public","body":"@users_with_user_id"}},{"html_id":"users_without_user_id:Int64-instance-method","name":"users_without_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/user_presence.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/user_presence.cr#L39"},"def":{"name":"users_without_user_id","return_type":"Int64","visibility":"Public","body":"@users_without_user_id"}}]}]},{"html_id":"drivers/Cisco/DNASpaces/UserPresenceWrapper","path":"Cisco/DNASpaces/UserPresenceWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::UserPresenceWrapper","name":"UserPresenceWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L102"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L103"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:UserPresence-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L106"},"def":{"name":"payload","return_type":"UserPresence","visibility":"Public","body":"@payload"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexDeviceInfo","path":"Cisco/DNASpaces/WebexDeviceInfo.html","kind":"class","full_name":"Cisco::DNASpaces::WebexDeviceInfo","name":"WebexDeviceInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"doc":"https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html","summary":"

https://partners.dnaspaces.io/docs/v1/basic/c-dnas-firehose-api-references.html#!c-firehose-proto-buf-doc.html

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"device_name:String-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L22"},"def":{"name":"device_name","return_type":"String","visibility":"Public","body":"@device_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L15"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"mac_address=(mac_address:String)-instance-method","name":"mac_address=","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L12"},"def":{"name":"mac_address=","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"@mac_address = mac_address"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L34"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"serial_number:String-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L25"},"def":{"name":"serial_number","return_type":"String","visibility":"Public","body":"@serial_number"}},{"html_id":"software_version:String-instance-method","name":"software_version","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L28"},"def":{"name":"software_version","return_type":"String","visibility":"Public","body":"@software_version"}},{"html_id":"type:String-instance-method","name":"type","doc":"these fields are named to be compatible with the IoT field names","summary":"

these fields are named to be compatible with the IoT field names

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L19"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"workspace_id:String-instance-method","name":"workspace_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L31"},"def":{"name":"workspace_id","return_type":"String","visibility":"Public","body":"@workspace_id"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetry","path":"Cisco/DNASpaces/WebexTelemetry.html","kind":"struct","full_name":"Cisco::DNASpaces::WebexTelemetry","name":"WebexTelemetry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L49"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"@air_quality"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L55"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_noise"}},{"html_id":"ambient_temp:Float64|Nil-instance-method","name":"ambient_temp","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L52"},"def":{"name":"ambient_temp","return_type":"Float64 | ::Nil","visibility":"Public","body":"@ambient_temp"}},{"html_id":"count:Int32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L43"},"def":{"name":"count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"presence:Bool|Nil-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L40"},"def":{"name":"presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@presence"}},{"html_id":"relative_humidity:Float64|Nil-instance-method","name":"relative_humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L58"},"def":{"name":"relative_humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"@relative_humidity"}},{"html_id":"sound_level:Float64|Nil-instance-method","name":"sound_level","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L46"},"def":{"name":"sound_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@sound_level"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdate","path":"Cisco/DNASpaces/WebexTelemetryUpdate.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdate","name":"WebexTelemetryUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L61"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L62"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"air_quality:Float64|Nil-instance-method","name":"air_quality","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L83"},"def":{"name":"air_quality","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @air_quality).nil?\n @air_quality = (telemetries.compact_map(&.air_quality).first?)\nelse\n __temp_1\nend"}},{"html_id":"ambient_noise:Float64|Nil-instance-method","name":"ambient_noise","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L91"},"def":{"name":"ambient_noise","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @ambient_noise).nil?\n @ambient_noise = (telemetries.compact_map(&.ambient_noise).first?)\nelse\n __temp_1\nend"}},{"html_id":"binding(type:SensorType,mac:String)-instance-method","name":"binding","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(type : SensorType, mac : String)","args_html":"(type : SensorType, mac : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L128"},"def":{"name":"binding","args":[{"name":"type","external_name":"type","restriction":"SensorType"},{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"case type\nwhen .presence?\n \"#{mac}->presence\"\nwhen .humidity?\n \"#{mac}->humidity\"\nwhen .air_quality?\n \"#{mac}->air_quality\"\nwhen .people_count?\n \"#{mac}->people_count\"\nwhen .temperature?\n \"#{mac}->temperature\"\nwhen .sound_pressure?\n \"#{mac}->ambient_noise\"\nend"}},{"html_id":"device:WebexDeviceInfo-instance-method","name":"device","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device","return_type":"WebexDeviceInfo","visibility":"Public","body":"@device"}},{"html_id":"device=(device:WebexDeviceInfo)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"args_string":"(device : WebexDeviceInfo)","args_html":"(device : WebexDeviceInfo)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L65"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"WebexDeviceInfo"}],"visibility":"Public","body":"@device = device"}},{"html_id":"humidity:Float64|Nil-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L79"},"def":{"name":"humidity","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @humidity).nil?\n @humidity = (telemetries.compact_map(&.relative_humidity).first?)\nelse\n __temp_1\nend"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @last_seen).nil?\n @last_seen = (Time.utc.to_unix_ms)\nelse\n __temp_1\nend"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L146"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L66"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_mappings:Hash(String,String)-instance-method","name":"location_mappings","doc":"Ensure we only process these once","summary":"

Ensure we only process these once

","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L165"},"def":{"name":"location_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"if mappings = @location_mappings\n mappings\nelse\n mappings = location.details\n @location_mappings = mappings\n mappings\nend"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L151"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"people_count:Int32-instance-method","name":"people_count","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L71"},"def":{"name":"people_count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @people_count).nil?\n @people_count = (telemetries.compact_map(&.count).first? || 0)\nelse\n __temp_1\nend"}},{"html_id":"presence:Bool-instance-method","name":"presence","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L75"},"def":{"name":"presence","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @presence).nil?\n @presence = (telemetries.compact_map(&.presence).first? || (people_count > 0))\nelse\n __temp_1\nend"}},{"html_id":"raw_user_id:String-instance-method","name":"raw_user_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L157"},"def":{"name":"raw_user_id","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"telemetries:Array(WebexTelemetry)-instance-method","name":"telemetries","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries","return_type":"Array(WebexTelemetry)","visibility":"Public","body":"if (__temp_1 = @telemetries).nil?\n @telemetries = ([] of WebexTelemetry)\nelse\n __temp_1\nend"}},{"html_id":"telemetries=(telemetries:Array(WebexTelemetry))-instance-method","name":"telemetries=","abstract":false,"args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"args_string":"(telemetries : Array(WebexTelemetry))","args_html":"(telemetries : Array(WebexTelemetry))","location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L69"},"def":{"name":"telemetries=","args":[{"name":"telemetries","external_name":"telemetries","restriction":"Array(WebexTelemetry)"}],"visibility":"Public","body":"@telemetries = telemetries"}},{"html_id":"temperature:Float64|Nil-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L87"},"def":{"name":"temperature","return_type":"Float64 | ::Nil","visibility":"Public","body":"if (__temp_1 = @temperature).nil?\n @temperature = (telemetries.compact_map(&.ambient_temp).first?)\nelse\n __temp_1\nend"}},{"html_id":"update_telemetry-instance-method","name":"update_telemetry","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L95"},"def":{"name":"update_telemetry","visibility":"Public","body":"telemetries.each do |telemetry|\n if !telemetry.presence.nil?\n @presence = telemetry.presence\n next\n end\n if count = telemetry.count\n @people_count = count\n next\n end\n if float = telemetry.relative_humidity\n @humidity = float\n next\n end\n if float = telemetry.air_quality\n @air_quality = float\n next\n end\n if float = telemetry.ambient_temp\n @temperature = float\n next\n end\n if float = telemetry.ambient_noise\n @ambient_noise = float\n end\nend"}},{"html_id":"visit_id-instance-method","name":"visit_id","abstract":false,"location":{"filename":"src/cisco/dna_spaces/webex_telemetry.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/webex_telemetry.cr#L153"},"def":{"name":"visit_id","visibility":"Public","body":"nil"}}]},{"html_id":"drivers/Cisco/DNASpaces/WebexTelemetryUpdateWrapper","path":"Cisco/DNASpaces/WebexTelemetryUpdateWrapper.html","kind":"class","full_name":"Cisco::DNASpaces::WebexTelemetryUpdateWrapper","name":"WebexTelemetryUpdateWrapper","abstract":false,"superclass":{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},"ancestors":[{"html_id":"drivers/Cisco/DNASpaces/Events","kind":"class","full_name":"Cisco::DNASpaces::Events","name":"Events"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L137"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/DNASpaces","kind":"class","full_name":"Cisco::DNASpaces","name":"DNASpaces"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"eventType:String-instance-method","name":"eventType","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L138"},"def":{"name":"eventType","return_type":"String","visibility":"Public","body":"@eventType"}},{"html_id":"payload:WebexTelemetryUpdate-instance-method","name":"payload","abstract":false,"location":{"filename":"src/cisco/dna_spaces/events.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/dna_spaces/events.cr#L141"},"def":{"name":"payload","return_type":"WebexTelemetryUpdate","visibility":"Public","body":"@payload"}}]}]},{"html_id":"drivers/Cisco/Ise","path":"Cisco/Ise.html","kind":"module","full_name":"Cisco::Ise","name":"Ise","abstract":false,"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Ise/Guests","path":"Cisco/Ise/Guests.html","kind":"class","full_name":"Cisco::Ise::Guests","name":"Guests","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/guest_users.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/vnd.com.cisco.ise.identity.guestuser.2.0+xml\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest(event_start:Int64,attendee_email:String,attendee_name:String,company_name:String|Nil=nil,phone_number:String=\"0123456789\",sms_service_provider:String|Nil=nil,guest_type:String|Nil=nil,portal_id:String|Nil=nil)-instance-method","name":"create_guest","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"args_string":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = \"0123456789\", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","args_html":"(event_start : Int64, attendee_email : String, attendee_name : String, company_name : String | Nil = nil, phone_number : String = "0123456789", sms_service_provider : String | Nil = nil, guest_type : String | Nil = nil, portal_id : String | Nil = nil)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L49"},"def":{"name":"create_guest","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"attendee_email","external_name":"attendee_email","restriction":"String"},{"name":"attendee_name","external_name":"attendee_name","restriction":"String"},{"name":"company_name","default_value":"nil","external_name":"company_name","restriction":"String | ::Nil"},{"name":"phone_number","default_value":"\"0123456789\"","external_name":"phone_number","restriction":"String"},{"name":"sms_service_provider","default_value":"nil","external_name":"sms_service_provider","restriction":"String | ::Nil"},{"name":"guest_type","default_value":"nil","external_name":"guest_type","restriction":"String | ::Nil"},{"name":"portal_id","default_value":"nil","external_name":"portal_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"guest_names = attendee_name.split\nfirst_name_index_end = guest_names.size > 1 ? -2 : -1\nfirst_name = guest_names[0..first_name_index_end].join(' ')\nlast_name = guest_names[-1]\nusername = genererate_username(first_name, last_name)\nif setting?(Bool, :test)\n return {\"username\" => username, \"password\" => UUID.random.to_s[0..3]}.merge(@custom_data)\nend\nsms_service_provider || (sms_service_provider = @sms_service_provider)\nguest_type || (guest_type = @guest_type)\nportal_id || (portal_id = @portal_id)\ntime_object = (Time.unix(event_start)).in(@timezone)\nfrom_date = time_object.at_beginning_of_day.to_s(TIME_FORMAT)\nto_date = time_object.at_end_of_day.to_s(TIME_FORMAT)\ncompany_name || (company_name = ((attendee_email.split('@'))[1].split('.'))[0].capitalize)\nxml_string = \"\\n \"\nif @location\n xml_string = xml_string + \"\\n \"\nend\nxml_string = xml_string + \"\\n \\n #{from_date}\"\nif @location\n xml_string = xml_string + \"\\n #{@location}\"\nend\nxml_string = xml_string + \"\\n #{to_date}\\n 1\\n \\n \\n #{company_name}\\n #{attendee_email}\\n #{first_name}\\n #{last_name}\\n English\\n #{phone_number}\"\nif sms_service_provider\n xml_string = xml_string + \"\\n #{sms_service_provider}\"\nend\nxml_string = xml_string + \"\\n #{username}\\n \\n #{guest_type}\\n #{portal_id}\\n \"\nresponse = post(\"/guestuser/\", body: xml_string, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\nguest_id = (response.headers[\"Location\"].split('/')).last\n(guest_crendentials(guest_id)).merge(@custom_data)\n"}},{"html_id":"guest_crendentials(id:String)-instance-method","name":"guest_crendentials","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L136"},"def":{"name":"guest_crendentials","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/guestuser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nparsed_body = XML.parse(response.body)\nguest_user = parsed_body.first_element_child.not_nil!\nguest_info = guest_user.children.find do |c|\n c.name == \"guestInfo\"\nend.not_nil!\n{\"username\" => guest_info.children.find do |c|\n c.name == \"userName\"\nend.not_nil!.content, \"password\" => guest_info.children.find do |c|\n c.name == \"password\"\nend.not_nil!.content}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@basic_auth = \"Basic #{Base64.strict_encode(\"#{setting?(String, :username)}:#{setting?(String, :password)}\")}\"\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@location = setting?(String, :location)\n@sms_service_provider = setting?(String, :sms_service_provider)\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, JSON::Any::Type), :custom_data)) || ({} of String => JSON::Any::Type)\n"}},{"html_id":"test2-instance-method","name":"test2","abstract":false,"location":{"filename":"src/cisco/ise/guest_users.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L160"},"def":{"name":"test2","visibility":"Public","body":"xml_string = \"\\n\\n\\n08/06/2014 23:22\\n08/07/2014 23:22\\n1\\n\\n\\nNew Company\\njohn@example.com\\nJohn\\nDoe\\nEnglish\\n9999998877\\nGlobal Default\\nautoguestuser1\\n\\nDaily\\nsponsor\\nportal101\\ninterview\\n\"\ntest_xml(xml_string)\n"}},{"html_id":"test_json(json:String)-instance-method","name":"test_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L186"},"def":{"name":"test_json","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: json, headers: {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"test_xml(xml_string:String)-instance-method","name":"test_xml","abstract":false,"args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"args_string":"(xml_string : String)","args_html":"(xml_string : String)","location":{"filename":"src/cisco/ise/guest_users.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/guest_users.cr#L151"},"def":{"name":"test_xml","args":[{"name":"xml_string","external_name":"xml_string","restriction":"String"}],"visibility":"Public","body":"response = post(\"/guestuser/\", body: (XML.parse(xml_string)).to_s, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to create guest, code #{response.status_code}\\n#{response.body}\")\nend\n"}}]},{"html_id":"drivers/Cisco/Ise/Models","path":"Cisco/Ise/Models.html","kind":"module","full_name":"Cisco::Ise::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"types":[{"html_id":"drivers/Cisco/Ise/Models/InternalUser","path":"Cisco/Ise/Models/InternalUser.html","kind":"class","full_name":"Cisco::Ise::Models::InternalUser","name":"InternalUser","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/models/internal_user.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Ise/Models","kind":"module","full_name":"Cisco::Ise::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change_password:Bool-instance-method","name":"change_password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password","return_type":"Bool","visibility":"Public","body":"@change_password"}},{"html_id":"change_password=(change_password:Bool)-instance-method","name":"change_password=","abstract":false,"args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"args_string":"(change_password : Bool)","args_html":"(change_password : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L19"},"def":{"name":"change_password=","args":[{"name":"change_password","external_name":"change_password","restriction":"Bool"}],"visibility":"Public","body":"@change_password = change_password"}},{"html_id":"custom_attributes:Hash(String,String)-instance-method","name":"custom_attributes","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes","return_type":"Hash(String, String)","visibility":"Public","body":"@custom_attributes"}},{"html_id":"custom_attributes=(custom_attributes:Hash(String,String))-instance-method","name":"custom_attributes=","abstract":false,"args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"args_string":"(custom_attributes : Hash(String, String))","args_html":"(custom_attributes : Hash(String, String))","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L28"},"def":{"name":"custom_attributes=","args":[{"name":"custom_attributes","external_name":"custom_attributes","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@custom_attributes = custom_attributes"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L16"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L22"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"enabled=(enabled:Bool)-instance-method","name":"enabled=","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"args_string":"(enabled : Bool)","args_html":"(enabled : Bool)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L25"},"def":{"name":"enabled=","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"}],"visibility":"Public","body":"@enabled = enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L31"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"identity_groups:String|Nil-instance-method","name":"identity_groups","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups","return_type":"String | ::Nil","visibility":"Public","body":"@identity_groups"}},{"html_id":"identity_groups=(identity_groups:String|Nil)-instance-method","name":"identity_groups=","abstract":false,"args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"args_string":"(identity_groups : String | Nil)","args_html":"(identity_groups : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L13"},"def":{"name":"identity_groups=","args":[{"name":"identity_groups","external_name":"identity_groups","restriction":"String | ::Nil"}],"visibility":"Public","body":"@identity_groups = identity_groups"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L34"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L7"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"password:String|Nil-instance-method","name":"password","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password","return_type":"String | ::Nil","visibility":"Public","body":"@password"}},{"html_id":"password=(password:String|Nil)-instance-method","name":"password=","abstract":false,"args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(password : String | Nil)","args_html":"(password : String | Nil)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L37"},"def":{"name":"password=","args":[{"name":"password","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"@password = password"}},{"html_id":"password_store:String-instance-method","name":"password_store","abstract":false,"location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store","return_type":"String","visibility":"Public","body":"@password_store"}},{"html_id":"password_store=(password_store:String)-instance-method","name":"password_store=","abstract":false,"args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"args_string":"(password_store : String)","args_html":"(password_store : String)","location":{"filename":"src/cisco/ise/models/internal_user.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/models/internal_user.cr#L40"},"def":{"name":"password_store=","args":[{"name":"password_store","external_name":"password_store","restriction":"String"}],"visibility":"Public","body":"@password_store = password_store"}}]}]},{"html_id":"drivers/Cisco/Ise/NetworkAccess","path":"Cisco/Ise/NetworkAccess.html","kind":"class","full_name":"Cisco::Ise::NetworkAccess","name":"NetworkAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ise/network_access.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%m/%d/%Y %H:%M\""},{"id":"TYPE_HEADER","name":"TYPE_HEADER","value":"\"application/json\""}],"namespace":{"html_id":"drivers/Cisco/Ise","kind":"module","full_name":"Cisco::Ise","name":"Ise"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_internal_user(email:String,name:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,password:String|Nil=nil,identity_groups:Array(String)=[]ofString)-instance-method","name":"create_internal_user","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","args_html":"(email : String, name : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, password : String | Nil = nil, identity_groups : Array(String) = [] of String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L75"},"def":{"name":"create_internal_user","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"},{"name":"identity_groups","default_value":"[] of String","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"name || (name = email)\npassword || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = Models::InternalUser.from_json({name: name, email: email, password: password, firstName: first_name, lastName: last_name, description: description, identityGroups: identity_groups.join(\",\")}.to_json)\nif @debug\n logger.debug do\n \"Creating Internal User: #{internal_user.to_json}\"\n end\nend\nresponse = post(\"/internaluser/\", body: {\"InternalUser\" => internal_user}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"Failed to create internal user, code #{response.status_code}\\n#{response.body}\")\nend\nuser = get_internal_user_by_name(name)\nuser.password = password\nuser\n"}},{"html_id":"get_internal_user_by_email(email:String)-instance-method","name":"get_internal_user_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L156"},"def":{"name":"get_internal_user_by_email","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/?filter=email.CONTAINS.#{email}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\nresources = parsed_body[\"SearchResult\"].as_h[\"resources\"].as_a\nif resources.empty?\n raise(\"returned body has no resources\")\nend\nget_internal_user_by_id(resources.first.as_h[\"id\"].to_s)\n"}},{"html_id":"get_internal_user_by_id(id:String)-instance-method","name":"get_internal_user_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L122"},"def":{"name":"get_internal_user_by_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/#{id}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by id, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"get_internal_user_by_name(name:String)-instance-method","name":"get_internal_user_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L139"},"def":{"name":"get_internal_user_by_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"response = get(\"/internaluser/name/#{name}\", headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif @debug\n logger.debug do\n \"Response: #{response.status_code}, #{response.body}\"\n end\nend\nif response.success?\nelse\n raise(\"failed to get internal user by name, code #{response.status_code}\\n#{response.body}\")\nend\nparsed_body = JSON.parse(response.body)\ninternal_user = Models::InternalUser.from_json(parsed_body[\"InternalUser\"].to_json)\ninternal_user\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/ise/network_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L49"},"def":{"name":"on_update","visibility":"Public","body":"username = setting?(String, :username)\npassword = setting?(String, :password)\n@basic_auth = [\"Basic\", Base64.strict_encode([username, password].join(\":\"))].join(\" \")\n@debug = (setting?(Bool, :debug)) || false\n@test_mode = (setting?(Bool, :test)) || false\n@portal_id = (setting?(String, :portal_id)) || \"portal101\"\n@guest_type = (setting?(String, :guest_type)) || \"default_guest_type\"\n@sms_service_provider = setting?(String, :sms_service_provider)\n@password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\ntime_zone = (setting?(String, :timezone)).presence\nif time_zone\n @timezone = Time::Location.load(time_zone)\nend\n@custom_data = (setting?(Hash(String, String), :custom_data)) || ({} of String => String)\nif @debug\n logger.debug do\n \"Basic auth details: #{@basic_auth}\"\n end\nend\n"}},{"html_id":"update_internal_user_identity_groups_by_email(email:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(email : String, identity_groups : Array(String))","args_html":"(email : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L258"},"def":{"name":"update_internal_user_identity_groups_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_email(email)\nupdate_internal_user_identity_groups_by_id(internal_user.id.to_s, identity_groups)\n"}},{"html_id":"update_internal_user_identity_groups_by_id(id:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(id : String, identity_groups : Array(String))","args_html":"(id : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L232"},"def":{"name":"update_internal_user_identity_groups_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"internal_user = get_internal_user_by_id(id)\nresponse = put(\"/internaluser/#{internal_user.id}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed to get internal user by email, code #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_identity_groups_by_name(name:String,identity_groups:Array(String))-instance-method","name":"update_internal_user_identity_groups_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"args_string":"(name : String, identity_groups : Array(String))","args_html":"(name : String, identity_groups : Array(String))","location":{"filename":"src/cisco/ise/network_access.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L246"},"def":{"name":"update_internal_user_identity_groups_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"identity_groups","external_name":"identity_groups","restriction":"Array(String)"}],"visibility":"Public","body":"response = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"identityGroups\" => identity_groups.join(\",\")}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_email(email:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_email","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(email : String, password : String | Nil = nil)","args_html":"(email : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L218"},"def":{"name":"update_internal_user_password_by_email","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\ninternal_user = get_internal_user_by_email(email)\nupdate_internal_user_password_by_id(internal_user.id.to_s, password)\n"}},{"html_id":"update_internal_user_password_by_id(id:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(id : String, password : String | Nil = nil)","args_html":"(id : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L176"},"def":{"name":"update_internal_user_password_by_id","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/#{id}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_internal_user_password_by_name(name:String,password:String|Nil=nil)-instance-method","name":"update_internal_user_password_by_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(name : String, password : String | Nil = nil)","args_html":"(name : String, password : String | Nil = nil)","location":{"filename":"src/cisco/ise/network_access.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ise/network_access.cr#L197"},"def":{"name":"update_internal_user_password_by_name","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"password || (password = generate_password(length: @password_length, exclude: @password_exclude, minimum_lowercase: @password_minimum_lowercase, minimum_uppercase: @password_minimum_uppercase, minimum_numbers: @password_minimum_numbers, minimum_symbols: @password_minimum_symbols))\nresponse = put(\"/internaluser/name/#{name}\", body: {\"InternalUser\" => {\"password\" => password}}.to_json, headers: {\"Accept\" => TYPE_HEADER, \"Content-Type\" => TYPE_HEADER, \"Authorization\" => @basic_auth})\nif response.success?\nelse\n raise(\"failed: #{response.status_code}: #{response.body}\")\nend\nJSON.parse(response.body)\n"}}]}]},{"html_id":"drivers/Cisco/Meraki","path":"Cisco/Meraki.html","kind":"module","full_name":"Cisco::Meraki","name":"Meraki","abstract":false,"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L5"},{"filename":"src/cisco/meraki/geo.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L6"},{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L4"},{"filename":"src/cisco/meraki/scanning_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"\"%FT%T%z\""}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"doc":"Meraki MQTT Data Models","summary":"

Meraki MQTT Data Models

","types":[{"html_id":"drivers/Cisco/Meraki/AlertType","path":"Cisco/Meraki/AlertType.html","kind":"enum","full_name":"Cisco::Meraki::AlertType","name":"AlertType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L365"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PortConnected","name":"PortConnected","value":"0"},{"id":"PortDisconnected","name":"PortDisconnected","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"port_connected?-instance-method","name":"port_connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L366"},"def":{"name":"port_connected?","visibility":"Public","body":"self == PortConnected"}},{"html_id":"port_disconnected?-instance-method","name":"port_disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L367"},"def":{"name":"port_disconnected?","visibility":"Public","body":"self == PortDisconnected"}}]},{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","path":"Cisco/Meraki/CameraAnalytics.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601_MS","name":"ISO8601_MS","value":"\"%FT%T.%3N%z\""}],"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ts:Time-instance-method","name":"ts","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts","return_type":"Time","visibility":"Public","body":"@ts"}},{"html_id":"ts=(ts:Time)-instance-method","name":"ts=","abstract":false,"args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"args_string":"(ts : Time)","args_html":"(ts : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L50"},"def":{"name":"ts=","args":[{"name":"ts","external_name":"ts","restriction":"Time"}],"visibility":"Public","body":"@ts = ts"}},{"html_id":"zones:Hash(Int64,PeopleCount)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones","return_type":"Hash(Int64, PeopleCount)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Hash(Int64,PeopleCount))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"args_string":"(zones : Hash(Int64, PeopleCount))","args_html":"(zones : Hash(Int64, PeopleCount))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L51"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Hash(Int64, PeopleCount)"}],"visibility":"Public","body":"@zones = zones"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraAnalytics/PeopleCount","path":"Cisco/Meraki/CameraAnalytics/PeopleCount.html","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics::PeopleCount","name":"PeopleCount","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraAnalytics","kind":"class","full_name":"Cisco::Meraki::CameraAnalytics","name":"CameraAnalytics"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person:Int32-instance-method","name":"person","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person","return_type":"Int32","visibility":"Public","body":"@person"}},{"html_id":"person=(person:Int32)-instance-method","name":"person=","abstract":false,"args":[{"name":"person","external_name":"person","restriction":"Int32"}],"args_string":"(person : Int32)","args_html":"(person : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L46"},"def":{"name":"person=","args":[{"name":"person","external_name":"person","restriction":"Int32"}],"visibility":"Public","body":"@person = person"}}]}]},{"html_id":"drivers/Cisco/Meraki/CameraZone","path":"Cisco/Meraki/CameraZone.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L302"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L303"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"distance:Float64-instance-method","name":"distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance","return_type":"Float64","visibility":"Public","body":"@distance"}},{"html_id":"distance=(distance:Float64)-instance-method","name":"distance=","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"args_string":"(distance : Float64)","args_html":"(distance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L323"},"def":{"name":"distance=","args":[{"name":"distance","external_name":"distance","restriction":"Float64"}],"visibility":"Public","body":"@distance = distance"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L315"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"label:String-instance-method","name":"label","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L317"},"def":{"name":"label","return_type":"String","visibility":"Public","body":"@label"}},{"html_id":"mid_point-instance-method","name":"mid_point","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L325"},"def":{"name":"mid_point","visibility":"Public","body":"mid_x = (region.x0.to_f64 + region.x1.to_f64) / 2.0\nmid_y = (region.y0.to_f64 + region.y1.to_f64) / 2.0\n{mid_x, mid_y}\n"}},{"html_id":"region:Region-instance-method","name":"region","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L320"},"def":{"name":"region","return_type":"Region","visibility":"Public","body":"@region"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L316"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L331"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @x).nil?\n @x = (begin\n xpos, @y = mid_point\n xpos\n end)\nelse\n __temp_1\nend"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L336"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @y).nil?\n @y = (begin\n @x, ypos = mid_point\n ypos\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CameraZone/Region","path":"Cisco/Meraki/CameraZone/Region.html","kind":"struct","full_name":"Cisco::Meraki::CameraZone::Region","name":"Region","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L305"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CameraZone","kind":"struct","full_name":"Cisco::Meraki::CameraZone","name":"CameraZone"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L306"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x0:String-instance-method","name":"x0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L308"},"def":{"name":"x0","return_type":"String","visibility":"Public","body":"@x0"}},{"html_id":"x1:String-instance-method","name":"x1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L310"},"def":{"name":"x1","return_type":"String","visibility":"Public","body":"@x1"}},{"html_id":"y0:String-instance-method","name":"y0","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L309"},"def":{"name":"y0","return_type":"String","visibility":"Public","body":"@y0"}},{"html_id":"y1:String-instance-method","name":"y1","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L311"},"def":{"name":"y1","return_type":"String","visibility":"Public","body":"@y1"}}]}]},{"html_id":"drivers/Cisco/Meraki/CaptivePortal","path":"Cisco/Meraki/CaptivePortal.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"JSON_HEADERS","name":"JSON_HEADERS","value":"{\"Content-Type\" => \"application/json\"}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"challenge(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"challenge","doc":"Webhook for providing guest access","summary":"

Webhook for providing guest access

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L94"},"def":{"name":"challenge","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"guest access attempt: #{method},\\nheaders #{headers},\\nbody #{body}\"\n end\n challenge = ChallengePayload.from_json(body)\n check_code = challenge.code\n guest_codes = generate_guest_data(challenge.email, Time.utc.to_unix, challenge.timezone)\n matched = (guest_codes.scan(/.{#{@code_length}}/)).count do |code|\n code[0] == check_code\n end > 0\n if matched\n challenge.expires = @access_duration.from_now\n @guests[format_mac(challenge.client_mac)] = challenge\n @granted = @granted + 1_u64\n self[:granted_access] = @granted\n redirect_url = \"#{challenge.base_grant_url}?duration=#{@access_duration.to_i}&continue_url=#{challenge.user_continue || @success_url}\"\n response = {redirect_to: redirect_url}.to_json\n logger.debug do\n \"successful joined network #{challenge.inspect}\"\n end\n {HTTP::Status::OK, JSON_HEADERS, response}\n else\n @denied = @denied + 1_u64\n self[:denied_access] = @denied\n logger.debug do\n \"failed wifi access attempt by #{challenge.inspect}\"\n end\n {HTTP::Status::NOT_ACCEPTABLE, JSON_HEADERS, \"{}\"}\n end\nrescue error\n @errors = @errors + 1_u64\n self[:errors] = @errors\n last_error = error.inspect_with_backtrace\n self[:last_error] = last_error\n logger.error do\n \"failed to parse wifi challenge payload\\n#{error}\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR, EMPTY_HEADERS, nil}\nend"}},{"html_id":"generate_guest_data(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_data","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L58"},"def":{"name":"generate_guest_data","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_zone = time_zone.presence ? Time::Location.load(time_zone.not_nil!) : @default_timezone\ndate = ((Time.unix(time)).in(time_zone)).to_s(@date_format)\nguest_string = \"#{email.downcase}-#{date}-#{@wifi_secret}\"\n((OpenSSL::Digest.new(\"SHA256\")).update(guest_string)).final.hexstring\n"}},{"html_id":"generate_guest_token(email:String,time:Int64,time_zone:String|Nil=nil)-instance-method","name":"generate_guest_token","doc":"Splits the SHA256 into code length and then randomly selects one","summary":"

Splits the SHA256 into code length and then randomly selects one

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"args_string":"(email : String, time : Int64, time_zone : String | Nil = nil)","args_html":"(email : String, time : Int64, time_zone : String | Nil = nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L67"},"def":{"name":"generate_guest_token","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"time","external_name":"time","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"}],"visibility":"Public","body":"(((generate_guest_data(email, time, time_zone)).scan(/.{#{@code_length}}/)).sample(1))[0][0]"}},{"html_id":"guests:Hash(String,Cisco::Meraki::CaptivePortal::ChallengePayload)-instance-method","name":"guests","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L49"},"def":{"name":"guests","visibility":"Public","body":"@guests"}},{"html_id":"lookup(mac:String)-instance-method","name":"lookup","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L54"},"def":{"name":"lookup","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@guests[format_mac(mac)]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@wifi_secret = (setting?(String, :wifi_secret)) || \"anything really\"\n@date_format = (setting?(String, :date_format)) || \"%Y%m%d\"\n@success_url = (setting?(String, :success_url)) || \"https://place.technology/\"\n@access_duration = ((setting?(Int32, :access_duration)) || 12).hours\n@code_length = (setting?(Int32, :code_length)) || 4\ntime_zone = (setting?(String, :default_timezone)).presence\nif time_zone\n @default_timezone = Time::Location.load(time_zone)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/CaptivePortal/ChallengePayload","path":"Cisco/Meraki/CaptivePortal/ChallengePayload.html","kind":"class","full_name":"Cisco::Meraki::CaptivePortal::ChallengePayload","name":"ChallengePayload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/captive_portal.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/CaptivePortal","kind":"class","full_name":"Cisco::Meraki::CaptivePortal","name":"CaptivePortal"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L74"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"base_grant_url:String-instance-method","name":"base_grant_url","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url","return_type":"String","visibility":"Public","body":"@base_grant_url"}},{"html_id":"base_grant_url=(base_grant_url:String)-instance-method","name":"base_grant_url=","abstract":false,"args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"args_string":"(base_grant_url : String)","args_html":"(base_grant_url : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L77"},"def":{"name":"base_grant_url=","args":[{"name":"base_grant_url","external_name":"base_grant_url","restriction":"String"}],"visibility":"Public","body":"@base_grant_url = base_grant_url"}},{"html_id":"client_ip:String-instance-method","name":"client_ip","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip","return_type":"String","visibility":"Public","body":"@client_ip"}},{"html_id":"client_ip=(client_ip:String)-instance-method","name":"client_ip=","abstract":false,"args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"args_string":"(client_ip : String)","args_html":"(client_ip : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L75"},"def":{"name":"client_ip=","args":[{"name":"client_ip","external_name":"client_ip","restriction":"String"}],"visibility":"Public","body":"@client_ip = client_ip"}},{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L76"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"code:String-instance-method","name":"code","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code","return_type":"String","visibility":"Public","body":"@code"}},{"html_id":"code=(code:String)-instance-method","name":"code=","doc":"key they were provided in their invite email","summary":"

key they were provided in their invite email

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"}],"args_string":"(code : String)","args_html":"(code : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L81"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"String"}],"visibility":"Public","body":"@code = code"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L82"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expires:Time|Nil-instance-method","name":"expires","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires","return_type":"Time | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time|Nil)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"args_string":"(expires : Time | Nil)","args_html":"(expires : Time | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L85"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@expires = expires"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L83"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_continue:String|Nil-instance-method","name":"user_continue","abstract":false,"location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue","return_type":"String | ::Nil","visibility":"Public","body":"@user_continue"}},{"html_id":"user_continue=(user_continue:String|Nil)-instance-method","name":"user_continue=","abstract":false,"args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"args_string":"(user_continue : String | Nil)","args_html":"(user_continue : String | Nil)","location":{"filename":"src/cisco/meraki/captive_portal.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/captive_portal.cr#L78"},"def":{"name":"user_continue=","args":[{"name":"user_continue","external_name":"user_continue","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user_continue = user_continue"}}]}]},{"html_id":"drivers/Cisco/Meraki/Client","path":"Cisco/Meraki/Client.html","kind":"class","full_name":"Cisco::Meraki::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L116"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"first_seen:String-instance-method","name":"first_seen","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen","return_type":"String","visibility":"Public","body":"@first_seen"}},{"html_id":"first_seen=(first_seen:String)-instance-method","name":"first_seen=","doc":"2020-09-29T07:53:08Z","summary":"

2020-09-29T07:53:08Z

","abstract":false,"args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"args_string":"(first_seen : String)","args_html":"(first_seen : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L128"},"def":{"name":"first_seen=","args":[{"name":"first_seen","external_name":"first_seen","restriction":"String"}],"visibility":"Public","body":"@first_seen = first_seen"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"ip:String|Nil-instance-method","name":"ip","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip","return_type":"String | ::Nil","visibility":"Public","body":"@ip"}},{"html_id":"ip6:String|Nil-instance-method","name":"ip6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6","return_type":"String | ::Nil","visibility":"Public","body":"@ip6"}},{"html_id":"ip6=(ip6:String|Nil)-instance-method","name":"ip6=","abstract":false,"args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"args_string":"(ip6 : String | Nil)","args_html":"(ip6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L119"},"def":{"name":"ip6=","args":[{"name":"ip6","external_name":"ip6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6 = ip6"}},{"html_id":"ip6_local:String|Nil-instance-method","name":"ip6_local","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local","return_type":"String | ::Nil","visibility":"Public","body":"@ip6_local"}},{"html_id":"ip6_local=(ip6_local:String|Nil)-instance-method","name":"ip6_local=","abstract":false,"args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"args_string":"(ip6_local : String | Nil)","args_html":"(ip6_local : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L122"},"def":{"name":"ip6_local=","args":[{"name":"ip6_local","external_name":"ip6_local","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip6_local = ip6_local"}},{"html_id":"ip=(ip:String|Nil)-instance-method","name":"ip=","abstract":false,"args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"args_string":"(ip : String | Nil)","args_html":"(ip : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L118"},"def":{"name":"ip=","args":[{"name":"ip","external_name":"ip","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ip = ip"}},{"html_id":"last_seen:Time-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen","return_type":"Time","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Time)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"args_string":"(last_seen : Time)","args_html":"(last_seen : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L131"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Time"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L115"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L133"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L145"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L134"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"recent_device_mac:String|Nil-instance-method","name":"recent_device_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_mac"}},{"html_id":"recent_device_mac=(recent_device_mac:String|Nil)-instance-method","name":"recent_device_mac=","abstract":false,"args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"args_string":"(recent_device_mac : String | Nil)","args_html":"(recent_device_mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L140"},"def":{"name":"recent_device_mac=","args":[{"name":"recent_device_mac","external_name":"recent_device_mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_mac = recent_device_mac"}},{"html_id":"recent_device_serial:String|Nil-instance-method","name":"recent_device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial","return_type":"String | ::Nil","visibility":"Public","body":"@recent_device_serial"}},{"html_id":"recent_device_serial=(recent_device_serial:String|Nil)-instance-method","name":"recent_device_serial=","abstract":false,"args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"args_string":"(recent_device_serial : String | Nil)","args_html":"(recent_device_serial : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L137"},"def":{"name":"recent_device_serial=","args":[{"name":"recent_device_serial","external_name":"recent_device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recent_device_serial = recent_device_serial"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L141"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L144"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}},{"html_id":"switch_port:Int32-instance-method","name":"switch_port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L151"},"def":{"name":"switch_port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @switch_port).nil?\n @switch_port = ((@switchport.as(String)).to_i)\nelse\n __temp_1\nend"}},{"html_id":"switchport:String|Nil-instance-method","name":"switchport","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport","return_type":"String | ::Nil","visibility":"Public","body":"@switchport"}},{"html_id":"switchport=(switchport:String|Nil)-instance-method","name":"switchport=","abstract":false,"args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"args_string":"(switchport : String | Nil)","args_html":"(switchport : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L143"},"def":{"name":"switchport=","args":[{"name":"switchport","external_name":"switchport","restriction":"String | ::Nil"}],"visibility":"Public","body":"@switchport = switchport"}},{"html_id":"time_added:Time-instance-method","name":"time_added","abstract":false,"def":{"name":"time_added","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_added).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::Client#time_added cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_added=(time_added:Time)-instance-method","name":"time_added=","abstract":false,"args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"args_string":"(time_added : Time)","args_html":"(time_added : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L148"},"def":{"name":"time_added=","args":[{"name":"time_added","external_name":"time_added","restriction":"Time"}],"visibility":"Public","body":"@time_added = time_added"}},{"html_id":"time_added?:Time|Nil-instance-method","name":"time_added?","abstract":false,"def":{"name":"time_added?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_added"}},{"html_id":"user:String|Nil-instance-method","name":"user","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L124"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"vlan:String|Nil-instance-method","name":"vlan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan","return_type":"String | ::Nil","visibility":"Public","body":"@vlan"}},{"html_id":"vlan=(vlan:String|Nil)-instance-method","name":"vlan=","abstract":false,"args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"args_string":"(vlan : String | Nil)","args_html":"(vlan : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L142"},"def":{"name":"vlan=","args":[{"name":"vlan","external_name":"vlan","restriction":"String | ::Nil"}],"visibility":"Public","body":"@vlan = vlan"}}]},{"html_id":"drivers/Cisco/Meraki/ConnectionType","path":"Cisco/Meraki/ConnectionType.html","kind":"enum","full_name":"Cisco::Meraki::ConnectionType","name":"ConnectionType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":360,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L360"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Wired","name":"Wired","value":"0"},{"id":"Wireless","name":"Wireless","value":"1"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"wired?-instance-method","name":"wired?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L361"},"def":{"name":"wired?","visibility":"Public","body":"self == Wired"}},{"html_id":"wireless?-instance-method","name":"wireless?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L362"},"def":{"name":"wireless?","visibility":"Public","body":"self == Wireless"}}]},{"html_id":"drivers/Cisco/Meraki/CountType","path":"Cisco/Meraki/CountType.html","kind":"enum","full_name":"Cisco::Meraki::CountType","name":"CountType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"People","name":"People","value":"0"},{"id":"Vehicles","name":"Vehicles","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"people?-instance-method","name":"people?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L44"},"def":{"name":"people?","visibility":"Public","body":"self == People"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L46"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicles?-instance-method","name":"vehicles?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L45"},"def":{"name":"vehicles?","visibility":"Public","body":"self == Vehicles"}}]},{"html_id":"drivers/Cisco/Meraki/Crossing","path":"Cisco/Meraki/Crossing.html","kind":"struct","full_name":"Cisco::Meraki::Crossing","name":"Crossing","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event:CrossingEvent-instance-method","name":"event","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L95"},"def":{"name":"event","return_type":"CrossingEvent","visibility":"Public","body":"@event"}},{"html_id":"label:String|Nil-instance-method","name":"label","doc":"getter object_id : Int64","summary":"

getter object_id : Int64

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L94"},"def":{"name":"label","return_type":"String | ::Nil","visibility":"Public","body":"@label"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L92"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"type:CrossingObject-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L96"},"def":{"name":"type","return_type":"CrossingObject","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingEvent","path":"Cisco/Meraki/CrossingEvent.html","kind":"enum","full_name":"Cisco::Meraki::CrossingEvent","name":"CrossingEvent","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossingIn","name":"CrossingIn","value":"0"},{"id":"CrossingOut","name":"CrossingOut","value":"1"},{"id":"Expired","name":"Expired","value":"2"},{"id":"Appeared","name":"Appeared","value":"3"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"appeared?-instance-method","name":"appeared?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L85"},"def":{"name":"appeared?","visibility":"Public","body":"self == Appeared"}},{"html_id":"crossing_in?-instance-method","name":"crossing_in?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L82"},"def":{"name":"crossing_in?","visibility":"Public","body":"self == CrossingIn"}},{"html_id":"crossing_out?-instance-method","name":"crossing_out?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L83"},"def":{"name":"crossing_out?","visibility":"Public","body":"self == CrossingOut"}},{"html_id":"expired?-instance-method","name":"expired?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L84"},"def":{"name":"expired?","visibility":"Public","body":"self == Expired"}}]},{"html_id":"drivers/Cisco/Meraki/CrossingObject","path":"Cisco/Meraki/CrossingObject.html","kind":"enum","full_name":"Cisco::Meraki::CrossingObject","name":"CrossingObject","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Person","name":"Person","value":"0"},{"id":"Vehicle","name":"Vehicle","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"person?-instance-method","name":"person?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L76"},"def":{"name":"person?","visibility":"Public","body":"self == Person"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L78"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"vehicle?-instance-method","name":"vehicle?","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L77"},"def":{"name":"vehicle?","visibility":"Public","body":"self == Vehicle"}}]},{"html_id":"drivers/Cisco/Meraki/Dashboard","path":"Cisco/Meraki/Dashboard.html","kind":"class","full_name":"Cisco::Meraki::Dashboard","name":"Dashboard","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/dashboard.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK.to_i, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch(location:String)-instance-method","name":"fetch","doc":"Perform fetch with the required API request limits in place","summary":"

Perform fetch with the required API request limits in place

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L69"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"req(location, &.body)"}},{"html_id":"fetch_all(location:String)-instance-method","name":"fetch_all","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L74"},"def":{"name":"fetch_all","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"responses = [] of String\nreq_all_pages(location) do |response|\n responses << response.body\nend\nresponses\n"}},{"html_id":"get_zones(camera_serial:String)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"args_string":"(camera_serial : String)","args_html":"(camera_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L183"},"def":{"name":"get_zones","args":[{"name":"camera_serial","external_name":"camera_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{camera_serial}/camera/analytics/zones\") do |response|\n Array(CameraZone).from_json(response.body)\nend"}},{"html_id":"networks(organization_id:String)-instance-method","name":"networks","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L142"},"def":{"name":"networks","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"nets = [] of Network\nreq_all_pages(\"/api/v1/organizations/#{organization_id}/networks?perPage=1000\") do |response|\n nets.concat(Array(Network).from_json(response.body))\nend\nnets\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L38"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@scanning_validator = (setting?(String, :meraki_validator)) || \"\"\n@scanning_secret = (setting?(String, :meraki_secret)) || \"\"\n@api_key = (setting?(String, :meraki_api_key)) || \"\"\n@scanning_api_filter = (setting?(MessageType, :scanning_api_filter)) || MessageType::WiFi\n@rate_limit = (setting?(Int32, :rate_limit)) || 4\n@wait_time = 1.second / @rate_limit\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n"}},{"html_id":"organizations-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L135"},"def":{"name":"organizations","visibility":"Public","body":"req(\"/api/v1/organizations?perPage=1000\") do |response|\n Array(Organization).from_json(response.body)\nend"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil,statuses:String=\"Online\")-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = \"Online\")","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil, statuses : String = "Online")","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L151"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"},{"name":"statuses","default_value":"\"Online\"","external_name":"statuses","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"perPage\", \"1000\")\n form.add(\"timespan\", timespan.to_s)\n form.add(\"statuses[]\", statuses)\n if connection\n form.add(\"recentDeviceConnections[]\", connection.to_s)\n end\nend\nclients = [] of Client\nreq_all_pages(\"/api/v1/networks/#{network_id}/clients?#{params}\") do |response|\n clients.concat(Array(Client).from_json(response.body))\nend\nif device_serial\n clients.select! do |client|\n client.recent_device_serial == device_serial\n end.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nelse\n clients.sort! do |a, b|\n b.last_seen <=> a.last_seen\n end\nend\n"}},{"html_id":"port_status(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"port_status","doc":"a webhook for obtaining changes in port status","summary":"

a webhook for obtaining changes in port status

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L228"},"def":{"name":"port_status","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Webhook Alert received: #{method},\\nheaders #{headers},\\nbody #{body}\"\nend\nself[:port_update] = WebhookAlert.from_json(body)\nSUCCESS_RESPONSE\n"}},{"html_id":"ports_statuses(device_serial:String)-instance-method","name":"ports_statuses","abstract":false,"args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"args_string":"(device_serial : String)","args_html":"(device_serial : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L177"},"def":{"name":"ports_statuses","args":[{"name":"device_serial","external_name":"device_serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{device_serial}/switch/ports/statuses\") do |response|\n Array(PortStatusResponse).from_json(response.body)\nend"}},{"html_id":"scanning_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"scanning_api","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/cisco/meraki/dashboard.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/dashboard.cr#L190"},"def":{"name":"scanning_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nif method == \"GET\"\n return {HTTP::Status::OK.to_i, EMPTY_HEADERS, @scanning_validator}\nend\nif !(body.starts_with?(\"{\\\"version\\\":\\\"3.0\\\"\"))\n logger.warn do\n \"unknown scanning API message received:\\n#{body[0..96]}\"\n end\n return SUCCESS_RESPONSE\nend\nbegin\n seen = DevicesSeen.from_json(body)\n logger.debug do\n \"parsed meraki payload\"\n end\n if !@scanning_api_filter.none? && (seen.message_type != @scanning_api_filter)\n logger.debug do\n \"ignoring message type: #{seen.message_type}\"\n end\n return SUCCESS_RESPONSE\n end\n if seen.secret == @scanning_secret\n else\n raise(\"secret mismatch, sent: #{seen.secret}\")\n end\n self[seen.data.network_id] = seen.data.observations\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]},{"html_id":"drivers/Cisco/Meraki/Data","path":"Cisco/Meraki/Data.html","kind":"class","full_name":"Cisco::Meraki::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L276"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L277"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"network_id=(network_id:String)-instance-method","name":"network_id=","abstract":false,"args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"args_string":"(network_id : String)","args_html":"(network_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L280"},"def":{"name":"network_id=","args":[{"name":"network_id","external_name":"network_id","restriction":"String"}],"visibility":"Public","body":"@network_id = network_id"}},{"html_id":"observations:Array(Observation)-instance-method","name":"observations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations","return_type":"Array(Observation)","visibility":"Public","body":"@observations"}},{"html_id":"observations=(observations:Array(Observation))-instance-method","name":"observations=","abstract":false,"args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"args_string":"(observations : Array(Observation))","args_html":"(observations : Array(Observation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L281"},"def":{"name":"observations=","args":[{"name":"observations","external_name":"observations","restriction":"Array(Observation)"}],"visibility":"Public","body":"@observations = observations"}}]},{"html_id":"drivers/Cisco/Meraki/DeskMappings","path":"Cisco/Meraki/DeskMappings.html","kind":"struct","full_name":"Cisco::Meraki::DeskMappings","name":"DeskMappings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L343"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L346"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"ports:Hash(Int32,String)-instance-method","name":"ports","doc":"port_id => desk_id","summary":"

port_id => desk_id

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L349"},"def":{"name":"ports","return_type":"Hash(Int32, String)","visibility":"Public","body":"@ports"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L345"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}}]},{"html_id":"drivers/Cisco/Meraki/DetectedDesks","path":"Cisco/Meraki/DetectedDesks.html","kind":"class","full_name":"Cisco::Meraki::DetectedDesks","name":"DetectedDesks","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api_version:Int32-instance-method","name":"api_version","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L17"},"def":{"name":"api_version","return_type":"Int32","visibility":"Public","body":"@api_version"}},{"html_id":"desks:Array(Tuple(Float64,Float64,Float64,Float64,Float64,Float64,Float64))-instance-method","name":"desks","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L26"},"def":{"name":"desks","return_type":"Array(Tuple(Float64, Float64, Float64, Float64, Float64, Float64, Float64))","visibility":"Public","body":"@desks"}},{"html_id":"time_string:String|Nil-instance-method","name":"time_string","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L24"},"def":{"name":"time_string","return_type":"String | ::Nil","visibility":"Public","body":"@time_string"}},{"html_id":"time_unix:Int64|Nil-instance-method","name":"time_unix","doc":"Time in milliseconds v3,","summary":"

Time in milliseconds v3,

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L21"},"def":{"name":"time_unix","return_type":"Int64 | ::Nil","visibility":"Public","body":"@time_unix"}}]},{"html_id":"drivers/Cisco/Meraki/DeviceLocation","path":"Cisco/Meraki/DeviceLocation.html","kind":"class","full_name":"Cisco::Meraki::DeviceLocation","name":"DeviceLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L162"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"calculate_location(floor:FloorPlan,device:NetworkDevice,time:Time):DeviceLocation-class-method","name":"calculate_location","abstract":false,"args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","args_html":"(floor : FloorPlan, device : NetworkDevice, time : Time) : DeviceLocation","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L173"},"def":{"name":"calculate_location","args":[{"name":"floor","external_name":"floor","restriction":"FloorPlan"},{"name":"device","external_name":"device","restriction":"NetworkDevice"},{"name":"time","external_name":"time","restriction":"Time"}],"return_type":"DeviceLocation","visibility":"Public","body":"distance = Geo.calculate_xy(floor.top_left, floor.bottom_left, floor.bottom_right, device, floor.to_distance)\nDeviceLocation.new(distance.x, distance.y, device.lng, device.lat, 25_f64, floor.id, floor.name, time)\n"}},{"html_id":"new(x:Float64|String|Nil,y:Float64|String|Nil,lng:Float64|Nil,lat:Float64|Nil,variance:Float64,floor_plan_id:Nil|String,floor_plan_name:Nil|String,time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"args_string":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","args_html":"(x : Float64 | String | Nil, y : Float64 | String | Nil, lng : Float64 | Nil, lat : Float64 | Nil, variance : Float64, floor_plan_id : Nil | String, floor_plan_name : Nil | String, time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L165"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64 | ::String | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::String | ::Nil"},{"name":"lng","external_name":"lng","restriction":"::Float64 | ::Nil"},{"name":"lat","external_name":"lat","restriction":"::Float64 | ::Nil"},{"name":"variance","external_name":"variance","restriction":"::Float64"},{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"::Nil | ::String"},{"name":"floor_plan_name","external_name":"floor_plan_name","restriction":"::Nil | ::String"},{"name":"time","external_name":"time","restriction":"::Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y, lng, lat, variance, floor_plan_id, floor_plan_name, time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L163"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client:Client|Nil-instance-method","name":"client","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client","return_type":"Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"client=(client:Client|Nil)-instance-method","name":"client=","doc":"NOTE:: this is not part of the location response,\nit is here to speed up processing","summary":"

NOTE : this is not part of the location response, it is here to speed up processing

","abstract":false,"args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"args_string":"(client : Client | Nil)","args_html":"(client : Client | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L186"},"def":{"name":"client=","args":[{"name":"client","external_name":"client","restriction":"Client | ::Nil"}],"visibility":"Public","body":"@client = client"}},{"html_id":"floor_plan:FloorPlanLocation|Nil-instance-method","name":"floor_plan","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan","return_type":"FloorPlanLocation | ::Nil","visibility":"Public","body":"@floor_plan"}},{"html_id":"floor_plan=(floor_plan:FloorPlanLocation|Nil)-instance-method","name":"floor_plan=","abstract":false,"args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"args_string":"(floor_plan : FloorPlanLocation | Nil)","args_html":"(floor_plan : FloorPlanLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L202"},"def":{"name":"floor_plan=","args":[{"name":"floor_plan","external_name":"floor_plan","restriction":"FloorPlanLocation | ::Nil"}],"visibility":"Public","body":"@floor_plan = floor_plan"}},{"html_id":"floor_plan_id-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L237"},"def":{"name":"floor_plan_id","visibility":"Public","body":"wifi_floor_plan_id || floor_plan.try(&.id)"}},{"html_id":"floor_plan_name-instance-method","name":"floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L241"},"def":{"name":"floor_plan_name","visibility":"Public","body":"wifi_floor_plan_name || floor_plan.try(&.name)"}},{"html_id":"get_x:Float64|Nil-instance-method","name":"get_x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L221"},"def":{"name":"get_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = x || floor_plan.try(&.x)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"get_y:Float64|Nil-instance-method","name":"get_y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L229"},"def":{"name":"get_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"if tmp = y || floor_plan.try(&.y)\n if tmp.is_a?(Float64)\n tmp\n end\nend"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64|Nil)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"args_string":"(lat : Float64 | Nil)","args_html":"(lat : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L192"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64|Nil)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"args_string":"(lng : Float64 | Nil)","args_html":"(lng : Float64 | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L191"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","doc":"NOTE:: This is not part of the location response,\nit is here to simplify processing","summary":"

NOTE : This is not part of the location response, it is here to simplify processing

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L181"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"nearest_ap_tags:Array(String)-instance-method","name":"nearest_ap_tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @nearest_ap_tags).nil?\n @nearest_ap_tags = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"nearest_ap_tags=(nearest_ap_tags:Array(String))-instance-method","name":"nearest_ap_tags=","abstract":false,"args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"args_string":"(nearest_ap_tags : Array(String))","args_html":"(nearest_ap_tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L208"},"def":{"name":"nearest_ap_tags=","args":[{"name":"nearest_ap_tags","external_name":"nearest_ap_tags","restriction":"Array(String)"}],"visibility":"Public","body":"@nearest_ap_tags = nearest_ap_tags"}},{"html_id":"rssi_records:Array(RSSI)-instance-method","name":"rssi_records","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records","return_type":"Array(RSSI)","visibility":"Public","body":"@rssi_records"}},{"html_id":"rssi_records=(rssi_records:Array(RSSI))-instance-method","name":"rssi_records=","abstract":false,"args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"args_string":"(rssi_records : Array(RSSI))","args_html":"(rssi_records : Array(RSSI))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L211"},"def":{"name":"rssi_records=","args":[{"name":"rssi_records","external_name":"rssi_records","restriction":"Array(RSSI)"}],"visibility":"Public","body":"@rssi_records = rssi_records"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L205"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}},{"html_id":"variance:Float64-instance-method","name":"variance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance","return_type":"Float64","visibility":"Public","body":"@variance"}},{"html_id":"variance=(variance:Float64)-instance-method","name":"variance=","abstract":false,"args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"args_string":"(variance : Float64)","args_html":"(variance : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L193"},"def":{"name":"variance=","args":[{"name":"variance","external_name":"variance","restriction":"Float64"}],"visibility":"Public","body":"@variance = variance"}},{"html_id":"wifi_floor_plan_id:String|Nil-instance-method","name":"wifi_floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_id=(wifi_floor_plan_id:String|Nil)-instance-method","name":"wifi_floor_plan_id=","abstract":false,"args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_id : String | Nil)","args_html":"(wifi_floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L196"},"def":{"name":"wifi_floor_plan_id=","args":[{"name":"wifi_floor_plan_id","external_name":"wifi_floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_id = wifi_floor_plan_id"}},{"html_id":"wifi_floor_plan_name:String|Nil-instance-method","name":"wifi_floor_plan_name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name","return_type":"String | ::Nil","visibility":"Public","body":"@wifi_floor_plan_name"}},{"html_id":"wifi_floor_plan_name=(wifi_floor_plan_name:String|Nil)-instance-method","name":"wifi_floor_plan_name=","abstract":false,"args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"args_string":"(wifi_floor_plan_name : String | Nil)","args_html":"(wifi_floor_plan_name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L199"},"def":{"name":"wifi_floor_plan_name=","args":[{"name":"wifi_floor_plan_name","external_name":"wifi_floor_plan_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@wifi_floor_plan_name = wifi_floor_plan_name"}},{"html_id":"x:Float64|String|Nil-instance-method","name":"x","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x","return_type":"Float64 | String | Nil","visibility":"Public","body":"@x"}},{"html_id":"x!-instance-method","name":"x!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L213"},"def":{"name":"x!","visibility":"Public","body":"get_x.not_nil!"}},{"html_id":"x=(x:Float64|String|Nil)-instance-method","name":"x=","doc":"Multiple types as the location when parsed might include javascript `\"NaN\"`","summary":"

Multiple types as the location when parsed might include javascript "NaN"

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"args_string":"(x : Float64 | String | Nil)","args_html":"(x : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L189"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|String|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y","return_type":"Float64 | String | Nil","visibility":"Public","body":"@y"}},{"html_id":"y!-instance-method","name":"y!","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L217"},"def":{"name":"y!","visibility":"Public","body":"get_y.not_nil!"}},{"html_id":"y=(y:Float64|String|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"args_string":"(y : Float64 | String | Nil)","args_html":"(y : Float64 | String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L190"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | String | Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/DevicesSeen","path":"Cisco/Meraki/DevicesSeen.html","kind":"class","full_name":"Cisco::Meraki::DevicesSeen","name":"DevicesSeen","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L290"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L291"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L299"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L297"},"def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"secret:String-instance-method","name":"secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret","return_type":"String","visibility":"Public","body":"@secret"}},{"html_id":"secret=(secret:String)-instance-method","name":"secret=","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String"}],"args_string":"(secret : String)","args_html":"(secret : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L294"},"def":{"name":"secret=","args":[{"name":"secret","external_name":"secret","restriction":"String"}],"visibility":"Public","body":"@secret = secret"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version","return_type":"String","visibility":"Public","body":"@version"}},{"html_id":"version=(version:String)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"String"}],"args_string":"(version : String)","args_html":"(version : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L293"},"def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"String"}],"visibility":"Public","body":"@version = version"}}]},{"html_id":"drivers/Cisco/Meraki/Entrances","path":"Cisco/Meraki/Entrances.html","kind":"class","full_name":"Cisco::Meraki::Entrances","name":"Entrances","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L72"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n @count = ((counts[:person] || counts[:vehicle]) || 0)\nelse\n __temp_1\nend"}},{"html_id":"count_type:CountType-instance-method","name":"count_type","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L61"},"def":{"name":"count_type","return_type":"CountType","visibility":"Public","body":"if (__temp_1 = @count_type).nil?\n @count_type = (if counts[:person]\n CountType::People\n else\n if counts[:vehicle]\n CountType::Vehicles\n else\n CountType::Unknown\n end\n end)\nelse\n __temp_1\nend"}},{"html_id":"counts:NamedTuple(person:Int32|Nil,vehicle:Int32|Nil)-instance-method","name":"counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L55"},"def":{"name":"counts","return_type":"NamedTuple(person: Int32 | ::Nil, vehicle: Int32 | ::Nil)","visibility":"Public","body":"@counts"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L53"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Cisco/Meraki/FloorMapping","path":"Cisco/Meraki/FloorMapping.html","kind":"class","full_name":"Cisco::Meraki::FloorMapping","name":"FloorMapping","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:String|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L10"},"def":{"name":"building_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"camera_serials:Array(String)-instance-method","name":"camera_serials","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L8"},"def":{"name":"camera_serials","return_type":"Array(String)","visibility":"Public","body":"@camera_serials"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L9"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlan","path":"Cisco/Meraki/FloorPlan.html","kind":"class","full_name":"Cisco::Meraki::FloorPlan","name":"FloorPlan","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_left:Geo::Point-instance-method","name":"bottom_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left","return_type":"Geo::Point","visibility":"Public","body":"@bottom_left"}},{"html_id":"bottom_left=(bottom_left:Geo::Point)-instance-method","name":"bottom_left=","abstract":false,"args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"args_string":"(bottom_left : Geo::Point)","args_html":"(bottom_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L66"},"def":{"name":"bottom_left=","args":[{"name":"bottom_left","external_name":"bottom_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_left = bottom_left"}},{"html_id":"bottom_right:Geo::Point-instance-method","name":"bottom_right","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right","return_type":"Geo::Point","visibility":"Public","body":"@bottom_right"}},{"html_id":"bottom_right=(bottom_right:Geo::Point)-instance-method","name":"bottom_right=","abstract":false,"args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"args_string":"(bottom_right : Geo::Point)","args_html":"(bottom_right : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L69"},"def":{"name":"bottom_right=","args":[{"name":"bottom_right","external_name":"bottom_right","restriction":"Geo::Point"}],"visibility":"Public","body":"@bottom_right = bottom_right"}},{"html_id":"height:Float64-instance-method","name":"height","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height","return_type":"Float64","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Float64)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Float64"}],"args_string":"(height : Float64)","args_html":"(height : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L60"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Float64"}],"visibility":"Public","body":"@height = height"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L72"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"to_distance-instance-method","name":"to_distance","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L74"},"def":{"name":"to_distance","visibility":"Public","body":"Geo::Distance.new(width, height)"}},{"html_id":"top_left:Geo::Point-instance-method","name":"top_left","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left","return_type":"Geo::Point","visibility":"Public","body":"@top_left"}},{"html_id":"top_left=(top_left:Geo::Point)-instance-method","name":"top_left=","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"args_string":"(top_left : Geo::Point)","args_html":"(top_left : Geo::Point)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L63"},"def":{"name":"top_left=","args":[{"name":"top_left","external_name":"top_left","restriction":"Geo::Point"}],"visibility":"Public","body":"@top_left = top_left"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L59"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}]},{"html_id":"drivers/Cisco/Meraki/FloorPlanLocation","path":"Cisco/Meraki/FloorPlanLocation.html","kind":"class","full_name":"Cisco::Meraki::FloorPlanLocation","name":"FloorPlanLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L82"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L83"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L84"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L85"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo","path":"Cisco/Meraki/Geo.html","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo","abstract":false,"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EarthRadiusApprox","name":"EarthRadiusApprox","value":"6371000.7900","doc":"radius in meters, approx as we're using a perfect sphere the same volume as the earth","summary":"

radius in meters, approx as we're using a perfect sphere the same volume as the earth

"},{"id":"Radians","name":"Radians","value":"Math::PI / 180_f64"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"calculate_xy(top_left:Point,bottom_left:Point,bottom_right:Point,position,distance:Distance)-class-method","name":"calculate_xy","abstract":false,"args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"args_string":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","args_html":"(top_left : Point, bottom_left : Point, bottom_right : Point, position, distance : Distance)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L29"},"def":{"name":"calculate_xy","args":[{"name":"top_left","external_name":"top_left","restriction":"Point"},{"name":"bottom_left","external_name":"bottom_left","restriction":"Point"},{"name":"bottom_right","external_name":"bottom_right","restriction":"Point"},{"name":"position","external_name":"position","restriction":""},{"name":"distance","external_name":"distance","restriction":"Distance"}],"visibility":"Public","body":"y_base = geo_distance(top_left, bottom_left)\na = geo_distance(top_left, position)\nc = geo_distance(bottom_left, position)\nx_raw = triangle_height(a, y_base, c)\nx_base = geo_distance(bottom_left, bottom_right)\na = geo_distance(bottom_left, position)\nc = geo_distance(bottom_right, position)\ny_raw = triangle_height(a, x_base, c)\npercentage_height = y_raw / y_base\npercentage_width = x_raw / x_base\nDistance.new(distance.x * percentage_width, distance.y * percentage_height)\n"}},{"html_id":"geo_distance(start:Point,ending)-class-method","name":"geo_distance","doc":"https://www.movable-type.co.uk/scripts/latlong.html\nreturns the distance in meters","summary":"

https://www.movable-type.co.uk/scripts/latlong.html returns the distance in meters

","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"args_string":"(start : Point, ending)","args_html":"(start : Point, ending)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L54"},"def":{"name":"geo_distance","args":[{"name":"start","external_name":"start","restriction":"Point"},{"name":"ending","external_name":"ending","restriction":""}],"visibility":"Public","body":"lat_diff = (ending.lat - start.lat) * Radians\nlng_diff = (ending.lng - start.lng) * Radians\nstart_lat_radian = start.lat * Radians\nend_lng_radian = ending.lng * Radians\na = ((Math.sin(lat_diff / 2_f64)) * (Math.sin(lat_diff / 2_f64))) + ((((Math.cos(start_lat_radian)) * (Math.cos(end_lng_radian))) * (Math.sin(lng_diff / 2_f64))) * (Math.sin(lng_diff / 2_f64)))\nc = 2_f64 * (Math.atan2(Math.sqrt(a), Math.sqrt(1_f64 - a)))\nEarthRadiusApprox * c\n"}},{"html_id":"triangle_height(a:Float64,base:Float64,c:Float64)-class-method","name":"triangle_height","doc":"https://www.omnicalculator.com/math/triangle-height","summary":"

https://www.omnicalculator.com/math/triangle-height

","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"args_string":"(a : Float64, base : Float64, c : Float64)","args_html":"(a : Float64, base : Float64, c : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L70"},"def":{"name":"triangle_height","args":[{"name":"a","external_name":"a","restriction":"Float64"},{"name":"base","external_name":"base","restriction":"Float64"},{"name":"c","external_name":"c","restriction":"Float64"}],"visibility":"Public","body":"(0.5 * (Math.sqrt(((((a + base) + c) * ((base + c) - a)) * ((a - base) + c)) * ((a + base) - c)))) / base"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Geo/Distance","path":"Cisco/Meraki/Geo/Distance.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Distance","name":"Distance","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L22"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"::Float64"},{"name":"y","external_name":"y","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L25"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L26"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Cisco/Meraki/Geo/Point","path":"Cisco/Meraki/Geo/Point.html","kind":"struct","full_name":"Cisco::Meraki::Geo::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/geo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Geo","kind":"module","full_name":"Cisco::Meraki::Geo","name":"Geo"},"constructors":[{"html_id":"new(lat:Float64,lng:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"args_string":"(lat : Float64, lng : Float64)","args_html":"(lat : Float64, lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L12"},"def":{"name":"new","args":[{"name":"lat","external_name":"lat","restriction":"::Float64"},{"name":"lng","external_name":"lng","restriction":"::Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lat, lng)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L15"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/geo.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/geo.cr#L16"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]}]},{"html_id":"drivers/Cisco/Meraki/LatestRecord","path":"Cisco/Meraki/LatestRecord.html","kind":"class","full_name":"Cisco::Meraki::LatestRecord","name":"LatestRecord","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"nearest_ap_mac:String-instance-method","name":"nearest_ap_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac","return_type":"String","visibility":"Public","body":"@nearest_ap_mac"}},{"html_id":"nearest_ap_mac=(nearest_ap_mac:String)-instance-method","name":"nearest_ap_mac=","abstract":false,"args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"args_string":"(nearest_ap_mac : String)","args_html":"(nearest_ap_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L250"},"def":{"name":"nearest_ap_mac=","args":[{"name":"nearest_ap_mac","external_name":"nearest_ap_mac","restriction":"String"}],"visibility":"Public","body":"@nearest_ap_mac = nearest_ap_mac"}},{"html_id":"nearest_ap_rssi:Int32-instance-method","name":"nearest_ap_rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi","return_type":"Int32","visibility":"Public","body":"@nearest_ap_rssi"}},{"html_id":"nearest_ap_rssi=(nearest_ap_rssi:Int32)-instance-method","name":"nearest_ap_rssi=","abstract":false,"args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"args_string":"(nearest_ap_rssi : Int32)","args_html":"(nearest_ap_rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L253"},"def":{"name":"nearest_ap_rssi=","args":[{"name":"nearest_ap_rssi","external_name":"nearest_ap_rssi","restriction":"Int32"}],"visibility":"Public","body":"@nearest_ap_rssi = nearest_ap_rssi"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L256"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations","path":"Cisco/Meraki/Locations.html","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L94"},"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"camera_analytics(serial:String)-instance-method","name":"camera_analytics","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":711,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L711"},"def":{"name":"camera_analytics","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"req(\"/api/v1/devices/#{serial}/camera/analytics/live\") do |response|\n CameraAnalytics.from_json(response)\nend"}},{"html_id":"cameras:Array(Cisco::Meraki::NetworkDevice)-instance-method","name":"cameras","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":726,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L726"},"def":{"name":"cameras","visibility":"Public","body":"@cameras"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L418"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = user_mac_mappings(&.[]?(lookup))\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"cleanup_caches:Nil-instance-method","name":"cleanup_caches","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L638"},"def":{"name":"cleanup_caches","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"removing IP and location data that is over 30 minutes old\"\nend\nold = 30.minutes.ago\nremove_keys = [] of String\n@ip_lookup.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_lookup.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => MAC mappings\"\nend\nremove_keys.clear\n@ip_usernames.each do |ip, lookup|\n if lookup.time < old\n remove_keys << ip\n end\nend\nremove_keys.each do |ip|\n @ip_usernames.delete(ip)\nend\nlogger.debug do\n \"removed #{remove_keys.size} IP => Username mappings\"\nend\nremove_keys.clear\n@client_details.each do |mac, client|\n if client.time_added < old\n remove_keys << mac\n end\nend\nremove_keys.each do |mac|\n @client_details.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} client details\"\nend\nremove_keys.clear\n@locations.each do |mac, location|\n if location.time < old\n if client = @client_details[mac]?\n if client.time_added < old\n remove_keys << mac\n end\n else\n remove_keys << mac\n end\n end\nend\nremove_keys.each do |mac|\n @locations.delete(mac)\nend\nlogger.debug do\n \"removed #{remove_keys.size} MACs\"\nend\n"}},{"html_id":"desk_details:Hash(String,DetectedDesks)-instance-method","name":"desk_details","doc":"serial => desks detected","summary":"

serial => desks detected

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L221"},"def":{"name":"desk_details","return_type":"Hash(String, DetectedDesks)","visibility":"Public","body":"@desk_details"}},{"html_id":"desk_locations(zone_id:String)-instance-method","name":"desk_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1260"},"def":{"name":"desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"serials = @zone_lookup[zone_id]? || ([] of String)\nreturn_empty_spaces = @return_empty_spaces\nexpiry_time = desk_data_expiry_time\nserials.compact_map do |serial|\n desks = @desk_mappings[serial]?\n if desks\n else\n next\n end\n if desk_details[serial]?\n else\n next\n end\n floor = @floor_lookup[serial]\n illumination = lux[serial]?\n desks.compact_map do |desk|\n desk_id = desk.label\n occupied = is_occupied?(desk_id, expiry_time)\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: desk_id, level: floor.level_id, building: floor.building_id, capacity: 1, area_lux: illumination, merakimv: serial}\n end\nend.flatten\n"}},{"html_id":"desk_mappings:Hash(String,Array(CameraZone))-instance-method","name":"desk_mappings","doc":"Camera serial => [desk location]","summary":"

Camera serial => [desk location]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1258"},"def":{"name":"desk_mappings","return_type":"Hash(String, Array(CameraZone))","visibility":"Public","body":"@desk_mappings"}},{"html_id":"desk_occupancy:Hash(String,Array(Tuple(Int64,Bool)))-instance-method","name":"desk_occupancy","doc":"=================\nCamera Desk data:\n=================\ndesk_id => [{time, occupied}]","summary":"

================= Camera Desk data: ================= desk_id => [{time, occupied}]

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1195"},"def":{"name":"desk_occupancy","return_type":"Hash(String, Array(Tuple(Int64, Bool)))","visibility":"Public","body":"@desk_occupancy"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L510"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\ncase location.presence\nwhen \"wireless\"\n wireless_locations(zone_id)\nwhen \"desk\"\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(cam_locs[0]) | typeof(desk_locs[0])).new(cam_locs.size + desk_locs.size)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nwhen nil\n wireless_locs = wireless_locations(zone_id)\n desk_locs = wired_desk_locations(zone_id)\n cam_locs = desk_locations(zone_id)\n combind = Array(typeof(wireless_locs[0]) | typeof(cam_locs[0]) | typeof(desk_locs[0])).new((wireless_locs.size + cam_locs.size) + desk_locs.size)\n combind.concat(wireless_locs)\n combind.concat(desk_locs)\n combind.concat(cam_locs)\nelse\n [] of String\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":935,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L935"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L400"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"hostname_ownership(hostname:String,username:String|Nil):Nil-instance-method","name":"hostname_ownership","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(hostname : String, username : String | Nil) : Nil","args_html":"(hostname : String, username : String | Nil) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1006,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1006"},"def":{"name":"hostname_ownership","args":[{"name":"hostname","external_name":"hostname","restriction":"String"},{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"macs = @mac_hostnames.compact_map do |__temp_192|\n mac, host = __temp_192\n host == hostname ? mac : nil\nend\nif username && username.presence\n user_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(mac, username, storage)\n end\n end\nelse\n macs.each do |mac|\n @mac_hostnames.delete(mac)\n end\nend\n"}},{"html_id":"inspect_foorplans:Hash(String,Cisco::Meraki::FloorPlan)-instance-method","name":"inspect_foorplans","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L269"},"def":{"name":"inspect_foorplans","visibility":"Public","body":"@floorplan_sizes"}},{"html_id":"inspect_network_devices:Hash(String,Cisco::Meraki::NetworkDevice)-instance-method","name":"inspect_network_devices","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L274"},"def":{"name":"inspect_network_devices","visibility":"Public","body":"@network_devices"}},{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L279"},"def":{"name":"inspect_state","visibility":"Public","body":"logger.debug do\n \"IP Mappings: #{@ip_lookup.keys}\\n\\nMAC Locations: #{@locations.keys}\\n\\nClient Details: #{@client_details.keys}\"\nend\n{ip_mappings: @ip_lookup.size, tracking: @locations.size, client_details: @client_details.size}\n"}},{"html_id":"ip_username_mappings(ip_map:Array(Tuple(String,String,String,String|Nil))):Nil-instance-method","name":"ip_username_mappings","abstract":false,"args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"args_string":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","args_html":"(ip_map : Array(Tuple(String, String, String, String | Nil))) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":943,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L943"},"def":{"name":"ip_username_mappings","args":[{"name":"ip_map","external_name":"ip_map","restriction":"Array(Tuple(String, String, String, String | ::Nil))"}],"return_type":"Nil","visibility":"Public","body":"now = Time.utc\nuser_mac_mappings do |storage|\n ip_map.each do |__temp_191|\n ip, username, domain, hostname = __temp_191\n username = format_username(username)\n @ip_usernames[ip] = Lookup.new(now, username)\n if lookup = @ip_lookup[ip]?\n map_user_mac(lookup.mac, username, storage)\n end\n end\nend\n"}},{"html_id":"locate_mac(address:String)-instance-method","name":"locate_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L264"},"def":{"name":"locate_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@locations[format_mac(address)]?"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"returns locations based on most recently seen\nversus most accurate location","summary":"

returns locations based on most recently seen versus most accurate location

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L431"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n location_max_age = @max_location_age.ago\n (Array(String).from_json(macs)).compact_map do |mac|\n if location = locate_mac(mac)\n client = @client_details[mac]?\n if @regex_filter_device_os\n if client && client.os\n if (/#{@regex_filter_device_os}/).match(client.os.not_nil!)\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS does not match regex filter\"\n end\n next\n end\n else\n logger.debug do\n \"[#{username}] IGNORING #{mac} as OS is UNKNOWN\"\n end\n next\n end\n end\n location.client = client\n location.mac = mac\n if client && client.time_added > location_max_age\n location\n else\n if location.time > location_max_age\n location\n end\n end\n end\n end.sort! do |a, b|\n b.time <=> a.time\n end.map do |location|\n lat = location.lat\n lon = location.lng\n loc = {\"location\" => \"wireless\", \"coordinates_from\" => \"bottom-left\", \"x\" => location.x, \"y\" => location.y, \"lon\" => lon, \"lat\" => lat, \"s2_cell_id\" => lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, \"mac\" => location.mac, \"variance\" => location.variance, \"last_seen\" => location.time.to_unix, \"meraki_floor_id\" => location.floor_plan_id, \"meraki_floor_name\" => location.floor_plan_name}\n if level_data = @floorplan_mappings[location.floor_plan_id]?\n level_data.each do |k, v|\n loc[k] = v\n end\n end\n if map_size = @floorplan_sizes[location.floor_plan_id]?\n loc[\"map_width\"] = map_size.width\n loc[\"map_height\"] = map_size.height\n end\n if client = location.client\n if client.manufacturer\n loc[\"manufacturer\"] = client.manufacturer\n end\n if client.os\n loc[\"os\"] = client.os\n end\n if client.ssid\n loc[\"ssid\"] = client.ssid\n end\n end\n loc\n end\nelse\n [] of Nil\nend\n"}},{"html_id":"locateable-instance-method","name":"locateable","doc":"Returns the list of users who can be located","summary":"

Returns the list of users who can be located

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L288"},"def":{"name":"locateable","visibility":"Public","body":"too_old = @max_location_age.ago\n@client_details.compact_map do |mac, client|\n location = @locations[mac]?\n if location && ((location.time > too_old) || (client.time_added > too_old))\n client.user\n end\nend\n"}},{"html_id":"lookup_ip(address:String)-instance-method","name":"lookup_ip","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L260"},"def":{"name":"lookup_ip","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"@ip_lookup[address.downcase]?"}},{"html_id":"lux:Hash(String,Float64)-instance-method","name":"lux","doc":"serial => lux","summary":"

serial => lux

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L224"},"def":{"name":"lux","return_type":"Hash(String, Float64)","visibility":"Public","body":"@lux"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":958,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L958"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"mac_hostnames:Hash(String,String)-instance-method","name":"mac_hostnames","doc":"User lookup helpers using device hostnames","summary":"

User lookup helpers using device hostnames

","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":981,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L981"},"def":{"name":"mac_hostnames","return_type":"Hash(String, String)","visibility":"Public","body":"@mac_hostnames"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L409"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username.presence || email.presence.not_nil!)\nif macs = user_mac_mappings(&.[]?(username))\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"map_users_to_macs(network_id:String|Nil=nil)-instance-method","name":"map_users_to_macs","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L310"},"def":{"name":"map_users_to_macs","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"mapping users to device MACs\"\nend\nclients = poll_clients(network_id)\nnew_devices = 0\nupdated_dev = 0\nnow = Time.utc\nlogger.debug do\n \"mapping found #{clients.size} devices\"\nend\nuser_mac_mappings do |storage|\n clients.each do |client|\n user_mac = format_mac(client.mac)\n client.time_added = now\n if hostname = client.description\n @mac_hostnames[user_mac] = hostname\n end\n user_id = client.user\n if user_id\n @ignore_usernames.each do |name|\n if user_id.starts_with?(name)\n client.user = user_id = nil\n break\n end\n end\n end\n if user_id.nil?\n if known_id = storage[user_mac]?\n client.user = known_id\n end\n end\n @client_details[user_mac] = client\n if user_id\n else\n next\n end\n was_update, was_new = map_user_mac(user_mac, user_id, storage)\n if was_update\n updated_dev = updated_dev + 1\n end\n if was_new\n new_devices = new_devices + 1\n end\n end\nend\nlogger.debug do\n \"mapping assigned #{new_devices} new devices, #{updated_dev} user updated\"\nend\nnil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L84"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@default_network = (setting?(String, :default_network_id)) || \"\"\n@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@acceptable_confidence = (setting?(Float64, :acceptable_confidence)) || 5.0\n@maximum_uncertainty = (setting?(Float64, :maximum_uncertainty)) || 25.0\n@override_min_variance = (setting?(Float64, :override_min_variance)) || 0.0\n@regex_filter_device_os = setting?(String, :regex_filter_device_os)\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\n@confidence_time = @max_location_age / 3\n@drift_location_age = @max_location_age - @confidence_time\n@time_multiplier = 1.0 / (@drift_location_age.to_i - @confidence_time.to_i).to_f64\n@confidence_multiplier = 1.0 / (@maximum_uncertainty.to_i - @acceptable_confidence.to_i).to_f64\n@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Float64)), :floorplan_mappings)) || @floorplan_mappings\n@s2_level = (setting?(Int32, :s2_level)) || 21\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\ndisable_username_lookup = (setting?(Bool, :disable_username_lookup)) || false\nschedule.clear\ninit_wired_port_mappings\nif @default_network.presence\n schedule.every(59.seconds) do\n update_sensor_cache\n end\n if disable_username_lookup\n else\n schedule.every(2.minutes) do\n map_users_to_macs\n end\n end\n schedule.every(29.minutes) do\n sync_floorplan_sizes\n end\n schedule.in(30.milliseconds) do\n sync_floorplan_sizes\n update_sensor_cache\n end\nend\nschedule.every(30.minutes) do\n cleanup_caches\nend\nsubscriptions.clear\nif @default_network.presence\n dashboard.subscribe(@default_network) do |_subscription, new_value|\n parse_new_locations(new_value)\n end\nend\nzones = config.control_system.not_nil!.zones\nspawn do\n find_building(zones)\nend\nif system.exists?(:MerakiMQTT)\n mqtt_module = system[:MerakiMQTT]\n mqtt_module.subscribe(:floor_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @floor_lookup = Hash(String, FloorMapping).from_json(new_value)\n if @zone_lookup.empty?\n else\n update_desk_mappings\n end\n end\n mqtt_module.subscribe(:zone_lookup) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n @zone_lookup = Hash(String, Array(String)).from_json(new_value)\n if @floor_lookup.empty?\n else\n update_desk_mappings\n end\n end\n schedule.every(10.minutes) do\n update_desk_mappings\n end\n mqtt_module.subscribe(:camera_updated) do |_sub, new_value|\n if new_value.nil? || (new_value == \"null\")\n next\n end\n _time, camera_serial = Tuple(Int64, String).from_json(new_value)\n if @desk_mappings.has_key?(camera_serial)\n check_camera_status(mqtt_module, camera_serial)\n end\n end\nend\n"}},{"html_id":"parse_new_locations(payload:String):Nil-instance-method","name":"parse_new_locations","doc":"Webhook endpoint for scanning API, expects version 3","summary":"

Webhook endpoint for scanning API, expects version 3

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(payload : String) : Nil","args_html":"(payload : String) : Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":763,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L763"},"def":{"name":"parse_new_locations","args":[{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"if @debug_payload\n logger.debug do\n payload\n end\nend\nlocations_updated = 0\nbegin\n observations = Array(Observation).from_json(payload)\n logger.debug do\n \"parsed meraki payload\"\n end\n ignore_older = @max_location_age.ago.in(Time::Location::UTC)\n drift_older = @drift_location_age.ago.in(Time::Location::UTC)\n current_time = Time.utc\n observations.each do |observation|\n client_mac = format_mac(observation.client_mac)\n existing = @locations[client_mac]?\n if @debug_webhook\n logger.debug do\n \"parsing new observation for #{client_mac}\"\n end\n end\n if @regex_filter_device_os\n client = @client_details[format_mac(observation.client_mac)]?\n if client.nil? || (/#{@regex_filter_device_os}/).match(client.os || \"\").nil?\n if @debug_webhook\n logger.debug do\n \"FILTERED OUT #{client_mac}: OS \\\"#{observation.os}\\\" did not match \\\"#{@regex_filter_device_os}\\\"\"\n end\n end\n next\n end\n end\n location = parse(existing, ignore_older, drift_older, observation)\n if location\n @locations[client_mac] = location\n locations_updated = locations_updated + 1\n end\n update_ipv4(observation.ipv4, client_mac, current_time)\n update_ipv6(observation.ipv6.try(&.downcase), client_mac, current_time)\n end\nrescue e\n logger.error do\n \"failed to parse meraki scanning API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{payload}\"\n end\nend\nlogger.debug do\n \"updated #{locations_updated} locations\"\nend\n"}},{"html_id":"poll_clients(network_id:String|Nil=nil,timespan:UInt32=900_u32,connection:ConnectionType|Nil=nil,device_serial:String|Nil=nil)-instance-method","name":"poll_clients","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","args_html":"(network_id : String | Nil = nil, timespan : UInt32 = 900_u32, connection : ConnectionType | Nil = nil, device_serial : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L297"},"def":{"name":"poll_clients","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"},{"name":"timespan","default_value":"900_u32","external_name":"timespan","restriction":"UInt32"},{"name":"connection","default_value":"nil","external_name":"connection","restriction":"ConnectionType | ::Nil"},{"name":"device_serial","default_value":"nil","external_name":"device_serial","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nArray(Client).from_json((dashboard.poll_clients(network_id, timespan, connection, device_serial)).get.to_json)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1163"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\ncam_state = @camera_analytics[format_mac(mac)]?\nif cam_state\nelse\n return nil\nend\narea_str, _, sensor_type = id.rpartition('-')\nfilter = case sensor_type\nwhen \"people\"\n SensorType::PeopleCount\nwhen \"presence\"\n SensorType::Presence\nelse\n return nil\nend\narea_id = area_str.to_i64?\nif area_id\nelse\n return nil\nend\nzone_count = cam_state[:details].zones[area_id]?.try(&.person)\nif zone_count\nelse\n return nil\nend\n(to_sensors(nil, filter, **cam_state)).find do |sensor|\n sensor.id == id\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1148"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && !(type.in?({\"Presence\", \"PeopleCount\"}))\n return NO_MATCH\nend\nfilter = type ? SensorType.parse(type) : nil\nif mac\n cam_state = @camera_analytics[format_mac(mac)]?\n if cam_state\n else\n return NO_MATCH\n end\n return to_sensors(zone_id, filter, **cam_state)\nend\n@camera_analytics.values.flat_map do |cam_data|\n to_sensors(zone_id, filter, **cam_data)\nend\n"}},{"html_id":"sync_floorplan_sizes(network_id:String|Nil=nil)-instance-method","name":"sync_floorplan_sizes","abstract":false,"args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"args_string":"(network_id : String | Nil = nil)","args_html":"(network_id : String | Nil = nil)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L676"},"def":{"name":"sync_floorplan_sizes","args":[{"name":"network_id","default_value":"nil","external_name":"network_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"network_id = network_id.presence || @default_network\nlogger.debug do\n \"syncing floor plan sizes for network #{network_id}\"\nend\nfloor_plans = {} of String => FloorPlan\nreq_all(\"/api/v1/networks/#{network_id}/floorPlans?perPage=1000\") do |response|\n (Array(FloorPlan).from_json(response)).each do |plan|\n floor_plans[plan.id] = plan\n end\n nil\nend\n@floorplan_sizes = floor_plans\nnetwork_devices = {} of String => NetworkDevice\ncameras = [] of NetworkDevice\nreq_all(\"/api/v1/networks/#{network_id}/devices?perPage=1000\") do |response|\n (Array(NetworkDevice).from_json(response)).each do |device|\n if device.firmware.starts_with?(\"cam\")\n cameras << device\n end\n if device.floor_plan_id\n else\n next\n end\n network_devices[format_mac(device.mac)] = device\n end\n nil\nend\n@network_devices = network_devices\n@cameras = cameras\n{floor_plans, network_devices}\n"}},{"html_id":"update_desk_mappings-instance-method","name":"update_desk_mappings","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1297"},"def":{"name":"update_desk_mappings","visibility":"Public","body":"desk_mappings = Hash(String, Array(CameraZone)).new\n@floor_lookup.keys.each do |serial|\n begin\n desk_mappings[serial] = (Array(CameraZone).from_json((dashboard.get_zones(serial)).get.to_json)).reject!() do |__arg7|\n __arg7.id == \"0\"\n end\n rescue error\n logger.warn(exception: error) do\n \"fetching zones for camera: #{serial}\"\n end\n end\nend\n@desk_mappings = desk_mappings\nmqtt_module = system[:MerakiMQTT]\ndesk_mappings.keys.each do |camera_serial|\n check_camera_status(mqtt_module, camera_serial)\nend\n"}},{"html_id":"update_sensor_cache-instance-method","name":"update_sensor_cache","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":728,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L728"},"def":{"name":"update_sensor_cache","visibility":"Public","body":"analytics = {} of String => CamAnalytics\ncameras.each do |cam|\n begin\n mappings = @floorplan_mappings[cam.floor_plan_id]?\n counts = camera_analytics(cam.serial)\n mac = format_mac(cam.mac)\n if mappings\n analytics[mac] = {camera: cam, details: counts, building: mappings[\"building\"]?.as(String | ::Nil), level: mappings[\"level\"]?.as(String | ::Nil)}\n else\n analytics[mac] = {camera: cam, details: counts, building: nil.as(String | ::Nil), level: nil.as(String | ::Nil)}\n end\n counts.zones.each do |area_id, count|\n self[\"people-#{mac}-#{area_id}\"] = count.person\n self[\"presence-#{mac}-#{area_id}\"] = count.person > 0\n end\n rescue error\n logger.debug(exception: error) do\n \"failed to obtain analytics for #{cam.name} (serial: #{cam.serial})\"\n end\n end\nend\n@camera_analytics = analytics\n"}},{"html_id":"wired_desk_locations(zone_id:String)-instance-method","name":"wired_desk_locations","doc":"grabs the wired desk data for a level","summary":"

grabs the wired desk data for a level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L1064"},"def":{"name":"wired_desk_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"return_empty_spaces = @return_empty_spaces\nserials = if zone_id == @building_zone\n @level_serials.values.flatten\nelse\n @level_serials[zone_id]? || ([] of String)\nend\nserials.compact_map do |serial|\n ports = @port_status[serial]?\n if ports\n else\n next\n end\n ports.map do |__temp_193|\n port_num, port = __temp_193\n occupied = port.status.connected? ? 1 : 0\n if !return_empty_spaces && (occupied == 0)\n next\n end\n {location: \"desk\", at_location: occupied, map_id: port.desk_id, level: port.level_id, building: @building_zone, capacity: 1, mac: port.mac, port: port_num, switch: port.switch_serial}\n end\nend.flatten\n"}},{"html_id":"wireless_locations(zone_id:String)-instance-method","name":"wireless_locations","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":534,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L534"},"def":{"name":"wireless_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"floors = [] of String\n@floorplan_mappings.each do |floor_id, data|\n if data.values.includes?(zone_id)\n floors << floor_id\n end\nend\nlogger.debug do\n \"found matching meraki floors: #{floors}\"\nend\nif floors.empty?\n return [] of String\nend\nchecking_count = @locations.size\nwrong_floor = 0\ntoo_old = 0\noldest_location = @max_location_age.ago\nmatching = @locations.compact_map do |mac, loc|\n client = @client_details[mac]?\n loc.client = client\n if loc.time < oldest_location\n if client\n if client.time_added < oldest_location\n too_old = too_old + 1\n next\n end\n else\n too_old = too_old + 1\n next\n end\n end\n if !(floors.includes?(loc.floor_plan_id))\n wrong_floor = wrong_floor + 1\n next\n end\n loc.mac = mac\n loc\nend\nlogger.debug do\n \"found #{matching.size} matching devices\\nchecked #{checking_count} locations, #{wrong_floor} were on the wrong floor, #{too_old} were too old\"\nend\nmatching.group_by(&.floor_plan_id).flat_map do |floor_id, locations|\n map_width = -1.0\n map_height = -1.0\n if map_size = @floorplan_sizes[floor_id]?\n map_width = map_size.width\n map_height = map_size.height\n else\n if mappings = @floorplan_mappings[floor_id]?\n map_width = (mappings[\"width\"]? || map_width).as(Float64)\n map_height = (mappings[\"height\"]? || map_width).as(Float64)\n end\n end\n locations.compact_map do |loc|\n lat = loc.lat\n lon = loc.lng\n if client = @client_details[loc.mac]?\n manufacturer = client.manufacturer\n os = client.os\n ssid = client.ssid\n end\n if (x = loc.x) && (y = loc.y)\n if x.is_a?(Float64) && y.is_a?(Float64)\n if (loc.x.as(Float64)).nan? || (loc.y.as(Float64)).nan?\n logger.warn do\n \"ignoring bad location for #{loc.mac}, NaN\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, unexpected value #{loc.x.inspect}\"\n end\n next\n end\n else\n logger.warn do\n \"ignoring bad location for #{loc.mac}, no coordinates provided\"\n end\n next\n end\n {location: :wireless, coordinates_from: \"bottom-left\", x: loc.x, y: loc.y, lon: lon, lat: lat, s2_cell_id: lat ? ((S2Cells.at(lat.not_nil!, lon.not_nil!)).parent(@s2_level)).to_token : nil, mac: loc.mac, variance: loc.variance, last_seen: loc.time.to_unix, map_width: map_width, map_height: map_height, manufacturer: manufacturer, os: os, ssid: ssid}\n end\nend\n"}}],"types":[{"html_id":"drivers/Cisco/Meraki/Locations/CamAnalytics","path":"Cisco/Meraki/Locations/CamAnalytics.html","kind":"alias","full_name":"Cisco::Meraki::Locations::CamAnalytics","name":"CamAnalytics","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":717,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L717"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String | Nil, level: String | Nil)","aliased_html":"{camera: Cisco::Meraki::NetworkDevice, details: Cisco::Meraki::CameraAnalytics, building: String?, level: String?}","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}},{"html_id":"drivers/Cisco/Meraki/Locations/Lookup","path":"Cisco/Meraki/Locations/Lookup.html","kind":"struct","full_name":"Cisco::Meraki::Locations::Lookup","name":"Lookup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L246"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"},"constructors":[{"html_id":"new(time:Time,mac:String)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"args_string":"(time : Time, mac : String)","args_html":"(time : Time, mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L252"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"::Time"},{"name":"mac","external_name":"mac","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time, mac)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L247"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L250"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"time=(time:Time)-instance-method","name":"time=","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L249"},"def":{"name":"time=","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"@time = time"}}]},{"html_id":"drivers/Cisco/Meraki/Locations/WiredDesks","path":"Cisco/Meraki/Locations/WiredDesks.html","kind":"alias","full_name":"Cisco::Meraki::Locations::WiredDesks","name":"WiredDesks","abstract":false,"locations":[{"filename":"src/cisco/meraki/meraki_locations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/meraki_locations.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(Int32, String))","aliased_html":"Hash(String, Hash(Int32, String))","const":false,"namespace":{"html_id":"drivers/Cisco/Meraki/Locations","kind":"class","full_name":"Cisco::Meraki::Locations","name":"Locations"}}]},{"html_id":"drivers/Cisco/Meraki/LuxLevel","path":"Cisco/Meraki/LuxLevel.html","kind":"class","full_name":"Cisco::Meraki::LuxLevel","name":"LuxLevel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lux:Float64-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L40"},"def":{"name":"lux","return_type":"Float64","visibility":"Public","body":"@lux"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","doc":"Not actually provided for this message, but here for testing","summary":"

Not actually provided for this message, but here for testing

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt_models.cr#L38"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @timestamp).nil?\n @timestamp = (Time.utc.to_unix)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/MessageType","path":"Cisco/Meraki/MessageType.html","kind":"enum","full_name":"Cisco::Meraki::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L284"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"WiFi","name":"WiFi","value":"1"},{"id":"Bluetooth","name":"Bluetooth","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"bluetooth?-instance-method","name":"bluetooth?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L287"},"def":{"name":"bluetooth?","visibility":"Public","body":"self == Bluetooth"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L285"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"wi_fi?-instance-method","name":"wi_fi?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L286"},"def":{"name":"wi_fi?","visibility":"Public","body":"self == WiFi"}}]},{"html_id":"drivers/Cisco/Meraki/MQTT","path":"Cisco/Meraki/MQTT.html","kind":"class","full_name":"Cisco::Meraki::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/mqtt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LUX_ID","name":"LUX_ID","value":"\"lux\""},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SUBS","name":"SUBS","value":"{\"/merakimv/+/net.meraki.detector\", \"/merakimv/+/light\", \"/merakimv/+/0\", \"/merakimv/+/crossing/+\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L149"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\nend\n"}},{"html_id":"crossing_people:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_people","doc":"Serial => count","summary":"

Serial => count

","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L192"},"def":{"name":"crossing_people","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_people).nil?\n @crossing_people = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"crossing_vehicle:Hash(String,Tuple(Int32,Int64))-instance-method","name":"crossing_vehicle","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L196"},"def":{"name":"crossing_vehicle","return_type":"Hash(String, Tuple(Int32, Int64))","visibility":"Public","body":"if (__temp_1 = @crossing_vehicle).nil?\n @crossing_vehicle = (Hash(String, Tuple(Int32, Int64)).new do |hash, key|\n hash[key] = {0, 0_i64}\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L163"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"lux:Hash(String,Tuple(Float64,Int64))-instance-method","name":"lux","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L200"},"def":{"name":"lux","return_type":"Hash(String, Tuple(Float64, Int64))","visibility":"Public","body":"@lux"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L80"},"def":{"name":"on_load","visibility":"Public","body":"@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L85"},"def":{"name":"on_unload","visibility":"Public","body":""}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\nzone_lookup = Hash(String, Array(String)).new do |h, k|\n h[k] = [] of String\nend\nfloor_lookup = {} of String => FloorMapping\nfloor_mappings = (setting?(Array(FloorMapping), :floor_mappings)) || ([] of FloorMapping)\nfloor_mappings.each do |mapping|\n mapping.camera_serials.each do |serial|\n zone_lookup[mapping.level_id] << serial\n if mapping.building_id\n zone_lookup[mapping.building_id.not_nil!] << serial\n end\n floor_lookup[serial] = mapping\n end\nend\nself[:floor_lookup] = @floor_lookup = floor_lookup\nself[:zone_lookup] = zone_lookup\nexisting = @subs\n@subs = SUBS.to_a\n@line_crossing = line_crossing_combined = (setting?(Hash(String, Array(String)), :line_crossing_combined)) || ({} of String => Array(String))\nline_crossing_mapping = {} of String => String\nline_crossing_combined.each do |name, serials|\n serials.each do |serial|\n line_crossing_mapping[serial] = name\n end\nend\n@crossing_lookup = line_crossing_mapping\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif !(setting?(Bool, :disable_line_crossing_reset))\n time_zone = (setting?(String, :timezone)).presence || \"America/New_York\"\n tz = Time::Location.load(time_zone)\n schedule.cron(\"30 3 * * *\", tz) do\n crossing_people.each_key do |key|\n self[\"camera_mvx-#{key}_person\"] = 0\n end\n crossing_people.clear\n crossing_vehicle.each_key do |key|\n self[\"camera_mvx-#{key}_vehicle\"] = 0\n end\n crossing_vehicle.clear\n end\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n client.unsubscribe(sub)\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"people_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L179"},"def":{"name":"people_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @people_counts).nil?\n @people_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L168"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\n@mqtt.not_nil!.ping\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L173"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L254"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif id == \"lux\"\n (add_lux_values([] of Detail, mac)).first?\nelse\n if id.starts_with?(\"zone\")\n zone, count_type = id.split('_', 2)\n zone = zone[4..-1]\n sensor_type = SensorType::PeopleCount\n lookup = case count_type\n when \"people\"\n people_counts\n when \"vehicles\"\n sensor_type = SensorType::Counter\n vehicle_counts\n end\n if lookup\n if counts = lookup[mac]?\n if count = counts[zone]?\n to_sensor(sensor_type, mac, \"zone#{zone}_#{count_type}\", count[0], count[1])\n end\n end\n end\n else\n nil\n end\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L291"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n serial_filter = nil\n if zone_id && !@floor_lookup.empty?\n serial_filter = [] of String\n @floor_lookup.each do |serial, floor|\n if {floor.level_id, floor.building_id}.includes?(zone_id)\n serial_filter << serial\n end\n end\n end\n sensors = [] of Detail\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n case filter\n when nil\n add_lux_values(sensors, mac, serial_filter)\n add_people_counts(sensors, mac, serial_filter)\n add_vehicle_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .people_count?\n add_people_counts(sensors, mac, serial_filter)\n add_people_crossing(sensors, mac, serial_filter)\n when .counter?\n add_vehicle_counts(sensors, mac, serial_filter)\n add_vehicle_crossing(sensors, mac, serial_filter)\n when .illuminance?\n add_lux_values(sensors, mac, serial_filter)\n else\n sensors\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"vehicle_counts:Hash(String,Hash(String,Tuple(Float64,Int64)))-instance-method","name":"vehicle_counts","abstract":false,"location":{"filename":"src/cisco/meraki/mqtt.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/mqtt.cr#L185"},"def":{"name":"vehicle_counts","return_type":"Hash(String, Hash(String, Tuple(Float64, Int64)))","visibility":"Public","body":"if (__temp_1 = @vehicle_counts).nil?\n @vehicle_counts = (Hash(String, Hash(String, Tuple(Float64, Int64))).new do |hash, key|\n hash[key] = {} of String => Tuple(Float64, Int64)\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Cisco/Meraki/Network","path":"Cisco/Meraki/Network.html","kind":"class","full_name":"Cisco::Meraki::Network","name":"Network","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"enrollment_string:String|Nil-instance-method","name":"enrollment_string","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string","return_type":"String | ::Nil","visibility":"Public","body":"@enrollment_string"}},{"html_id":"enrollment_string=(enrollment_string:String|Nil)-instance-method","name":"enrollment_string=","abstract":false,"args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"args_string":"(enrollment_string : String | Nil)","args_html":"(enrollment_string : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L35"},"def":{"name":"enrollment_string=","args":[{"name":"enrollment_string","external_name":"enrollment_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"@enrollment_string = enrollment_string"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L19"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String|Nil-instance-method","name":"notes","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String|Nil)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"args_string":"(notes : String | Nil)","args_html":"(notes : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L36"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String | ::Nil"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"organization_id:String-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id","return_type":"String","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:String)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"args_string":"(organization_id : String)","args_html":"(organization_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L22"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"String"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"product_types:Array(String)-instance-method","name":"product_types","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types","return_type":"Array(String)","visibility":"Public","body":"@product_types"}},{"html_id":"product_types=(product_types:Array(String))-instance-method","name":"product_types=","abstract":false,"args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"args_string":"(product_types : Array(String))","args_html":"(product_types : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L27"},"def":{"name":"product_types=","args":[{"name":"product_types","external_name":"product_types","restriction":"Array(String)"}],"visibility":"Public","body":"@product_types = product_types"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L31"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_zone:String-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone","return_type":"String","visibility":"Public","body":"@time_zone"}},{"html_id":"time_zone=(time_zone:String)-instance-method","name":"time_zone=","abstract":false,"args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"args_string":"(time_zone : String)","args_html":"(time_zone : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L30"},"def":{"name":"time_zone=","args":[{"name":"time_zone","external_name":"time_zone","restriction":"String"}],"visibility":"Public","body":"@time_zone = time_zone"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/NetworkDevice","path":"Cisco/Meraki/NetworkDevice.html","kind":"class","full_name":"Cisco::Meraki::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L89"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L105"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"floor_plan_id:String|Nil-instance-method","name":"floor_plan_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_plan_id"}},{"html_id":"floor_plan_id=(floor_plan_id:String|Nil)-instance-method","name":"floor_plan_id=","abstract":false,"args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"args_string":"(floor_plan_id : String | Nil)","args_html":"(floor_plan_id : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L97"},"def":{"name":"floor_plan_id=","args":[{"name":"floor_plan_id","external_name":"floor_plan_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_plan_id = floor_plan_id"}},{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L99"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L100"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}},{"html_id":"location:DeviceLocation|Nil-instance-method","name":"location","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location","return_type":"DeviceLocation | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:DeviceLocation|Nil)-instance-method","name":"location=","doc":"Used for caching the location calculated for this device\nwhere an observation doesn't have location values but has a closest WAP","summary":"

Used for caching the location calculated for this device where an observation doesn't have location values but has a closest WAP

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"args_string":"(location : DeviceLocation | Nil)","args_html":"(location : DeviceLocation | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L94"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"DeviceLocation | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L101"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"model:String-instance-method","name":"model","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L104"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"name:String|Nil-instance-method","name":"name","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","doc":"This is useful for when we have to map meraki IDs to our zones","summary":"

This is useful for when we have to map meraki IDs to our zones

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L108"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"serial:String-instance-method","name":"serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial","return_type":"String","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:String)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"String"}],"args_string":"(serial : String)","args_html":"(serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L103"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"String"}],"visibility":"Public","body":"@serial = serial"}}]},{"html_id":"drivers/Cisco/Meraki/Observation","path":"Cisco/Meraki/Observation.html","kind":"class","full_name":"Cisco::Meraki::Observation","name":"Observation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L259"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L260"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_mac:String-instance-method","name":"client_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac","return_type":"String","visibility":"Public","body":"@client_mac"}},{"html_id":"client_mac=(client_mac:String)-instance-method","name":"client_mac=","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L263"},"def":{"name":"client_mac=","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"@client_mac = client_mac"}},{"html_id":"ipv4:String|Nil-instance-method","name":"ipv4","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4","return_type":"String | ::Nil","visibility":"Public","body":"@ipv4"}},{"html_id":"ipv4=(ipv4:String|Nil)-instance-method","name":"ipv4=","abstract":false,"args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"args_string":"(ipv4 : String | Nil)","args_html":"(ipv4 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L266"},"def":{"name":"ipv4=","args":[{"name":"ipv4","external_name":"ipv4","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv4 = ipv4"}},{"html_id":"ipv6:String|Nil-instance-method","name":"ipv6","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6","return_type":"String | ::Nil","visibility":"Public","body":"@ipv6"}},{"html_id":"ipv6=(ipv6:String|Nil)-instance-method","name":"ipv6=","abstract":false,"args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"args_string":"(ipv6 : String | Nil)","args_html":"(ipv6 : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L267"},"def":{"name":"ipv6=","args":[{"name":"ipv6","external_name":"ipv6","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ipv6 = ipv6"}},{"html_id":"latest_record:LatestRecord-instance-method","name":"latest_record","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record","return_type":"LatestRecord","visibility":"Public","body":"@latest_record"}},{"html_id":"latest_record=(latest_record:LatestRecord)-instance-method","name":"latest_record=","abstract":false,"args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"args_string":"(latest_record : LatestRecord)","args_html":"(latest_record : LatestRecord)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L272"},"def":{"name":"latest_record=","args":[{"name":"latest_record","external_name":"latest_record","restriction":"LatestRecord"}],"visibility":"Public","body":"@latest_record = latest_record"}},{"html_id":"locations:Array(DeviceLocation)-instance-method","name":"locations","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations","return_type":"Array(DeviceLocation)","visibility":"Public","body":"@locations"}},{"html_id":"locations=(locations:Array(DeviceLocation))-instance-method","name":"locations=","abstract":false,"args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"args_string":"(locations : Array(DeviceLocation))","args_html":"(locations : Array(DeviceLocation))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L273"},"def":{"name":"locations=","args":[{"name":"locations","external_name":"locations","restriction":"Array(DeviceLocation)"}],"visibility":"Public","body":"@locations = locations"}},{"html_id":"manufacturer:String|Nil-instance-method","name":"manufacturer","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer","return_type":"String | ::Nil","visibility":"Public","body":"@manufacturer"}},{"html_id":"manufacturer=(manufacturer:String|Nil)-instance-method","name":"manufacturer=","abstract":false,"args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"args_string":"(manufacturer : String | Nil)","args_html":"(manufacturer : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L265"},"def":{"name":"manufacturer=","args":[{"name":"manufacturer","external_name":"manufacturer","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacturer = manufacturer"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L269"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"ssid:String|Nil-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid","return_type":"String | ::Nil","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String|Nil)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"args_string":"(ssid : String | Nil)","args_html":"(ssid : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L268"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ssid = ssid"}}]},{"html_id":"drivers/Cisco/Meraki/Organization","path":"Cisco/Meraki/Organization.html","kind":"class","full_name":"Cisco::Meraki::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"api:NamedTuple(enabled:Bool)-instance-method","name":"api","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api","return_type":"NamedTuple(enabled: Bool)","visibility":"Public","body":"@api"}},{"html_id":"api=(api:NamedTuple(enabled:Bool))-instance-method","name":"api=","abstract":false,"args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"args_string":"(api : NamedTuple(enabled: Bool))","args_html":"(api : NamedTuple(enabled: Bool))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L13"},"def":{"name":"api=","args":[{"name":"api","external_name":"api","restriction":"NamedTuple(enabled: Bool)"}],"visibility":"Public","body":"@api = api"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L12"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Meraki/PortState","path":"Cisco/Meraki/PortState.html","kind":"enum","full_name":"Cisco::Meraki::PortState","name":"PortState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L400"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Connected","name":"Connected","value":"0"},{"id":"Disconnected","name":"Disconnected","value":"1"},{"id":"Disabled","name":"Disabled","value":"2"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"instance_methods":[{"html_id":"connected?-instance-method","name":"connected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L401"},"def":{"name":"connected?","visibility":"Public","body":"self == Connected"}},{"html_id":"disabled?-instance-method","name":"disabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L403"},"def":{"name":"disabled?","visibility":"Public","body":"self == Disabled"}},{"html_id":"disconnected?-instance-method","name":"disconnected?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L402"},"def":{"name":"disconnected?","visibility":"Public","body":"self == Disconnected"}}]},{"html_id":"drivers/Cisco/Meraki/PortStatusResponse","path":"Cisco/Meraki/PortStatusResponse.html","kind":"class","full_name":"Cisco::Meraki::PortStatusResponse","name":"PortStatusResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_id:String-instance-method","name":"desk_id","abstract":false,"def":{"name":"desk_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @desk_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#desk_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"desk_id=(desk_id:String)-instance-method","name":"desk_id=","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String)","args_html":"(desk_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":428,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L428"},"def":{"name":"desk_id=","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"visibility":"Public","body":"@desk_id = desk_id"}},{"html_id":"desk_id?:String|Nil-instance-method","name":"desk_id?","abstract":false,"def":{"name":"desk_id?","return_type":"String | ::Nil","visibility":"Public","body":"@desk_id"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L415"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_uplink?:Bool-instance-method","name":"is_uplink?","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L419"},"def":{"name":"is_uplink?","return_type":"Bool","visibility":"Public","body":"@is_uplink"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#level_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"level_id=(level_id:String)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String)","args_html":"(level_id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":431,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L431"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_id?:String|Nil-instance-method","name":"level_id?","abstract":false,"def":{"name":"level_id?","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"mac:String|Nil-instance-method","name":"mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac","return_type":"String | ::Nil","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String|Nil)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"args_string":"(mac : String | Nil)","args_html":"(mac : String | Nil)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L425"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"port:Int32-instance-method","name":"port","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L413"},"def":{"name":"port","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @port).nil?\n @port = (port_id.to_i)\nelse\n __temp_1\nend"}},{"html_id":"port_id:String-instance-method","name":"port_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L410"},"def":{"name":"port_id","return_type":"String","visibility":"Public","body":"@port_id"}},{"html_id":"status:PortState-instance-method","name":"status","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L416"},"def":{"name":"status","return_type":"PortState","visibility":"Public","body":"@status"}},{"html_id":"switch_serial:String-instance-method","name":"switch_serial","abstract":false,"def":{"name":"switch_serial","return_type":"String","visibility":"Public","body":"if (__temp_1 = @switch_serial).nil?\n ::raise(::NilAssertionError.new(\"Cisco::Meraki::PortStatusResponse#switch_serial cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"switch_serial=(switch_serial:String)-instance-method","name":"switch_serial=","abstract":false,"args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"args_string":"(switch_serial : String)","args_html":"(switch_serial : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L422"},"def":{"name":"switch_serial=","args":[{"name":"switch_serial","external_name":"switch_serial","restriction":"String"}],"visibility":"Public","body":"@switch_serial = switch_serial"}},{"html_id":"switch_serial?:String|Nil-instance-method","name":"switch_serial?","abstract":false,"def":{"name":"switch_serial?","return_type":"String | ::Nil","visibility":"Public","body":"@switch_serial"}}]},{"html_id":"drivers/Cisco/Meraki/RSSI","path":"Cisco/Meraki/RSSI.html","kind":"class","full_name":"Cisco::Meraki::RSSI","name":"RSSI","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L154"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L155"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_point_mac:String-instance-method","name":"access_point_mac","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac","return_type":"String","visibility":"Public","body":"@access_point_mac"}},{"html_id":"access_point_mac=(access_point_mac:String)-instance-method","name":"access_point_mac=","abstract":false,"args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"args_string":"(access_point_mac : String)","args_html":"(access_point_mac : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L158"},"def":{"name":"access_point_mac=","args":[{"name":"access_point_mac","external_name":"access_point_mac","restriction":"String"}],"visibility":"Public","body":"@access_point_mac = access_point_mac"}},{"html_id":"rssi:Int32-instance-method","name":"rssi","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi","return_type":"Int32","visibility":"Public","body":"@rssi"}},{"html_id":"rssi=(rssi:Int32)-instance-method","name":"rssi=","abstract":false,"args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"args_string":"(rssi : Int32)","args_html":"(rssi : Int32)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L159"},"def":{"name":"rssi=","args":[{"name":"rssi","external_name":"rssi","restriction":"Int32"}],"visibility":"Public","body":"@rssi = rssi"}}]},{"html_id":"drivers/Cisco/Meraki/WebhookAlert","path":"Cisco/Meraki/WebhookAlert.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alert_data:PortData-instance-method","name":"alert_data","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L387"},"def":{"name":"alert_data","return_type":"PortData","visibility":"Public","body":"@alert_data"}},{"html_id":"alert_type:AlertType-instance-method","name":"alert_type","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":384,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L384"},"def":{"name":"alert_type","return_type":"AlertType","visibility":"Public","body":"@alert_type"}},{"html_id":"device_serial:String-instance-method","name":"device_serial","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L390"},"def":{"name":"device_serial","return_type":"String","visibility":"Public","body":"@device_serial"}},{"html_id":"network_id:String-instance-method","name":"network_id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":381,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L381"},"def":{"name":"network_id","return_type":"String","visibility":"Public","body":"@network_id"}},{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L395"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"alert_data.port_num"}},{"html_id":"shared_secret:String-instance-method","name":"shared_secret","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L393"},"def":{"name":"shared_secret","return_type":"String","visibility":"Public","body":"@shared_secret"}}],"types":[{"html_id":"drivers/Cisco/Meraki/WebhookAlert/PortData","path":"Cisco/Meraki/WebhookAlert/PortData.html","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert::PortData","name":"PortData","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L373"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki/WebhookAlert","kind":"struct","full_name":"Cisco::Meraki::WebhookAlert","name":"WebhookAlert"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L374"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"port_num:Int32-instance-method","name":"port_num","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L377"},"def":{"name":"port_num","return_type":"Int32","visibility":"Public","body":"@port_num"}}]}]},{"html_id":"drivers/Cisco/Meraki/ZoneDetails","path":"Cisco/Meraki/ZoneDetails.html","kind":"struct","full_name":"Cisco::Meraki::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/meraki/scanning_api.cr","line_number":352,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L352"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Meraki","kind":"module","full_name":"Cisco::Meraki","name":"Meraki"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L353"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L355"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L356"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/cisco/meraki/scanning_api.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/meraki/scanning_api.cr#L357"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Cisco/RoomKit","path":"Cisco/RoomKit.html","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Cameras","kind":"module","full_name":"Cisco::CollaborationEndpoint::Cameras","name":"Cameras"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Powerable","kind":"module","full_name":"Cisco::CollaborationEndpoint::Powerable","name":"Powerable"},{"html_id":"drivers/Cisco/CollaborationEndpoint/Presentation","kind":"module","full_name":"Cisco::CollaborationEndpoint::Presentation","name":"Presentation"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L45"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}],"instance_methods":[{"html_id":"autofocus_diagnostics_start(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_start","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L248"},"def":{"name":"autofocus_diagnostics_start","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Start\", camera_id: camera_id)\n"}},{"html_id":"autofocus_diagnostics_stop(camera_id:Int32)-instance-method","name":"autofocus_diagnostics_stop","abstract":false,"args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"args_string":"(camera_id : Int32)","args_html":"(camera_id : Int32)","location":{"filename":"src/cisco/room_kit.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L252"},"def":{"name":"autofocus_diagnostics_stop","args":[{"name":"camera_id","external_name":"camera_id","restriction":"Int32"}],"visibility":"Public","body":"if (1..1).includes?(camera_id)\nelse\n raise(ArgumentError.new(\"camera_id must be within #{1..1}, was #{camera_id}\"))\nend\nxcommand(\"Cameras AutoFocus Diagnostics Stop\", camera_id: camera_id)\n"}},{"html_id":"bookings(days:Int32|Nil=nil,day_offset:Int32|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(days : Int32 | Nil = nil, day_offset : Int32 | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L163"},"def":{"name":"bookings","args":[{"name":"days","default_value":"nil","external_name":"days","restriction":"Int32 | ::Nil"},{"name":"day_offset","default_value":"nil","external_name":"day_offset","restriction":"Int32 | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if days\n if (1..365).includes?(days)\n else\n raise(ArgumentError.new(\"\\\"days\\\" must be within #{1..365}, was #{days}\"))\n end\nend\nif day_offset\n if (0..365).includes?(day_offset)\n else\n raise(ArgumentError.new(\"\\\"day_offset\\\" must be within #{0..365}, was #{day_offset}\"))\n end\nend\nxcommand(\"Bookings List\", days: days, day_offset: day_offset, limit: limit, offset: offset)\n"}},{"html_id":"call_accept(call_id:Int32|Nil=nil)-instance-method","name":"call_accept","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L169"},"def":{"name":"call_accept","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Accept\", call_id: call_id)"}},{"html_id":"call_place_on_hold(call_id:Int32|Nil=nil)-instance-method","name":"call_place_on_hold","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L172"},"def":{"name":"call_place_on_hold","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Hold\", call_id: call_id)"}},{"html_id":"call_reject(call_id:Int32|Nil=nil)-instance-method","name":"call_reject","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L170"},"def":{"name":"call_reject","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Reject\", call_id: call_id)"}},{"html_id":"call_resume(call_id:Int32|Nil=nil)-instance-method","name":"call_resume","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L173"},"def":{"name":"call_resume","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Resume\", call_id: call_id)"}},{"html_id":"camera_select(connector_id:Int32|Nil=nil,layout:VideoLayout|Nil=nil,source_id:Int32|Nil=nil)-instance-method","name":"camera_select","abstract":false,"args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"args_string":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","args_html":"(connector_id : Int32 | Nil = nil, layout : VideoLayout | Nil = nil, source_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L202"},"def":{"name":"camera_select","args":[{"name":"connector_id","default_value":"nil","external_name":"connector_id","restriction":"Int32 | ::Nil"},{"name":"layout","default_value":"nil","external_name":"layout","restriction":"VideoLayout | ::Nil"},{"name":"source_id","default_value":"nil","external_name":"source_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if connector_id\n if (1..3).includes?(connector_id)\n else\n raise(ArgumentError.new(\"\\\"connector_id\\\" must be within #{1..3}, was #{connector_id}\"))\n end\nend\nif source_id\n if (1..3).includes?(source_id)\n else\n raise(ArgumentError.new(\"\\\"source_id\\\" must be within #{1..3}, was #{source_id}\"))\n end\nend\nxcommand(\"Video Input SetMainVideoSource\", connector_id: connector_id, layout: layout, source_id: source_id)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L60"},"def":{"name":"connected","visibility":"Public","body":"super()\nschedule.in(40.seconds) do\n if self[\"calls\"]?.nil?\n disconnect\n end\nend\n"}},{"html_id":"dial(number:String,protocol:DialProtocol|Nil=nil,call_rate:Int32|Nil=nil,call_type:CallType|Nil=nil)-instance-method","name":"dial","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"args_string":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","args_html":"(number : String, protocol : DialProtocol | Nil = nil, call_rate : Int32 | Nil = nil, call_type : CallType | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L191"},"def":{"name":"dial","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"DialProtocol | ::Nil"},{"name":"call_rate","default_value":"nil","external_name":"call_rate","restriction":"Int32 | ::Nil"},{"name":"call_type","default_value":"nil","external_name":"call_type","restriction":"CallType | ::Nil"}],"visibility":"Public","body":"if call_rate\n if (64..6000).includes?(call_rate)\n else\n raise(ArgumentError.new(\"\\\"call_rate\\\" must be within #{64..6000}, was #{call_rate}\"))\n end\nend\nxcommand(\"Dial\", number: number, protocol: protocol, call_rate: call_rate, call_type: call_type)\n"}},{"html_id":"dtmf_send(d_t_m_f_string:String,call_id:Int32|Nil=nil)-instance-method","name":"dtmf_send","abstract":false,"args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","args_html":"(d_t_m_f_string : String, call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L175"},"def":{"name":"dtmf_send","args":[{"name":"d_t_m_f_string","external_name":"d_t_m_f_string","restriction":"String"},{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"if call_id\n if (0..65534).includes?(call_id)\n else\n raise(ArgumentError.new(\"\\\"call_id\\\" must be within #{0..65534}, was #{call_id}\"))\n end\nend\nxcommand(\"Call DTMFSend\", d_t_m_f_string: d_t_m_f_string, call_id: call_id)\n"}},{"html_id":"hangup(call_id:Int32|Nil=nil)-instance-method","name":"hangup","abstract":false,"args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"args_string":"(call_id : Int32 | Nil = nil)","args_html":"(call_id : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L171"},"def":{"name":"hangup","args":[{"name":"call_id","default_value":"nil","external_name":"call_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Call Disconnect\", call_id: call_id)"}},{"html_id":"mic_mute(state:Bool=true)-instance-method","name":"mic_mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L298"},"def":{"name":"mic_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? mic_mute_on : mic_mute_off"}},{"html_id":"mic_mute_off-instance-method","name":"mic_mute_off","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L121"},"def":{"name":"mic_mute_off","visibility":"Public","body":"xcommand(\"Audio Microphones Unmute\")"}},{"html_id":"mic_mute_on-instance-method","name":"mic_mute_on","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L120"},"def":{"name":"mic_mute_on","visibility":"Public","body":"xcommand(\"Audio Microphones Mute\")"}},{"html_id":"mic_mute_toggle-instance-method","name":"mic_mute_toggle","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L122"},"def":{"name":"mic_mute_toggle","visibility":"Public","body":"xcommand(\"Audio Microphones ToggleMute\")"}},{"html_id":"phonebook_search(search_string:String,phonebook_type:PhonebookType|Nil=nil,limit:Int32|Nil=nil,offset:Int32|Nil=nil)-instance-method","name":"phonebook_search","abstract":false,"args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"args_string":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","args_html":"(search_string : String, phonebook_type : PhonebookType | Nil = nil, limit : Int32 | Nil = nil, offset : Int32 | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L276"},"def":{"name":"phonebook_search","args":[{"name":"search_string","external_name":"search_string","restriction":"String"},{"name":"phonebook_type","default_value":"nil","external_name":"phonebook_type","restriction":"PhonebookType | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"offset","default_value":"nil","external_name":"offset","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"xcommand(\"Phonebook Search\", search_string: search_string, phonebook_type: phonebook_type, limit: limit, offset: offset)"}},{"html_id":"play_sound(sound:Sound,loop:Toogle|Nil=nil)-instance-method","name":"play_sound","abstract":false,"args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"args_string":"(sound : Sound, loop : Toogle | Nil = nil)","args_html":"(sound : Sound, loop : Toogle | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L158"},"def":{"name":"play_sound","args":[{"name":"sound","external_name":"sound","restriction":"Sound"},{"name":"loop","default_value":"nil","external_name":"loop","restriction":"Toogle | ::Nil"}],"visibility":"Public","body":"xcommand(\"Audio Sound Play\", sound: sound, loop: loop)"}},{"html_id":"presentation_mode(value:PresentationMode)-instance-method","name":"presentation_mode","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"args_string":"(value : PresentationMode)","args_html":"(value : PresentationMode)","location":{"filename":"src/cisco/room_kit.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L302"},"def":{"name":"presentation_mode","args":[{"name":"value","external_name":"value","restriction":"PresentationMode"}],"visibility":"Public","body":"case value\nin .remote?\n presentation_start(sending_mode: :LocalRemote)\nin .local?\n @presentation_mode = PresentationMode::Local\n presentation_start(sending_mode: :LocalOnly)\nin .none?\n @presentation_mode = PresentationMode::None\n presentation_stop\nend"}},{"html_id":"reboot(action:PowerOff|Nil=nil)-instance-method","name":"reboot","abstract":false,"args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"args_string":"(action : PowerOff | Nil = nil)","args_html":"(action : PowerOff | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L288"},"def":{"name":"reboot","args":[{"name":"action","default_value":"nil","external_name":"action","restriction":"PowerOff | ::Nil"}],"visibility":"Public","body":"xcommand(\"SystemUnit Boot\", action: action)"}},{"html_id":"selfview(mode:Toogle|Nil=nil,full_screen_mode:Toogle|Nil=nil,p_i_p_position:PiPPosition|Nil=nil,on_monitor_role:MonitorRole|Nil=nil)-instance-method","name":"selfview","abstract":false,"args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"args_string":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","args_html":"(mode : Toogle | Nil = nil, full_screen_mode : Toogle | Nil = nil, p_i_p_position : PiPPosition | Nil = nil, on_monitor_role : MonitorRole | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L241"},"def":{"name":"selfview","args":[{"name":"mode","default_value":"nil","external_name":"mode","restriction":"Toogle | ::Nil"},{"name":"full_screen_mode","default_value":"nil","external_name":"full_screen_mode","restriction":"Toogle | ::Nil"},{"name":"p_i_p_position","default_value":"nil","external_name":"p_i_p_position","restriction":"PiPPosition | ::Nil"},{"name":"on_monitor_role","default_value":"nil","external_name":"on_monitor_role","restriction":"MonitorRole | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Selfview Set\", mode: mode, full_screen_mode: full_screen_mode, p_i_p_position: p_i_p_position, on_monitor_role: on_monitor_role)"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/room_kit.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L340"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == config.ip\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/room_kit.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L322"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"show_camera_pip(visible:Bool)-instance-method","name":"show_camera_pip","abstract":false,"args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"args_string":"(visible : Bool)","args_html":"(visible : Bool)","location":{"filename":"src/cisco/room_kit.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L293"},"def":{"name":"show_camera_pip","args":[{"name":"visible","external_name":"visible","restriction":"Bool"}],"visibility":"Public","body":"mode = visible ? Toogle::On : Toogle::Off\nselfview(mode: mode)\n"}},{"html_id":"speaker_track(state:Bool=true)-instance-method","name":"speaker_track","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/cisco/room_kit.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L267"},"def":{"name":"speaker_track","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state ? speaker_track_activate : speaker_track_deactivate"}},{"html_id":"speaker_track_activate-instance-method","name":"speaker_track_activate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L262"},"def":{"name":"speaker_track_activate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Activate\")"}},{"html_id":"speaker_track_deactivate-instance-method","name":"speaker_track_deactivate","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L265"},"def":{"name":"speaker_track_deactivate","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Deactivate\")"}},{"html_id":"speaker_track_diagnostics_start-instance-method","name":"speaker_track_diagnostics_start","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L256"},"def":{"name":"speaker_track_diagnostics_start","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Start\")"}},{"html_id":"speaker_track_diagnostics_stop-instance-method","name":"speaker_track_diagnostics_stop","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L259"},"def":{"name":"speaker_track_diagnostics_stop","visibility":"Public","body":"xcommand(\"Cameras SpeakerTrack Diagnostics Stop\")"}},{"html_id":"stop_sound-instance-method","name":"stop_sound","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L161"},"def":{"name":"stop_sound","visibility":"Public","body":"xcommand(\"Audio Sound Stop\")"}},{"html_id":"video_layout(layout_family:LayoutFamily,target:LayoutTarget|Nil=nil)-instance-method","name":"video_layout","abstract":false,"args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"args_string":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","args_html":"(layout_family : LayoutFamily, target : LayoutTarget | Nil = nil)","location":{"filename":"src/cisco/room_kit.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L220"},"def":{"name":"video_layout","args":[{"name":"layout_family","external_name":"layout_family","restriction":"LayoutFamily"},{"name":"target","default_value":"nil","external_name":"target","restriction":"LayoutTarget | ::Nil"}],"visibility":"Public","body":"xcommand(\"Video Layout LayoutFamily Set\", layout_family: layout_family, target: target)"}},{"html_id":"webview_clear-instance-method","name":"webview_clear","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L285"},"def":{"name":"webview_clear","visibility":"Public","body":"xcommand(\"UserInterface WebView Clear\")"}},{"html_id":"webview_display(url:String)-instance-method","name":"webview_display","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/room_kit.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L282"},"def":{"name":"webview_display","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"xcommand(\"UserInterface WebView Display\", url: url)"}}],"types":[{"html_id":"drivers/Cisco/RoomKit/CallType","path":"Cisco/RoomKit/CallType.html","kind":"enum","full_name":"Cisco::RoomKit::CallType","name":"CallType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L187"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L188"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Cisco/RoomKit/DialProtocol","path":"Cisco/RoomKit/DialProtocol.html","kind":"enum","full_name":"Cisco::RoomKit::DialProtocol","name":"DialProtocol","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L179"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"H320","name":"H320","value":"0"},{"id":"H323","name":"H323","value":"1"},{"id":"Sip","name":"Sip","value":"2"},{"id":"Spark","name":"Spark","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"h320?-instance-method","name":"h320?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L180"},"def":{"name":"h320?","visibility":"Public","body":"self == H320"}},{"html_id":"h323?-instance-method","name":"h323?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L181"},"def":{"name":"h323?","visibility":"Public","body":"self == H323"}},{"html_id":"sip?-instance-method","name":"sip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L182"},"def":{"name":"sip?","visibility":"Public","body":"self == Sip"}},{"html_id":"spark?-instance-method","name":"spark?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L183"},"def":{"name":"spark?","visibility":"Public","body":"self == Spark"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutFamily","path":"Cisco/RoomKit/LayoutFamily.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutFamily","name":"LayoutFamily","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L207"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"Equal","name":"Equal","value":"1"},{"id":"Overlay","name":"Overlay","value":"2"},{"id":"Prominent","name":"Prominent","value":"3"},{"id":"Single","name":"Single","value":"4"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L208"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L209"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L210"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"prominent?-instance-method","name":"prominent?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L211"},"def":{"name":"prominent?","visibility":"Public","body":"self == Prominent"}},{"html_id":"single?-instance-method","name":"single?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L212"},"def":{"name":"single?","visibility":"Public","body":"self == Single"}}]},{"html_id":"drivers/Cisco/RoomKit/LayoutTarget","path":"Cisco/RoomKit/LayoutTarget.html","kind":"enum","full_name":"Cisco::RoomKit::LayoutTarget","name":"LayoutTarget","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L215"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Local","name":"Local","value":"0"},{"id":"Remote","name":"Remote","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L216"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L217"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/MonitorRole","path":"Cisco/RoomKit/MonitorRole.html","kind":"enum","full_name":"Cisco::RoomKit::MonitorRole","name":"MonitorRole","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L234"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"First","name":"First","value":"0"},{"id":"Second","name":"Second","value":"1"},{"id":"Third","name":"Third","value":"2"},{"id":"Fourth","name":"Fourth","value":"3"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"first?-instance-method","name":"first?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L235"},"def":{"name":"first?","visibility":"Public","body":"self == First"}},{"html_id":"fourth?-instance-method","name":"fourth?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L238"},"def":{"name":"fourth?","visibility":"Public","body":"self == Fourth"}},{"html_id":"second?-instance-method","name":"second?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L236"},"def":{"name":"second?","visibility":"Public","body":"self == Second"}},{"html_id":"third?-instance-method","name":"third?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L237"},"def":{"name":"third?","visibility":"Public","body":"self == Third"}}]},{"html_id":"drivers/Cisco/RoomKit/PhonebookType","path":"Cisco/RoomKit/PhonebookType.html","kind":"enum","full_name":"Cisco::RoomKit::PhonebookType","name":"PhonebookType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L271"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Corporate","name":"Corporate","value":"0"},{"id":"Local","name":"Local","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"corporate?-instance-method","name":"corporate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L272"},"def":{"name":"corporate?","visibility":"Public","body":"self == Corporate"}},{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L273"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}}]},{"html_id":"drivers/Cisco/RoomKit/PiPPosition","path":"Cisco/RoomKit/PiPPosition.html","kind":"enum","full_name":"Cisco::RoomKit::PiPPosition","name":"PiPPosition","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L224"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CenterLeft","name":"CenterLeft","value":"0"},{"id":"CenterRight","name":"CenterRight","value":"1"},{"id":"LowerLeft","name":"LowerLeft","value":"2"},{"id":"LowerRight","name":"LowerRight","value":"3"},{"id":"UpperCenter","name":"UpperCenter","value":"4"},{"id":"UpperLeft","name":"UpperLeft","value":"5"},{"id":"UpperRight","name":"UpperRight","value":"6"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"center_left?-instance-method","name":"center_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L225"},"def":{"name":"center_left?","visibility":"Public","body":"self == CenterLeft"}},{"html_id":"center_right?-instance-method","name":"center_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L226"},"def":{"name":"center_right?","visibility":"Public","body":"self == CenterRight"}},{"html_id":"lower_left?-instance-method","name":"lower_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L227"},"def":{"name":"lower_left?","visibility":"Public","body":"self == LowerLeft"}},{"html_id":"lower_right?-instance-method","name":"lower_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L228"},"def":{"name":"lower_right?","visibility":"Public","body":"self == LowerRight"}},{"html_id":"upper_center?-instance-method","name":"upper_center?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L229"},"def":{"name":"upper_center?","visibility":"Public","body":"self == UpperCenter"}},{"html_id":"upper_left?-instance-method","name":"upper_left?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L230"},"def":{"name":"upper_left?","visibility":"Public","body":"self == UpperLeft"}},{"html_id":"upper_right?-instance-method","name":"upper_right?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L231"},"def":{"name":"upper_right?","visibility":"Public","body":"self == UpperRight"}}]},{"html_id":"drivers/Cisco/RoomKit/PresentationMode","path":"Cisco/RoomKit/PresentationMode.html","kind":"enum","full_name":"Cisco::RoomKit::PresentationMode","name":"PresentationMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L51"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Local","name":"Local","value":"1"},{"id":"Remote","name":"Remote","value":"2"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"local?-instance-method","name":"local?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L53"},"def":{"name":"local?","visibility":"Public","body":"self == Local"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L52"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"remote?-instance-method","name":"remote?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L54"},"def":{"name":"remote?","visibility":"Public","body":"self == Remote"}}]},{"html_id":"drivers/Cisco/RoomKit/Sound","path":"Cisco/RoomKit/Sound.html","kind":"enum","full_name":"Cisco::RoomKit::Sound","name":"Sound","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L133"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Alert","name":"Alert","value":"0"},{"id":"Bump","name":"Bump","value":"1"},{"id":"Busy","name":"Busy","value":"2"},{"id":"CallDisconnect","name":"CallDisconnect","value":"3"},{"id":"CallInitiate","name":"CallInitiate","value":"4"},{"id":"CallWaiting","name":"CallWaiting","value":"5"},{"id":"Dial","name":"Dial","value":"6"},{"id":"KeyInput","name":"KeyInput","value":"7"},{"id":"KeyInputDelete","name":"KeyInputDelete","value":"8"},{"id":"KeyTone","name":"KeyTone","value":"9"},{"id":"Nav","name":"Nav","value":"10"},{"id":"NavBack","name":"NavBack","value":"11"},{"id":"Notification","name":"Notification","value":"12"},{"id":"OK","name":"OK","value":"13"},{"id":"PresentationConnect","name":"PresentationConnect","value":"14"},{"id":"Ringing","name":"Ringing","value":"15"},{"id":"SignIn","name":"SignIn","value":"16"},{"id":"SpecialInfo","name":"SpecialInfo","value":"17"},{"id":"TelephoneCall","name":"TelephoneCall","value":"18"},{"id":"VideoCall","name":"VideoCall","value":"19"},{"id":"VolumeAdjust","name":"VolumeAdjust","value":"20"},{"id":"WakeUp","name":"WakeUp","value":"21"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"alert?-instance-method","name":"alert?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L134"},"def":{"name":"alert?","visibility":"Public","body":"self == Alert"}},{"html_id":"bump?-instance-method","name":"bump?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L135"},"def":{"name":"bump?","visibility":"Public","body":"self == Bump"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L136"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"call_disconnect?-instance-method","name":"call_disconnect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L137"},"def":{"name":"call_disconnect?","visibility":"Public","body":"self == CallDisconnect"}},{"html_id":"call_initiate?-instance-method","name":"call_initiate?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L138"},"def":{"name":"call_initiate?","visibility":"Public","body":"self == CallInitiate"}},{"html_id":"call_waiting?-instance-method","name":"call_waiting?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L139"},"def":{"name":"call_waiting?","visibility":"Public","body":"self == CallWaiting"}},{"html_id":"dial?-instance-method","name":"dial?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L140"},"def":{"name":"dial?","visibility":"Public","body":"self == Dial"}},{"html_id":"key_input?-instance-method","name":"key_input?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L141"},"def":{"name":"key_input?","visibility":"Public","body":"self == KeyInput"}},{"html_id":"key_input_delete?-instance-method","name":"key_input_delete?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L142"},"def":{"name":"key_input_delete?","visibility":"Public","body":"self == KeyInputDelete"}},{"html_id":"key_tone?-instance-method","name":"key_tone?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L143"},"def":{"name":"key_tone?","visibility":"Public","body":"self == KeyTone"}},{"html_id":"nav?-instance-method","name":"nav?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L144"},"def":{"name":"nav?","visibility":"Public","body":"self == Nav"}},{"html_id":"nav_back?-instance-method","name":"nav_back?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L145"},"def":{"name":"nav_back?","visibility":"Public","body":"self == NavBack"}},{"html_id":"notification?-instance-method","name":"notification?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L146"},"def":{"name":"notification?","visibility":"Public","body":"self == Notification"}},{"html_id":"ok?-instance-method","name":"ok?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L147"},"def":{"name":"ok?","visibility":"Public","body":"self == OK"}},{"html_id":"presentation_connect?-instance-method","name":"presentation_connect?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L148"},"def":{"name":"presentation_connect?","visibility":"Public","body":"self == PresentationConnect"}},{"html_id":"ringing?-instance-method","name":"ringing?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L149"},"def":{"name":"ringing?","visibility":"Public","body":"self == Ringing"}},{"html_id":"sign_in?-instance-method","name":"sign_in?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L150"},"def":{"name":"sign_in?","visibility":"Public","body":"self == SignIn"}},{"html_id":"special_info?-instance-method","name":"special_info?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L151"},"def":{"name":"special_info?","visibility":"Public","body":"self == SpecialInfo"}},{"html_id":"telephone_call?-instance-method","name":"telephone_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L152"},"def":{"name":"telephone_call?","visibility":"Public","body":"self == TelephoneCall"}},{"html_id":"video_call?-instance-method","name":"video_call?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L153"},"def":{"name":"video_call?","visibility":"Public","body":"self == VideoCall"}},{"html_id":"volume_adjust?-instance-method","name":"volume_adjust?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L154"},"def":{"name":"volume_adjust?","visibility":"Public","body":"self == VolumeAdjust"}},{"html_id":"wake_up?-instance-method","name":"wake_up?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L155"},"def":{"name":"wake_up?","visibility":"Public","body":"self == WakeUp"}}]},{"html_id":"drivers/Cisco/RoomKit/Toogle","path":"Cisco/RoomKit/Toogle.html","kind":"enum","full_name":"Cisco::RoomKit::Toogle","name":"Toogle","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L130"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L129"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Cisco/RoomKit/VideoLayout","path":"Cisco/RoomKit/VideoLayout.html","kind":"enum","full_name":"Cisco::RoomKit::VideoLayout","name":"VideoLayout","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_kit.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L197"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"PIP","name":"PIP","value":"1"}],"namespace":{"html_id":"drivers/Cisco/RoomKit","kind":"class","full_name":"Cisco::RoomKit","name":"RoomKit"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L198"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/cisco/room_kit.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_kit.cr#L199"},"def":{"name":"pip?","visibility":"Public","body":"self == PIP"}}]}]},{"html_id":"drivers/Cisco/RoomOS","path":"Cisco/RoomOS.html","kind":"class","full_name":"Cisco::RoomOS","name":"RoomOS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"},{"html_id":"drivers/Cisco/CollaborationEndpoint/XAPI","kind":"module","full_name":"Cisco::CollaborationEndpoint::XAPI","name":"XAPI"},{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/room_os.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_os.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Cisco/CollaborationEndpoint","kind":"module","full_name":"Cisco::CollaborationEndpoint","name":"CollaborationEndpoint"},{"html_id":"drivers/Cisco/CollaborationEndpoint/UIExtensions","kind":"module","full_name":"Cisco::CollaborationEndpoint::UIExtensions","name":"UIExtensions"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}},{"html_id":"map_status(**opts)-class-method","name":"map_status","abstract":false,"location":{"filename":"src/cisco/room_os.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/room_os.cr#L38"},"def":{"name":"map_status","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"@@status_mappings.merge!(opts.to_h)"}}]},{"html_id":"drivers/Cisco/SpacesRoom","path":"Cisco/SpacesRoom.html","kind":"class","full_name":"Cisco::SpacesRoom","name":"SpacesRoom","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/spaces_room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality, SensorType::SoundPressure}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L19"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :cisco_spaces_system)).presence || config.control_system.not_nil!.id\n@module_name = (setting?(String, :cisco_spaces_module)).presence || \"Cisco_Spaces\"\n@room_id = setting(String, :space_room_id)\n"}},{"html_id":"room_id:String-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L20"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/cisco/spaces_room.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L52"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == @room_id\nelse\n return nil\nend\n::Union(Interface::Sensor::Detail, ::Nil).from_json((cisco_spaces.sensors(@room_id, id)).get.to_json)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/cisco/spaces_room.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L39"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @room_id)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nArray(Interface::Sensor::Detail).from_json((cisco_spaces.sensors(type, @room_id, zone_id)).get.to_json)\n"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/cisco/spaces_room.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/spaces_room.cr#L18"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Cisco/Switch","path":"Cisco/Switch.html","kind":"module","full_name":"Cisco::Switch","name":"Switch","abstract":false,"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Switch/SnoopingCatalyst","path":"Cisco/Switch/SnoopingCatalyst.html","kind":"class","full_name":"Cisco::Switch::SnoopingCatalyst","name":"SnoopingCatalyst","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Switch","kind":"module","full_name":"Cisco::Switch","name":"Switch"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(1.second) do\n query_connected_devices\nend\nschedule.every(1.minute) do\n query_connected_devices\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nqueue.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\n\", \"--More--\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@ignore_macs = ::Set.new(((setting?(Hash(String, String), :ignore_macs)) || ({} of String => String)).values)\nself[:name] = @switch_name = setting?(String, :switch_name)\nself[:ip_address] = config.ip.not_nil!.downcase\nself[:building] = setting?(String, :building)\nself[:level] = setting?(String, :level)\nself[:last_successful_query]? || (self[:last_successful_query] = 0)\n"}},{"html_id":"query_connected_devices-instance-method","name":"query_connected_devices","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L87"},"def":{"name":"query_connected_devices","visibility":"Public","body":"begin\n if @querying_devices\n return\n end\n @querying_devices = true\n logger.debug do\n \"Querying for connected devices\"\n end\n query_interface_status.get\n sleep(3.seconds)\n query_mac_addresses.get\n sleep(3.seconds)\n query_snooping_bindings.get\n sleep(2.seconds)\n nil\nensure\n @querying_devices = false\nend"}},{"html_id":"query_interface_status-instance-method","name":"query_interface_status","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L71"},"def":{"name":"query_interface_status","visibility":"Public","body":"do_send(\"show interfaces status\")"}},{"html_id":"query_mac_addresses-instance-method","name":"query_mac_addresses","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L75"},"def":{"name":"query_mac_addresses","visibility":"Public","body":"@interface_macs.clear\ndo_send(\"show mac address-table\")\n"}},{"html_id":"query_snooping_bindings-instance-method","name":"query_snooping_bindings","abstract":false,"location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L80"},"def":{"name":"query_snooping_bindings","visibility":"Public","body":"@snooping.clear\ndo_send(\"show ip dhcp snooping binding\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Switch sent: #{data}\"\nend\nif @hostname.nil?\n parts = data.split(\">\")\n if parts.size == 2\n self[:hostname] = @hostname = parts[0]\n return task.try(&.success)\n end\nend\ncase data\nwhen /More/\n send(\" \", priority: 99, retries: 0)\n return task.try(&.success)\nwhen /STATIC|DYNAMIC/\n parts = (data.split(/\\s+/)).reject(&.empty?)\n mac = format(parts[1])\n interface = normalise(parts[-1])\n if mac && interface\n @interface_macs[interface] = mac\n end\n return :success\nwhen /%LINK/\n interface = normalise(((data.split(\",\"))[0].split(/\\s/))[-1])\n if data =~ (/Up:/)\n logger.debug do\n \"Notify Up: #{interface}\"\n end\n @check_interface << interface\n else\n if data =~ (/Down:/)\n logger.debug do\n \"Notify Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\n end\n self[:interfaces] = @check_interface\n return task.try(&.success)\nwhen .starts_with?(\"Total number\")\n logger.debug do\n \"Processing #{@snooping.size} bindings\"\n end\n checked = Set(String).new\n devices = {} of String => NamedTuple(mac: String, ip: String)\n state_changed = false\n @snooping.each do |mac, ip, interface|\n if @check_interface.includes?(interface)\n else\n next\n end\n if @interface_macs[interface]? == mac\n else\n next\n end\n if checked.includes?(interface)\n next\n end\n checked << interface\n iface = @devices[interface]? || {mac: \"\", ip: \"\"}\n if (iface[:ip] != ip) || (iface[:mac] != mac)\n logger.debug do\n \"New connection on #{interface} with #{ip}: #{mac}\"\n end\n devices[interface] = {mac: mac, ip: ip}\n state_changed = true\n else\n devices[interface] = iface\n end\n end\n if state_changed\n @devices = devices\n self[:devices] = devices\n end\n if @check_interface != checked\n @check_interface = checked\n self[:interfaces] = checked\n end\n self[:last_successful_query] = Time.utc.to_unix\n return task.try(&.success)\nend\nentries = (data.split(/\\s+/)).reject(&.empty?)\ncase entries\nwhen .includes?(\"connected\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n else\n logger.debug do\n \"Interface Up: #{interface}\"\n end\n @check_interface << interface\n end\nwhen .includes?(\"notconnect\")\n interface = entries[0].downcase\n if @check_interface.includes?(interface)\n logger.debug do\n \"Interface Down: #{interface}\"\n end\n @check_interface.delete(interface)\n end\nelse\n if entries.size > 2\n interface = normalise(entries[-1])\n if @check_interface.includes?(interface)\n mac = entries[0]\n if mac =~ (/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/)\n mac = format(mac)\n ip = entries[1]\n if @ignore_macs.includes?(mac[0..5])\n else\n @snooping << {mac, ip, interface}\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"run(command:String)-instance-method","name":"run","doc":"Don't want the every day user using this method","summary":"

Don't want the every day user using this method

","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/cisco/switch/snooping_catalyst.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/switch/snooping_catalyst.cr#L67"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"do_send(command)"}}]}]},{"html_id":"drivers/Cisco/UIExtender","path":"Cisco/UIExtender.html","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"IGNORE_METHODS","name":"IGNORE_METHODS","value":"[\"on_load\", \"on_unload\", \"on_update\"] of ::String","doc":"Build a list of all callback methods that have been defined.\n\nCallback methods are denoted being single arity and beginning with `on_`.","summary":"

Build a list of all callback methods that have been defined.

"}],"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"alert(text:String,title:String=\"\",duration:Int32=0)-instance-method","name":"alert","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"args_string":"(text : String, title : String = \"\", duration : Int32 = 0)","args_html":"(text : String, title : String = "", duration : Int32 = 0)","location":{"filename":"src/cisco/ui_extender.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L200"},"def":{"name":"alert","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"title","default_value":"\"\"","external_name":"title","restriction":"String"},{"name":"duration","default_value":"0","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Display\", hash_args: {Text: text, Title: title, Duration: duration})"}},{"html_id":"clear_alert-instance-method","name":"clear_alert","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L211"},"def":{"name":"clear_alert","visibility":"Public","body":"codec.xcommand(\"UserInterface Message Alert Clear\")"}},{"html_id":"clear_extensions-instance-method","name":"clear_extensions","doc":"Clear any deployed UI extensions.","summary":"

Clear any deployed UI extensions.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L75"},"def":{"name":"clear_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Clear\")"}},{"html_id":"close_panel-instance-method","name":"close_panel","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L82"},"def":{"name":"close_panel","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Panel Close\")"}},{"html_id":"deploy_extensions(id:String,xml_def:String)-instance-method","name":"deploy_extensions","doc":"Push a UI definition build with the in-room control editor to the device.","summary":"

Push a UI definition build with the in-room control editor to the device.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"args_string":"(id : String, xml_def : String)","args_html":"(id : String, xml_def : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L65"},"def":{"name":"deploy_extensions","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"xml_def","external_name":"xml_def","restriction":"String"}],"visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions Set\", xml_def, {\"config_id\" => id})"}},{"html_id":"highlight(id:String,state:Bool=true,momentary:Bool=false,time:Int32=500)-instance-method","name":"highlight","doc":"Set the highlight state for a button widget.","summary":"

Set the highlight state for a button widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"args_string":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","args_html":"(id : String, state : Bool = true, momentary : Bool = false, time : Int32 = 500)","location":{"filename":"src/cisco/ui_extender.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L145"},"def":{"name":"highlight","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"momentary","default_value":"false","external_name":"momentary","restriction":"Bool"},{"name":"time","default_value":"500","external_name":"time","restriction":"Int32"}],"visibility":"Public","body":"value = state ? \"active\" : \"inactive\"\nif momentary\n schedule.in(time.milliseconds) do\n highlight(id, !state)\n nil\n end\nend\nset(id, value)\n"}},{"html_id":"label(id:String,value:String|Bool|Nil)-instance-method","name":"label","doc":"Set the text label used on text or spinner widget.","summary":"

Set the text label used on text or spinner widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L152"},"def":{"name":"label","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"link_widget(id:String,bindings:Binding)-instance-method","name":"link_widget","doc":"Wire up a widget based on a binding target.","summary":"

Wire up a widget based on a binding target.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"args_string":"(id : String, bindings : Binding)","args_html":"(id : String, bindings : Binding)","location":{"filename":"src/cisco/ui_extender.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L328"},"def":{"name":"link_widget","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"bindings","external_name":"bindings","restriction":"Binding"}],"visibility":"Public","body":"logger.debug do\n \"setting up bindings for #{id}\"\nend\nbinding = case bindings\nin String\n (([\"clicked\", \"changed\", \"status\"] of ::String).product([bindings])).to_h\nin Hash(String, Hash(String, Hash(String, Array(String)) | String) | String)\n bindings\nend\nbinding.each do |type, target|\n if type == \"status\"\n case target\n in String\n mod, state = target.split(\".\")\n link_feedback(id, mod, state)\n in Hash(String, String | Hash(String, Array(String)))\n mod, state = target.first\n link_feedback(id, mod, state.as(String))\n end\n else\n handler = build_handler(target)\n if handler\n @event_handlers[{id, type}] = handler\n else\n logger.warn do\n \"invalid #{type} binding for #{id}\"\n end\n end\n end\nend\n"}},{"html_id":"list_extensions-instance-method","name":"list_extensions","doc":"Retrieve the extensions currently loaded.","summary":"

Retrieve the extensions currently loaded.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L70"},"def":{"name":"list_extensions","visibility":"Public","body":"codec.xcommand(\"UserInterface Extensions List\")"}},{"html_id":"on_extensions_widget_action(event:Hash(String,JSON::Any))-instance-method","name":"on_extensions_widget_action","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"args_string":"(event : Hash(String, JSON::Any))","args_html":"(event : Hash(String, JSON::Any))","location":{"filename":"src/cisco/ui_extender.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L159"},"def":{"name":"on_extensions_widget_action","args":[{"name":"event","external_name":"event","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"logger.debug do\n \"received widget action update #{event}\"\nend\ncurrent_key = event.keys.first\ncase current_key\nwhen \"/Event/UserInterface/Extensions/Widget/Action/WidgetId\"\n @action_merged[\"WidgetId\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action\", \"/Event/UserInterface/Extensions/Widget/Action/Value\"\n @action_merged[\"Value\"] = event[current_key]\nwhen \"/Event/UserInterface/Extensions/Widget/Action/Type\"\n @action_merged[\"Type\"] = event[current_key]\nelse\n logger.debug do\n \"ignoring key #{current_key} processing widget_action event\"\n end\nend\nlogger.debug do\n \"current action state: #{@action_merged}\"\nend\nif @action_merged.size == 3\nelse\n return\nend\nid, value, type = @action_merged.values_at(\"WidgetId\", \"Value\", \"Type\")\n@action_merged = {} of String => JSON::Any\nlogger.debug do\n \"#{id} #{type} = #{value}\"\nend\nid = id.as_s\ntype = type.as_s\nif [\"\", \"increment\", \"decrement\"].includes?(value.raw)\nelse\n self[id] = value\nend\nbegin\n handler = @event_handlers.fetch([id, type], nil)\n handler.try(&.call(value))\nrescue e\n logger.error(exception: e) do\n \"error in binding for #{id}.#{type}\"\n end\nend\nself[:__event_stream] = {id: id, type: type, value: value}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"on_update(true)"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L27"},"def":{"name":"on_unload","visibility":"Public","body":"clear_extensions\nunbind\n"}},{"html_id":"on_update(loading=false)-instance-method","name":"on_update","abstract":false,"args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"args_string":"(loading = false)","args_html":"(loading = false)","location":{"filename":"src/cisco/ui_extender.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L37"},"def":{"name":"on_update","args":[{"name":"loading","default_value":"false","external_name":"loading","restriction":""}],"visibility":"Public","body":"if loading\nelse\n begin\n clear_events\n rescue\n end\nend\ncodec_mod = (setting?(String, :codec)) || \"VidConf_1\"\nif system.exists?(codec_mod)\nelse\n logger.warn do\n \"could not find codec #{codec_mod}\"\n end\n return\nend\nui_layout = setting?(String, :cisco_ui_layout)\nbindings = (setting?(Bindings, :cisco_ui_bindings)) || ({} of String => Binding)\nbind(codec_mod) do\n if ui_layout\n deploy_extensions(\"PlaceOS\", ui_layout)\n end\n bindings.each do |id, config|\n link_widget(id, config)\n end\nend\n"}},{"html_id":"set(id:String,value:String|Bool|Nil)-instance-method","name":"set","doc":"Set the value of a widget.","summary":"

Set the value of a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"args_string":"(id : String, value : String | Bool | Nil)","args_html":"(id : String, value : String | Bool | Nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L119"},"def":{"name":"set","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | Bool | Nil"}],"visibility":"Public","body":"set_actual(id, value)"}},{"html_id":"switch(id:String,state:Bool|Nil=nil)-instance-method","name":"switch","doc":"Set the state of a switch widget.","summary":"

Set the state of a switch widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"args_string":"(id : String, state : Bool | Nil = nil)","args_html":"(id : String, state : Bool | Nil = nil)","location":{"filename":"src/cisco/ui_extender.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L138"},"def":{"name":"switch","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"state","default_value":"nil","external_name":"state","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"if state.nil?\n state = !(status?(Bool, id))\nend\nvalue = state ? \"on\" : \"off\"\nset(id, value)\n"}},{"html_id":"sync_widget_state-instance-method","name":"sync_widget_state","doc":"Push the current module state to the device.","summary":"

Push the current module state to the device.

","abstract":false,"location":{"filename":"src/cisco/ui_extender.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L262"},"def":{"name":"sync_widget_state","visibility":"Public","body":"@__status__.each do |key, value|\n if key == \"connected\"\n next\n end\n if key =~ (/^__.*/)\n next\n end\n case value\n when .starts_with?(\"\\\"\")\n set(key, String.from_json(value))\n when \"true\", \"false\"\n set(key, value == \"true\")\n end\nend"}},{"html_id":"unset(id:String)-instance-method","name":"unset","doc":"Clear the value associated with a widget.","summary":"

Clear the value associated with a widget.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/ui_extender.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L124"},"def":{"name":"unset","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"clearing #{id}\"\nend\nupdate = codec.xcommand(\"UserInterface Extensions Widget UnsetValue\", hash_args: {WidgetId: id})\nPromise.defer do\n update.get\n self[id] = nil\n nil.as(String | Nil)\nend\n"}}],"types":[{"html_id":"drivers/Cisco/UIExtender/Binding","path":"Cisco/UIExtender/Binding.html","kind":"alias","full_name":"Cisco::UIExtender::Binding","name":"Binding","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"}},{"html_id":"drivers/Cisco/UIExtender/Bindings","path":"Cisco/UIExtender/Bindings.html","kind":"alias","full_name":"Cisco::UIExtender::Bindings","name":"Bindings","abstract":false,"locations":[{"filename":"src/cisco/ui_extender.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/ui_extender.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","aliased_html":"Hash(String, Hash(String, Hash(String, Hash(String, Array(String)) | String) | String) | String)","const":false,"namespace":{"html_id":"drivers/Cisco/UIExtender","kind":"class","full_name":"Cisco::UIExtender","name":"UIExtender"},"doc":"id => binding","summary":"

id => binding

"}]},{"html_id":"drivers/Cisco/Webex","path":"Cisco/Webex.html","kind":"module","full_name":"Cisco::Webex","name":"Webex","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L2"},{"filename":"src/cisco/webex/api/people.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L2"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L2"},{"filename":"src/cisco/webex/client.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L2"},{"filename":"src/cisco/webex/command.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L2"},{"filename":"src/cisco/webex/commands/echo.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L2"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L2"},{"filename":"src/cisco/webex/constants.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L2"},{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L2"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L2"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L2"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L2"},{"filename":"src/cisco/webex/models/device.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L2"},{"filename":"src/cisco/webex/models/event.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L2"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L2"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L2"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L2"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L2"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L2"},{"filename":"src/cisco/webex/models/message.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L2"},{"filename":"src/cisco/webex/models/peek.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L2"},{"filename":"src/cisco/webex/models/person.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L2"},{"filename":"src/cisco/webex/models/room.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L2"},{"filename":"src/cisco/webex/session.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L2"},{"filename":"src/cisco/webex/status_code.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L2"},{"filename":"src/cisco/webex/utils.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco","kind":"module","full_name":"Cisco","name":"Cisco"},"types":[{"html_id":"drivers/Cisco/Webex/Api","path":"Cisco/Webex/Api.html","kind":"module","full_name":"Cisco::Webex::Api","name":"Api","abstract":false,"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L3"},{"filename":"src/cisco/webex/api/people.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L3"},{"filename":"src/cisco/webex/api/rooms.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Api/Messages","path":"Cisco/Webex/Api/Messages.html","kind":"class","full_name":"Cisco::Webex::Api::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/messages.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/messages.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/messages.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/People","path":"Cisco/Webex/Api/People.html","kind":"class","full_name":"Cisco::Webex::Api::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/people.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/people.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"me:Models::Person-instance-method","name":"me","abstract":false,"location":{"filename":"src/cisco/webex/api/people.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/people.cr#L8"},"def":{"name":"me","return_type":"Models::Person","visibility":"Public","body":"response = @session.get([Constants::PEOPLE_ENDPOINT, \"/\", \"me\"].join(\"\"))\nModels::Person.from_json(response.body)\n"}}]},{"html_id":"drivers/Cisco/Webex/Api/Rooms","path":"Cisco/Webex/Api/Rooms.html","kind":"class","full_name":"Cisco::Webex::Api::Rooms","name":"Rooms","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/api/rooms.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Api","kind":"module","full_name":"Cisco::Webex::Api","name":"Api"},"constructors":[{"html_id":"new(session:Session)-class-method","name":"new","abstract":false,"args":[{"name":"session","external_name":"session","restriction":"Session"}],"args_string":"(session : Session)","args_html":"(session : Session)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L5"},"def":{"name":"new","args":[{"name":"session","external_name":"session","restriction":"Session"}],"visibility":"Public","body":"_ = allocate\n_.initialize(session)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"create(room_id:String=\"\",parent_id:String=\"\",to_person_id:String=\"\",to_person_email:String=\"\",text:String=\"\",markdown:String=\"\"):Models::Message-instance-method","name":"create","abstract":false,"args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"args_string":"(room_id : String = \"\", parent_id : String = \"\", to_person_id : String = \"\", to_person_email : String = \"\", text : String = \"\", markdown : String = \"\") : Models::Message","args_html":"(room_id : String = "", parent_id : String = "", to_person_id : String = "", to_person_email : String = "", text : String = "", markdown : String = "") : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L28"},"def":{"name":"create","args":[{"name":"room_id","default_value":"\"\"","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"to_person_id","default_value":"\"\"","external_name":"to_person_id","restriction":"String"},{"name":"to_person_email","default_value":"\"\"","external_name":"to_person_email","restriction":"String"},{"name":"text","default_value":"\"\"","external_name":"text","restriction":"String"},{"name":"markdown","default_value":"\"\"","external_name":"markdown","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"json = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, toPersonId: to_person_id, toPersonEmail: to_person_email, text: text, markdown: markdown)\nresponse = @session.post([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), json: json)\nModels::Message.from_json(response.body)\n"}},{"html_id":"get(message_id:String):Models::Message-instance-method","name":"get","abstract":false,"args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"args_string":"(message_id : String) : Models::Message","args_html":"(message_id : String) : Models::Message","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L34"},"def":{"name":"get","args":[{"name":"message_id","external_name":"message_id","restriction":"String"}],"return_type":"Models::Message","visibility":"Public","body":"response = @session.get([Constants::MESSAGES_ENDPOINT, \"/\", message_id].join(\"\"))\nModels::Message.from_json(response.body)\n"}},{"html_id":"list(room_id:String,parent_id:String=\"\",mentioned_people:String=\"\",before:String=\"\",before_message:String=\"\",max:Int32=50):Array(Models::Message)-instance-method","name":"list","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"args_string":"(room_id : String, parent_id : String = \"\", mentioned_people : String = \"\", before : String = \"\", before_message : String = \"\", max : Int32 = 50) : Array(Models::Message)","args_html":"(room_id : String, parent_id : String = "", mentioned_people : String = "", before : String = "", before_message : String = "", max : Int32 = 50) : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L8"},"def":{"name":"list","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"},{"name":"mentioned_people","default_value":"\"\"","external_name":"mentioned_people","restriction":"String"},{"name":"before","default_value":"\"\"","external_name":"before","restriction":"String"},{"name":"before_message","default_value":"\"\"","external_name":"before_message","restriction":"String"},{"name":"max","default_value":"50","external_name":"max","restriction":"Int32"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(roomId: room_id, parentId: parent_id, mentionedPeople: mentioned_people, before: before, beforeMessage: before_message, max: max)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}},{"html_id":"list_direct(person_id:String=\"\",person_email:String=\"\",parent_id:String=\"\"):Array(Models::Message)-instance-method","name":"list_direct","abstract":false,"args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"args_string":"(person_id : String = \"\", person_email : String = \"\", parent_id : String = \"\") : Array(Models::Message)","args_html":"(person_id : String = "", person_email : String = "", parent_id : String = "") : Array(Models::Message)","location":{"filename":"src/cisco/webex/api/rooms.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/api/rooms.cr#L18"},"def":{"name":"list_direct","args":[{"name":"person_id","default_value":"\"\"","external_name":"person_id","restriction":"String"},{"name":"person_email","default_value":"\"\"","external_name":"person_email","restriction":"String"},{"name":"parent_id","default_value":"\"\"","external_name":"parent_id","restriction":"String"}],"return_type":"Array(Models::Message)","visibility":"Public","body":"params = Utils.hash_from_items_with_values(personId: person_id, personEmail: person_email, parentId: parent_id)\nresponse = @session.get([Constants::MESSAGES_ENDPOINT, \"/\"].join(\"\"), params: params)\ndata = JSON.parse(response.body)\ndata[\"items\"].as_a.map do |item|\n Models::Message.from_json(item.to_json)\nend\n"}}]}]},{"html_id":"drivers/Cisco/Webex/Client","path":"Cisco/Webex/Client.html","kind":"class","full_name":"Cisco::Webex::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/client.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(name:String,access_token:String,emails:String,session:Session,commands:Array(Command))-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"args_string":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","args_html":"(name : String, access_token : String, emails : String, session : Session, commands : Array(Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L10"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"access_token","external_name":"access_token","restriction":"String"},{"name":"emails","external_name":"emails","restriction":"String"},{"name":"session","external_name":"session","restriction":"Session"},{"name":"commands","external_name":"commands","restriction":"Array(Command)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, access_token, emails, session, commands)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/client.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"keywords:Hash(String,Command)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords","return_type":"Hash(String, Command)","visibility":"Public","body":"@keywords"}},{"html_id":"keywords=(keywords:Hash(String,Command))-instance-method","name":"keywords=","abstract":false,"args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"args_string":"(keywords : Hash(String, Command))","args_html":"(keywords : Hash(String, Command))","location":{"filename":"src/cisco/webex/client.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L7"},"def":{"name":"keywords=","args":[{"name":"keywords","external_name":"keywords","restriction":"Hash(String, Command)"}],"visibility":"Public","body":"@keywords = keywords"}},{"html_id":"messages:Cisco::Webex::Api::Messages-instance-method","name":"messages","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L31"},"def":{"name":"messages","visibility":"Public","body":"@messages"}},{"html_id":"people:Cisco::Webex::Api::People-instance-method","name":"people","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L27"},"def":{"name":"people","visibility":"Public","body":"@people"}},{"html_id":"rooms:Cisco::Webex::Api::Rooms-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L23"},"def":{"name":"rooms","visibility":"Public","body":"@rooms"}},{"html_id":"run:Void-instance-method","name":"run","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L124"},"def":{"name":"run","return_type":"Void","visibility":"Public","body":"device = device()\n@socket = socket = HTTP::WebSocket.new(URI.parse(device.websocket_url))\nsocket.on_message do |message|\n process_incoming_websocket_message(socket, message)\nend\nsocket.on_binary do |binary|\n process_incoming_websocket_message(socket, String.new(binary))\nend\nmessage = {\"id\" => UUID.random.to_s, \"type\" => \"authorization\", \"trackingId\" => [\"webex\", \"-\", UUID.random.to_s].join(\"\"), \"data\" => {\"token\" => [\"Bearer\", @access_token].join(\" \")}}\nsocket.send(message.to_json)\nsocket.run\n"}},{"html_id":"socket:HTTP::WebSocket|Nil-instance-method","name":"socket","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L8"},"def":{"name":"socket","return_type":"HTTP::WebSocket | ::Nil","visibility":"Public","body":"@socket"}},{"html_id":"socket=(socket:HTTP::WebSocket|Nil)-instance-method","name":"socket=","abstract":false,"args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"args_string":"(socket : HTTP::WebSocket | Nil)","args_html":"(socket : HTTP::WebSocket | Nil)","location":{"filename":"src/cisco/webex/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L8"},"def":{"name":"socket=","args":[{"name":"socket","external_name":"socket","restriction":"HTTP::WebSocket | ::Nil"}],"visibility":"Public","body":"@socket = socket"}},{"html_id":"stop:Void-instance-method","name":"stop","abstract":false,"location":{"filename":"src/cisco/webex/client.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/client.cr#L148"},"def":{"name":"stop","return_type":"Void","visibility":"Public","body":"@socket.close"}}]},{"html_id":"drivers/Cisco/Webex/Command","path":"Cisco/Webex/Command.html","kind":"class","full_name":"Cisco::Webex::Command","name":"Command","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/command.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo"},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L5"},"def":{"name":"description","return_type":"String","visibility":"Public","body":""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":true,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L6"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":""}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":true,"location":{"filename":"src/cisco/webex/command.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/command.cr#L4"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":""}}]},{"html_id":"drivers/Cisco/Webex/Commands","path":"Cisco/Webex/Commands.html","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands","abstract":false,"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L3"},{"filename":"src/cisco/webex/commands/greeting.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Commands/Echo","path":"Cisco/Webex/Commands/Echo.html","kind":"class","full_name":"Cisco::Webex::Commands::Echo","name":"Echo","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/echo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply replies your message!\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => message.text}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/echo.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/echo.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"echo\"]"}}]},{"html_id":"drivers/Cisco/Webex/Commands/Greeting","path":"Cisco/Webex/Commands/Greeting.html","kind":"class","full_name":"Cisco::Webex::Commands::Greeting","name":"Greeting","abstract":false,"superclass":{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},"ancestors":[{"html_id":"drivers/Cisco/Webex/Command","kind":"class","full_name":"Cisco::Webex::Command","name":"Command"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/commands/greeting.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Commands","kind":"module","full_name":"Cisco::Webex::Commands","name":"Commands"},"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L9"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"\"This command simply responds to hello, hi, how are you, etc.\""}},{"html_id":"execute(event,keyword,message)-instance-method","name":"execute","abstract":false,"args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"args_string":"(event, keyword, message)","args_html":"(event, keyword, message)","location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L13"},"def":{"name":"execute","args":[{"name":"event","external_name":"event","restriction":""},{"name":"keyword","external_name":"keyword","restriction":""},{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"{\"id\" => message.room_id, \"text\" => \"👋\"}"}},{"html_id":"keywords:Array(String)-instance-method","name":"keywords","abstract":false,"location":{"filename":"src/cisco/webex/commands/greeting.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/commands/greeting.cr#L5"},"def":{"name":"keywords","return_type":"Array(String)","visibility":"Public","body":"[\"hello\", \"hi\"]"}}]}]},{"html_id":"drivers/Cisco/Webex/Constants","path":"Cisco/Webex/Constants.html","kind":"module","full_name":"Cisco::Webex::Constants","name":"Constants","abstract":false,"locations":[{"filename":"src/cisco/webex/constants.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/constants.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_BASE_URL","name":"DEFAULT_BASE_URL","value":"\"https://webexapis.com/v1/\""},{"id":"DEFAULT_DEVICE_URL","name":"DEFAULT_DEVICE_URL","value":"\"https://wdm-a.wbx2.com/wdm/api/v1/\""},{"id":"DEFAULT_SINGLE_REQUEST_TIMEOUT","name":"DEFAULT_SINGLE_REQUEST_TIMEOUT","value":"60"},{"id":"DEFAULT_WAIT_ON_RATE_LIMIT","name":"DEFAULT_WAIT_ON_RATE_LIMIT","value":"true"},{"id":"DEVICE","name":"DEVICE","value":"{\"deviceType\" => \"DESKTOP\", \"localizedModel\" => \"crystal\", \"model\" => \"crystal\", \"name\" => UUID.random.to_s, \"systemName\" => \"webex-bot-client\", \"systemVersion\" => VERSION}"},{"id":"MESSAGES_ENDPOINT","name":"MESSAGES_ENDPOINT","value":"\"messages\""},{"id":"PEOPLE_ENDPOINT","name":"PEOPLE_ENDPOINT","value":"\"people\""},{"id":"ROOMS_ENDPOINT","name":"ROOMS_ENDPOINT","value":"\"rooms\""},{"id":"STATUS_CODES","name":"STATUS_CODES","value":"{200 => \"Successful request with body content.\", 204 => \"Successful request without body content.\", 400 => \"The request was invalid or cannot be otherwise served.\", 401 => \"Authentication credentials were missing or incorrect.\", 403 => \"The request is understood, but it has been refused or access is not allowed.\", 404 => \"The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.\", 405 => \"The request was made to a resource using an HTTP request method that is not supported.\", 409 => \"The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.\", 410 => \"The requested resource is no longer available.\", 415 => \"The request was made to a resource without specifying a media type or used a media type that is not supported.\", 423 => \"The requested resource is temporarily unavailable. A `Retry-After` header may be present that specifies how many seconds you need to wait before attempting the request again.\", 429 => \"Too many requests have been sent in a given amount of time and the request has been rate limited. A `Retry-After` header should be present that specifies how many seconds you need to wait before a successful request can be made.\", 500 => \"Something went wrong on the server. If the issue persists, feel free to contact the Webex Developer Support team (https://developer.webex.com/support).\", 502 => \"The server received an invalid response from an upstream server while processing the request. Try again later.\", 503 => \"Server is overloaded with requests. Try again later.\"}"},{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/drivers/drivers/src/cisco/webex\\\"`).chomp.stringify.downcase }}"},{"id":"WEBEX_TEAMS_DATETIME_FORMAT","name":"WEBEX_TEAMS_DATETIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%fZ\""}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"}},{"html_id":"drivers/Cisco/Webex/Exceptions","path":"Cisco/Webex/Exceptions.html","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions","abstract":false,"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L3"},{"filename":"src/cisco/webex/exceptions/method.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L3"},{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L3"},{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Exceptions/Argument","path":"Cisco/Webex/Exceptions/Argument.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/argument.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/argument.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/Method","path":"Cisco/Webex/Exceptions/Method.html","kind":"class","full_name":"Cisco::Webex::Exceptions::Method","name":"Method","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/method.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/method.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/RateLimit","path":"Cisco/Webex/Exceptions/RateLimit.html","kind":"class","full_name":"Cisco::Webex::Exceptions::RateLimit","name":"RateLimit","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/rate_limit.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/rate_limit.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}},{"html_id":"drivers/Cisco/Webex/Exceptions/StatusCode","path":"Cisco/Webex/Exceptions/StatusCode.html","kind":"class","full_name":"Cisco::Webex::Exceptions::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/exceptions/status_code.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/exceptions/status_code.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Exceptions","kind":"module","full_name":"Cisco::Webex::Exceptions","name":"Exceptions"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect","path":"Cisco/Webex/InstantConnect.html","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_guest_bearer(user_id:String,display_name:String,expiry:Int64|Nil=nil)-instance-method","name":"create_guest_bearer","doc":"Cisco docs on the subject:\n* Guest JWT: https://developer.webex.com/docs/guest-issuer\n* Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/","summary":"

Cisco docs on the subject: * Guest JWT: https://developer.webex.com/docs/guest-issuer * Testing site: https://webexsamples.github.io/browser-sdk-samples/browser-auth-jwt/

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","args_html":"(user_id : String, display_name : String, expiry : Int64 | Nil = nil)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L34"},"def":{"name":"create_guest_bearer","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"expires_at = expiry || 12.hours.from_now.to_unix\nJWT.encode({sub: user_id, name: display_name, iss: @webex_guest_issuer, iat: 3.minutes.ago.to_unix, exp: expires_at}, Base64.decode_string(@webex_guest_secret), :hs256)\n"}},{"html_id":"create_meeting(room_id:String)-instance-method","name":"create_meeting","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L45"},"def":{"name":"create_meeting","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"expiry = 24.hours.from_now.to_unix\nrequest = {aud: @jwt_audience, provideShortUrls: true, jwt: {sub: room_id, exp: expiry}}.to_json\nget_meeting_details(get_hash(request))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@webex_guest_issuer = (setting?(String, :webex_guest_issuer)) || \"\"\n@webex_guest_secret = (setting?(String, :webex_guest_secret)) || \"\"\n@audience_setting = (setting?(String, :jwt_audience)) || \"a4d886b0-979f-4e2c-a958-3e8c14605e51\"\n@bot_access_token = setting(String, :bot_access_token)\n"}}],"types":[{"html_id":"drivers/Cisco/Webex/InstantConnect/JoseEncryptResponse","path":"Cisco/Webex/InstantConnect/JoseEncryptResponse.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::JoseEncryptResponse","name":"JoseEncryptResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L84"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L85"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L91"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"guest:Array(MeetingDetails)-instance-method","name":"guest","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L88"},"def":{"name":"guest","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@guest"}},{"html_id":"host:Array(MeetingDetails)-instance-method","name":"host","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L87"},"def":{"name":"host","return_type":"Array(MeetingDetails)","visibility":"Public","body":"@host"}}]},{"html_id":"drivers/Cisco/Webex/InstantConnect/MeetingDetails","path":"Cisco/Webex/InstantConnect/MeetingDetails.html","kind":"struct","full_name":"Cisco::Webex::InstantConnect::MeetingDetails","name":"MeetingDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/instant_connect.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/InstantConnect","kind":"class","full_name":"Cisco::Webex::InstantConnect","name":"InstantConnect"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cipher:String-instance-method","name":"cipher","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L97"},"def":{"name":"cipher","return_type":"String","visibility":"Public","body":"@cipher"}},{"html_id":"short:String-instance-method","name":"short","abstract":false,"location":{"filename":"src/cisco/webex/instant_connect.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/instant_connect.cr#L98"},"def":{"name":"short","return_type":"String","visibility":"Public","body":"@short"}}]}]},{"html_id":"drivers/Cisco/Webex/Models","path":"Cisco/Webex/Models.html","kind":"module","full_name":"Cisco::Webex::Models","name":"Models","abstract":false,"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L3"},{"filename":"src/cisco/webex/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L3"},{"filename":"src/cisco/webex/models/events/activity.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L3"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L3"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L3"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L3"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L3"},{"filename":"src/cisco/webex/models/message.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L3"},{"filename":"src/cisco/webex/models/peek.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L3"},{"filename":"src/cisco/webex/models/person.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L3"},{"filename":"src/cisco/webex/models/room.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Device","path":"Cisco/Webex/Models/Device.html","kind":"class","full_name":"Cisco::Webex::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"websocket_url:String-instance-method","name":"websocket_url","abstract":false,"location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url","return_type":"String","visibility":"Public","body":"@websocket_url"}},{"html_id":"websocket_url=(websocket_url:String)-instance-method","name":"websocket_url=","abstract":false,"args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"args_string":"(websocket_url : String)","args_html":"(websocket_url : String)","location":{"filename":"src/cisco/webex/models/device.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/device.cr#L8"},"def":{"name":"websocket_url=","args":[{"name":"websocket_url","external_name":"websocket_url","restriction":"String"}],"visibility":"Public","body":"@websocket_url = websocket_url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Event","path":"Cisco/Webex/Models/Event.html","kind":"class","full_name":"Cisco::Webex::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data","return_type":"Events::Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"args_string":"(data : Events::Data)","args_html":"(data : Events::Data)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"filter_message:Bool-instance-method","name":"filter_message","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message","return_type":"Bool","visibility":"Public","body":"@filter_message"}},{"html_id":"filter_message=(filter_message:Bool)-instance-method","name":"filter_message=","abstract":false,"args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"args_string":"(filter_message : Bool)","args_html":"(filter_message : Bool)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L23"},"def":{"name":"filter_message=","args":[{"name":"filter_message","external_name":"filter_message","restriction":"Bool"}],"visibility":"Public","body":"@filter_message = filter_message"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sequence_number:Int64-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number","return_type":"Int64","visibility":"Public","body":"@sequence_number"}},{"html_id":"sequence_number=(sequence_number:Int64)-instance-method","name":"sequence_number=","abstract":false,"args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"args_string":"(sequence_number : Int64)","args_html":"(sequence_number : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L20"},"def":{"name":"sequence_number=","args":[{"name":"sequence_number","external_name":"sequence_number","restriction":"Int64"}],"visibility":"Public","body":"@sequence_number = sequence_number"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L14"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}},{"html_id":"tracking_id=(tracking_id:String)-instance-method","name":"tracking_id=","abstract":false,"args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"args_string":"(tracking_id : String)","args_html":"(tracking_id : String)","location":{"filename":"src/cisco/webex/models/event.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/event.cr#L17"},"def":{"name":"tracking_id=","args":[{"name":"tracking_id","external_name":"tracking_id","restriction":"String"}],"visibility":"Public","body":"@tracking_id = tracking_id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events","path":"Cisco/Webex/Models/Events.html","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events","abstract":false,"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L4"},{"filename":"src/cisco/webex/models/events/actor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L4"},{"filename":"src/cisco/webex/models/events/data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L4"},{"filename":"src/cisco/webex/models/events/target.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L4"},{"filename":"src/cisco/webex/models/events/type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"types":[{"html_id":"drivers/Cisco/Webex/Models/Events/Activity","path":"Cisco/Webex/Models/Events/Activity.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Activity","name":"Activity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/activity.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actor:Actor-instance-method","name":"actor","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor","return_type":"Actor","visibility":"Public","body":"@actor"}},{"html_id":"actor=(actor:Actor)-instance-method","name":"actor=","abstract":false,"args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"args_string":"(actor : Actor)","args_html":"(actor : Actor)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L24"},"def":{"name":"actor=","args":[{"name":"actor","external_name":"actor","restriction":"Actor"}],"visibility":"Public","body":"@actor = actor"}},{"html_id":"client_temp_id:String|Nil-instance-method","name":"client_temp_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id","return_type":"String | ::Nil","visibility":"Public","body":"@client_temp_id"}},{"html_id":"client_temp_id=(client_temp_id:String|Nil)-instance-method","name":"client_temp_id=","abstract":false,"args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"args_string":"(client_temp_id : String | Nil)","args_html":"(client_temp_id : String | Nil)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L30"},"def":{"name":"client_temp_id=","args":[{"name":"client_temp_id","external_name":"client_temp_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client_temp_id = client_temp_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"target:Target-instance-method","name":"target","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target","return_type":"Target","visibility":"Public","body":"@target"}},{"html_id":"target=(target:Target)-instance-method","name":"target=","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target)","args_html":"(target : Target)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L27"},"def":{"name":"target=","args":[{"name":"target","external_name":"target","restriction":"Target"}],"visibility":"Public","body":"@target = target"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"verb:String-instance-method","name":"verb","abstract":false,"location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb","return_type":"String","visibility":"Public","body":"@verb"}},{"html_id":"verb=(verb:String)-instance-method","name":"verb=","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"}],"args_string":"(verb : String)","args_html":"(verb : String)","location":{"filename":"src/cisco/webex/models/events/activity.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/activity.cr#L21"},"def":{"name":"verb=","args":[{"name":"verb","external_name":"verb","restriction":"String"}],"visibility":"Public","body":"@verb = verb"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Actor","path":"Cisco/Webex/Models/Events/Actor.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Actor","name":"Actor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/actor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L21"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"entry_uuid:String-instance-method","name":"entry_uuid","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid","return_type":"String","visibility":"Public","body":"@entry_uuid"}},{"html_id":"entry_uuid=(entry_uuid:String)-instance-method","name":"entry_uuid=","abstract":false,"args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"args_string":"(entry_uuid : String)","args_html":"(entry_uuid : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L24"},"def":{"name":"entry_uuid=","args":[{"name":"entry_uuid","external_name":"entry_uuid","restriction":"String"}],"visibility":"Public","body":"@entry_uuid = entry_uuid"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"organisation_id:String-instance-method","name":"organisation_id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id","return_type":"String","visibility":"Public","body":"@organisation_id"}},{"html_id":"organisation_id=(organisation_id:String)-instance-method","name":"organisation_id=","abstract":false,"args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"args_string":"(organisation_id : String)","args_html":"(organisation_id : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L18"},"def":{"name":"organisation_id=","args":[{"name":"organisation_id","external_name":"organisation_id","restriction":"String"}],"visibility":"Public","body":"@organisation_id = organisation_id"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/events/actor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/actor.cr#L27"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Data","path":"Cisco/Webex/Models/Events/Data.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/data.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activity:Activity-instance-method","name":"activity","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity","return_type":"Activity","visibility":"Public","body":"@activity"}},{"html_id":"activity=(activity:Activity)-instance-method","name":"activity=","abstract":false,"args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"args_string":"(activity : Activity)","args_html":"(activity : Activity)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L9"},"def":{"name":"activity=","args":[{"name":"activity","external_name":"activity","restriction":"Activity"}],"visibility":"Public","body":"@activity = activity"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/data.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/data.cr#L12"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Target","path":"Cisco/Webex/Models/Events/Target.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Target","name":"Target","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/target.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L12"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"published:String-instance-method","name":"published","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published","return_type":"String","visibility":"Public","body":"@published"}},{"html_id":"published=(published:String)-instance-method","name":"published=","abstract":false,"args":[{"name":"published","external_name":"published","restriction":"String"}],"args_string":"(published : String)","args_html":"(published : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L18"},"def":{"name":"published=","args":[{"name":"published","external_name":"published","restriction":"String"}],"visibility":"Public","body":"@published = published"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/cisco/webex/models/events/target.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/target.cr#L15"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}}]},{"html_id":"drivers/Cisco/Webex/Models/Events/Type","path":"Cisco/Webex/Models/Events/Type.html","kind":"class","full_name":"Cisco::Webex::Models::Events::Type","name":"Type","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/events/type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models/Events","kind":"module","full_name":"Cisco::Webex::Models::Events","name":"Events"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/cisco/webex/models/events/type.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/events/type.cr#L9"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}}]}]},{"html_id":"drivers/Cisco/Webex/Models/Message","path":"Cisco/Webex/Models/Message.html","kind":"class","full_name":"Cisco::Webex::Models::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/message.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Array(String)|Nil-instance-method","name":"attachments","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@attachments"}},{"html_id":"attachments=(attachments:Array(String)|Nil)-instance-method","name":"attachments=","doc":"Message content attachments attached to the message.","summary":"

Message content attachments attached to the message.

","abstract":false,"args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"args_string":"(attachments : Array(String) | Nil)","args_html":"(attachments : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L65"},"def":{"name":"attachments=","args":[{"name":"attachments","external_name":"attachments","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@attachments = attachments"}},{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L69"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"files:Array(String)|Nil-instance-method","name":"files","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@files"}},{"html_id":"files=(files:Array(String)|Nil)-instance-method","name":"files=","doc":"Public URLs for files attached to the message.","summary":"

Public URLs for files attached to the message.

","abstract":false,"args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"args_string":"(files : Array(String) | Nil)","args_html":"(files : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L45"},"def":{"name":"files=","args":[{"name":"files","external_name":"files","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@files = files"}},{"html_id":"html:String|Nil-instance-method","name":"html","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html","return_type":"String | ::Nil","visibility":"Public","body":"@html"}},{"html_id":"html=(html:String|Nil)-instance-method","name":"html=","doc":"The text content of the message, in HTML format. This read-only property is used by the Webex Teams clients.","summary":"

The text content of the message, in HTML format.

","abstract":false,"args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"args_string":"(html : String | Nil)","args_html":"(html : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L41"},"def":{"name":"html=","args":[{"name":"html","external_name":"html","restriction":"String | ::Nil"}],"visibility":"Public","body":"@html = html"}},{"html_id":"id:String-instance-method","name":"id","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"The unique identifier for the message.","summary":"

The unique identifier for the message.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"markdown:String|Nil-instance-method","name":"markdown","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown","return_type":"String | ::Nil","visibility":"Public","body":"@markdown"}},{"html_id":"markdown=(markdown:String|Nil)-instance-method","name":"markdown=","doc":"The message, in Markdown format.","summary":"

The message, in Markdown format.

","abstract":false,"args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"args_string":"(markdown : String | Nil)","args_html":"(markdown : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L37"},"def":{"name":"markdown=","args":[{"name":"markdown","external_name":"markdown","restriction":"String | ::Nil"}],"visibility":"Public","body":"@markdown = markdown"}},{"html_id":"mentioned_groups:Array(String)|Nil-instance-method","name":"mentioned_groups","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_groups"}},{"html_id":"mentioned_groups=(mentioned_groups:Array(String)|Nil)-instance-method","name":"mentioned_groups=","doc":"Group names for the groups mentioned in the message.","summary":"

Group names for the groups mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_groups : Array(String) | Nil)","args_html":"(mentioned_groups : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L61"},"def":{"name":"mentioned_groups=","args":[{"name":"mentioned_groups","external_name":"mentioned_groups","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_groups = mentioned_groups"}},{"html_id":"mentioned_people:Array(String)|Nil-instance-method","name":"mentioned_people","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@mentioned_people"}},{"html_id":"mentioned_people=(mentioned_people:Array(String)|Nil)-instance-method","name":"mentioned_people=","doc":"People IDs for anyone mentioned in the message.","summary":"

People IDs for anyone mentioned in the message.

","abstract":false,"args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"args_string":"(mentioned_people : Array(String) | Nil)","args_html":"(mentioned_people : Array(String) | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L57"},"def":{"name":"mentioned_people=","args":[{"name":"mentioned_people","external_name":"mentioned_people","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@mentioned_people = mentioned_people"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","doc":"The unique identifier for the parent message.","summary":"

The unique identifier for the parent message.

","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L13"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"person_email:String-instance-method","name":"person_email","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email","return_type":"String","visibility":"Public","body":"@person_email"}},{"html_id":"person_email=(person_email:String)-instance-method","name":"person_email=","doc":"The email address of the message author.","summary":"

The email address of the message author.

","abstract":false,"args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"args_string":"(person_email : String)","args_html":"(person_email : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L53"},"def":{"name":"person_email=","args":[{"name":"person_email","external_name":"person_email","restriction":"String"}],"visibility":"Public","body":"@person_email = person_email"}},{"html_id":"person_id:String-instance-method","name":"person_id","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id","return_type":"String","visibility":"Public","body":"@person_id"}},{"html_id":"person_id=(person_id:String)-instance-method","name":"person_id=","doc":"The person ID of the message author.","summary":"

The person ID of the message author.

","abstract":false,"args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"args_string":"(person_id : String)","args_html":"(person_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L49"},"def":{"name":"person_id=","args":[{"name":"person_id","external_name":"person_id","restriction":"String"}],"visibility":"Public","body":"@person_id = person_id"}},{"html_id":"room_id:String-instance-method","name":"room_id","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id","return_type":"String","visibility":"Public","body":"@room_id"}},{"html_id":"room_id=(room_id:String)-instance-method","name":"room_id=","doc":"The room ID of the message.","summary":"

The room ID of the message.

","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L17"},"def":{"name":"room_id=","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"@room_id = room_id"}},{"html_id":"room_type:String-instance-method","name":"room_type","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"room_type=(room_type:String)-instance-method","name":"room_type=","doc":"The type of room.","summary":"

The type of room.

","abstract":false,"args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"args_string":"(room_type : String)","args_html":"(room_type : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L21"},"def":{"name":"room_type=","args":[{"name":"room_type","external_name":"room_type","restriction":"String"}],"visibility":"Public","body":"@room_type = room_type"}},{"html_id":"text:String-instance-method","name":"text","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}},{"html_id":"text=(text:String)-instance-method","name":"text=","doc":"The message, in plain text.","summary":"

The message, in plain text.

","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L33"},"def":{"name":"text=","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"@text = text"}},{"html_id":"to_person_email:String|Nil-instance-method","name":"to_person_email","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_email"}},{"html_id":"to_person_email=(to_person_email:String|Nil)-instance-method","name":"to_person_email=","doc":"The email address of the recipient when sending a 1:1 message.","summary":"

The email address of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"args_string":"(to_person_email : String | Nil)","args_html":"(to_person_email : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L29"},"def":{"name":"to_person_email=","args":[{"name":"to_person_email","external_name":"to_person_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_email = to_person_email"}},{"html_id":"to_person_id:String|Nil-instance-method","name":"to_person_id","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id","return_type":"String | ::Nil","visibility":"Public","body":"@to_person_id"}},{"html_id":"to_person_id=(to_person_id:String|Nil)-instance-method","name":"to_person_id=","doc":"The person ID of the recipient when sending a 1:1 message.","summary":"

The person ID of the recipient when sending a 1:1 message.

","abstract":false,"args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"args_string":"(to_person_id : String | Nil)","args_html":"(to_person_id : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L25"},"def":{"name":"to_person_id=","args":[{"name":"to_person_id","external_name":"to_person_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@to_person_id = to_person_id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","doc":"The date and time the message was created.","summary":"

The date and time the message was created.

","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/cisco/webex/models/message.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/message.cr#L73"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/Cisco/Webex/Models/Peek","path":"Cisco/Webex/Models/Peek.html","kind":"class","full_name":"Cisco::Webex::Models::Peek","name":"Peek","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/peek.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Events::Type-instance-method","name":"data","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data","return_type":"Events::Type","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Events::Type)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"args_string":"(data : Events::Type)","args_html":"(data : Events::Type)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L11"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Events::Type"}],"visibility":"Public","body":"@data = data"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/peek.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/peek.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Person","path":"Cisco/Webex/Models/Person.html","kind":"class","full_name":"Cisco::Webex::Models::Person","name":"Person","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/person.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/person.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/person.cr#L8"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}}]},{"html_id":"drivers/Cisco/Webex/Models/Room","path":"Cisco/Webex/Models/Room.html","kind":"class","full_name":"Cisco::Webex::Models::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/models/room.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Cisco/Webex/Models","kind":"module","full_name":"Cisco::Webex::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created:String-instance-method","name":"created","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created","return_type":"String","visibility":"Public","body":"@created"}},{"html_id":"created=(created:String)-instance-method","name":"created=","doc":"The date and time the room was created.","summary":"

The date and time the room was created.

","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"String"}],"args_string":"(created : String)","args_html":"(created : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L37"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"String"}],"visibility":"Public","body":"@created = created"}},{"html_id":"creator_id:String-instance-method","name":"creator_id","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id","return_type":"String","visibility":"Public","body":"@creator_id"}},{"html_id":"creator_id=(creator_id:String)-instance-method","name":"creator_id=","doc":"The ID of the person who created this room.","summary":"

The ID of the person who created this room.

","abstract":false,"args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"args_string":"(creator_id : String)","args_html":"(creator_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L33"},"def":{"name":"creator_id=","args":[{"name":"creator_id","external_name":"creator_id","restriction":"String"}],"visibility":"Public","body":"@creator_id = creator_id"}},{"html_id":"id:String-instance-method","name":"id","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","doc":"A unique identifier for the room.","summary":"

A unique identifier for the room.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"is_locked:Bool-instance-method","name":"is_locked","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked","return_type":"Bool","visibility":"Public","body":"@is_locked"}},{"html_id":"is_locked=(is_locked:Bool)-instance-method","name":"is_locked=","doc":"Whether the room is moderated (locked) or not.","summary":"

Whether the room is moderated (locked) or not.

","abstract":false,"args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"args_string":"(is_locked : Bool)","args_html":"(is_locked : Bool)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L21"},"def":{"name":"is_locked=","args":[{"name":"is_locked","external_name":"is_locked","restriction":"Bool"}],"visibility":"Public","body":"@is_locked = is_locked"}},{"html_id":"last_activity:String-instance-method","name":"last_activity","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity","return_type":"String","visibility":"Public","body":"@last_activity"}},{"html_id":"last_activity=(last_activity:String)-instance-method","name":"last_activity=","doc":"The date and time of the room\"s last activity..","summary":"

The date and time of the room"s last activity..

","abstract":false,"args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"args_string":"(last_activity : String)","args_html":"(last_activity : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L29"},"def":{"name":"last_activity=","args":[{"name":"last_activity","external_name":"last_activity","restriction":"String"}],"visibility":"Public","body":"@last_activity = last_activity"}},{"html_id":"owner_id:String-instance-method","name":"owner_id","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id","return_type":"String","visibility":"Public","body":"@owner_id"}},{"html_id":"owner_id=(owner_id:String)-instance-method","name":"owner_id=","doc":"The ID of the organization which owns this room.","summary":"

The ID of the organization which owns this room.

","abstract":false,"args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(owner_id : String)","args_html":"(owner_id : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L41"},"def":{"name":"owner_id=","args":[{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"@owner_id = owner_id"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"team_id=(team_id:String|Nil)-instance-method","name":"team_id=","doc":"The ID for the team with which this room is associated..","summary":"

The ID for the team with which this room is associated..

","abstract":false,"args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(team_id : String | Nil)","args_html":"(team_id : String | Nil)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L25"},"def":{"name":"team_id=","args":[{"name":"team_id","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@team_id = team_id"}},{"html_id":"title:String-instance-method","name":"title","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","doc":"The name of the room.","summary":"

The name of the room.

","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L13"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","doc":"The room type.","summary":"

The room type.

","abstract":false,"location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","doc":"The room type.","summary":"

The room type.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/cisco/webex/models/room.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/models/room.cr#L17"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Cisco/Webex/Session","path":"Cisco/Webex/Session.html","kind":"class","full_name":"Cisco::Webex::Session","name":"Session","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/session.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Log","name":"Log","value":"::Log.for(self)"}],"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(access_token:String)-class-method","name":"new","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L13"},"def":{"name":"new","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"base_url:String-instance-method","name":"base_url","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url","return_type":"String","visibility":"Public","body":"@base_url"}},{"html_id":"base_url=(base_url:String)-instance-method","name":"base_url=","abstract":false,"args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"args_string":"(base_url : String)","args_html":"(base_url : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L6"},"def":{"name":"base_url=","args":[{"name":"base_url","external_name":"base_url","restriction":"String"}],"visibility":"Public","body":"@base_url = base_url"}},{"html_id":"delete(url:String,**kwargs):Halite::Response-instance-method","name":"delete","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L76"},"def":{"name":"delete","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"DELETE\", url, **kwargs)"}},{"html_id":"get(url:String,**kwargs):Halite::Response-instance-method","name":"get","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L61"},"def":{"name":"get","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"GET\", url, **kwargs)"}},{"html_id":"post(url:String,**kwargs):Halite::Response-instance-method","name":"post","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L66"},"def":{"name":"post","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"POST\", url, **kwargs)"}},{"html_id":"put(url:String,**kwargs):Halite::Response-instance-method","name":"put","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String, **kwargs) : Halite::Response","args_html":"(url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L71"},"def":{"name":"put","args":[{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"request(\"PUT\", url, **kwargs)"}},{"html_id":"request(method:String,url:String,**kwargs):Halite::Response-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(method : String, url : String, **kwargs) : Halite::Response","args_html":"(method : String, url : String, **kwargs) : Halite::Response","location":{"filename":"src/cisco/webex/session.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L16"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"url","external_name":"url","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Halite::Response","visibility":"Public","body":"absolute_url = ((URI.parse(base_url)).resolve(url)).to_s\n@client.headers({\"Authorization\" => [\"Bearer\", @access_token].join(\" \")})\n@client.headers({\"Content-Type\" => \"application/json;charset=utf-8\"})\n@client.timeout(single_request_timeout)\nloop do\n case method\n when \"GET\"\n response = @client.get(absolute_url, **kwargs)\n when \"POST\"\n response = @client.post(absolute_url, **kwargs)\n when \"PUT\"\n response = @client.put(absolute_url, **kwargs)\n when \"DELETE\"\n response = @client.delete(absolute_url, **kwargs)\n else\n raise(Exceptions::Method.new(\"The request-method type is invalid.\"))\n end\n begin\n status_code = StatusCode.new(response.status_code)\n if response.status_code == 429\n raise(Exceptions::RateLimit.new(status_code.message))\n end\n if !status_code.valid?\n raise(Exceptions::StatusCode.new(status_code.message))\n end\n return response\n rescue e : Exceptions::StatusCode\n Log.error(exception: e) do\n end\n rescue e : Exceptions::RateLimit\n Log.error(exception: e) do\n end\n retry_after = (response.headers[\"Retry-After\"]? || \"15\").to_i * 1000\n sleep(retry_after)\n end\nend\n"}},{"html_id":"single_request_timeout:Int32-instance-method","name":"single_request_timeout","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout","return_type":"Int32","visibility":"Public","body":"@single_request_timeout"}},{"html_id":"single_request_timeout=(single_request_timeout:Int32)-instance-method","name":"single_request_timeout=","abstract":false,"args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"args_string":"(single_request_timeout : Int32)","args_html":"(single_request_timeout : Int32)","location":{"filename":"src/cisco/webex/session.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L7"},"def":{"name":"single_request_timeout=","args":[{"name":"single_request_timeout","external_name":"single_request_timeout","restriction":"Int32"}],"visibility":"Public","body":"@single_request_timeout = single_request_timeout"}},{"html_id":"user_agent:String-instance-method","name":"user_agent","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent","return_type":"String","visibility":"Public","body":"@user_agent"}},{"html_id":"user_agent=(user_agent:String)-instance-method","name":"user_agent=","abstract":false,"args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"args_string":"(user_agent : String)","args_html":"(user_agent : String)","location":{"filename":"src/cisco/webex/session.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L8"},"def":{"name":"user_agent=","args":[{"name":"user_agent","external_name":"user_agent","restriction":"String"}],"visibility":"Public","body":"@user_agent = user_agent"}},{"html_id":"wait_on_rate_limit:Bool-instance-method","name":"wait_on_rate_limit","abstract":false,"location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit","return_type":"Bool","visibility":"Public","body":"@wait_on_rate_limit"}},{"html_id":"wait_on_rate_limit=(wait_on_rate_limit:Bool)-instance-method","name":"wait_on_rate_limit=","abstract":false,"args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"args_string":"(wait_on_rate_limit : Bool)","args_html":"(wait_on_rate_limit : Bool)","location":{"filename":"src/cisco/webex/session.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/session.cr#L9"},"def":{"name":"wait_on_rate_limit=","args":[{"name":"wait_on_rate_limit","external_name":"wait_on_rate_limit","restriction":"Bool"}],"visibility":"Public","body":"@wait_on_rate_limit = wait_on_rate_limit"}}]},{"html_id":"drivers/Cisco/Webex/StatusCode","path":"Cisco/Webex/StatusCode.html","kind":"class","full_name":"Cisco::Webex::StatusCode","name":"StatusCode","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cisco/webex/status_code.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"constructors":[{"html_id":"new(code:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/cisco/webex/status_code.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L6"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L18"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"Constants::STATUS_CODES[@code]"}},{"html_id":"valid?:Bool-instance-method","name":"valid?","abstract":false,"location":{"filename":"src/cisco/webex/status_code.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/status_code.cr#L9"},"def":{"name":"valid?","return_type":"Bool","visibility":"Public","body":"case @code\nwhen 200, 204\n true\nelse\n false\nend"}}]},{"html_id":"drivers/Cisco/Webex/Utils","path":"Cisco/Webex/Utils.html","kind":"module","full_name":"Cisco::Webex::Utils","name":"Utils","abstract":false,"locations":[{"filename":"src/cisco/webex/utils.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Cisco/Webex","kind":"module","full_name":"Cisco::Webex","name":"Webex"},"class_methods":[{"html_id":"hash_from_items_with_values(**kwargs)-class-method","name":"hash_from_items_with_values","abstract":false,"location":{"filename":"src/cisco/webex/utils.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L4"},"def":{"name":"hash_from_items_with_values","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"kwargs = kwargs.map do |k, v|\n if (v != nil) && (v != \"\")\n {\"#{k}\" => v}\n end\nend\nkwargs.reject!(nil)\nkwargs = kwargs.reduce do |acc, i|\n acc.try(&.merge(i.not_nil!))\nend\nkwargs\n"}},{"html_id":"named_tuple_from_hash(hash)-class-method","name":"named_tuple_from_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":""}],"args_string":"(hash)","args_html":"(hash)","location":{"filename":"src/cisco/webex/utils.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/utils.cr#L17"},"def":{"name":"named_tuple_from_hash","args":[{"name":"hash","external_name":"hash","restriction":""}],"visibility":"Public","body":"named_tuple = NamedTuple.new(roomId: String, text: String)\nnamed_tuple.from(hash)\n"}}]}]}]},{"html_id":"drivers/Clipsal","path":"Clipsal.html","kind":"module","full_name":"Clipsal","name":"Clipsal","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Clipsal/CBus","path":"Clipsal/CBus.html","kind":"class","full_name":"Clipsal::CBus","name":"CBus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"},{"id":"RAMP_RATES","name":"RAMP_RATES","value":"{(...2000_u32) => 0_u8, (2000_u32...6000_u32) => 1_u8, (6000_u32...10000_u32) => 2_u8, (10000_u32...15000_u32) => 3_u8, (15000_u32...25000_u32) => 4_u8, (25000_u32...35000_u32) => 5_u8, (35000_u32...50000_u32) => 6_u8, (50000_u32...75000_u32) => 7_u8, (75000_u32...105000_u32) => 8_u8, (105000_u32...150000_u32) => 9_u8, (150000_u32...240000_u32) => 10_u8, (240000_u32...360000_u32) => 11_u8, (360000_u32...510000_u32) => 12_u8, (510000_u32...720000_u32) => 13_u8, (720000_u32...960000_u32) => 14_u8, (960000_u32...) => 15_u8}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Clipsal","kind":"module","full_name":"Clipsal","name":"Clipsal"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"send(\"|||\\r\", priority: 99)\nschedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n send(\"|||\\r\", priority: 0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L35"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L116"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 56)\nself[Area.new(group.to_u32, append: \"level\")]?\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/clipsal/c_bus.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L60"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"_application, group = get_application_group(area, 202)\nself[Area.new(group.to_u32)]?\n"}},{"html_id":"lookup_ramp_rate(fade_time:UInt32):UInt8-instance-method","name":"lookup_ramp_rate","abstract":false,"args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(fade_time : UInt32) : UInt8","args_html":"(fade_time : UInt32) : UInt8","location":{"filename":"src/clipsal/c_bus.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L84"},"def":{"name":"lookup_ramp_rate","args":[{"name":"fade_time","external_name":"fade_time","restriction":"UInt32"}],"return_type":"UInt8","visibility":"Public","body":"range = RAMP_RATES.keys.find(&.includes?(fade_time))\nrate = RAMP_RATES[range]\n((rate & 15_u8) << 3) | 2_u8\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/clipsal/c_bus.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@trigger_groups = (setting?(Array(UInt8), :trigger_groups)) || [202_u8]"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/clipsal/c_bus.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L121"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"payload = String.new(data)\nlogger.debug do\n \"CBus sent: #{payload}\"\nend\ndata = payload[1..-2].hexbytes\nif !(check_checksum(data))\n return task.try(&.abort(\"CBus checksum failed\"))\nend\nif data[0] != 5\n logger.debug do\n \"was not a Point -> MultiPoint response: type 0x#{data[0].to_s(16)}\"\n end\n return\nend\napplication = data[1]\ncommands = data[3..-2].to_a\nwhile commands.size > 0\n current = commands.shift\n case application\n when .in?(@trigger_groups)\n area = if application == 202_u8\n Area.new(commands.shift.to_u32)\n else\n Area.new(commands.shift.to_u32, channel: application.to_u32)\n end\n case current\n when 2\n self[area] = commands.shift\n when 1\n self[area] = 0\n when 121\n self[area] = 255\n when 9\n logger.debug do\n \"trigger kill request: grp 0x#{commands[0].to_s(16)}\"\n end\n else\n logger.debug do\n \"unknown trigger group request 0x#{current.to_s(16)}\"\n end\n break\n end\n when 48..95\n case current\n when 1\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 0.0\n when 121\n self[Area.new(commands.shift.to_u32, append: \"level\")] = 100.0\n when 2\n group = commands.shift\n value = commands.shift\n area = Area.new(group.to_u32, append: \"blind\")\n if value == 255\n self[area] = :up\n else\n if value == 5\n self[area] = :stopped\n end\n end\n when 26\n group = commands.shift\n value = commands.shift\n if value == 0\n self[Area.new(group.to_u32, append: \"blind\")] = :down\n end\n when 9\n logger.debug do\n \"terminate ramp request: grp 0x#{commands[0].to_s(16)}\"\n end\n commands.shift\n else\n if ((current & 133) == 0) && commands.size > 1\n logger.debug do\n \"ramp request: grp 0x#{commands[0].to_s(16)} - level 0x#{commands[1].to_s(16)}\"\n end\n commands.shift(2)\n else\n logger.debug do\n \"unknown lighting request 0x#{current.to_s(16)}\"\n end\n break\n end\n end\n else\n logger.debug do\n \"unknown application request app 0x#{application.to_s(16)}\"\n end\n break\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L94"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 56)\nlevel = level.clamp(0.0, 100.0)\nlevel_byte = (level * LEVEL_PERCENTAGE).to_u8\ngroup = (group & 255).to_u8\nrate = lookup_ramp_rate(fade_time)\nstop_f = cmd_string(Bytes[5, 56, 0, 9, group])\ncommand = stop_f + (cmd_string(Bytes[5, application, 0, rate, group, level_byte]))\nself[\"#{area}_level\"] = level\nsend(command, name: \"level_#{application}_#{group}\")\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/clipsal/c_bus.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L50"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"application, group = get_application_group(area, 202)\naction = scene & 255\ncommand = Bytes[5, application, 0, 2, group, action.to_u8]\nself[area] = action\ndo_send(command)\n"}},{"html_id":"stop_fading(group:UInt8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"args_string":"(group : UInt8)","args_html":"(group : UInt8)","location":{"filename":"src/clipsal/c_bus.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L111"},"def":{"name":"stop_fading","args":[{"name":"group","external_name":"group","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[5, 56, 0, 9, group])"}}],"types":[{"html_id":"drivers/Clipsal/CBus/Area","path":"Clipsal/CBus/Area.html","kind":"alias","full_name":"Clipsal::CBus::Area","name":"Area","abstract":false,"locations":[{"filename":"src/clipsal/c_bus.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/clipsal/c_bus.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Clipsal/CBus","kind":"class","full_name":"Clipsal::CBus","name":"CBus"}}]}]},{"html_id":"drivers/Company3M","path":"Company3M.html","kind":"module","full_name":"Company3M","name":"Company3M","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Company3M/Displays","path":"Company3M/Displays.html","kind":"module","full_name":"Company3M::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Company3M","kind":"module","full_name":"Company3M","name":"Company3M"},"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay","path":"Company3M/Displays/WallDisplay.html","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Company3M/Displays","kind":"module","full_name":"Company3M::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L111"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:brightness, value)\n"}},{"html_id":"colour_temp(value:ColourTemp)-instance-method","name":"colour_temp","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"args_string":"(value : ColourTemp)","args_html":"(value : ColourTemp)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L132"},"def":{"name":"colour_temp","args":[{"name":"value","external_name":"value","restriction":"ColourTemp"}],"visibility":"Public","body":"set(:colour_temp, value)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L50"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L116"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:contrast, value)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L54"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L58"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"Polling device for connectivity heartbeat\"\nend\ntarget = @power_target\nif target.nil?\nelse\n power(target, priority: 0)\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L84"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"set(:audio_mute, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@monitor_id = (setting?(MonitorID, :monitor_id)) || MonitorID::All"}},{"html_id":"power(state:Bool,**options)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool, **options)","args_html":"(state : Bool, **options)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L72"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if state != @power_target\n self[:power_target] = @power_target = state\nend\nset(:power, state, **options)\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L144"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"response = begin\n parse_response(bytes)\nrescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse 3M packet\"\n end\n return task.try(&.abort)\nend\nif response.success?\nelse\n logger.warn do\n \"Device error: #{response.inspect}\"\n end\n return task.try(&.abort)\nend\nlogger.debug do\n \"Device response received: #{response.inspect}\"\nend\nself[response.command.to_s.underscore] = response.value\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:Int32|Float64)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64)","args_html":"(value : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L121"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"visibility":"Public","body":"value = in_range(value)\nset(:sharpness, value)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L92"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"set(:input, input)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L105"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"percentage = (in_range(level)) / 100.0\nadjusted = (percentage * 30.0).round_away.to_i\nset(:volume, adjusted)\n"}}],"types":[{"html_id":"drivers/Company3M/Displays/WallDisplay/ColourTemp","path":"Company3M/Displays/WallDisplay/ColourTemp.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ColourTemp","name":"ColourTemp","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L126"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"K9300","name":"K9300","value":"0"},{"id":"K6500","name":"K6500","value":"1"},{"id":"User","name":"User","value":"2"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"k6500?-instance-method","name":"k6500?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L128"},"def":{"name":"k6500?","visibility":"Public","body":"self == K6500"}},{"html_id":"k9300?-instance-method","name":"k9300?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L127"},"def":{"name":"k9300?","visibility":"Public","body":"self == K9300"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L129"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Command","path":"Company3M/Displays/WallDisplay/Command.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Brightness","name":"Brightness","value":"272_u16"},{"id":"Contrast","name":"Contrast","value":"274_u16"},{"id":"Sharpness","name":"Sharpness","value":"396_u16"},{"id":"ColourTemp","name":"ColourTemp","value":"596_u16"},{"id":"Volume","name":"Volume","value":"98_u16"},{"id":"AudioMute","name":"AudioMute","value":"141_u16"},{"id":"Input","name":"Input","value":"715_u16"},{"id":"Power","name":"Power","value":"3_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L191"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L186"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"colour_temp?-instance-method","name":"colour_temp?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L189"},"def":{"name":"colour_temp?","visibility":"Public","body":"self == ColourTemp"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L187"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L192"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L193"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L188"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L190"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/Input","path":"Company3M/Displays/WallDisplay/Input.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"2"},{"id":"DisplayPort","name":"DisplayPort","value":"3"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L15"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L14"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageSender","path":"Company3M/Displays/WallDisplay/MessageSender.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageSender","name":"MessageSender","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L176"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PC","name":"PC","value":"48"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"pc?-instance-method","name":"pc?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L177"},"def":{"name":"pc?","visibility":"Public","body":"self == PC"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MessageType","path":"Company3M/Displays/WallDisplay/MessageType.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L180"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"69_u8"},{"id":"Reply","name":"Reply","value":"70_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L181"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L182"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/MonitorID","path":"Company3M/Displays/WallDisplay/MonitorID.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::MonitorID","name":"MonitorID","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L163"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"42_u8"},{"id":"A","name":"A","value":"65_u8"},{"id":"B","name":"B","value":"66_u8"},{"id":"C","name":"C","value":"67_u8"},{"id":"D","name":"D","value":"68_u8"},{"id":"E","name":"E","value":"69_u8"},{"id":"F","name":"F","value":"70_u8"},{"id":"G","name":"G","value":"71_u8"},{"id":"H","name":"H","value":"72_u8"},{"id":"I","name":"I","value":"73_u8"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"a?-instance-method","name":"a?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L165"},"def":{"name":"a?","visibility":"Public","body":"self == A"}},{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L164"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"b?-instance-method","name":"b?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L166"},"def":{"name":"b?","visibility":"Public","body":"self == B"}},{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L167"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"d?-instance-method","name":"d?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L168"},"def":{"name":"d?","visibility":"Public","body":"self == D"}},{"html_id":"e?-instance-method","name":"e?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L169"},"def":{"name":"e?","visibility":"Public","body":"self == E"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L170"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"g?-instance-method","name":"g?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L171"},"def":{"name":"g?","visibility":"Public","body":"self == G"}},{"html_id":"h?-instance-method","name":"h?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L172"},"def":{"name":"h?","visibility":"Public","body":"self == H"}},{"html_id":"i?-instance-method","name":"i?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L173"},"def":{"name":"i?","visibility":"Public","body":"self == I"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/RequestPacket","path":"Company3M/Displays/WallDisplay/RequestPacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::RequestPacket","name":"RequestPacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::RequestPacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 1_u8\nend}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 48_u8\nend}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: sender, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: -> do\n (10.to_s(16)).upcase.rjust(2, '0')\nend, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: set_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 3_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L202"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"command=(command:Command)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"}],"args_string":"(command : Command)","args_html":"(command : Command)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L217"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"Command"}],"visibility":"Public","body":"code = (command.value.to_s(16)).upcase.rjust(4, '0')\nself.op_code_page = code[0..1]\nself.op_code = code[2..3]\ncommand\n"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"sender:MessageSender-instance-method","name":"sender","abstract":false,"def":{"name":"sender","return_type":"MessageSender","visibility":"Public","body":"@sender"}},{"html_id":"sender=(sender:MessageSender)-instance-method","name":"sender=","abstract":false,"args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"args_string":"(sender : MessageSender)","args_html":"(sender : MessageSender)","def":{"name":"sender=","args":[{"name":"sender","external_name":"sender","restriction":"MessageSender"}],"visibility":"Public","body":"@sender = sender"}},{"html_id":"set_value:String-instance-method","name":"set_value","abstract":false,"def":{"name":"set_value","return_type":"String","visibility":"Public","body":"@set_value"}},{"html_id":"set_value=(set_value:String)-instance-method","name":"set_value=","abstract":false,"args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"args_string":"(set_value : String)","args_html":"(set_value : String)","def":{"name":"set_value=","args":[{"name":"set_value","external_name":"set_value","restriction":"String"}],"visibility":"Public","body":"@set_value = set_value"}},{"html_id":"value=(val:Int32)-instance-method","name":"value=","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L224"},"def":{"name":"value=","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"self.set_value = (val.to_s(16)).upcase.rjust(4, '0')"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L201"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResponsePacket","path":"Company3M/Displays/WallDisplay/ResponsePacket.html","kind":"class","full_name":"Company3M::Displays::WallDisplay::ResponsePacket","name":"ResponsePacket","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Company3M::Displays::WallDisplay::ResponsePacket]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: header_start, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: reserved, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"enum\", name: receiver, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageSender}, {type: \"enum\", name: monitor_id, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MonitorID}, {type: \"enum\", name: message_type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: MessageType}, {type: \"string\", name: message_length, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_start, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n 2_u8\nend}, {type: \"enum\", name: result_code, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: ResultCode}, {type: \"string\", name: op_code_page, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: op_code, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: reply_type, cls: String, onlyif: nil, verify: nil, length: -> do\n 2\nend, value: nil, encoding: nil}, {type: \"string\", name: max_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"string\", name: current_value, cls: String, onlyif: nil, verify: nil, length: -> do\n 4\nend, value: nil, encoding: nil}, {type: \"basic\", name: message_end, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: bcc, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: delimiter, cls: UInt8, onlyif: nil, verify: nil, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L230"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bcc:UInt8-instance-method","name":"bcc","abstract":false,"def":{"name":"bcc","return_type":"UInt8","visibility":"Public","body":"@bcc"}},{"html_id":"bcc=(bcc:UInt8)-instance-method","name":"bcc=","abstract":false,"args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"args_string":"(bcc : UInt8)","args_html":"(bcc : UInt8)","def":{"name":"bcc=","args":[{"name":"bcc","external_name":"bcc","restriction":"UInt8"}],"visibility":"Public","body":"@bcc = bcc"}},{"html_id":"command:Command-instance-method","name":"command","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L250"},"def":{"name":"command","return_type":"Command","visibility":"Public","body":"if (__temp_1 = @command).nil?\n @command = (Command.from_value(\"#{op_code_page}#{op_code}\".to_i(16)))\nelse\n __temp_1\nend"}},{"html_id":"current_value:String-instance-method","name":"current_value","abstract":false,"def":{"name":"current_value","return_type":"String","visibility":"Public","body":"@current_value"}},{"html_id":"current_value=(current_value:String)-instance-method","name":"current_value=","abstract":false,"args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"args_string":"(current_value : String)","args_html":"(current_value : String)","def":{"name":"current_value=","args":[{"name":"current_value","external_name":"current_value","restriction":"String"}],"visibility":"Public","body":"@current_value = current_value"}},{"html_id":"delimiter:UInt8-instance-method","name":"delimiter","abstract":false,"def":{"name":"delimiter","return_type":"UInt8","visibility":"Public","body":"@delimiter"}},{"html_id":"delimiter=(delimiter:UInt8)-instance-method","name":"delimiter=","abstract":false,"args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"args_string":"(delimiter : UInt8)","args_html":"(delimiter : UInt8)","def":{"name":"delimiter=","args":[{"name":"delimiter","external_name":"delimiter","restriction":"UInt8"}],"visibility":"Public","body":"@delimiter = delimiter"}},{"html_id":"header_start:UInt8-instance-method","name":"header_start","abstract":false,"def":{"name":"header_start","return_type":"UInt8","visibility":"Public","body":"@header_start"}},{"html_id":"header_start=(header_start:UInt8)-instance-method","name":"header_start=","abstract":false,"args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"args_string":"(header_start : UInt8)","args_html":"(header_start : UInt8)","def":{"name":"header_start=","args":[{"name":"header_start","external_name":"header_start","restriction":"UInt8"}],"visibility":"Public","body":"@header_start = header_start"}},{"html_id":"max_value:String-instance-method","name":"max_value","abstract":false,"def":{"name":"max_value","return_type":"String","visibility":"Public","body":"@max_value"}},{"html_id":"max_value=(max_value:String)-instance-method","name":"max_value=","abstract":false,"args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"args_string":"(max_value : String)","args_html":"(max_value : String)","def":{"name":"max_value=","args":[{"name":"max_value","external_name":"max_value","restriction":"String"}],"visibility":"Public","body":"@max_value = max_value"}},{"html_id":"message_end:UInt8-instance-method","name":"message_end","abstract":false,"def":{"name":"message_end","return_type":"UInt8","visibility":"Public","body":"@message_end"}},{"html_id":"message_end=(message_end:UInt8)-instance-method","name":"message_end=","abstract":false,"args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"args_string":"(message_end : UInt8)","args_html":"(message_end : UInt8)","def":{"name":"message_end=","args":[{"name":"message_end","external_name":"message_end","restriction":"UInt8"}],"visibility":"Public","body":"@message_end = message_end"}},{"html_id":"message_length:String-instance-method","name":"message_length","abstract":false,"def":{"name":"message_length","return_type":"String","visibility":"Public","body":"@message_length"}},{"html_id":"message_length=(message_length:String)-instance-method","name":"message_length=","abstract":false,"args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"args_string":"(message_length : String)","args_html":"(message_length : String)","def":{"name":"message_length=","args":[{"name":"message_length","external_name":"message_length","restriction":"String"}],"visibility":"Public","body":"@message_length = message_length"}},{"html_id":"message_start:UInt8-instance-method","name":"message_start","abstract":false,"def":{"name":"message_start","return_type":"UInt8","visibility":"Public","body":"@message_start"}},{"html_id":"message_start=(message_start:UInt8)-instance-method","name":"message_start=","abstract":false,"args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"args_string":"(message_start : UInt8)","args_html":"(message_start : UInt8)","def":{"name":"message_start=","args":[{"name":"message_start","external_name":"message_start","restriction":"UInt8"}],"visibility":"Public","body":"@message_start = message_start"}},{"html_id":"message_type:MessageType-instance-method","name":"message_type","abstract":false,"def":{"name":"message_type","return_type":"MessageType","visibility":"Public","body":"@message_type"}},{"html_id":"message_type=(message_type:MessageType)-instance-method","name":"message_type=","abstract":false,"args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"args_string":"(message_type : MessageType)","args_html":"(message_type : MessageType)","def":{"name":"message_type=","args":[{"name":"message_type","external_name":"message_type","restriction":"MessageType"}],"visibility":"Public","body":"@message_type = message_type"}},{"html_id":"monitor_id:MonitorID-instance-method","name":"monitor_id","abstract":false,"def":{"name":"monitor_id","return_type":"MonitorID","visibility":"Public","body":"@monitor_id"}},{"html_id":"monitor_id=(monitor_id:MonitorID)-instance-method","name":"monitor_id=","abstract":false,"args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"args_string":"(monitor_id : MonitorID)","args_html":"(monitor_id : MonitorID)","def":{"name":"monitor_id=","args":[{"name":"monitor_id","external_name":"monitor_id","restriction":"MonitorID"}],"visibility":"Public","body":"@monitor_id = monitor_id"}},{"html_id":"op_code:String-instance-method","name":"op_code","abstract":false,"def":{"name":"op_code","return_type":"String","visibility":"Public","body":"@op_code"}},{"html_id":"op_code=(op_code:String)-instance-method","name":"op_code=","abstract":false,"args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"args_string":"(op_code : String)","args_html":"(op_code : String)","def":{"name":"op_code=","args":[{"name":"op_code","external_name":"op_code","restriction":"String"}],"visibility":"Public","body":"@op_code = op_code"}},{"html_id":"op_code_page:String-instance-method","name":"op_code_page","abstract":false,"def":{"name":"op_code_page","return_type":"String","visibility":"Public","body":"@op_code_page"}},{"html_id":"op_code_page=(op_code_page:String)-instance-method","name":"op_code_page=","abstract":false,"args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"args_string":"(op_code_page : String)","args_html":"(op_code_page : String)","def":{"name":"op_code_page=","args":[{"name":"op_code_page","external_name":"op_code_page","restriction":"String"}],"visibility":"Public","body":"@op_code_page = op_code_page"}},{"html_id":"receiver:MessageSender-instance-method","name":"receiver","abstract":false,"def":{"name":"receiver","return_type":"MessageSender","visibility":"Public","body":"@receiver"}},{"html_id":"receiver=(receiver:MessageSender)-instance-method","name":"receiver=","abstract":false,"args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"args_string":"(receiver : MessageSender)","args_html":"(receiver : MessageSender)","def":{"name":"receiver=","args":[{"name":"receiver","external_name":"receiver","restriction":"MessageSender"}],"visibility":"Public","body":"@receiver = receiver"}},{"html_id":"reply_type:String-instance-method","name":"reply_type","abstract":false,"def":{"name":"reply_type","return_type":"String","visibility":"Public","body":"@reply_type"}},{"html_id":"reply_type=(reply_type:String)-instance-method","name":"reply_type=","abstract":false,"args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"args_string":"(reply_type : String)","args_html":"(reply_type : String)","def":{"name":"reply_type=","args":[{"name":"reply_type","external_name":"reply_type","restriction":"String"}],"visibility":"Public","body":"@reply_type = reply_type"}},{"html_id":"reserved:UInt8-instance-method","name":"reserved","abstract":false,"def":{"name":"reserved","return_type":"UInt8","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:UInt8)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"args_string":"(reserved : UInt8)","args_html":"(reserved : UInt8)","def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"UInt8"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"result_code:ResultCode-instance-method","name":"result_code","abstract":false,"def":{"name":"result_code","return_type":"ResultCode","visibility":"Public","body":"@result_code"}},{"html_id":"result_code=(result_code:ResultCode)-instance-method","name":"result_code=","abstract":false,"args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"args_string":"(result_code : ResultCode)","args_html":"(result_code : ResultCode)","def":{"name":"result_code=","args":[{"name":"result_code","external_name":"result_code","restriction":"ResultCode"}],"visibility":"Public","body":"@result_code = result_code"}},{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L254"},"def":{"name":"success?","visibility":"Public","body":"self.result_code.success?"}},{"html_id":"value-instance-method","name":"value","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L258"},"def":{"name":"value","visibility":"Public","body":"raw_val = self.current_value.to_i(16)\ncase self.command\nin .brightness?, .contrast?, .sharpness?\n raw_val\nin .volume?\n (raw_val / 30.0) * 100.0\nin .audio_mute?, .power?\n raw_val == 1\nin .colour_temp?\n ColourTemp.from_value(raw_val)\nin .input?\n Input.from_value(raw_val)\nend\n"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L229"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}]},{"html_id":"drivers/Company3M/Displays/WallDisplay/ResultCode","path":"Company3M/Displays/WallDisplay/ResultCode.html","kind":"enum","full_name":"Company3M::Displays::WallDisplay::ResultCode","name":"ResultCode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/company_3m/displays/wall_display.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L196"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Success","name":"Success","value":"12336_u16"},{"id":"Unsupported","name":"Unsupported","value":"12337_u16"}],"namespace":{"html_id":"drivers/Company3M/Displays/WallDisplay","kind":"class","full_name":"Company3M::Displays::WallDisplay","name":"WallDisplay"},"instance_methods":[{"html_id":"success?-instance-method","name":"success?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L197"},"def":{"name":"success?","visibility":"Public","body":"self == Success"}},{"html_id":"unsupported?-instance-method","name":"unsupported?","abstract":false,"location":{"filename":"src/company_3m/displays/wall_display.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/company_3m/displays/wall_display.cr#L198"},"def":{"name":"unsupported?","visibility":"Public","body":"self == Unsupported"}}]}]}]}]},{"html_id":"drivers/Crestron","path":"Crestron.html","kind":"module","full_name":"Crestron","name":"Crestron","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Crestron/AspectRatio","path":"Crestron/AspectRatio.html","kind":"enum","full_name":"Crestron::AspectRatio","name":"AspectRatio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L11"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MaintainAspectRatio","name":"MaintainAspectRatio","value":"0"},{"id":"StretchToFit","name":"StretchToFit","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"maintain_aspect_ratio?-instance-method","name":"maintain_aspect_ratio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L12"},"def":{"name":"maintain_aspect_ratio?","visibility":"Public","body":"self == MaintainAspectRatio"}},{"html_id":"stretch_to_fit?-instance-method","name":"stretch_to_fit?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L13"},"def":{"name":"stretch_to_fit?","visibility":"Public","body":"self == StretchToFit"}}]},{"html_id":"drivers/Crestron/CresNext","path":"Crestron/CresNext.html","kind":"class","full_name":"Crestron::CresNext","name":"CresNext","abstract":true,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/cres_next.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"}],"subclasses":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Parent module for Crestron DM NVX devices.","summary":"

Parent module for Crestron DM NVX devices.

","instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(10.minutes) do\n maintain_session\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"maintain_session-instance-method","name":"maintain_session","doc":"========================================\nHTTP for updates and session maintenance\n========================================","summary":"

======================================== HTTP for updates and session maintenance ========================================

","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L96"},"def":{"name":"maintain_session","visibility":"Public","body":"response = get(\"/Device/DeviceInfo\")\nif response.success?\nelse\n return logout\nend\nlogger.debug do\n \"Maintaining Session:\\n#{response.body}\"\nend\n"}},{"html_id":"manual_send(payload:JSON::Any)-instance-method","name":"manual_send","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(payload : JSON::Any)","args_html":"(payload : JSON::Any)","location":{"filename":"src/crestron/cres_next.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L82"},"def":{"name":"manual_send","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"data = payload.to_json\nlogger.debug do\n \"Sending: #{data}\"\nend\nsend(data, wait: false)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/cres_next.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L88"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\n"}},{"html_id":"tokenize(path:String)-instance-method","name":"tokenize","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/crestron/cres_next.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L33"},"def":{"name":"tokenize","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"(path.split('/')).reject(&.empty?)"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/crestron/cres_next.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next.cr#L15"},"def":{"name":"websocket_headers","visibility":"Public","body":"authenticate\nheaders = HTTP::Headers.new\ntransport.cookies.add_request_headers(headers)\nif @xsrf_token.empty?\nelse\n headers[\"CREST-XSRF-TOKEN\"] = @xsrf_token\nend\nheaders[\"User-Agent\"] = \"advanced-rest-client\"\nheaders\n"}}]},{"html_id":"drivers/Crestron/CresNextAuth","path":"Crestron/CresNextAuth.html","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth","abstract":false,"locations":[{"filename":"src/crestron/cres_next_auth.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/OccupancySensor","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"authenticate-instance-method","name":"authenticate","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L6"},"def":{"name":"authenticate","visibility":"Public","body":"logger.debug do\n \"Authenticating\"\nend\nuri = URI.parse(config.uri.not_nil!)\nhost = uri.host\nresponse = post(\"/userlogin.html\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Referer\" => \"https://#{host}/userlogin.html\", \"Origin\" => \"https://#{host}\"}, body: URI::Params.build do |form|\n form.add(\"login\", setting(String, :username))\n form.add(\"passwd\", setting(String, :password))\nend)\ncase response.status_code\nwhen 200, 302\n auth_cookies = [\"AuthByPasswd\", \"iv\", \"tag\", \"userid\", \"userstr\"] of ::String\n if (auth_cookies - response.cookies.to_h.keys).empty?\n @xsrf_token = response.headers[\"CREST-XSRF-TOKEN\"]? || \"\"\n logger.debug do\n \"Authenticated\"\n end\n else\n error = \"Device did not return all auth information\"\n end\nwhen 403\n error = \"Invalid credentials\"\nelse\n error = \"Unexpected response (HTTP #{response.status})\"\nend\nif error\n logger.error do\n error\n end\n raise(error)\nend\n"}},{"html_id":"logout-instance-method","name":"logout","abstract":false,"location":{"filename":"src/crestron/cres_next_auth.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/cres_next_auth.cr#L43"},"def":{"name":"logout","visibility":"Public","body":"begin\n response = post(\"/logout\")\n case response.status\n when 302\n logger.debug do\n \"Logout successful\"\n end\n true\n else\n logger.warn do\n \"Unexpected response (HTTP #{response.status})\"\n end\n false\n end\nensure\n @xsrf_token = \"\"\n transport.cookies.clear\n schedule.clear\n disconnect\nend"}}]},{"html_id":"drivers/Crestron/Fusion","path":"Crestron/Fusion.html","kind":"class","full_name":"Crestron::Fusion","name":"Fusion","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/fusion.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"TODO: add handling of security level 2\nTODO: parse returend results into models\n\nDocumentation: https://sdkcon78221.crestron.com/sdk/Fusion_APIs/Content/Topics/Default.htm","summary":"

TODO add handling of security level 2 TODO: parse returend results into models

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_room(room_id:String)-instance-method","name":"delete_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L128"},"def":{"name":"delete_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"DELETE\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_action(action_id:String)-instance-method","name":"get_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"args_string":"(action_id : String)","args_html":"(action_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L61"},"def":{"name":"get_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/actions/#{action_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_actions(name:String|Nil,room_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_actions","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, room_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L51"},"def":{"name":"get_actions","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif room_id\n params[\"room\"] = room_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/actions\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_alerts(node_ids:Array(String)|Nil=nil,room_ids:Array(String)|Nil=nil,start_time:String|Nil=nil,end_time:String|Nil=nil,severity:Int32|Nil=nil,active_alerts:Bool=true)-instance-method","name":"get_alerts","doc":"Severity should be in the range 1-4","summary":"

Severity should be in the range 1-4

","abstract":false,"args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"args_string":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","args_html":"(node_ids : Array(String) | Nil = nil, room_ids : Array(String) | Nil = nil, start_time : String | Nil = nil, end_time : String | Nil = nil, severity : Int32 | Nil = nil, active_alerts : Bool = true)","location":{"filename":"src/crestron/fusion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L86"},"def":{"name":"get_alerts","args":[{"name":"node_ids","default_value":"nil","external_name":"node_ids","restriction":"Array(String) | ::Nil"},{"name":"room_ids","default_value":"nil","external_name":"room_ids","restriction":"Array(String) | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"String | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"String | ::Nil"},{"name":"severity","default_value":"nil","external_name":"severity","restriction":"Int32 | ::Nil"},{"name":"active_alerts","default_value":"true","external_name":"active_alerts","restriction":"Bool"}],"visibility":"Public","body":"params = URI::Params.new\nif node_ids\n params[\"nodes\"] = node_ids.join(',')\nend\nif room_ids\n params[\"rooms\"] = room_ids.join(',')\nend\nif start_time\n params[\"start\"] = start_time\nend\nif end_time\n params[\"end\"] = end_time\nend\nif severity\n params[\"severity\"] = severity.to_s\nend\nif active_alerts\n params[\"activeAlerts\"] = active_alerts.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_room(room_id:String)-instance-method","name":"get_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"args_string":"(room_id : String)","args_html":"(room_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L118"},"def":{"name":"get_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/rooms/#{room_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_rooms(name:String|Nil,node_id:String|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"get_rooms","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","args_html":"(name : String | Nil, node_id : String | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L108"},"def":{"name":"get_rooms","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif name\n params[\"search\"] = name\nend\nif node_id\n params[\"node\"] = node_id\nend\nif page\n params[\"page\"] = page.to_s\nend\nresponse = perform_request(\"GET\", \"/rooms\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_value(symbol_id:String,attribute_id:String)-instance-method","name":"get_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String)","args_html":"(symbol_id : String, attribute_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L142"},"def":{"name":"get_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}/#{attribute_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"get_signal_values(symbol_id:String)-instance-method","name":"get_signal_values","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"args_string":"(symbol_id : String)","args_html":"(symbol_id : String)","location":{"filename":"src/crestron/fusion.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L137"},"def":{"name":"get_signal_values","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"GET\", \"/signalvalues/#{symbol_id}\")\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/fusion.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@security_level = setting(Int32, :security_level)\n@user_id = setting(String, :user_id)\n@api_pass_code = setting(String, :api_pass_code)\n@content_type = \"application/\" + (setting(String, :content_type))\n"}},{"html_id":"post_room(room_xml_or_json:String)-instance-method","name":"post_room","abstract":false,"args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_xml_or_json : String)","args_html":"(room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L103"},"def":{"name":"post_room","args":[{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"POST\", \"/rooms\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_room(room_id:String,room_xml_or_json:String)-instance-method","name":"put_room","abstract":false,"args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"args_string":"(room_id : String, room_xml_or_json : String)","args_html":"(room_id : String, room_xml_or_json : String)","location":{"filename":"src/crestron/fusion.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L123"},"def":{"name":"put_room","args":[{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"room_xml_or_json","external_name":"room_xml_or_json","restriction":"String"}],"visibility":"Public","body":"response = perform_request(\"PUT\", \"/rooms/#{room_id}\", body: room_xml_or_json)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"put_signal_value(symbol_id:String,attribute_id:String,value:String)-instance-method","name":"put_signal_value","abstract":false,"args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(symbol_id : String, attribute_id : String, value : String)","args_html":"(symbol_id : String, attribute_id : String, value : String)","location":{"filename":"src/crestron/fusion.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L147"},"def":{"name":"put_signal_value","args":[{"name":"symbol_id","external_name":"symbol_id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.new\nparams[\"value\"] = value\nresponse = perform_request(\"PUT\", \"/signalvalues/#{symbol_id}/#{attribute_id}\", params)\n@content_type == \"xml\" ? XML.parse(response.body) : JSON.parse(response.body)\n"}},{"html_id":"send_action(action_id:String|Nil,room_id:String|Nil=nil,node_id:String|Nil=nil)-instance-method","name":"send_action","abstract":false,"args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"args_string":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","args_html":"(action_id : String | Nil, room_id : String | Nil = nil, node_id : String | Nil = nil)","location":{"filename":"src/crestron/fusion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/fusion.cr#L66"},"def":{"name":"send_action","args":[{"name":"action_id","external_name":"action_id","restriction":"String | ::Nil"},{"name":"room_id","default_value":"nil","external_name":"room_id","restriction":"String | ::Nil"},{"name":"node_id","default_value":"nil","external_name":"node_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.new\nif room_id\n params[\"room\"] = room_id\nend\nif node_id\n params[\"node\"] = node_id\nend\npath = if (id = action_id) && !id.empty?\n \"/actions/#{id}\"\nelse\n \"/actions\"\nend\nresponse = perform_request(\"POST\", path, params)\nJSON.parse(response.body)\n"}}]},{"html_id":"drivers/Crestron/NvxAddressManager","path":"Crestron/NvxAddressManager.html","kind":"class","full_name":"Crestron::NvxAddressManager","name":"NvxAddressManager","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_address_manager.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MULTICAST_ADDRESSES","name":"MULTICAST_ADDRESSES","value":"::IPAddress::IPv4.new(\"224.0.0.0/4\")","doc":"https://github.com/Sija/ipaddress.cr","summary":"

https://github.com/Sija/ipaddress.cr

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"addr = setting(String, :base_address)\nbase_addr = ::IPAddress::IPv4.new(addr)\n@base_address = base_addr.to_u32\nif MULTICAST_ADDRESSES.includes?(base_addr)\nelse\n logger.warn do\n \"#{addr} is not a valid multicast address\"\n end\nend\n@block_size = setting(Int32, :block_size)\n"}},{"html_id":"readdress_streams-instance-method","name":"readdress_streams","abstract":false,"location":{"filename":"src/crestron/nvx_address_manager.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_address_manager.cr#L38"},"def":{"name":"readdress_streams","visibility":"Public","body":"logger.debug do\n \"readdressing devices\"\nend\naddress_pairs = encoders.zip(addresses)\ninteractions = address_pairs.map_with_index(1) do |__temp_230, idx|\n mod, ip_u32 = __temp_230\n ip = ::IPAddress::IPv4.parse_u32(ip_u32)\n logger.debug do\n \"setting encoder #{idx} to #{ip}\"\n end\n mod.multicast_address(ip.to_s)\nend\nfailed = 0\ninteractions.each do |request|\n begin\n request.get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"addressing NVX devices\"\n end\n end\nend\nif failed == 0\nelse\n raise(\"#{failed} failed to set stream address\")\nend\ninteractions.size\n"}}]},{"html_id":"drivers/Crestron/NvxRx","path":"Crestron/NvxRx.html","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Receiver","kind":"module","full_name":"Crestron::Receiver","name":"Receiver"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(mode:AspectRatio)-instance-method","name":"aspect_ratio","doc":"aspect ratio defined in nvx_rx_models","summary":"

aspect ratio defined in nvx_rx_models

","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"args_string":"(mode : AspectRatio)","args_html":"(mode : AspectRatio)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L100"},"def":{"name":"aspect_ratio","args":[{"name":"mode","external_name":"mode","restriction":"AspectRatio"}],"visibility":"Public","body":"logger.debug do\n \"setting output aspect ratio mode: #{mode}\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{AspectRatioMode: mode}]}], name: :aspect_ratio)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L27"},"def":{"name":"connected","visibility":"Public","body":"super()\naudio_follows_video = setting?(Bool, :audio_follows_video)\n@audio_follows_video = audio_follows_video.nil? ? true : audio_follows_video\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Receiver\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Receiver\"\nend\nquery(\"/XioSubscription/Subscriptions\") do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\nend\nschedule.every(1.hour) do\n query(\"/XioSubscription/Subscriptions\", priority: 5) do |subs|\n self[:subscriptions] = @subscriptions = subs.as_h\n end\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L85"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nws_update(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L81"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"switch_layer(map.keys.first, layer)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_rx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L59"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}}],"types":[{"html_id":"drivers/Crestron/NvxRx/Input","path":"Crestron/NvxRx/Input.html","kind":"alias","full_name":"Crestron::NvxRx::Input","name":"Input","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/Output","path":"Crestron/NvxRx/Output.html","kind":"alias","full_name":"Crestron::NvxRx::Output","name":"Output","abstract":false,"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Int32","aliased_html":"Int32","const":false,"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}},{"html_id":"drivers/Crestron/NvxRx/SourceType","path":"Crestron/NvxRx/SourceType.html","kind":"enum","full_name":"Crestron::NvxRx::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_rx.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L229"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_rx.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_rx.cr#L230"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Crestron/NvxScalerControl","path":"Crestron/NvxScalerControl.html","kind":"class","full_name":"Crestron::NvxScalerControl","name":"NvxScalerControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_scaler_control.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_scaler_control.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SCALE_TO_FIT_BOUNDS","name":"SCALE_TO_FIT_BOUNDS","value":"((16 / 9) * 0.95)..((16 / 9) * 1.05)","doc":"Window of aspect ratio's to detect as 16:9 - allows for +/-5% for\nslightly off-shape windows","summary":"

Window of aspect ratio's to detect as 16:9 - allows for +/-5% for slightly off-shape windows

"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/nvx_scaler_control.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_scaler_control.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@links = (setting?(Hash(String, String), :link_scalers)) || ({} of String => String)"}}]},{"html_id":"drivers/Crestron/NvxTx","path":"Crestron/NvxTx.html","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx","abstract":false,"superclass":{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},"ancestors":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Crestron/CresNext","kind":"class","full_name":"Crestron::CresNext","name":"CresNext"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Crestron/Transmitter","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L21"},"def":{"name":"connected","visibility":"Public","body":"super()\nquery(\"/DeviceSpecific/DeviceMode\") do |mode|\n if mode == \"Transmitter\"\n next\n end\n logger.warn do\n \"device configured as a #{mode}\"\n end\n self[:WARN] = \"device configured as a #{mode}. Expecting Transmitter\"\nend\nschedule.every(5.minutes, immediate: true) do\n update_source_info\nend\n"}},{"html_id":"emulate_input_sync(state:Bool=true,idx:Int32=1)-instance-method","name":"emulate_input_sync","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"args_string":"(state : Bool = true, idx : Int32 = 1)","args_html":"(state : Bool = true, idx : Int32 = 1)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L66"},"def":{"name":"emulate_input_sync","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"idx","default_value":"1","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"self[\"input_#{idx}_sync\"] = state"}},{"html_id":"multicast_address(address:String)-instance-method","name":"multicast_address","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L61"},"def":{"name":"multicast_address","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"setting multicast address to #{address}\"\nend\nupdate(\"/StreamTransmit/Streams\", [{MulticastAddress: address}], name: :multicast_address)\n"}},{"html_id":"output(state:Bool)-instance-method","name":"output","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L47"},"def":{"name":"output","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"#{state ? \"enabling\" : \"disabling\"} output sync\"\nend\nupdate(\"/AudioVideoInputOutput/Outputs\", [{Ports: [{Hdmi: {IsOutputDisabled: !state}}]}], name: :output)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L107"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"Crestron sent: #{raw_json}\"\nend\nif raw_json.includes?(\"AudioVideoInputOutput\")\nelse\n return\nend\npayload = JSON.parse(raw_json)\nif av_inputs = (payload.dig?(\"Device\", \"AudioVideoInputOutput\", \"Inputs\")).try(&.as_a?)\n av_inputs.each do |input|\n name = input[\"Name\"]?.try(&.as_s) || \"\"\n idx = case name\n when /input(\\d+)/\n $~[1].to_i.succ\n when /input-(\\d+)/\n $~[1].to_i\n else\n 1\n end\n sync = (input.dig?(\"Ports\", 0, \"IsSyncDetected\")).try(&.as_bool?)\n if sync.nil?\n else\n self[\"input_#{idx}_sync\"] = sync\n end\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/nvx_tx.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L37"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching to #{input}\"\nend\n(update(\"/DeviceSpecific\", {VideoSource: input, AudioSource: \"AudioFollowsVideo\"}, name: :switch)).get\nupdate_source_info\n"}}],"types":[{"html_id":"drivers/Crestron/NvxTx/Input","path":"Crestron/NvxTx/Input.html","kind":"enum","full_name":"Crestron::NvxTx::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_tx.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Input1","name":"Input1","value":"1"},{"id":"Input2","name":"Input2","value":"2"}],"namespace":{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"},"instance_methods":[{"html_id":"input1?-instance-method","name":"input1?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L7"},"def":{"name":"input1?","visibility":"Public","body":"self == Input1"}},{"html_id":"input2?-instance-method","name":"input2?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L8"},"def":{"name":"input2?","visibility":"Public","body":"self == Input2"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/crestron/nvx_tx.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_tx.cr#L6"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]}]},{"html_id":"drivers/Crestron/OccupancySensor","path":"Crestron/OccupancySensor.html","kind":"class","full_name":"Crestron::OccupancySensor","name":"OccupancySensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/occupancy_sensor.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/Crestron/CresNextAuth","kind":"module","full_name":"Crestron::CresNextAuth","name":"CresNextAuth"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L36"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nauthenticate\npoll_device_state\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false"}},{"html_id":"get_sensor_details-instance-method","name":"get_sensor_details","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L126"},"def":{"name":"get_sensor_details","visibility":"Public","body":"Detail.new(type: :presence, value: @occupied ? 1.0 : 0.0, last_seen: @connected ? Time.utc.to_unix : @last_update, mac: @mac, id: nil, name: @name, module_id: module_id, binding: \"presence\", status: @connected ? Status::Normal : Status::Fault)"}},{"html_id":"last_update:Int64-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L26"},"def":{"name":"last_update","return_type":"Int64","visibility":"Public","body":"@last_update"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(10.minutes) do\n authenticate\nend\nschedule.every(1.hour) do\n poll_device_state\nend\n"}},{"html_id":"poll_counter:UInt64-instance-method","name":"poll_counter","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L27"},"def":{"name":"poll_counter","return_type":"UInt64","visibility":"Public","body":"@poll_counter"}},{"html_id":"poll_device_state:Nil-instance-method","name":"poll_device_state","abstract":false,"location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L47"},"def":{"name":"poll_device_state","return_type":"Nil","visibility":"Public","body":"response = get(\"/Device\")\nif response.success?\nelse\n raise(\"unexpected response code: #{response.status_code}\")\nend\npayload = JSON.parse(response.body)\n@last_update = Time.utc.to_unix\nself[:occupied] = @occupied = (payload.dig(\"Device\", \"OccupancySensor\", \"IsRoomOccupied\")).as_bool\nself[:presence] = @occupied ? 1.0 : 0.0\nself[:mac] = @mac = format_mac((payload.dig(\"Device\", \"DeviceInfo\", \"MacAddress\")).as_s)\nself[:name] = @name = (payload.dig(\"Device\", \"DeviceInfo\", \"Name\")).as_s?\n@poll_counter = @poll_counter + 1\nif @long_polling\nelse\n long_poll\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L120"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif @mac == mac\nelse\n return nil\nend\nget_sensor_details\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/crestron/occupancy_sensor.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/occupancy_sensor.cr#L108"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != @mac)\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\n[get_sensor_details]\n"}}]},{"html_id":"drivers/Crestron/Receiver","path":"Crestron/Receiver.html","kind":"module","full_name":"Crestron::Receiver","name":"Receiver","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxRx","kind":"class","full_name":"Crestron::NvxRx","name":"NvxRx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"}},{"html_id":"drivers/Crestron/SourceType","path":"Crestron/SourceType.html","kind":"enum","full_name":"Crestron::SourceType","name":"SourceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio","name":"Audio","value":"0"},{"id":"Video","name":"Video","value":"1"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"instance_methods":[{"html_id":"audio?-instance-method","name":"audio?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L17"},"def":{"name":"audio?","visibility":"Public","body":"self == Audio"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/crestron/nvx_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L18"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]},{"html_id":"drivers/Crestron/Transmitter","path":"Crestron/Transmitter.html","kind":"module","full_name":"Crestron::Transmitter","name":"Transmitter","abstract":false,"locations":[{"filename":"src/crestron/nvx_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/nvx_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Crestron/NvxTx","kind":"class","full_name":"Crestron::NvxTx","name":"NvxTx"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"doc":"Interface for enumerating devices","summary":"

Interface for enumerating devices

"},{"html_id":"drivers/Crestron/VirtualSwitcher","path":"Crestron/VirtualSwitcher.html","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_OUTPUT","name":"DUMMY_OUTPUT","value":"[] of Int32"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Crestron","kind":"module","full_name":"Crestron","name":"Crestron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"available_inputs-instance-method","name":"available_inputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L112"},"def":{"name":"available_inputs","visibility":"Public","body":"encoder_name_map.keys"}},{"html_id":"available_outputs-instance-method","name":"available_outputs","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L116"},"def":{"name":"available_outputs","visibility":"Public","body":"decoder_name_map.keys"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"only support muting the outputs, no unmuting","summary":"

only support muting the outputs, no unmuting

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L89"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if state\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n SwitchLayer::Audio\nin MuteLayer::Video\n SwitchLayer::Video\nin MuteLayer::AudioVideo\n SwitchLayer::All\nend\nswitch({\"none\" => [index]}, switch_layer)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@audio = setting?(AudioSink, :audio_sink)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"dummy to supress errors in routing","summary":"

dummy to supress errors in routing

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L42"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state"}},{"html_id":"receivers-instance-method","name":"receivers","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L58"},"def":{"name":"receivers","visibility":"Public","body":"system.implementing(Crestron::Receiver)"}},{"html_id":"switch(map:Hash(Input,Array(Output|Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output | Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L140"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.video?) || layer.audio?\nelse\n return\nend\nlogger.debug do\n \"switching #{layer}: #{map}\"\nend\nconnect(map, layer) do |mod, __temp_231|\n video, audio = __temp_231\n case layer\n in .all?\n switch_audio_to(audio)\n mod.switch_to(video)\n in .audio?\n switch_audio_to(audio)\n in .video?\n inp = case video\n in JSON::Any\n video.as_s? || video.as_i\n in String\n video\n end\n mod.switch({inp => DUMMY_OUTPUT}, layer)\n in .data?, .data2?\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L103"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"stream = get_streams(input)\nif stream\nelse\n return\nend\nswitch_audio_to(stream[1])\nreceivers.switch_to(stream[0])\n"}},{"html_id":"transmitters-instance-method","name":"transmitters","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L54"},"def":{"name":"transmitters","visibility":"Public","body":"system.implementing(Crestron::Transmitter)"}}],"types":[{"html_id":"drivers/Crestron/VirtualSwitcher/AudioSink","path":"Crestron/VirtualSwitcher/AudioSink.html","kind":"class","full_name":"Crestron::VirtualSwitcher::AudioSink","name":"AudioSink","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/crestron/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Crestron/VirtualSwitcher","kind":"class","full_name":"Crestron::VirtualSwitcher","name":"VirtualSwitcher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/crestron/virtual_switcher.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L31"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L30"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L29"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/crestron/virtual_switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/crestron/virtual_switcher.cr#L32"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]}]}]},{"html_id":"drivers/Delta","path":"Delta.html","kind":"module","full_name":"Delta","name":"Delta","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L3"},{"filename":"src/delta/models/generic_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L3"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L3"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L3"},{"filename":"src/delta/models/list_sites_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L3"},{"filename":"src/delta/models/local_value.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L3"},{"filename":"src/delta/models/object.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L3"},{"filename":"src/delta/models/property_identifier.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L3"},{"filename":"src/delta/models/reference.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L3"},{"filename":"src/delta/models/value_property.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Delta/API","path":"Delta/API.html","kind":"class","full_name":"Delta::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_object_value(site_name:String,device_number:String|UInt32,object_type:String,instance:String|UInt32)-instance-method","name":"get_object_value","doc":"get value of property from object through instance","summary":"

get value of property from object through instance

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32, object_type : String, instance : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L103"},"def":{"name":"get_object_value","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"},{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String | UInt32"}],"visibility":"Public","body":"path = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}/#{object_type},#{instance}\")\nresponse = fetch(path)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ValueProperty.from_json(response.body)\n"}},{"html_id":"list_device_objects(site_name:String,device_number:String|UInt32)-instance-method","name":"list_device_objects","doc":"list objects from device resource","summary":"

list objects from device resource

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"args_string":"(site_name : String, device_number : String | UInt32)","args_html":"(site_name : String, device_number : String | UInt32)","location":{"filename":"src/delta/api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L77"},"def":{"name":"list_device_objects","args":[{"name":"site_name","external_name":"site_name","restriction":"String"},{"name":"device_number","external_name":"device_number","restriction":"String | UInt32"}],"visibility":"Public","body":"skip = 0\nobjects = [] of Models::Object\npath = URI.encode_path(\"/api/.bacnet/#{site_name}/#{device_number}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListObjectsByDeviceNumber.from_json(response.body)\n body.json_unmapped.each do |key, obj|\n value = obj.as_h\n object_type, instance = key.split(',', 2)\n objects.push(Models::Object.new(object_type, instance, base: value[\"$base\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\nobjects\n"}},{"html_id":"list_devices(site_name:String)-instance-method","name":"list_devices","doc":"list devices for site","summary":"

list devices for site

","abstract":false,"args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"args_string":"(site_name : String)","args_html":"(site_name : String)","location":{"filename":"src/delta/api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L49"},"def":{"name":"list_devices","args":[{"name":"site_name","external_name":"site_name","restriction":"String"}],"visibility":"Public","body":"skip = 0\ndevices = [] of Models::Device\npath = URI.encode_path(\"/api/.bacnet/#{site_name}\")\nloop do\n response = fetch(path, skip)\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n body = Models::ListDevicesBySiteNameResponse.from_json(response.body)\n body.json_unmapped.keys.each do |key|\n value = body.json_unmapped[key].as_h\n devices.push(Models::Device.new(id: key.to_u32, base: value[\"$base\"].to_s, node_type: value[\"nodeType\"].to_s, display_name: value[\"displayName\"].to_s))\n end\n if body.next_req.presence\n else\n break\n end\n skip = skip + 1000\nend\ndevices\n"}},{"html_id":"list_sites-instance-method","name":"list_sites","doc":"list all sites","summary":"

list all sites

","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L43"},"def":{"name":"list_sites","visibility":"Public","body":"response = Models::ListSitesResponse.from_json((fetch(\"/api/.bacnet\")).body)\nresponse.json_unmapped.keys\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/api.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":"@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n@debug = (setting?(Bool, :debug)) || false\n"}}]},{"html_id":"drivers/Delta/Models","path":"Delta/Models.html","kind":"module","full_name":"Delta::Models","name":"Models","abstract":false,"locations":[{"filename":"src/delta/models/device.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L4"},{"filename":"src/delta/models/generic_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L4"},{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L4"},{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L4"},{"filename":"src/delta/models/list_sites_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L4"},{"filename":"src/delta/models/local_value.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L4"},{"filename":"src/delta/models/object.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L4"},{"filename":"src/delta/models/property_identifier.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L4"},{"filename":"src/delta/models/reference.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L4"},{"filename":"src/delta/models/value_property.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"types":[{"html_id":"drivers/Delta/Models/Device","path":"Delta/Models/Device.html","kind":"struct","full_name":"Delta::Models::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/device.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(id:UInt32,base:String,node_type:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(id : UInt32, base : String, node_type : String, display_name : String)","args_html":"(id : UInt32, base : String, node_type : String, display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L20"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"base","external_name":"base","restriction":"String"},{"name":"node_type","external_name":"node_type","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, base, node_type, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/device.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/device.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L18"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/device.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L18"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:UInt32-instance-method","name":"id","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L9"},"def":{"name":"id","return_type":"UInt32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:UInt32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/delta/models/device.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L15"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/device.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/device.cr#L15"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/GenericValue","path":"Delta/Models/GenericValue.html","kind":"struct","full_name":"Delta::Models::GenericValue","name":"GenericValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/generic_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/generic_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/generic_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/generic_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/generic_value.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/ListDevicesBySiteNameResponse","path":"Delta/Models/ListDevicesBySiteNameResponse.html","kind":"struct","full_name":"Delta::Models::ListDevicesBySiteNameResponse","name":"ListDevicesBySiteNameResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"collection:String|Nil-instance-method","name":"collection","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection","return_type":"String | ::Nil","visibility":"Public","body":"@collection"}},{"html_id":"collection=(collection:String|Nil)-instance-method","name":"collection=","doc":"returns this when there are no more results","summary":"

returns this when there are no more results

","abstract":false,"args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"args_string":"(collection : String | Nil)","args_html":"(collection : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L14"},"def":{"name":"collection=","args":[{"name":"collection","external_name":"collection","restriction":"String | ::Nil"}],"visibility":"Public","body":"@collection = collection"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_devices_by_site_name_response.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_devices_by_site_name_response.cr#L17"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}}]},{"html_id":"drivers/Delta/Models/ListObjectsByDeviceNumber","path":"Delta/Models/ListObjectsByDeviceNumber.html","kind":"struct","full_name":"Delta::Models::ListObjectsByDeviceNumber","name":"ListObjectsByDeviceNumber","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"next_req:String|Nil-instance-method","name":"next_req","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req","return_type":"String | ::Nil","visibility":"Public","body":"@next_req"}},{"html_id":"next_req=(next_req:String|Nil)-instance-method","name":"next_req=","abstract":false,"args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"args_string":"(next_req : String | Nil)","args_html":"(next_req : String | Nil)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L16"},"def":{"name":"next_req=","args":[{"name":"next_req","external_name":"next_req","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next_req = next_req"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_objects_by_device_number_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_objects_by_device_number_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/ListSitesResponse","path":"Delta/Models/ListSitesResponse.html","kind":"struct","full_name":"Delta::Models::ListSitesResponse","name":"ListSitesResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/list_sites_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/delta/models/list_sites_response.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/list_sites_response.cr#L13"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}}]},{"html_id":"drivers/Delta/Models/LocalValue","path":"Delta/Models/LocalValue.html","kind":"struct","full_name":"Delta::Models::LocalValue","name":"LocalValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/local_value.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/local_value.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/local_value.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"real:GenericValue-instance-method","name":"real","abstract":false,"location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L12"},"def":{"name":"real","return_type":"GenericValue","visibility":"Public","body":"@real"}},{"html_id":"real=(real:GenericValue)-instance-method","name":"real=","abstract":false,"args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"args_string":"(real : GenericValue)","args_html":"(real : GenericValue)","location":{"filename":"src/delta/models/local_value.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/local_value.cr#L12"},"def":{"name":"real=","args":[{"name":"real","external_name":"real","restriction":"GenericValue"}],"visibility":"Public","body":"@real = real"}}]},{"html_id":"drivers/Delta/Models/Object","path":"Delta/Models/Object.html","kind":"struct","full_name":"Delta::Models::Object","name":"Object","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/object.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(object_type:String,instance:String,base:String,display_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(object_type : String, instance : String, base : String, display_name : String)","args_html":"(object_type : String, instance : String, base : String, display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L17"},"def":{"name":"new","args":[{"name":"object_type","external_name":"object_type","restriction":"String"},{"name":"instance","external_name":"instance","restriction":"String"},{"name":"base","external_name":"base","restriction":"String"},{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object_type, instance, base, display_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/object.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L12"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/object.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L12"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"display_name:String-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L15"},"def":{"name":"display_name","return_type":"String","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"args_string":"(display_name : String)","args_html":"(display_name : String)","location":{"filename":"src/delta/models/object.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L15"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"instance:UInt32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L9"},"def":{"name":"instance","return_type":"UInt32","visibility":"Public","body":"@instance"}},{"html_id":"instance=(instance:UInt32)-instance-method","name":"instance=","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"args_string":"(instance : UInt32)","args_html":"(instance : UInt32)","location":{"filename":"src/delta/models/object.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L9"},"def":{"name":"instance=","args":[{"name":"instance","external_name":"instance","restriction":"UInt32"}],"visibility":"Public","body":"@instance = instance"}},{"html_id":"object_type:String-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L8"},"def":{"name":"object_type","return_type":"String","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:String)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"args_string":"(object_type : String)","args_html":"(object_type : String)","location":{"filename":"src/delta/models/object.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/object.cr#L8"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"String"}],"visibility":"Public","body":"@object_type = object_type"}}]},{"html_id":"drivers/Delta/Models/PropertyIdentifier","path":"Delta/Models/PropertyIdentifier.html","kind":"struct","full_name":"Delta::Models::PropertyIdentifier","name":"PropertyIdentifier","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/property_identifier.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L15"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/delta/models/property_identifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/property_identifier.cr#L12"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Delta/Models/Reference","path":"Delta/Models/Reference.html","kind":"struct","full_name":"Delta::Models::Reference","name":"Reference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/reference.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/reference.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L9"},"def":{"name":"base","return_type":"String","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String"}],"args_string":"(base : String)","args_html":"(base : String)","location":{"filename":"src/delta/models/reference.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L9"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String"}],"visibility":"Public","body":"@base = base"}},{"html_id":"device_identifier:GenericValue-instance-method","name":"device_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier","return_type":"GenericValue","visibility":"Public","body":"@device_identifier"}},{"html_id":"device_identifier=(device_identifier:GenericValue)-instance-method","name":"device_identifier=","abstract":false,"args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"args_string":"(device_identifier : GenericValue)","args_html":"(device_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L15"},"def":{"name":"device_identifier=","args":[{"name":"device_identifier","external_name":"device_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@device_identifier = device_identifier"}},{"html_id":"object_identifier:GenericValue-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier","return_type":"GenericValue","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"args_string":"(object_identifier : GenericValue)","args_html":"(object_identifier : GenericValue)","location":{"filename":"src/delta/models/reference.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L18"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"property_identifier:PropertyIdentifier-instance-method","name":"property_identifier","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier","return_type":"PropertyIdentifier","visibility":"Public","body":"@property_identifier"}},{"html_id":"property_identifier=(property_identifier:PropertyIdentifier)-instance-method","name":"property_identifier=","abstract":false,"args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"args_string":"(property_identifier : PropertyIdentifier)","args_html":"(property_identifier : PropertyIdentifier)","location":{"filename":"src/delta/models/reference.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L21"},"def":{"name":"property_identifier=","args":[{"name":"property_identifier","external_name":"property_identifier","restriction":"PropertyIdentifier"}],"visibility":"Public","body":"@property_identifier = property_identifier"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L12"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/delta/models/reference.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/reference.cr#L12"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Delta/Models/ValueProperty","path":"Delta/Models/ValueProperty.html","kind":"struct","full_name":"Delta::Models::ValueProperty","name":"ValueProperty","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/models/value_property.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/Models","kind":"module","full_name":"Delta::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/models/value_property.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"base:String|Nil-instance-method","name":"base","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L10"},"def":{"name":"base","return_type":"String | ::Nil","visibility":"Public","body":"@base"}},{"html_id":"base=(base:String|Nil)-instance-method","name":"base=","abstract":false,"args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"args_string":"(base : String | Nil)","args_html":"(base : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L10"},"def":{"name":"base=","args":[{"name":"base","external_name":"base","restriction":"String | ::Nil"}],"visibility":"Public","body":"@base = base"}},{"html_id":"cov_increment:GenericValue|Nil-instance-method","name":"cov_increment","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@cov_increment"}},{"html_id":"cov_increment=(cov_increment:GenericValue|Nil)-instance-method","name":"cov_increment=","abstract":false,"args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"args_string":"(cov_increment : GenericValue | Nil)","args_html":"(cov_increment : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L52"},"def":{"name":"cov_increment=","args":[{"name":"cov_increment","external_name":"cov_increment","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@cov_increment = cov_increment"}},{"html_id":"description:GenericValue|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L73"},"def":{"name":"description","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:GenericValue|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"args_string":"(description : GenericValue | Nil)","args_html":"(description : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L73"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L13"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"event_state:GenericValue|Nil-instance-method","name":"event_state","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@event_state"}},{"html_id":"event_state=(event_state:GenericValue|Nil)-instance-method","name":"event_state=","abstract":false,"args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"args_string":"(event_state : GenericValue | Nil)","args_html":"(event_state : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L61"},"def":{"name":"event_state=","args":[{"name":"event_state","external_name":"event_state","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@event_state = event_state"}},{"html_id":"exchange_flags:GenericValue|Nil-instance-method","name":"exchange_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_flags"}},{"html_id":"exchange_flags=(exchange_flags:GenericValue|Nil)-instance-method","name":"exchange_flags=","abstract":false,"args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_flags : GenericValue | Nil)","args_html":"(exchange_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L25"},"def":{"name":"exchange_flags=","args":[{"name":"exchange_flags","external_name":"exchange_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_flags = exchange_flags"}},{"html_id":"exchange_type:GenericValue|Nil-instance-method","name":"exchange_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@exchange_type"}},{"html_id":"exchange_type=(exchange_type:GenericValue|Nil)-instance-method","name":"exchange_type=","abstract":false,"args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"args_string":"(exchange_type : GenericValue | Nil)","args_html":"(exchange_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L28"},"def":{"name":"exchange_type=","args":[{"name":"exchange_type","external_name":"exchange_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@exchange_type = exchange_type"}},{"html_id":"last_error:GenericValue|Nil-instance-method","name":"last_error","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_error"}},{"html_id":"last_error=(last_error:GenericValue|Nil)-instance-method","name":"last_error=","abstract":false,"args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"args_string":"(last_error : GenericValue | Nil)","args_html":"(last_error : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L31"},"def":{"name":"last_error=","args":[{"name":"last_error","external_name":"last_error","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_error = last_error"}},{"html_id":"last_sent:GenericValue|Nil-instance-method","name":"last_sent","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@last_sent"}},{"html_id":"last_sent=(last_sent:GenericValue|Nil)-instance-method","name":"last_sent=","abstract":false,"args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"args_string":"(last_sent : GenericValue | Nil)","args_html":"(last_sent : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L46"},"def":{"name":"last_sent=","args":[{"name":"last_sent","external_name":"last_sent","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@last_sent = last_sent"}},{"html_id":"local_flags:LocalValue|Nil-instance-method","name":"local_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags","return_type":"LocalValue | ::Nil","visibility":"Public","body":"@local_flags"}},{"html_id":"local_flags=(local_flags:GenericValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(local_flags : GenericValue | Nil)","args_html":"(local_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L37"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_flags=(local_flags:LocalValue|Nil)-instance-method","name":"local_flags=","abstract":false,"args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"args_string":"(local_flags : LocalValue | Nil)","args_html":"(local_flags : LocalValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L40"},"def":{"name":"local_flags=","args":[{"name":"local_flags","external_name":"local_flags","restriction":"LocalValue | ::Nil"}],"visibility":"Public","body":"@local_flags = local_flags"}},{"html_id":"local_ref:Reference|Nil-instance-method","name":"local_ref","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref","return_type":"Reference | ::Nil","visibility":"Public","body":"@local_ref"}},{"html_id":"local_ref=(local_ref:Reference|Nil)-instance-method","name":"local_ref=","abstract":false,"args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"args_string":"(local_ref : Reference | Nil)","args_html":"(local_ref : Reference | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L34"},"def":{"name":"local_ref=","args":[{"name":"local_ref","external_name":"local_ref","restriction":"Reference | ::Nil"}],"visibility":"Public","body":"@local_ref = local_ref"}},{"html_id":"object_identifier:GenericValue|Nil-instance-method","name":"object_identifier","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_identifier"}},{"html_id":"object_identifier=(object_identifier:GenericValue|Nil)-instance-method","name":"object_identifier=","abstract":false,"args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"args_string":"(object_identifier : GenericValue | Nil)","args_html":"(object_identifier : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L16"},"def":{"name":"object_identifier=","args":[{"name":"object_identifier","external_name":"object_identifier","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_identifier = object_identifier"}},{"html_id":"object_name:GenericValue|Nil-instance-method","name":"object_name","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_name"}},{"html_id":"object_name=(object_name:GenericValue|Nil)-instance-method","name":"object_name=","abstract":false,"args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"args_string":"(object_name : GenericValue | Nil)","args_html":"(object_name : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L22"},"def":{"name":"object_name=","args":[{"name":"object_name","external_name":"object_name","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_name = object_name"}},{"html_id":"object_type:GenericValue|Nil-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@object_type"}},{"html_id":"object_type=(object_type:GenericValue|Nil)-instance-method","name":"object_type=","abstract":false,"args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"args_string":"(object_type : GenericValue | Nil)","args_html":"(object_type : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L19"},"def":{"name":"object_type=","args":[{"name":"object_type","external_name":"object_type","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@object_type = object_type"}},{"html_id":"out_of_service:GenericValue|Nil-instance-method","name":"out_of_service","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@out_of_service"}},{"html_id":"out_of_service=(out_of_service:GenericValue|Nil)-instance-method","name":"out_of_service=","abstract":false,"args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"args_string":"(out_of_service : GenericValue | Nil)","args_html":"(out_of_service : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L64"},"def":{"name":"out_of_service=","args":[{"name":"out_of_service","external_name":"out_of_service","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@out_of_service = out_of_service"}},{"html_id":"present_value:GenericValue|Nil-instance-method","name":"present_value","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@present_value"}},{"html_id":"present_value=(present_value:GenericValue|Nil)-instance-method","name":"present_value=","abstract":false,"args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"args_string":"(present_value : GenericValue | Nil)","args_html":"(present_value : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L67"},"def":{"name":"present_value=","args":[{"name":"present_value","external_name":"present_value","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@present_value = present_value"}},{"html_id":"reliability:GenericValue|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:GenericValue|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"args_string":"(reliability : GenericValue | Nil)","args_html":"(reliability : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L76"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"send_frequency:GenericValue|Nil-instance-method","name":"send_frequency","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@send_frequency"}},{"html_id":"send_frequency=(send_frequency:GenericValue|Nil)-instance-method","name":"send_frequency=","abstract":false,"args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"args_string":"(send_frequency : GenericValue | Nil)","args_html":"(send_frequency : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L49"},"def":{"name":"send_frequency=","args":[{"name":"send_frequency","external_name":"send_frequency","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@send_frequency = send_frequency"}},{"html_id":"status_flags:GenericValue|Nil-instance-method","name":"status_flags","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@status_flags"}},{"html_id":"status_flags=(status_flags:GenericValue|Nil)-instance-method","name":"status_flags=","abstract":false,"args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"args_string":"(status_flags : GenericValue | Nil)","args_html":"(status_flags : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L58"},"def":{"name":"status_flags=","args":[{"name":"status_flags","external_name":"status_flags","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@status_flags = status_flags"}},{"html_id":"subscribers:Hash(String,JSON::Any)|Nil-instance-method","name":"subscribers","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@subscribers"}},{"html_id":"subscribers=(subscribers:Hash(String,JSON::Any)|Nil)-instance-method","name":"subscribers=","abstract":false,"args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(subscribers : Hash(String, JSON::Any) | Nil)","args_html":"(subscribers : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L43"},"def":{"name":"subscribers=","args":[{"name":"subscribers","external_name":"subscribers","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@subscribers = subscribers"}},{"html_id":"units:GenericValue|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L70"},"def":{"name":"units","return_type":"GenericValue | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"units=(units:GenericValue|Nil)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"args_string":"(units : GenericValue | Nil)","args_html":"(units : GenericValue | Nil)","location":{"filename":"src/delta/models/value_property.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/models/value_property.cr#L70"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"GenericValue | ::Nil"}],"visibility":"Public","body":"@units = units"}}]}]},{"html_id":"drivers/Delta/UNOnext","path":"Delta/UNOnext.html","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"NO_OBJECTS","name":"NO_OBJECTS","value":"[] of Models::Object"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{0 => SensorType::Temperature, 1 => SensorType::Humidity, 2 => SensorType::AirQuality, 4 => SensorType::PPM, 5 => SensorType::Illuminance}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Detail))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L44"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Detail))","visibility":"Public","body":"@cached_data"}},{"html_id":"manager_mappings:Array(ManMap)-instance-method","name":"manager_mappings","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L43"},"def":{"name":"manager_mappings","return_type":"Array(ManMap)","visibility":"Public","body":"@manager_mappings"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@manager_mappings = setting(Array(ManMap), :manager_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Detail)).new do |hash, key|\n hash[key] = [] of Detail\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/delta/uno_next.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L49"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"unonext-\"))\n else\n return nil\n end\n device_id = (mac.lchop(\"unonext-\")).to_u32?\n index = id.to_u32?\n if device_id && index\n else\n return nil\n end\n build_sensor_details(device_id, index)\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/delta/uno_next.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L73"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.values.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"unonext-\")\n else\n return NO_MATCH\n end\nend\nresult = if zone_id\n cached_data[zone_id]? || ([] of Detail)\nelse\n manager_mappings.flat_map do |man_map|\n cached_data[man_map.level_zone]? || ([] of Detail)\n end\nend\nif sensor_type && mac\n result.reject! do |details|\n (details.type != sensor_type) || (details.mac != mac)\n end\nelse\n if sensor_type\n result.reject! do |details|\n details.type != sensor_type\n end\n else\n if mac\n result.reject! do |details|\n details.mac != mac\n end\n end\n end\nend\nresult\n"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L42"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}}],"types":[{"html_id":"drivers/Delta/UNOnext/ManMap","path":"Delta/UNOnext/ManMap.html","kind":"struct","full_name":"Delta::UNOnext::ManMap","name":"ManMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/UNOnext","kind":"class","full_name":"Delta::UNOnext","name":"UNOnext"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,managers:Array(UInt32))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"args_string":"(building_zone : String, level_zone : String, managers : Array(UInt32))","args_html":"(building_zone : String, level_zone : String, managers : Array(UInt32))","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"managers","external_name":"managers","restriction":"Array(UInt32)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, managers)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/uno_next.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @managers.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,managers_managers=@managers)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, managers _managers = @managers)","location":{"filename":"src/delta/uno_next.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/uno_next.cr#L27"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_managers","default_value":"@managers","external_name":"managers","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _managers)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"managers:Array(UInt32)-instance-method","name":"managers","abstract":false,"def":{"name":"managers","return_type":"Array(UInt32)","visibility":"Public","body":"@managers"}}]}]},{"html_id":"drivers/Delta/ZenPIRLocation","path":"Delta/ZenPIRLocation.html","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Delta","kind":"module","full_name":"Delta","name":"Delta"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"cached_data:Hash(String,Array(Location))-instance-method","name":"cached_data","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L53"},"def":{"name":"cached_data","return_type":"Hash(String, Array(Location))","visibility":"Public","body":"@cached_data"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/delta/zen_pir_location.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L68"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L73"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location.presence && (location != \"area\")\n return [] of Location\nend\n@cached_data[zone_id]? || ([] of Location)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L58"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L63"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@site_name = setting(String, :site_name)\n@zen_id = setting(UInt32, :zen_id)\n@pir_mappings = setting(Array(PIRMap), :pir_mappings)\npoll_every = (setting?(Int32, :poll_every)) || 10\n@cached_data = Hash(String, Array(Location)).new do |hash, key|\n hash[key] = [] of Location\nend\nschedule.clear\nschedule.every(poll_every.seconds) do\n cache_sensor_data\nend\n"}},{"html_id":"pir_mappings:Array(PIRMap)-instance-method","name":"pir_mappings","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L52"},"def":{"name":"pir_mappings","return_type":"Array(PIRMap)","visibility":"Public","body":"@pir_mappings"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L50"},"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"@site_name"}},{"html_id":"zen_id:UInt32-instance-method","name":"zen_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L51"},"def":{"name":"zen_id","return_type":"UInt32","visibility":"Public","body":"@zen_id"}}],"types":[{"html_id":"drivers/Delta/ZenPIRLocation/Location","path":"Delta/ZenPIRLocation/Location.html","kind":"struct","full_name":"Delta::ZenPIRLocation::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L83"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(level:String,map_id:String,area_id:String,capacity:Int32,at_location:Int32,zen_device_id:UInt32,zen_object_id:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"args_string":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","args_html":"(level : String, map_id : String, area_id : String, capacity : Int32, at_location : Int32, zen_device_id : UInt32, zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L96"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"::String"},{"name":"map_id","external_name":"map_id","restriction":"::String"},{"name":"area_id","external_name":"area_id","restriction":"::String"},{"name":"capacity","external_name":"capacity","restriction":"::Int32"},{"name":"at_location","external_name":"at_location","restriction":"::Int32"},{"name":"zen_device_id","external_name":"zen_device_id","restriction":"::UInt32"},{"name":"zen_object_id","external_name":"zen_object_id","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, map_id, area_id, capacity, at_location, zen_device_id, zen_object_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L84"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L89"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"at_location:Int32-instance-method","name":"at_location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location","return_type":"Int32","visibility":"Public","body":"@at_location"}},{"html_id":"at_location=(at_location:Int32)-instance-method","name":"at_location=","abstract":false,"args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"args_string":"(at_location : Int32)","args_html":"(at_location : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L91"},"def":{"name":"at_location=","args":[{"name":"at_location","external_name":"at_location","restriction":"Int32"}],"visibility":"Public","body":"@at_location = at_location"}},{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L90"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(level : String)","args_html":"(level : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L87"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"@level = level"}},{"html_id":"location:Symbol-instance-method","name":"location","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L86"},"def":{"name":"location","return_type":"Symbol","visibility":"Public","body":"@location"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L88"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"zen_device_id:UInt32-instance-method","name":"zen_device_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id","return_type":"UInt32","visibility":"Public","body":"@zen_device_id"}},{"html_id":"zen_device_id=(zen_device_id:UInt32)-instance-method","name":"zen_device_id=","abstract":false,"args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"args_string":"(zen_device_id : UInt32)","args_html":"(zen_device_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L93"},"def":{"name":"zen_device_id=","args":[{"name":"zen_device_id","external_name":"zen_device_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_device_id = zen_device_id"}},{"html_id":"zen_object_id:UInt32-instance-method","name":"zen_object_id","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id","return_type":"UInt32","visibility":"Public","body":"@zen_object_id"}},{"html_id":"zen_object_id=(zen_object_id:UInt32)-instance-method","name":"zen_object_id=","abstract":false,"args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"args_string":"(zen_object_id : UInt32)","args_html":"(zen_object_id : UInt32)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L94"},"def":{"name":"zen_object_id=","args":[{"name":"zen_object_id","external_name":"zen_object_id","restriction":"UInt32"}],"visibility":"Public","body":"@zen_object_id = zen_object_id"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIR","path":"Delta/ZenPIRLocation/PIR.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIR","name":"PIR","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(pir:UInt32,map:String)-class-method","name":"new","abstract":false,"args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"args_string":"(pir : UInt32, map : String)","args_html":"(pir : UInt32, map : String)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"new","args":[{"name":"pir","external_name":"pir","restriction":"UInt32"},{"name":"map","external_name":"map","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pir, map)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@pir.clone, @map.clone)"}},{"html_id":"copy_with(pir_pir=@pir,map_map=@map)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"args_string":"(pir _pir = @pir, map _map = @map)","args_html":"(pir _pir = @pir, map _map = @map)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L30"},"def":{"name":"copy_with","args":[{"name":"_pir","default_value":"@pir","external_name":"pir","restriction":""},{"name":"_map","default_value":"@map","external_name":"map","restriction":""}],"visibility":"Public","body":"self.class.new(_pir, _map)"}},{"html_id":"map:String-instance-method","name":"map","abstract":false,"def":{"name":"map","return_type":"String","visibility":"Public","body":"@map"}},{"html_id":"pir:UInt32-instance-method","name":"pir","abstract":false,"def":{"name":"pir","return_type":"UInt32","visibility":"Public","body":"@pir"}}]},{"html_id":"drivers/Delta/ZenPIRLocation/PIRMap","path":"Delta/ZenPIRLocation/PIRMap.html","kind":"struct","full_name":"Delta::ZenPIRLocation::PIRMap","name":"PIRMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Delta/ZenPIRLocation","kind":"class","full_name":"Delta::ZenPIRLocation","name":"ZenPIRLocation"},"constructors":[{"html_id":"new(building_zone:String,level_zone:String,pirs:Array(PIR))-class-method","name":"new","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"args_string":"(building_zone : String, level_zone : String, pirs : Array(PIR))","args_html":"(building_zone : String, level_zone : String, pirs : Array(PIR))","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"new","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"level_zone","external_name":"level_zone","restriction":"String"},{"name":"pirs","external_name":"pirs","restriction":"Array(PIR)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(building_zone, level_zone, pirs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_zone:String-instance-method","name":"building_zone","abstract":false,"def":{"name":"building_zone","return_type":"String","visibility":"Public","body":"@building_zone"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@building_zone.clone, @level_zone.clone, @pirs.clone)"}},{"html_id":"copy_with(building_zone_building_zone=@building_zone,level_zone_level_zone=@level_zone,pirs_pirs=@pirs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"args_string":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","args_html":"(building_zone _building_zone = @building_zone, level_zone _level_zone = @level_zone, pirs _pirs = @pirs)","location":{"filename":"src/delta/zen_pir_location.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/delta/zen_pir_location.cr#L34"},"def":{"name":"copy_with","args":[{"name":"_building_zone","default_value":"@building_zone","external_name":"building_zone","restriction":""},{"name":"_level_zone","default_value":"@level_zone","external_name":"level_zone","restriction":""},{"name":"_pirs","default_value":"@pirs","external_name":"pirs","restriction":""}],"visibility":"Public","body":"self.class.new(_building_zone, _level_zone, _pirs)"}},{"html_id":"level_zone:String-instance-method","name":"level_zone","abstract":false,"def":{"name":"level_zone","return_type":"String","visibility":"Public","body":"@level_zone"}},{"html_id":"pirs:Array(PIR)-instance-method","name":"pirs","abstract":false,"def":{"name":"pirs","return_type":"Array(PIR)","visibility":"Public","body":"@pirs"}}]}]}]},{"html_id":"drivers/Denon","path":"Denon.html","kind":"module","full_name":"Denon","name":"Denon","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"","summary":"","types":[{"html_id":"drivers/Denon/Amplifier","path":"Denon/Amplifier.html","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier","abstract":false,"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Denon","kind":"module","full_name":"Denon","name":"Denon"},"types":[{"html_id":"drivers/Denon/Amplifier/AvReceiver","path":"Denon/Amplifier/AvReceiver.html","kind":"class","full_name":"Denon::Amplifier::AvReceiver","name":"AvReceiver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/denon/amplifier/av_receiver.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power: :PW, power_query: :\"PW?\", mute: :MU, mute_query: :\"MU?\", volume: :MV, volume_query: :\"MV?\", input: :SI, input_query: :\"SI?\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Utilities/Transcoder","kind":"module","full_name":"PlaceOS::Driver::Utilities::Transcoder","name":"Transcoder"}],"namespace":{"html_id":"drivers/Denon/Amplifier","kind":"module","full_name":"Denon::Amplifier","name":"Amplifier"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L65"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n logger.info do\n \"-- Polling Denon AVR\"\n end\n power?\n do_send(:input, priority: 0, name: :input)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L80"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"input(input:String=\"\")-instance-method","name":"input","doc":"Just here for documentation (there are many more)\n\nINPUTS = [:cd, :tuner, :dvd, :bd, :tv, :\"sat/cbl\", :dvr, :game, :game2, :\"v.aux\", :dock]","summary":"

Just here for documentation (there are many more)

","abstract":false,"args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"args_string":"(input : String = \"\")","args_html":"(input : String = "")","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L148"},"def":{"name":"input","args":[{"name":"input","default_value":"\"\"","external_name":"input","restriction":"String"}],"visibility":"Public","body":"status = input.upcase\nif status != self[:input]\n input = input.to_s.upcase\n do_send(:input, input, name: :input)\nend\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L156"},"def":{"name":"input?","visibility":"Public","body":"do_send(:input_query, priority: 0, name: :input_query)"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L104"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"req = state ? \"ON\" : \"OFF\"\nif self[:mute] == req\n return\nend\ndo_send(:mute, req, name: :mute)\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L99"},"def":{"name":"mute?","visibility":"Public","body":"self[:mute] = \"OFF\"\ndo_send(:mute_query, priority: 0, name: :mute_query)\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L110"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:volume_min] = 0\nself[:volume_max] = @volume_range.max\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L60"},"def":{"name":"on_update","visibility":"Public","body":"self[:max_waits] = 10\nself[:timeout] = 3000\n"}},{"html_id":"power(state:Bool=false)-instance-method","name":"power","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L84"},"def":{"name":"power","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state && ((self[:power] == \"OFF\") || (self[:power] == \"STANDBY\"))\n do_send(:power, \"ON\", delay: 3.milliseconds, name: :power)\nelse\n if !state && (self[:power] == \"ON\")\n do_send(:power, \"STANDBY\", delay: 3.milliseconds, name: :power)\n end\nend"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L93"},"def":{"name":"power?","visibility":"Public","body":"do_send(:power_query, priority: 0, name: :power_query)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.info do\n \"Denon sent #{data.inspect}\"\nend\nif task\nelse\n return\nend\ncmd = data[0..1]\nval = data[2..-2]\ncase cmd\nwhen \"PW\"\n self[:power] = val\nwhen \"SI\"\n self[:input] = val\nwhen \"MV\"\n vol_percent = ((val.to_f * 2) / @volume_range.end.to_f) * 100.0\n self[:volume] = vol_percent\nwhen \"MU\"\n self[:mute] = val\nelse\n return :ignore\nend\ntask.try(&.success)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L114"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L118"},"def":{"name":"unmute_audio","visibility":"Public","body":"unmute"}},{"html_id":"volume(level:Float64|Int32=0)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"args_string":"(level : Float64 | Int32 = 0)","args_html":"(level : Float64 | Int32 = 0)","location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L122"},"def":{"name":"volume","args":[{"name":"level","default_value":"0","external_name":"level","restriction":"Float64 | Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\nif self[:volume] == level\n return\nend\npercentage = level / 100.0\nvalue = (percentage * @volume_range.end.to_f).round_away.to_i\nstep = value % 2\nactual = value / 2\nreq = actual.to_s.rjust(2, '0')\nif step != 0\n req = req + \"5\"\nend\ndo_send(:volume, req, name: :volume)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/denon/amplifier/av_receiver.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/denon/amplifier/av_receiver.cr#L141"},"def":{"name":"volume?","visibility":"Public","body":"do_send(:volume_query, priority: 0, name: :volume_query)"}}]}]}]},{"html_id":"drivers/DigitalIO","path":"DigitalIO.html","kind":"class","full_name":"DigitalIO","name":"DigitalIO","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv_spec.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv_spec.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"ir(index:Int32,command:String)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String)","args_html":"(index : Int32, command : String)","location":{"filename":"src/global_cache/ir_tv_spec.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv_spec.cr#L6"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@called = @called + 1\nself[:call_count] = @called\nnil\n"}}]},{"html_id":"drivers/Digraph","path":"Digraph.html","kind":"alias","full_name":"Digraph","name":"Digraph","abstract":false,"locations":[{"filename":"src/place/router/digraph_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Digraph(N, E)","aliased_html":"Place::Router::Digraph(N, E)","const":false},{"html_id":"drivers/DispatchProtocol","path":"DispatchProtocol.html","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[DispatchProtocol]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: message, cls: typeof(MessageType::RECEIVED.value), onlyif: nil, verify: nil, value: nil, encoding: nil, enum_type: DispatchProtocol::MessageType}, {type: \"string\", name: ip_address, cls: String, onlyif: nil, verify: nil, length: nil, value: nil, encoding: nil}, {type: \"basic\", name: id_or_port, cls: UInt64, onlyif: nil, verify: nil, value: nil, endian: nil}, {type: \"basic\", name: data_size, cls: UInt32, onlyif: nil, verify: nil, value: -> do\n data.size\nend, endian: nil}, {type: \"bytes\", name: data, cls: Slice(UInt8), onlyif: nil, verify: nil, length: -> do\n data_size\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L4"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"data:Bytes-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"Bytes","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Bytes)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"@data = data"}},{"html_id":"data_size:UInt32-instance-method","name":"data_size","abstract":false,"def":{"name":"data_size","return_type":"UInt32","visibility":"Public","body":"@data_size"}},{"html_id":"data_size=(data_size:UInt32)-instance-method","name":"data_size=","abstract":false,"args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"args_string":"(data_size : UInt32)","args_html":"(data_size : UInt32)","def":{"name":"data_size=","args":[{"name":"data_size","external_name":"data_size","restriction":"UInt32"}],"visibility":"Public","body":"@data_size = data_size"}},{"html_id":"id_or_port:UInt64-instance-method","name":"id_or_port","abstract":false,"def":{"name":"id_or_port","return_type":"UInt64","visibility":"Public","body":"@id_or_port"}},{"html_id":"id_or_port=(id_or_port:UInt64)-instance-method","name":"id_or_port=","abstract":false,"args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"args_string":"(id_or_port : UInt64)","args_html":"(id_or_port : UInt64)","def":{"name":"id_or_port=","args":[{"name":"id_or_port","external_name":"id_or_port","restriction":"UInt64"}],"visibility":"Public","body":"@id_or_port = id_or_port"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"message:MessageType-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"MessageType","visibility":"Public","body":"@message"}},{"html_id":"message=(message:MessageType)-instance-method","name":"message=","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"args_string":"(message : MessageType)","args_html":"(message : MessageType)","def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"MessageType"}],"visibility":"Public","body":"@message = message"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/knx/disptach_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L3"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}}],"types":[{"html_id":"drivers/DispatchProtocol/MessageType","path":"DispatchProtocol/MessageType.html","kind":"enum","full_name":"DispatchProtocol::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/knx/disptach_model.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L6"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"OPENED","name":"OPENED","value":"0_u8"},{"id":"CLOSED","name":"CLOSED","value":"1_u8"},{"id":"RECEIVED","name":"RECEIVED","value":"2_u8"},{"id":"WRITE","name":"WRITE","value":"3_u8"},{"id":"CLOSE","name":"CLOSE","value":"4_u8"}],"namespace":{"html_id":"drivers/DispatchProtocol","kind":"class","full_name":"DispatchProtocol","name":"DispatchProtocol"},"instance_methods":[{"html_id":"close?-instance-method","name":"close?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L11"},"def":{"name":"close?","visibility":"Public","body":"self == CLOSE"}},{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L8"},"def":{"name":"closed?","visibility":"Public","body":"self == CLOSED"}},{"html_id":"opened?-instance-method","name":"opened?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L7"},"def":{"name":"opened?","visibility":"Public","body":"self == OPENED"}},{"html_id":"received?-instance-method","name":"received?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L9"},"def":{"name":"received?","visibility":"Public","body":"self == RECEIVED"}},{"html_id":"write?-instance-method","name":"write?","abstract":false,"location":{"filename":"src/knx/disptach_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/knx/disptach_model.cr#L10"},"def":{"name":"write?","visibility":"Public","body":"self == WRITE"}}]}]},{"html_id":"drivers/Echo360","path":"Echo360.html","kind":"module","full_name":"Echo360","name":"Echo360","abstract":false,"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Echo360/DeviceCapture","path":"Echo360/DeviceCapture.html","kind":"class","full_name":"Echo360::DeviceCapture","name":"DeviceCapture","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/echo360/device_capture.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CHECK","name":"CHECK","value":"{\"next\", \"current\"}"},{"id":"STATUS_CMDS","name":"STATUS_CMDS","value":"{system_status: :system, capture_status: :captures, next: :next_capture, current: :current_capture, state: :monitoring}"}],"namespace":{"html_id":"drivers/Echo360","kind":"module","full_name":"Echo360","name":"Echo360"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"capture","doc":"This will auto-start a recording","summary":"

This will auto-start a recording

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L70"},"def":{"name":"capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/new_capture\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"capture_status-instance-method","name":"capture_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"capture_status","visibility":"Public","body":"response = get(\"/status/captures\")\nprocess_status(check(response))\n"}},{"html_id":"captures-instance-method","name":"captures","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L57"},"def":{"name":"captures","visibility":"Public","body":"response = get(\"/diagnostics/recovery/saved-content\")\nself[:captures] = (check(response))[\"captures\"][\"capture\"]\n"}},{"html_id":"current-instance-method","name":"current","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"current","visibility":"Public","body":"response = get(\"/status/current_capture\")\nprocess_status(check(response))\n"}},{"html_id":"extend(duration:Int32)-instance-method","name":"extend","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"args_string":"(duration : Int32)","args_html":"(duration : Int32)","location":{"filename":"src/echo360/device_capture.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L90"},"def":{"name":"extend","args":[{"name":"duration","external_name":"duration","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"duration\", duration.to_s)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"next-instance-method","name":"next","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"next","visibility":"Public","body":"response = get(\"/status/next_capture\")\nprocess_status(check(response))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(15.seconds) do\n logger.debug do\n \"-- Polling Capture\"\n end\n system_status\n capture_status\nend\n"}},{"html_id":"pause-instance-method","name":"pause","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L97"},"def":{"name":"pause","visibility":"Public","body":"response = post(\"/capture/pause\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L52"},"def":{"name":"reboot","visibility":"Public","body":"(post(\"/diagnostics/reboot\")).success?"}},{"html_id":"record-instance-method","name":"record","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L111"},"def":{"name":"record","visibility":"Public","body":"start"}},{"html_id":"restart_application-instance-method","name":"restart_application","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L47"},"def":{"name":"restart_application","visibility":"Public","body":"(post(\"/diagnostics/restart_all\")).success?"}},{"html_id":"resume-instance-method","name":"resume","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L107"},"def":{"name":"resume","visibility":"Public","body":"start"}},{"html_id":"start-instance-method","name":"start","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L102"},"def":{"name":"start","visibility":"Public","body":"response = post(\"/capture/record\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"state-instance-method","name":"state","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"state","visibility":"Public","body":"response = get(\"/status/monitoring\")\nprocess_status(check(response))\n"}},{"html_id":"stop-instance-method","name":"stop","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L115"},"def":{"name":"stop","visibility":"Public","body":"response = post(\"/capture/stop\")\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"system_status-instance-method","name":"system_status","abstract":false,"location":{"filename":"src/echo360/device_capture.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L36"},"def":{"name":"system_status","visibility":"Public","body":"response = get(\"/status/system\")\nprocess_status(check(response))\n"}},{"html_id":"test_capture(name:String,duration:Int32,profile:String|Nil=nil)-instance-method","name":"test_capture","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"args_string":"(name : String, duration : Int32, profile : String | Nil = nil)","args_html":"(name : String, duration : Int32, profile : String | Nil = nil)","location":{"filename":"src/echo360/device_capture.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L80"},"def":{"name":"test_capture","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"duration","external_name":"duration","restriction":"Int32"},{"name":"profile","default_value":"nil","external_name":"profile","restriction":"String | ::Nil"}],"visibility":"Public","body":"profile || (profile = self[:capture_profiles][0].as_s)\nresponse = post(\"/capture/confidence_monitor\", body: URI::Params.build do |form|\n form.add(\"description\", name)\n form.add(\"duration\", duration.to_s)\n form.add(\"capture_profile_name\", profile)\nend)\n(check(response))[\"ok\"][\"#text\"].as_s\n"}},{"html_id":"upload(id:String)-instance-method","name":"upload","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/echo360/device_capture.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/echo360/device_capture.cr#L63"},"def":{"name":"upload","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/diagnostics/recovery/#{id}/upload\")\nif response.success?\nelse\n raise(\"upload request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}}]}]},{"html_id":"drivers/Embedia","path":"Embedia.html","kind":"module","full_name":"Embedia","name":"Embedia","abstract":false,"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Embedia/ControlPoint","path":"Embedia/ControlPoint.html","kind":"class","full_name":"Embedia::ControlPoint","name":"ControlPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/embedia/control_point.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{stop: 40, down: 78, up: 75, next_extent_preset: 79, previous_extent_preset: 80, close: 22, open: 26, next_tilt_preset: 7, previous_tilt_preset: 4, clear_override: 76}"}],"namespace":{"html_id":"drivers/Embedia","kind":"module","full_name":"Embedia","name":"Embedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_override(address:UInt8,**options)-instance-method","name":"clear_override","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"clear_override","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 76], **options)"}},{"html_id":"close(address:UInt8,**options)-instance-method","name":"close","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"close","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 22], **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L20"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"Maintaining connection\"\n end\n query_sensor(0)\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L27"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"down(address:UInt8,**options)-instance-method","name":"down","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"down","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 78], **options)"}},{"html_id":"extent_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L54"},"def":{"name":"extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 29 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"extent_preset#{address}\")\n"}},{"html_id":"next_extent_preset(address:UInt8,**options)-instance-method","name":"next_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"next_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 79], **options)"}},{"html_id":"next_tilt_preset(address:UInt8,**options)-instance-method","name":"next_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"next_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 7], **options)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/embedia/control_point.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 200.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"open(address:UInt8,**options)-instance-method","name":"open","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"open","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 26], **options)"}},{"html_id":"previous_extent_preset(address:UInt8,**options)-instance-method","name":"previous_extent_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"previous_extent_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 80], **options)"}},{"html_id":"previous_tilt_preset(address:UInt8,**options)-instance-method","name":"previous_tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"previous_tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 4], **options)"}},{"html_id":"query_sensor(address:UInt8,**options)-instance-method","name":"query_sensor","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L64"},"def":{"name":"query_sensor","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 3, 0, 1, 0, 1], **options)"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/embedia/control_point.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L74"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n raw_data = (String.new(bytes)).strip\n data = raw_data[1..-3].hexbytes\n address = data[0]\n func = data[1]\n case func\n when 3\n \"sensor response #{raw_data} on address 0x#{address.to_s(16)}\"\n else\n \"sent #{raw_data} on address 0x#{address.to_s(16)}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stop(address:UInt8,**options)-instance-method","name":"stop","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"stop","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 40], **options)"}},{"html_id":"tilt_preset(address:UInt8,number:UInt8,**options)-instance-method","name":"tilt_preset","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"args_string":"(address : UInt8, number : UInt8, **options)","args_html":"(address : UInt8, number : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L59"},"def":{"name":"tilt_preset","args":[{"name":"address","external_name":"address","restriction":"UInt8"},{"name":"number","external_name":"number","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"num = 57 + (number.clamp(1, 10))\ndo_send(Bytes[address, 6, 0, 1, 0, num], **options, name: \"tilt_preset#{address}\")\n"}},{"html_id":"up(address:UInt8,**options)-instance-method","name":"up","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8, **options)","args_html":"(address : UInt8, **options)","location":{"filename":"src/embedia/control_point.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/embedia/control_point.cr#L46"},"def":{"name":"up","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Bytes[address, 6, 0, 1, 0, 75], **options)"}}]}]},{"html_id":"drivers/Enumerable","path":"Enumerable.html","kind":"module","full_name":"Enumerable(T)","name":"Enumerable","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"The `Enumerable` mixin provides collection classes with several traversal, searching,\nfiltering and querying methods.\n\nIncluding types must provide an `each` method, which yields successive members\nof the collection.\n\nFor example:\n\n```\nclass Three\n include Enumerable(Int32)\n\n def each(&)\n yield 1\n yield 2\n yield 3\n end\nend\n\nthree = Three.new\nthree.to_a # => [1, 2, 3]\nthree.select &.odd? # => [1, 3]\nthree.all? { |x| x < 10 } # => true\n```\n\nNote that most search and filter methods traverse an Enumerable eagerly,\nproducing an `Array` as the result. For a lazy alternative refer to\nthe `Iterator` and `Iterable` modules.","summary":"

The Enumerable mixin provides collection classes with several traversal, searching, filtering and querying methods.

","instance_methods":[{"html_id":"flatten_xapi_json(parent_prefix:String|Nil=nil,delimiter:String=\"/\")-instance-method","name":"flatten_xapi_json","abstract":false,"args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"args_string":"(parent_prefix : String | Nil = nil, delimiter : String = \"/\")","args_html":"(parent_prefix : String | Nil = nil, delimiter : String = "/")","location":{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L40"},"def":{"name":"flatten_xapi_json","args":[{"name":"parent_prefix","default_value":"nil","external_name":"parent_prefix","restriction":"String | ::Nil"},{"name":"delimiter","default_value":"\"/\"","external_name":"delimiter","restriction":"String"}],"visibility":"Public","body":"res = {} of String => JSONComplex\nself.each_with_index do |elem, i|\n if elem.is_a?(Tuple)\n k, v = elem\n else\n k, v = i, elem\n if id = v.as_h?.try(&.delete(\"id\"))\n k = id\n end\n end\n key = parent_prefix ? \"#{parent_prefix}#{delimiter}#{k}\" : k.to_s\n raw = v.raw\n case raw\n in Array(JSON::Any)\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n in Hash(String, JSON::Any)\n value = raw[\"Value\"]?\n if value && value.as_h?.nil?\n valuespaceref = raw[\"valueSpaceRef\"]?.try do |__arg1|\n (__arg1.as_s.split('/')).last\n end\n res[key] = Cisco::CollaborationEndpoint::XAPI.value_convert(value.as_s, valuespaceref)\n else\n if id\n res[key] = raw.flatten_xapi_json(delimiter: delimiter)\n else\n res.merge!(raw.flatten_xapi_json(key, delimiter))\n end\n end\n in JSONBasic\n res[key] = raw\n end\nend\nres\n"}}],"types":[{"html_id":"drivers/Enumerable/JSONBasic","path":"Enumerable/JSONBasic.html","kind":"alias","full_name":"Enumerable::JSONBasic","name":"JSONBasic","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}},{"html_id":"drivers/Enumerable/JSONComplex","path":"Enumerable/JSONComplex.html","kind":"alias","full_name":"Enumerable::JSONComplex","name":"JSONComplex","abstract":false,"locations":[{"filename":"src/cisco/collaboration_endpoint/response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/collaboration_endpoint/response.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil)","aliased_html":"Bool | Float64 | Hash(String, Enumerable::JSONComplex) | Int64 | String | Nil","const":false,"namespace":{"html_id":"drivers/Enumerable","kind":"module","full_name":"Enumerable(T)","name":"Enumerable"}}]},{"html_id":"drivers/Epson","path":"Epson.html","kind":"module","full_name":"Epson","name":"Epson","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Epson/Projector","path":"Epson/Projector.html","kind":"module","full_name":"Epson::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Epson","kind":"module","full_name":"Epson","name":"Epson"},"types":[{"html_id":"drivers/Epson/Projector/EscVp21","path":"Epson/Projector/EscVp21.html","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{power: \"PWR\", input: \"SOURCE\", volume: \"VOL\", av_mute: \"MUTE\", video_mute: \"MSEL\", error: \"ERR\", lamp: \"LAMP\"}"},{"id":"ERRORS","name":"ERRORS","value":"[\"00: no error\", \"01: fan error\", \"03: lamp failure at power on\", \"04: high internal temperature\", \"06: lamp error\", \"07: lamp cover door open\", \"08: cinema filter error\", \"09: capacitor is disconnected\", \"0A: auto iris error\", \"0B: subsystem error\", \"0C: low air flow error\", \"0D: air flow sensor error\", \"0E: ballast power supply error\", \"0F: shutter error\", \"10: peltiert cooling error\", \"11: pump cooling error\", \"12: static iris error\", \"13: power supply unit error\", \"14: exhaust shutter error\", \"15: obstacle detection error\", \"16: IF board discernment error\"]"},{"id":"RESPONSE","name":"RESPONSE","value":"COMMAND.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Epson/Projector","kind":"module","full_name":"Epson::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L33"},"def":{"name":"connected","visibility":"Public","body":"send(\"ESC/VP.net\\u0010\\u0003\\u0000\\u0000\\u0000\\u0000\")\nschedule.every(52.seconds, true) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L39"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L221"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 20) && @power_stable\n input?\n video_mute?\n volume?\nend\ndo_send(:lamp, priority: 20)\n"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L73"},"def":{"name":"input?","visibility":"Public","body":"(do_send(:input, priority: 0)).get\nself[:input]\n"}},{"html_id":"inspect_error-instance-method","name":"inspect_error","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L145"},"def":{"name":"inspect_error","visibility":"Public","body":"do_send(:error, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L98"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"case layer\nwhen .audio_video?\n do_send(:av_mute, state ? \"ON\" : \"OFF\", name: :mute)\n do_send(:av_mute, name: :\"mute?\", priority: 0)\nwhen .video?\n do_send(:video_mute, state ? \"ON\" : \"OFF\", name: :video_mute)\n video_mute?\nwhen .audio?\n val = state ? 0.0 : @unmute_volume\n volume(val)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nself[:type] = :projector\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L43"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n @power_target = true\n logger.debug do\n \"-- epson Proj, requested to power on\"\n end\n do_send(:power, \"ON\", delay: 40.seconds, name: \"power\", priority: 99)\nelse\n @power_target = false\n logger.debug do\n \"-- epson Proj, requested to power off\"\n end\n do_send(:power, \"OFF\", delay: 10.seconds, name: \"power\", priority: 99)\nend\n@power_stable = false\nself[:power] = state\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L58"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power, **options)).get\n@power_actual || false\n"}},{"html_id":"power_actual:Bool|Nil-instance-method","name":"power_actual","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L22"},"def":{"name":"power_actual","return_type":"Bool | ::Nil","visibility":"Public","body":"@power_actual"}},{"html_id":"power_stable?:Bool-instance-method","name":"power_stable?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L23"},"def":{"name":"power_stable?","return_type":"Bool","visibility":"Public","body":"@power_stable"}},{"html_id":"power_target?:Bool-instance-method","name":"power_target?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L24"},"def":{"name":"power_target?","return_type":"Bool","visibility":"Public","body":"@power_target"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L160"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if data.size <= 2\n return task.try(&.success)\nend\ndata = String.new(data[1..-2])\nlogger.debug do\n \"epson Proj sent: #{data}\"\nend\ndata = data.split('=')\ncase RESPONSE[data[0]]\nwhen :error\n if data[1]?\n code = data[1].to_i(16)\n self[:last_error] = ERRORS[code]? || \"#{data[1]}: unknown error code #{code}\"\n return task.try(&.success(\"Epson PJ error was #{self[:last_error]}\"))\n else\n return task.try(&.abort(\"Epson PJ sent error response for #{task.not_nil!.name || \"unknown\"}\"))\n end\nwhen :power\n state = data[1].to_i\n @power_actual = powered = state < 3\n warming = state == 2\n cooling = state == 3\n if warming || cooling\n schedule.in(5.seconds) do\n power?(priority: 10)\n end\n else\n if !@power_stable\n if @power_actual == @power_target\n @power_stable = true\n else\n power(@power_target)\n end\n end\n end\n if @power_stable\n self[:power] = powered\n end\n self[:warming] = warming\n self[:cooling] = cooling\n if powered == @power_target\n if powered\n else\n self[:video_mute] = false\n end\n end\nwhen :av_mute\n self[:video_mute] = self[:audio_mute] = data[1] == \"ON\"\n self[:volume] = 0.0\nwhen :video_mute\n self[:video_mute] = data[1] == \"ON\"\nwhen :volume\n vol = data[1].to_i\n vol_percent = (vol.to_f / 255.0) * 100.0\n self[:volume] = vol_percent\n mute = vol == 0\n if mute\n self[:audio_mute] = mute\n end\n if mute\n else\n @unmute_volume || (@unmute_volume = vol_percent)\n end\nwhen :lamp\n self[:lamp_usage] = data[1].to_i\nwhen :input\n self[:input] = (Input.from_value(data[1].to_i(16))) || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L63"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- epson Proj, requested to switch to: #{input}\"\nend\ndo_send(:input, input.value.to_s(16), name: :input)\nself[:input] = input\nself[:video_mute] = false\ninput?\n"}},{"html_id":"video_mute?-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L116"},"def":{"name":"video_mute?","visibility":"Public","body":"(do_send(:video_mute, priority: 0)).get\n!!self[:video_mute]?.try(&.as_bool)\n"}},{"html_id":"volume(vol:Float64|Int32,**options)-instance-method","name":"volume","doc":"Volume commands are sent using the inpt command","summary":"

Volume commands are sent using the inpt command

","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"args_string":"(vol : Float64 | Int32, **options)","args_html":"(vol : Float64 | Int32, **options)","location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L79"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Float64 | Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * 255.0).round_away.to_i\nif (mute = vol == 0.0) && self[:volume]?\n @unmute_volume = self[:volume].as_f\nend\ndo_send(:volume, vol_actual, **options, name: :volume)\nself[:volume] = vol\nself[:audio_mute] = mute\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L93"},"def":{"name":"volume?","visibility":"Public","body":"(do_send(:volume, priority: 0)).get\nself[:volume]?.try(&.as_f)\n"}}],"types":[{"html_id":"drivers/Epson/Projector/EscVp21/Input","path":"Epson/Projector/EscVp21/Input.html","kind":"enum","full_name":"Epson::Projector::EscVp21::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/epson/projector/esc_vp21.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"48"},{"id":"HDBaseT","name":"HDBaseT","value":"128"}],"namespace":{"html_id":"drivers/Epson/Projector/EscVp21","kind":"class","full_name":"Epson::Projector::EscVp21","name":"EscVp21"},"instance_methods":[{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L12"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/epson/projector/esc_vp21.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/epson/projector/esc_vp21.cr#L11"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}}]}]}]}]},{"html_id":"drivers/Exterity","path":"Exterity.html","kind":"module","full_name":"Exterity","name":"Exterity","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Exterity/AvediaPlayer","path":"Exterity/AvediaPlayer.html","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer","abstract":false,"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity","kind":"module","full_name":"Exterity","name":"Exterity"},"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R92xx","path":"Exterity/AvediaPlayer/R92xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R92xx","name":"R92xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L40"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.info do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L52"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L56"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L72"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L60"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L76"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.info do\n \"Exterity sent #{data}\"\nend\nif @ready\n if data =~ (/sh: .* not found/i)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 2.seconds, priority: 95)\n return :failure\n end\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Exterity Control Interface| Exit/i)\n logger.info do\n \"-- got the control interface message, we're READY now\"\n end\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n logger.info do\n \"-- got the login: prompt\"\n end\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 200.milliseconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 200.milliseconds, priority: 97)\n do_send(\"6\", wait: false, delay: 2.seconds, priority: 96)\n do_send(\"/usr/bin/serialCommandInterface\", wait: false, delay: 200.milliseconds, priority: 95)\n schedule.in(20.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n else\n if logger.info do\n \"Somehow we got here #{data}\"\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L48"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L64"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r92xx.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r92xx.cr#L68"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}]},{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","path":"Exterity/AvediaPlayer/R93xx.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L4"},{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Exterity/AvediaPlayer","kind":"module","full_name":"Exterity::AvediaPlayer","name":"AvediaPlayer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(number:Int32|String)-instance-method","name":"channel","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"args_string":"(number : Int32 | String)","args_html":"(number : Int32 | String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L39"},"def":{"name":"channel","args":[{"name":"number","external_name":"number","restriction":"Int32 | String"}],"visibility":"Public","body":"if number.is_a?(Number)\n set(:playChannelNumber, number)\nelse\n stream(number)\nend"}},{"html_id":"channel_name(name:String)-instance-method","name":"channel_name","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L75"},"def":{"name":"channel_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(set(:currentChannel_name, name, name: :name)).get\ncurrent_channel_name\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Exterity Player\"\n end\n tv_info\nend\n"}},{"html_id":"current_channel-instance-method","name":"current_channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L94"},"def":{"name":"current_channel","visibility":"Public","body":"get(:currentChannel)"}},{"html_id":"current_channel_name-instance-method","name":"current_channel_name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L98"},"def":{"name":"current_channel_name","visibility":"Public","body":"get(:currentChannel_name)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"dump-instance-method","name":"dump","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L51"},"def":{"name":"dump","visibility":"Public","body":"do_send(\"^dump!\", name: :dump)"}},{"html_id":"help-instance-method","name":"help","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L55"},"def":{"name":"help","visibility":"Public","body":"do_send(\"^help!\", name: :help)"}},{"html_id":"manual(cmd:String)-instance-method","name":"manual","abstract":false,"args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"args_string":"(cmd : String)","args_html":"(cmd : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L71"},"def":{"name":"manual","args":[{"name":"cmd","external_name":"cmd","restriction":"String"}],"visibility":"Public","body":"do_send(cmd)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n @telnet.try(&.buffer(bytes))\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"channel_lookup = {} of String => ChannelDetail\nif channel_details = setting?(Array(ChannelDetail), :channel_details)\n self[:channel_details] = channel_details\n channel_details.each do |lookup|\n channel_lookup[lookup.channel] = lookup\n end\nelse\n self[:channel_details] = nil\nend\n@channel_lookup = channel_lookup\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L59"},"def":{"name":"reboot","visibility":"Public","body":"remote(:reboot)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L75"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Exterity sent #{data}\"\nend\nif @ready\n (data.split(\"!\")).map(&.strip(\"^\")).each do |resp|\n process_resp(resp, task)\n end\nelse\n if data =~ (/Terminal Control Interface/i)\n @ready = true\n self[:ready] = true\n version\n else\n if data =~ (/login:/i)\n transport.tokenizer = Tokenizer.new(\"\\r\")\n do_send(setting(String, :username), wait: false, delay: 2.seconds, priority: 98)\n do_send(setting(String, :password), wait: false, delay: 2.seconds, priority: 97)\n schedule.in(5.seconds) do\n if !@ready\n logger.error do\n \"Exterity connection failed to be ready after 5 seconds. Check username and password.\"\n end\n disconnect\n end\n end\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"stream(uri:String)-instance-method","name":"stream","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L47"},"def":{"name":"stream","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"set(:playChannelUri, uri)"}},{"html_id":"tv_info-instance-method","name":"tv_info","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L63"},"def":{"name":"tv_info","visibility":"Public","body":"get(:tv_info)"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/exterity/avedia_player/r93xx.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/r93xx.cr#L67"},"def":{"name":"version","visibility":"Public","body":"get(:SoftwareVersion)"}}],"types":[{"html_id":"drivers/Exterity/AvediaPlayer/R93xx/ChannelDetail","path":"Exterity/AvediaPlayer/R93xx/ChannelDetail.html","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx::ChannelDetail","name":"ChannelDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Exterity/AvediaPlayer/R93xx","kind":"class","full_name":"Exterity::AvediaPlayer::R93xx","name":"R93xx"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L29"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L28"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/exterity/avedia_player/m93xx.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/exterity/avedia_player/m93xx.cr#L27"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]}]}]},{"html_id":"drivers/Extron","path":"Extron.html","kind":"module","full_name":"Extron","name":"Extron","abstract":false,"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Extron/Matrix","path":"Extron/Matrix.html","kind":"class","full_name":"Extron::Matrix","name":"Matrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/matrix.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MUTE_INPUT","name":"MUTE_INPUT","value":"0_u16"}],"included_modules":[{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute(state:Bool=true,group:Int32=2)-instance-method","name":"audio_mute","doc":"Sets the audio mute *state* on the specified *group*.\n\nNOTE: mute groups may differ from volume groups depending on device\nconfiguration. Default group (2) is program audio.","summary":"

Sets the audio mute state on the specified group.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"args_string":"(state : Bool = true, group : Int32 = 2)","args_html":"(state : Bool = true, group : Int32 = 2)","location":{"filename":"src/extron/matrix.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L212"},"def":{"name":"audio_mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"group","default_value":"2","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"device_state = state ? '1' : '0'\nsend(Command[\"\\eD\", group, '*', device_state, \"GRPM\\r\"], Response::GroupMute) do\n state\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n query_device_info\nend"}},{"html_id":"device_size-instance-method","name":"device_size","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L60"},"def":{"name":"device_size","visibility":"Public","body":"if (__temp_1 = @device_size).nil?\n @device_size = (begin\n empty = MatrixSize.new(0_u16, 0_u16)\n SwitcherInformation.new(empty, empty)\n end)\nelse\n __temp_1\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nif config.role.ssh?\nelse\n @ready = false\n transport.tokenizer = nil\nend\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/extron/matrix.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L82"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"output = index.to_u16\nif output > 0\nelse\n return\nend\nswitch_layer = case layer\nin MuteLayer::Audio\n MatrixLayer::Aud\nin MuteLayer::Video\n MatrixLayer::Vid\nin MuteLayer::AudioVideo\n MatrixLayer::All\nend\nif state\n record_mute(output, switch_layer)\n switch_one(MUTE_INPUT, output, switch_layer)\nelse\n video_input = audio_input = MUTE_INPUT\n if switch_layer.all? || switch_layer.vid?\n video_input = (@muted_video.delete(output)) || MUTE_INPUT\n end\n if switch_layer.all? || switch_layer.aud?\n audio_input = (@muted_audio.delete(output)) || MUTE_INPUT\n end\n if audio_input > 0\n switch_one(audio_input, output, MatrixLayer::Aud)\n end\n if video_input > 0\n switch_one(video_input, output, MatrixLayer::Vid)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L29"},"def":{"name":"on_load","visibility":"Public","body":"if config.role.ssh?\n @ready = true\n transport.tokenizer = Tokenizer.new(DELIMITER)\nend\nqueue.delay = 200.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"inputs = (setting?(UInt16, :input_count)) || 8_u16\noutputs = (setting?(UInt16, :output_count)) || 1_u16\nio = MatrixSize.new(inputs, outputs)\n@device_size = SwitcherInformation.new(video: io, audio: io)\n"}},{"html_id":"query_device_info-instance-method","name":"query_device_info","abstract":false,"location":{"filename":"src/extron/matrix.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L65"},"def":{"name":"query_device_info","visibility":"Public","body":"send(Command['I'], Response::SwitcherInformation) do |info|\n video_io = MatrixSize.new(info.video.inputs, info.video.outputs)\n audio_io = MatrixSize.new(info.audio.inputs, info.audio.outputs)\n @device_size = SwitcherInformation.new(video: video_io, audio: audio_io)\n self[:video_matrix] = \"#{info.video.inputs}x#{info.video.outputs}\"\n self[:audio_matrix] = \"#{info.audio.inputs}x#{info.audio.outputs}\"\n info\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","doc":"Response callback for async responses.","summary":"

Response callback for async responses.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/matrix.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L240"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Ready #{@ready}, Received #{String.new(data)}\"\nend\nif !@ready\n payload = String.new(data)\n if payload =~ (/Copyright/i)\n if password = setting?(String, :password)\n send(\"#{password}\\r\", wait: false, priority: 99)\n end\n transport.tokenizer = Tokenizer.new(DELIMITER)\n @ready = true\n schedule.in(1.second) do\n query_device_info\n end\n end\n return\nend\ncase response = Response.parse(data, as: Response::Unsolicited)\nin Tie\n update_io(response)\nin Error, Response::ParseError\n logger.error do\n response\n end\n task.try(&.abort)\n return\nin Time\n query_device_info\nin String\n logger.info do\n response\n end\nin Nil\nend\ntask.try(&.success)\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","doc":"Implementing switchable interface","summary":"

Implementing switchable interface

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/matrix.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L118"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"extron_layer = case layer\nin Nil, .all?\n MatrixLayer::All\nin .audio?\n MatrixLayer::Aud\nin .video?\n MatrixLayer::Vid\nin .data?, .data2?\n logger.debug do\n \"layer #{layer} not available on extron matrix\"\n end\n return\nend\nif (map.size == 1) && (map.first_value.size == 1)\n switch_one(map.first_key, map.first_value.first, extron_layer)\nelse\n switch_map(map, extron_layer)\nend\n"}},{"html_id":"switch_layer(input:Input,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_layer","doc":"Connect *input* to all outputs at the specified *layer*.","summary":"

Connect input to all outputs at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L154"},"def":{"name":"switch_layer","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio = {} of UInt16 => UInt16\nend\nif layer.all? || layer.aud?\n @muted_video = {} of UInt16 => UInt16\nend\nsend(Command[input, layer], Response::Switch, name: \"present-#{input}-#{layer}\", &->update_io(Switch))\n"}},{"html_id":"switch_map(map:SignalMap,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_map","doc":"Applies a `SignalMap` as a single operation. All included ties will take\nsimultaneously on the device.","summary":"

Applies a SignalMap as a single operation.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","args_html":"(map : SignalMap, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L162"},"def":{"name":"switch_map","args":[{"name":"map","external_name":"map","restriction":"SignalMap"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if map.size == 1\n outp = map.first_value\n if outp.is_a?(Array)\n if outp.size == 1\n return switch_one(map.first_key, outp.first, layer)\n end\n else\n return switch_one(map.first_key, outp, layer)\n end\nend\nties = map.flat_map do |__temp_236|\n input, outputs = __temp_236\n if outputs.is_a?(Enumerable)\n outputs.each.map do |output|\n if layer.all? || layer.aud?\n @muted_audio.delete(output)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(output)\n end\n Tie.new(input, output, layer)\n end\n else\n if layer.all? || layer.aud?\n @muted_audio.delete(outputs)\n end\n if layer.all? || layer.vid?\n @muted_video.delete(outputs)\n end\n Tie.new(input, outputs, layer)\n end\nend\nconflicts = ties - ties.uniq(&.output)\nif conflicts.empty?\nelse\n raise(ArgumentError.new(\"map contains conflicts for output(s) #{conflicts.join(\", \", &.output)}\"))\nend\nsend(Command[\"\\e+Q\", ties.map do |tie|\n [tie.input, '*', tie.output, tie.layer]\nend, '\\r'], Response::Qik) do\n ties.each(&->update_io(Tie))\nend\n"}},{"html_id":"switch_one(input:Input,output:Output,layer:MatrixLayer=MatrixLayer::All)-instance-method","name":"switch_one","doc":"Connect a signal *input* to an *output* at the specified *layer*.\n\n`0` may be used as either an input or output to specify a disconnection at\nthe corresponding signal point. For example, to disconnect input 1 from all\noutputs is is currently feeding `switch(1, 0)`.","summary":"

Connect a signal input to an output at the specified layer.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","args_html":"(input : Input, output : Output, layer : MatrixLayer = MatrixLayer::All)","location":{"filename":"src/extron/matrix.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L147"},"def":{"name":"switch_one","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","default_value":"MatrixLayer::All","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"if layer.all? || layer.aud?\n @muted_audio.delete(output)\nend\nif layer.all? || layer.vid?\n @muted_video.delete(output)\nend\nsend(Command[input, '*', output, layer], Response::Tie, name: \"switch-#{output}-#{layer}\", &->update_io(Tie))\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/extron/matrix.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L134"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"switch_layer(input)"}},{"html_id":"volume(level:Float64|Int32,group:Int32=1)-instance-method","name":"volume","doc":"Sets the audio volume *level* (0..100) on the specified mix *group*.","summary":"

Sets the audio volume level (0..100) on the specified mix group.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"args_string":"(level : Float64 | Int32, group : Int32 = 1)","args_html":"(level : Float64 | Int32, group : Int32 = 1)","location":{"filename":"src/extron/matrix.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L199"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Float64 | Int32"},{"name":"group","default_value":"1","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\ndevice_level = (level * 10.0).round_away.to_i - 1000\nsend(Command[\"\\eD\", group, '*', device_level, \"GRPM\\r\"], Response::GroupVolume) do\n level\nend\n"}}],"types":[{"html_id":"drivers/Extron/Matrix/Outputs","path":"Extron/Matrix/Outputs.html","kind":"alias","full_name":"Extron::Matrix::Outputs","name":"Outputs","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(UInt16)","aliased_html":"Array(UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}},{"html_id":"drivers/Extron/Matrix/SignalMap","path":"Extron/Matrix/SignalMap.html","kind":"alias","full_name":"Extron::Matrix::SignalMap","name":"SignalMap","abstract":false,"locations":[{"filename":"src/extron/matrix.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/matrix.cr#L140"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(UInt16, Array(UInt16) | UInt16)","aliased_html":"Hash(UInt16, Array(UInt16) | UInt16)","const":false,"namespace":{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}}]},{"html_id":"drivers/Extron/SIS","path":"Extron/SIS.html","kind":"module","full_name":"Extron::SIS","name":"SIS","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L9"},{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"SPECIAL_CHARS","name":"SPECIAL_CHARS","value":"\"+-,@=‘[]{}<>`“;:|?\".chars","doc":"Illegal characters for use in property names.","summary":"

Illegal characters for use in property names.

"},{"id":"SSH_PORT","name":"SSH_PORT","value":"22023"},{"id":"TELNET_PORT","name":"TELNET_PORT","value":"23"}],"including_types":[{"html_id":"drivers/Extron/Matrix","kind":"class","full_name":"Extron::Matrix","name":"Matrix"}],"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"doc":"Implementation, types and utilities for working with the Extron Simple\nInstruction Set (SIS) device control protocol.\n\nThis protocol is used for control of all Extron signal distribution,\nprocessing and general audio-visual products via SSH, telnet and serial\ncontrol.","summary":"

Implementation, types and utilities for working with the Extron Simple Instruction Set (SIS) device control protocol.

","types":[{"html_id":"drivers/Extron/SIS/Command","path":"Extron/SIS/Command.html","kind":"struct","full_name":"Extron::SIS::Command(*T)","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis/command.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Structure for representing a SIS device command.\n\nCommands are composed from a set of *fields*. The contents and types of these\nare arbitrary, however they must be capable of serialising to an IO.","summary":"

Structure for representing a SIS device command.

","constructors":[{"html_id":"new(*fields:*T)-class-method","name":"new","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"args_string":"(*fields : *T)","args_html":"(*fields : *T)","location":{"filename":"src/extron/sis/command.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L6"},"def":{"name":"new","args":[{"name":"fields","external_name":"fields","restriction":"*T"}],"splat_index":0,"visibility":"Public","body":"_ = Command(*T).allocate\n_.initialize(*fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_io(io:IO,format=IO::ByteFormat::SystemEndian)-instance-method","name":"to_io","doc":"Writes `self` to the passed *io*.","summary":"

Writes self to the passed io.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"args_string":"(io : IO, format = IO::ByteFormat::SystemEndian)","args_html":"(io : IO, format = IO::ByteFormat::SystemEndian)","location":{"filename":"src/extron/sis/command.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L18"},"def":{"name":"to_io","args":[{"name":"io","external_name":"io","restriction":"IO"},{"name":"format","default_value":"IO::ByteFormat::SystemEndian","external_name":"format","restriction":""}],"visibility":"Public","body":"@fields.each.flatten.each do |field|\n if field.is_a?(Enum)\n io.write_byte(field.value)\n else\n io << field\n end\nend"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Serialises `self` in a format suitable for log messages.","summary":"

Serialises self in a format suitable for log messages.

","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/extron/sis/command.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L11"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << '‹'\nto_io(io)\nio << '›'\n"}}],"macros":[{"html_id":"[](*fields)-macro","name":"[]","doc":"Syntactical suger for `Command` definition. Provides the ability to express\ncommand fields in the same way as `Byte` objects and other similar\ncollections from the Crystal std lib.","summary":"

Syntactical suger for Command definition.

","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":""}],"args_string":"(*fields)","args_html":"(*fields)","location":{"filename":"src/extron/sis/command.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/command.cr#L31"},"def":{"name":"[]","args":[{"name":"fields","external_name":"fields","restriction":""}],"splat_index":0,"visibility":"Public","body":" Extron::SIS::Command.new(\n{{ *fields }}\n)\n \n"}}]},{"html_id":"drivers/Extron/SIS/Error","path":"Extron/SIS/Error.html","kind":"enum","full_name":"Extron::SIS::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"InvalidInput","name":"InvalidInput","value":"1"},{"id":"InvalidCommand","name":"InvalidCommand","value":"10"},{"id":"InvalidPresent","name":"InvalidPresent","value":"11"},{"id":"InvalidOutput","name":"InvalidOutput","value":"12"},{"id":"InvalidParameter","name":"InvalidParameter","value":"13"},{"id":"InvalidForConfig","name":"InvalidForConfig","value":"14"},{"id":"Timeout","name":"Timeout","value":"17"},{"id":"Busy","name":"Busy","value":"22"},{"id":"PrivilegesViolation","name":"PrivilegesViolation","value":"24"},{"id":"DeviceNotPresent","name":"DeviceNotPresent","value":"25"},{"id":"MaxConnectionsExceeded","name":"MaxConnectionsExceeded","value":"26"},{"id":"InvalidEventNumber","name":"InvalidEventNumber","value":"27"},{"id":"FileNotFound","name":"FileNotFound","value":"28"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Device error numbers","summary":"

Device error numbers

","instance_methods":[{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L30"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"device_not_present?-instance-method","name":"device_not_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L32"},"def":{"name":"device_not_present?","visibility":"Public","body":"self == DeviceNotPresent"}},{"html_id":"file_not_found?-instance-method","name":"file_not_found?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L35"},"def":{"name":"file_not_found?","visibility":"Public","body":"self == FileNotFound"}},{"html_id":"invalid_command?-instance-method","name":"invalid_command?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L24"},"def":{"name":"invalid_command?","visibility":"Public","body":"self == InvalidCommand"}},{"html_id":"invalid_event_number?-instance-method","name":"invalid_event_number?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L34"},"def":{"name":"invalid_event_number?","visibility":"Public","body":"self == InvalidEventNumber"}},{"html_id":"invalid_for_config?-instance-method","name":"invalid_for_config?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L28"},"def":{"name":"invalid_for_config?","visibility":"Public","body":"self == InvalidForConfig"}},{"html_id":"invalid_input?-instance-method","name":"invalid_input?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L23"},"def":{"name":"invalid_input?","visibility":"Public","body":"self == InvalidInput"}},{"html_id":"invalid_output?-instance-method","name":"invalid_output?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L26"},"def":{"name":"invalid_output?","visibility":"Public","body":"self == InvalidOutput"}},{"html_id":"invalid_parameter?-instance-method","name":"invalid_parameter?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L27"},"def":{"name":"invalid_parameter?","visibility":"Public","body":"self == InvalidParameter"}},{"html_id":"invalid_present?-instance-method","name":"invalid_present?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L25"},"def":{"name":"invalid_present?","visibility":"Public","body":"self == InvalidPresent"}},{"html_id":"max_connections_exceeded?-instance-method","name":"max_connections_exceeded?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L33"},"def":{"name":"max_connections_exceeded?","visibility":"Public","body":"self == MaxConnectionsExceeded"}},{"html_id":"privileges_violation?-instance-method","name":"privileges_violation?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L31"},"def":{"name":"privileges_violation?","visibility":"Public","body":"self == PrivilegesViolation"}},{"html_id":"retryable?-instance-method","name":"retryable?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L37"},"def":{"name":"retryable?","visibility":"Public","body":"timeout? || busy?"}},{"html_id":"timeout?-instance-method","name":"timeout?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L29"},"def":{"name":"timeout?","visibility":"Public","body":"self == Timeout"}}]},{"html_id":"drivers/Extron/SIS/Input","path":"Extron/SIS/Input.html","kind":"alias","full_name":"Extron::SIS::Input","name":"Input","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/MatrixLayer","path":"Extron/SIS/MatrixLayer.html","kind":"enum","full_name":"Extron::SIS::MatrixLayer","name":"MatrixLayer","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L47"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"All","name":"All","value":"33_u8"},{"id":"Aud","name":"Aud","value":"36_u8"},{"id":"Vid","name":"Vid","value":"37_u8"},{"id":"RGB","name":"RGB","value":"38_u8"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Layers for targetting signal distribution operations.","summary":"

Layers for targetting signal distribution operations.

","instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L48"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"aud?-instance-method","name":"aud?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L49"},"def":{"name":"aud?","visibility":"Public","body":"self == Aud"}},{"html_id":"includes_audio?-instance-method","name":"includes_audio?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L57"},"def":{"name":"includes_audio?","visibility":"Public","body":"All || Aud"}},{"html_id":"includes_video?-instance-method","name":"includes_video?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L53"},"def":{"name":"includes_video?","visibility":"Public","body":"(All || Vid) || RGB"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L51"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"vid?-instance-method","name":"vid?","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L50"},"def":{"name":"vid?","visibility":"Public","body":"self == Vid"}}]},{"html_id":"drivers/Extron/SIS/MatrixSize","path":"Extron/SIS/MatrixSize.html","kind":"struct","full_name":"Extron::SIS::MatrixSize","name":"MatrixSize","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a switching layer.","summary":"

IO capacity for a switching layer.

","constructors":[{"html_id":"new(inputs:Input,outputs:Output)-class-method","name":"new","abstract":false,"args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"args_string":"(inputs : Input, outputs : Output)","args_html":"(inputs : Input, outputs : Output)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"new","args":[{"name":"inputs","external_name":"inputs","restriction":"Input"},{"name":"outputs","external_name":"outputs","restriction":"Output"}],"visibility":"Public","body":"_ = allocate\n_.initialize(inputs, outputs)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@inputs.clone, @outputs.clone)"}},{"html_id":"copy_with(inputs_inputs=@inputs,outputs_outputs=@outputs)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"args_string":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","args_html":"(inputs _inputs = @inputs, outputs _outputs = @outputs)","location":{"filename":"src/extron/sis.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L69"},"def":{"name":"copy_with","args":[{"name":"_inputs","default_value":"@inputs","external_name":"inputs","restriction":""},{"name":"_outputs","default_value":"@outputs","external_name":"outputs","restriction":""}],"visibility":"Public","body":"self.class.new(_inputs, _outputs)"}},{"html_id":"inputs:Input-instance-method","name":"inputs","abstract":false,"def":{"name":"inputs","return_type":"Input","visibility":"Public","body":"@inputs"}},{"html_id":"outputs:Output-instance-method","name":"outputs","abstract":false,"def":{"name":"outputs","return_type":"Output","visibility":"Public","body":"@outputs"}}]},{"html_id":"drivers/Extron/SIS/Ok","path":"Extron/SIS/Ok.html","kind":"struct","full_name":"Extron::SIS::Ok","name":"Ok","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Symbolic type for representating a successfull interactions no useful data.","summary":"

Symbolic type for representating a successfull interactions no useful data.

","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L19"},"def":{"name":"initialize","visibility":"Public","body":""}}]},{"html_id":"drivers/Extron/SIS/Output","path":"Extron/SIS/Output.html","kind":"alias","full_name":"Extron::SIS::Output","name":"Output","abstract":false,"locations":[{"filename":"src/extron/sis.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"UInt16","aliased_html":"UInt16","const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"}},{"html_id":"drivers/Extron/SIS/Response","path":"Extron/SIS/Response.html","kind":"module","full_name":"Extron::SIS::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"locations":[{"filename":"src/extron/sis/response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Clock","name":"Clock","value":"Raw.map do |date|\n Time.parse_utc(date, \"%a, %d %b %Y %T\")\nend","doc":"Part of the copyright banner, but appears on a new line so will tokenize as\nas standalone message.","summary":"

Part of the copyright banner, but appears on a new line so will tokenize as as standalone message.

"},{"id":"Copyright","name":"Copyright","value":"((Parse.string(\"(c) Copyright\")) + Raw).map(&.join)","doc":"Copyright message shown on connect.","summary":"

Copyright message shown on connect.

"},{"id":"DeviceError","name":"DeviceError","value":"(Parse.char('E')) >> Parse.integer.map do |e|\n SIS::Error.new(e.to_i)\nend","doc":"Error codes returned from the device.","summary":"

Error codes returned from the device.

"},{"id":"Empty","name":"Empty","value":"(Parse.string(\"\\r\\n\")) >> (Parse.const(nil))"},{"id":"GroupMute","name":"GroupMute","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), state <= BoolField, Parse.const({state, group})})","doc":"Group audio mute update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group audio mute update / response.

"},{"id":"GroupVolume","name":"GroupVolume","value":"Parse.do({(_) <= (Parse.string(\"GrpmD\")), group <= (num(Int32)), (_) <= (Parse.char('*')), (_) <= (Parse.char('-')), level <= (num(Int32)).map do |val|\n val * -1\nend, Parse.const({level, group})})","doc":"Group volume update / response. Level are provided in the raw device range\nof -1000..0.","summary":"

Group volume update / response.

"},{"id":"MatrixSize","name":"MatrixSize","value":"Parse.do({inputs <= (num(Input)), (_) <= (Parse.char('X')), outputs <= (num(Output)), Parse.const(SIS::MatrixSize.new(inputs, outputs))})"},{"id":"Qik","name":"Qik","value":"(Parse.string(\"Qik\")) >> (Parse.const(Ok.new))","doc":"Quick response, occurs following quick tie, or switching interaction from\nthe device's front panel.","summary":"

Quick response, occurs following quick tie, or switching interaction from the device's front panel.

"},{"id":"Raw","name":"Raw","value":"(((Parse.char ^ Delimiter) * (0..)) << (Delimiter * (0..1))).map(&.join)","doc":"Parse a full command response as a String. Delimiter is optional as it may\nhave already been dropped by an upstream tokenizer.","summary":"

Parse a full command response as a String.

"},{"id":"Switch","name":"Switch","value":"Parse.do({input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Switch.new(input, layer))})","doc":"Broadcast or single output route update.","summary":"

Broadcast or single output route update.

"},{"id":"SwitcherInformation","name":"SwitcherInformation","value":"Parse.do({(_) <= (Parse.char('V')), video <= MatrixSize, (_) <= (Parse.char(' ')), (_) <= (Parse.char('A')), audio <= MatrixSize, Parse.const(SIS::SwitcherInformation.new(video, audio))})"},{"id":"Tie","name":"Tie","value":"Parse.do({output <= ((Parse.string(\"Out\")) >> (num(Output))), (_) <= (Parse.char(' ')), input <= ((Parse.string(\"In\")) >> (num(Input))), (_) <= (Parse.char(' ')), layer <= (word_as_enum(MatrixLayer)), Parse.const(SIS::Tie.new(input, output, layer))})","doc":"Matrix signal route update.","summary":"

Matrix signal route update.

"},{"id":"Unsolicited","name":"Unsolicited","value":"(((DeviceError | Tie) | Copyright) | Clock) | Empty","doc":"Async messages that can be expected outside of a command -> response flow.","summary":"

Async messages that can be expected outside of a command -> response flow.

"}],"included_modules":[{"html_id":"drivers/Pars","kind":"module","full_name":"Pars","name":"Pars"}],"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Parsers for responses and asynchronous messages originating from Extron SIS\ndevices.","summary":"

Parsers for responses and asynchronous messages originating from Extron SIS devices.

","class_methods":[{"html_id":"parse(data:String,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : String, as parser : Parser(T)) forall T","args_html":"(data : String, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L11"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"String"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"((parser | DeviceError) | \"unhandled device response\").parse(data)"}},{"html_id":"parse(data:Bytes,asparser:Parser(T))forallT-class-method","name":"parse","doc":"Parses a response packet with specified *parser*.\n\nReturns the parser output, a parse error or a device error.","summary":"

Parses a response packet with specified parser.

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"args_string":"(data : Bytes, as parser : Parser(T)) forall T","args_html":"(data : Bytes, as parser : Parser(T)) forall T","location":{"filename":"src/extron/sis/response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis/response.cr#L16"},"def":{"name":"parse","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"parser","external_name":"as","restriction":"Parser(T)"}],"visibility":"Public","body":"parse(String.new(data), parser)"}}]},{"html_id":"drivers/Extron/SIS/Switch","path":"Extron/SIS/Switch.html","kind":"struct","full_name":"Extron::SIS::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a broadcast signal path, or single output switch.","summary":"

Struct for representing a broadcast signal path, or single output switch.

","constructors":[{"html_id":"new(input:Input,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, layer : MatrixLayer)","args_html":"(input : Input, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, layer _layer = @layer)","args_html":"(input _input = @input, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L66"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}}]},{"html_id":"drivers/Extron/SIS/SwitcherInformation","path":"Extron/SIS/SwitcherInformation.html","kind":"struct","full_name":"Extron::SIS::SwitcherInformation","name":"SwitcherInformation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"IO capacity for a full device.","summary":"

IO capacity for a full device.

","constructors":[{"html_id":"new(video:MatrixSize,audio:MatrixSize)-class-method","name":"new","abstract":false,"args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"args_string":"(video : MatrixSize, audio : MatrixSize)","args_html":"(video : MatrixSize, audio : MatrixSize)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"new","args":[{"name":"video","external_name":"video","restriction":"MatrixSize"},{"name":"audio","external_name":"audio","restriction":"MatrixSize"}],"visibility":"Public","body":"_ = allocate\n_.initialize(video, audio)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"audio:MatrixSize-instance-method","name":"audio","abstract":false,"def":{"name":"audio","return_type":"MatrixSize","visibility":"Public","body":"@audio"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@video.clone, @audio.clone)"}},{"html_id":"copy_with(video_video=@video,audio_audio=@audio)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"args_string":"(video _video = @video, audio _audio = @audio)","args_html":"(video _video = @video, audio _audio = @audio)","location":{"filename":"src/extron/sis.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L72"},"def":{"name":"copy_with","args":[{"name":"_video","default_value":"@video","external_name":"video","restriction":""},{"name":"_audio","default_value":"@audio","external_name":"audio","restriction":""}],"visibility":"Public","body":"self.class.new(_video, _audio)"}},{"html_id":"video:MatrixSize-instance-method","name":"video","abstract":false,"def":{"name":"video","return_type":"MatrixSize","visibility":"Public","body":"@video"}}]},{"html_id":"drivers/Extron/SIS/Tie","path":"Extron/SIS/Tie.html","kind":"struct","full_name":"Extron::SIS::Tie","name":"Tie","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/SIS","kind":"module","full_name":"Extron::SIS","name":"SIS"},"doc":"Struct for representing a matrix signal path.","summary":"

Struct for representing a matrix signal path.

","constructors":[{"html_id":"new(input:Input,output:Output,layer:MatrixLayer)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"args_string":"(input : Input, output : Output, layer : MatrixLayer)","args_html":"(input : Input, output : Output, layer : MatrixLayer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Input"},{"name":"output","external_name":"output","restriction":"Output"},{"name":"layer","external_name":"layer","restriction":"MatrixLayer"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/extron/sis.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/sis.cr#L63"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Input-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Input","visibility":"Public","body":"@input"}},{"html_id":"layer:MatrixLayer-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"MatrixLayer","visibility":"Public","body":"@layer"}},{"html_id":"output:Output-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Output","visibility":"Public","body":"@output"}}]}]},{"html_id":"drivers/Extron/UsbExtenderPlus","path":"Extron/UsbExtenderPlus.html","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus","abstract":false,"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron","kind":"module","full_name":"Extron","name":"Extron"},"types":[{"html_id":"drivers/Extron/UsbExtenderPlus/Endpoint","path":"Extron/UsbExtenderPlus/Endpoint.html","kind":"class","full_name":"Extron::UsbExtenderPlus::Endpoint","name":"Endpoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"query_joins"}},{"html_id":"join(mac:String)-instance-method","name":"join","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L91"},"def":{"name":"join","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"mac = (mac.gsub(/\\-|\\:/, \"\")).downcase\nlogger.debug do\n \"joining with #{mac}\"\nend\n(send(\"2f03f4a2020000000302#{mac}\".hexbytes, delay: 600.milliseconds)).get\nquery_joins\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 300.milliseconds\nself[:joined_to] = @joined_to\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"self[:mac_address] = ((setting(String, :mac_address)).gsub(/\\-|\\:/, \"\")).downcase\nself[:ip] = config.ip\nself[:port] = config.port\nself[:location] = setting(String, :location)\nschedule.clear\nschedule.every(2.minutes) do\n logger.debug do\n \"-- polling extron USB device\"\n end\n if query_joins.success?\n if self[:connected]\n else\n set_connected_state(true)\n end\n end\nend\n"}},{"html_id":"query_joins-instance-method","name":"query_joins","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L50"},"def":{"name":"query_joins","visibility":"Public","body":"task = (send(\"2f03f4a2000000000300\".hexbytes)).get\nif !task.state.success?\n if self[:connected]\n set_connected_state(false)\n end\n logger.warn do\n \"Extron USB Device Probably Offline: #{config.ip}\\nJoin query failed.\"\n end\nend\ntask.state\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L103"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"resp = data.hexstring\nlogger.debug do\n \"Extron USB sent: #{resp}\"\nend\ncheck = resp[0..21]\nif (check == \"2f03f4a200000000030100\") || (check == \"2f03f4a200000000030101\")\n self[:is_host] = check[-1] == '0'\n macs = (resp[22..-1].scan(/.{12}/)).map(&.to_s)\n logger.debug do\n \"Extron USB joined with: #{macs}\"\n end\n self[:joined_to] = @joined_to = macs\nelse\n case resp\n when \"2f03f4a2010000000003\"\n logger.debug do\n \"Extron USB responded to UDP ping\"\n end\n when \"2f03f4a2020000000003\"\n logger.debug do\n \"join/unjoin success\"\n end\n when \"2f03f4a2020000000308\"\n logger.debug do\n \"join/unjoin might have failed..\"\n end\n else\n logger.info do\n \"Unknown response from extron: #{resp}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"unjoin(from:String|Int32)-instance-method","name":"unjoin","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"args_string":"(from : String | Int32)","args_html":"(from : String | Int32)","location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L74"},"def":{"name":"unjoin","args":[{"name":"from","external_name":"from","restriction":"String | Int32"}],"visibility":"Public","body":"mac = case from\nin Int32\n @joined_to[from]\nin String\n formatted = (from.gsub(/\\-|\\:/, \"\")).downcase\n if @joined_to.includes?(formatted)\n formatted\n end\nend\nif mac\n (send_unjoin(mac)).get\n query_joins\nelse\n logger.debug do\n \"not currently joined to #{from}\"\n end\nend\n"}},{"html_id":"unjoin_all-instance-method","name":"unjoin_all","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/endpoint.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/endpoint.cr#L59"},"def":{"name":"unjoin_all","visibility":"Public","body":"unjoins = [] of PlaceOS::Driver::Task\nif @joined_to.empty?\n logger.debug do\n \"nothing to unjoin from\"\n end\nend\n@joined_to.each do |mac|\n unjoins << (send_unjoin(mac))\nend\nunjoins.each(&.get)\nquery_joins\n"}}]},{"html_id":"drivers/Extron/UsbExtenderPlus/VirtualSwitcher","path":"Extron/UsbExtenderPlus/VirtualSwitcher.html","kind":"class","full_name":"Extron::UsbExtenderPlus::VirtualSwitcher","name":"VirtualSwitcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Extron/UsbExtenderPlus","kind":"module","full_name":"Extron::UsbExtenderPlus","name":"UsbExtenderPlus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_macs:Hash(String,Int32)-instance-method","name":"device_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L26"},"def":{"name":"device_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @device_macs).nil?\n @device_macs = (begin\n hash = {} of String => Int32\n devices.each_with_index do |device, index|\n hash[device.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"host_macs:Hash(String,Int32)-instance-method","name":"host_macs","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L18"},"def":{"name":"host_macs","return_type":"Hash(String, Int32)","visibility":"Public","body":"if (__temp_1 = @host_macs).nil?\n @host_macs = (begin\n hash = {} of String => Int32\n hosts.each_with_index do |host, index|\n hash[host.status(String, :mac_address)] = index\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","doc":"lazily obtain host and device mac addresses","summary":"

lazily obtain host and device mac addresses

","abstract":false,"location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@host_macs = nil\n@device_macs = nil\n"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L54"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"layer || (layer = SwitchLayer::All)\nif (layer.all? || layer.data?) || layer.data2?\nelse\n return\nend\nmap.each do |host_idx, device_idxs|\n if host_idx == 0\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to 0\"\n end\n next\n end\n perform_unjoin(device)\n end\n next\n end\n host = hosts[host_idx - 1]?\n if host\n else\n logger.warn do\n \"host not found in switch USB_Host_#{host_idx} => #{device_idxs}\"\n end\n next\n end\n device_idxs.each do |device_idx|\n device = devices[device_idx - 1]?\n if device\n else\n logger.warn do\n \"device USB_Device_#{device_idx} not found switching to USB_Host_#{host_idx}\"\n end\n next\n end\n perform_join(host, device)\n end\nend\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"0 == unjoin, input is the host index","summary":"

0 == unjoin, input is the host index

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/extron/usb_extender_plus/virtual_switcher.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/extron/usb_extender_plus/virtual_switcher.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input == 0\n unjoin_all\nelse\n host = hosts[input - 1]\n host_mac = host.status(String, :mac_address)\n unjoin_all_devices\n unjoin_all_hosts\n devices.each do |device|\n perform_join(host, device)\n end\nend"}}]}]}]},{"html_id":"drivers/Floorsense","path":"Floorsense.html","kind":"module","full_name":"Floorsense","name":"Floorsense","abstract":false,"locations":[{"filename":"src/floorsense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Floorsense Data Models","summary":"

Floorsense Data Models

","types":[{"html_id":"drivers/Floorsense/AuthInfo","path":"Floorsense/AuthInfo.html","kind":"class","full_name":"Floorsense::AuthInfo","name":"AuthInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"sessionid:String-instance-method","name":"sessionid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L73"},"def":{"name":"sessionid","return_type":"String","visibility":"Public","body":"@sessionid"}},{"html_id":"sessionid=(sessionid:String)-instance-method","name":"sessionid=","abstract":false,"args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"args_string":"(sessionid : String)","args_html":"(sessionid : String)","location":{"filename":"src/floorsense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L73"},"def":{"name":"sessionid=","args":[{"name":"sessionid","external_name":"sessionid","restriction":"String"}],"visibility":"Public","body":"@sessionid = sessionid"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L72"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/floorsense/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L72"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/Floorsense/Booking","path":"Floorsense/Booking.html","kind":"class","full_name":"Floorsense::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L286"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L286"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L312"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L312"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L298"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L295"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String|Nil-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String|Nil)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"args_string":"(booked_by_email : String | Nil)","args_html":"(booked_by_email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L319"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_name:String|Nil-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String|Nil)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"args_string":"(booked_by_name : String | Nil)","args_html":"(booked_by_name : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L318"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L291"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L291"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L290"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L290"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L289"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L289"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L310"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L310"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"checked_in?-instance-method","name":"checked_in?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L345"},"def":{"name":"checked_in?","visibility":"Public","body":"!checked_in.nil? && checked_in.not_nil!"}},{"html_id":"checked_in_at:Int64|Nil-instance-method","name":"checked_in_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_in_at"}},{"html_id":"checked_in_at=(checked_in_at:Int64|Nil)-instance-method","name":"checked_in_at=","abstract":false,"args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_in_at : Int64 | Nil)","args_html":"(checked_in_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L315"},"def":{"name":"checked_in_at=","args":[{"name":"checked_in_at","external_name":"checked_in_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_in_at = checked_in_at"}},{"html_id":"checked_out?-instance-method","name":"checked_out?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L341"},"def":{"name":"checked_out?","visibility":"Public","body":"!checked_out_at.nil?"}},{"html_id":"checked_out_at:Int64|Nil-instance-method","name":"checked_out_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@checked_out_at"}},{"html_id":"checked_out_at=(checked_out_at:Int64|Nil)-instance-method","name":"checked_out_at=","abstract":false,"args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"args_string":"(checked_out_at : Int64 | Nil)","args_html":"(checked_out_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L316"},"def":{"name":"checked_out_at=","args":[{"name":"checked_out_at","external_name":"checked_out_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@checked_out_at = checked_out_at"}},{"html_id":"deleted:Bool|Nil-instance-method","name":"deleted","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L305"},"def":{"name":"deleted","return_type":"Bool | ::Nil","visibility":"Public","body":"@deleted"}},{"html_id":"deleted=(deleted:Bool|Nil)-instance-method","name":"deleted=","abstract":false,"args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"args_string":"(deleted : Bool | Nil)","args_html":"(deleted : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L305"},"def":{"name":"deleted=","args":[{"name":"deleted","external_name":"deleted","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@deleted = deleted"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L349"},"def":{"name":"deleted?","visibility":"Public","body":"action == \"cancelled\""}},{"html_id":"deleted_at:Int64|Nil-instance-method","name":"deleted_at","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at","return_type":"Int64 | ::Nil","visibility":"Public","body":"@deleted_at"}},{"html_id":"deleted_at=(deleted_at:Int64|Nil)-instance-method","name":"deleted_at=","abstract":false,"args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"args_string":"(deleted_at : Int64 | Nil)","args_html":"(deleted_at : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L306"},"def":{"name":"deleted_at=","args":[{"name":"deleted_at","external_name":"deleted_at","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@deleted_at = deleted_at"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L321"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L321"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"floor_id:String|Nil-instance-method","name":"floor_id","abstract":false,"def":{"name":"floor_id","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @floor_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::Booking#floor_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_id=(floor_id:String|Nil)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"args_string":"(floor_id : String | Nil)","args_html":"(floor_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L324"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_id?:String|Nil|Nil-instance-method","name":"floor_id?","abstract":false,"def":{"name":"floor_id?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floorsense_booking_id:String|Nil-instance-method","name":"floorsense_booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L331"},"def":{"name":"floorsense_booking_id","return_type":"String | ::Nil","visibility":"Public","body":"ext_data = extension_data\nif ext_data\nelse\n return\nend\next_data[\"floorsense_booking_id\"]?.try(&.as_s)\n"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L288"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L288"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L326"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"is_deleted?-instance-method","name":"is_deleted?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":353,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L353"},"def":{"name":"is_deleted?","visibility":"Public","body":"!!deleted && !deleted_at.nil?"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L314"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":314,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L314"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L313"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L313"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L311"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L311"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L337"},"def":{"name":"released?","visibility":"Public","body":"checked_out? || booking_end <= Time.local.to_unix"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L296"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L296"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L292"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L292"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L303"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/models.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L303"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L302"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L302"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L304"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/models.cr","line_number":304,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L304"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L308"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/models.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L308"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Floorsense/BookingsSync","path":"Floorsense/BookingsSync.html","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_floorsense_log:Nil-instance-method","name":"check_floorsense_log","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L198"},"def":{"name":"check_floorsense_log","return_type":"Nil","visibility":"Public","body":"last_event_id = @last_event_id\nif last_event_id.nil?\n recent = (floorsense.event_log({49, 50, 53})).get.as_a\n if !recent.empty?\n last = recent.last\n @last_event_id = last[\"eventid\"].as_i64\n @last_event_at = last[\"eventtime\"].as_i64\n end\n return\nend\nevents = Array(LogEntry).from_json(floorsense.event_log(codes: {49, 50, 53}, after: @last_event_at, limit: 500).get.to_json)\nevents.reject! do |event|\n event.eventid <= last_event_id\nend\nif events.empty?\n return\nend\nlogger.debug do\n \"parsing floorsense event log, #{events.size} new events\"\nend\n@last_event_id = events.last.eventid\nevents.each do |event|\n begin\n booking = BookingStatus.from_json((floorsense.get_booking(event.bkid)).get.to_json)\n floor_details = @floor_mappings[booking.planid.to_s]?\n if floor_details\n else\n next\n end\n booking_key = booking.key\n if booking_key\n else\n next\n end\n case event.code\n when 49\n if booking.booking_type != \"adhoc\"\n next\n end\n user_email = booking.user.not_nil!.email.try(&.downcase)\n if user_email.nil?\n logger.warn do\n \"no user email defined for floorsense user #{booking.user.not_nil!.name}\"\n end\n next\n end\n user = (staff_api.user(user_email)).get\n user_id = user[\"id\"]\n user_name = user[\"name\"]\n logger.debug do\n \"new floorsense booking found #{booking}\"\n end\n staff_api.create_booking(booking_start: booking.start, booking_end: booking.finish, time_zone: @time_zone.to_s, booking_type: @booking_type, asset_id: to_place_asset_id(booking_key), user_id: user_id, user_email: user_email, user_name: user_name, zones: [floor_details[:building_id]?, floor_details[:level_id]].compact, checked_in: true, extension_data: {floorsense_id: event.bkid}).get\n when 50\n if booking.released >= booking.finish || booking.released <= booking.start\n next\n end\n if place_booking = get_place_booking(booking, floor_details)\n staff_api.update_booking(booking_id: place_booking.id, booking_end: booking.released).get\n else\n logger.warn do\n \"no booking found for released booking #{booking.booking_id}\"\n end\n end\n when 51\n when 52\n when 53\n begin\n if desc = booking.desc\n place_booking = Booking.from_json((staff_api.get_booking(desc.to_i64)).get.to_json)\n staff_api.booking_check_in(place_booking.id, booking.confirmed)\n end\n rescue ArgumentError\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"while processing #{event.eventid}\\n#{event.inspect}\"\n end\n end\nend\n"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":599,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L599"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(placeos_user_id:String):String-instance-method","name":"get_floorsense_user","doc":"===================================\nSync Users\n===================================","summary":"

=================================== Sync Users ===================================

","abstract":false,"args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"args_string":"(placeos_user_id : String) : String","args_html":"(placeos_user_id : String) : String","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":550,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L550"},"def":{"name":"get_floorsense_user","args":[{"name":"placeos_user_id","external_name":"placeos_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"users = floorsense.user_list(description: placeos_user_id).get.as_a\nuser_id = users.first?.try() do |__arg5|\n __arg5[\"uid\"].as_s\nend\ncard_number = nil\nbegin\n place_user = (staff_api.user(placeos_user_id)).get\n name = place_user[\"name\"].as_s\n email = place_user[\"email\"].as_s\n card_number = place_user[\"card_number\"]?.try(&.as_s)\n user_id || (user_id = (floorsense.create_user(name, email, placeos_user_id)).get[\"uid\"].as_s)\nrescue error\n if user_id\n return user_id\n else\n raise(error)\n end\nend\nif (user_id && card_number) && !card_number.empty?\n ensure_card_synced(card_number, user_id)\nend\nuser_id.not_nil!\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L51"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking_changed(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L59"},"def":{"name":"on_update","visibility":"Public","body":"@key_prefix = (setting?(String, :key_prefix)) || \"\"\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@strip_leading_zero = (setting?(Bool, :strip_leading_zero)) || false\n@zero_padding_size = (setting?(Int32, :zero_padding_size)) || 7\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.in(@poll_rate / 2) do\n schedule.every(@poll_rate * 10) do\n sync_bookings\n end\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L616"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L345"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L349"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"@sync_lock.synchronize do\n do_sync_floor(zone)\nend"}},{"html_id":"to_floor_key(asset_id:String)-instance-method","name":"to_floor_key","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L98"},"def":{"name":"to_floor_key","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"if @key_prefix.presence\n asset_id = asset_id.lstrip(@key_prefix)\nend\nif @strip_leading_zero\n asset_id = asset_id.rjust(@zero_padding_size, '0')\nend\nasset_id\n"}},{"html_id":"to_place_asset_id(key:String)-instance-method","name":"to_place_asset_id","doc":"===================================\nDesk ID manipulation\n===================================","summary":"

=================================== Desk ID manipulation ===================================

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L93"},"def":{"name":"to_place_asset_id","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"if @strip_leading_zero\n key = key.lstrip('0')\nend\n\"#{@key_prefix}#{key}\"\n"}}],"types":[{"html_id":"drivers/Floorsense/BookingsSync/Booking","path":"Floorsense/BookingsSync/Booking.html","kind":"class","full_name":"Floorsense::BookingsSync::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/bookings_sync.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense/BookingsSync","kind":"class","full_name":"Floorsense::BookingsSync","name":"BookingsSync"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":631,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L631"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L634"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L646"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).not_nil!"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":643,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L643"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L639"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L638"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":637,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L637"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool|Nil-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in","return_type":"Bool | ::Nil","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool|Nil)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"args_string":"(checked_in : Bool | Nil)","args_html":"(checked_in : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":656,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L656"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"extension_data:JSON::Any|Nil-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@extension_data"}},{"html_id":"extension_data=(extension_data:JSON::Any|Nil)-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(extension_data : JSON::Any | Nil)","args_html":"(extension_data : JSON::Any | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L659"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L636"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":661,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L661"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L657"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":644,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L644"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L640"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L651"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L650"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L652"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/floorsense/bookings_sync.cr","line_number":654,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/bookings_sync.cr#L654"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]}]},{"html_id":"drivers/Floorsense/BookingStatus","path":"Floorsense/BookingStatus.html","kind":"class","full_name":"Floorsense::BookingStatus","name":"BookingStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L243"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L244"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L271"},"def":{"name":"active","return_type":"Bool","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool"}],"args_string":"(active : Bool)","args_html":"(active : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L271"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool"}],"visibility":"Public","body":"@active = active"}},{"html_id":"booking_id:String-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L253"},"def":{"name":"booking_id","return_type":"String","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:String)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L253"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L250"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L250"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L264"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L264"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confexpiry:Int64|Nil-instance-method","name":"confexpiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@confexpiry"}},{"html_id":"confexpiry=(confexpiry:Int64|Nil)-instance-method","name":"confexpiry=","abstract":false,"args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"args_string":"(confexpiry : Int64 | Nil)","args_html":"(confexpiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L262"},"def":{"name":"confexpiry=","args":[{"name":"confexpiry","external_name":"confexpiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@confexpiry = confexpiry"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L272"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L272"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"confmethod:Int32|Nil-instance-method","name":"confmethod","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L261"},"def":{"name":"confmethod","return_type":"Int32 | ::Nil","visibility":"Public","body":"@confmethod"}},{"html_id":"confmethod=(confmethod:Int32|Nil)-instance-method","name":"confmethod=","abstract":false,"args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"args_string":"(confmethod : Int32 | Nil)","args_html":"(confmethod : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L261"},"def":{"name":"confmethod=","args":[{"name":"confmethod","external_name":"confmethod","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@confmethod = confmethod"}},{"html_id":"conftime:Int64|Nil-instance-method","name":"conftime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L260"},"def":{"name":"conftime","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conftime"}},{"html_id":"conftime=(conftime:Int64|Nil)-instance-method","name":"conftime=","abstract":false,"args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"args_string":"(conftime : Int64 | Nil)","args_html":"(conftime : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L260"},"def":{"name":"conftime=","args":[{"name":"conftime","external_name":"conftime","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conftime = conftime"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L256"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L256"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L255"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L255"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L258"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L258"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L266"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L266"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L246"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L246"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @place_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::BookingStatus#place_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L279"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"place_id?:String|Nil-instance-method","name":"place_id?","abstract":false,"def":{"name":"place_id?","return_type":"String | ::Nil","visibility":"Public","body":"@place_id"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L265"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L265"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L273"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L273"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L270"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L270"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L269"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","doc":"Time the booking was released","summary":"

Time the booking was released

","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L269"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L257"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L257"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L247"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L247"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L276"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L276"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/Floorsense/ControllerInfo","path":"Floorsense/ControllerInfo.html","kind":"class","full_name":"Floorsense::ControllerInfo","name":"ControllerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L409"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L409"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"desks:Bool-instance-method","name":"desks","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L413"},"def":{"name":"desks","return_type":"Bool","visibility":"Public","body":"@desks"}},{"html_id":"desks=(desks:Bool)-instance-method","name":"desks=","abstract":false,"args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"args_string":"(desks : Bool)","args_html":"(desks : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L413"},"def":{"name":"desks=","args":[{"name":"desks","external_name":"desks","restriction":"Bool"}],"visibility":"Public","body":"@desks = desks"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L415"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/models.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L415"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location1:String-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L417"},"def":{"name":"location1","return_type":"String","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String"}],"args_string":"(location1 : String)","args_html":"(location1 : String)","location":{"filename":"src/floorsense/models.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L417"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L418"},"def":{"name":"location2","return_type":"String","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String"}],"args_string":"(location2 : String)","args_html":"(location2 : String)","location":{"filename":"src/floorsense/models.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L418"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L419"},"def":{"name":"location3","return_type":"String","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String"}],"args_string":"(location3 : String)","args_html":"(location3 : String)","location":{"filename":"src/floorsense/models.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L419"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"location4:String-instance-method","name":"location4","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L420"},"def":{"name":"location4","return_type":"String","visibility":"Public","body":"@location4"}},{"html_id":"location4=(location4:String)-instance-method","name":"location4=","abstract":false,"args":[{"name":"location4","external_name":"location4","restriction":"String"}],"args_string":"(location4 : String)","args_html":"(location4 : String)","location":{"filename":"src/floorsense/models.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L420"},"def":{"name":"location4=","args":[{"name":"location4","external_name":"location4","restriction":"String"}],"visibility":"Public","body":"@location4 = location4"}},{"html_id":"locations-instance-method","name":"locations","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L424"},"def":{"name":"locations","visibility":"Public","body":"{location1, location2, location3, location4}"}},{"html_id":"lockers:Bool-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L412"},"def":{"name":"lockers","return_type":"Bool","visibility":"Public","body":"@lockers"}},{"html_id":"lockers=(lockers:Bool)-instance-method","name":"lockers=","abstract":false,"args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"args_string":"(lockers : Bool)","args_html":"(lockers : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L412"},"def":{"name":"lockers=","args":[{"name":"lockers","external_name":"lockers","restriction":"Bool"}],"visibility":"Public","body":"@lockers = lockers"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L422"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"mode=(mode:String)-instance-method","name":"mode=","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(mode : String)","args_html":"(mode : String)","location":{"filename":"src/floorsense/models.cr","line_number":422,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L422"},"def":{"name":"mode=","args":[{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"@mode = mode"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L416"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L416"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"online:Bool-instance-method","name":"online","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L411"},"def":{"name":"online","return_type":"Bool","visibility":"Public","body":"@online"}},{"html_id":"online=(online:Bool)-instance-method","name":"online=","abstract":false,"args":[{"name":"online","external_name":"online","restriction":"Bool"}],"args_string":"(online : Bool)","args_html":"(online : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L411"},"def":{"name":"online=","args":[{"name":"online","external_name":"online","restriction":"Bool"}],"visibility":"Public","body":"@online = online"}}]},{"html_id":"drivers/Floorsense/CustomBookingsSync","path":"Floorsense/CustomBookingsSync.html","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","name":"DESK_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"floorsense\""},{"id":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","name":"LOCKER_SOURCE_EXTENSION_DATA_MODIFICATION","value":"\"smartalock\""}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L689"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"if foor_id = (locations.eui64_to_desk_id(id.downcase)).get.raw\n floor_desk_id = foor_id.as(String)\n place_id = floor_desk_id\n level_id = nil\n building = nil\n @desk_mapping_cache.each do |level, lookup|\n if meta = lookup[floor_desk_id]?\n level_id = level\n place_id = meta.place_id || floor_desk_id\n building = meta.building\n break\n end\n end\n if level_id\n {level: level_id, desk_id: place_id, building_id: building}\n end\nelse\n logger.warn do\n \"No desk found for #{id}\"\n end\nend"}},{"html_id":"floorsense_bookings(zone_id:String)-instance-method","name":"floorsense_bookings","doc":"===================================\nBooking Queries\n===================================","summary":"

=================================== Booking Queries ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L249"},"def":{"name":"floorsense_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"querying floorsense bookings in zone #{zone_id}\"\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of BookingStatus\nend\ncurrent = [] of BookingStatus\nstart_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nraw_bookings = (floorsense.bookings(plan_id, start_of_day.to_unix, tomorrow_night.to_unix)).get.to_json\n(Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n current.concat(bookings)\nend\ncurrent\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L651"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nif @user_lookup == \"email\"\n placeos_staff_id = placeos_staff_id.downcase\n floorsense_users = floorsense.user_list(email: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg7|\n __arg7[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nelse\n floorsense_users = floorsense.user_list(description: placeos_staff_id).get.as_a\n user_id = floorsense_users.first?.try() do |__arg8|\n __arg8[\"uid\"].as_s\n end\n if @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\n end\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L78"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n if (@zone_mappings.keys & (Booking.from_json(payload)).zones).empty?\n else\n booking_changed(Booking.from_json(payload))\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L88"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@poll_rate = ((setting?(Int32, :poll_rate)) || 3).seconds\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_lookup_key = (setting?(String, :floorsense_lookup_key)).presence || \"floorsensedeskid\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n@meta_ext_static = (setting?(Hash(String, String), :meta_ext_static)) || ({} of String => String)\ntime_zone = (setting?(String, :time_zone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nschedule.every(@poll_rate * 10) do\n sync_bookings\nend\nschedule.in(1.seconds) do\n sync_bookings\nend\n"}},{"html_id":"placeos_bookings(zone_id:String)-instance-method","name":"placeos_bookings","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L266"},"def":{"name":"placeos_bookings","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"start_of_day = (Time.local(@time_zone)).at_beginning_of_day\ntomorrow_night = (start_of_day.at_end_of_day + 1.hour).at_end_of_day - 1.minute\nbookings = staff_api.query_bookings(type: @booking_type, period_start: start_of_day.to_unix, period_end: tomorrow_night.to_unix, zones: {zone_id}, include_checked_out: true).get.as_a\nbookings.map do |book|\n Booking.from_json(book.to_json)\nend\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,building_id:String|Nil)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, building_id : String | Nil)","args_html":"(zone_id : String, building_id : String | Nil)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":927,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L927"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"desk_lookup = {} of String => DeskMeta\nbegin\n metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\n lookup_key = @floorsense_lookup_key\n metadata.each do |desk|\n desk = desk.as_h\n place_id = desk[\"id\"]?.try() do |__arg11|\n __arg11.as_s.presence\n end\n if place_id\n else\n next\n end\n floor_id = desk[lookup_key]?.try() do |__arg12|\n __arg12.as_s.presence\n end\n if floor_id\n else\n next\n end\n ext_data = {\"floorsense_id\" => JSON::Any.new(floor_id)}\n title = desk[\"name\"]?.try(&.as_s) || place_id\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk[meta_key]?\n ext_data[ext_key] = value\n end\n end\n @meta_ext_static.each do |key, value|\n ext_data[key] = JSON::Any.new(value)\n end\n ids = DeskMeta.new(place_id, floor_id, building_id, title, ext_data)\n desk_lookup[place_id] = ids\n desk_lookup[floor_id] = ids\n end\n desk_lookup\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain desk metadata for #{zone_id}\"\n end\n desk_lookup\nend\n"}},{"html_id":"sync_bookings-instance-method","name":"sync_bookings","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L193"},"def":{"name":"sync_bookings","visibility":"Public","body":"@zone_mappings.keys.each do |zone_id|\n sync_floor(zone_id)\nend"}},{"html_id":"sync_busy:Hash(String,Bool)-instance-method","name":"sync_busy","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L197"},"def":{"name":"sync_busy","return_type":"Hash(String, Bool)","visibility":"Public","body":"@sync_busy"}},{"html_id":"sync_floor(zone:String)-instance-method","name":"sync_floor","abstract":false,"args":[{"name":"zone","external_name":"zone","restriction":"String"}],"args_string":"(zone : String)","args_html":"(zone : String)","location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L201"},"def":{"name":"sync_floor","args":[{"name":"zone","external_name":"zone","restriction":"String"}],"visibility":"Public","body":"__temp_247 = zone\n@sync_queue[__temp_247] = @sync_queue[__temp_247] + 1\nif !@sync_busy[zone]\n spawn do\n queue_sync_floor(zone)\n end\n Fiber.yield\n :syncing\nelse\n :queued\nend\n"}},{"html_id":"sync_queue:Hash(String,Int32)-instance-method","name":"sync_queue","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L198"},"def":{"name":"sync_queue","return_type":"Hash(String, Int32)","visibility":"Public","body":"@sync_queue"}},{"html_id":"sync_times:Hash(String,Array(Float64))-instance-method","name":"sync_times","abstract":false,"location":{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L199"},"def":{"name":"sync_times","return_type":"Hash(String, Array(Float64))","visibility":"Public","body":"@sync_times"}}],"types":[{"html_id":"drivers/Floorsense/CustomBookingsSync/PlaceUser","path":"Floorsense/CustomBookingsSync/PlaceUser.html","kind":"alias","full_name":"Floorsense::CustomBookingsSync::PlaceUser","name":"PlaceUser","abstract":false,"locations":[{"filename":"src/floorsense/custom_bookings_sync.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/custom_bookings_sync.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::User","aliased_html":"PlaceOS::Client::API::Models::User","const":false,"namespace":{"html_id":"drivers/Floorsense/CustomBookingsSync","kind":"class","full_name":"Floorsense::CustomBookingsSync","name":"CustomBookingsSync"}}]},{"html_id":"drivers/Floorsense/DeskInfo","path":"Floorsense/DeskInfo.html","kind":"class","full_name":"Floorsense::DeskInfo","name":"DeskInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L176"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::DeskInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L189"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"desk_type:String|Nil-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L185"},"def":{"name":"desk_type","return_type":"String | ::Nil","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String|Nil)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"args_string":"(desk_type : String | Nil)","args_html":"(desk_type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L185"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskheight:Int32|Nil-instance-method","name":"deskheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L182"},"def":{"name":"deskheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@deskheight"}},{"html_id":"deskheight=(deskheight:Int32|Nil)-instance-method","name":"deskheight=","abstract":false,"args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"args_string":"(deskheight : Int32 | Nil)","args_html":"(deskheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L182"},"def":{"name":"deskheight=","args":[{"name":"deskheight","external_name":"deskheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@deskheight = deskheight"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L179"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L179"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L180"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L180"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L181"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L181"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L186"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L186"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}}]},{"html_id":"drivers/Floorsense/DeskMeta","path":"Floorsense/DeskMeta.html","kind":"struct","full_name":"Floorsense::DeskMeta","name":"DeskMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"doc":"Websocket payloads","summary":"

Websocket payloads

","constructors":[{"html_id":"new(place_id:String,floor_id:String,building:Nil|String,title:String,ext_data:Hash(String,JSON::Any))-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","args_html":"(place_id : String, floor_id : String, building : Nil | String, title : String, ext_data : Hash(String, JSON::Any))","location":{"filename":"src/floorsense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L9"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"floor_id","external_name":"floor_id","restriction":"::String"},{"name":"building","external_name":"building","restriction":"::Nil | ::String"},{"name":"title","external_name":"title","restriction":"::String"},{"name":"ext_data","external_name":"ext_data","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, floor_id, building, title, ext_data)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L14"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"building=(building:String|Nil)-instance-method","name":"building=","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"args_string":"(building : String | Nil)","args_html":"(building : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L14"},"def":{"name":"building=","args":[{"name":"building","external_name":"building","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building = building"}},{"html_id":"ext_data:Hash(String,JSON::Any)-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L15"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@ext_data"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L13"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L13"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L12"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"place_id=(place_id:String)-instance-method","name":"place_id=","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"args_string":"(place_id : String)","args_html":"(place_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L12"},"def":{"name":"place_id=","args":[{"name":"place_id","external_name":"place_id","restriction":"String"}],"visibility":"Public","body":"@place_id = place_id"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Floorsense/DeskStatus","path":"Floorsense/DeskStatus.html","kind":"class","full_name":"Floorsense::DeskStatus","name":"DeskStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L141"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L142"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L167"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L167"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"cached:Bool-instance-method","name":"cached","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L145"},"def":{"name":"cached","return_type":"Bool","visibility":"Public","body":"@cached"}},{"html_id":"cached=(cached:Bool)-instance-method","name":"cached=","abstract":false,"args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"args_string":"(cached : Bool)","args_html":"(cached : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L145"},"def":{"name":"cached=","args":[{"name":"cached","external_name":"cached","restriction":"Bool"}],"visibility":"Public","body":"@cached = cached"}},{"html_id":"cid:Int32-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L144"},"def":{"name":"cid","return_type":"Int32","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"args_string":"(cid : Int32)","args_html":"(cid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L144"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L170"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L170"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L155"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Time)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Time"}],"args_string":"(created : Time)","args_html":"(created : Time)","location":{"filename":"src/floorsense/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L155"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Time"}],"visibility":"Public","body":"@created = created"}},{"html_id":"desk_type:String-instance-method","name":"desk_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L162"},"def":{"name":"desk_type","return_type":"String","visibility":"Public","body":"@desk_type"}},{"html_id":"desk_type=(desk_type:String)-instance-method","name":"desk_type=","abstract":false,"args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"args_string":"(desk_type : String)","args_html":"(desk_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L162"},"def":{"name":"desk_type=","args":[{"name":"desk_type","external_name":"desk_type","restriction":"String"}],"visibility":"Public","body":"@desk_type = desk_type"}},{"html_id":"deskid:Int32-instance-method","name":"deskid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L149"},"def":{"name":"deskid","return_type":"Int32","visibility":"Public","body":"@deskid"}},{"html_id":"deskid=(deskid:Int32)-instance-method","name":"deskid=","abstract":false,"args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"args_string":"(deskid : Int32)","args_html":"(deskid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L149"},"def":{"name":"deskid=","args":[{"name":"deskid","external_name":"deskid","restriction":"Int32"}],"visibility":"Public","body":"@deskid = deskid"}},{"html_id":"eui64:String-instance-method","name":"eui64","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L159"},"def":{"name":"eui64","return_type":"String","visibility":"Public","body":"@eui64"}},{"html_id":"eui64=(eui64:String)-instance-method","name":"eui64=","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"args_string":"(eui64 : String)","args_html":"(eui64 : String)","location":{"filename":"src/floorsense/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L159"},"def":{"name":"eui64=","args":[{"name":"eui64","external_name":"eui64","restriction":"String"}],"visibility":"Public","body":"@eui64 = eui64"}},{"html_id":"features:Int32-instance-method","name":"features","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L164"},"def":{"name":"features","return_type":"Int32","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Int32)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Int32"}],"args_string":"(features : Int32)","args_html":"(features : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L164"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Int32"}],"visibility":"Public","body":"@features = features"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L163"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L163"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"freq:String-instance-method","name":"freq","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L165"},"def":{"name":"freq","return_type":"String","visibility":"Public","body":"@freq"}},{"html_id":"freq=(freq:String)-instance-method","name":"freq=","abstract":false,"args":[{"name":"freq","external_name":"freq","restriction":"String"}],"args_string":"(freq : String)","args_html":"(freq : String)","location":{"filename":"src/floorsense/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L165"},"def":{"name":"freq=","args":[{"name":"freq","external_name":"freq","restriction":"String"}],"visibility":"Public","body":"@freq = freq"}},{"html_id":"groupid:Int32-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L166"},"def":{"name":"groupid","return_type":"Int32","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"args_string":"(groupid : Int32)","args_html":"(groupid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L166"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:String-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L152"},"def":{"name":"hardware","return_type":"String","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:String)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"args_string":"(hardware : String)","args_html":"(hardware : String)","location":{"filename":"src/floorsense/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L152"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"String"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"hwfeat:Int32-instance-method","name":"hwfeat","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat","return_type":"Int32","visibility":"Public","body":"@hwfeat"}},{"html_id":"hwfeat=(hwfeat:Int32)-instance-method","name":"hwfeat=","abstract":false,"args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"args_string":"(hwfeat : Int32)","args_html":"(hwfeat : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L151"},"def":{"name":"hwfeat=","args":[{"name":"hwfeat","external_name":"hwfeat","restriction":"Int32"}],"visibility":"Public","body":"@hwfeat = hwfeat"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L156"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L156"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"netid:Int32-instance-method","name":"netid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L147"},"def":{"name":"netid","return_type":"Int32","visibility":"Public","body":"@netid"}},{"html_id":"netid=(netid:Int32)-instance-method","name":"netid=","abstract":false,"args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"args_string":"(netid : Int32)","args_html":"(netid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L147"},"def":{"name":"netid=","args":[{"name":"netid","external_name":"netid","restriction":"Int32"}],"visibility":"Public","body":"@netid = netid"}},{"html_id":"occupied:Bool-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L157"},"def":{"name":"occupied","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L157"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime","return_type":"Int32","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"args_string":"(occupiedtime : Int32)","args_html":"(occupiedtime : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L172"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L168"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L168"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L171"},"def":{"name":"privacy","return_type":"Bool","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"args_string":"(privacy : Bool)","args_html":"(privacy : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L171"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reservable:Bool-instance-method","name":"reservable","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L146"},"def":{"name":"reservable","return_type":"Bool","visibility":"Public","body":"@reservable"}},{"html_id":"reservable=(reservable:Bool)-instance-method","name":"reservable=","abstract":false,"args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"args_string":"(reservable : Bool)","args_html":"(reservable : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L146"},"def":{"name":"reservable=","args":[{"name":"reservable","external_name":"reservable","restriction":"Bool"}],"visibility":"Public","body":"@reservable = reservable"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L169"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L169"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L148"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L148"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L158"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L158"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket","path":"Floorsense/DesksWebsocket.html","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DeskControl","kind":"module","full_name":"PlaceOS::Driver::Interface::DeskControl","name":"DeskControl"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"activate_booking(booking_id:String|Int64,controller_id:String|Int32|Int64|Nil=nil,key:String|Nil=nil,eui64:String|Nil=nil,userpresent:Bool|Nil=nil)-instance-method","name":"activate_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, controller_id : String | Int32 | Int64 | Nil = nil, key : String | Nil = nil, eui64 : String | Nil = nil, userpresent : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":648,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L648"},"def":{"name":"activate_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Nil"},{"name":"eui64","default_value":"nil","external_name":"eui64","restriction":"String | Nil"},{"name":"userpresent","default_value":"nil","external_name":"userpresent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if key.nil?\n else\n form.add(\"key\", key.to_s)\n end\n if userpresent.nil?\n else\n form.add(\"userpresent\", userpresent.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"all_lockers-instance-method","name":"all_lockers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L295"},"def":{"name":"all_lockers","visibility":"Public","body":"if @locker_controllers.empty?\nelse\n return @locker_controllers.values\nend\nsync_locker_list.values\n"}},{"html_id":"at_location(controller_id:String|Int32|Int64,desk_key:String)-instance-method","name":"at_location","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(controller_id : String | Int32 | Int64, desk_key : String)","args_html":"(controller_id : String | Int32 | Int64, desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L964"},"def":{"name":"at_location","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"},{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/user-locate?cid=#{controller_id}&desk_key=#{desk_key}\", headers: default_headers)\nlogger.debug do\n \"at_location response: #{response.body}\"\nend\nusers = parse(response, Array(User))\nusers.first?\n"}},{"html_id":"bank_list(controller_id:String|Int32|Int64)-instance-method","name":"bank_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L251"},"def":{"name":"bank_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\nend\nresponse = get(\"/restapi/bank-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"bookings(plan_id:String,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil)-instance-method","name":"bookings","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"args_string":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","args_html":"(plan_id : String, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L615"},"def":{"name":"bookings","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 15.minutes.from_now.to_unix)\nuri = \"/restapi/floorplan-booking?planid=#{plan_id}&start=#{period_start}&finish=#{period_end}\"\nresponse = get(uri, headers: default_headers)\nbookings_map = parse(response, Hash(String, Array(BookingStatus)))\nbookings_map.each do |_id, bookings|\n bookings.each do |booking|\n booking.user = get_user(booking.uid)\n end\nend\nbookings_map\n"}},{"html_id":"check_subscriptions-instance-method","name":"check_subscriptions","doc":"used to poll the websocket to check for liveliness","summary":"

used to poll the websocket to check for liveliness

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L95"},"def":{"name":"check_subscriptions","visibility":"Public","body":"ws_get(\"/restapi/subscribe\")"}},{"html_id":"clear_user_cache!-instance-method","name":"clear_user_cache!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":972,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L972"},"def":{"name":"clear_user_cache!","visibility":"Public","body":"@user_cache.clear"}},{"html_id":"confirm_booking(booking_id:String|Int64)-instance-method","name":"confirm_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":636,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L636"},"def":{"name":"confirm_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-confirm\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"method\", \"1\")\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L74"},"def":{"name":"connected","visibility":"Public","body":"ws_post(\"/auth\", {user: \"kiosk\"}.to_json, priority: 99, name: \"auth\")"}},{"html_id":"controller_list(locker:Bool|Nil=nil,desks:Bool|Nil=nil)-instance-method","name":"controller_list","abstract":false,"args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"args_string":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","args_html":"(locker : Bool | Nil = nil, desks : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L236"},"def":{"name":"controller_list","args":[{"name":"locker","default_value":"nil","external_name":"locker","restriction":"Bool | ::Nil"},{"name":"desks","default_value":"nil","external_name":"desks","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if locker\n form.add(\"locks\", \"true\")\n end\n if desks\n form.add(\"desks\", \"true\")\n end\nend\nresponse = get(\"/restapi/slave-list?#{query}\", headers: default_headers)\ncontrollers = parse(response, Array(ControllerInfo))\nmappings = {} of Int32 => ControllerInfo\ncontrollers.each do |ctrl|\n mappings[ctrl.controller_id] = ctrl\nend\nif locker.nil? && desks.nil?\n self[:controllers] = mappings\nend\n@controllers = mappings\n"}},{"html_id":"create_booking(user_id:String|Int64,plan_id:String|Int32,key:String,description:String|Nil=nil,starting:Int64|Nil=nil,ending:Int64|Nil=nil,time_zone:String|Nil=nil,booking_type:String=\"advance\")-instance-method","name":"create_booking","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"args_string":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = \"advance\")","args_html":"(user_id : String | Int64, plan_id : String | Int32, key : String, description : String | Nil = nil, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, time_zone : String | Nil = nil, booking_type : String = "advance")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":688,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L688"},"def":{"name":"create_booking","args":[{"name":"user_id","external_name":"user_id","restriction":"String | Int64"},{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"},{"name":"key","external_name":"key","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"booking_type","default_value":"\"advance\"","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"desks_on_plan = desks(plan_id)\ndesk = desks_on_plan.find() do |__arg5|\n __arg5.key == key\nend\nif desk\nelse\n raise(\"could not find desk #{key} on plan #{plan_id}\")\nend\nnow = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nstarting || (starting = now.at_beginning_of_day.to_unix)\nending || (ending = now.at_end_of_day.to_unix)\nresponse = post(\"/restapi/booking-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id.to_s)\n form.add(\"cid\", desk.cid.to_s)\n form.add(\"key\", key)\n form.add(\"bktype\", booking_type)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n form.add(\"start\", starting.to_s)\n form.add(\"finish\", ending.to_s)\n form.add(\"confexpiry\", ending.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"create_rfid(user_id:String,card_number:String,description:String|Nil=nil)-instance-method","name":"create_rfid","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(user_id : String, card_number : String, description : String | Nil = nil)","args_html":"(user_id : String, card_number : String, description : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":886,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L886"},"def":{"name":"create_rfid","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"uid\", user_id)\n form.add(\"csn\", card_number)\n if description\n form.add(\"desc\", description.not_nil!)\n end\nend)\nparse(response, User) do |resp|\n resp || (JSON::Any.new(true))\nend\n"}},{"html_id":"create_user(name:String,email:String,description:String|Nil=nil,extid:String|Nil=nil,pin:String|Nil=nil,usertype:String=\"user\")-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"args_string":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = \"user\")","args_html":"(name : String, email : String, description : String | Nil = nil, extid : String | Nil = nil, pin : String | Nil = nil, usertype : String = "user")","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":860,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L860"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"extid","default_value":"nil","external_name":"extid","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"},{"name":"usertype","default_value":"\"user\"","external_name":"usertype","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/user-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"name\", name)\n form.add(\"email\", email)\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if pin\n form.add(\"pin\", pin.not_nil!)\n end\n if extid\n form.add(\"extid\", extid.not_nil!)\n end\n form.add(\"usertype\", \"user\")\nend)\nuser = parse(response, User)\n@user_cache[user.uid] = user\nuser\n"}},{"html_id":"default_headers-instance-method","name":"default_headers","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L198"},"def":{"name":"default_headers","visibility":"Public","body":"{\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"delete_rfid(card_number:String)-instance-method","name":"delete_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":904,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L904"},"def":{"name":"delete_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/rfid-delete\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"csn\", card_number)\nend)\ncheck_success(response)\n"}},{"html_id":"desk_control(desk_key:String,led_state:LedState|Nil=nil,led_colour:LedColour|Nil=nil,desk_power:DeskPower|Nil=nil,desk_height:DeskHeight|Int32|Nil=nil,qi_mode:QiMode|Nil=nil,reboot:Bool=false,clean:Bool=false)-instance-method","name":"desk_control","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"args_string":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","args_html":"(desk_key : String, led_state : LedState | Nil = nil, led_colour : LedColour | Nil = nil, desk_power : DeskPower | Nil = nil, desk_height : DeskHeight | Int32 | Nil = nil, qi_mode : QiMode | Nil = nil, reboot : Bool = false, clean : Bool = false)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":790,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L790"},"def":{"name":"desk_control","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"led_state","default_value":"nil","external_name":"led_state","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"LedColour | ::Nil"},{"name":"desk_power","default_value":"nil","external_name":"desk_power","restriction":"DeskPower | ::Nil"},{"name":"desk_height","default_value":"nil","external_name":"desk_height","restriction":"DeskHeight | Int32 | ::Nil"},{"name":"qi_mode","default_value":"nil","external_name":"qi_mode","restriction":"QiMode | ::Nil"},{"name":"reboot","default_value":"false","external_name":"reboot","restriction":"Bool"},{"name":"clean","default_value":"false","external_name":"clean","restriction":"Bool"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = post(\"/restapi/desk-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n form.add(\"key\", desk_key)\n if led_state\n form.add(\"led\", led_state.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour.to_s.downcase)\n end\n if desk_power\n form.add(\"desk-power\", desk_power.to_s.downcase)\n end\n if desk_height\n form.add(\"desk-height\", desk_height.to_s.downcase)\n end\n if qi_mode\n form.add(\"qi-mode\", qi_mode.to_s.downcase)\n end\n if reboot\n form.add(\"reboot\", \"true\")\n end\n if clean\n form.add(\"clean\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"desk_controllers:Hash(String,DeskInfo)-instance-method","name":"desk_controllers","doc":"Desk key => controller id","summary":"

Desk key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L45"},"def":{"name":"desk_controllers","return_type":"Hash(String, DeskInfo)","visibility":"Public","body":"@desk_controllers"}},{"html_id":"desk_info(desk_key:String)-instance-method","name":"desk_info","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":760,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L760"},"def":{"name":"desk_info","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"controller_id = @desk_controllers[desk_key].controller_id\nresponse = get(\"/restapi/desk-status?cid=#{controller_id}&key=#{desk_key}\", headers: default_headers)\ndesk_info = parse(response, DeskInfo)\ndesk_info\n"}},{"html_id":"desk_list(controller_id:String|Int32|Int64)-instance-method","name":"desk_list","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L755"},"def":{"name":"desk_list","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/desk-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(DeskInfo))\n"}},{"html_id":"desk_scan(eui64:String,key:String|Int64|Nil=nil,cid:String|Nil=nil,uid:String|Nil=nil)-instance-method","name":"desk_scan","doc":"More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a","summary":"

More details on: https://apiguide.smartalock.com/#d685f36e-a513-44d9-8205-2b071922733a

","abstract":false,"args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","args_html":"(eui64 : String, key : String | Int64 | Nil = nil, cid : String | Nil = nil, uid : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":669,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L669"},"def":{"name":"desk_scan","args":[{"name":"eui64","external_name":"eui64","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | Int64 | Nil"},{"name":"cid","default_value":"nil","external_name":"cid","restriction":"String | ::Nil"},{"name":"uid","default_value":"nil","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/desk-scan\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"eui64\", eui64.to_s)\n form.add(\"key\", key.to_s)\n if cid.nil?\n else\n form.add(\"cid\", cid.to_s)\n end\n if uid.nil?\n else\n form.add(\"uid\", uid.to_s)\n end\nend)\nparse(response, JSON::Any)\n"}},{"html_id":"desks(plan_id:String|Int32)-instance-method","name":"desks","abstract":false,"args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"args_string":"(plan_id : String | Int32)","args_html":"(plan_id : String | Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":610,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L610"},"def":{"name":"desks","args":[{"name":"plan_id","external_name":"plan_id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"/restapi/floorplan-desk?planid=#{plan_id}\", headers: default_headers)\nparse(response, Array(DeskStatus))\n"}},{"html_id":"event_log(codes:Array(String|Int32),event_id:Int64|Nil=nil,after:Int64|Nil=nil,limit:Int32=1)-instance-method","name":"event_log","abstract":false,"args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"args_string":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","args_html":"(codes : Array(String | Int32), event_id : Int64 | Nil = nil, after : Int64 | Nil = nil, limit : Int32 = 1)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":945,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L945"},"def":{"name":"event_log","args":[{"name":"codes","external_name":"codes","restriction":"Array(String | Int32)"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"Int64 | ::Nil"},{"name":"after","default_value":"nil","external_name":"after","restriction":"Int64 | ::Nil"},{"name":"limit","default_value":"1","external_name":"limit","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"codes\", codes.join(\",\", &.to_s))\n if after\n form.add(\"after\", after.not_nil!.to_s)\n end\n if event_id\n form.add(\"event_id\", event_id.not_nil!.to_s)\n end\n form.add(\"limit\", limit.to_s)\nend\nresponse = get(\"/restapi/event-log?#{query}\", headers: default_headers)\nlogs = parse(response, Array(LogEntry))\nlogs.sort do |a, b|\n if a.eventtime == b.eventtime\n a.eventid <=> b.eventid\n else\n a.eventtime <=> b.eventtime\n end\nend\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L133"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floors-instance-method","name":"floors","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L605"},"def":{"name":"floors","visibility":"Public","body":"response = get(\"/restapi/floorplan-list\", headers: default_headers)\nparse(response, Array(Floor))\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L629"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/booking?bkid=#{booking_id}\", headers: default_headers)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"get_desk_height(desk_key:String):Int32|Nil-instance-method","name":"get_desk_height","doc":"return nil on unknown height","summary":"

return nil on unknown height

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Int32 | Nil","args_html":"(desk_key : String) : Int32 | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":830,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L830"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Int32 | ::Nil","visibility":"Public","body":"(desk_info(desk_key)).deskheight"}},{"html_id":"get_desk_power(desk_key:String):Bool|Nil-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String) : Bool | Nil","args_html":"(desk_key : String) : Bool | Nil","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":848,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L848"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"get_locker_reservation(reservation_id:String)-instance-method","name":"get_locker_reservation","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L354"},"def":{"name":"get_locker_reservation","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if reservation_id\n form.add(\"resid\", reservation_id)\n end\nend\nresponse = get(\"/restapi/res?#{query}\", headers: default_headers)\nparse(response, LockerBooking)\n"}},{"html_id":"get_rfid(card_number:String)-instance-method","name":"get_rfid","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"args_string":"(card_number : String)","args_html":"(card_number : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":916,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L916"},"def":{"name":"get_rfid","args":[{"name":"card_number","external_name":"card_number","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/rfid?csn=#{card_number}\", headers: default_headers)\nparse(response, RFID)\n"}},{"html_id":"get_setting(key:String,user_id:String|Nil=nil)-instance-method","name":"get_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, user_id : String | Nil = nil)","args_html":"(key : String, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L275"},"def":{"name":"get_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n form.add(\"key\", key)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = get(\"/restapi/setting?#{query}\", headers: default_headers)\nparse(response, Setting)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L142"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/restapi/login\", body: \"username=#{URI.encode_www_form(@username)}&password=#{URI.encode_www_form(@password)}\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"})\ndata = response.body.not_nil!\nlogger.debug do\n \"received login response #{data}\"\nend\nif response.success?\n resp = Resp(AuthInfo).from_json(data)\n token = resp.info.not_nil!.token\n payload, _ = JWT.decode(token, verify: false, validate: false)\n @auth_expiry = (Time.unix(payload[\"exp\"].as_i64)) - 5.minutes\n @auth_token = \"Bearer #{token}\"\nelse\n case response.status_code\n when 401\n resp = Resp(AuthInfo).from_json(data)\n logger.warn do\n \"#{resp.message} (#{resp.code})\"\n end\n else\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":921,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L921"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"existing = @user_cache[user_id]?\nif existing\n return existing\nend\nresponse = get(\"/restapi/user?uid=#{user_id}\", headers: default_headers)\nuser = parse(response, User)\n@user_cache[user_id] = user\nuser\n"}},{"html_id":"locate(key:String,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locate","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(key : String, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":976,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L976"},"def":{"name":"locate","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"uri = if controller_id\n \"/restapi/user-locate?cid=#{controller_id}&key=#{URI.encode_www_form(key)}\"\nelse\n \"/restapi/user-locate?name=#{URI.encode_www_form(key)}\"\nend\nresponse = get(uri, headers: default_headers)\nparse(response, Array(UserLocation))\n"}},{"html_id":"locker(locker_key:String)-instance-method","name":"locker","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L305"},"def":{"name":"locker","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = get(\"/restapi/locker-status?cid=#{lock.controller_id}&bid=#{lock.bus_id}&lid=#{lock.locker_id}\", headers: default_headers)\nparse(response, LockerInfo)\n"}},{"html_id":"locker_change_pin(reservation_id:String,pin:Int32)-instance-method","name":"locker_change_pin","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"args_string":"(reservation_id : String, pin : Int32)","args_html":"(reservation_id : String, pin : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L416"},"def":{"name":"locker_change_pin","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"Int32"}],"visibility":"Public","body":"response = post(\"/restapi/res\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"pin\", pin.to_s)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_control(locker_key:String,light:Bool|Nil=nil,led:LedState|Nil=nil,led_colour:String|Nil=nil,buzzer:String|Nil=nil,usb_charging:String|Nil=nil,detect:Bool|Nil=nil)-instance-method","name":"locker_control","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"args_string":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","args_html":"(locker_key : String, light : Bool | Nil = nil, led : LedState | Nil = nil, led_colour : String | Nil = nil, buzzer : String | Nil = nil, usb_charging : String | Nil = nil, detect : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L323"},"def":{"name":"locker_control","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"light","default_value":"nil","external_name":"light","restriction":"Bool | ::Nil"},{"name":"led","default_value":"nil","external_name":"led","restriction":"LedState | ::Nil"},{"name":"led_colour","default_value":"nil","external_name":"led_colour","restriction":"String | ::Nil"},{"name":"buzzer","default_value":"nil","external_name":"buzzer","restriction":"String | ::Nil"},{"name":"usb_charging","default_value":"nil","external_name":"usb_charging","restriction":"String | ::Nil"},{"name":"detect","default_value":"nil","external_name":"detect","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-control\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"bid\", lock.bus_id.to_s)\n form.add(\"lid\", lock.locker_id.to_s)\n if !light.nil?\n form.add(\"light\", light ? \"on\" : \"off\")\n end\n if led\n form.add(\"led\", led.to_s.downcase)\n end\n if led_colour\n form.add(\"led-colour\", led_colour)\n end\n if buzzer\n form.add(\"buzzer\", buzzer)\n end\n if usb_charging\n form.add(\"usbchg\", usb_charging)\n end\n if detect\n form.add(\"detect\", \"true\")\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_controllers:Hash(String,LockerInfo)-instance-method","name":"locker_controllers","doc":"Locker key => controller id","summary":"

Locker key => controller id

","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L42"},"def":{"name":"locker_controllers","return_type":"Hash(String, LockerInfo)","visibility":"Public","body":"@locker_controllers"}},{"html_id":"locker_info(locker_key:String)-instance-method","name":"locker_info","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L311"},"def":{"name":"locker_info","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_controllers[locker_key]"}},{"html_id":"locker_release(reservation_id:String)-instance-method","name":"locker_release","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L403"},"def":{"name":"locker_release","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\nend)\ncheck_success(response)\n"}},{"html_id":"locker_reservation(locker_key:String|Nil,user_id:String,type:String|Nil=nil,duration:Int32|Nil=nil,restype:String=\"adhoc\",controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"locker_reservation","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"args_string":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = \"adhoc\", controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(locker_key : String | Nil, user_id : String, type : String | Nil = nil, duration : Int32 | Nil = nil, restype : String = "adhoc", controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L363"},"def":{"name":"locker_reservation","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"\"adhoc\"","external_name":"restype","restriction":"String"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | Nil"}],"visibility":"Public","body":"controller_id || (controller_id = @locker_controllers[locker_key].controller_id)\nresponse = post(\"/restapi/res-create\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", controller_id.to_s)\n if locker_key.presence\n form.add(\"key\", locker_key.to_s)\n end\n form.add(\"uid\", user_id)\n if type\n form.add(\"type\", type)\n end\n if duration\n form.add(\"duration\", duration.to_s)\n end\n form.add(\"restype\", restype)\nend)\nparse(response, LockerBooking)\n"}},{"html_id":"locker_reservations(active:Bool|Nil=nil,user_id:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,shared:Bool|Nil=nil)-instance-method","name":"locker_reservations","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","args_html":"(active : Bool | Nil = nil, user_id : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, shared : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L390"},"def":{"name":"locker_reservations","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"shared","default_value":"nil","external_name":"shared","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if user_id\n form.add(\"uid\", user_id)\n end\n if active\n form.add(\"active\", \"1\")\n end\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if shared\n form.add(\"shared\", \"1\")\n end\nend\nresponse = get(\"/restapi/res-list?#{query}\", headers: default_headers)\nparse(response, Array(LockerBooking))\n"}},{"html_id":"locker_share(reservation_id:String,user_id:String,duration:UInt32|Nil=nil)-instance-method","name":"locker_share","doc":"POST res-share","summary":"

POST res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"args_string":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","args_html":"(reservation_id : String, user_id : String, duration : UInt32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L458"},"def":{"name":"locker_share","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-share\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\n if duration\n form.add(\"duration\", duration.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_shared?(reservation_id:String)-instance-method","name":"locker_shared?","doc":"GET res-share","summary":"

GET res-share

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L452"},"def":{"name":"locker_shared?","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/res-share?resid=#{reservation_id}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"locker_unlock(locker_key:String,user_id:String|Nil=nil,pin:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","args_html":"(locker_key : String, user_id : String | Nil = nil, pin : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L430"},"def":{"name":"locker_unlock","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"pin","default_value":"nil","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"lock = @locker_controllers[locker_key]\nresponse = post(\"/restapi/locker-unlock\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"cid\", lock.controller_id.to_s)\n form.add(\"key\", locker_key)\n if user_id.presence\n form.add(\"uid\", user_id.to_s)\n end\n if pin.presence\n form.add(\"pin\", pin.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"locker_unshare(reservation_id:String,user_id:String)-instance-method","name":"locker_unshare","doc":"POST res-unshare","summary":"

POST res-unshare

","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(reservation_id : String, user_id : String)","args_html":"(reservation_id : String, user_id : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":477,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L477"},"def":{"name":"locker_unshare","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"resid\", reservation_id)\n form.add(\"uid\", user_id)\nend)\ncheck_success(response)\n"}},{"html_id":"lockers(controller_id:String|Int32|Int64)-instance-method","name":"lockers","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"args_string":"(controller_id : String | Int32 | Int64)","args_html":"(controller_id : String | Int32 | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L300"},"def":{"name":"lockers","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String | Int32 | Int64"}],"visibility":"Public","body":"response = get(\"/restapi/locker-list?cid=#{controller_id}\", headers: default_headers)\nparse(response, Array(LockerInfo))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L52"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@ws_username = (setting?(String, :ws_username)) || @username\n@ws_password = (setting?(String, :ws_password)) || @password\nif uri_override = setting?(String, :http_uri_override)\n transport.http_uri_override = URI.parse(uri_override)\nelse\n transport.http_uri_override = nil\nend\ntransport.before_request do |request|\n logger.debug do\n \"requesting: #{request.method} #{request.path}?#{request.query}\\n#{request.body}\"\n end\nend\nschedule.clear\nschedule.every(1.hour) do\n sync_locker_list\nend\nschedule.in(5.seconds) do\n sync_locker_list\nend\nschedule.every(1.minute) do\n check_subscriptions\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L99"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"begin\n string = (String.new(data)).rstrip\n logger.debug do\n \"websocket sent: #{string}\"\n end\n payload = Payload.from_json(string)\n case payload\n in Response\n if !payload.result\n logger.warn do\n \"task #{task.try(&.name)} failed..\"\n end\n return task.try(&.abort)\n end\n case task.try(&.name)\n when \"auth\"\n logger.debug do\n \"authentication success!\"\n end\n ws_post(\"/sub\", {mask: 255}.to_json, name: \"sub\")\n when \"sub\"\n logger.debug do\n \"subscribed to events\"\n end\n else\n logger.warn do\n \"unknown task: #{(task.try(&.name)).inspect}\"\n end\n end\n task.try(&.success)\n in Event\n self[\"event_#{payload.code}\"] = payload.info || payload.message\n in Payload\n logger.error do\n \"base class, this case will never occur\"\n end\n end\nrescue error\n logger.error(exception: error) do\n \"failed to parse: #{string.inspect}\"\n end\nend"}},{"html_id":"release_booking(booking_id:String|Int64)-instance-method","name":"release_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":727,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L727"},"def":{"name":"release_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"response = post(\"/restapi/booking-release\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build(&.add(\"bkid\", booking_id.to_s)))\ncheck_success(response)\n"}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","doc":"desk height is in mm","summary":"

desk height is in mm

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L826"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_control(desk_key, desk_height: desk_height)"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","doc":"desk_power on / off / nil == auto","summary":"

desk_power on / off / nil == auto

","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":834,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L834"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"power = case desk_power\nwhen true\n DeskPower::On\nwhen false\n DeskPower::Off\nwhen nil\n DeskPower::Policy\nelse\n raise(\"unknown power state: #{desk_power}\")\nend\ndesk_control(desk_key, desk_power: power)\n"}},{"html_id":"set_setting(key:String,value:JSON::Any,user_id:String|Nil=nil)-instance-method","name":"set_setting","doc":"example keys: \"desk_height_sit\", \"desk_height_stand\"","summary":"

example keys: "desk_height_sit", "desk_height_stand"

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","args_html":"(key : String, value : JSON::Any, user_id : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L285"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"JSON::Any"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"body = URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"value\", value.to_json)\n if user_id\n form.add(\"uid\", \"\\\"#{user_id.to_s}\\\"\")\n end\nend\nresponse = post(\"/restapi/setting\", headers: default_headers, body: body)\nresponse.success?\n"}},{"html_id":"settings_list(group_id:Int32|Nil=nil,user_group_id:Int32|Nil=nil,controller_id:String|Int32|Int64|Nil=nil)-instance-method","name":"settings_list","abstract":false,"args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"args_string":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","args_html":"(group_id : Int32 | Nil = nil, user_group_id : Int32 | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L260"},"def":{"name":"settings_list","args":[{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"Int32 | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"Int32 | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if controller_id\n form.add(\"cid\", controller_id.to_s)\n end\n if group_id\n form.add(\"groupid\", group_id.to_s)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\nend\nresponse = get(\"/restapi/setting-list?#{query}\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"sync_locker_list-instance-method","name":"sync_locker_list","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L205"},"def":{"name":"sync_locker_list","visibility":"Public","body":"lockers = {} of String => LockerInfo\ndesks = {} of String => DeskInfo\ncontroller_list.each do |controller_id, controller|\n if controller.lockers\n else\n next\n end\n begin\n (lockers(controller_id)).each do |locker|\n if locker.key\n else\n next\n end\n locker.controller_id = controller_id\n lockers[locker.key.not_nil!] = locker\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining locker list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\n begin\n (desk_list(controller_id)).each do |desk|\n if desk.key\n else\n next\n end\n desk.controller_id = controller_id\n desks[desk.key.not_nil!] = desk\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk list for controller #{controller.name} - #{controller_id}, possibly offline\"\n end\n end\nend\n@desk_controllers = desks\n@locker_controllers = lockers\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L137"},"def":{"name":"token_expired?","visibility":"Public","body":"now = Time.utc\n@auth_expiry < now\n"}},{"html_id":"update_booking(booking_id:String|Int64,privacy:Bool|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","args_html":"(booking_id : String | Int64, privacy : Bool | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":737,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L737"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"privacy","default_value":"nil","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/booking\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"bkid\", booking_id.to_s)\n form.add(\"privacy\", privacy.to_s)\nend)\nbooking = parse(response, BookingStatus)\nbooking.user = get_user(booking.uid)\nbooking\n"}},{"html_id":"user_groups_list(in_use:Bool=true)-instance-method","name":"user_groups_list","abstract":false,"args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"args_string":"(in_use : Bool = true)","args_html":"(in_use : Bool = true)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":854,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L854"},"def":{"name":"user_groups_list","args":[{"name":"in_use","default_value":"true","external_name":"in_use","restriction":"Bool"}],"visibility":"Public","body":"query = in_use ? \"inuse=1\" : \"\"\nresponse = get(\"/restapi/usergroup-list?#{query}\", headers: default_headers)\nparse(response, Array(UserGroup))\n"}},{"html_id":"user_list(email:String|Nil=nil,name:String|Nil=nil,description:String|Nil=nil,user_group_id:String|Int32|Nil=nil,limit:Int32=500,offset:Int32=0)-instance-method","name":"user_list","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","args_html":"(email : String | Nil = nil, name : String | Nil = nil, description : String | Nil = nil, user_group_id : String | Int32 | Nil = nil, limit : Int32 = 500, offset : Int32 = 0)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":931,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L931"},"def":{"name":"user_list","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"user_group_id","default_value":"nil","external_name":"user_group_id","restriction":"String | Int32 | ::Nil"},{"name":"limit","default_value":"500","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"query = URI::Params.build do |form|\n if email\n form.add(\"email\", email.not_nil!)\n end\n if name\n form.add(\"name\", name.not_nil!)\n end\n if description\n form.add(\"desc\", description.not_nil!)\n end\n if user_group_id\n form.add(\"ugroupid\", user_group_id.to_s)\n end\n form.add(\"limit\", limit.to_s)\n form.add(\"offset\", offset.to_s)\nend\nresponse = get(\"/restapi/user-list?#{query}\", headers: default_headers)\nparse(response, Array(User))\n"}},{"html_id":"voucher(voucher_id:String,pin:String)-instance-method","name":"voucher","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L597"},"def":{"name":"voucher","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = get(\"/restapi/voucher?vid=#{voucher_id}&pin=#{pin}\", headers: default_headers)\nparse(response, Voucher)\n"}},{"html_id":"voucher_activate(voucher_id:String,pin:String)-instance-method","name":"voucher_activate","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(voucher_id : String, pin : String)","args_html":"(voucher_id : String, pin : String)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":582,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L582"},"def":{"name":"voucher_activate","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"},{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"response = post(\"/restapi/voucher-activate\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"vid\", voucher_id)\n form.add(\"pin\", pin)\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_create(template_key:String,user_name:String,user_email:String,user_id:String|Nil=nil,reservation_id:String|Nil=nil,locker_key:String|Nil=nil,controller_id:String|Int32|Int64|Nil=nil,notes:String|Nil=nil,validfrom:Int64|Nil=nil,validto:Int64|Nil=nil,duration:Int32|Nil=nil)-instance-method","name":"voucher_create","abstract":false,"args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"args_string":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","args_html":"(template_key : String, user_name : String, user_email : String, user_id : String | Nil = nil, reservation_id : String | Nil = nil, locker_key : String | Nil = nil, controller_id : String | Int32 | Int64 | Nil = nil, notes : String | Nil = nil, validfrom : Int64 | Nil = nil, validto : Int64 | Nil = nil, duration : Int32 | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":547,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L547"},"def":{"name":"voucher_create","args":[{"name":"template_key","external_name":"template_key","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"reservation_id","default_value":"nil","external_name":"reservation_id","restriction":"String | ::Nil"},{"name":"locker_key","default_value":"nil","external_name":"locker_key","restriction":"String | ::Nil"},{"name":"controller_id","default_value":"nil","external_name":"controller_id","restriction":"String | Int32 | Int64 | ::Nil"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"String | ::Nil"},{"name":"validfrom","default_value":"nil","external_name":"validfrom","restriction":"Int64 | ::Nil"},{"name":"validto","default_value":"nil","external_name":"validto","restriction":"Int64 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", template_key)\n form.add(\"name\", user_name)\n form.add(\"email\", user_email)\n if user_id.nil?\n else\n form.add(\"uid\", user_id)\n end\n if reservation_id.nil?\n else\n form.add(\"resid\", reservation_id.to_s)\n end\n if controller_id.nil?\n else\n form.add(\"cid\", controller_id.to_s)\n end\n if locker_key.nil?\n else\n form.add(\"key\", locker_key.to_s)\n end\n if notes.nil?\n else\n form.add(\"notes\", notes.to_s)\n end\n if validfrom.nil?\n else\n form.add(\"validfrom\", validfrom.to_s)\n end\n if validto.nil?\n else\n form.add(\"validto\", validto.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\nend)\nparse(response, NamedTuple(user: User, voucher: Voucher))\n"}},{"html_id":"voucher_template(key:String,subject:String,desc:String,bodyhtml:String,body:String,createuser:Bool|Nil=nil,email:Bool|Nil=nil,unlock:Bool|Nil=nil,createunlock:Bool|Nil=nil,createres:Bool|Nil=nil,release:Bool|Nil=nil,cardswipe:Bool|Nil=nil,maxuse:Int32|Nil=nil,duration:Int32|Nil=nil,validperiod:Int32|Nil=nil,restype:String|Nil=nil,activatemessage:String|Nil=nil,vouchermessage:String|Nil=nil)-instance-method","name":"voucher_template","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"args_string":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","args_html":"(key : String, subject : String, desc : String, bodyhtml : String, body : String, createuser : Bool | Nil = nil, email : Bool | Nil = nil, unlock : Bool | Nil = nil, createunlock : Bool | Nil = nil, createres : Bool | Nil = nil, release : Bool | Nil = nil, cardswipe : Bool | Nil = nil, maxuse : Int32 | Nil = nil, duration : Int32 | Nil = nil, validperiod : Int32 | Nil = nil, restype : String | Nil = nil, activatemessage : String | Nil = nil, vouchermessage : String | Nil = nil)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L498"},"def":{"name":"voucher_template","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"desc","external_name":"desc","restriction":"String"},{"name":"bodyhtml","external_name":"bodyhtml","restriction":"String"},{"name":"body","external_name":"body","restriction":"String"},{"name":"createuser","default_value":"nil","external_name":"createuser","restriction":"Bool | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"Bool | ::Nil"},{"name":"unlock","default_value":"nil","external_name":"unlock","restriction":"Bool | ::Nil"},{"name":"createunlock","default_value":"nil","external_name":"createunlock","restriction":"Bool | ::Nil"},{"name":"createres","default_value":"nil","external_name":"createres","restriction":"Bool | ::Nil"},{"name":"release","default_value":"nil","external_name":"release","restriction":"Bool | ::Nil"},{"name":"cardswipe","default_value":"nil","external_name":"cardswipe","restriction":"Bool | ::Nil"},{"name":"maxuse","default_value":"nil","external_name":"maxuse","restriction":"Int32 | ::Nil"},{"name":"duration","default_value":"nil","external_name":"duration","restriction":"Int32 | ::Nil"},{"name":"validperiod","default_value":"nil","external_name":"validperiod","restriction":"Int32 | ::Nil"},{"name":"restype","default_value":"nil","external_name":"restype","restriction":"String | ::Nil"},{"name":"activatemessage","default_value":"nil","external_name":"activatemessage","restriction":"String | ::Nil"},{"name":"vouchermessage","default_value":"nil","external_name":"vouchermessage","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = post(\"/restapi/res-unshare\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => get_token, \"Content-Type\" => \"application/x-www-form-urlencoded\"}, body: URI::Params.build do |form|\n form.add(\"key\", key)\n form.add(\"subject\", subject)\n form.add(\"desc\", desc)\n form.add(\"bodyhtml\", bodyhtml)\n form.add(\"body\", body)\n if createuser.nil?\n else\n form.add(\"createuser\", createuser.to_s)\n end\n if email.nil?\n else\n form.add(\"email\", email.to_s)\n end\n if unlock.nil?\n else\n form.add(\"unlock\", unlock.to_s)\n end\n if createunlock.nil?\n else\n form.add(\"createunlock\", createunlock.to_s)\n end\n if createres.nil?\n else\n form.add(\"createres\", createres.to_s)\n end\n if release.nil?\n else\n form.add(\"release\", release.to_s)\n end\n if cardswipe.nil?\n else\n form.add(\"cardswipe\", cardswipe.to_s)\n end\n if maxuse.nil?\n else\n form.add(\"maxuse\", maxuse.to_s)\n end\n if duration.nil?\n else\n form.add(\"duration\", duration.to_s)\n end\n if validperiod.nil?\n else\n form.add(\"validperiod\", validperiod.to_s)\n end\n if restype.nil?\n else\n form.add(\"restype\", restype.to_s)\n end\n if activatemessage.nil?\n else\n form.add(\"activatemessage\", activatemessage.to_s)\n end\n if vouchermessage.nil?\n else\n form.add(\"vouchermessage\", vouchermessage.to_s)\n end\nend)\ncheck_success(response)\n"}},{"html_id":"voucher_templates-instance-method","name":"voucher_templates","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L493"},"def":{"name":"voucher_templates","visibility":"Public","body":"response = get(\"/restapi/voucher-template\", headers: default_headers)\nparse(response, Array(JSON::Any))\n"}},{"html_id":"ws_get(uri:String,**options)-instance-method","name":"ws_get","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String, **options)","args_html":"(uri : String, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L88"},"def":{"name":"ws_get","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"GET #{uri}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}},{"html_id":"ws_post(uri:String,body:String|Nil=nil,**options)-instance-method","name":"ws_post","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(uri : String, body : String | Nil = nil, **options)","args_html":"(uri : String, body : String | Nil = nil, **options)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L81"},"def":{"name":"ws_post","args":[{"name":"uri","external_name":"uri","restriction":"String"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"request = \"POST #{uri}\\r\\n#{body.presence ? body : \"{}\"}\\r\\n\"\nlogger.debug do\n \"requesting: #{request}\"\nend\nsend(request, **options)\n"}}],"macros":[{"html_id":"parse(response,klass,&modify)-macro","name":"parse","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"args_string":"(response, klass, &modify)","args_html":"(response, klass, &modify)","location":{"filename":"src/floorsense/desks_websocket.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L181"},"def":{"name":"parse","args":[{"name":"response","external_name":"response","restriction":""},{"name":"klass","external_name":"klass","restriction":""}],"block_arg":{"name":"modify","external_name":"modify","restriction":""},"visibility":"Public","body":" check_success(\n{{ response }}\n)\n \n%resp_body\n = \n{{ response }}\n.body\n begin\n check_response Resp(\n{{ klass }}\n).from_json(\n%resp_body\n.not_nil!) \n{{ modify }}\n\n rescue \nerror\n begin\n response = Response.from_json(\n%resp_body\n)\n raise \"#{response.message} (#{response.code})\" unless response.result\n raise \"unexpected response type: #{\n%resp_body\n}\"\n rescue\n logger.debug \n{ \"failed to parse response: #{\n%resp_body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/Floorsense/DesksWebsocket/DeskHeight","path":"Floorsense/DesksWebsocket/DeskHeight.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskHeight","name":"DeskHeight","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":779,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L779"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sit","name":"Sit","value":"0"},{"id":"Stand","name":"Stand","value":"1"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"sit?-instance-method","name":"sit?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":780,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L780"},"def":{"name":"sit?","visibility":"Public","body":"self == Sit"}},{"html_id":"stand?-instance-method","name":"stand?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":781,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L781"},"def":{"name":"stand?","visibility":"Public","body":"self == Stand"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/DeskPower","path":"Floorsense/DesksWebsocket/DeskPower.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::DeskPower","name":"DeskPower","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":773,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L773"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Policy","name":"Policy","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L775"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":774,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L774"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"policy?-instance-method","name":"policy?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":776,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L776"},"def":{"name":"policy?","visibility":"Public","body":"self == Policy"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedColour","path":"Floorsense/DesksWebsocket/LedColour.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedColour","name":"LedColour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":767,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L767"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":770,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L770"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":769,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L769"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L768"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/LedState","path":"Floorsense/DesksWebsocket/LedState.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::LedState","name":"LedState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Off","name":"Off","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Slow","name":"Slow","value":"2"},{"id":"Medium","name":"Medium","value":"3"},{"id":"Fast","name":"Fast","value":"4"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"fast?-instance-method","name":"fast?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L320"},"def":{"name":"fast?","visibility":"Public","body":"self == Fast"}},{"html_id":"medium?-instance-method","name":"medium?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L319"},"def":{"name":"medium?","visibility":"Public","body":"self == Medium"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L316"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L317"},"def":{"name":"on?","visibility":"Public","body":"self == On"}},{"html_id":"slow?-instance-method","name":"slow?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L318"},"def":{"name":"slow?","visibility":"Public","body":"self == Slow"}}]},{"html_id":"drivers/Floorsense/DesksWebsocket/QiMode","path":"Floorsense/DesksWebsocket/QiMode.html","kind":"enum","full_name":"Floorsense::DesksWebsocket::QiMode","name":"QiMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/desks_websocket.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L784"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"},{"id":"Auto","name":"Auto","value":"2"}],"namespace":{"html_id":"drivers/Floorsense/DesksWebsocket","kind":"class","full_name":"Floorsense::DesksWebsocket","name":"DesksWebsocket"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":787,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L787"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":786,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L786"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/floorsense/desks_websocket.cr","line_number":785,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/desks_websocket.cr#L785"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]}]},{"html_id":"drivers/Floorsense/Event","path":"Floorsense/Event.html","kind":"class","full_name":"Floorsense::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L30"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"info:JSON::Any|Nil-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L32"},"def":{"name":"info","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L31"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L29"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/Floor","path":"Floorsense/Floor.html","kind":"class","full_name":"Floorsense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L229"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"imgheight:Int32|Nil-instance-method","name":"imgheight","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L236"},"def":{"name":"imgheight","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgheight"}},{"html_id":"imgheight=(imgheight:Int32|Nil)-instance-method","name":"imgheight=","abstract":false,"args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"args_string":"(imgheight : Int32 | Nil)","args_html":"(imgheight : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L236"},"def":{"name":"imgheight=","args":[{"name":"imgheight","external_name":"imgheight","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgheight = imgheight"}},{"html_id":"imgname:String|Nil-instance-method","name":"imgname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L234"},"def":{"name":"imgname","return_type":"String | ::Nil","visibility":"Public","body":"@imgname"}},{"html_id":"imgname=(imgname:String|Nil)-instance-method","name":"imgname=","abstract":false,"args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"args_string":"(imgname : String | Nil)","args_html":"(imgname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L234"},"def":{"name":"imgname=","args":[{"name":"imgname","external_name":"imgname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@imgname = imgname"}},{"html_id":"imgwidth:Int32|Nil-instance-method","name":"imgwidth","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth","return_type":"Int32 | ::Nil","visibility":"Public","body":"@imgwidth"}},{"html_id":"imgwidth=(imgwidth:Int32|Nil)-instance-method","name":"imgwidth=","abstract":false,"args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"args_string":"(imgwidth : Int32 | Nil)","args_html":"(imgwidth : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L235"},"def":{"name":"imgwidth=","args":[{"name":"imgwidth","external_name":"imgwidth","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@imgwidth = imgwidth"}},{"html_id":"location1:String|Nil-instance-method","name":"location1","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L238"},"def":{"name":"location1","return_type":"String | ::Nil","visibility":"Public","body":"@location1"}},{"html_id":"location1=(location1:String|Nil)-instance-method","name":"location1=","abstract":false,"args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"args_string":"(location1 : String | Nil)","args_html":"(location1 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L238"},"def":{"name":"location1=","args":[{"name":"location1","external_name":"location1","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location1 = location1"}},{"html_id":"location2:String|Nil-instance-method","name":"location2","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L239"},"def":{"name":"location2","return_type":"String | ::Nil","visibility":"Public","body":"@location2"}},{"html_id":"location2=(location2:String|Nil)-instance-method","name":"location2=","abstract":false,"args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"args_string":"(location2 : String | Nil)","args_html":"(location2 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L239"},"def":{"name":"location2=","args":[{"name":"location2","external_name":"location2","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location2 = location2"}},{"html_id":"location3:String|Nil-instance-method","name":"location3","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L240"},"def":{"name":"location3","return_type":"String | ::Nil","visibility":"Public","body":"@location3"}},{"html_id":"location3=(location3:String|Nil)-instance-method","name":"location3=","abstract":false,"args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"args_string":"(location3 : String | Nil)","args_html":"(location3 : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L240"},"def":{"name":"location3=","args":[{"name":"location3","external_name":"location3","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location3 = location3"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L232"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L232"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"planid:Int32-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L231"},"def":{"name":"planid","return_type":"Int32","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"args_string":"(planid : Int32)","args_html":"(planid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L231"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32"}],"visibility":"Public","body":"@planid = planid"}}]},{"html_id":"drivers/Floorsense/LocationService","path":"Floorsense/LocationService.html","kind":"class","full_name":"Floorsense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/location_service.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/location_service.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L150"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"cid=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n user = (floorsense.at_location(floor_mac[\"cid\"], floor_mac[\"key\"])).get\n {location: \"desk\", assigned_to: user[\"name\"].as_s, mac_address: mac_address}\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L163"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nplan_id = @zone_mappings[zone_id]?\nif plan_id\nelse\n return [] of Nil\nend\nbuilding = @building_mappings[zone_id]?\nraw_desks = (floorsense.desks(plan_id)).get.to_json\ndesks = (Array(DeskStatus).from_json(raw_desks)).compact_map do |desk|\n @eui64_to_desk_id[desk.eui64] = desk.key\n if desk.occupied\n {location: :desk, at_location: 1, map_id: desk.key, level: zone_id, building: building, capacity: 1, mac: \"cid=#{desk.cid}&key=#{desk.key}\", floorsense_status: desk.status, floorsense_desk_type: desk.desk_type}\n end\nend\ncurrent = [] of BookingStatus\nif @include_bookings\n raw_bookings = (floorsense.bookings(plan_id)).get.to_json\n (Hash(String, Array(BookingStatus)).from_json(raw_bookings)).each_value do |bookings|\n if bookings.empty?\n else\n current << bookings.first\n end\n end\nend\ncurrent.map do |booking|\n {location: :booking, type: \"desk\", checked_in: booking.active, asset_id: booking.key, booking_id: booking.booking_id, building: building, level: zone_id, ends_at: booking.finish, mac: \"cid=#{booking.cid}&key=#{booking.key}\", staff_email: booking.user.try do |__arg2|\n __arg2.email.try(&.downcase)\n end, staff_name: booking.user.try(&.name)}\nend + desks\n"}},{"html_id":"eui64_to_desk_id(id:String)-instance-method","name":"eui64_to_desk_id","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/floorsense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L57"},"def":{"name":"eui64_to_desk_id","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@eui64_to_desk_id[id]?"}},{"html_id":"get_desk_height_sit-instance-method","name":"get_desk_height_sit","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L113"},"def":{"name":"get_desk_height_sit","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_sit\", uid)).get[\"value\"]\n"}},{"html_id":"get_desk_height_stand-instance-method","name":"get_desk_height_stand","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L119"},"def":{"name":"get_desk_height_stand","visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\n(floorsense.get_setting(\"desk_height_stand\", uid)).get[\"value\"]\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/location_service.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L69"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_place_user_id:String-instance-method","name":"get_place_user_id","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L107"},"def":{"name":"get_place_user_id","return_type":"String","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"must be invoked by a user\")\nend\nuser_id\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/location_service.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L140"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/location_service.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L145"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"@include_bookings = (setting?(Bool, :include_bookings)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n@floor_mappings.each do |plan_id, details|\n level = details[:level_id]\n @building_mappings[level] = details[:building_id]\n @zone_mappings[level] = plan_id\nend\n"}},{"html_id":"set_desk_height_sit(value:UInt32)-instance-method","name":"set_desk_height_sit","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L125"},"def":{"name":"set_desk_height_sit","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_sit\", value, uid)\n"}},{"html_id":"set_desk_height_stand(value:UInt32)-instance-method","name":"set_desk_height_stand","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"args_string":"(value : UInt32)","args_html":"(value : UInt32)","location":{"filename":"src/floorsense/location_service.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/location_service.cr#L131"},"def":{"name":"set_desk_height_stand","args":[{"name":"value","external_name":"value","restriction":"UInt32"}],"visibility":"Public","body":"user_id = get_place_user_id\nuid = get_floorsense_user(user_id)\nfloorsense.set_setting(\"desk_height_stand\", value, uid)\n"}}]},{"html_id":"drivers/Floorsense/LockerBooking","path":"Floorsense/LockerBooking.html","kind":"class","full_name":"Floorsense::LockerBooking","name":"LockerBooking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L110"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Int32-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L130"},"def":{"name":"active","return_type":"Int32","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Int32)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Int32"}],"args_string":"(active : Int32)","args_html":"(active : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L130"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Int32"}],"visibility":"Public","body":"@active = active"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L117"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L117"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L112"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L112"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"finish:Int64-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L114"},"def":{"name":"finish","return_type":"Int64","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Int64)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"args_string":"(finish : Int64)","args_html":"(finish : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L114"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Int64"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L125"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L125"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"lastopened:Int64-instance-method","name":"lastopened","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L128"},"def":{"name":"lastopened","return_type":"Int64","visibility":"Public","body":"@lastopened"}},{"html_id":"lastopened=(lastopened:Int64)-instance-method","name":"lastopened=","abstract":false,"args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"args_string":"(lastopened : Int64)","args_html":"(lastopened : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L128"},"def":{"name":"lastopened=","args":[{"name":"lastopened","external_name":"lastopened","restriction":"Int64"}],"visibility":"Public","body":"@lastopened = lastopened"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L126"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L126"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"releasecode:Int32-instance-method","name":"releasecode","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L131"},"def":{"name":"releasecode","return_type":"Int32","visibility":"Public","body":"@releasecode"}},{"html_id":"releasecode=(releasecode:Int32)-instance-method","name":"releasecode=","abstract":false,"args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"args_string":"(releasecode : Int32)","args_html":"(releasecode : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L131"},"def":{"name":"releasecode=","args":[{"name":"releasecode","external_name":"releasecode","restriction":"Int32"}],"visibility":"Public","body":"@releasecode = releasecode"}},{"html_id":"released:Int64-instance-method","name":"released","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L129"},"def":{"name":"released","return_type":"Int64","visibility":"Public","body":"@released"}},{"html_id":"released=(released:Int64)-instance-method","name":"released=","abstract":false,"args":[{"name":"released","external_name":"released","restriction":"Int64"}],"args_string":"(released : Int64)","args_html":"(released : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L129"},"def":{"name":"released=","args":[{"name":"released","external_name":"released","restriction":"Int64"}],"visibility":"Public","body":"@released = released"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L133"},"def":{"name":"released?","visibility":"Public","body":"self.active == 1"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L120"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L127"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L127"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"start:Int64-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L113"},"def":{"name":"start","return_type":"Int64","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Int64)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Int64"}],"args_string":"(start : Int64)","args_html":"(start : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L113"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Int64"}],"visibility":"Public","body":"@start = start"}},{"html_id":"user:User|Nil-instance-method","name":"user","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L138"},"def":{"name":"user","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:User|Nil)-instance-method","name":"user=","doc":"not included in the responses but we will merge this","summary":"

not included in the responses but we will merge this

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"args_string":"(user : User | Nil)","args_html":"(user : User | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L138"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"User | ::Nil"}],"visibility":"Public","body":"@user = user"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L123"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L123"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Floorsense/LockerInfo","path":"Floorsense/LockerInfo.html","kind":"class","full_name":"Floorsense::LockerInfo","name":"LockerInfo","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bus_id:Int32-instance-method","name":"bus_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L82"},"def":{"name":"bus_id","return_type":"Int32","visibility":"Public","body":"@bus_id"}},{"html_id":"bus_id=(bus_id:Int32)-instance-method","name":"bus_id=","abstract":false,"args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"args_string":"(bus_id : Int32)","args_html":"(bus_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L82"},"def":{"name":"bus_id=","args":[{"name":"bus_id","external_name":"bus_id","restriction":"Int32"}],"visibility":"Public","body":"@bus_id = bus_id"}},{"html_id":"canid:Int32-instance-method","name":"canid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L79"},"def":{"name":"canid","return_type":"Int32","visibility":"Public","body":"@canid"}},{"html_id":"canid=(canid:Int32)-instance-method","name":"canid=","abstract":false,"args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"args_string":"(canid : Int32)","args_html":"(canid : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L79"},"def":{"name":"canid=","args":[{"name":"canid","external_name":"canid","restriction":"Int32"}],"visibility":"Public","body":"@canid = canid"}},{"html_id":"closed:Bool|Nil-instance-method","name":"closed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L93"},"def":{"name":"closed","return_type":"Bool | ::Nil","visibility":"Public","body":"@closed"}},{"html_id":"closed=(closed:Bool|Nil)-instance-method","name":"closed=","abstract":false,"args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"args_string":"(closed : Bool | Nil)","args_html":"(closed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L93"},"def":{"name":"closed=","args":[{"name":"closed","external_name":"closed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@closed = closed"}},{"html_id":"confirmed:Bool-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L91"},"def":{"name":"confirmed","return_type":"Bool","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"args_string":"(confirmed : Bool)","args_html":"(confirmed : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L91"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @controller_id).nil?\n ::raise(::NilAssertionError.new(\"Floorsense::LockerInfo#controller_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"controller_id=(controller_id:Int32)-instance-method","name":"controller_id=","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"args_string":"(controller_id : Int32)","args_html":"(controller_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L106"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"Int32"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"controller_id?:Int32|Nil-instance-method","name":"controller_id?","doc":"not included by default, used by locker mappings","summary":"

not included by default, used by locker mappings

","abstract":false,"def":{"name":"controller_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controller_id"}},{"html_id":"disabled:Bool-instance-method","name":"disabled","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L90"},"def":{"name":"disabled","return_type":"Bool","visibility":"Public","body":"@disabled"}},{"html_id":"disabled=(disabled:Bool)-instance-method","name":"disabled=","abstract":false,"args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"args_string":"(disabled : Bool)","args_html":"(disabled : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L90"},"def":{"name":"disabled=","args":[{"name":"disabled","external_name":"disabled","restriction":"Bool"}],"visibility":"Public","body":"@disabled = disabled"}},{"html_id":"firmware:String-instance-method","name":"firmware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L89"},"def":{"name":"firmware","return_type":"String","visibility":"Public","body":"@firmware"}},{"html_id":"firmware=(firmware:String)-instance-method","name":"firmware=","abstract":false,"args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"args_string":"(firmware : String)","args_html":"(firmware : String)","location":{"filename":"src/floorsense/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L89"},"def":{"name":"firmware=","args":[{"name":"firmware","external_name":"firmware","restriction":"String"}],"visibility":"Public","body":"@firmware = firmware"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L98"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L98"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"hardware:Int32|Nil-instance-method","name":"hardware","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L99"},"def":{"name":"hardware","return_type":"Int32 | ::Nil","visibility":"Public","body":"@hardware"}},{"html_id":"hardware=(hardware:Int32|Nil)-instance-method","name":"hardware=","abstract":false,"args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"args_string":"(hardware : Int32 | Nil)","args_html":"(hardware : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L99"},"def":{"name":"hardware=","args":[{"name":"hardware","external_name":"hardware","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@hardware = hardware"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L101"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L101"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"locker_id:Int32-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L85"},"def":{"name":"locker_id","return_type":"Int32","visibility":"Public","body":"@locker_id"}},{"html_id":"locker_id=(locker_id:Int32)-instance-method","name":"locker_id=","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"args_string":"(locker_id : Int32)","args_html":"(locker_id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L85"},"def":{"name":"locker_id=","args":[{"name":"locker_id","external_name":"locker_id","restriction":"Int32"}],"visibility":"Public","body":"@locker_id = locker_id"}},{"html_id":"reserved:Bool-instance-method","name":"reserved","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L87"},"def":{"name":"reserved","return_type":"Bool","visibility":"Public","body":"@reserved"}},{"html_id":"reserved=(reserved:Bool)-instance-method","name":"reserved=","abstract":false,"args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"args_string":"(reserved : Bool)","args_html":"(reserved : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L87"},"def":{"name":"reserved=","args":[{"name":"reserved","external_name":"reserved","restriction":"Bool"}],"visibility":"Public","body":"@reserved = reserved"}},{"html_id":"resid:String|Nil-instance-method","name":"resid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L103"},"def":{"name":"resid","return_type":"String | ::Nil","visibility":"Public","body":"@resid"}},{"html_id":"resid=(resid:String|Nil)-instance-method","name":"resid=","abstract":false,"args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"args_string":"(resid : String | Nil)","args_html":"(resid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L103"},"def":{"name":"resid=","args":[{"name":"resid","external_name":"resid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resid = resid"}},{"html_id":"status:Int32-instance-method","name":"status","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L88"},"def":{"name":"status","return_type":"Int32","visibility":"Public","body":"@status"}},{"html_id":"status=(status:Int32)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"Int32"}],"args_string":"(status : Int32)","args_html":"(status : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L88"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"Int32"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L100"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L100"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"typename:String|Nil-instance-method","name":"typename","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L96"},"def":{"name":"typename","return_type":"String | ::Nil","visibility":"Public","body":"@typename"}},{"html_id":"typename=(typename:String|Nil)-instance-method","name":"typename=","abstract":false,"args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"args_string":"(typename : String | Nil)","args_html":"(typename : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L96"},"def":{"name":"typename=","args":[{"name":"typename","external_name":"typename","restriction":"String | ::Nil"}],"visibility":"Public","body":"@typename = typename"}},{"html_id":"uid:String|Nil-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L97"},"def":{"name":"uid","return_type":"String | ::Nil","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String|Nil)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"args_string":"(uid : String | Nil)","args_html":"(uid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L97"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"usbcharger:Bool|Nil-instance-method","name":"usbcharger","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharger"}},{"html_id":"usbcharger=(usbcharger:Bool|Nil)-instance-method","name":"usbcharger=","abstract":false,"args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"args_string":"(usbcharger : Bool | Nil)","args_html":"(usbcharger : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L94"},"def":{"name":"usbcharger=","args":[{"name":"usbcharger","external_name":"usbcharger","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharger = usbcharger"}},{"html_id":"usbcharging:Bool|Nil-instance-method","name":"usbcharging","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging","return_type":"Bool | ::Nil","visibility":"Public","body":"@usbcharging"}},{"html_id":"usbcharging=(usbcharging:Bool|Nil)-instance-method","name":"usbcharging=","abstract":false,"args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"args_string":"(usbcharging : Bool | Nil)","args_html":"(usbcharging : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L95"},"def":{"name":"usbcharging=","args":[{"name":"usbcharging","external_name":"usbcharging","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@usbcharging = usbcharging"}},{"html_id":"usbcurrent:Int32|Nil-instance-method","name":"usbcurrent","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent","return_type":"Int32 | ::Nil","visibility":"Public","body":"@usbcurrent"}},{"html_id":"usbcurrent=(usbcurrent:Int32|Nil)-instance-method","name":"usbcurrent=","abstract":false,"args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"args_string":"(usbcurrent : Int32 | Nil)","args_html":"(usbcurrent : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L102"},"def":{"name":"usbcurrent=","args":[{"name":"usbcurrent","external_name":"usbcurrent","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@usbcurrent = usbcurrent"}}]},{"html_id":"drivers/Floorsense/LockerLocationService","path":"Floorsense/LockerLocationService.html","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L382"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lc=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n controller_id = floor_mac[\"lc\"]\n locker_key = floor_mac[\"lk\"]\n reservations = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n if reservation = reservations.find do |booking|\n booking.key == locker_key\n end\n {location: \"locker\", assigned_to: get_user_email(reservation.user_id), mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"controllers:Hash(Int32,ControllerInfo)-instance-method","name":"controllers","doc":"Controller id => Controller info","summary":"

Controller id => Controller info

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L50"},"def":{"name":"controllers","return_type":"Hash(Int32, ControllerInfo)","visibility":"Public","body":"@controllers"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L412"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\ncontroller_list = @zone_mappings[zone_id]?\nif controller_list\nelse\n return [] of Nil\nend\nbuilding = @zone_building\ncontroller_list.flat_map do |controller_id|\n bookings = Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, controller_id: controller_id).get.to_json)\n bookings.map do |booking|\n PlaceLocker.new(get_locker_bank(booking.key), booking, @zone_building, zone_id)\n end\nend\n"}},{"html_id":"get_floorsense_user(place_user_id:String):String-instance-method","name":"get_floorsense_user","abstract":false,"args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"args_string":"(place_user_id : String) : String","args_html":"(place_user_id : String) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L106"},"def":{"name":"get_floorsense_user","args":[{"name":"place_user_id","external_name":"place_user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"place_user = (staff_api.user(place_user_id)).get\nplaceos_staff_id = place_user[@user_lookup].as_s\nlogger.debug do\n \"found place id: #{placeos_staff_id}\"\nend\nuser_query = case @floorsense_filter\nwhen \"name\"\n floorsense.user_list(name: placeos_staff_id)\nwhen \"email\"\n floorsense.user_list(email: placeos_staff_id)\nelse\n floorsense.user_list(description: placeos_staff_id)\nend\nfloorsense_users = user_query.get.as_a\nlogger.debug do\n \"found #{floorsense_users.size} matching floorsense users\"\nend\nuser_id = floorsense_users.first?.try() do |__arg0|\n __arg0[\"uid\"].as_s\nend\nif @create_floorsense_users\n user_id || (user_id = (floorsense.create_user(place_user[\"name\"].as_s, place_user[\"email\"].as_s, placeos_staff_id)).get[\"uid\"].as_s)\nend\nif user_id\nelse\n raise(\"Floorsense user not found for #{placeos_staff_id}\")\nend\ncard_number = place_user[\"card_number\"]?.try(&.as_s)\nif (user_id && card_number) && !card_number.empty?\n spawn do\n ensure_card_synced(card_number, user_id)\n end\nend\nuser_id\n"}},{"html_id":"get_locker_bank(locker_key:String)-instance-method","name":"get_locker_bank","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L403"},"def":{"name":"get_locker_bank","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"if bank_id = @locker_key_to_bank[locker_key]?\n return bank_id\nend\nbank_id = (floorsense.locker_info(locker_key)).get[\"controller_id\"].as_i64\n@locker_key_to_bank[locker_key] = bank_id\n"}},{"html_id":"get_place_user_id(floorsense_id:String|Int64):String-instance-method","name":"get_place_user_id","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L148"},"def":{"name":"get_place_user_id","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nplace_lookup = case @floorsense_filter\nwhen \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\nelse\n floor_user[\"desc\"].as_s\nend\nif (place_lookup.starts_with?(\"user-\")) && !(place_lookup.includes?('@'))\n return place_lookup\nend\n(staff_api.user(place_lookup)).get[\"id\"].as_s\n"}},{"html_id":"get_user_email(floorsense_id:String|Int64):String-instance-method","name":"get_user_email","abstract":false,"args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"args_string":"(floorsense_id : String | Int64) : String","args_html":"(floorsense_id : String | Int64) : String","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L161"},"def":{"name":"get_user_email","args":[{"name":"floorsense_id","external_name":"floorsense_id","restriction":"String | Int64"}],"return_type":"String","visibility":"Public","body":"floor_user = (floorsense.get_user(floorsense_id)).get\nbegin\n floor_user[\"email\"].as_s\nrescue\n place_lookup = case @floorsense_filter\n when \"name\", \"email\"\n floor_user[@floorsense_filter].as_s\n else\n floor_user[\"desc\"].as_s\n end\n (staff_api.user(place_lookup)).get[\"email\"].as_s\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L370"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L192"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(user_id)\nif expires_at\n duration = (expires_at - Time.local.to_unix) // 60\nend\nbooking = LockerBooking.from_json(floorsense.locker_reservation(locker_key: locker_id, user_id: floorsense_user_id, duration: duration, controller_id: bank_id).get.to_json)\nlevel = nil\n@zone_mappings.each do |level_zone, controllers|\n if bank_id.in?(controllers)\n level = level_zone\n break\n end\nend\nPlaceLocker.new(bank_id, booking, @zone_building, level)\n"}},{"html_id":"locker_banks-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L88"},"def":{"name":"locker_banks","visibility":"Public","body":"banks = {} of Int32 => Array(JSON::Any)\n@controllers.each_key do |controller_id|\n if json = (begin\n (floorsense.bank_list(controller_id)).get\n rescue\n nil\n end)\n banks[controller_id] = json.as_a\n end\nend\nbanks\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L228"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nif place_id = owner_id.presence\n floorsense_user_id = get_floorsense_user(place_id)\nend\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_release(reservation.reservation_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L273"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"bank_id = get_locker_bank(locker_id.to_s)\nfloorsense_user_id = get_floorsense_user(owner_id)\nshare_with = get_floorsense_user(share_with)\nreservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id).get.to_json)).find! do |booking|\n booking.key == locker_id\nend\n(floorsense.locker_share(reservation.reservation_id, share_with)).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L324"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n return (floorsense.locker_shared?(reservation.reservation_id)).get.as_a.map do |shared_with|\n get_place_user_id(shared_with[\"uid\"].as_s)\n end\nend\n[] of String\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L347"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if owner_id.presence\n floorsense_user_id = get_floorsense_user(owner_id.to_s)\nend\nfloorsense.locker_unlock(locker_key: locker_id.to_s, user_id: floorsense_user_id, pin: pin_code)\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L293"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(owner_id)\nbank_id = get_locker_bank(locker_id.to_s)\nif reservation = (Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id, controller_id: bank_id, shared: true).get.to_json)).find do |booking|\n booking.key == locker_id\nend\n res_id = reservation.reservation_id\n if shared_with = shared_with_id.presence\n shared_with_id = get_floorsense_user(shared_with)\n (floorsense.locker_unshare(res_id, shared_with_id)).get\n else\n (floorsense.locker_shared?(res_id)).get.as_a.map do |shared_with|\n (floorsense.locker_unshare(res_id, shared_with[\"uid\"].as_s)).get\n end\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L251"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"floorsense_user_id = get_floorsense_user(user_id)\n(Array(LockerBooking).from_json(floorsense.locker_reservations(active: true, user_id: floorsense_user_id).get.to_json)).compact_map do |floor_booking|\n level = nil\n @zone_mappings.each do |level_zone, controllers|\n if floor_booking.controller_id.in?(controllers)\n level = level_zone\n break\n end\n end\n if level\n PlaceLocker.new(get_locker_bank(floor_booking.key), floor_booking, @zone_building, level)\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/floorsense/locker_location_service.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L375"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@building_location = setting(String, :locker_building_location)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :locker_floor_mappings)\n@user_lookup = (setting?(String, :user_lookup)).presence || \"email\"\n@floorsense_filter = (setting?(String, :floorsense_filter)).presence || \"email\"\n@create_floorsense_users = (setting?(Bool, :create_floorsense_users)) || false\n"}},{"html_id":"zone_building:String|Nil-instance-method","name":"zone_building","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L57"},"def":{"name":"zone_building","return_type":"String | ::Nil","visibility":"Public","body":"@zone_building"}},{"html_id":"zone_mappings:Hash(String,Array(Int32))-instance-method","name":"zone_mappings","doc":"level zone_id => controller ids","summary":"

level zone_id => controller ids

","abstract":false,"location":{"filename":"src/floorsense/locker_location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L56"},"def":{"name":"zone_mappings","return_type":"Hash(String, Array(Int32))","visibility":"Public","body":"@zone_mappings"}}],"types":[{"html_id":"drivers/Floorsense/LockerLocationService/PlaceLocker","path":"Floorsense/LockerLocationService/PlaceLocker.html","kind":"alias","full_name":"Floorsense::LockerLocationService::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/floorsense/locker_location_service.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/locker_location_service.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Floorsense/LockerLocationService","kind":"class","full_name":"Floorsense::LockerLocationService","name":"LockerLocationService"}}]},{"html_id":"drivers/Floorsense/LogEntry","path":"Floorsense/LogEntry.html","kind":"class","full_name":"Floorsense::LogEntry","name":"LogEntry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L376"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L377"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bkid:String-instance-method","name":"bkid","doc":"booking id","summary":"

booking id

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L388"},"def":{"name":"bkid","return_type":"String","visibility":"Public","body":"@bkid"}},{"html_id":"bkid=(bkid:String)-instance-method","name":"bkid=","doc":"booking id","summary":"

booking id

","abstract":false,"args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"args_string":"(bkid : String)","args_html":"(bkid : String)","location":{"filename":"src/floorsense/models.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L388"},"def":{"name":"bkid=","args":[{"name":"bkid","external_name":"bkid","restriction":"String"}],"visibility":"Public","body":"@bkid = bkid"}},{"html_id":"code:Int32-instance-method","name":"code","doc":"the event code","summary":"

the event code

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L385"},"def":{"name":"code","return_type":"Int32","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32)-instance-method","name":"code=","doc":"the event code","summary":"

the event code

","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32"}],"args_string":"(code : Int32)","args_html":"(code : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L385"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32"}],"visibility":"Public","body":"@code = code"}},{"html_id":"eventid:Int64-instance-method","name":"eventid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L379"},"def":{"name":"eventid","return_type":"Int64","visibility":"Public","body":"@eventid"}},{"html_id":"eventid=(eventid:Int64)-instance-method","name":"eventid=","abstract":false,"args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"args_string":"(eventid : Int64)","args_html":"(eventid : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L379"},"def":{"name":"eventid=","args":[{"name":"eventid","external_name":"eventid","restriction":"Int64"}],"visibility":"Public","body":"@eventid = eventid"}},{"html_id":"eventtime:Int64-instance-method","name":"eventtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L394"},"def":{"name":"eventtime","return_type":"Int64","visibility":"Public","body":"@eventtime"}},{"html_id":"eventtime=(eventtime:Int64)-instance-method","name":"eventtime=","abstract":false,"args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"args_string":"(eventtime : Int64)","args_html":"(eventtime : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L394"},"def":{"name":"eventtime=","args":[{"name":"eventtime","external_name":"eventtime","restriction":"Int64"}],"visibility":"Public","body":"@eventtime = eventtime"}},{"html_id":"key:String-instance-method","name":"key","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L382"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","doc":"this is the locker or table name","summary":"

this is the locker or table name

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L382"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}}]},{"html_id":"drivers/Floorsense/MobileCheckinLogic","path":"Floorsense/MobileCheckinLogic.html","kind":"class","full_name":"Floorsense::MobileCheckinLogic","name":"MobileCheckinLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"eui64_scanned(id:String,user_id:String,booking_minutes:Int32|Nil=nil)-instance-method","name":"eui64_scanned","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"args_string":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","args_html":"(id : String, user_id : String, booking_minutes : Int32 | Nil = nil)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L31"},"def":{"name":"eui64_scanned","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"booking_minutes","default_value":"nil","external_name":"booking_minutes","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"#{user_id} scanned mac #{id}\"\nend\ndesk_details = (booking_sync.eui64_to_desk_id(id)).get\nif desk_details.raw.nil?\n raise(\"could not find eui64 id: #{id}\")\nend\nlogger.debug do\n \"desk details found: #{desk_details.inspect}\"\nend\nlevel_zone = desk_details[\"level\"].as_s\nplace_desk = desk_details[\"desk_id\"].as_s\nbuilding_raw = desk_details[\"building_id\"]?.try(&.raw)\nbuild_zone = building_raw.try do |__arg2|\n __arg2.as(String)\nend\nlogger.debug do\n \"located #{place_desk} for #{user_id}\"\nend\nnow = Time.utc.to_unix\nbooking = staff_api.query_bookings(type: \"desk\", zones: [level_zone]).get.as_a.find do |book|\n ((book[\"asset_id\"].as_s == place_desk) && book[\"booking_start\"].as_i64 <= now) && book[\"booking_end\"].as_i64 > now\nend\nif booking\n owner_id = booking[\"user_id\"].as_s\n if owner_id == user_id\n checkin_out = !booking[\"checked_in\"].as_bool\n booking_id = booking[\"id\"].as_i64\n logger.debug do\n \"found existing booking #{booking_id} with current checked-in status #{!checkin_out}\"\n end\n if checkin_out\n (staff_api.booking_check_in(booking_id, true)).get.as_bool\n \"checked-in\"\n else\n now = 1.minute.ago.to_unix\n staff_api.update_booking(booking_id: booking_id, booking_end: now, checked_in: false).get\n \"checked-out\"\n end\n else\n logger.debug do\n \"#{user_id} scanned desk owned by #{owner_id}\"\n end\n \"forbidden\"\n end\nelse\n booking_period = booking_minutes.try(&.minutes) || @booking_period\n now = Time.local(@time_zone)\n future = booking_period ? (now + booking_period) : now.at_end_of_day\n user_details = (staff_api.user(user_id)).get\n zones = [level_zone]\n if build_zone\n zones.unshift(build_zone)\n end\n title = place_desk\n ext_data = {} of String => JSON::Any\n begin\n logger.debug do\n \"obtaining metadata for desk #{place_desk} on level #{level_zone}\"\n end\n if desk_details = placeos_desk_metadata(level_zone, place_desk)\n if bookable = desk_details[\"bookable\"]?\n if (bookable.as_s?.try(&.upcase) == \"FALSE\") || (bookable.as_bool? == false)\n return \"forbidden\"\n end\n end\n title = desk_details[\"name\"]?.try(&.as_s) || place_desk\n @meta_ext_mappings.each do |meta_key, ext_key|\n if value = desk_details[meta_key]?\n ext_data[ext_key] = value\n end\n end\n else\n logger.warn do\n \"desk details not found!\"\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"obtaining desk metadata\"\n end\n end\n logger.debug do\n \"creating new booking for #{user_id} on #{place_desk}\"\n end\n staff_api.create_booking(booking_type: \"desk\", asset_id: place_desk, user_id: user_id, user_email: user_details[\"email\"], user_name: user_details[\"name\"], zones: zones, booking_start: now.to_unix, booking_end: future.to_unix, checked_in: true, approved: true, title: title, time_zone: @time_zone.name, extension_data: ext_data).get\n \"adhoc\"\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"time_zone = (setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@booking_period = (setting?(Int32, :booking_period)).try(&.minutes)\n@meta_ext_mappings = (setting?(Hash(String, String), :meta_ext_mappings)) || ({} of String => String)\n"}},{"html_id":"placeos_desk_metadata(zone_id:String,asset_id:String)-instance-method","name":"placeos_desk_metadata","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(zone_id : String, asset_id : String)","args_html":"(zone_id : String, asset_id : String)","location":{"filename":"src/floorsense/mobile_checkin_logic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/mobile_checkin_logic.cr#L133"},"def":{"name":"placeos_desk_metadata","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"metadata = (staff_api.metadata(zone_id, \"desks\")).get[\"desks\"][\"details\"].as_a\nmetadata.each do |desk|\n place_id = desk[\"id\"]?.try(&.as_s)\n if place_id\n else\n next\n end\n if place_id == asset_id\n return desk.as_h\n end\nend\nnil\n"}}]},{"html_id":"drivers/Floorsense/Payload","path":"Floorsense/Payload.html","kind":"class","full_name":"Floorsense::Payload","name":"Payload","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Floorsense/Event","kind":"class","full_name":"Floorsense::Event","name":"Event"},{"html_id":"drivers/Floorsense/Response","kind":"class","full_name":"Floorsense::Response","name":"Response"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"event\"\n Event.from_json(json)\nwhen \"response\"\n Response.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/Floorsense/Resp","path":"Floorsense/Resp.html","kind":"class","full_name":"Floorsense::Resp(T)","name":"Resp","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L56"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int32|Nil)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"args_string":"(code : Int32 | Nil)","args_html":"(code : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L56"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@code = code"}},{"html_id":"info:T|Nil-instance-method","name":"info","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L59"},"def":{"name":"info","return_type":"T | ::Nil","visibility":"Public","body":"@info"}},{"html_id":"info=(info:T|Nil)-instance-method","name":"info=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"args_string":"(info : T | Nil)","args_html":"(info : T | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L59"},"def":{"name":"info=","args":[{"name":"info","external_name":"info","restriction":"T | ::Nil"}],"visibility":"Public","body":"@info = info"}},{"html_id":"message:String|Nil-instance-method","name":"message","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L55"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"message=(message:String|Nil)-instance-method","name":"message=","doc":"Returned on failure","summary":"

Returned on failure

","abstract":false,"args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(message : String | Nil)","args_html":"(message : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L55"},"def":{"name":"message=","args":[{"name":"message","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"@message = message"}},{"html_id":"msg_type:String-instance-method","name":"msg_type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L51"},"def":{"name":"msg_type","return_type":"String","visibility":"Public","body":"@msg_type"}},{"html_id":"msg_type=(msg_type:String)-instance-method","name":"msg_type=","abstract":false,"args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"args_string":"(msg_type : String)","args_html":"(msg_type : String)","location":{"filename":"src/floorsense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L51"},"def":{"name":"msg_type=","args":[{"name":"msg_type","external_name":"msg_type","restriction":"String"}],"visibility":"Public","body":"@msg_type = msg_type"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L52"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"result=(result:Bool)-instance-method","name":"result=","abstract":false,"args":[{"name":"result","external_name":"result","restriction":"Bool"}],"args_string":"(result : Bool)","args_html":"(result : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L52"},"def":{"name":"result=","args":[{"name":"result","external_name":"result","restriction":"Bool"}],"visibility":"Public","body":"@result = result"}}]},{"html_id":"drivers/Floorsense/Response","path":"Floorsense/Response.html","kind":"class","full_name":"Floorsense::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},"ancestors":[{"html_id":"drivers/Floorsense/Payload","kind":"class","full_name":"Floorsense::Payload","name":"Payload"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"code:Int32|Nil-instance-method","name":"code","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L38"},"def":{"name":"code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@code"}},{"html_id":"info-instance-method","name":"info","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L42"},"def":{"name":"info","visibility":"Public","body":"@info || (JSON.parse(\"{}\"))"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L39"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"result:Bool-instance-method","name":"result","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L37"},"def":{"name":"result","return_type":"Bool","visibility":"Public","body":"@result"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L36"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Floorsense/RFID","path":"Floorsense/RFID.html","kind":"class","full_name":"Floorsense::RFID","name":"RFID","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L397"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L398"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"csn:String-instance-method","name":"csn","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L400"},"def":{"name":"csn","return_type":"String","visibility":"Public","body":"@csn"}},{"html_id":"csn=(csn:String)-instance-method","name":"csn=","abstract":false,"args":[{"name":"csn","external_name":"csn","restriction":"String"}],"args_string":"(csn : String)","args_html":"(csn : String)","location":{"filename":"src/floorsense/models.cr","line_number":400,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L400"},"def":{"name":"csn=","args":[{"name":"csn","external_name":"csn","restriction":"String"}],"visibility":"Public","body":"@csn = csn"}},{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L402"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L402"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L401"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L401"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Setting","path":"Floorsense/Setting.html","kind":"class","full_name":"Floorsense::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"key:String-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L66"},"def":{"name":"key","return_type":"String","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/floorsense/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L66"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"@key = key"}},{"html_id":"value:JSON::Any-instance-method","name":"value","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L65"},"def":{"name":"value","return_type":"JSON::Any","visibility":"Public","body":"@value"}},{"html_id":"value=(value:JSON::Any)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(value : JSON::Any)","args_html":"(value : JSON::Any)","location":{"filename":"src/floorsense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L65"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Floorsense/User","path":"Floorsense/User.html","kind":"class","full_name":"Floorsense::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L358"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L359"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desc:String|Nil-instance-method","name":"desc","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L364"},"def":{"name":"desc","return_type":"String | ::Nil","visibility":"Public","body":"@desc"}},{"html_id":"desc=(desc:String|Nil)-instance-method","name":"desc=","abstract":false,"args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"args_string":"(desc : String | Nil)","args_html":"(desc : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L364"},"def":{"name":"desc=","args":[{"name":"desc","external_name":"desc","restriction":"String | ::Nil"}],"visibility":"Public","body":"@desc = desc"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L362"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L362"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expiry:Int64|Nil-instance-method","name":"expiry","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L366"},"def":{"name":"expiry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"expiry=(expiry:Int64|Nil)-instance-method","name":"expiry=","abstract":false,"args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"args_string":"(expiry : Int64 | Nil)","args_html":"(expiry : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L366"},"def":{"name":"expiry=","args":[{"name":"expiry","external_name":"expiry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@expiry = expiry"}},{"html_id":"extid:String|Nil-instance-method","name":"extid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L371"},"def":{"name":"extid","return_type":"String | ::Nil","visibility":"Public","body":"@extid"}},{"html_id":"extid=(extid:String|Nil)-instance-method","name":"extid=","abstract":false,"args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"args_string":"(extid : String | Nil)","args_html":"(extid : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L371"},"def":{"name":"extid=","args":[{"name":"extid","external_name":"extid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@extid = extid"}},{"html_id":"lastlogin:Int64|Nil-instance-method","name":"lastlogin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin","return_type":"Int64 | ::Nil","visibility":"Public","body":"@lastlogin"}},{"html_id":"lastlogin=(lastlogin:Int64|Nil)-instance-method","name":"lastlogin=","abstract":false,"args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"args_string":"(lastlogin : Int64 | Nil)","args_html":"(lastlogin : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L365"},"def":{"name":"lastlogin=","args":[{"name":"lastlogin","external_name":"lastlogin","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@lastlogin = lastlogin"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L363"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L363"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"pin:String|Nil-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L368"},"def":{"name":"pin","return_type":"String | ::Nil","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String|Nil)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"args_string":"(pin : String | Nil)","args_html":"(pin : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L368"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"privacy:Int32|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L373"},"def":{"name":"privacy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Int32|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"args_string":"(privacy : Int32 | Nil)","args_html":"(privacy : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L373"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"reslimit:Int64|Nil-instance-method","name":"reslimit","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L367"},"def":{"name":"reslimit","return_type":"Int64 | ::Nil","visibility":"Public","body":"@reslimit"}},{"html_id":"reslimit=(reslimit:Int64|Nil)-instance-method","name":"reslimit=","abstract":false,"args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"args_string":"(reslimit : Int64 | Nil)","args_html":"(reslimit : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L367"},"def":{"name":"reslimit=","args":[{"name":"reslimit","external_name":"reslimit","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@reslimit = reslimit"}},{"html_id":"ugroupid:Int64|Nil-instance-method","name":"ugroupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ugroupid"}},{"html_id":"ugroupid=(ugroupid:Int64|Nil)-instance-method","name":"ugroupid=","abstract":false,"args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"args_string":"(ugroupid : Int64 | Nil)","args_html":"(ugroupid : Int64 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L369"},"def":{"name":"ugroupid=","args":[{"name":"ugroupid","external_name":"ugroupid","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ugroupid = ugroupid"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L361"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L361"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}},{"html_id":"uidtoken:String|Nil-instance-method","name":"uidtoken","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken","return_type":"String | ::Nil","visibility":"Public","body":"@uidtoken"}},{"html_id":"uidtoken=(uidtoken:String|Nil)-instance-method","name":"uidtoken=","abstract":false,"args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"args_string":"(uidtoken : String | Nil)","args_html":"(uidtoken : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L370"},"def":{"name":"uidtoken=","args":[{"name":"uidtoken","external_name":"uidtoken","restriction":"String | ::Nil"}],"visibility":"Public","body":"@uidtoken = uidtoken"}},{"html_id":"usertype:String|Nil-instance-method","name":"usertype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L372"},"def":{"name":"usertype","return_type":"String | ::Nil","visibility":"Public","body":"@usertype"}},{"html_id":"usertype=(usertype:String|Nil)-instance-method","name":"usertype=","abstract":false,"args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"args_string":"(usertype : String | Nil)","args_html":"(usertype : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L372"},"def":{"name":"usertype=","args":[{"name":"usertype","external_name":"usertype","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usertype = usertype"}}]},{"html_id":"drivers/Floorsense/UserGroup","path":"Floorsense/UserGroup.html","kind":"class","full_name":"Floorsense::UserGroup","name":"UserGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L198"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L198"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L196"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int32)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/floorsense/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L196"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L197"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L197"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Floorsense/UserLocation","path":"Floorsense/UserLocation.html","kind":"class","full_name":"Floorsense::UserLocation","name":"UserLocation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L201"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"active:Bool|Nil-instance-method","name":"active","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L225"},"def":{"name":"active","return_type":"Bool | ::Nil","visibility":"Public","body":"@active"}},{"html_id":"active=(active:Bool|Nil)-instance-method","name":"active=","abstract":false,"args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"args_string":"(active : Bool | Nil)","args_html":"(active : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L225"},"def":{"name":"active=","args":[{"name":"active","external_name":"active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@active = active"}},{"html_id":"cid:Int32|Nil-instance-method","name":"cid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L220"},"def":{"name":"cid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cid"}},{"html_id":"cid=(cid:Int32|Nil)-instance-method","name":"cid=","abstract":false,"args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"args_string":"(cid : Int32 | Nil)","args_html":"(cid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L220"},"def":{"name":"cid=","args":[{"name":"cid","external_name":"cid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@cid = cid"}},{"html_id":"confirmed:Bool|Nil-instance-method","name":"confirmed","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L224"},"def":{"name":"confirmed","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmed"}},{"html_id":"confirmed=(confirmed:Bool|Nil)-instance-method","name":"confirmed=","abstract":false,"args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"args_string":"(confirmed : Bool | Nil)","args_html":"(confirmed : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L224"},"def":{"name":"confirmed=","args":[{"name":"confirmed","external_name":"confirmed","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmed = confirmed"}},{"html_id":"finish:Time|Nil-instance-method","name":"finish","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L213"},"def":{"name":"finish","return_type":"Time | ::Nil","visibility":"Public","body":"@finish"}},{"html_id":"finish=(finish:Time|Nil)-instance-method","name":"finish=","abstract":false,"args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"args_string":"(finish : Time | Nil)","args_html":"(finish : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L213"},"def":{"name":"finish=","args":[{"name":"finish","external_name":"finish","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@finish = finish"}},{"html_id":"floorname:String|Nil-instance-method","name":"floorname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L219"},"def":{"name":"floorname","return_type":"String | ::Nil","visibility":"Public","body":"@floorname"}},{"html_id":"floorname=(floorname:String|Nil)-instance-method","name":"floorname=","abstract":false,"args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"args_string":"(floorname : String | Nil)","args_html":"(floorname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L219"},"def":{"name":"floorname=","args":[{"name":"floorname","external_name":"floorname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floorname = floorname"}},{"html_id":"groupid:Int32|Nil-instance-method","name":"groupid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L217"},"def":{"name":"groupid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@groupid"}},{"html_id":"groupid=(groupid:Int32|Nil)-instance-method","name":"groupid=","abstract":false,"args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"args_string":"(groupid : Int32 | Nil)","args_html":"(groupid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L217"},"def":{"name":"groupid=","args":[{"name":"groupid","external_name":"groupid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@groupid = groupid"}},{"html_id":"groupname:String|Nil-instance-method","name":"groupname","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L222"},"def":{"name":"groupname","return_type":"String | ::Nil","visibility":"Public","body":"@groupname"}},{"html_id":"groupname=(groupname:String|Nil)-instance-method","name":"groupname=","abstract":false,"args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"args_string":"(groupname : String | Nil)","args_html":"(groupname : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L222"},"def":{"name":"groupname=","args":[{"name":"groupname","external_name":"groupname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@groupname = groupname"}},{"html_id":"key:String|Nil-instance-method","name":"key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L218"},"def":{"name":"key","return_type":"String | ::Nil","visibility":"Public","body":"@key"}},{"html_id":"key=(key:String|Nil)-instance-method","name":"key=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(key : String | Nil)","args_html":"(key : String | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L218"},"def":{"name":"key=","args":[{"name":"key","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@key = key"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L204"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L204"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"occupied:Bool|Nil-instance-method","name":"occupied","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L216"},"def":{"name":"occupied","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}},{"html_id":"occupied=(occupied:Bool|Nil)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"args_string":"(occupied : Bool | Nil)","args_html":"(occupied : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L216"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupiedtime:Int32|Nil-instance-method","name":"occupiedtime","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@occupiedtime"}},{"html_id":"occupiedtime=(occupiedtime:Int32|Nil)-instance-method","name":"occupiedtime=","abstract":false,"args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"args_string":"(occupiedtime : Int32 | Nil)","args_html":"(occupiedtime : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L221"},"def":{"name":"occupiedtime=","args":[{"name":"occupiedtime","external_name":"occupiedtime","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@occupiedtime = occupiedtime"}},{"html_id":"planid:Int32|Nil-instance-method","name":"planid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L215"},"def":{"name":"planid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@planid"}},{"html_id":"planid=(planid:Int32|Nil)-instance-method","name":"planid=","abstract":false,"args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"args_string":"(planid : Int32 | Nil)","args_html":"(planid : Int32 | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L215"},"def":{"name":"planid=","args":[{"name":"planid","external_name":"planid","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@planid = planid"}},{"html_id":"privacy:Bool|Nil-instance-method","name":"privacy","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L223"},"def":{"name":"privacy","return_type":"Bool | ::Nil","visibility":"Public","body":"@privacy"}},{"html_id":"privacy=(privacy:Bool|Nil)-instance-method","name":"privacy=","abstract":false,"args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"args_string":"(privacy : Bool | Nil)","args_html":"(privacy : Bool | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L223"},"def":{"name":"privacy=","args":[{"name":"privacy","external_name":"privacy","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@privacy = privacy"}},{"html_id":"start:Time|Nil-instance-method","name":"start","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L210"},"def":{"name":"start","return_type":"Time | ::Nil","visibility":"Public","body":"@start"}},{"html_id":"start=(start:Time|Nil)-instance-method","name":"start=","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"args_string":"(start : Time | Nil)","args_html":"(start : Time | Nil)","location":{"filename":"src/floorsense/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L210"},"def":{"name":"start=","args":[{"name":"start","external_name":"start","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@start = start"}},{"html_id":"uid:String-instance-method","name":"uid","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L205"},"def":{"name":"uid","return_type":"String","visibility":"Public","body":"@uid"}},{"html_id":"uid=(uid:String)-instance-method","name":"uid=","abstract":false,"args":[{"name":"uid","external_name":"uid","restriction":"String"}],"args_string":"(uid : String)","args_html":"(uid : String)","location":{"filename":"src/floorsense/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L205"},"def":{"name":"uid=","args":[{"name":"uid","external_name":"uid","restriction":"String"}],"visibility":"Public","body":"@uid = uid"}}]},{"html_id":"drivers/Floorsense/Voucher","path":"Floorsense/Voucher.html","kind":"class","full_name":"Floorsense::Voucher","name":"Voucher","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/floorsense/models.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L429"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Floorsense","kind":"module","full_name":"Floorsense","name":"Floorsense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/floorsense/models.cr","line_number":430,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L430"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardswipe:Bool-instance-method","name":"cardswipe","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe","return_type":"Bool","visibility":"Public","body":"@cardswipe"}},{"html_id":"cardswipe=(cardswipe:Bool)-instance-method","name":"cardswipe=","abstract":false,"args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"args_string":"(cardswipe : Bool)","args_html":"(cardswipe : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":463,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L463"},"def":{"name":"cardswipe=","args":[{"name":"cardswipe","external_name":"cardswipe","restriction":"Bool"}],"visibility":"Public","body":"@cardswipe = cardswipe"}},{"html_id":"controller_id:String-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L442"},"def":{"name":"controller_id","return_type":"String","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_id=(controller_id:String)-instance-method","name":"controller_id=","abstract":false,"args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"args_string":"(controller_id : String)","args_html":"(controller_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L442"},"def":{"name":"controller_id=","args":[{"name":"controller_id","external_name":"controller_id","restriction":"String"}],"visibility":"Public","body":"@controller_id = controller_id"}},{"html_id":"created:Int64-instance-method","name":"created","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L448"},"def":{"name":"created","return_type":"Int64","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64"}],"args_string":"(created : Int64)","args_html":"(created : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L448"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64"}],"visibility":"Public","body":"@created = created"}},{"html_id":"duration:Int64-instance-method","name":"duration","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L450"},"def":{"name":"duration","return_type":"Int64","visibility":"Public","body":"@duration"}},{"html_id":"duration=(duration:Int64)-instance-method","name":"duration=","abstract":false,"args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"args_string":"(duration : Int64)","args_html":"(duration : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":450,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L450"},"def":{"name":"duration=","args":[{"name":"duration","external_name":"duration","restriction":"Int64"}],"visibility":"Public","body":"@duration = duration"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L433"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/floorsense/models.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L433"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"expired:Int64-instance-method","name":"expired","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L451"},"def":{"name":"expired","return_type":"Int64","visibility":"Public","body":"@expired"}},{"html_id":"expired=(expired:Int64)-instance-method","name":"expired=","abstract":false,"args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"args_string":"(expired : Int64)","args_html":"(expired : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":451,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L451"},"def":{"name":"expired=","args":[{"name":"expired","external_name":"expired","restriction":"Int64"}],"visibility":"Public","body":"@expired = expired"}},{"html_id":"lastuse:Int64-instance-method","name":"lastuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L432"},"def":{"name":"lastuse","return_type":"Int64","visibility":"Public","body":"@lastuse"}},{"html_id":"lastuse=(lastuse:Int64)-instance-method","name":"lastuse=","abstract":false,"args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"args_string":"(lastuse : Int64)","args_html":"(lastuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":432,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L432"},"def":{"name":"lastuse=","args":[{"name":"lastuse","external_name":"lastuse","restriction":"Int64"}],"visibility":"Public","body":"@lastuse = lastuse"}},{"html_id":"locker_key:String-instance-method","name":"locker_key","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L439"},"def":{"name":"locker_key","return_type":"String","visibility":"Public","body":"@locker_key"}},{"html_id":"locker_key=(locker_key:String)-instance-method","name":"locker_key=","abstract":false,"args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"args_string":"(locker_key : String)","args_html":"(locker_key : String)","location":{"filename":"src/floorsense/models.cr","line_number":439,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L439"},"def":{"name":"locker_key=","args":[{"name":"locker_key","external_name":"locker_key","restriction":"String"}],"visibility":"Public","body":"@locker_key = locker_key"}},{"html_id":"maxuse:Int64-instance-method","name":"maxuse","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L453"},"def":{"name":"maxuse","return_type":"Int64","visibility":"Public","body":"@maxuse"}},{"html_id":"maxuse=(maxuse:Int64)-instance-method","name":"maxuse=","abstract":false,"args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"args_string":"(maxuse : Int64)","args_html":"(maxuse : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":453,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L453"},"def":{"name":"maxuse=","args":[{"name":"maxuse","external_name":"maxuse","restriction":"Int64"}],"visibility":"Public","body":"@maxuse = maxuse"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L461"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/floorsense/models.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L461"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L462"},"def":{"name":"notes","return_type":"String","visibility":"Public","body":"@notes"}},{"html_id":"notes=(notes:String)-instance-method","name":"notes=","abstract":false,"args":[{"name":"notes","external_name":"notes","restriction":"String"}],"args_string":"(notes : String)","args_html":"(notes : String)","location":{"filename":"src/floorsense/models.cr","line_number":462,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L462"},"def":{"name":"notes=","args":[{"name":"notes","external_name":"notes","restriction":"String"}],"visibility":"Public","body":"@notes = notes"}},{"html_id":"notified:Int64-instance-method","name":"notified","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L455"},"def":{"name":"notified","return_type":"Int64","visibility":"Public","body":"@notified"}},{"html_id":"notified=(notified:Int64)-instance-method","name":"notified=","abstract":false,"args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"args_string":"(notified : Int64)","args_html":"(notified : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":455,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L455"},"def":{"name":"notified=","args":[{"name":"notified","external_name":"notified","restriction":"Int64"}],"visibility":"Public","body":"@notified = notified"}},{"html_id":"pin:String-instance-method","name":"pin","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L447"},"def":{"name":"pin","return_type":"String","visibility":"Public","body":"@pin"}},{"html_id":"pin=(pin:String)-instance-method","name":"pin=","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/floorsense/models.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L447"},"def":{"name":"pin=","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"@pin = pin"}},{"html_id":"release:Bool-instance-method","name":"release","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L449"},"def":{"name":"release","return_type":"Bool","visibility":"Public","body":"@release"}},{"html_id":"release=(release:Bool)-instance-method","name":"release=","abstract":false,"args":[{"name":"release","external_name":"release","restriction":"Bool"}],"args_string":"(release : Bool)","args_html":"(release : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":449,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L449"},"def":{"name":"release=","args":[{"name":"release","external_name":"release","restriction":"Bool"}],"visibility":"Public","body":"@release = release"}},{"html_id":"reservation_id:String-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id","return_type":"String","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:String)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"args_string":"(reservation_id : String)","args_html":"(reservation_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":445,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L445"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"String"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"restype:String-instance-method","name":"restype","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L454"},"def":{"name":"restype","return_type":"String","visibility":"Public","body":"@restype"}},{"html_id":"restype=(restype:String)-instance-method","name":"restype=","abstract":false,"args":[{"name":"restype","external_name":"restype","restriction":"String"}],"args_string":"(restype : String)","args_html":"(restype : String)","location":{"filename":"src/floorsense/models.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L454"},"def":{"name":"restype=","args":[{"name":"restype","external_name":"restype","restriction":"String"}],"visibility":"Public","body":"@restype = restype"}},{"html_id":"template:String-instance-method","name":"template","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L460"},"def":{"name":"template","return_type":"String","visibility":"Public","body":"@template"}},{"html_id":"template=(template:String)-instance-method","name":"template=","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"}],"args_string":"(template : String)","args_html":"(template : String)","location":{"filename":"src/floorsense/models.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L460"},"def":{"name":"template=","args":[{"name":"template","external_name":"template","restriction":"String"}],"visibility":"Public","body":"@template = template"}},{"html_id":"unlock:Bool-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L459"},"def":{"name":"unlock","return_type":"Bool","visibility":"Public","body":"@unlock"}},{"html_id":"unlock=(unlock:Bool)-instance-method","name":"unlock=","abstract":false,"args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"args_string":"(unlock : Bool)","args_html":"(unlock : Bool)","location":{"filename":"src/floorsense/models.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L459"},"def":{"name":"unlock=","args":[{"name":"unlock","external_name":"unlock","restriction":"Bool"}],"visibility":"Public","body":"@unlock = unlock"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L467"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/floorsense/models.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L467"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}},{"html_id":"usecount:Int64-instance-method","name":"usecount","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L452"},"def":{"name":"usecount","return_type":"Int64","visibility":"Public","body":"@usecount"}},{"html_id":"usecount=(usecount:Int64)-instance-method","name":"usecount=","abstract":false,"args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"args_string":"(usecount : Int64)","args_html":"(usecount : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L452"},"def":{"name":"usecount=","args":[{"name":"usecount","external_name":"usecount","restriction":"Int64"}],"visibility":"Public","body":"@usecount = usecount"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L466"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L466"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"validfrom:Int64-instance-method","name":"validfrom","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L456"},"def":{"name":"validfrom","return_type":"Int64","visibility":"Public","body":"@validfrom"}},{"html_id":"validfrom=(validfrom:Int64)-instance-method","name":"validfrom=","abstract":false,"args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"args_string":"(validfrom : Int64)","args_html":"(validfrom : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L456"},"def":{"name":"validfrom=","args":[{"name":"validfrom","external_name":"validfrom","restriction":"Int64"}],"visibility":"Public","body":"@validfrom = validfrom"}},{"html_id":"validto:Int64-instance-method","name":"validto","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L457"},"def":{"name":"validto","return_type":"Int64","visibility":"Public","body":"@validto"}},{"html_id":"validto=(validto:Int64)-instance-method","name":"validto=","abstract":false,"args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"args_string":"(validto : Int64)","args_html":"(validto : Int64)","location":{"filename":"src/floorsense/models.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L457"},"def":{"name":"validto=","args":[{"name":"validto","external_name":"validto","restriction":"Int64"}],"visibility":"Public","body":"@validto = validto"}},{"html_id":"voucher_id:String-instance-method","name":"voucher_id","abstract":false,"location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id","return_type":"String","visibility":"Public","body":"@voucher_id"}},{"html_id":"voucher_id=(voucher_id:String)-instance-method","name":"voucher_id=","abstract":false,"args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"args_string":"(voucher_id : String)","args_html":"(voucher_id : String)","location":{"filename":"src/floorsense/models.cr","line_number":436,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/floorsense/models.cr#L436"},"def":{"name":"voucher_id=","args":[{"name":"voucher_id","external_name":"voucher_id","restriction":"String"}],"visibility":"Public","body":"@voucher_id = voucher_id"}}]}]},{"html_id":"drivers/Freespace","path":"Freespace.html","kind":"module","full_name":"Freespace","name":"Freespace","abstract":false,"locations":[{"filename":"src/freespace/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Freespace/Category","path":"Freespace/Category.html","kind":"class","full_name":"Freespace::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"color_scheme:String|Nil-instance-method","name":"color_scheme","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L75"},"def":{"name":"color_scheme","return_type":"String | ::Nil","visibility":"Public","body":"@color_scheme"}},{"html_id":"color_scheme=(color_scheme:String|Nil)-instance-method","name":"color_scheme=","doc":"RGB value i.e. #ffb3b3","summary":"

RGB value i.e.

","abstract":false,"args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"args_string":"(color_scheme : String | Nil)","args_html":"(color_scheme : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L75"},"def":{"name":"color_scheme=","args":[{"name":"color_scheme","external_name":"color_scheme","restriction":"String | ::Nil"}],"visibility":"Public","body":"@color_scheme = color_scheme"}},{"html_id":"icon_url:String|Nil-instance-method","name":"icon_url","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L71"},"def":{"name":"icon_url","return_type":"String | ::Nil","visibility":"Public","body":"@icon_url"}},{"html_id":"icon_url=(icon_url:String|Nil)-instance-method","name":"icon_url=","abstract":false,"args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"args_string":"(icon_url : String | Nil)","args_html":"(icon_url : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L71"},"def":{"name":"icon_url=","args":[{"name":"icon_url","external_name":"icon_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@icon_url = icon_url"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L58"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L58"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L59"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L59"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"ordering_index:Int32|Nil-instance-method","name":"ordering_index","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L78"},"def":{"name":"ordering_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@ordering_index"}},{"html_id":"ordering_index=(ordering_index:Int32|Nil)-instance-method","name":"ordering_index=","abstract":false,"args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"args_string":"(ordering_index : Int32 | Nil)","args_html":"(ordering_index : Int32 | Nil)","location":{"filename":"src/freespace/models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L78"},"def":{"name":"ordering_index=","args":[{"name":"ordering_index","external_name":"ordering_index","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@ordering_index = ordering_index"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L62"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L62"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"show_in_analytics:Bool-instance-method","name":"show_in_analytics","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics","return_type":"Bool","visibility":"Public","body":"@show_in_analytics"}},{"html_id":"show_in_analytics=(show_in_analytics:Bool)-instance-method","name":"show_in_analytics=","abstract":false,"args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"args_string":"(show_in_analytics : Bool)","args_html":"(show_in_analytics : Bool)","location":{"filename":"src/freespace/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L68"},"def":{"name":"show_in_analytics=","args":[{"name":"show_in_analytics","external_name":"show_in_analytics","restriction":"Bool"}],"visibility":"Public","body":"@show_in_analytics = show_in_analytics"}},{"html_id":"show_on_signage:Bool-instance-method","name":"show_on_signage","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage","return_type":"Bool","visibility":"Public","body":"@show_on_signage"}},{"html_id":"show_on_signage=(show_on_signage:Bool)-instance-method","name":"show_on_signage=","abstract":false,"args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"args_string":"(show_on_signage : Bool)","args_html":"(show_on_signage : Bool)","location":{"filename":"src/freespace/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L65"},"def":{"name":"show_on_signage=","args":[{"name":"show_on_signage","external_name":"show_on_signage","restriction":"Bool"}],"visibility":"Public","body":"@show_on_signage = show_on_signage"}}]},{"html_id":"drivers/Freespace/Device","path":"Freespace/Device.html","kind":"class","full_name":"Freespace::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L84"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L84"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L87"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L87"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Freespace/Location","path":"Freespace/Location.html","kind":"class","full_name":"Freespace::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L37"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L37"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"policy:Bool-instance-method","name":"policy","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L44"},"def":{"name":"policy","return_type":"Bool","visibility":"Public","body":"@policy"}},{"html_id":"policy=(policy:Bool)-instance-method","name":"policy=","abstract":false,"args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"args_string":"(policy : Bool)","args_html":"(policy : Bool)","location":{"filename":"src/freespace/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L44"},"def":{"name":"policy=","args":[{"name":"policy","external_name":"policy","restriction":"Bool"}],"visibility":"Public","body":"@policy = policy"}},{"html_id":"raw:Bool-instance-method","name":"raw","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L43"},"def":{"name":"raw","return_type":"Bool","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:Bool)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"args_string":"(raw : Bool)","args_html":"(raw : Bool)","location":{"filename":"src/freespace/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L43"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"Bool"}],"visibility":"Public","body":"@raw = raw"}}]},{"html_id":"drivers/Freespace/SensorAPI","path":"Freespace/SensorAPI.html","kind":"class","full_name":"Freespace::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/sensor_api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/freespace/sensor_api.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L207"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"client:STOMP::Client-instance-method","name":"client","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L54"},"def":{"name":"client","return_type":"STOMP::Client","visibility":"Public","body":"if (__temp_1 = @client).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SensorAPI#client cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"client?:STOMP::Client|Nil-instance-method","name":"client?","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L54"},"def":{"name":"client?","return_type":"STOMP::Client | ::Nil","visibility":"Public","body":"@client"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L66"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nhostname = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\n@client = STOMP::Client.new(hostname)\nsend(client.stomp.to_s)\nschedule.clear\nschedule.in(5.seconds) do\n @auth_key = nil\nend\nschedule.every(10.seconds) do\n heart_beat\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L212"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif location && (location != \"desk\")\n return [] of Nil\nend\nloctions = @zone_mappings[zone_id]?\nif loctions\nelse\n return [] of Nil\nend\nloctions.flat_map do |loc_id|\n location_id = loc_id.to_i64\n loc_details = @floor_mappings[loc_id]\n @space_state.values.compact_map do |activity|\n if ((activity.location_id != location_id) || (activity.state == 0)) || activity.capacity > 1\n next\n end\n {location: activity.capacity == 1 ? \"desk\" : \"area\", at_location: activity.state, map_id: activity.name, level: loc_details[:level_id], building: loc_details[:building_id], capacity: activity.capacity}\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L79"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n@spaces.clear\n@auth_key = @client = nil\n"}},{"html_id":"get_location(location_id:String|Int64):Array(Space)-instance-method","name":"get_location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"args_string":"(location_id : String | Int64) : Array(Space)","args_html":"(location_id : String | Int64) : Array(Space)","location":{"filename":"src/freespace/sensor_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L113"},"def":{"name":"get_location","args":[{"name":"location_id","external_name":"location_id","restriction":"String | Int64"}],"return_type":"Array(Space)","visibility":"Public","body":"response = http(\"POST\", \"/api/locations/#{location_id}/spaces\", headers: {\"X-Auth-Key\" => get_token, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nif response.success?\nelse\n raise(\"issue obtaining to location #{location_id}: status code #{response.status_code}\\n#{response.body}\")\nend\nspaces = Array(Space).from_json(response.body)\nspaces.each do |space|\n @spaces[space.id] = space\nend\nspaces\n"}},{"html_id":"get_token:String-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L135"},"def":{"name":"get_token","return_type":"String","visibility":"Public","body":"auth_key = @auth_key\nif auth_key\n return auth_key\nend\nresponse = http(\"POST\", \"/login\", headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"login response: #{response.body}\"\nend\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nschedule.in(5.seconds) do\n @auth_key = nil\nend\n@auth_key = response.headers[\"X-Auth-Key\"]\n"}},{"html_id":"heart_beat-instance-method","name":"heart_beat","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L86"},"def":{"name":"heart_beat","visibility":"Public","body":"send((client.send(\"/beat/#{Time.utc.to_unix}\")).to_s, wait: false, priority: 0)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/freespace/sensor_api.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L197"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/freespace/sensor_api.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L202"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_mappings.clear\n@floor_mappings.each do |location_id, details|\n @zone_mappings[details[:level_id]] << location_id\n @zone_mappings[details[:building_id]] << location_id\nend\nif @connected\n disconnect\nend\n"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/freespace/sensor_api.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L157"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"frame = STOMP::Frame.new(bytes)\ncase frame.command\nwhen .connected?\n client.negotiate(frame)\n @floor_mappings.keys.each do |location_id|\n begin\n subscribe_location(location_id)\n rescue error\n logger.error(exception: error) do\n \"failed to subscribe to #{location_id}, skipping\"\n end\n end\n end\nwhen .message?\n activity = SpaceActivity.from_json(frame.body_text)\n if space = @spaces[activity.space_id]?\n activity.location_id = space.location_id\n activity.capacity = space.capacity\n activity.name = space.name\n @space_state[activity.space_id] = activity\n self[\"space-#{activity.space_id}\"] = {location: space.location_id, name: space.name, capacity: space.capacity, count: activity.state, last_updated: activity.utc_epoch}\n self[\"last_change\"] = Time.utc.to_unix\n else\n logger.warn do\n \"unknown space id: #{activity.space_id}\"\n end\n end\nend\ntask.try(&.success)\n"}},{"html_id":"spaces_details:Hash(Int64,Freespace::Space)-instance-method","name":"spaces_details","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L103"},"def":{"name":"spaces_details","visibility":"Public","body":"@spaces"}},{"html_id":"spaces_state:Hash(Int64,Freespace::SpaceActivity)-instance-method","name":"spaces_state","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L108"},"def":{"name":"spaces_state","visibility":"Public","body":"@space_state"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","doc":"We need an API key to connect to the websocket","summary":"

We need an API key to connect to the websocket

","abstract":false,"location":{"filename":"src/freespace/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/sensor_api.cr#L48"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"X-Auth-Key\" => get_token}"}}]},{"html_id":"drivers/Freespace/Space","path":"Freespace/Space.html","kind":"class","full_name":"Freespace::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L92"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L93"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L115"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L115"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:Category-instance-method","name":"category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L105"},"def":{"name":"category","return_type":"Category","visibility":"Public","body":"@category"}},{"html_id":"category=(category:Category)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"Category"}],"args_string":"(category : Category)","args_html":"(category : Category)","location":{"filename":"src/freespace/models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L105"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"Category"}],"visibility":"Public","body":"@category = category"}},{"html_id":"counted:Bool-instance-method","name":"counted","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L124"},"def":{"name":"counted","return_type":"Bool","visibility":"Public","body":"@counted"}},{"html_id":"counted=(counted:Bool)-instance-method","name":"counted=","abstract":false,"args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"args_string":"(counted : Bool)","args_html":"(counted : Bool)","location":{"filename":"src/freespace/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L124"},"def":{"name":"counted=","args":[{"name":"counted","external_name":"counted","restriction":"Bool"}],"visibility":"Public","body":"@counted = counted"}},{"html_id":"department:Category-instance-method","name":"department","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L106"},"def":{"name":"department","return_type":"Category","visibility":"Public","body":"@department"}},{"html_id":"department=(department:Category)-instance-method","name":"department=","abstract":false,"args":[{"name":"department","external_name":"department","restriction":"Category"}],"args_string":"(department : Category)","args_html":"(department : Category)","location":{"filename":"src/freespace/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L106"},"def":{"name":"department=","args":[{"name":"department","external_name":"department","restriction":"Category"}],"visibility":"Public","body":"@department = department"}},{"html_id":"device:Device-instance-method","name":"device","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L110"},"def":{"name":"device","return_type":"Device","visibility":"Public","body":"@device"}},{"html_id":"device=(device:Device)-instance-method","name":"device=","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Device"}],"args_string":"(device : Device)","args_html":"(device : Device)","location":{"filename":"src/freespace/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L110"},"def":{"name":"device=","args":[{"name":"device","external_name":"device","restriction":"Device"}],"visibility":"Public","body":"@device = device"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L95"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"live:Bool-instance-method","name":"live","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L114"},"def":{"name":"live","return_type":"Bool","visibility":"Public","body":"@live"}},{"html_id":"live=(live:Bool)-instance-method","name":"live=","abstract":false,"args":[{"name":"live","external_name":"live","restriction":"Bool"}],"args_string":"(live : Bool)","args_html":"(live : Bool)","location":{"filename":"src/freespace/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L114"},"def":{"name":"live=","args":[{"name":"live","external_name":"live","restriction":"Bool"}],"visibility":"Public","body":"@live = live"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L96"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/freespace/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L96"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L123"},"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L123"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"marker:Hash(String,JSON::Any)-instance-method","name":"marker","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L101"},"def":{"name":"marker","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@marker"}},{"html_id":"marker=(marker:Hash(String,JSON::Any))-instance-method","name":"marker=","doc":"undocumented, possibly polymorphic: {\"type\" => \"CIRCLE\", \"data\" => \"20\"},","summary":"

undocumented, possibly polymorphic: {"type" => "CIRCLE", "data" => "20"},

","abstract":false,"args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"args_string":"(marker : Hash(String, JSON::Any))","args_html":"(marker : Hash(String, JSON::Any))","location":{"filename":"src/freespace/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L101"},"def":{"name":"marker=","args":[{"name":"marker","external_name":"marker","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@marker = marker"}},{"html_id":"marker_unique_id:String|Nil-instance-method","name":"marker_unique_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id","return_type":"String | ::Nil","visibility":"Public","body":"@marker_unique_id"}},{"html_id":"marker_unique_id=(marker_unique_id:String|Nil)-instance-method","name":"marker_unique_id=","abstract":false,"args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"args_string":"(marker_unique_id : String | Nil)","args_html":"(marker_unique_id : String | Nil)","location":{"filename":"src/freespace/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L113"},"def":{"name":"marker_unique_id=","args":[{"name":"marker_unique_id","external_name":"marker_unique_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@marker_unique_id = marker_unique_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L97"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L97"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"sensing_policy_id:Int32-instance-method","name":"sensing_policy_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id","return_type":"Int32","visibility":"Public","body":"@sensing_policy_id"}},{"html_id":"sensing_policy_id=(sensing_policy_id:Int32)-instance-method","name":"sensing_policy_id=","abstract":false,"args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"args_string":"(sensing_policy_id : Int32)","args_html":"(sensing_policy_id : Int32)","location":{"filename":"src/freespace/models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L109"},"def":{"name":"sensing_policy_id=","args":[{"name":"sensing_policy_id","external_name":"sensing_policy_id","restriction":"Int32"}],"visibility":"Public","body":"@sensing_policy_id = sensing_policy_id"}},{"html_id":"serial:Int32-instance-method","name":"serial","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L120"},"def":{"name":"serial","return_type":"Int32","visibility":"Public","body":"@serial"}},{"html_id":"serial=(serial:Int32)-instance-method","name":"serial=","abstract":false,"args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"args_string":"(serial : Int32)","args_html":"(serial : Int32)","location":{"filename":"src/freespace/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L120"},"def":{"name":"serial=","args":[{"name":"serial","external_name":"serial","restriction":"Int32"}],"visibility":"Public","body":"@serial = serial"}},{"html_id":"srf:SRF-instance-method","name":"srf","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L98"},"def":{"name":"srf","return_type":"SRF","visibility":"Public","body":"@srf"}},{"html_id":"srf=(srf:SRF)-instance-method","name":"srf=","abstract":false,"args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"args_string":"(srf : SRF)","args_html":"(srf : SRF)","location":{"filename":"src/freespace/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L98"},"def":{"name":"srf=","args":[{"name":"srf","external_name":"srf","restriction":"SRF"}],"visibility":"Public","body":"@srf = srf"}},{"html_id":"sub_category:Category-instance-method","name":"sub_category","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L104"},"def":{"name":"sub_category","return_type":"Category","visibility":"Public","body":"@sub_category"}},{"html_id":"sub_category=(sub_category:Category)-instance-method","name":"sub_category=","abstract":false,"args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"args_string":"(sub_category : Category)","args_html":"(sub_category : Category)","location":{"filename":"src/freespace/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L104"},"def":{"name":"sub_category=","args":[{"name":"sub_category","external_name":"sub_category","restriction":"Category"}],"visibility":"Public","body":"@sub_category = sub_category"}}]},{"html_id":"drivers/Freespace/SpaceActivity","path":"Freespace/SpaceActivity.html","kind":"class","full_name":"Freespace::SpaceActivity","name":"SpaceActivity","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @capacity).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#capacity cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/freespace/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L24"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"capacity?:Int32|Nil-instance-method","name":"capacity?","abstract":false,"def":{"name":"capacity?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L7"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L7"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location_id:Int64-instance-method","name":"location_id","abstract":false,"def":{"name":"location_id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @location_id).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#location_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"location_id=(location_id:Int64)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"args_string":"(location_id : Int64)","args_html":"(location_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L21"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"Int64"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_id?:Int64|Nil-instance-method","name":"location_id?","abstract":false,"def":{"name":"location_id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"Freespace::SpaceActivity#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/freespace/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L27"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"presence?-instance-method","name":"presence?","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L16"},"def":{"name":"presence?","visibility":"Public","body":"@state > 0"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/freespace/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"state:Int32-instance-method","name":"state","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L14"},"def":{"name":"state","return_type":"Int32","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int32)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int32"}],"args_string":"(state : Int32)","args_html":"(state : Int32)","location":{"filename":"src/freespace/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L14"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int32"}],"visibility":"Public","body":"@state = state"}},{"html_id":"utc_epoch:Int64-instance-method","name":"utc_epoch","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch","return_type":"Int64","visibility":"Public","body":"@utc_epoch"}},{"html_id":"utc_epoch=(utc_epoch:Int64)-instance-method","name":"utc_epoch=","abstract":false,"args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"args_string":"(utc_epoch : Int64)","args_html":"(utc_epoch : Int64)","location":{"filename":"src/freespace/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L13"},"def":{"name":"utc_epoch=","args":[{"name":"utc_epoch","external_name":"utc_epoch","restriction":"Int64"}],"visibility":"Public","body":"@utc_epoch = utc_epoch"}}]},{"html_id":"drivers/Freespace/SRF","path":"Freespace/SRF.html","kind":"class","full_name":"Freespace::SRF","name":"SRF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/freespace/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Freespace","kind":"module","full_name":"Freespace","name":"Freespace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/freespace/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"x:Int32-instance-method","name":"x","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L50"},"def":{"name":"x","return_type":"Int32","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Int32)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"}],"args_string":"(x : Int32)","args_html":"(x : Int32)","location":{"filename":"src/freespace/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L50"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Int32"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Int32-instance-method","name":"y","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L51"},"def":{"name":"y","return_type":"Int32","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Int32)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(y : Int32)","args_html":"(y : Int32)","location":{"filename":"src/freespace/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L51"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"@y = y"}},{"html_id":"z:Int32-instance-method","name":"z","abstract":false,"location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L52"},"def":{"name":"z","return_type":"Int32","visibility":"Public","body":"@z"}},{"html_id":"z=(z:Int32)-instance-method","name":"z=","abstract":false,"args":[{"name":"z","external_name":"z","restriction":"Int32"}],"args_string":"(z : Int32)","args_html":"(z : Int32)","location":{"filename":"src/freespace/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/freespace/models.cr#L52"},"def":{"name":"z=","args":[{"name":"z","external_name":"z","restriction":"Int32"}],"visibility":"Public","body":"@z = z"}}]}]},{"html_id":"drivers/Gallagher","path":"Gallagher.html","kind":"module","full_name":"Gallagher","name":"Gallagher","abstract":false,"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Gallagher/AccessGroup","path":"Gallagher/AccessGroup.html","kind":"class","full_name":"Gallagher::AccessGroup","name":"AccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L185"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L186"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholders:NamedTuple(href:String)-instance-method","name":"cardholders","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@cardholders"}},{"html_id":"cardholders=(cardholders:NamedTuple(href:String))-instance-method","name":"cardholders=","abstract":false,"args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"args_string":"(cardholders : NamedTuple(href: String))","args_html":"(cardholders : NamedTuple(href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L203"},"def":{"name":"cardholders=","args":[{"name":"cardholders","external_name":"cardholders","restriction":"NamedTuple(href: String)"}],"visibility":"Public","body":"@cardholders = cardholders"}},{"html_id":"children:Array(NamedTuple(href:String,name:String))|Nil-instance-method","name":"children","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children","return_type":"Array(NamedTuple(href: String, name: String)) | ::Nil","visibility":"Public","body":"@children"}},{"html_id":"children=(children:Array(NamedTuple(href:String,name:String))|Nil)-instance-method","name":"children=","abstract":false,"args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"args_string":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","args_html":"(children : Array(NamedTuple(href: String, name: String)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L207"},"def":{"name":"children=","args":[{"name":"children","external_name":"children","restriction":"Array(NamedTuple(href: String, name: String)) | ::Nil"}],"visibility":"Public","body":"@children = children"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L191"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(id:String,href:String)-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division","return_type":"NamedTuple(id: String, href: String)","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(id:String,href:String))-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"args_string":"(division : NamedTuple(id: String, href: String))","args_html":"(division : NamedTuple(id: String, href: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L198"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(id: String, href: String)"}],"visibility":"Public","body":"@division = division"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L188"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L189"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L190"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent:NamedTuple(href:String|Nil,name:String)|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent","return_type":"NamedTuple(href: String | ::Nil, name: String) | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:NamedTuple(href:String|Nil,name:String)|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"args_string":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","args_html":"(parent : NamedTuple(href: String | Nil, name: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L193"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"NamedTuple(href: String | ::Nil, name: String) | ::Nil"}],"visibility":"Public","body":"@parent = parent"}}]},{"html_id":"drivers/Gallagher/AccessGroupMembership","path":"Gallagher/AccessGroupMembership.html","kind":"class","full_name":"Gallagher::AccessGroupMembership","name":"AccessGroupMembership","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L213"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L214"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cardholder:NamedTuple(href:String,name:String)-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder","return_type":"NamedTuple(href: String, name: String)","visibility":"Public","body":"@cardholder"}},{"html_id":"cardholder=(cardholder:NamedTuple(href:String,name:String))-instance-method","name":"cardholder=","abstract":false,"args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"args_string":"(cardholder : NamedTuple(href: String, name: String))","args_html":"(cardholder : NamedTuple(href: String, name: String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L217"},"def":{"name":"cardholder=","args":[{"name":"cardholder","external_name":"cardholder","restriction":"NamedTuple(href: String, name: String)"}],"visibility":"Public","body":"@cardholder = cardholder"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L221"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L216"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L222"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Card","path":"Gallagher/Card.html","kind":"struct","full_name":"Gallagher::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(href:Nil|String,status:NamedTuple(value:String,type:Nil|String)|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"args_string":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","args_html":"(href : Nil | String, status : NamedTuple(value: String, type: Nil | String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L133"},"def":{"name":"new","args":[{"name":"href","external_name":"href","restriction":"::Nil | ::String"},{"name":"status","external_name":"status","restriction":"::NamedTuple(value: ::String, type: ::Nil | ::String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(href, status)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ble_facility_id:Int64|Nil-instance-method","name":"ble_facility_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ble_facility_id"}},{"html_id":"ble_facility_id=(ble_facility_id:Int64|Nil)-instance-method","name":"ble_facility_id=","abstract":false,"args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"args_string":"(ble_facility_id : Int64 | Nil)","args_html":"(ble_facility_id : Int64 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L157"},"def":{"name":"ble_facility_id=","args":[{"name":"ble_facility_id","external_name":"ble_facility_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ble_facility_id = ble_facility_id"}},{"html_id":"card_serial_number:String|Nil-instance-method","name":"card_serial_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"card_serial_number=(card_serial_number:String|Nil)-instance-method","name":"card_serial_number=","abstract":false,"args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"args_string":"(card_serial_number : String | Nil)","args_html":"(card_serial_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L145"},"def":{"name":"card_serial_number=","args":[{"name":"card_serial_number","external_name":"card_serial_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@card_serial_number = card_serial_number"}},{"html_id":"credential_class:String|Nil-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class","return_type":"String | ::Nil","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String|Nil)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"args_string":"(credential_class : String | Nil)","args_html":"(credential_class : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L151"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"credential_id:String|Nil-instance-method","name":"credential_id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id","return_type":"String | ::Nil","visibility":"Public","body":"@credential_id"}},{"html_id":"credential_id=(credential_id:String|Nil)-instance-method","name":"credential_id=","abstract":false,"args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"args_string":"(credential_id : String | Nil)","args_html":"(credential_id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L160"},"def":{"name":"credential_id=","args":[{"name":"credential_id","external_name":"credential_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@credential_id = credential_id"}},{"html_id":"e2e_key:String|Nil-instance-method","name":"e2e_key","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key","return_type":"String | ::Nil","visibility":"Public","body":"@e2e_key"}},{"html_id":"e2e_key=(e2e_key:String|Nil)-instance-method","name":"e2e_key=","abstract":false,"args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"args_string":"(e2e_key : String | Nil)","args_html":"(e2e_key : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L154"},"def":{"name":"e2e_key=","args":[{"name":"e2e_key","external_name":"e2e_key","restriction":"String | ::Nil"}],"visibility":"Public","body":"@e2e_key = e2e_key"}},{"html_id":"facility_code:String|Nil-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code","return_type":"String | ::Nil","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String|Nil)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"args_string":"(facility_code : String | Nil)","args_html":"(facility_code : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L142"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L164"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L136"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"invitation:Invitation|Nil-instance-method","name":"invitation","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation","return_type":"Invitation | ::Nil","visibility":"Public","body":"@invitation"}},{"html_id":"invitation=(invitation:Invitation|Nil)-instance-method","name":"invitation=","abstract":false,"args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"args_string":"(invitation : Invitation | Nil)","args_html":"(invitation : Invitation | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L162"},"def":{"name":"invitation=","args":[{"name":"invitation","external_name":"invitation","restriction":"Invitation | ::Nil"}],"visibility":"Public","body":"@invitation = invitation"}},{"html_id":"issue_level:Int32|Nil-instance-method","name":"issue_level","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_level"}},{"html_id":"issue_level=(issue_level:Int32|Nil)-instance-method","name":"issue_level=","abstract":false,"args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"args_string":"(issue_level : Int32 | Nil)","args_html":"(issue_level : Int32 | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L148"},"def":{"name":"issue_level=","args":[{"name":"issue_level","external_name":"issue_level","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@issue_level = issue_level"}},{"html_id":"number:String|Nil-instance-method","name":"number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number","return_type":"String | ::Nil","visibility":"Public","body":"@number"}},{"html_id":"number=(number:String|Nil)-instance-method","name":"number=","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(number : String | Nil)","args_html":"(number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L138"},"def":{"name":"number=","args":[{"name":"number","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@number = number"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L139"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"type:NamedTuple(href:String|Nil,name:String|Nil)|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:NamedTuple(href:String|Nil,name:String|Nil)|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"args_string":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","args_html":"(type : NamedTuple(href: String | Nil, name: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L137"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L165"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/Cardholder","path":"Gallagher/Cardholder.html","kind":"class","full_name":"Gallagher::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(first_name:Nil|String,last_name:Nil|String,short_name:Nil|String,description:Nil|String,authorised:Bool|Nil,cards:Array(Gallagher::Card)|Hash(String,Array(Gallagher::Card))|Nil,access_groups:Array(Gallagher::CardholderAccessGroup)|Hash(String,Array(Gallagher::CardholderAccessGroup))|Nil,division:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"args_string":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","args_html":"(first_name : Nil | String, last_name : Nil | String, short_name : Nil | String, description : Nil | String, authorised : Bool | Nil, cards : Array(Gallagher::Card) | Hash(String, Array(Gallagher::Card)) | Nil, access_groups : Array(Gallagher::CardholderAccessGroup) | Hash(String, Array(Gallagher::CardholderAccessGroup)) | Nil, division : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"first_name","external_name":"first_name","restriction":"::Nil | ::String"},{"name":"last_name","external_name":"last_name","restriction":"::Nil | ::String"},{"name":"short_name","external_name":"short_name","restriction":"::Nil | ::String"},{"name":"description","external_name":"description","restriction":"::Nil | ::String"},{"name":"authorised","external_name":"authorised","restriction":"::Bool | ::Nil"},{"name":"cards","external_name":"cards","restriction":"::Array(::Gallagher::Card) | ::Hash(::String, ::Array(::Gallagher::Card)) | ::Nil"},{"name":"access_groups","external_name":"access_groups","restriction":"::Array(::Gallagher::CardholderAccessGroup) | ::Hash(::String, ::Array(::Gallagher::CardholderAccessGroup)) | ::Nil"},{"name":"division","external_name":"division","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(first_name, last_name, short_name, description, authorised, cards, access_groups, division)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil-instance-method","name":"access_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups","return_type":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil","visibility":"Public","body":"@access_groups"}},{"html_id":"access_groups=(access_groups:Array(CardholderAccessGroup)|Hash(String,Array(CardholderAccessGroup))|Nil)-instance-method","name":"access_groups=","abstract":false,"args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"args_string":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","args_html":"(access_groups : Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L88"},"def":{"name":"access_groups=","args":[{"name":"access_groups","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | Hash(String, Array(CardholderAccessGroup)) | ::Nil"}],"visibility":"Public","body":"@access_groups = access_groups"}},{"html_id":"authorised:Bool|Nil-instance-method","name":"authorised","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised","return_type":"Bool | ::Nil","visibility":"Public","body":"@authorised"}},{"html_id":"authorised=(authorised:Bool|Nil)-instance-method","name":"authorised=","abstract":false,"args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"args_string":"(authorised : Bool | Nil)","args_html":"(authorised : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L77"},"def":{"name":"authorised=","args":[{"name":"authorised","external_name":"authorised","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@authorised = authorised"}},{"html_id":"cards:Array(Card)|Hash(String,Array(Card))|Nil-instance-method","name":"cards","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards","return_type":"Array(Card) | Hash(String, Array(Card)) | ::Nil","visibility":"Public","body":"@cards"}},{"html_id":"cards=(cards:Array(Card)|Hash(String,Array(Card))|Nil)-instance-method","name":"cards=","abstract":false,"args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"args_string":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","args_html":"(cards : Array(Card) | Hash(String, Array(Card)) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L85"},"def":{"name":"cards=","args":[{"name":"cards","external_name":"cards","restriction":"Array(Card) | Hash(String, Array(Card)) | ::Nil"}],"visibility":"Public","body":"@cards = cards"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L76"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"division:NamedTuple(href:String)|Nil-instance-method","name":"division","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@division"}},{"html_id":"division=(division:NamedTuple(href:String)|Nil)-instance-method","name":"division=","abstract":false,"args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(division : NamedTuple(href: String) | Nil)","args_html":"(division : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L82"},"def":{"name":"division=","args":[{"name":"division","external_name":"division","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@division = division"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L69"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L65"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil)","args_html":"(id : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L66"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_accessed:Time|Nil-instance-method","name":"last_accessed","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed","return_type":"Time | ::Nil","visibility":"Public","body":"@last_accessed"}},{"html_id":"last_accessed=(last_accessed:Time|Nil)-instance-method","name":"last_accessed=","abstract":false,"args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"args_string":"(last_accessed : Time | Nil)","args_html":"(last_accessed : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L80"},"def":{"name":"last_accessed=","args":[{"name":"last_accessed","external_name":"last_accessed","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@last_accessed = last_accessed"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"last_name=(last_name:String|Nil)-instance-method","name":"last_name=","abstract":false,"args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"args_string":"(last_name : String | Nil)","args_html":"(last_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L72"},"def":{"name":"last_name=","args":[{"name":"last_name","external_name":"last_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_name = last_name"}},{"html_id":"short_name:String|Nil-instance-method","name":"short_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}},{"html_id":"short_name=(short_name:String|Nil)-instance-method","name":"short_name=","abstract":false,"args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"args_string":"(short_name : String | Nil)","args_html":"(short_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L75"},"def":{"name":"short_name=","args":[{"name":"short_name","external_name":"short_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@short_name = short_name"}},{"html_id":"usercode:String|Nil-instance-method","name":"usercode","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode","return_type":"String | ::Nil","visibility":"Public","body":"@usercode"}},{"html_id":"usercode=(usercode:String|Nil)-instance-method","name":"usercode=","abstract":false,"args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"args_string":"(usercode : String | Nil)","args_html":"(usercode : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L83"},"def":{"name":"usercode=","args":[{"name":"usercode","external_name":"usercode","restriction":"String | ::Nil"}],"visibility":"Public","body":"@usercode = usercode"}}]},{"html_id":"drivers/Gallagher/CardholderAccessGroup","path":"Gallagher/CardholderAccessGroup.html","kind":"class","full_name":"Gallagher::CardholderAccessGroup","name":"CardholderAccessGroup","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(access_group:NamedTuple(href:Nil|String,name:Nil|String),from:Time|Nil=nil,until__arg0:Time|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"args_string":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","args_html":"(access_group : NamedTuple(href: Nil | String, name: Nil | String), from : Time | Nil = nil, until __arg0 : Time | Nil = nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L181"},"def":{"name":"new","args":[{"name":"access_group","external_name":"access_group","restriction":"::NamedTuple(href: ::Nil | ::String, name: ::Nil | ::String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"::Time | ::Nil"},{"name":"__arg0","default_value":"nil","external_name":"until","restriction":"::Time | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(access_group, from, __arg0)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"access_group:NamedTuple(href:String|Nil,name:String|Nil)-instance-method","name":"access_group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group","return_type":"NamedTuple(href: String | ::Nil, name: String | ::Nil)","visibility":"Public","body":"@access_group"}},{"html_id":"access_group=(access_group:NamedTuple(href:String|Nil,name:String|Nil))-instance-method","name":"access_group=","abstract":false,"args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"args_string":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","args_html":"(access_group : NamedTuple(href: String | Nil, name: String | Nil))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L175"},"def":{"name":"access_group=","args":[{"name":"access_group","external_name":"access_group","restriction":"NamedTuple(href: String | ::Nil, name: String | ::Nil)"}],"visibility":"Public","body":"@access_group = access_group"}},{"html_id":"from:Time|Nil-instance-method","name":"from","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from","return_type":"Time | ::Nil","visibility":"Public","body":"@from"}},{"html_id":"from=(from:Time|Nil)-instance-method","name":"from=","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"args_string":"(from : Time | Nil)","args_html":"(from : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L178"},"def":{"name":"from=","args":[{"name":"from","external_name":"from","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@from = from"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L172"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"status:NamedTuple(value:String,type:String|Nil)|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status","return_type":"NamedTuple(value: String, type: String | ::Nil) | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:NamedTuple(value:String,type:String|Nil)|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"args_string":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","args_html":"(status : NamedTuple(value: String, type: String | Nil) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L177"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"NamedTuple(value: String, type: String | ::Nil) | ::Nil"}],"visibility":"Public","body":"@status = status"}},{"html_id":"until:Time|Nil-instance-method","name":"until","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until","return_type":"Time | ::Nil","visibility":"Public","body":"@until"}},{"html_id":"until=(until__arg0:Time|Nil)-instance-method","name":"until=","abstract":false,"args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"args_string":"(until __arg0 : Time | Nil)","args_html":"(until __arg0 : Time | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L179"},"def":{"name":"until=","args":[{"name":"__arg0","external_name":"until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@until = __arg0"}}]},{"html_id":"drivers/Gallagher/CardType","path":"Gallagher/CardType.html","kind":"class","full_name":"Gallagher::CardType","name":"CardType","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_card_states:Array(String)-instance-method","name":"available_card_states","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states","return_type":"Array(String)","visibility":"Public","body":"@available_card_states"}},{"html_id":"available_card_states=(available_card_states:Array(String))-instance-method","name":"available_card_states=","abstract":false,"args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"args_string":"(available_card_states : Array(String))","args_html":"(available_card_states : Array(String))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L103"},"def":{"name":"available_card_states=","args":[{"name":"available_card_states","external_name":"available_card_states","restriction":"Array(String)"}],"visibility":"Public","body":"@available_card_states = available_card_states"}},{"html_id":"credential_class:String-instance-method","name":"credential_class","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class","return_type":"String","visibility":"Public","body":"@credential_class"}},{"html_id":"credential_class=(credential_class:String)-instance-method","name":"credential_class=","abstract":false,"args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"args_string":"(credential_class : String)","args_html":"(credential_class : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L106"},"def":{"name":"credential_class=","args":[{"name":"credential_class","external_name":"credential_class","restriction":"String"}],"visibility":"Public","body":"@credential_class = credential_class"}},{"html_id":"facility_code:String-instance-method","name":"facility_code","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code","return_type":"String","visibility":"Public","body":"@facility_code"}},{"html_id":"facility_code=(facility_code:String)-instance-method","name":"facility_code=","abstract":false,"args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"args_string":"(facility_code : String)","args_html":"(facility_code : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L100"},"def":{"name":"facility_code=","args":[{"name":"facility_code","external_name":"facility_code","restriction":"String"}],"visibility":"Public","body":"@facility_code = facility_code"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L97"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L95"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"maximum_number:String|Nil-instance-method","name":"maximum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number","return_type":"String | ::Nil","visibility":"Public","body":"@maximum_number"}},{"html_id":"maximum_number=(maximum_number:String|Nil)-instance-method","name":"maximum_number=","abstract":false,"args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"args_string":"(maximum_number : String | Nil)","args_html":"(maximum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L112"},"def":{"name":"maximum_number=","args":[{"name":"maximum_number","external_name":"maximum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@maximum_number = maximum_number"}},{"html_id":"minimum_number:String|Nil-instance-method","name":"minimum_number","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number","return_type":"String | ::Nil","visibility":"Public","body":"@minimum_number"}},{"html_id":"minimum_number=(minimum_number:String|Nil)-instance-method","name":"minimum_number=","abstract":false,"args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"args_string":"(minimum_number : String | Nil)","args_html":"(minimum_number : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L109"},"def":{"name":"minimum_number=","args":[{"name":"minimum_number","external_name":"minimum_number","restriction":"String | ::Nil"}],"visibility":"Public","body":"@minimum_number = minimum_number"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L96"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/DoorDetails","path":"Gallagher/DoorDetails.html","kind":"class","full_name":"Gallagher::DoorDetails","name":"DoorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L38"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L36"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L43"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L41"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L42"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Gallagher/Event","path":"Gallagher/Event.html","kind":"struct","full_name":"Gallagher::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L232"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L233"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card:Card|Nil-instance-method","name":"card","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L243"},"def":{"name":"card","return_type":"Card | ::Nil","visibility":"Public","body":"@card"}},{"html_id":"cardholder:IdName|Nil-instance-method","name":"cardholder","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L244"},"def":{"name":"cardholder","return_type":"IdName | ::Nil","visibility":"Public","body":"@cardholder"}},{"html_id":"group:IdName-instance-method","name":"group","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L235"},"def":{"name":"group","return_type":"IdName","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L239"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"matching_type?(types:Array(Int32)|Nil)-instance-method","name":"matching_type?","abstract":false,"args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"args_string":"(types : Array(Int32) | Nil)","args_html":"(types : Array(Int32) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L246"},"def":{"name":"matching_type?","args":[{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"}],"visibility":"Public","body":"if types\nelse\n return true\nend\ntypes.map(&.to_s).includes?(type.id)\n"}},{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L241"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"source:IdName-instance-method","name":"source","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L237"},"def":{"name":"source","return_type":"IdName","visibility":"Public","body":"@source"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L240"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:IdName-instance-method","name":"type","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L236"},"def":{"name":"type","return_type":"IdName","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Gallagher/Events","path":"Gallagher/Events.html","kind":"struct","full_name":"Gallagher::Events","name":"Events","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L252"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L253"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(Event)-instance-method","name":"events","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L255"},"def":{"name":"events","return_type":"Array(Event)","visibility":"Public","body":"@events"}},{"html_id":"update_url-instance-method","name":"update_url","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L258"},"def":{"name":"update_url","visibility":"Public","body":"updates[:href]"}},{"html_id":"updates:NamedTuple(href:String)-instance-method","name":"updates","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L256"},"def":{"name":"updates","return_type":"NamedTuple(href: String)","visibility":"Public","body":"@updates"}}]},{"html_id":"drivers/Gallagher/IdName","path":"Gallagher/IdName.html","kind":"struct","full_name":"Gallagher::IdName","name":"IdName","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L226"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L229"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Gallagher/Invitation","path":"Gallagher/Invitation.html","kind":"class","full_name":"Gallagher::Invitation","name":"Invitation","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L116"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L119"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"href:String|Nil-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href","return_type":"String | ::Nil","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String|Nil)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(href : String | Nil)","args_html":"(href : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L126"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"@href = href"}},{"html_id":"mobile:String|Nil-instance-method","name":"mobile","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile","return_type":"String | ::Nil","visibility":"Public","body":"@mobile"}},{"html_id":"mobile=(mobile:String|Nil)-instance-method","name":"mobile=","abstract":false,"args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"args_string":"(mobile : String | Nil)","args_html":"(mobile : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L120"},"def":{"name":"mobile=","args":[{"name":"mobile","external_name":"mobile","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mobile = mobile"}},{"html_id":"single_factor_only:Bool|Nil-instance-method","name":"single_factor_only","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@single_factor_only"}},{"html_id":"single_factor_only=(single_factor_only:Bool|Nil)-instance-method","name":"single_factor_only=","abstract":false,"args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"args_string":"(single_factor_only : Bool | Nil)","args_html":"(single_factor_only : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L123"},"def":{"name":"single_factor_only=","args":[{"name":"single_factor_only","external_name":"single_factor_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@single_factor_only = single_factor_only"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String|Nil)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"args_string":"(status : String | Nil)","args_html":"(status : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L125"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String | ::Nil"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/Gallagher/PDF","path":"Gallagher/PDF.html","kind":"class","full_name":"Gallagher::PDF","name":"PDF","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"doc":"Personal Data Field","summary":"

Personal Data Field

","constructors":[{"html_id":"new(id:String,name:String,href:String)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"args_string":"(id : String, name : String, href : String)","args_html":"(id : String, name : String, href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"href","external_name":"href","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, href)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L16"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default:String|Nil-instance-method","name":"default","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default","return_type":"String | ::Nil","visibility":"Public","body":"@default"}},{"html_id":"default=(default:String|Nil)-instance-method","name":"default=","abstract":false,"args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"args_string":"(default : String | Nil)","args_html":"(default : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L31"},"def":{"name":"default=","args":[{"name":"default","external_name":"default","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default = default"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L32"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"href=(href:String)-instance-method","name":"href=","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L24"},"def":{"name":"href=","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"@href = href"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L23"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"required:Bool|Nil-instance-method","name":"required","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required","return_type":"Bool | ::Nil","visibility":"Public","body":"@required"}},{"html_id":"required=(required:Bool|Nil)-instance-method","name":"required=","abstract":false,"args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"args_string":"(required : Bool | Nil)","args_html":"(required : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L29"},"def":{"name":"required=","args":[{"name":"required","external_name":"required","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@required = required"}},{"html_id":"server_display_name:String|Nil-instance-method","name":"server_display_name","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name","return_type":"String | ::Nil","visibility":"Public","body":"@server_display_name"}},{"html_id":"server_display_name=(server_display_name:String|Nil)-instance-method","name":"server_display_name=","abstract":false,"args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"args_string":"(server_display_name : String | Nil)","args_html":"(server_display_name : String | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L27"},"def":{"name":"server_display_name=","args":[{"name":"server_display_name","external_name":"server_display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@server_display_name = server_display_name"}},{"html_id":"unique:Bool|Nil-instance-method","name":"unique","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique","return_type":"Bool | ::Nil","visibility":"Public","body":"@unique"}},{"html_id":"unique=(unique:Bool|Nil)-instance-method","name":"unique=","abstract":false,"args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"args_string":"(unique : Bool | Nil)","args_html":"(unique : Bool | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L30"},"def":{"name":"unique=","args":[{"name":"unique","external_name":"unique","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@unique = unique"}}]},{"html_id":"drivers/Gallagher/RestAPI","path":"Gallagher/RestAPI.html","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity","name":"ZoneAccessSecurity"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"access_group_member?(group_id:String|Int32,cardholder_id:String|Int32):String|Nil-instance-method","name":"access_group_member?","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : String | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L402"},"def":{"name":"access_group_member?","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"String | ::Nil","visibility":"Public","body":"group_id = group_id.to_s\ndetails = (get_cardholder(cardholder_id)).access_groups\naccess_groups = case details\nin Array(CardholderAccessGroup)\n details\nin Hash(String, Array(CardholderAccessGroup))\n details.values.flatten\nin Nil\n return nil\nend\naccess = access_groups.find do |group|\n if href = group.access_group[:href]\n href.ends_with?(group_id)\n end\nend\naccess.try(&.href)\n"}},{"html_id":"access_groups_endpoint:String-instance-method","name":"access_groups_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L123"},"def":{"name":"access_groups_endpoint","return_type":"String","visibility":"Public","body":"@access_groups_endpoint"}},{"html_id":"access_zones_endpoint:String-instance-method","name":"access_zones_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L124"},"def":{"name":"access_zones_endpoint","return_type":"String","visibility":"Public","body":"@access_zones_endpoint"}},{"html_id":"add_access_group_member(group_id:String|Int32,cardholder_id:String|Int32,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"add_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(group_id : String | Int32, cardholder_id : String | Int32, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":433,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L433"},"def":{"name":"add_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"if from_unix\n from_time = Time.unix(from_unix)\nend\nif until_unix\n until_time = Time.unix(until_unix)\nend\ngroup = CardholderAccessGroup.new({href: \"#{@uri_base}#{@access_groups_endpoint}/#{group_id}\".as(String | ::Nil), name: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, access_groups: [group])\n"}},{"html_id":"card_holder_id_lookup(email:String):String|Int64|Nil-instance-method","name":"card_holder_id_lookup","doc":"using an email address, lookup the security system id for a user","summary":"

using an email address, lookup the security system id for a user

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L653"},"def":{"name":"card_holder_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(query_cardholders(email, @unique_pdf_name)).first?.try(&.id)"}},{"html_id":"card_holder_lookup(id:String|Int64):CardHolderDetails-instance-method","name":"card_holder_lookup","doc":"given a card holder id, lookup the details of the card holder","summary":"

given a card holder id, lookup the details of the card holder

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : CardHolderDetails","args_html":"(id : String | Int64) : CardHolderDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L658"},"def":{"name":"card_holder_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"CardHolderDetails","visibility":"Public","body":"details = get_cardholder(id.to_s)\nfirst_name = details.first_name\nlast_name = details.last_name\nshort_name = details.short_name\nname = if first_name.presence\n \"#{first_name} #{last_name}\"\nelse\n short_name || \"\"\nend\nemail_key = \"@#{@unique_pdf_name}\"\nCardHolder.new(id, name, details.json_unmapped[email_key]?.try(&.as_s))\n"}},{"html_id":"card_types_endpoint:String-instance-method","name":"card_types_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L127"},"def":{"name":"card_types_endpoint","return_type":"String","visibility":"Public","body":"@card_types_endpoint"}},{"html_id":"cardholder_exists?(filter:String)-instance-method","name":"cardholder_exists?","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L366"},"def":{"name":"cardholder_exists?","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"!(query_cardholders(filter)).empty?"}},{"html_id":"cardholders_endpoint:String-instance-method","name":"cardholders_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L125"},"def":{"name":"cardholders_endpoint","return_type":"String","visibility":"Public","body":"@cardholders_endpoint"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L118"},"def":{"name":"connected","visibility":"Public","body":"query_endpoints"}},{"html_id":"create_cardholder(first_name:String,last_name:String,description:String=\"acardholder\",authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"create_cardholder","doc":"#\nCreate a new cardholder.\n@param first_name [String] The first name of the new cardholder. Either this or last name is required (but we should assume both are for most instances).\n@param last_name [String] The last name of the new cardholder. Either this or first name is required (but we should assume both are for most instances).\n@option options [String] :division The division to add the cardholder to. This is required when making the request to create the cardholder but if none is passed the `default_division` is used.\n@option options [Hash] :pdfs A hash containing all PDFs to add to the user in the form `{ some_pdf_name: some_pdf_value, another_pdf_name: another_pdf_value }`.\n@option options [Array] :cards An array of cards to be added to this cardholder which can include both virtual and physical cards.\n@option options [Array] :access_groups An array of access groups to add this cardholder to. These may include `from` and `until` fields to dictate temporary access.\n@option options [Array] :competencies An array of competencies to add this cardholder to.\n@return [Hash] The cardholder that was created.","summary":"

\n \n \nCreate a new cardholder.

","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(first_name : String, last_name : String, description : String = \"a cardholder\", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(first_name : String, last_name : String, description : String = "a cardholder", authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L278"},"def":{"name":"create_cardholder","args":[{"name":"first_name","external_name":"first_name","restriction":"String"},{"name":"last_name","external_name":"last_name","restriction":"String"},{"name":"description","default_value":"\"a cardholder\"","external_name":"description","restriction":"String"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"short_name || (short_name = \"#{first_name} #{last_name}\")\nshort_name = short_name[0..15]\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, cards, access_groups, division_href || @default_division.not_nil!)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = post(@cardholders_endpoint, headers: @headers, body: payload)\nCardholder.from_json(process(response))\n"}},{"html_id":"delete_card(href:String)-instance-method","name":"delete_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L361"},"def":{"name":"delete_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = delete(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"failed to delete card #{href}\")\nend\n"}},{"html_id":"delete_href(href:String)-instance-method","name":"delete_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L527"},"def":{"name":"delete_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"delete_card(href)"}},{"html_id":"disable_card(href:String)-instance-method","name":"disable_card","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L354"},"def":{"name":"disable_card","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"uri = get_path(href)\ncardholder_id = (uri.split('/'))[-3]\ncard = Card.new(uri, {value: @disabled_card_value, type: nil.as(String | ::Nil)})\nupdate_cardholder(cardholder_id, update_cards: [card])\n"}},{"html_id":"divisions_endpoint:String-instance-method","name":"divisions_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L126"},"def":{"name":"divisions_endpoint","return_type":"String","visibility":"Public","body":"@divisions_endpoint"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":567,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L567"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"doors.map do |d|\n Door.new(d.id, d.name)\nend"}},{"html_id":"doors-instance-method","name":"doors","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":557,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L557"},"def":{"name":"doors","visibility":"Public","body":"response = get(@doors_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\n(NamedTuple(results: Array(DoorDetails)).from_json(response.body))[:results]\n"}},{"html_id":"doors_endpoint:String-instance-method","name":"doors_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L130"},"def":{"name":"doors_endpoint","return_type":"String","visibility":"Public","body":"@doors_endpoint"}},{"html_id":"events_endpoint:String-instance-method","name":"events_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L128"},"def":{"name":"events_endpoint","return_type":"String","visibility":"Public","body":"@events_endpoint"}},{"html_id":"free_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"free_zone","doc":"forces a zone to be free, that is doors are unlocked","summary":"

forces a zone to be free, that is doors are unlocked

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L464"},"def":{"name":"free_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/free\", headers: @headers)\nresponse.success?\n"}},{"html_id":"get_access_group(id:String)-instance-method","name":"get_access_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L377"},"def":{"name":"get_access_group","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"access group request failed with #{response.status_code}\\n#{response.body}\")\nend\nAccessGroup.from_json(response.body)\n"}},{"html_id":"get_access_group_members(id:String)-instance-method","name":"get_access_group_members","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L391"},"def":{"name":"get_access_group_members","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@access_groups_endpoint}/#{id}/cardholders\", headers: @headers)\nif response.success?\nelse\n raise(\"access group members request failed with #{response.status_code}\\n#{response.body}\")\nend\njson = response.body\nbegin\n NamedTuple(cardholders: Array(NamedTuple(href: String | ::Nil, cardholder: NamedTuple(name: String, href: String | ::Nil)))).from_json(json)\nrescue error\n logger.warn(exception: error) do\n \"#get_access_group_members failed to parse:\\n#{json}\"\n end\nend\n"}},{"html_id":"get_access_groups(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_access_groups","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L383"},"def":{"name":"get_access_groups","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_groups_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"access groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(AccessGroup, response.body)\n"}},{"html_id":"get_base64_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_base64_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L230"},"def":{"name":"get_base64_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nBase64.strict_encode(response.body)\n"}},{"html_id":"get_card_type(id:String|Int32|Nil=nil)-instance-method","name":"get_card_type","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"args_string":"(id : String | Int32 | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L261"},"def":{"name":"get_card_type","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | Nil"}],"visibility":"Public","body":"card = (id || @default_card_type) || (raise(\"no default card type provided\"))\nresponse = get(\"#{@card_types_endpoint}/#{card}\", headers: @headers)\nif response.success?\nelse\n raise(\"card type request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardType.from_json(response.body)\n"}},{"html_id":"get_cardholder(id:String|Int32)-instance-method","name":"get_cardholder","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"args_string":"(id : String | Int32)","args_html":"(id : String | Int32)","location":{"filename":"src/gallagher/rest_api.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L237"},"def":{"name":"get_cardholder","args":[{"name":"id","external_name":"id","restriction":"String | Int32"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder request failed with #{response.status_code}\\n#{response.body}\")\nend\nCardholder.from_json(response.body)\n"}},{"html_id":"get_division(id:String)-instance-method","name":"get_division","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":440,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L440"},"def":{"name":"get_division","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = get(\"#{@divisions_endpoint}/#{id}\", headers: @headers)\nif response.success?\nelse\n raise(\"division request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_divisions(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_divisions","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":446,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L446"},"def":{"name":"get_divisions","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@divisions_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"divisions request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"get_event_groups-instance-method","name":"get_event_groups","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L490"},"def":{"name":"get_event_groups","visibility":"Public","body":"response = get(\"#{@events_endpoint}/groups\", headers: @headers)\nif response.success?\nelse\n raise(\"event groups request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_events-instance-method","name":"get_events","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":484,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L484"},"def":{"name":"get_events","visibility":"Public","body":"response = get(@events_endpoint, headers: @headers)\nif response.success?\nelse\n raise(\"events request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_href(href:String)-instance-method","name":"get_href","abstract":false,"args":[{"name":"href","external_name":"href","restriction":"String"}],"args_string":"(href : String)","args_html":"(href : String)","location":{"filename":"src/gallagher/rest_api.cr","line_number":521,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L521"},"def":{"name":"get_href","args":[{"name":"href","external_name":"href","restriction":"String"}],"visibility":"Public","body":"response = get(get_path(href), headers: @headers)\nif response.success?\nelse\n raise(\"generic request failed with #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_pdf(user_id:String,pdf_id:String|UInt64)-instance-method","name":"get_pdf","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"args_string":"(user_id : String, pdf_id : String | UInt64)","args_html":"(user_id : String, pdf_id : String | UInt64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L224"},"def":{"name":"get_pdf","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"pdf_id","external_name":"pdf_id","restriction":"String | UInt64"}],"visibility":"Public","body":"response = get(\"#{@cardholders_endpoint}/#{user_id}/personal_data/#{pdf_id}\", headers: @headers)\nif response.success?\nelse\n raise(\"cardholder PDF request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_pdfs(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_pdfs","doc":"#\nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.\nThey will usually be for things like email address, employee ID or some other field specific to whoever is hosting the Gallagher instance.\nAllows retrieval of the PDFs used in the Gallagher instance, primarily so we can get the PDF's ID and use that to filter cardholders based on that PDF.\n\n@param name [String] The name of the PDF which we want to retrieve. This will only return one result (as the PDF names are unique).\n@return [Hash] A list of PDF results and a next link for pagination (we will generally have less than 100 PDFs so 'next' link will mostly be unused):\n@example An example response:\n {\n \"results\": [\n {\n \"name\": \"email\",\n \"id\": \"5516\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/5516\"\n },\n {\n \"name\": \"cellphone\",\n \"id\": \"9998\",\n \"href\": \"https://localhost:8904/api/personal_data_fields/9998\",\n \"serverDisplayName\": \"Site B\"\n }\n ],\n \"next\": {\n \"href\": \"https://localhost:8904/api/personal_data_fields?pos=900&sort=id\"\n }\n }","summary":"

\n \n \nPersonal Data Fields (PDFs) are custom fields that Gallagher allows definintions of on a site-by-site basis.

","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L216"},"def":{"name":"get_pdfs","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@pdfs_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(PDF, response.body)\n"}},{"html_id":"get_zones(name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"get_zones","abstract":false,"args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String | Nil = nil, exact_match : Bool = true)","args_html":"(name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":454,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L454"},"def":{"name":"get_zones","args":[{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"if name && exact_match\n name = \"\\\"#{name}\\\"\"\nend\nresponse = get(@access_zones_endpoint, headers: @headers, params: {\"top\" => \"10000\", \"name\" => name}.compact)\nif response.success?\nelse\n raise(\"zones request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(JSON::Any, response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L69"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nspawn do\n event_monitor\nend\nschedule.every(1.minutes) do\n query_endpoints\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L79"},"def":{"name":"on_unload","visibility":"Public","body":"@poll_events = false"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L91"},"def":{"name":"on_update","visibility":"Public","body":"uri = URI.parse(config.uri.not_nil!)\n@uri_base || (@uri_base = \"#{uri.scheme}://#{uri.host}\")\napi_key = setting(String, :api_key)\n@api_key = \"GGL-API-KEY #{api_key}\"\n@door_event_channel = (setting?(String, :door_event_channel)) || \"event\"\nnew_map = {} of String => EventMap\n((setting?(Array(EventMap), :event_mappings)) || ([] of EventMap)).each do |event|\n new_map[event.group.to_s] = event\nend\n@event_map = new_map\n@unique_pdf_name = setting(String, :unique_pdf_name)\n@default_division = setting?(String, :default_division_href)\n@default_facility_code = setting?(String, :default_facility_code)\n@default_card_type = setting?(String, :default_card_type_href)\n@default_access_group = setting?(String, :default_access_group_href)\n@disabled_card_value = (setting(::Union(String, ::Nil), :disabled_card_value)) || \"Disabled (manually)\"\n@headers = {\"Authorization\" => @api_key, \"Content-Type\" => \"application/json\"}\n"}},{"html_id":"pdfs_endpoint:String-instance-method","name":"pdfs_endpoint","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L129"},"def":{"name":"pdfs_endpoint","return_type":"String","visibility":"Public","body":"@pdfs_endpoint"}},{"html_id":"query_card_types-instance-method","name":"query_card_types","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L255"},"def":{"name":"query_card_types","visibility":"Public","body":"response = get(@card_types_endpoint, {\"top\" => \"10000\"}, headers: @headers)\nif response.success?\nelse\n raise(\"card types request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(CardType, response.body)\n"}},{"html_id":"query_cardholders(filter:String,pdf_name:String|Nil=nil,exact_match:Bool=true)-instance-method","name":"query_cardholders","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","args_html":"(filter : String, pdf_name : String | Nil = nil, exact_match : Bool = true)","location":{"filename":"src/gallagher/rest_api.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L243"},"def":{"name":"query_cardholders","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"pdf_name","default_value":"nil","external_name":"pdf_name","restriction":"String | ::Nil"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"visibility":"Public","body":"pdf_id = \"pdf_\" + (pdf_name ? (get_pdfs(pdf_name)).first.id : @fixed_pdf_id).not_nil!\nquery = {pdf_id => exact_match ? \"\\\"#{filter}\\\"\" : filter, \"top\" => \"10000\"}\nresponse = get(@cardholders_endpoint, query, headers: @headers)\nif response.success?\nelse\n raise(\"cardholder query request failed with #{response.status_code}\\n#{response.body}\")\nend\nget_results(Cardholder, response.body)\n"}},{"html_id":"query_endpoints-instance-method","name":"query_endpoints","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L138"},"def":{"name":"query_endpoints","visibility":"Public","body":"response = get(\"/api\", headers: @headers)\nif response.success?\nelse\n raise(\"endpoints request failed with #{response.status_code}\\n#{response.body}\")\nend\npayload = JSON.parse(response.body)\nlogger.debug do\n \"endpoints query returned:\\n#{payload.inspect}\"\nend\napi_version = SemanticVersion.parse((payload[\"version\"].as_s.split('.'))[0..2].join('.'))\nraw_uri = payload[\"features\"][\"cardholders\"][\"cardholders\"][\"href\"].as_s\nuri = URI.parse(raw_uri)\n@uri_base = \"#{uri.scheme}://#{uri.host}\"\n@cardholders_endpoint = get_path(raw_uri)\n@divisions_endpoint = @cardholders_endpoint.sub(\"cardholders\", \"divisions\")\n@access_groups_endpoint = get_path(payload[\"features\"][\"accessGroups\"][\"accessGroups\"][\"href\"].as_s)\n@access_zones_endpoint = get_path(payload[\"features\"][\"accessZones\"][\"accessZones\"][\"href\"].as_s)\n@events_endpoint = get_path(payload[\"features\"][\"events\"][\"events\"][\"href\"].as_s)\nbegin\n @doors_endpoint = get_path(payload[\"features\"][\"doors\"][\"doors\"][\"href\"].as_s)\nrescue error\n logger.debug(exception: error) do\n \"error locating doors feature URI\"\n end\nend\nif api_version >= (SemanticVersion.parse(\"8.10.0\"))\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"assign\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"personalDataFields\"][\"personalDataFields\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name}, @headers)\nelse\n @card_types_endpoint = get_path(payload[\"features\"][\"cardTypes\"][\"cardTypes\"][\"href\"].as_s)\n @pdfs_endpoint = get_path(payload[\"features\"][\"items\"][\"items\"][\"href\"].as_s)\n response = get(@pdfs_endpoint, {\"name\" => @unique_pdf_name, \"type\" => \"33\"}, @headers)\nend\nif response.success?\n logger.debug do\n \"PDFS request returned:\\n#{response.body}\"\n end\nelse\n raise(\"PDFS request failed with #{response.status_code}\\n#{response.body}\")\nend\nresults = (JSON.parse(response.body))[\"results\"].as_a\nif results.empty?\nelse\n @fixed_pdf_id = results.first[\"id\"].as_s\nend\n"}},{"html_id":"remove_access_group_member(group_id:String|Int32,cardholder_id:String|Int32):Bool-instance-method","name":"remove_access_group_member","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"args_string":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","args_html":"(group_id : String | Int32, cardholder_id : String | Int32) : Bool","location":{"filename":"src/gallagher/rest_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L423"},"def":{"name":"remove_access_group_member","args":[{"name":"group_id","external_name":"group_id","restriction":"String | Int32"},{"name":"cardholder_id","external_name":"cardholder_id","restriction":"String | Int32"}],"return_type":"Bool","visibility":"Public","body":"if href = access_group_member?(group_id, cardholder_id)\n response = delete(get_path(href), headers: @headers)\n if response.success?\n else\n raise(\"remove access group member request failed with #{response.status_code}\\n#{response.body}\")\n end\n true\nelse\n false\nend"}},{"html_id":"remove_cardholder_access(id:String|Nil=nil,href:String|Nil=nil)-instance-method","name":"remove_cardholder_access","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"args_string":"(id : String | Nil = nil, href : String | Nil = nil)","args_html":"(id : String | Nil = nil, href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L370"},"def":{"name":"remove_cardholder_access","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"}],"visibility":"Public","body":"update_cardholder(id, href, authorised: false)"}},{"html_id":"reset_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"reset_zone","doc":"returns the zone to it's default scheduled state, removing any overrides","summary":"

returns the zone to it's default scheduled state, removing any overrides

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L478"},"def":{"name":"reset_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/cancel\", headers: @headers)\nresponse.success?\n"}},{"html_id":"secure_zone(zone_id:String|Int32):Bool|Nil-instance-method","name":"secure_zone","doc":"forces a zone to be secure and require a swipe card to access","summary":"

forces a zone to be secure and require a swipe card to access

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"args_string":"(zone_id : String | Int32) : Bool | Nil","args_html":"(zone_id : String | Int32) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L471"},"def":{"name":"secure_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@access_zones_endpoint}/#{zone_id}/secure\", headers: @headers)\nresponse.success?\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":572,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L572"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"response = post(\"#{@doors_endpoint}/#{door_id}/open\", headers: @headers)\nresponse.success?\n"}},{"html_id":"update_cardholder(id:String|Int32|Nil=nil,href:String|Nil=nil,first_name:String|Nil=nil,last_name:String|Nil=nil,description:String|Nil=nil,authorised:Bool=true,pdfs:Hash(String,String)|Nil=nil,cards:Array(Card)|Nil=nil,remove_cards:Array(Card)|Nil=nil,update_cards:Array(Card)|Nil=nil,access_groups:Array(CardholderAccessGroup)|Nil=nil,remove_access_groups:Array(CardholderAccessGroup)|Nil=nil,update_access_groups:Array(CardholderAccessGroup)|Nil=nil,short_name:String|Nil=nil,division_href:String|Nil=nil)-instance-method","name":"update_cardholder","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"args_string":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","args_html":"(id : String | Int32 | Nil = nil, href : String | Nil = nil, first_name : String | Nil = nil, last_name : String | Nil = nil, description : String | Nil = nil, authorised : Bool = true, pdfs : Hash(String, String) | Nil = nil, cards : Array(Card) | Nil = nil, remove_cards : Array(Card) | Nil = nil, update_cards : Array(Card) | Nil = nil, access_groups : Array(CardholderAccessGroup) | Nil = nil, remove_access_groups : Array(CardholderAccessGroup) | Nil = nil, update_access_groups : Array(CardholderAccessGroup) | Nil = nil, short_name : String | Nil = nil, division_href : String | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L305"},"def":{"name":"update_cardholder","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"String | Int32 | ::Nil"},{"name":"href","default_value":"nil","external_name":"href","restriction":"String | ::Nil"},{"name":"first_name","default_value":"nil","external_name":"first_name","restriction":"String | ::Nil"},{"name":"last_name","default_value":"nil","external_name":"last_name","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"authorised","default_value":"true","external_name":"authorised","restriction":"Bool"},{"name":"pdfs","default_value":"nil","external_name":"pdfs","restriction":"Hash(String, String) | ::Nil"},{"name":"cards","default_value":"nil","external_name":"cards","restriction":"Array(Card) | ::Nil"},{"name":"remove_cards","default_value":"nil","external_name":"remove_cards","restriction":"Array(Card) | ::Nil"},{"name":"update_cards","default_value":"nil","external_name":"update_cards","restriction":"Array(Card) | ::Nil"},{"name":"access_groups","default_value":"nil","external_name":"access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"remove_access_groups","default_value":"nil","external_name":"remove_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"update_access_groups","default_value":"nil","external_name":"update_access_groups","restriction":"Array(CardholderAccessGroup) | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"String | ::Nil"},{"name":"division_href","default_value":"nil","external_name":"division_href","restriction":"String | ::Nil"}],"visibility":"Public","body":"url = href ? get_path(href) : \"#{@cardholders_endpoint}/#{id.not_nil!}\"\nif (cards || remove_cards) || update_cards\n card_updates = {} of String => Array(Card)\n if cards\n card_updates[\"add\"] = cards\n end\n if update_cards\n card_updates[\"update\"] = update_cards\n end\n if remove_cards\n card_updates[\"remove\"] = remove_cards.map do |card|\n Card.new(card.href, nil)\n end\n end\nend\nif (access_groups || remove_access_groups) || update_access_groups\n groups_update = {} of String => Array(CardholderAccessGroup)\n if access_groups\n groups_update[\"add\"] = access_groups\n end\n if update_access_groups\n groups_update[\"update\"] = update_access_groups\n end\n if remove_access_groups\n groups_update[\"remove\"] = remove_access_groups\n end\nend\npayload = (Cardholder.new(first_name, last_name, short_name, description, authorised, card_updates, groups_update, division_href)).to_json\nif pdfs && !pdfs.empty?\n payload = \"#{payload[0..-2]},#{pdfs.transform_keys do |key|\n \"@#{key}\"\n end.to_json[1..-1]}\"\nend\nresponse = patch(url, headers: @headers, body: payload)\nresult = process(response)\nresult.presence && (Cardholder.from_json(result))\n"}},{"html_id":"uri_base:String-instance-method","name":"uri_base","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base","return_type":"String","visibility":"Public","body":"if (__temp_1 = @uri_base).nil?\n ::raise(::NilAssertionError.new(\"Gallagher::RestAPI#uri_base cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"uri_base?:String|Nil-instance-method","name":"uri_base?","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L122"},"def":{"name":"uri_base?","return_type":"String | ::Nil","visibility":"Public","body":"@uri_base"}},{"html_id":"zone_access_add_member(zone_id:String|Int64,card_holder_id:String|Int64,from_unix:Int64|Nil=nil,until_unix:Int64|Nil=nil)-instance-method","name":"zone_access_add_member","doc":"add a member to the zone","summary":"

add a member to the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64, from_unix : Int64 | Nil = nil, until_unix : Int64 | Nil = nil)","location":{"filename":"src/gallagher/rest_api.cr","line_number":692,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L692"},"def":{"name":"zone_access_add_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"},{"name":"from_unix","default_value":"nil","external_name":"from_unix","restriction":"Int64 | ::Nil"},{"name":"until_unix","default_value":"nil","external_name":"until_unix","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"add_access_group_member(zone_id.to_s, card_holder_id.to_s, from_unix, until_unix)"}},{"html_id":"zone_access_id_lookup(name:String,exact_match:Bool=true):String|Int64|Nil-instance-method","name":"zone_access_id_lookup","doc":"using a name, lookup the access zone id","summary":"

using a name, lookup the access zone id

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"args_string":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","args_html":"(name : String, exact_match : Bool = true) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L674"},"def":{"name":"zone_access_id_lookup","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"exact_match","default_value":"true","external_name":"exact_match","restriction":"Bool"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"(get_access_groups(name, exact_match)).first?.try(&.id)"}},{"html_id":"zone_access_lookup(id:String|Int64):ZoneDetails-instance-method","name":"zone_access_lookup","doc":"given an access zone id, lookup the details of the zone","summary":"

given an access zone id, lookup the details of the zone

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"args_string":"(id : String | Int64) : ZoneDetails","args_html":"(id : String | Int64) : ZoneDetails","location":{"filename":"src/gallagher/rest_api.cr","line_number":679,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L679"},"def":{"name":"zone_access_lookup","args":[{"name":"id","external_name":"id","restriction":"String | Int64"}],"return_type":"ZoneDetails","visibility":"Public","body":"details = get_access_group(id.to_s)\nZoneInfo.new(id, details.name, details.description)\n"}},{"html_id":"zone_access_member?(zone_id:String|Int64,card_holder_id:String|Int64):String|Int64|Nil-instance-method","name":"zone_access_member?","doc":"return the id that represents the access permission (truthy indicates access)","summary":"

return the id that represents the access permission (truthy indicates access)

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64) : String | Int64 | Nil","location":{"filename":"src/gallagher/rest_api.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L686"},"def":{"name":"zone_access_member?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"access_group_member?(zone_id.to_s, card_holder_id.to_s)"}},{"html_id":"zone_access_remove_member(zone_id:String|Int64,card_holder_id:String|Int64)-instance-method","name":"zone_access_remove_member","doc":"remove a member from the zone","summary":"

remove a member from the zone

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"args_string":"(zone_id : String | Int64, card_holder_id : String | Int64)","args_html":"(zone_id : String | Int64, card_holder_id : String | Int64)","location":{"filename":"src/gallagher/rest_api.cr","line_number":698,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L698"},"def":{"name":"zone_access_remove_member","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int64"},{"name":"card_holder_id","external_name":"card_holder_id","restriction":"String | Int64"}],"visibility":"Public","body":"remove_access_group_member(zone_id.to_s, card_holder_id.to_s)"}}],"macros":[{"html_id":"get_results(klass,response)-macro","name":"get_results","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"args_string":"(klass, response)","args_html":"(klass, response)","location":{"filename":"src/gallagher/rest_api.cr","line_number":496,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L496"},"def":{"name":"get_results","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%body\n = \n{{ response }}\n\n begin\n \n%results\n = Results(\n{{ klass }}\n).from_json \n%body\n\n \n%result_array\n = \n%results\n.results\n loop do\n \n%next_uri\n = \n%results\n.next_uri\n break unless \n%next_uri\n\n \n%body\n = get_raw(\n%next_uri\n[:href])\n \n%results\n = Results(\n{{ klass }}\n).from_json(\n%body\n)\n \n%result_array\n.concat \n%results\n.results\n \nend\n \n%result_array\n\n rescue \nerror\n logger.debug \n{ \"failed to parse response body:\\n#{\n%body\n}\\n\" }\n raise \nerror\n \nend\n \n"}}],"types":[{"html_id":"drivers/Gallagher/RestAPI/BadRequest","path":"Gallagher/RestAPI/BadRequest.html","kind":"class","full_name":"Gallagher::RestAPI::BadRequest","name":"BadRequest","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":555,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L555"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/CardHolder","path":"Gallagher/RestAPI/CardHolder.html","kind":"struct","full_name":"Gallagher::RestAPI::CardHolder","name":"CardHolder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/CardHolderDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","name":"CardHolderDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L641"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,email)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"args_string":"(id, name, email)","args_html":"(id, name, email)","location":{"filename":"src/gallagher/rest_api.cr","line_number":642,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L642"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"email","external_name":"email","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L641"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/Gallagher/RestAPI/CardHolderDetails","path":"Gallagher/RestAPI/CardHolderDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::CardHolderDetails","name":"CardHolderDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":638,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L638"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::CardHolderDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/Conflict","path":"Gallagher/RestAPI/Conflict.html","kind":"class","full_name":"Gallagher::RestAPI::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L551"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/EventMap","path":"Gallagher/RestAPI/EventMap.html","kind":"struct","full_name":"Gallagher::RestAPI::EventMap","name":"EventMap","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(group:Int32,types:Array(Int32)|Nil,action:Action)-class-method","name":"new","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"args_string":"(group : Int32, types : Array(Int32) | Nil, action : Action)","args_html":"(group : Int32, types : Array(Int32) | Nil, action : Action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"new","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"types","external_name":"types","restriction":"Array(Int32) | ::Nil"},{"name":"action","external_name":"action","restriction":"Action"}],"visibility":"Public","body":"_ = allocate\n_.initialize(group, types, action)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Action-instance-method","name":"action","abstract":false,"def":{"name":"action","return_type":"Action","visibility":"Public","body":"@action"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@group.clone, @types.clone, @action.clone)"}},{"html_id":"copy_with(group_group=@group,types_types=@types,action_action=@action)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"args_string":"(group _group = @group, types _types = @types, action _action = @action)","args_html":"(group _group = @group, types _types = @types, action _action = @action)","location":{"filename":"src/gallagher/rest_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L65"},"def":{"name":"copy_with","args":[{"name":"_group","default_value":"@group","external_name":"group","restriction":""},{"name":"_types","default_value":"@types","external_name":"types","restriction":""},{"name":"_action","default_value":"@action","external_name":"action","restriction":""}],"visibility":"Public","body":"self.class.new(_group, _types, _action)"}},{"html_id":"group:Int32-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"Int32","visibility":"Public","body":"@group"}},{"html_id":"types:Array(Int32)|Nil-instance-method","name":"types","abstract":false,"def":{"name":"types","return_type":"Array(Int32) | ::Nil","visibility":"Public","body":"@types"}}]},{"html_id":"drivers/Gallagher/RestAPI/NotFound","path":"Gallagher/RestAPI/NotFound.html","kind":"class","full_name":"Gallagher::RestAPI::NotFound","name":"NotFound","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":553,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L553"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneDetails","path":"Gallagher/RestAPI/ZoneDetails.html","kind":"alias","full_name":"Gallagher::RestAPI::ZoneDetails","name":"ZoneDetails","abstract":false,"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":639,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L639"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","aliased_html":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"}},{"html_id":"drivers/Gallagher/RestAPI/ZoneInfo","path":"Gallagher/RestAPI/ZoneInfo.html","kind":"struct","full_name":"Gallagher::RestAPI::ZoneInfo","name":"ZoneInfo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ZoneAccessSecurity/ZoneDetails","kind":"struct","full_name":"PlaceOS::Driver::Interface::ZoneAccessSecurity::ZoneDetails","name":"ZoneDetails"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L646"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher/RestAPI","kind":"class","full_name":"Gallagher::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(id,name,description)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"args_string":"(id, name, description)","args_html":"(id, name, description)","location":{"filename":"src/gallagher/rest_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L647"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"description","external_name":"description","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api.cr","line_number":646,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api.cr#L646"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]}]},{"html_id":"drivers/Gallagher/Results","path":"Gallagher/Results.html","kind":"class","full_name":"Gallagher::Results(ResultType)","name":"Results","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/rest_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_uri:NamedTuple(href:String)|Nil-instance-method","name":"next_uri","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri","return_type":"NamedTuple(href: String) | ::Nil","visibility":"Public","body":"@next_uri"}},{"html_id":"next_uri=(next_uri:NamedTuple(href:String)|Nil)-instance-method","name":"next_uri=","abstract":false,"args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"args_string":"(next_uri : NamedTuple(href: String) | Nil)","args_html":"(next_uri : NamedTuple(href: String) | Nil)","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L11"},"def":{"name":"next_uri=","args":[{"name":"next_uri","external_name":"next_uri","restriction":"NamedTuple(href: String) | ::Nil"}],"visibility":"Public","body":"@next_uri = next_uri"}},{"html_id":"results:Array(ResultType)-instance-method","name":"results","abstract":false,"location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results","return_type":"Array(ResultType)","visibility":"Public","body":"@results"}},{"html_id":"results=(results:Array(ResultType))-instance-method","name":"results=","abstract":false,"args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"args_string":"(results : Array(ResultType))","args_html":"(results : Array(ResultType))","location":{"filename":"src/gallagher/rest_api_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/rest_api_models.cr#L8"},"def":{"name":"results=","args":[{"name":"results","external_name":"results","restriction":"Array(ResultType)"}],"visibility":"Public","body":"@results = results"}}]},{"html_id":"drivers/Gallagher/ZoneSchedule","path":"Gallagher/ZoneSchedule.html","kind":"class","full_name":"Gallagher::ZoneSchedule","name":"ZoneSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gallagher/zone_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Gallagher","kind":"module","full_name":"Gallagher","name":"Gallagher"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L25"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_presence:Bool|Nil-instance-method","name":"last_presence","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L44"},"def":{"name":"last_presence","return_type":"Bool | ::Nil","visibility":"Public","body":"@last_presence"}},{"html_id":"last_status:String|Nil-instance-method","name":"last_status","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L43"},"def":{"name":"last_status","return_type":"String | ::Nil","visibility":"Public","body":"@last_status"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@system_id = (setting?(String, :gallagher_system)).presence || config.control_system.not_nil!.id\n@state_mappings = setting(Hash(String, String), :state_mappings)\n@zone_id = (setting?(String | Int64, :zone_id)) || (setting(String | Int64, :door_zone_id))\n@presence_timeout = ((setting?(Int32, :presence_timeout)) || 30).minutes\n"}},{"html_id":"state_mappings:Hash(String,String)-instance-method","name":"state_mappings","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L29"},"def":{"name":"state_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@state_mappings"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L24"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zone_id:String|Int64-instance-method","name":"zone_id","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/gallagher/zone_schedule.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gallagher/zone_schedule.cr#L28"},"def":{"name":"zone_id","return_type":"String | Int64","visibility":"Public","body":"@zone_id"}}]}]},{"html_id":"drivers/GlobalCache","path":"GlobalCache.html","kind":"module","full_name":"GlobalCache","name":"GlobalCache","abstract":false,"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GlobalCache/Gc100","path":"GlobalCache/Gc100.html","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ElectricalRelay","kind":"module","full_name":"PlaceOS::Driver::Interface::ElectricalRelay","name":"ElectricalRelay"}],"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L25"},"def":{"name":"connected","visibility":"Public","body":"@relay_config = {} of String => Hash(Int32, String)\n@port_config = {} of String => Tuple(String, Int32)\nschedule.clear\nschedule.every(10.seconds, true) do\n logger.debug do\n \"-- Polling GC100\"\n end\n if status?(Bool, :config_indexed)\n do_send(\"get_NET,0:1\", priority: 0, wait: false)\n else\n get_devices\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L41"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_devices-instance-method","name":"get_devices","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L45"},"def":{"name":"get_devices","visibility":"Public","body":"do_send(\"getdevices\")"}},{"html_id":"ir(index:Int32,command:String,**options)-instance-method","name":"ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(index : Int32, command : String, **options)","args_html":"(index : Int32, command : String, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L60"},"def":{"name":"ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"command","external_name":"command","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"sendir,1:#{index},#{command}\", **options)"}},{"html_id":"ir_status?(index:Int32,**options)-instance-method","name":"ir_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L89"},"def":{"name":"ir_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\nself[:num_relays] = 0\nself[:num_ir] = 0\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/global_cache/gc_100.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L98"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nlogger.debug do\n \"GlobalCache sent #{data}\"\nend\ndata = data.split(',')\ntask_name = task.try(&.name) || \"unknown\"\ncase data[0]\nwhen \"state\", \"statechange\"\n type, index = self[:port_config][data[1]]\n self[\"#{type}#{index}\"] = data[2] == \"1\"\nwhen \"device\"\n address = data[1]\n number, type = data[2].split(' ')\n type = type.downcase\n __temp_697 = type\n @relay_config[__temp_697]? || (@relay_config[__temp_697] = {} of Int32 => String)\n current = @relay_config[type].size\n (current..((current + number.to_i) - 1)).each_with_index(1) do |i, dev_index|\n port = \"#{address}:#{dev_index}\"\n @relay_config[type][i] = port\n @port_config[port] = {type, i}\n end\n return task.try(&.success)\nwhen \"endlistdevices\"\n if @relay_config[\"relay\"]?\n self[:num_relays] = @relay_config[\"relay\"].size\n end\n if @relay_config[\"relaysensor\"]?\n @relay_config[\"relaysensor\"][1] = \"1:2\"\n @relay_config[\"relaysensor\"][2] = \"1:3\"\n @relay_config[\"relaysensor\"][3] = \"1:4\"\n self[:num_relays] = @relay_config[\"relaysensor\"].size\n end\n if @relay_config[\"ir\"]?\n self[:num_ir] = @relay_config[\"ir\"].size\n end\n self[:relay_config] = @relay_config\n self[:port_config] = @port_config\n logger.debug do\n \"self[:relay_config] is #{self[:relay_config]}\"\n end\n logger.debug do\n \"self[:port_config] is #{self[:port_config]}\"\n end\n @relay_config = {} of String => Hash(Int32, String)\n @port_config = {} of String => Tuple(String, Int32)\n self[:config_indexed] = true\n return task.try(&.success)\nend\nif data.size == 1\n error = case (data[0].split(' '))[1].to_i\n when 1\n \"Command was missing the carriage return delimiter\"\n when 2\n \"Invalid module address when looking for version\"\n when 3\n \"Invalid module address\"\n when 4\n \"Invalid connector address\"\n when 5\n \"Connector address 1 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 6\n \"Connector address 2 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 7\n \"Connector address 3 is set up as \\\"sensor in\\\" when attempting to send an IR command\"\n when 8\n \"Offset is set to an even transition number, but should be set to an odd transition number in the IR command\"\n when 9\n \"Maximum number of transitions exceeded (256 total on/off transitions allowed)\"\n when 10\n \"Number of transitions in the IR command is not even (the same number of on and off transitions is required)\"\n when 11\n \"Contact closure command sent to a module that is not a relay\"\n when 12\n \"Missing carriage return. All commands must end with a carriage return\"\n when 13\n \"State was requested of an invalid connector address, or the connector is programmed as IR out and not sensor in.\"\n when 14\n \"Command sent to the unit is not supported by the GC-100\"\n when 15\n \"Maximum number of IR transitions exceeded\"\n when 16\n \"Invalid number of IR transitions (must be an even number)\"\n when 21\n \"Attempted to send an IR command to a non-IR module\"\n when 23\n \"Command sent is not supported by this type of module\"\n else\n \"Unknown error\"\n end\n return task.try(&.abort(\"GlobalCache error for command #{task_name}: #{error}\"))\nend\ntask.try(&.success)\n"}},{"html_id":"relay(state:Bool,index:Int32=0,**options)-instance-method","name":"relay","doc":"`**options` here will be passed to the `task` to allow for different priorities","summary":"

**options here will be passed to the task to allow for different priorities

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(state : Bool, index : Int32 = 0, **options)","args_html":"(state : Bool, index : Int32 = 0, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L49"},"def":{"name":"relay","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n relays = (self[:relay_config][\"relay\"]? || self[:relay_config][\"relaysensor\"]?).not_nil!.as_h\n logger.debug do\n \"relays = #{relays}\"\n end\n connector = relays[index.to_s]\n do_send(\"setstate,#{connector},#{state ? 1 : 0}\", **options)\nelse\n logger.warn do\n \"Attempted to set relay on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"relay_status?(index:Int32,**options)-instance-method","name":"relay_status?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32, **options)","args_html":"(index : Int32, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L80"},"def":{"name":"relay_status?","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_relays].as_i\n connector = self[:relay_config][\"relay\"][index.to_s]\n do_send(\"getstate,#{connector}\", **options)\nelse\n logger.warn do\n \"Attempted to check IO on GlobalCache that does not exist: #{index}\"\n end\nend"}},{"html_id":"set_ir(index:Int32,mode:IrMode,**options)-instance-method","name":"set_ir","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"args_string":"(index : Int32, mode : IrMode, **options)","args_html":"(index : Int32, mode : IrMode, **options)","location":{"filename":"src/global_cache/gc_100.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L71"},"def":{"name":"set_ir","args":[{"name":"index","external_name":"index","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"IrMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if index < self[:num_ir].as_i\n connector = self[:relay_config][\"ir\"][index.to_s]\n do_send(\"set_IR,#{connector},#{mode}\", **options)\nelse\n logger.warn do\n \"Attempted to set IR mode on GlobalCache that does not exist: #{index}\"\n end\nend"}}],"types":[{"html_id":"drivers/GlobalCache/Gc100/IrMode","path":"GlobalCache/Gc100/IrMode.html","kind":"enum","full_name":"GlobalCache::Gc100::IrMode","name":"IrMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/gc_100.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L64"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IR","name":"IR","value":"0"},{"id":"SENSOR","name":"SENSOR","value":"1"},{"id":"SENSOR_NOTIFY","name":"SENSOR_NOTIFY","value":"2"},{"id":"IR_NOCARRIER","name":"IR_NOCARRIER","value":"3"}],"namespace":{"html_id":"drivers/GlobalCache/Gc100","kind":"class","full_name":"GlobalCache::Gc100","name":"Gc100"},"instance_methods":[{"html_id":"ir?-instance-method","name":"ir?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L65"},"def":{"name":"ir?","visibility":"Public","body":"self == IR"}},{"html_id":"ir_nocarrier?-instance-method","name":"ir_nocarrier?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L68"},"def":{"name":"ir_nocarrier?","visibility":"Public","body":"self == IR_NOCARRIER"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L66"},"def":{"name":"sensor?","visibility":"Public","body":"self == SENSOR"}},{"html_id":"sensor_notify?-instance-method","name":"sensor_notify?","abstract":false,"location":{"filename":"src/global_cache/gc_100.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/gc_100.cr#L67"},"def":{"name":"sensor_notify?","visibility":"Public","body":"self == SENSOR_NOTIFY"}}]}]},{"html_id":"drivers/GlobalCache/IRTV","path":"GlobalCache/IRTV.html","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel(id:String,ir_set:String=\"\",ir_index:Int32=0)-instance-method","name":"channel","doc":"Actually send the IR commands, via the globalcache","summary":"

Actually send the IR commands, via the globalcache

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"args_string":"(id : String, ir_set : String = \"\", ir_index : Int32 = 0)","args_html":"(id : String, ir_set : String = "", ir_index : Int32 = 0)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L146"},"def":{"name":"channel","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"ir_set","default_value":"\"\"","external_name":"ir_set","restriction":"String"},{"name":"ir_index","default_value":"0","external_name":"ir_index","restriction":"Int32"}],"visibility":"Public","body":"if ir_set.presence\nelse\n ir_set = @default_ir_set\nend\nif ir_index == 0\n ir_index = @default_ir_index\nend\nresult = @channel_lookup[id].ir_commands.map do |ir_command_name|\n (system[@globalcache].ir(ir_index, @ir_commands[ir_set][ir_command_name])).get\n sleep(500.milliseconds)\nend\nself[:current_channel] = id\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L119"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache = setting(String, :globalcache_module)\n@default_ir_set = setting(String, :default_ir_set)\n@default_ir_index = setting(Int32, :default_ir_index)\n@channels = setting(Array(Channel), :channel_details)\nupdated_channel_lookup = {} of String => Channel\n@channels.each do |channel|\n updated_channel_lookup[channel.channel] = channel\nend\n@channel_lookup = updated_channel_lookup\nglobalcache_ir_sets = setting(Hash(String, String), :globalcache_ir_sets)\nupdated_ir_commands = {} of String => Hash(String, String)\nglobalcache_ir_sets.each do |device, all_commands|\n updated_ir_commands[device] = parse_all_commands(all_commands)\nend\n@ir_commands = updated_ir_commands\nself[:channel_details] = @channels\nself[:ir_commands] = @ir_commands\n"}}],"types":[{"html_id":"drivers/GlobalCache/IRTV/Channel","path":"GlobalCache/IRTV/Channel.html","kind":"class","full_name":"GlobalCache::IRTV::Channel","name":"Channel","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/ir_tv.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GlobalCache/IRTV","kind":"class","full_name":"GlobalCache::IRTV","name":"IRTV"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/global_cache/ir_tv.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L87"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L86"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"ir_commands:Array(String)-instance-method","name":"ir_commands","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L88"},"def":{"name":"ir_commands","return_type":"Array(String)","visibility":"Public","body":"@ir_commands"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/global_cache/ir_tv.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/ir_tv.cr#L85"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/GlobalCache/ProjectorScreen","path":"GlobalCache/ProjectorScreen.html","kind":"class","full_name":"GlobalCache::ProjectorScreen","name":"ProjectorScreen","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GlobalCache","kind":"module","full_name":"GlobalCache","name":"GlobalCache"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"down-instance-method","name":"down","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L50"},"def":{"name":"down","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_down)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@globalcache_module = (setting(String, :globalcache_module)) || \"DigitalIO_1\"\n@relay_method = (setting(String, :globalcache_relay_method)) || \"pulse\"\n@relay_index_down = (setting(Int32, :globalcache_relay_index_down)) || 0\n@relay_index_up = (setting(Int32, :globalcache_relay_index_up)) || 1\n@relay_pulse_milliseconds = (setting(Int32, :globalcache_relay_pulse_milliseconds)) || 1000\n"}},{"html_id":"up-instance-method","name":"up","abstract":false,"location":{"filename":"src/global_cache/projector_screen.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen.cr#L39"},"def":{"name":"up","visibility":"Public","body":"case @relay_method\nwhen \"pulse\"\n system[@globalcache_module].pulse(@relay_pulse_milliseconds, @relay_index_up)\nwhen \"hold\"\n logger.error do\n \"Not yet implemented by this driver.\"\n end\nelse\n logger.error do\n \"Invalid globalcache_relay_method setting \\\"#{@relay_method}}\\\". Must be \\\"pulse\\\" or \\\"hold\\\" \"\n end\nend"}}]}]},{"html_id":"drivers/GoBright","path":"GoBright.html","kind":"module","full_name":"GoBright","name":"GoBright","abstract":false,"locations":[{"filename":"src/gobright/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/GoBright/AccessToken","path":"GoBright/AccessToken.html","kind":"struct","full_name":"GoBright::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L192"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L193"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L195"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"expires_at:Time-instance-method","name":"expires_at","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L198"},"def":{"name":"expires_at","return_type":"Time","visibility":"Public","body":"expires_in.seconds.from_now"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L196"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}}]},{"html_id":"drivers/GoBright/Amenity","path":"GoBright/Amenity.html","kind":"struct","full_name":"GoBright::Amenity","name":"Amenity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available_for_desk:Bool|Nil-instance-method","name":"available_for_desk","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L101"},"def":{"name":"available_for_desk","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_desk"}},{"html_id":"available_for_parking:Bool|Nil-instance-method","name":"available_for_parking","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L104"},"def":{"name":"available_for_parking","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_parking"}},{"html_id":"available_for_room:Bool|Nil-instance-method","name":"available_for_room","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L98"},"def":{"name":"available_for_room","return_type":"Bool | ::Nil","visibility":"Public","body":"@available_for_room"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L93"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L94"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L92"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"order:Int32|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L95"},"def":{"name":"order","return_type":"Int32 | ::Nil","visibility":"Public","body":"@order"}}]},{"html_id":"drivers/GoBright/API","path":"GoBright/API.html","kind":"class","full_name":"GoBright::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings(starting:Int64,ending:Int64,location_id:String|Array(String)|Nil=nil,space_id:String|Array(String)|Nil=nil)-instance-method","name":"bookings","doc":"the list of booking occurances in the time period specified","summary":"

the list of booking occurances in the time period specified

","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","args_html":"(starting : Int64, ending : Int64, location_id : String | Array(String) | Nil = nil, space_id : String | Array(String) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L121"},"def":{"name":"bookings","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | Array(String) | ::Nil"},{"name":"space_id","default_value":"nil","external_name":"space_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"1000\")\n form.add(\"include\", \"spaces,organizer,attendees\")\n form.add(\"start\", (Time.unix(starting)).to_rfc3339)\n form.add(\"end\", (Time.unix(ending)).to_rfc3339)\n if location_id\n location_ids = location_id.is_a?(Array) ? location_id : [location_id]\n location_ids.each do |loc|\n form.add(\"locationIds\", loc)\n end\n end\n if space_id\n space_ids = space_id.is_a?(Array) ? space_id : [space_id]\n space_ids.each do |space|\n form.add(\"spaceIds\", space)\n end\n end\nend\nArray(Occurrence).from_json(fetch(\"/api/v2.0/bookings/occurrences?#{params}\"))\n"}},{"html_id":"fetch(location:String):String-instance-method","name":"fetch","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/gobright/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L25"},"def":{"name":"fetch","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"next_page = location\nappend = location.includes?('?') ? '&' : '?'\nString.build do |str|\n str << \"[\"\n loop do\n logger.debug do\n \"requesting: #{next_page}\"\n end\n response = get(next_page, headers: HTTP::Headers {\"Authorization\" => get_token, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = begin\n Response.from_json(response.body)\n rescue error : JSON::SerializableError\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(error)\n end\n if data = payload.data || payload.items\n str << data.strip[1..-2]\n end\n continuation = payload.paging.try(&.token)\n total_items = payload.paging.try(&.total)\n if continuation\n next_page = \"#{location}#{append}continuationToken=#{continuation}\"\n else\n if total_items\n uri = URI.parse(next_page)\n params = uri.query_params\n skip = params[\"pagingSkip\"]?.try(&.to_i) || 0\n taking = params[\"pagingTake\"]?.try(&.to_i) || 100\n if (skip + taking) >= total_items\n break\n end\n params[\"pagingSkip\"] = (skip + taking).to_s\n uri.query_params = params\n next_page = uri.to_s\n else\n break\n end\n end\n str << \",\"\n end\n str << \"]\"\nend\n"}},{"html_id":"live_occupancy(location:String,type:SpaceType|Nil=nil)-instance-method","name":"live_occupancy","doc":"the occupancy status of the spaces","summary":"

the occupancy status of the spaces

","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"args_string":"(location : String, type : SpaceType | Nil = nil)","args_html":"(location : String, type : SpaceType | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L144"},"def":{"name":"live_occupancy","args":[{"name":"location","external_name":"location","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"SpaceType | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n form.add(\"filterLocationId\", location)\n if type\n form.add(\"filterSpaceType\", type.value.to_s)\n end\nend\nArray(Occupancy).from_json(fetch(\"/api/v2.0/occupancy/space/live?#{params}\"))\n"}},{"html_id":"locations-instance-method","name":"locations","doc":"the list of buildings, levels, areas etc","summary":"

the list of buildings, levels, areas etc

","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L84"},"def":{"name":"locations","visibility":"Public","body":"Array(Location).from_json(fetch(\"/api/v2.0/locations?pagingTake=100\"))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/api.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}},{"html_id":"spaces(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces","doc":"a list of spaces in the locations. rooms, desks and parking","summary":"

a list of spaces in the locations.

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L89"},"def":{"name":"spaces","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"LocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"SpaceTypes\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces?#{params}\"))\n"}},{"html_id":"spaces_state(location:String|Nil=nil,types:SpaceType|Array(SpaceType)|Nil=nil)-instance-method","name":"spaces_state","doc":"Paged list of state per space, filtered by location/spacetype","summary":"

Paged list of state per space, filtered by location/spacetype

","abstract":false,"args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"args_string":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","args_html":"(location : String | Nil = nil, types : SpaceType | Array(SpaceType) | Nil = nil)","location":{"filename":"src/gobright/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/api.cr#L105"},"def":{"name":"spaces_state","args":[{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"types","default_value":"nil","external_name":"types","restriction":"SpaceType | Array(SpaceType) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"pagingTake\", \"100\")\n if location.presence.nil?\n else\n form.add(\"filterLocationId\", location.to_s)\n end\n if types\n types = types.is_a?(Array) ? types : [types]\n types.each do |type|\n form.add(\"filterSpaceType\", type.value.to_s)\n end\n end\nend\nArray(Space).from_json(fetch(\"/api/v2.0/spaces/state?#{params}\"))\n"}}]},{"html_id":"drivers/GoBright/ApprovalState","path":"GoBright/ApprovalState.html","kind":"enum","full_name":"GoBright::ApprovalState","name":"ApprovalState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L203"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Inactive","name":"Inactive","value":"0"},{"id":"NeedsApproval","name":"NeedsApproval","value":"1"},{"id":"Approved","name":"Approved","value":"2"},{"id":"Rejected","name":"Rejected","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"approved?-instance-method","name":"approved?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L206"},"def":{"name":"approved?","visibility":"Public","body":"self == Approved"}},{"html_id":"inactive?-instance-method","name":"inactive?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L204"},"def":{"name":"inactive?","visibility":"Public","body":"self == Inactive"}},{"html_id":"needs_approval?-instance-method","name":"needs_approval?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L205"},"def":{"name":"needs_approval?","visibility":"Public","body":"self == NeedsApproval"}},{"html_id":"rejected?-instance-method","name":"rejected?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L207"},"def":{"name":"rejected?","visibility":"Public","body":"self == Rejected"}}]},{"html_id":"drivers/GoBright/Attendee","path":"GoBright/Attendee.html","kind":"struct","full_name":"GoBright::Attendee","name":"Attendee","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L222"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"email_address=(email_address:String|Nil)-instance-method","name":"email_address=","abstract":false,"args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"args_string":"(email_address : String | Nil)","args_html":"(email_address : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L222"},"def":{"name":"email_address=","args":[{"name":"email_address","external_name":"email_address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email_address = email_address"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L223"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L223"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/GoBright/BookingType","path":"GoBright/BookingType.html","kind":"enum","full_name":"GoBright::BookingType","name":"BookingType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L210"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"BookingOnRoom","name":"BookingOnRoom","value":"0"},{"id":"ServiceOnly","name":"ServiceOnly","value":"1"},{"id":"BookingOnDesk","name":"BookingOnDesk","value":"2"},{"id":"BookingAsTeam","name":"BookingAsTeam","value":"3"},{"id":"BookingOnParking","name":"BookingOnParking","value":"4"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"booking_as_team?-instance-method","name":"booking_as_team?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L214"},"def":{"name":"booking_as_team?","visibility":"Public","body":"self == BookingAsTeam"}},{"html_id":"booking_on_desk?-instance-method","name":"booking_on_desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L213"},"def":{"name":"booking_on_desk?","visibility":"Public","body":"self == BookingOnDesk"}},{"html_id":"booking_on_parking?-instance-method","name":"booking_on_parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L215"},"def":{"name":"booking_on_parking?","visibility":"Public","body":"self == BookingOnParking"}},{"html_id":"booking_on_room?-instance-method","name":"booking_on_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L211"},"def":{"name":"booking_on_room?","visibility":"Public","body":"self == BookingOnRoom"}},{"html_id":"service_only?-instance-method","name":"service_only?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L212"},"def":{"name":"service_only?","visibility":"Public","body":"self == ServiceOnly"}}]},{"html_id":"drivers/GoBright/DeskPeriod","path":"GoBright/DeskPeriod.html","kind":"struct","full_name":"GoBright::DeskPeriod","name":"DeskPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L67"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L64"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L55"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L61"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L58"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Location","path":"GoBright/Location.html","kind":"struct","full_name":"GoBright::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_desk_periods:DeskPeriod|Nil-instance-method","name":"booking_desk_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L142"},"def":{"name":"booking_desk_periods","return_type":"DeskPeriod | ::Nil","visibility":"Public","body":"@booking_desk_periods"}},{"html_id":"booking_parking_periods:ParkingPeriod|Nil-instance-method","name":"booking_parking_periods","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L145"},"def":{"name":"booking_parking_periods","return_type":"ParkingPeriod | ::Nil","visibility":"Public","body":"@booking_parking_periods"}},{"html_id":"full_path:String|Nil-instance-method","name":"full_path","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L130"},"def":{"name":"full_path","return_type":"String | ::Nil","visibility":"Public","body":"@full_path"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L133"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L110"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image_id:String|Nil-instance-method","name":"image_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L139"},"def":{"name":"image_id","return_type":"String | ::Nil","visibility":"Public","body":"@image_id"}},{"html_id":"level:Int64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L127"},"def":{"name":"level","return_type":"Int64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L118"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name_indented:String|Nil-instance-method","name":"name_indented","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L121"},"def":{"name":"name_indented","return_type":"String | ::Nil","visibility":"Public","body":"@name_indented"}},{"html_id":"old_id:Int64|Nil-instance-method","name":"old_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L113"},"def":{"name":"old_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@old_id"}},{"html_id":"order:Int64|Nil-instance-method","name":"order","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L124"},"def":{"name":"order","return_type":"Int64 | ::Nil","visibility":"Public","body":"@order"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L116"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"visitor_kiosk_enabled:Bool|Nil-instance-method","name":"visitor_kiosk_enabled","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L136"},"def":{"name":"visitor_kiosk_enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@visitor_kiosk_enabled"}}]},{"html_id":"drivers/GoBright/LocationService","path":"GoBright/LocationService.html","kind":"class","full_name":"GoBright::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCHES","name":"NO_MATCHES","value":"[] of String"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L72"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"cache_space_details-instance-method","name":"cache_space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L75"},"def":{"name":"cache_space_details","visibility":"Public","body":"space_details = {} of String => Space\n(Array(Space).from_json(gobright.spaces.get.to_json)).each do |space|\n space_details[space.id] = space\nend\n@space_details = space_details\n"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/gobright/location_service.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L126"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"checking ownership of: #{mac_address}\"\nend\nif mac_address.starts_with?(\"gobright-\")\nelse\n return\nend\nid = (mac_address.split(\"gobright-\"))[1]\n@cached_booking_data.each do |zone_id, lookup|\n if booking = lookup[id]?\n return {location: \"booking\", assigned_to: booking.organizer.try(&.email_address) || (booking.attendees.first.email_address.as(String)), mac_address: mac_address}\n end\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L143"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && !(location.in?({\"desk\", \"area\", \"booking\"}))\n return [] of Nil\nend\ngobright_location_id = @floor_mappings[zone_id]\nspaces = {} of String => Space\nspace_details.each_value do |space|\n if space.location_id == gobright_location_id\n else\n next\n end\n spaces[space.id] = space.dup\nend\noccupancy = Array(Occupancy).from_json((gobright.live_occupancy(gobright_location_id, @default_space_type)).get.to_json)\noccupancy.each do |details|\n space = spaces[details.id]?\n if space\n else\n next\n end\n space.occupied = details.occupied? || false\nend\ndesk_types = @desk_space_types\noccupancy_locs = spaces.values.compact_map do |space|\n loc_type = space.type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n if (occupied = space.occupied?) || @return_empty_spaces\n {location: loc_type, at_location: occupied ? 1 : 0, map_id: space.name, level: zone_id, building: building_id, capacity: space.capacity || 1, gobright_location_id: gobright_location_id, gobright_space_name: space.name, gobright_space_type: space.type, gobright_space_id: space.id}\n end\nend\nif location && (location != \"booking\")\n return spaces\nend\nbookings = Array(Occurrence).from_json((gobright.bookings(1.minutes.ago.to_unix, 10.minutes.from_now.to_unix, gobright_location_id)).get.to_json)\nlookup = {} of String => Occurrence\nbooking_locs = bookings.compact_map do |occurrence|\n space = nil\n occurrence.spaces.each do |details|\n space = spaces[details.id]?\n if space\n break\n end\n end\n if space\n else\n next\n end\n occurrence.zone_id = zone_id\n occurrence.matched_space = space\n lookup[occurrence.id] = occurrence\n map_booking(occurrence, space, zone_id)\nend\n@cached_booking_data[zone_id] = lookup\nbooking_locs.map() do |__arg6|\n __arg6.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend + occupancy_locs.map() do |__arg7|\n __arg7.as(typeof(booking_locs[0]) | typeof(occupancy_locs[0]))\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L64"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L59"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"if (__temp_1 = @level_details).nil?\n @level_details = (Hash(String, LevelCapacity).from_json(area_management.level_details.get.to_json))\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"NOTE:: we could keep track of current bookings and then use that information to assign ownership of a desk\nif the desks are being booked via the check-in/check-out\nthis would allow us to locate","summary":"

NOTE : we could keep track of current bookings and then use that information to assign ownership of a desk if the desks are being booked via the check-in/check-out this would allow us to locate

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/gobright/location_service.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L93"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for user #{email}\"\nend\nmatches = [] of Occurrence\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n else\n next\n end\n matches << booking\n end\nend\nmatches.compact_map do |booking|\n zone_id = booking.zone_id\n map_booking(booking, booking.matched_space, zone_id, level_details[zone_id]?.try(&.desk_mappings))\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/gobright/location_service.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L114"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"if email\nelse\n return NO_MATCHES\nend\nlogger.debug do\n \"checking if any bookings for email: #{email}\"\nend\nmatches = [] of String\n@cached_booking_data.each do |zone_id, lookup|\n lookup.each_value do |booking|\n if booking.organizer.try(&.email_address) == email\n matches << \"gobright-#{booking.id}\"\n end\n end\nend\nmatches\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@desk_space_types = (setting?(Array(SpaceType), :desk_space_types)) || [SpaceType::Desk]\n@default_space_type = (setting?(SpaceType, :default_space_type)) || nil\n@floor_mappings = (setting(Hash(String, Mapping), :gobright_floor_mappings)).transform_values(&.location_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\ntimezone = Time::Location.load(system.timezone.presence || \"Australia/Sydney\")\nschedule.clear\nschedule.cron((setting?(String, :space_cache_cron)) || \"0 5 * * *\", timezone) do\n cache_space_details\nend\nschedule.every(10.minutes) do\n @level_details = nil\nend\n"}},{"html_id":"space_details:Hash(String,Space)-instance-method","name":"space_details","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L73"},"def":{"name":"space_details","return_type":"Hash(String, Space)","visibility":"Public","body":"if (__temp_1 = @space_details).nil?\n @space_details = (cache_space_details)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/GoBright/LocationService/LevelCapacity","path":"GoBright/LocationService/LevelCapacity.html","kind":"struct","full_name":"GoBright::LocationService::LevelCapacity","name":"LevelCapacity","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"desk_mappings:Hash(String,String)-instance-method","name":"desk_mappings","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L42"},"def":{"name":"desk_mappings","return_type":"Hash(String, String)","visibility":"Public","body":"@desk_mappings"}}]},{"html_id":"drivers/GoBright/LocationService/Mapping","path":"GoBright/LocationService/Mapping.html","kind":"struct","full_name":"GoBright::LocationService::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/location_service.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright/LocationService","kind":"class","full_name":"GoBright::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L35"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/location_service.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/location_service.cr#L36"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}}]}]},{"html_id":"drivers/GoBright/Metadata","path":"GoBright/Metadata.html","kind":"struct","full_name":"GoBright::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"message:String|Nil-instance-method","name":"message","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L11"},"def":{"name":"message","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"status_code:Int32|Nil-instance-method","name":"status_code","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L8"},"def":{"name":"status_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status_code"}},{"html_id":"validation_errors:Array(Hash(String,String))|Nil-instance-method","name":"validation_errors","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L14"},"def":{"name":"validation_errors","return_type":"Array(Hash(String, String)) | ::Nil","visibility":"Public","body":"@validation_errors"}}]},{"html_id":"drivers/GoBright/Occupancy","path":"GoBright/Occupancy.html","kind":"struct","full_name":"GoBright::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L182"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L183"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L186"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"occupied?:Bool|Nil-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L189"},"def":{"name":"occupied?","return_type":"Bool | ::Nil","visibility":"Public","body":"@occupied"}}]},{"html_id":"drivers/GoBright/Occurrence","path":"GoBright/Occurrence.html","kind":"struct","full_name":"GoBright::Occurrence","name":"Occurrence","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L226"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L227"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approval_state:ApprovalState|Nil-instance-method","name":"approval_state","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L244"},"def":{"name":"approval_state","return_type":"ApprovalState | ::Nil","visibility":"Public","body":"@approval_state"}},{"html_id":"approval_state=(approval_state:ApprovalState|Nil)-instance-method","name":"approval_state=","abstract":false,"args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"args_string":"(approval_state : ApprovalState | Nil)","args_html":"(approval_state : ApprovalState | Nil)","location":{"filename":"src/gobright/models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L244"},"def":{"name":"approval_state=","args":[{"name":"approval_state","external_name":"approval_state","restriction":"ApprovalState | ::Nil"}],"visibility":"Public","body":"@approval_state = approval_state"}},{"html_id":"attendee_amount:Int32|Nil-instance-method","name":"attendee_amount","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount","return_type":"Int32 | ::Nil","visibility":"Public","body":"@attendee_amount"}},{"html_id":"attendee_amount=(attendee_amount:Int32|Nil)-instance-method","name":"attendee_amount=","abstract":false,"args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"args_string":"(attendee_amount : Int32 | Nil)","args_html":"(attendee_amount : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L263"},"def":{"name":"attendee_amount=","args":[{"name":"attendee_amount","external_name":"attendee_amount","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@attendee_amount = attendee_amount"}},{"html_id":"attendees:Array(Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L260"},"def":{"name":"attendees","return_type":"Array(Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"attendees=(attendees:Array(Attendee))-instance-method","name":"attendees=","abstract":false,"args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"args_string":"(attendees : Array(Attendee))","args_html":"(attendees : Array(Attendee))","location":{"filename":"src/gobright/models.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L260"},"def":{"name":"attendees=","args":[{"name":"attendees","external_name":"attendees","restriction":"Array(Attendee)"}],"visibility":"Public","body":"@attendees = attendees"}},{"html_id":"booking_type:BookingType-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L235"},"def":{"name":"booking_type","return_type":"BookingType","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:BookingType)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"args_string":"(booking_type : BookingType)","args_html":"(booking_type : BookingType)","location":{"filename":"src/gobright/models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L235"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"BookingType"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"composed_id:String-instance-method","name":"composed_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L232"},"def":{"name":"composed_id","return_type":"String","visibility":"Public","body":"@composed_id"}},{"html_id":"composed_id=(composed_id:String)-instance-method","name":"composed_id=","abstract":false,"args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"args_string":"(composed_id : String)","args_html":"(composed_id : String)","location":{"filename":"src/gobright/models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L232"},"def":{"name":"composed_id=","args":[{"name":"composed_id","external_name":"composed_id","restriction":"String"}],"visibility":"Public","body":"@composed_id = composed_id"}},{"html_id":"confirmation_active:Bool|Nil-instance-method","name":"confirmation_active","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active","return_type":"Bool | ::Nil","visibility":"Public","body":"@confirmation_active"}},{"html_id":"confirmation_active=(confirmation_active:Bool|Nil)-instance-method","name":"confirmation_active=","abstract":false,"args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"args_string":"(confirmation_active : Bool | Nil)","args_html":"(confirmation_active : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L266"},"def":{"name":"confirmation_active=","args":[{"name":"confirmation_active","external_name":"confirmation_active","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@confirmation_active = confirmation_active"}},{"html_id":"confirmation_window_end:String|Nil-instance-method","name":"confirmation_window_end","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_end"}},{"html_id":"confirmation_window_end=(confirmation_window_end:String|Nil)-instance-method","name":"confirmation_window_end=","abstract":false,"args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_end : String | Nil)","args_html":"(confirmation_window_end : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L272"},"def":{"name":"confirmation_window_end=","args":[{"name":"confirmation_window_end","external_name":"confirmation_window_end","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_end = confirmation_window_end"}},{"html_id":"confirmation_window_start:String|Nil-instance-method","name":"confirmation_window_start","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start","return_type":"String | ::Nil","visibility":"Public","body":"@confirmation_window_start"}},{"html_id":"confirmation_window_start=(confirmation_window_start:String|Nil)-instance-method","name":"confirmation_window_start=","abstract":false,"args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"args_string":"(confirmation_window_start : String | Nil)","args_html":"(confirmation_window_start : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L269"},"def":{"name":"confirmation_window_start=","args":[{"name":"confirmation_window_start","external_name":"confirmation_window_start","restriction":"String | ::Nil"}],"visibility":"Public","body":"@confirmation_window_start = confirmation_window_start"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L256"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L256"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L229"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/gobright/models.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L229"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"intention_type:Int32|Nil-instance-method","name":"intention_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L238"},"def":{"name":"intention_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@intention_type"}},{"html_id":"intention_type=(intention_type:Int32|Nil)-instance-method","name":"intention_type=","abstract":false,"args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"args_string":"(intention_type : Int32 | Nil)","args_html":"(intention_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L238"},"def":{"name":"intention_type=","args":[{"name":"intention_type","external_name":"intention_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@intention_type = intention_type"}},{"html_id":"is_anonymously_booked:Bool|Nil-instance-method","name":"is_anonymously_booked","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_anonymously_booked"}},{"html_id":"is_anonymously_booked=(is_anonymously_booked:Bool|Nil)-instance-method","name":"is_anonymously_booked=","abstract":false,"args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"args_string":"(is_anonymously_booked : Bool | Nil)","args_html":"(is_anonymously_booked : Bool | Nil)","location":{"filename":"src/gobright/models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L247"},"def":{"name":"is_anonymously_booked=","args":[{"name":"is_anonymously_booked","external_name":"is_anonymously_booked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_anonymously_booked = is_anonymously_booked"}},{"html_id":"license_plate:String|Nil-instance-method","name":"license_plate","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L250"},"def":{"name":"license_plate","return_type":"String | ::Nil","visibility":"Public","body":"@license_plate"}},{"html_id":"license_plate=(license_plate:String|Nil)-instance-method","name":"license_plate=","abstract":false,"args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"args_string":"(license_plate : String | Nil)","args_html":"(license_plate : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L250"},"def":{"name":"license_plate=","args":[{"name":"license_plate","external_name":"license_plate","restriction":"String | ::Nil"}],"visibility":"Public","body":"@license_plate = license_plate"}},{"html_id":"matched_space:Space-instance-method","name":"matched_space","abstract":false,"def":{"name":"matched_space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @matched_space).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#matched_space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"matched_space=(matched_space:Space)-instance-method","name":"matched_space=","abstract":false,"args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"args_string":"(matched_space : Space)","args_html":"(matched_space : Space)","location":{"filename":"src/gobright/models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L278"},"def":{"name":"matched_space=","args":[{"name":"matched_space","external_name":"matched_space","restriction":"Space"}],"visibility":"Public","body":"@matched_space = matched_space"}},{"html_id":"matched_space?:Space|Nil-instance-method","name":"matched_space?","abstract":false,"def":{"name":"matched_space?","return_type":"Space | ::Nil","visibility":"Public","body":"@matched_space"}},{"html_id":"organizer:Attendee|Nil-instance-method","name":"organizer","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L258"},"def":{"name":"organizer","return_type":"Attendee | ::Nil","visibility":"Public","body":"@organizer"}},{"html_id":"organizer=(organizer:Attendee|Nil)-instance-method","name":"organizer=","abstract":false,"args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"args_string":"(organizer : Attendee | Nil)","args_html":"(organizer : Attendee | Nil)","location":{"filename":"src/gobright/models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L258"},"def":{"name":"organizer=","args":[{"name":"organizer","external_name":"organizer","restriction":"Attendee | ::Nil"}],"visibility":"Public","body":"@organizer = organizer"}},{"html_id":"recurrence_type:Int32|Nil-instance-method","name":"recurrence_type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@recurrence_type"}},{"html_id":"recurrence_type=(recurrence_type:Int32|Nil)-instance-method","name":"recurrence_type=","abstract":false,"args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"args_string":"(recurrence_type : Int32 | Nil)","args_html":"(recurrence_type : Int32 | Nil)","location":{"filename":"src/gobright/models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L241"},"def":{"name":"recurrence_type=","args":[{"name":"recurrence_type","external_name":"recurrence_type","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@recurrence_type = recurrence_type"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L259"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/gobright/models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L259"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L253"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/gobright/models.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L253"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}},{"html_id":"subject:String|Nil-instance-method","name":"subject","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L257"},"def":{"name":"subject","return_type":"String | ::Nil","visibility":"Public","body":"@subject"}},{"html_id":"subject=(subject:String|Nil)-instance-method","name":"subject=","abstract":false,"args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"args_string":"(subject : String | Nil)","args_html":"(subject : String | Nil)","location":{"filename":"src/gobright/models.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L257"},"def":{"name":"subject=","args":[{"name":"subject","external_name":"subject","restriction":"String | ::Nil"}],"visibility":"Public","body":"@subject = subject"}},{"html_id":"zone_id:String-instance-method","name":"zone_id","abstract":false,"def":{"name":"zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @zone_id).nil?\n ::raise(::NilAssertionError.new(\"GoBright::Occurrence#zone_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"zone_id=(zone_id:String)-instance-method","name":"zone_id=","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/gobright/models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L275"},"def":{"name":"zone_id=","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"@zone_id = zone_id"}},{"html_id":"zone_id?:String|Nil-instance-method","name":"zone_id?","abstract":false,"def":{"name":"zone_id?","return_type":"String | ::Nil","visibility":"Public","body":"@zone_id"}}]},{"html_id":"drivers/GoBright/Paging","path":"GoBright/Paging.html","kind":"struct","full_name":"GoBright::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L24"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"total:Int32|Nil-instance-method","name":"total","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L21"},"def":{"name":"total","return_type":"Int32 | ::Nil","visibility":"Public","body":"@total"}}]},{"html_id":"drivers/GoBright/ParkingPeriod","path":"GoBright/ParkingPeriod.html","kind":"struct","full_name":"GoBright::ParkingPeriod","name":"ParkingPeriod","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L70"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L71"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_of_day:String|Nil-instance-method","name":"end_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L86"},"def":{"name":"end_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@end_of_day"}},{"html_id":"middle_of_day:String|Nil-instance-method","name":"middle_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L83"},"def":{"name":"middle_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@middle_of_day"}},{"html_id":"mode:Int64|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L74"},"def":{"name":"mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"start_of_day:String|Nil-instance-method","name":"start_of_day","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L80"},"def":{"name":"start_of_day","return_type":"String | ::Nil","visibility":"Public","body":"@start_of_day"}},{"html_id":"working_mode:Int64|Nil-instance-method","name":"working_mode","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L77"},"def":{"name":"working_mode","return_type":"Int64 | ::Nil","visibility":"Public","body":"@working_mode"}}]},{"html_id":"drivers/GoBright/Response","path":"GoBright/Response.html","kind":"struct","full_name":"GoBright::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:String|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L34"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"items:String|Nil-instance-method","name":"items","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L37"},"def":{"name":"items","return_type":"String | ::Nil","visibility":"Public","body":"@items"}},{"html_id":"metadata:Metadata|Nil-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L31"},"def":{"name":"metadata","return_type":"Metadata | ::Nil","visibility":"Public","body":"@metadata"}},{"html_id":"paging:Paging|Nil-instance-method","name":"paging","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L40"},"def":{"name":"paging","return_type":"Paging | ::Nil","visibility":"Public","body":"@paging"}}]},{"html_id":"drivers/GoBright/Space","path":"GoBright/Space.html","kind":"class","full_name":"GoBright::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/gobright/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L156"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"amenities:Array(Amenity)-instance-method","name":"amenities","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L160"},"def":{"name":"amenities","return_type":"Array(Amenity)","visibility":"Public","body":"@amenities"}},{"html_id":"capacity:Int64|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L170"},"def":{"name":"capacity","return_type":"Int64 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"iana_time_zone:String|Nil-instance-method","name":"iana_time_zone","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L169"},"def":{"name":"iana_time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@iana_time_zone"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L158"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"integration_external_id:String|Nil-instance-method","name":"integration_external_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L173"},"def":{"name":"integration_external_id","return_type":"String | ::Nil","visibility":"Public","body":"@integration_external_id"}},{"html_id":"is_bookable:Bool|Nil-instance-method","name":"is_bookable","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L176"},"def":{"name":"is_bookable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_bookable"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L166"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L159"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"occupied=(occupied:Bool)-instance-method","name":"occupied=","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"args_string":"(occupied : Bool)","args_html":"(occupied : Bool)","location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L179"},"def":{"name":"occupied=","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"}],"visibility":"Public","body":"@occupied = occupied"}},{"html_id":"occupied?:Bool-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L179"},"def":{"name":"occupied?","return_type":"Bool","visibility":"Public","body":"@occupied"}},{"html_id":"type:SpaceType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L163"},"def":{"name":"type","return_type":"SpaceType | ::Nil","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/GoBright/SpaceType","path":"GoBright/SpaceType.html","kind":"enum","full_name":"GoBright::SpaceType","name":"SpaceType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/gobright/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L148"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Room","name":"Room","value":"0"},{"id":"Desk","name":"Desk","value":"1"},{"id":"CombinedRoom","name":"CombinedRoom","value":"2"},{"id":"Parking","name":"Parking","value":"3"}],"namespace":{"html_id":"drivers/GoBright","kind":"module","full_name":"GoBright","name":"GoBright"},"instance_methods":[{"html_id":"combined_room?-instance-method","name":"combined_room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L151"},"def":{"name":"combined_room?","visibility":"Public","body":"self == CombinedRoom"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L150"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}},{"html_id":"parking?-instance-method","name":"parking?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L152"},"def":{"name":"parking?","visibility":"Public","body":"self == Parking"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/gobright/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/gobright/models.cr#L149"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}}]}]},{"html_id":"drivers/Halite","path":"Halite.html","kind":"module","full_name":"Halite","name":"Halite","abstract":false,"locations":[{"filename":"lib/halite/src/halite.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite.cr#L4"},{"filename":"lib/halite/src/halite/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/chainable.cr#L3"},{"filename":"lib/halite/src/halite/client.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/client.cr#L8"},{"filename":"lib/halite/src/halite/error.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/error.cr#L1"},{"filename":"lib/halite/src/halite/feature.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/feature.cr#L1"},{"filename":"lib/halite/src/halite/features/cache.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/features/cache.cr#L5"},{"filename":"lib/halite/src/halite/features/logging.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/features/logging.cr#L10"},{"filename":"lib/halite/src/halite/form_data.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/form_data.cr#L4"},{"filename":"lib/halite/src/halite/header_link.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/header_link.cr#L1"},{"filename":"lib/halite/src/halite/mime_type.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/mime_type.cr#L1"},{"filename":"lib/halite/src/halite/options.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options.cr#L4"},{"filename":"lib/halite/src/halite/options/follow.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options/follow.cr#L1"},{"filename":"lib/halite/src/halite/options/timeout.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/options/timeout.cr#L1"},{"filename":"lib/halite/src/halite/rate_limit.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/rate_limit.cr#L1"},{"filename":"lib/halite/src/halite/redirector.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/redirector.cr#L1"},{"filename":"lib/halite/src/halite/request.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/request.cr#L1"},{"filename":"lib/halite/src/halite/response.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/response.cr#L1"},{"filename":"lib/quantum/src/quantum/extensions/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/quantum/src/quantum/extensions/client.cr#L1"},{"filename":"lib/sabo/src/sabo/ext/client.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/sabo/src/sabo/ext/client.cr#L1"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/stripetease/src/stripetease/extensions/chainable.cr#L1"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Halite/Chainable","kind":"module","full_name":"Halite::Chainable","name":"Chainable"},{"html_id":"drivers/Halite/FeatureRegister","kind":"module","full_name":"Halite::FeatureRegister","name":"FeatureRegister"}],"types":[{"html_id":"drivers/Halite/Chainable","path":"Halite/Chainable.html","kind":"module","full_name":"Halite::Chainable","name":"Chainable","abstract":false,"locations":[{"filename":"lib/halite/src/halite/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/halite/src/halite/chainable.cr#L4"},{"filename":"lib/stripetease/src/stripetease/extensions/chainable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/stripetease/src/stripetease/extensions/chainable.cr#L2"},{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Halite","kind":"module","full_name":"Halite","name":"Halite"},"instance_methods":[{"html_id":"cookies(cookies:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"cookies","doc":"Make a request with the given cookies\n\n```\nHalite.cookies({\"private-token\", \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.cookies({private-token: \"6abaef100b77808ceb7fe26a3bcff1d0\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given cookies

","abstract":false,"args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(cookies : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L189"},"def":{"name":"cookies","args":[{"name":"cookies","external_name":"cookies","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_cookies(cookies))"}},{"html_id":"headers(headers:Hash(String,_)|NamedTuple):Halite::Client-instance-method","name":"headers","doc":"Make a request with the given headers\n\n```\nHalite.headers({\"Content-Type\", \"application/json\", \"Connection\": \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n# Or\nHalite.headers({content_type: \"application/json\", connection: \"keep-alive\"})\n .get(\"http://httpbin.org/get\")\n```","summary":"

Make a request with the given headers

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"args_string":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","args_html":"(headers : Hash(String, _) | NamedTuple) : Halite::Client","location":{"filename":"src/cisco/webex/extensions/chainable.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/cisco/webex/extensions/chainable.cr#L166"},"def":{"name":"headers","args":[{"name":"headers","external_name":"headers","restriction":"Hash(String, _) | NamedTuple"}],"return_type":"Halite::Client","visibility":"Public","body":"branch(default_options.with_headers(headers))"}}]}]},{"html_id":"drivers/Helvar","path":"Helvar.html","kind":"module","full_name":"Helvar","name":"Helvar","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Helvar/Net","path":"Helvar/Net.html","kind":"class","full_name":"Helvar::Net","name":"Net","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/helvar/net.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_METHODS","name":"CMD_METHODS","value":"{group_scene: 11, device_scene: 12, group_level: 13, device_level: 14, group_proportion: 15, device_proportion: 16, group_modify_proportion: 17, device_modify_proportion: 18, group_emergency_test: 19, device_emergency_test: 20, group_emergency_duration_test: 21, device_emergency_duration_test: 22, group_emergency_stop: 23, device_emergency_stop: 24, query_lamp_hours: 70, query_ballast_hours: 71, query_max_voltage: 72, query_min_voltage: 73, query_max_temp: 74, query_min_temp: 75, query_device_types_with_addresses: 100, query_clusters: 101, query_routers: 102, query_LSIB: 103, query_device_type: 104, query_description_group: 105, query_description_device: 106, query_workgroup_name: 107, query_workgroup_membership: 108, query_last_scene: 109, query_device_state: 110, query_device_disabled: 111, query_lamp_failure: 112, query_device_faulty: 113, query_missing: 114, query_emergency_battery_failure: 129, query_measurement: 150, query_inputs: 151, query_load: 152, query_power_consumption: 160, query_group_power_consumption: 161, query_group: 164, query_groups: 165, query_scene_names: 166, query_scene_info: 167, query_emergency_func_test_time: 170, query_emergency_func_test_state: 171, query_emergency_duration_time: 172, query_emergency_duration_state: 173, query_emergency_battery_charge: 174, query_emergency_battery_time: 175, query_emergency_total_lamp_time: 176, query_time: 185, query_longitude: 186, query_latitude: 187, query_time_zone: 188, query_daylight_savings: 189, query_software_version: 190, query_helvar_net: 191}"},{"id":"COMMANDS","name":"COMMANDS","value":"{\"group_scene\" => \"11\", \"device_scene\" => \"12\", \"group_level\" => \"13\", \"device_level\" => \"14\", \"group_proportion\" => \"15\", \"device_proportion\" => \"16\", \"group_modify_proportion\" => \"17\", \"device_modify_proportion\" => \"18\", \"group_emergency_test\" => \"19\", \"device_emergency_test\" => \"20\", \"group_emergency_duration_test\" => \"21\", \"device_emergency_duration_test\" => \"22\", \"group_emergency_stop\" => \"23\", \"device_emergency_stop\" => \"24\", \"query_lamp_hours\" => \"70\", \"query_ballast_hours\" => \"71\", \"query_max_voltage\" => \"72\", \"query_min_voltage\" => \"73\", \"query_max_temp\" => \"74\", \"query_min_temp\" => \"75\", \"query_device_types_with_addresses\" => \"100\", \"query_clusters\" => \"101\", \"query_routers\" => \"102\", \"query_LSIB\" => \"103\", \"query_device_type\" => \"104\", \"query_description_group\" => \"105\", \"query_description_device\" => \"106\", \"query_workgroup_name\" => \"107\", \"query_workgroup_membership\" => \"108\", \"query_last_scene\" => \"109\", \"query_device_state\" => \"110\", \"query_device_disabled\" => \"111\", \"query_lamp_failure\" => \"112\", \"query_device_faulty\" => \"113\", \"query_missing\" => \"114\", \"query_emergency_battery_failure\" => \"129\", \"query_measurement\" => \"150\", \"query_inputs\" => \"151\", \"query_load\" => \"152\", \"query_power_consumption\" => \"160\", \"query_group_power_consumption\" => \"161\", \"query_group\" => \"164\", \"query_groups\" => \"165\", \"query_scene_names\" => \"166\", \"query_scene_info\" => \"167\", \"query_emergency_func_test_time\" => \"170\", \"query_emergency_func_test_state\" => \"171\", \"query_emergency_duration_time\" => \"172\", \"query_emergency_duration_state\" => \"173\", \"query_emergency_battery_charge\" => \"174\", \"query_emergency_battery_time\" => \"175\", \"query_emergency_total_lamp_time\" => \"176\", \"query_time\" => \"185\", \"query_longitude\" => \"186\", \"query_latitude\" => \"187\", \"query_time_zone\" => \"188\", \"query_daylight_savings\" => \"189\", \"query_software_version\" => \"190\", \"query_helvar_net\" => \"191\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"0\" => \"success\", \"1\" => \"invalid group index parameter\", \"2\" => \"invalid cluster parameter\", \"3\" => \"invalid router\", \"4\" => \"invalid router subnet\", \"5\" => \"invalid device parameter\", \"6\" => \"invalid sub device parameter\", \"7\" => \"invalid block parameter\", \"8\" => \"invalid scene\", \"9\" => \"cluster does not exist\", \"10\" => \"router does not exist\", \"11\" => \"device does not exist\", \"12\" => \"property does not exist\", \"13\" => \"invalid RAW message size\", \"14\" => \"invalid messages type\", \"15\" => \"invalid message command\", \"16\" => \"missing ASCII terminator\", \"17\" => \"missing ASCII parameter\", \"18\" => \"incompatible version\"}"},{"id":"PARAMS","name":"PARAMS","value":"{\"V\" => :ver, \"Q\" => :seq, \"C\" => :cmd, \"A\" => :ack, \"@\" => :addr, \"F\" => :fade, \"T\" => :time, \"L\" => :level, \"G\" => :group, \"S\" => :scene, \"B\" => :block, \"N\" => :latitude, \"E\" => :longitude, \"Z\" => :time_zone, \"P\" => :proportion, \"D\" => :display_screen, \"Y\" => :daylight_savings, \"O\" => :force_store_scene, \"K\" => :constant_light_scene}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Helvar","kind":"module","full_name":"Helvar","name":"Helvar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Helvar\"\n end\n if poll_group = @poll_group\n get_current_preset(poll_group)\n else\n query_software_version\n end\nend"}},{"html_id":"device_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"22\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"24\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"20\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"14\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"18\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"16\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"device_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"device_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"device_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"12\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L46"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(group:Int32)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L67"},"def":{"name":"get_current_preset","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_last_scene(group: group, name: \"query_scene#{group}\")"}},{"html_id":"group_emergency_duration_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_duration_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_duration_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"21\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_stop(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_stop","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_stop","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"23\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_emergency_test(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_emergency_test","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_emergency_test","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"19\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_level(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_level","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_level","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"13\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_modify_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_modify_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_modify_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"17\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_proportion(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_proportion","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_proportion","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"15\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"group_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"group_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"group_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"11\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"light_level(group:Int32,level:Int32,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, level : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, level : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L55"},"def":{"name":"light_level","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}_level\"] = level\ngroup_level(group: group, level: level, fade: fade, name: \"group_level#{group}\")\n"}},{"html_id":"lighting(group:Int32,state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(group : Int32, state : Bool)","args_html":"(group : Int32, state : Bool)","location":{"filename":"src/helvar/net.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L50"},"def":{"name":"lighting","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(group, level)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L337"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"group = check_arguments(area)\nif scene = (get_current_preset(group)).get(response_required: true).payload.to_i\n payload = (query_scene_levels(group)).get(response_required: true).payload\n levels = Array(Int32).from_json(payload)\n self[\"area#{group}_level\"] = levels[scene]\nend\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/helvar/net.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L328"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"get_current_preset(check_arguments(area))"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"#\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(Int32, :version)) || 2\n@ignore_blocks = (setting?(Bool, :ignore_blocks)) || true\n@poll_group = setting?(Int32, :poll_group)\n"}},{"html_id":"query_ballast_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_ballast_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_ballast_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"71\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_clusters(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_clusters","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_clusters","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"101\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_daylight_savings(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_daylight_savings","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_daylight_savings","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"189\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_device(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_device","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_description_device","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"106\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_description_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_description_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_description_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"105\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_disabled(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_disabled","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_disabled","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"111\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_faulty(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_faulty","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_faulty","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"113\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"110\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_type(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_type","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_type","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"104\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_device_types_with_addresses(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_device_types_with_addresses","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_device_types_with_addresses","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"100\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_charge(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_charge","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_charge","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"174\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"129\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_battery_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_battery_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_battery_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"175\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"173\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_duration_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_duration_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_duration_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"172\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_state(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_state","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_state","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"171\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_func_test_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_func_test_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_func_test_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"170\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_emergency_total_lamp_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_emergency_total_lamp_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_emergency_total_lamp_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"176\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_group","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"164\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_group_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_group_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_group_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"161\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_groups(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_groups","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_groups","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"165\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_helvar_net(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_helvar_net","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_helvar_net","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"191\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_inputs(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_inputs","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_inputs","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"151\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_failure(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_failure","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_failure","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"112\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_lamp_hours(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_lamp_hours","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_lamp_hours","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"70\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_last_scene(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_last_scene","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_last_scene","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"109\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_latitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_latitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_latitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"187\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_load(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_load","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_load","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"152\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_longitude(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_longitude","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_longitude","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"186\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_LSIB(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_LSIB","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_LSIB","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"103\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_max_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"74\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_max_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_max_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_max_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"72\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_measurement(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_measurement","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_measurement","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"150\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_temp(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_temp","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_min_temp","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"75\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_min_voltage(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_min_voltage","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_min_voltage","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"73\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_missing(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_missing","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_missing","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"114\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_power_consumption(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_power_consumption","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_power_consumption","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"160\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_routers(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_routers","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_routers","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"102\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_info(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_info","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_scene_info","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"167\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_scene_levels(group:Int32)-instance-method","name":"query_scene_levels","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"}],"args_string":"(group : Int32)","args_html":"(group : Int32)","location":{"filename":"src/helvar/net.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L71"},"def":{"name":"query_scene_levels","args":[{"name":"group","external_name":"group","restriction":"Int32"}],"visibility":"Public","body":"query_scene_info(group: group, name: \"query_scene#{group}_info\")"}},{"html_id":"query_scene_names(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_scene_names","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_scene_names","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"166\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_software_version(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_software_version","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_software_version","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"190\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_time","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"185\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_time_zone(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_time_zone","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_time_zone","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"188\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_membership(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_membership","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_membership","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"108\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"query_workgroup_name(group:Int32|Nil=nil,block:Int32|Nil=nil,level:Int32|Nil=nil,scene:Int32|Nil=nil,fade:Int32|Nil=nil,addr:Int32|Nil=nil,**options)-instance-method","name":"query_workgroup_name","abstract":false,"args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"args_string":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","args_html":"(group : Int32 | Nil = nil, block : Int32 | Nil = nil, level : Int32 | Nil = nil, scene : Int32 | Nil = nil, fade : Int32 | Nil = nil, addr : Int32 | Nil = nil, **options)","location":{"filename":"src/helvar/net.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L140"},"def":{"name":"query_workgroup_name","args":[{"name":"group","default_value":"nil","external_name":"group","restriction":"Int32 | ::Nil"},{"name":"block","default_value":"nil","external_name":"block","restriction":"Int32 | ::Nil"},{"name":"level","default_value":"nil","external_name":"level","restriction":"Int32 | ::Nil"},{"name":"scene","default_value":"nil","external_name":"scene","restriction":"Int32 | ::Nil"},{"name":"fade","default_value":"nil","external_name":"fade","restriction":"Int32 | ::Nil"},{"name":"addr","default_value":"nil","external_name":"addr","restriction":"Int32 | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"107\", @version, group, block, level, scene, fade, addr, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/helvar/net.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L181"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Helvar sent: #{data}\"\nend\ntask_name = task.try(&.name)\ndata = data[0..-2]\nstart_of_message = data.index(/[\\?\\>\\!]V:/i)\nif start_of_message != 0\n logger.warn do\n \"Lighting error response: #{data[0...start_of_message]}\"\n end\n data = data[start_of_message..-1]\nend\ndata = data.delete(\"$\")\nindicator = data[0]\ncase indicator\nwhen '?', '>'\n data = data[1..-1]\n parts = data.split(\"=\")\n data = parts[0]\n value = parts[1]?\n params = {} of Symbol => String\n (data.split(\",\")).each do |param|\n parts = param.split(\":\")\n if parts.size > 1\n params[PARAMS[parts[0]]] = parts[1]\n else\n if parts[0][0] == '@'\n params[:addr] == parts[0][1..-1]\n else\n logger.debug do\n \"unknown param type #{param}\"\n end\n end\n end\n end\n ack = params[:ack]?\n if ack\n if ack != \"1\"\n return task.try(&.abort(\"request failed\"))\n end\n return task.try(&.success)\n end\n cmd = COMMANDS[params[:cmd]]\n case cmd\n when \"query_last_scene\"\n scene = value.try(&.to_i)\n group = params[:group]\n self[\"area#{group}\"] = scene\n if task_name == \"query_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_scene\"\n block = params[:block]\n group = params[:group]\n scene = params[:scene].to_i\n if block\n if @ignore_blocks\n self[\"area#{group}\"] = scene\n else\n self[\"area#{group}_#{block}\"] = scene\n end\n else\n self[\"area#{group}\"] = scene\n end\n if task_name == \"group_scene#{group}\"\n task.not_nil!.success(scene)\n end\n when \"group_level\"\n if task_name == \"group_level#{params[:group]}\"\n task.not_nil!.success\n end\n when \"query_scene_info\"\n group = params[:group]\n if value && (task_name == \"query_scene#{group}_info\")\n levels = ((value.split(\",L\"))[0].split(',')).map(&.to_i)\n task.not_nil!.success(levels)\n end\n else\n logger.debug do\n \"unknown response value\\n#{cmd} = #{value}\"\n end\n end\nwhen '!'\n error = ERRORS[(data.split(\"=\"))[1]]\n error = \"#{error} for #{data}\"\n self[:last_error] = error\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nelse\n logger.info do\n \"unknown request #{data}\"\n end\nend\nif task_name\nelse\n task.try(&.success)\nend\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L332"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\nlight_level(area_id, level.round_even.to_i, fade_time.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/helvar/net.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L324"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"trigger(check_arguments(area), scene.to_i, fade_time.to_i)"}},{"html_id":"trigger(group:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","abstract":false,"args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(group : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(group : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/helvar/net.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L61"},"def":{"name":"trigger","args":[{"name":"group","external_name":"group","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade = (fade / 10).to_i\nself[\"area#{group}\"] = scene\ngroup_scene(group: group, scene: scene, fade: fade, name: \"group_scene#{group}\")\n"}}],"macros":[{"html_id":"build_command_hash-macro","name":"build_command_hash","doc":"Generate a String => String hash based on the data above","summary":"

Generate a String => String hash based on the data above

","abstract":false,"location":{"filename":"src/helvar/net.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L147"},"def":{"name":"build_command_hash","visibility":"Public","body":" COMMANDS = \n{\n \n{% for name, command in CMD_METHODS %}\n {{ name.id.stringify }} => {{ command.id.stringify }},\n {% end %}\n\n }\n COMMANDS.merge!(COMMANDS.invert)\n \n"}}],"types":[{"html_id":"drivers/Helvar/Net/Area","path":"Helvar/Net/Area.html","kind":"alias","full_name":"Helvar::Net::Area","name":"Area","abstract":false,"locations":[{"filename":"src/helvar/net.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/helvar/net.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Helvar/Net","kind":"class","full_name":"Helvar::Net","name":"Net"}}]}]},{"html_id":"drivers/Hitachi","path":"Hitachi.html","kind":"module","full_name":"Hitachi","name":"Hitachi","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Hitachi/Projector","path":"Hitachi/Projector.html","kind":"module","full_name":"Hitachi::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Hitachi","kind":"module","full_name":"Hitachi","name":"Hitachi"},"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","path":"Hitachi/Projector/CpTwSeriesBasic.html","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Commands","name":"Commands","value":"{power_on: \"BA D2 01 00 00 60 01 00\", power_off: \"2A D3 01 00 00 60 00 00\", hdmi: \"0E D2 01 00 00 20 03 00\", hdmi2: \"6E D6 01 00 00 20 0D 00\", mute_video: \"6E F1 01 00 A0 20 01 00\", unmute_video: \"FE F0 01 00 A0 20 00 00\", mute_audio: \"D6 D2 01 00 02 20 01 00\", unmute_audio: \"46 D3 01 00 02 20 00 00\", lamp_hours_reset: \"58 DC 06 00 30 70 00 00\", filter_hours_reset: \"98 C6 06 00 40 70 00 00\", \"power?\": \"19 D3 02 00 00 60 00 00\", \"input?\": \"CD D2 02 00 00 20 00 00\", \"error?\": \"D9 D8 02 00 20 60 00 00\", \"freeze?\": \"B0 D2 02 00 02 30 00 00\", \"audio_mute?\": \"75 D3 02 00 02 20 00 00\", \"video_mute?\": \"CD F0 02 00 A0 20 00 00\", \"lamp?\": \"C2 FF 02 00 90 10 00 00\", \"filter?\": \"C2 F0 02 00 A0 10 00 00\"}","doc":"Note: commands have spaces in between each byte for readability","summary":"

Note: commands have spaces in between each byte for readability

"},{"id":"GetRequests","name":"GetRequests","value":"[:\"power?\", :\"input?\", :\"error?\", :\"freeze?\", :\"audio_mute?\", :\"video_mute?\", :\"lamp?\", :\"filter?\"] of ::Symbol"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Hitachi/Projector","kind":"module","full_name":"Hitachi::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?(**options)-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"audio_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"audio_mute?\", **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L32"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n poll_1\nend\nschedule.every(10.minutes, true) do\n poll_2\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L53"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@recover_power = nil\n@recover_input = nil\n"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"error?\", **options)"}},{"html_id":"filter?(**options)-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"filter?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"filter?\", **options)"}},{"html_id":"filter_hours_reset-instance-method","name":"filter_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L109"},"def":{"name":"filter_hours_reset","visibility":"Public","body":"do_send(:filter_hours_reset)\nfilter?\n"}},{"html_id":"freeze?(**options)-instance-method","name":"freeze?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"freeze?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"freeze?\", **options)"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"input?\", **options)"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"lamp?\", **options)"}},{"html_id":"lamp_hours_reset-instance-method","name":"lamp_hours_reset","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L104"},"def":{"name":"lamp_hours_reset","visibility":"Public","body":"do_send(:lamp_hours_reset)\nlamp?\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L77"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L95"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_audio)\nelse\n do_send(:unmute_audio)\nend\naudio_mute?\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L86"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n do_send(:mute_video)\nelse\n do_send(:unmute_video)\nend\nvideo_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nqueue.timeout = 5.seconds\nqueue.retries = 3\nself[:type] = :projector\n"}},{"html_id":"poll_1-instance-method","name":"poll_1","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L37"},"def":{"name":"poll_1","visibility":"Public","body":"power?(priority: 0).get\nif self[:power]?.try(&.as_bool)\n input?(priority: 0)\n audio_mute?(priority: 0)\n video_mute?(priority: 0)\n freeze?(priority: 0)\nend\n"}},{"html_id":"poll_2-instance-method","name":"poll_2","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L47"},"def":{"name":"poll_2","visibility":"Public","body":"lamp?(priority: 0)\nfilter?(priority: 0)\nerror?(priority: 0)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L59"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off)\nend\npower?\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"power?\", **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L139"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data}\"\nend\ncommand = task.try(&.name)\ncase Response.from_value(data[0])\nwhen .ack?\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"NAK response\"))\nwhen .error?\n task.try(&.abort(\"Error response\"))\nwhen .data?\n if command\n case command\n when \"power?\"\n self[:power] = data[1] == 1\n self[:cooling] = data[1] == 2\n if self[:power]? == @power_target\n @power_target = nil\n else\n if @power_target && @recover_power.nil?\n logger.debug do\n \"recovering power state #{self[:power]} != target #{@power_target}\"\n end\n @recover_power = schedule.in(3.seconds) do\n @recover_power = nil\n power(@power_target.not_nil!)\n end\n end\n end\n when \"input?\"\n input = Input.from_value?(data[1])\n self[:input] = input || \"unknown\"\n if @input_target\n if input == @input_target\n @input_target = nil\n else\n if @recover_input.nil?\n logger.debug do\n \"recovering input #{self[:input]} != target #{@input_target}\"\n end\n @recover_input = schedule.in(3.seconds) do\n @recover_input = nil\n switch_to(@input_target.not_nil!)\n end\n end\n end\n end\n when \"error?\"\n self[:error_status] = (Error.from_value?(data[1])) || \"unknown\"\n when \"freeze?\"\n self[:frozen] = data[1] == 1\n when \"audio_mute?\"\n self[:audio_mute] = data[1] == 1\n when \"video_mute?\"\n self[:video_mute] = data[1] == 1\n when \"lamp?\"\n self[:lamp] = data[1] * data[2]\n when \"filter?\"\n self[:filter] = data[1] * data[2]\n end\n task.try(&.success)\n else\n task.try(&.abort(\"data received for unknown command\"))\n end\nwhen .busy?\n if (data[1] == 4) && (data[2] == 0)\n task.try(&.abort(\"authentication enabled, please disable\"))\n else\n task.try(&.retry(\"projector busy, retrying\"))\n end\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L71"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ndo_send(input.to_s.downcase)\ninput?\n"}},{"html_id":"video_mute?(**options)-instance-method","name":"video_mute?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L231"},"def":{"name":"video_mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(\"video_mute?\", **options)"}}],"types":[{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Error","path":"Hitachi/Projector/CpTwSeriesBasic/Error.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Error","name":"Error","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L128"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Normal","name":"Normal","value":"0"},{"id":"Cover","name":"Cover","value":"1"},{"id":"Fan","name":"Fan","value":"2"},{"id":"Lamp","name":"Lamp","value":"3"},{"id":"Temp","name":"Temp","value":"4"},{"id":"AirFlow","name":"AirFlow","value":"5"},{"id":"Cold","name":"Cold","value":"6"},{"id":"Filter","name":"Filter","value":"7"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"air_flow?-instance-method","name":"air_flow?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L134"},"def":{"name":"air_flow?","visibility":"Public","body":"self == AirFlow"}},{"html_id":"cold?-instance-method","name":"cold?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L135"},"def":{"name":"cold?","visibility":"Public","body":"self == Cold"}},{"html_id":"cover?-instance-method","name":"cover?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L130"},"def":{"name":"cover?","visibility":"Public","body":"self == Cover"}},{"html_id":"fan?-instance-method","name":"fan?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L131"},"def":{"name":"fan?","visibility":"Public","body":"self == Fan"}},{"html_id":"filter?-instance-method","name":"filter?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L136"},"def":{"name":"filter?","visibility":"Public","body":"self == Filter"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L132"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"normal?-instance-method","name":"normal?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L129"},"def":{"name":"normal?","visibility":"Public","body":"self == Normal"}},{"html_id":"temp?-instance-method","name":"temp?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L133"},"def":{"name":"temp?","visibility":"Public","body":"self == Temp"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Input","path":"Hitachi/Projector/CpTwSeriesBasic/Input.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L122"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hdmi","name":"Hdmi","value":"3"},{"id":"Hdmi2","name":"Hdmi2","value":"13"},{"id":"HdbaSet","name":"HdbaSet","value":"17"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"hdba_set?-instance-method","name":"hdba_set?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L125"},"def":{"name":"hdba_set?","visibility":"Public","body":"self == HdbaSet"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L124"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L123"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}}]},{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic/Response","path":"Hitachi/Projector/CpTwSeriesBasic/Response.html","kind":"enum","full_name":"Hitachi::Projector::CpTwSeriesBasic::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L114"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"6"},{"id":"Nak","name":"Nak","value":"21"},{"id":"Error","name":"Error","value":"28"},{"id":"Data","name":"Data","value":"29"},{"id":"Busy","name":"Busy","value":"31"}],"namespace":{"html_id":"drivers/Hitachi/Projector/CpTwSeriesBasic","kind":"class","full_name":"Hitachi::Projector::CpTwSeriesBasic","name":"CpTwSeriesBasic"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L115"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"busy?-instance-method","name":"busy?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L119"},"def":{"name":"busy?","visibility":"Public","body":"self == Busy"}},{"html_id":"data?-instance-method","name":"data?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L118"},"def":{"name":"data?","visibility":"Public","body":"self == Data"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L117"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/hitachi/projector/cp_tw_series_basic.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/hitachi/projector/cp_tw_series_basic.cr#L116"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Infosilem","path":"Infosilem.html","kind":"module","full_name":"Infosilem","name":"Infosilem","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L4"},{"filename":"src/infosilem/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Infosilem/Campus","path":"Infosilem/Campus.html","kind":"class","full_name":"Infosilem::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String)","location":{"filename":"src/infosilem/campus.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L35"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"response = @integration.try(&.call(operation: \"StartTransfer\", body: {\"StartTransferOptions\" => Sabo::Parameter.from_hash(start_transfer_options(username: setting(String, :username), password: setting(String, :password)))}))\ntransfer_id = response.try(&.result)\nresponse = @booking.try(&.call(operation: \"RoomBookingOccurrence_ExportAll\", body: {\"TransferID\" => Sabo::Parameter.new(transfer_id.to_s), \"Options\" => Sabo::Parameter.from_hash(booking_options(building: building_id, room: room_id, start_date: start_date, end_date: end_date, start_time: start_date, end_time: end_date))}))\n@integration.try(&.call(operation: \"EndTransfer\", body: end_transfer_body(transfer_id: transfer_id.to_s)))\nself[\"room_#{room_id}_bookings_#{start_date}_#{end_date}\"] = response.try() do |__arg4|\n __arg4.result[\"ObjectData\"][\"ReservationOccurrences\"][\"ReservationOccurrence\"]?\nend || ([] of Int32)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/campus.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@integration = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/Integration/Integration.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n@booking = Sabo::Client.new(document: Sabo::WSDL::Document.new([host_name, \"/ExportOnly/RoomBookingPub.asmx?WSDL\"].join), prefix: \"http://www.infosilem.com/\", version: \"1.2\")\n"}}],"types":[{"html_id":"drivers/Infosilem/Campus/Client","path":"Infosilem/Campus/Client.html","kind":"alias","full_name":"Infosilem::Campus::Client","name":"Client","abstract":false,"locations":[{"filename":"src/infosilem/campus.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/campus.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Sabo::Client","aliased_html":"Sabo::Client","const":false,"namespace":{"html_id":"drivers/Infosilem/Campus","kind":"class","full_name":"Infosilem::Campus","name":"Campus"}}]},{"html_id":"drivers/Infosilem/DateTimeConvertor","path":"Infosilem/DateTimeConvertor.html","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/DateTimeConvertor","kind":"module","full_name":"Infosilem::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L37"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_local(\"#{Time.local.to_s(\"%F\")} #{value.read_string}\", \"%F %H:%M:%S\")"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L33"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%H:%M:%S\"))"}}]},{"html_id":"drivers/Infosilem/Event","path":"Infosilem/Event.html","kind":"class","full_name":"Infosilem::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflicting:Int32|Nil-instance-method","name":"conflicting","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L15"},"def":{"name":"conflicting","return_type":"Int32 | ::Nil","visibility":"Public","body":"@conflicting"}},{"html_id":"conflicting=(conflicting:Int32|Nil)-instance-method","name":"conflicting=","abstract":false,"args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"args_string":"(conflicting : Int32 | Nil)","args_html":"(conflicting : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L15"},"def":{"name":"conflicting=","args":[{"name":"conflicting","external_name":"conflicting","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@conflicting = conflicting"}},{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L23"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L23"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L9"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L9"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L25"},"def":{"name":"duration","visibility":"Public","body":"end_time - start_time"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L21"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Time)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"args_string":"(end_time : Time)","args_html":"(end_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L21"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Time"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L6"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/infosilem/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L6"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"number_of_attendees:Int32|Nil-instance-method","name":"number_of_attendees","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_attendees"}},{"html_id":"number_of_attendees=(number_of_attendees:Int32|Nil)-instance-method","name":"number_of_attendees=","abstract":false,"args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"args_string":"(number_of_attendees : Int32 | Nil)","args_html":"(number_of_attendees : Int32 | Nil)","location":{"filename":"src/infosilem/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L12"},"def":{"name":"number_of_attendees=","args":[{"name":"number_of_attendees","external_name":"number_of_attendees","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@number_of_attendees = number_of_attendees"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L18"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Time)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"args_string":"(start_time : Time)","args_html":"(start_time : Time)","location":{"filename":"src/infosilem/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L18"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Time"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Infosilem/IntegerConverter","path":"Infosilem/IntegerConverter.html","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter","abstract":false,"locations":[{"filename":"src/infosilem/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L42"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Infosilem/IntegerConverter","kind":"module","full_name":"Infosilem::IntegerConverter","name":"IntegerConverter"}],"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/infosilem/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L49"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"value.read_string.to_i"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/infosilem/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/models.cr#L45"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s)"}}]},{"html_id":"drivers/Infosilem/MockCampus","path":"Infosilem/MockCampus.html","kind":"class","full_name":"Infosilem::MockCampus","name":"MockCampus","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/mock_campus.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bookings?(building_id:String,room_id:String,start_date:String,end_date:String):Array(JSON::Any)-instance-method","name":"bookings?","abstract":false,"args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","args_html":"(building_id : String, room_id : String, start_date : String, end_date : String) : Array(JSON::Any)","location":{"filename":"src/infosilem/mock_campus.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L226"},"def":{"name":"bookings?","args":[{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"room_id","external_name":"room_id","restriction":"String"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"@response"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/mock_campus.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/mock_campus.cr#L222"},"def":{"name":"on_update","visibility":"Public","body":"@response = (setting?(Array(JSON::Any), :response)) || ([] of JSON::Any)"}}]},{"html_id":"drivers/Infosilem/RoomSchedule","path":"Infosilem/RoomSchedule.html","kind":"class","full_name":"Infosilem::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/infosilem/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Infosilem","kind":"module","full_name":"Infosilem","name":"Infosilem"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L34"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local.to_s(\"%Y-%m-%d\")\n todays_events = Array(Event).from_json(fetch_events(today, today))\n todays_events.sort_by(&.duration).reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.start_time\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by?(&.start_time)\n previous_event = past_events.max_by?(&.end_time)\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(start_date : String, end_date : String)","args_html":"(start_date : String, end_date : String)","location":{"filename":"src/infosilem/room_schedule.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L77"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"events = (infosilem.bookings?(@building_id, @room_id, start_date, end_date)).get.to_json\nif @debug\n logger.debug do\n \"Infosilem Campus returned: #{events}\"\n end\nend\nevents\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/infosilem/room_schedule.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/infosilem/room_schedule.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@building_id = setting(String, :infosilem_building_id)\n@room_id = setting(String, :infosilem_room_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/InnerRange","path":"InnerRange.html","kind":"module","full_name":"InnerRange","name":"InnerRange","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/InnerRange/Integriti","path":"InnerRange/Integriti.html","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"},{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L10"},{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PERMISSION_REGEX","name":"PERMISSION_REGEX","value":"/ID\\:\\s+(?[a-f0-9\\-]+)\\s+added/"},{"id":"PROPS","name":"PROPS","value":"{\"SystemInfo\" => \"ProductEdition,ProductVersion,ProtocolVersion\", \"RemoveResult\" => \"NumberOfItemsRemoved,Message\", \"AddResult\" => \"NumberOfItemsAdded,Message\", \"AddOrUpdateResult\" => \"ID,Address,Message\", \"PermissionGroup\" => \"attr_PartitionID,SiteName,SiteID,ID,Name,Address\", \"SiteKeyword\" => \"ID,Name,PartitionID\", \"Area\" => \"ID,Name,Site\", \"Partition\" => \"ID,Name,ParentId,PartitionId,ShortName\", \"User\" => \"ID,Name,SiteID,SiteName,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"FullUser\" => \"ID,Name,Site,Address,attr_PartitionID,cf_origo,cf_phone,cf_email,PrimaryPermissionGroup\", \"UserPermission\" => \"ID,What,ManagedByActiveDirectory,User,Deny,Expired\", \"CardFormat\" => \"ID,Name,SiteID,SiteName,Notes,Address,Site\", \"CardTemplate\" => \"ID,Name,SiteID,SiteName,Notes,Address,SiteCodeNumber,Site,Format\", \"Card\" => \"ID,Name,CardNumberNumeric,CardNumber,CardData,CardSerialNumber,IssueNumber,State,ExpiryDateTime,StartDateTime,LastUsed,CloudCredentialId,CloudCredentialType,CloudCredentialPoolId,CloudCredentialInvitationId,CloudCredentialInvitationCode,CloudCredentialCommunicationHandler,ManagedByActiveDirectory,Site,User,CardType\", \"Door\" => \"ID,Name,Site\", \"Review\" => \"ID,Text,UTCTimeGenerated,Type,Transition\"} of String => String"},{"id":"TIME_FORMAT","name":"TIME_FORMAT","value":"\"%Y-%m-%dT%H:%M:%S.%9N\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess","kind":"module","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess","name":"GuestBuildingAccess"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_entry(type:String,fields:UpdateFields,return_object:Bool=false)-instance-method","name":"add_entry","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, fields : UpdateFields, return_object : Bool = false)","args_html":"(type : String, fields : UpdateFields, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":482,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L482"},"def":{"name":"add_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"add(type, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"add_or_update(payload:String,return_object:Bool=false)-instance-method","name":"add_or_update","doc":"This is the only way to add or update a database entry...","summary":"

This is the only way to add or update a database entry...

","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(payload : String, return_object : Bool = false)","args_html":"(payload : String, return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":447,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L447"},"def":{"name":"add_or_update","args":[{"name":"payload","external_name":"payload","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"if return_object\n check(post(\"/v2/User/AddOrUpdate?IncludeObjectInResult=true\", body: payload))\nelse\n check(post(\"/v2/User/AddOrUpdate\", body: payload))\nend"}},{"html_id":"add_to_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"add_to_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L387"},"def":{"name":"add_to_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/addToCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"api_version:String-instance-method","name":"api_version","doc":"http://20.213.104.2:80/restapi/ApiVersion/v2","summary":"

http://20.213.104.2:80/restapi/ApiVersion/v2

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L359"},"def":{"name":"api_version","return_type":"String","visibility":"Public","body":"document = check(get(\"/ApiVersion\"))\nuri = URI.parse(document.first_element_child.try(&.content).as(String))\nPath[uri.path].basename\n"}},{"html_id":"area(id:Int64|String)-instance-method","name":"area","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":579,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L579"},"def":{"name":"area","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Area/#{id}?#{prop_param(\"Area\")}\"))\nextract_area(document)\n"}},{"html_id":"areas(site_id:Int32|Nil=nil)-instance-method","name":"areas","doc":"roughly zones in a building","summary":"

roughly zones in a building

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":568,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L568"},"def":{"name":"areas","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"areas = [] of Area\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Area\", filter) do |row|\n areas << (extract_area(row))\nend\nareas\n"}},{"html_id":"assign_card_to_user(user_id:String,card_template:String,card_number:String,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true)-instance-method","name":"assign_card_to_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","args_html":"(user_id : String, card_template : String, card_number : String, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true)","location":{"filename":"src/inner_range/integriti.cr","line_number":1130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1130"},"def":{"name":"assign_card_to_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"card_template","external_name":"card_template","restriction":"String"},{"name":"card_number","external_name":"card_number","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nif candidate = cards(template: card_template, number: card_number).first?\n set_card_user(candidate.id, user_id)\nelse\n card_id = create_card(card_number: card_number, user_id: user_id, partition_id: partition_id, site_id: site_id, card_template: card_template, externally_managed: externally_managed)\n candidate = cards(template: card_template, number: card_number).first\nend\ncandidate\n"}},{"html_id":"build_filter(filter:Filter):String-instance-method","name":"build_filter","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"args_string":"(filter : Filter) : String","args_html":"(filter : Filter) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L247"},"def":{"name":"build_filter","args":[{"name":"filter","external_name":"filter","restriction":"Filter"}],"return_type":"String","visibility":"Public","body":"XML.build(indent: \" \") do |xml|\n xml.element(\"FilterExpression\", {\"xmlns:xsd\" => \"http://www.w3.org/2001/XMLSchema\", \"xmlns:xsi\" => \"http://www.w3.org/2001/XMLSchema-instance\", \"xsi:type\" => \"AggregateExpression\"}) do\n xml.element(\"OperatorType\") do\n xml.text(\"And\")\n end\n xml.element(\"SubExpressions\") do\n filter.each do |key, value|\n if value.nil?\n next\n end\n xml.element(\"FilterExpression\", {\"xsi:type\" => \"PropertyExpression\"}) do\n xml.element(\"PropertyName\") do\n xml.text(key)\n end\n xml.element(\"OperatorType\") do\n xml.text(\"Equals\")\n end\n xml.element(\"Args\") do\n compare_type = case value\n in String\n \"xsd:string\"\n in Bool\n \"xsd:boolean\"\n in Int32\n \"xsd:int\"\n in Int64\n \"xsd:long\"\n in Float32\n \"xsd:float\"\n in Float64\n \"xsd:double\"\n in Nil\n raise(\"nil values not supported\")\n end\n xml.element(\"anyType\", {\"xsi:type\" => compare_type}) do\n xml.text(value.to_s)\n end\n end\n end\n end\n end\n end\nend"}},{"html_id":"card(id:String)-instance-method","name":"card","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L872"},"def":{"name":"card","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Card/#{id}?#{prop_param(\"Card\")}\"))\nextract_card(document)\n"}},{"html_id":"card_templates(site_id:Int32|Nil=nil)-instance-method","name":"card_templates","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L926"},"def":{"name":"card_templates","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"templates = [] of CardTemplate\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"CardTemplate\", filter) do |row|\n templates << (extract_card_template(row))\nend\ntemplates\n"}},{"html_id":"cards(site_id:Int32|Nil=nil,user_id:String|Nil=nil,template:String|Nil=nil,number:String|Nil=nil)-instance-method","name":"cards","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, user_id : String | Nil = nil, template : String | Nil = nil, number : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":853,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L853"},"def":{"name":"cards","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"String | ::Nil"},{"name":"number","default_value":"nil","external_name":"number","restriction":"String | ::Nil"}],"visibility":"Public","body":"cards = [] of Card\nfilter = Filter {\"CardNumber\" => number, \"Site.ID\" => site_id, \"User.Address\" => user_id, \"CardType.Address\" => template}\npaginate_request(\"User\", \"Card\", filter) do |row|\n cards << (extract_card(row))\nend\ncards\n"}},{"html_id":"cf_email:String-instance-method","name":"cf_email","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L77"},"def":{"name":"cf_email","return_type":"String","visibility":"Public","body":"@cf_email"}},{"html_id":"cf_origo:String-instance-method","name":"cf_origo","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L79"},"def":{"name":"cf_origo","return_type":"String","visibility":"Public","body":"@cf_origo"}},{"html_id":"cf_phone:String-instance-method","name":"cf_phone","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L78"},"def":{"name":"cf_phone","return_type":"String","visibility":"Public","body":"@cf_phone"}},{"html_id":"cf_virtual_card:String-instance-method","name":"cf_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L18"},"def":{"name":"cf_virtual_card","return_type":"String","visibility":"Public","body":"@cf_virtual_card"}},{"html_id":"create_card(card_number:String|Int64,user_id:String|Nil=nil,partition_id:String|Int32|Nil=nil,site_id:String|Int64|Nil=nil,card_template:String|Nil=nil,externally_managed:Bool|Nil=nil):String-instance-method","name":"create_card","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","args_html":"(card_number : String | Int64, user_id : String | Nil = nil, partition_id : String | Int32 | Nil = nil, site_id : String | Int64 | Nil = nil, card_template : String | Nil = nil, externally_managed : Bool | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":878,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L878"},"def":{"name":"create_card","args":[{"name":"card_number","external_name":"card_number","restriction":"String | Int64"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"},{"name":"card_template","default_value":"nil","external_name":"card_template","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"String","visibility":"Public","body":"if user_id\n user_ref = Ref.new(\"User\", user_id, partition_id)\nend\nif site_id\n site_ref = Ref.new(\"SiteKeyword\", site_id.to_s)\nend\nif card_template\n card_type = Ref.new(\"CardTemplate\", card_template, partition_id)\nend\ncard = extract_add_or_update_result(add_entry(\"Card\", UpdateFields {\"CardNumber\" => card_number, \"Site\" => site_ref, \"User\" => user_ref, \"CardType\" => card_type, \"ManagedByActiveDirectory\" => externally_managed}.compact!))\ncard.id.as(String)\n"}},{"html_id":"create_user(name:String,email:String,phone:String|Nil=nil,site_id:String|Int64|Nil=nil):String-instance-method","name":"create_user","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"args_string":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","args_html":"(name : String, email : String, phone : String | Nil = nil, site_id : String | Int64 | Nil = nil) : String","location":{"filename":"src/inner_range/integriti.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L677"},"def":{"name":"create_user","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"String | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"String | Int64 | ::Nil"}],"return_type":"String","visibility":"Public","body":"first_name, second_name = name.split(' ', 2)\nuser = extract_add_or_update_result(add_entry(\"User\", UpdateFields {\"FirstName\" => first_name, \"SecondName\" => second_name, \"Site\" => Ref.new(\"SiteKeyword\", (site_id || default_site_id).to_s), cf_email => email.strip.downcase, cf_phone => phone}.compact!))\nuser.address.as(String)\n"}},{"html_id":"default_partition_id:Int32-instance-method","name":"default_partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L76"},"def":{"name":"default_partition_id","return_type":"Int32","visibility":"Public","body":"@default_partition_id"}},{"html_id":"default_site_id:Int32-instance-method","name":"default_site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L75"},"def":{"name":"default_site_id","return_type":"Int32","visibility":"Public","body":"@default_site_id"}},{"html_id":"default_unlock_time:Int32-instance-method","name":"default_unlock_time","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L74"},"def":{"name":"default_unlock_time","return_type":"Int32","visibility":"Public","body":"@default_unlock_time"}},{"html_id":"delete_permission(user_id:String,permission_id:String)-instance-method","name":"delete_permission","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(user_id : String, permission_id : String)","args_html":"(user_id : String, permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":791,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L791"},"def":{"name":"delete_permission","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\", {\"ID\" => permission_id}) do\n xml.element(\"ID\") do\n xml.text(permission_id)\n end\n end\nend\nextract_remove_result(modify_collection(\"User\", user_id, \"Permissions\", payload, add: false))\n"}},{"html_id":"door(id:Int64|String)-instance-method","name":"door","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":964,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L964"},"def":{"name":"door","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Door/#{id}?#{prop_param(\"Door\")}\"))\nextract_integriti_door(document)\n"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1056,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1056"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"(doors(default_site_id)).map do |door|\n Door.new(door.id.to_s, door.name)\nend"}},{"html_id":"doors(site_id:Int32|Nil=nil)-instance-method","name":"doors","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L953"},"def":{"name":"doors","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"doors = [] of IntegritiDoor\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"Door\", filter) do |row|\n doors << (extract_integriti_door(row))\nend\ndoors\n"}},{"html_id":"grant_access(name:String,email:String,group_id:String,starting:Int64|Nil=nil,ending:Int64|Nil=nil,partition_id:Int32|Nil=nil,site_id:Int32|Nil=nil,externally_managed:Bool=true):AccessDetails-instance-method","name":"grant_access","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"args_string":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","args_html":"(name : String, email : String, group_id : String, starting : Int64 | Nil = nil, ending : Int64 | Nil = nil, partition_id : Int32 | Nil = nil, site_id : Int32 | Nil = nil, externally_managed : Bool = true) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1093,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1093"},"def":{"name":"grant_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"starting","default_value":"nil","external_name":"starting","restriction":"Int64 | ::Nil"},{"name":"ending","default_value":"nil","external_name":"ending","restriction":"Int64 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"Int32 | ::Nil"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"}],"return_type":"AccessDetails","visibility":"Public","body":"site_id || (site_id = @default_site_id)\npartition_id || (partition_id = @default_partition_id)\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: site_id)\nresult = modify_user_permissions(user_id: user_id, group_id: group_id, partition_id: partition_id, add: true, externally_managed: externally_managed, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], \"\")\n"}},{"html_id":"grant_guest_access(name:String,email:String,starting:Int64,ending:Int64):AccessDetails-instance-method","name":"grant_guest_access","doc":"a function for granting guests access to a building\nshould return a payload that can be encoded into a QR code\nthe response is expected to be hexstring","summary":"

a function for granting guests access to a building should return a payload that can be encoded into a QR code the response is expected to be hexstring

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","args_html":"(name : String, email : String, starting : Int64, ending : Int64) : AccessDetails","location":{"filename":"src/inner_range/integriti.cr","line_number":1160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1160"},"def":{"name":"grant_guest_access","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"email","external_name":"email","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"return_type":"AccessDetails","visibility":"Public","body":"if guest_access_configured?\nelse\n raise(\"guest access is not configured\")\nend\nemail = email.downcase\nuser_id = (user_id_lookup(email)).first? || create_user(name: name, email: email, site_id: @default_site_id)\ncard = cards(user_id: user_id).find do |card|\n card.template.try(&.address) == @guest_card_template\nend\nif card\nelse\n card = create_guest_card(user_id)\nend\nresult = modify_user_permissions(user_id: user_id, group_id: @guest_access_group, partition_id: @default_partition_id, add: true, externally_managed: true, expires_at: ending, valid_from: starting).as(AddResult)\nif result.modified == 1\nelse\n raise(result.message)\nend\nmatching = PERMISSION_REGEX.match(result.message)\nif matching\nelse\n raise(\"unable to obtain permission ID from: #{result.message}\")\nend\nGuest.new(user_id, matching[\"id\"], card.card_data_hex)\n"}},{"html_id":"guest_access_configured?:Bool-instance-method","name":"guest_access_configured?","doc":"return true if we can grant guest access","summary":"

return true if we can grant guest access

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1196"},"def":{"name":"guest_access_configured?","return_type":"Bool","visibility":"Public","body":"!@guest_access_group.presence.nil? && !@guest_card_template.presence.nil?"}},{"html_id":"guest_access_group:String-instance-method","name":"guest_access_group","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L81"},"def":{"name":"guest_access_group","return_type":"String","visibility":"Public","body":"@guest_access_group"}},{"html_id":"guest_card_template:String-instance-method","name":"guest_card_template","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L80"},"def":{"name":"guest_card_template","return_type":"String","visibility":"Public","body":"@guest_card_template"}},{"html_id":"has_virtual_card?:Bool-instance-method","name":"has_virtual_card?","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L42"},"def":{"name":"has_virtual_card?","return_type":"Bool","visibility":"Public","body":"email = get_user_email\nintegriti.users(email: email).get[0][\"origo\"].as_bool? || false\n"}},{"html_id":"long_poll_seconds:Int32-instance-method","name":"long_poll_seconds","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L73"},"def":{"name":"long_poll_seconds","return_type":"Int32","visibility":"Public","body":"@long_poll_seconds"}},{"html_id":"managed_users_in_group(group_address:String):Hash(String,String)-instance-method","name":"managed_users_in_group","abstract":false,"args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"args_string":"(group_address : String) : Hash(String, String)","args_html":"(group_address : String) : Hash(String, String)","location":{"filename":"src/inner_range/integriti.cr","line_number":718,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L718"},"def":{"name":"managed_users_in_group","args":[{"name":"group_address","external_name":"group_address","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"user_ids = user_permissions(group_id: group_address, externally_managed: true).map do |permission|\n permission.user.address.as(String)\nend\nemail_user_id = Hash(String, String).new(\"\", user_ids.size)\nuser_ids.each do |user_id|\n document = check(get(\"/v2/User/User/#{user_id}\"))\n if email = extract_user(document).@email\n email_user_id[email.downcase] = user_id\n end\nend\nlogger.debug do\n \"found #{email_user_id.size} user to email mappings\"\nend\nemail_user_id\n"}},{"html_id":"modify_user_permissions(user_id:String,group_id:String,partition_id:String|Int32|Nil=nil,add:Bool=true,externally_managed:Bool=true,expires_at:Int64|Nil=nil,valid_from:Int64|Nil=nil)-instance-method","name":"modify_user_permissions","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","args_html":"(user_id : String, group_id : String, partition_id : String | Int32 | Nil = nil, add : Bool = true, externally_managed : Bool = true, expires_at : Int64 | Nil = nil, valid_from : Int64 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":739,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L739"},"def":{"name":"modify_user_permissions","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"},{"name":"add","default_value":"true","external_name":"add","restriction":"Bool"},{"name":"externally_managed","default_value":"true","external_name":"externally_managed","restriction":"Bool"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"payload = XML.build_fragment(indent: \" \") do |xml|\n xml.element(\"UserPermission\") do\n xml.element(\"What\") do\n (Ref.new(\"PermissionGroup\", group_id, partition_id)).to_xml(xml)\n end\n if add\n xml.element(\"GrantAccess\") do\n xml.text(\"True\")\n end\n if externally_managed\n xml.element(\"ManagedByActiveDirectory\") do\n xml.text(\"True\")\n end\n end\n if expires_at\n expiry = ((Time.unix(expires_at)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"ExpiryDateTime\") do\n xml.text(expiry)\n end\n end\n if valid_from\n starting = ((Time.unix(valid_from)).in(@timezone)).to_s(\"%Y-%m-%dT%H:%M:%S%:z\")\n xml.element(\"StartDateTime\") do\n xml.text(starting)\n end\n end\n end\n end\nend\nresponse = modify_collection(\"User\", user_id, \"Permissions\", payload, add: add)\nadd ? extract_add_result(response) : extract_remove_result(response)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"@cf_virtual_card = (setting?(String, :custom_field_hid_origo)) || \"cf_HasVirtualCard\""}},{"html_id":"partition(id:Int64|String)-instance-method","name":"partition","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":608,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L608"},"def":{"name":"partition","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/Partition/#{id}?#{prop_param(\"Partition\")}\"))\nextract_partition(document)\n"}},{"html_id":"partitions(parent_id:Int32|Nil=nil)-instance-method","name":"partitions","doc":"doors on a site","summary":"

doors on a site

","abstract":false,"args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"args_string":"(parent_id : Int32 | Nil = nil)","args_html":"(parent_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":597,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L597"},"def":{"name":"partitions","args":[{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"partitions = [] of Partition\nfilter = Filter {\"ParentId\" => parent_id}\npaginate_request(\"User\", \"Partition\", filter) do |row|\n partitions << (extract_partition(row))\nend\npartitions\n"}},{"html_id":"permission_group(id:Int64|String)-instance-method","name":"permission_group","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L527"},"def":{"name":"permission_group","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/PermissionGroup/#{id}\"))\nextract_site(document)\n"}},{"html_id":"permission_groups(site_id:Int32|Nil=nil):Array(PermissionGroup)-instance-method","name":"permission_groups","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","args_html":"(site_id : Int32 | Nil = nil) : Array(PermissionGroup)","location":{"filename":"src/inner_range/integriti.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L516"},"def":{"name":"permission_groups","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"}],"return_type":"Array(PermissionGroup)","visibility":"Public","body":"pgroups = [] of PermissionGroup\nfilter = Filter {\"Site.ID\" => site_id}\npaginate_request(\"User\", \"PermissionGroup\", filter, summary_only: true) do |row|\n pgroups << (extract_permission_group(row))\nend\npgroups\n"}},{"html_id":"remove_from_collection(type:String,id:String,property_name:String,payload:String)-instance-method","name":"remove_from_collection","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(type : String, id : String, property_name : String, payload : String)","args_html":"(type : String, id : String, property_name : String, payload : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":392,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L392"},"def":{"name":"remove_from_collection","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"visibility":"Public","body":"check(patch(\"/v2/User/#{type}/#{id}/#{property_name}/removeFromCollection?IncludeObjectInResult=true\", body: payload))"}},{"html_id":"remove_virtual_card:Nil-instance-method","name":"remove_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L37"},"def":{"name":"remove_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => false})\n"}},{"html_id":"request_virtual_card:Nil-instance-method","name":"request_virtual_card","abstract":false,"location":{"filename":"src/inner_range/integriti_hid_virtual_pass.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_hid_virtual_pass.cr#L32"},"def":{"name":"request_virtual_card","return_type":"Nil","visibility":"Public","body":"id = get_integriti_id\nintegriti.update_entry(\"User\", id, {cf_virtual_card => true})\n"}},{"html_id":"review_access(filter:Filter,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_access","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(filter : Filter, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":1018,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1018"},"def":{"name":"review_access","args":[{"name":"filter","external_name":"filter","restriction":"Filter"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"Review\", filter, page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"review_predefined_access(query_id:String|Int64,long_poll:Bool=false,after:String|Int64|Time|Nil=nil,page_limit:Int64|Nil=nil):Array(Review)-instance-method","name":"review_predefined_access","abstract":false,"args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"args_string":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","args_html":"(query_id : String | Int64, long_poll : Bool = false, after : String | Int64 | Time | Nil = nil, page_limit : Int64 | Nil = nil) : Array(Review)","location":{"filename":"src/inner_range/integriti.cr","line_number":984,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L984"},"def":{"name":"review_predefined_access","args":[{"name":"query_id","external_name":"query_id","restriction":"String | Int64"},{"name":"long_poll","default_value":"false","external_name":"long_poll","restriction":"Bool"},{"name":"after","default_value":"nil","external_name":"after","restriction":"String | Int64 | Time | ::Nil"},{"name":"page_limit","default_value":"nil","external_name":"page_limit","restriction":"Int64 | ::Nil"}],"return_type":"Array(Review)","visibility":"Public","body":"after_param = case after\nin Int64\n Time.unix(after)\nin String\n Time.parse(after, TIME_FORMAT, Time::Location::UTC)\nin Time\n after\nin Nil\n long_poll ? Time.utc : 10.minutes.ago\nend\nparams = URI::Params.build do |form|\n form.add(\"UTCTimeGenerated\", after_param.to_s(TIME_FORMAT))\n form.add(\"SortProperty\", \"UTCTimeGenerated\")\n form.add(\"SortOrder\", \"Descending\")\n if long_poll\n form.add(\"LongPoll\", \"true\")\n form.add(\"LongPollTime\", @long_poll_seconds.to_s)\n end\nend\nreview = [] of Review\npaginate_request(\"Review\", \"PredefinedFilter/#{query_id}\", page_limit: page_limit, query: params) do |row|\n entry = extract_review(row)\n entry.time_gen_ms\n review << entry\n entry\nend\nreview\n"}},{"html_id":"revoke_guest_access(details:JSON::Any)-instance-method","name":"revoke_guest_access","doc":"delete the permission from user","summary":"

delete the permission from user

","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/inner_range/integriti.cr","line_number":1191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1191"},"def":{"name":"revoke_guest_access","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"details = Guest.from_json(details.to_json)\ndelete_permission(details.user_id, details.permission_id)\n"}},{"html_id":"set_card_user(card_id:String,user_id:String|Nil,partition_id:String|Int32|Nil=nil)-instance-method","name":"set_card_user","doc":"sets or unsets the user associated with this card","summary":"

sets or unsets the user associated with this card

","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"args_string":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","args_html":"(card_id : String, user_id : String | Nil, partition_id : String | Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":914,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L914"},"def":{"name":"set_card_user","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"String | Int32 | ::Nil"}],"visibility":"Public","body":"if user_id\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => Ref.new(\"User\", user_id, partition_id)}, attribute: \"ID\")\nelse\n update_entry(\"Card\", card_id, UpdateFields {\"User\" => nil}, attribute: \"ID\")\nend"}},{"html_id":"set_user_primary_permission_group(user_id:String,permission_group_id:String|Nil)-instance-method","name":"set_user_primary_permission_group","doc":"sets or unsets the Permission Group","summary":"

sets or unsets the Permission Group

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, permission_group_id : String | Nil)","args_html":"(user_id : String, permission_group_id : String | Nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L778"},"def":{"name":"set_user_primary_permission_group","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_group_id","external_name":"permission_group_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if permission_group_id\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => Ref.new(\"PermissionGroup\", permission_group_id)})\nelse\n update_entry(\"User\", user_id, UpdateFields {\"PrimaryPermissionGroup\" => nil})\nend"}},{"html_id":"site(id:Int64|String)-instance-method","name":"site","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":552,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L552"},"def":{"name":"site","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/SiteKeyword/#{id}?#{prop_param(\"SiteKeyword\")}\"))\nextract_site(document)\n"}},{"html_id":"sites:Array(Site)-instance-method","name":"sites","doc":"roughly analogous to buildings","summary":"

roughly analogous to buildings

","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L544"},"def":{"name":"sites","return_type":"Array(Site)","visibility":"Public","body":"sites = [] of Site\npaginate_request(\"User\", \"SiteKeyword\") do |row|\n sites << (extract_site(row))\nend\nsites\n"}},{"html_id":"system_info-instance-method","name":"system_info","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L375"},"def":{"name":"system_info","visibility":"Public","body":"document = check(get(\"/v2/SystemInfo\"))\nextract_system_info(document)\n"}},{"html_id":"template(address:String)-instance-method","name":"template","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":937,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L937"},"def":{"name":"template","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/CardTemplate/#{address}?#{prop_param(\"CardTemplate\")}\"))\nextract_card_template(document)\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/inner_range/integriti.cr","line_number":1063,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1063"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"payload = XML.build(indent: \" \") do |xml|\n xml.element(\"GrantAccessActionOptions\") do\n xml.element(\"UnlockSeconds\") do\n xml.text(default_unlock_time.to_s)\n end\n xml.element(\"ForceEvenIfOverridden\") do\n xml.text(\"false\")\n end\n end\nend\nresponse = post(\"/v2/BasicStatus/GrantAccess/#{door_id}\", body: payload)\nresponse.success?\n"}},{"html_id":"update_entry(type:String,id:String,fields:UpdateFields,attribute:String=\"Address\",return_object:Bool=false)-instance-method","name":"update_entry","doc":"use this to update fields in various models, like:\nupdate_entry(type: \"User\", id: \"U5\", fields: {cf_HasMobileCredential: true})","summary":"

use this to update fields in various models, like: update_entry(type: "User", id: "U5", fields: {cf_HasMobileCredential: true})

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"args_string":"(type : String, id : String, fields : UpdateFields, attribute : String = \"Address\", return_object : Bool = false)","args_html":"(type : String, id : String, fields : UpdateFields, attribute : String = "Address", return_object : Bool = false)","location":{"filename":"src/inner_range/integriti.cr","line_number":499,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L499"},"def":{"name":"update_entry","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"fields","external_name":"fields","restriction":"UpdateFields"},{"name":"attribute","default_value":"\"Address\"","external_name":"attribute","restriction":"String"},{"name":"return_object","default_value":"false","external_name":"return_object","restriction":"Bool"}],"visibility":"Public","body":"update(type, id, attribute, return_object) do |xml|\n apply_fields(xml, fields)\nend"}},{"html_id":"user(id:Int64|String)-instance-method","name":"user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"args_string":"(id : Int64 | String)","args_html":"(id : Int64 | String)","location":{"filename":"src/inner_range/integriti.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L667"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"Int64 | String"}],"visibility":"Public","body":"document = check(get(\"/v2/User/User/#{id}?FullObject=true\"))\nextract_full_user(document)\n"}},{"html_id":"user_id_lookup(email:String):Array(String)-instance-method","name":"user_id_lookup","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : Array(String)","args_html":"(email : String) : Array(String)","location":{"filename":"src/inner_range/integriti.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L672"},"def":{"name":"user_id_lookup","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"users(email: email).map() do |__arg4|\n __arg4.address.as(String)\nend"}},{"html_id":"user_permissions(user_id:String|Nil=nil,group_id:String|Nil=nil,externally_managed:Bool|Nil=nil):Array(UserPermission)-instance-method","name":"user_permissions","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"args_string":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","args_html":"(user_id : String | Nil = nil, group_id : String | Nil = nil, externally_managed : Bool | Nil = nil) : Array(UserPermission)","location":{"filename":"src/inner_range/integriti.cr","line_number":705,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L705"},"def":{"name":"user_permissions","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"Bool | ::Nil"}],"return_type":"Array(UserPermission)","visibility":"Public","body":"user_permissions = [] of UserPermission\nfilter = Filter {\"User.Address\" => user_id, \"What.Address\" => group_id, \"ManagedByActiveDirectory\" => externally_managed}\npaginate_request(\"User\", \"UserPermission\", filter) do |row|\n user_permissions << (extract_user_permission(row))\nend\nuser_permissions\n"}},{"html_id":"users(site_id:Int32|Nil=nil,email:String|Nil=nil)-instance-method","name":"users","doc":"users in a site","summary":"

users in a site

","abstract":false,"args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","args_html":"(site_id : Int32 | Nil = nil, email : String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L651"},"def":{"name":"users","args":[{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"Int32 | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"users = [] of User\nfilter = Filter {cf_email => email}\npaginate_request(\"User\", \"User\", filter) do |row|\n users << (extract_user(row))\nend\nif site_id\n users.select() do |__arg3|\n __arg3.site_id == site_id\n end\nend\nusers\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/inner_range/integriti.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L85"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" begin\n \n%resp\n = \n{{ response }}\n\n raise \"request failed with #{\n%resp\n.status_code} (#{\n%resp\n.body})\" unless \n%resp\n.success?\n \n%body\n = \n%resp\n.body\n logger.debug \n{ \"response was:\\n#{\n%body\n}\" }\n begin\n XML.parse \n%body\n\n rescue \nerror\n logger.error \n{ \"error: #{error.message}, failed to parse:\\n#{\n%body\n}\" }\n raise \nerror\n \nend\n \nend\n \n"}},{"html_id":"define_xml_type(klass,keys,lookup=nil,&block)-macro","name":"define_xml_type","abstract":false,"args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"args_string":"(klass, keys, lookup = nil, &block)","args_html":"(klass, keys, lookup = nil, &block)","location":{"filename":"src/inner_range/integriti.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L107"},"def":{"name":"define_xml_type","args":[{"name":"klass","external_name":"klass","restriction":""},{"name":"keys","external_name":"keys","restriction":""},{"name":"lookup","default_value":"nil","external_name":"lookup","restriction":""}],"block_arg":{"name":"block","external_name":"block","restriction":""},"visibility":"Public","body":" struct \n{{ klass }}\n < IntegritiObject\n \n{% for _node, variable in keys %}\n getter! {{ variable.var }} : {{ variable.type }}\n {% end %}\n\n\n def initialize(\n \n{% for _node, variable in keys %}\n @{{ variable.var }} = nil,\n {% end %}\n\n )\n \nend\n\n \n{% if block %}\n {{ block.body }}\n {% end %}\n\n \nend\n\n \n{% PROPS[lookup || klass.stringify] = keys.keys.join(\",\") %}\n\n\n protected def \nextract_\n{{ klass.id.stringify.underscore.id }}\n(document : XML::Node) : \n{{ klass }}\n\n \n{% for _node, variable in keys %}\n var_{{ variable.var }} = nil\n {% end %}\n\n\n if \n%data\n = document.document? ? document.first_element_child : document\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n if %content = %data[{{ attribute_name }}]?\n\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n {% end %}\n\n\n \n%data\n.children.select(&.element?).each do |child|\n case child.name\n when \"Ref\"\n \n# minimal data provided in attributes\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"attr_\") %}\n {% attribute_name = (node.split(\"_\"))[1] %}\n {% else %}\n {% attribute_name = node %}\n {% end %}\n\n # ID in ref's are actually the Address in objects\n {% if attribute_name == \"Address\" %}\n {% attribute_name = \"ID\" %}\n {% end %}\n\n if %content = child[{{ attribute_name }}]?\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \n{% for node, variable in keys %}\n {% if node.starts_with?(\"cf_\") %}\n # handle custom fields using accessors\n when {{ node.id }}\n {% else %}\n when {{ node.id.stringify }}\n {% end %}\n\n if %content = child.content\n # extract the data\n {% resolved_type = variable.type.resolve %}\n {% variable_var = variable.var %}\n {% if resolved_type == Int32 %}\n var_{{ variable_var }} = %content.to_i?\n {% else %}{% if resolved_type == Int64 %}\n var_{{ variable_var }} = %content.to_i64?\n {% else %}{% if resolved_type == Bool %}\n var_{{ variable_var }} = %content.downcase == \"true\"\n {% else %}{% if resolved_type == Float64 %}\n var_{{ variable_var }} = %content.to_f?\n {% else %}{% if resolved_type == Time %}\n var_{{ variable_var }} = Time.parse(%content, TIME_FORMAT, Time::Location::UTC)\n {% else %}{% if resolved_type.superclass == IntegritiObject %}\n var_{{ variable_var }} = extract_{{ variable.type.stringify.underscore.id }}(child)\n {% else %}\n var_{{ variable_var }} = %content\n {% end %}{% end %}{% end %}{% end %}{% end %}{% end %}\n else\n var_{{ variable_var }} = nil\n end\n {% end %}\n\n \nend\n \nend\n \nend\n\n \n{{ klass }}\n.new(\n \n{% for node, variable in keys %}\n {{ variable.var }}: var_{{ variable.var }},\n {% end %}\n\n )\n \nend\n \n"}}],"types":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","path":"InnerRange/Integriti/AddOrUpdateResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L437"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|String|Nil=nil,address:Nil|String=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","args_html":"(id : Int64 | String | Nil = nil, address : Nil | String = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":437,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L437"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::String | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, address, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64|String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64 | String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddOrUpdateResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/InnerRange/Integriti/AddResult","path":"InnerRange/Integriti/AddResult.html","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L401"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L401"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::AddResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Area","path":"InnerRange/Integriti/Area.html","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L561"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L561"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Area#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/Card","path":"InnerRange/Integriti/Card.html","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L826"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,name:Nil|String=nil,card_number_numeric:Int64|Nil=nil,card_number:Nil|String=nil,card_data_hex:Nil|String=nil,card_serial_number:Nil|String=nil,issue_number:Int32|Nil=nil,state:Nil|String=nil,expiry:Nil|String=nil,valid_from:Nil|String=nil,last_used:Nil|String=nil,cloud_credential_id:Nil|String=nil,cloud_credential_type:Nil|String=nil,cloud_credential_pool_id:Nil|String=nil,cloud_credential_invite_id:Nil|String=nil,cloud_credential_invite_code:Nil|String=nil,cloud_credential_comms_handler:Nil|String=nil,active_directory:Bool|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,template:InnerRange::Integriti::CardTemplate|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"args_string":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","args_html":"(id : Nil | String = nil, name : Nil | String = nil, card_number_numeric : Int64 | Nil = nil, card_number : Nil | String = nil, card_data_hex : Nil | String = nil, card_serial_number : Nil | String = nil, issue_number : Int32 | Nil = nil, state : Nil | String = nil, expiry : Nil | String = nil, valid_from : Nil | String = nil, last_used : Nil | String = nil, cloud_credential_id : Nil | String = nil, cloud_credential_type : Nil | String = nil, cloud_credential_pool_id : Nil | String = nil, cloud_credential_invite_id : Nil | String = nil, cloud_credential_invite_code : Nil | String = nil, cloud_credential_comms_handler : Nil | String = nil, active_directory : Bool | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, template : InnerRange::Integriti::CardTemplate | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":826,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L826"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"card_number_numeric","default_value":"nil","external_name":"card_number_numeric","restriction":"::Int64 | ::Nil"},{"name":"card_number","default_value":"nil","external_name":"card_number","restriction":"::Nil | ::String"},{"name":"card_data_hex","default_value":"nil","external_name":"card_data_hex","restriction":"::Nil | ::String"},{"name":"card_serial_number","default_value":"nil","external_name":"card_serial_number","restriction":"::Nil | ::String"},{"name":"issue_number","default_value":"nil","external_name":"issue_number","restriction":"::Int32 | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"::Nil | ::String"},{"name":"expiry","default_value":"nil","external_name":"expiry","restriction":"::Nil | ::String"},{"name":"valid_from","default_value":"nil","external_name":"valid_from","restriction":"::Nil | ::String"},{"name":"last_used","default_value":"nil","external_name":"last_used","restriction":"::Nil | ::String"},{"name":"cloud_credential_id","default_value":"nil","external_name":"cloud_credential_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_type","default_value":"nil","external_name":"cloud_credential_type","restriction":"::Nil | ::String"},{"name":"cloud_credential_pool_id","default_value":"nil","external_name":"cloud_credential_pool_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_id","default_value":"nil","external_name":"cloud_credential_invite_id","restriction":"::Nil | ::String"},{"name":"cloud_credential_invite_code","default_value":"nil","external_name":"cloud_credential_invite_code","restriction":"::Nil | ::String"},{"name":"cloud_credential_comms_handler","default_value":"nil","external_name":"cloud_credential_comms_handler","restriction":"::Nil | ::String"},{"name":"active_directory","default_value":"nil","external_name":"active_directory","restriction":"::Bool | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"template","default_value":"nil","external_name":"template","restriction":"::InnerRange::Integriti::CardTemplate | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, card_number_numeric, card_number, card_data_hex, card_serial_number, issue_number, state, expiry, valid_from, last_used, cloud_credential_id, cloud_credential_type, cloud_credential_pool_id, cloud_credential_invite_id, cloud_credential_invite_code, cloud_credential_comms_handler, active_directory, site, user, template)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"active_directory:Bool-instance-method","name":"active_directory","abstract":false,"def":{"name":"active_directory","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @active_directory).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#active_directory cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"active_directory?:Bool|Nil-instance-method","name":"active_directory?","abstract":false,"def":{"name":"active_directory?","return_type":"Bool | ::Nil","visibility":"Public","body":"@active_directory"}},{"html_id":"card_data_hex:String-instance-method","name":"card_data_hex","abstract":false,"def":{"name":"card_data_hex","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_data_hex).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_data_hex cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_data_hex?:String|Nil-instance-method","name":"card_data_hex?","abstract":false,"def":{"name":"card_data_hex?","return_type":"String | ::Nil","visibility":"Public","body":"@card_data_hex"}},{"html_id":"card_number:String-instance-method","name":"card_number","abstract":false,"def":{"name":"card_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number?:String|Nil-instance-method","name":"card_number?","abstract":false,"def":{"name":"card_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_number"}},{"html_id":"card_number_numeric:Int64-instance-method","name":"card_number_numeric","abstract":false,"def":{"name":"card_number_numeric","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @card_number_numeric).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_number_numeric cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_number_numeric?:Int64|Nil-instance-method","name":"card_number_numeric?","abstract":false,"def":{"name":"card_number_numeric?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@card_number_numeric"}},{"html_id":"card_serial_number:String-instance-method","name":"card_serial_number","abstract":false,"def":{"name":"card_serial_number","return_type":"String","visibility":"Public","body":"if (__temp_1 = @card_serial_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#card_serial_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"card_serial_number?:String|Nil-instance-method","name":"card_serial_number?","abstract":false,"def":{"name":"card_serial_number?","return_type":"String | ::Nil","visibility":"Public","body":"@card_serial_number"}},{"html_id":"cloud_credential_comms_handler:String-instance-method","name":"cloud_credential_comms_handler","abstract":false,"def":{"name":"cloud_credential_comms_handler","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_comms_handler).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_comms_handler cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_comms_handler?:String|Nil-instance-method","name":"cloud_credential_comms_handler?","abstract":false,"def":{"name":"cloud_credential_comms_handler?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_comms_handler"}},{"html_id":"cloud_credential_id:String-instance-method","name":"cloud_credential_id","abstract":false,"def":{"name":"cloud_credential_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_id?:String|Nil-instance-method","name":"cloud_credential_id?","abstract":false,"def":{"name":"cloud_credential_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_id"}},{"html_id":"cloud_credential_invite_code:String-instance-method","name":"cloud_credential_invite_code","abstract":false,"def":{"name":"cloud_credential_invite_code","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_code?:String|Nil-instance-method","name":"cloud_credential_invite_code?","abstract":false,"def":{"name":"cloud_credential_invite_code?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_code"}},{"html_id":"cloud_credential_invite_id:String-instance-method","name":"cloud_credential_invite_id","abstract":false,"def":{"name":"cloud_credential_invite_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_invite_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_invite_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_invite_id?:String|Nil-instance-method","name":"cloud_credential_invite_id?","abstract":false,"def":{"name":"cloud_credential_invite_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_invite_id"}},{"html_id":"cloud_credential_pool_id:String-instance-method","name":"cloud_credential_pool_id","abstract":false,"def":{"name":"cloud_credential_pool_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_pool_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_pool_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_pool_id?:String|Nil-instance-method","name":"cloud_credential_pool_id?","abstract":false,"def":{"name":"cloud_credential_pool_id?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_pool_id"}},{"html_id":"cloud_credential_type:String-instance-method","name":"cloud_credential_type","abstract":false,"def":{"name":"cloud_credential_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @cloud_credential_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#cloud_credential_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"cloud_credential_type?:String|Nil-instance-method","name":"cloud_credential_type?","abstract":false,"def":{"name":"cloud_credential_type?","return_type":"String | ::Nil","visibility":"Public","body":"@cloud_credential_type"}},{"html_id":"expiry:String-instance-method","name":"expiry","abstract":false,"def":{"name":"expiry","return_type":"String","visibility":"Public","body":"if (__temp_1 = @expiry).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#expiry cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expiry?:String|Nil-instance-method","name":"expiry?","abstract":false,"def":{"name":"expiry?","return_type":"String | ::Nil","visibility":"Public","body":"@expiry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"issue_number:Int32-instance-method","name":"issue_number","abstract":false,"def":{"name":"issue_number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @issue_number).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#issue_number cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"issue_number?:Int32|Nil-instance-method","name":"issue_number?","abstract":false,"def":{"name":"issue_number?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@issue_number"}},{"html_id":"last_used:String-instance-method","name":"last_used","abstract":false,"def":{"name":"last_used","return_type":"String","visibility":"Public","body":"if (__temp_1 = @last_used).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#last_used cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"last_used?:String|Nil-instance-method","name":"last_used?","abstract":false,"def":{"name":"last_used?","return_type":"String | ::Nil","visibility":"Public","body":"@last_used"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"String","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:String|Nil-instance-method","name":"state?","abstract":false,"def":{"name":"state?","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"template:CardTemplate-instance-method","name":"template","abstract":false,"def":{"name":"template","return_type":"CardTemplate","visibility":"Public","body":"if (__temp_1 = @template).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#template cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"template?:CardTemplate|Nil-instance-method","name":"template?","abstract":false,"def":{"name":"template?","return_type":"CardTemplate | ::Nil","visibility":"Public","body":"@template"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"valid_from:String-instance-method","name":"valid_from","abstract":false,"def":{"name":"valid_from","return_type":"String","visibility":"Public","body":"if (__temp_1 = @valid_from).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Card#valid_from cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"valid_from?:String|Nil-instance-method","name":"valid_from?","abstract":false,"def":{"name":"valid_from?","return_type":"String | ::Nil","visibility":"Public","body":"@valid_from"}}]},{"html_id":"drivers/InnerRange/Integriti/CardFormat","path":"InnerRange/Integriti/CardFormat.html","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L804"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L804"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardFormat#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","path":"InnerRange/Integriti/CardTemplate.html","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L814"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,notes:Nil|String=nil,address:Nil|String=nil,site_code:Int64|Nil=nil,site:InnerRange::Integriti::Site|Nil=nil,format:InnerRange::Integriti::CardFormat|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, notes : Nil | String = nil, address : Nil | String = nil, site_code : Int64 | Nil = nil, site : InnerRange::Integriti::Site | Nil = nil, format : InnerRange::Integriti::CardFormat | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":814,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L814"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"notes","default_value":"nil","external_name":"notes","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"site_code","default_value":"nil","external_name":"site_code","restriction":"::Int64 | ::Nil"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"format","default_value":"nil","external_name":"format","restriction":"::InnerRange::Integriti::CardFormat | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, notes, address, site_code, site, format)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"format:CardFormat-instance-method","name":"format","abstract":false,"def":{"name":"format","return_type":"CardFormat","visibility":"Public","body":"if (__temp_1 = @format).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#format cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"format?:CardFormat|Nil-instance-method","name":"format?","abstract":false,"def":{"name":"format?","return_type":"CardFormat | ::Nil","visibility":"Public","body":"@format"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"notes:String-instance-method","name":"notes","abstract":false,"def":{"name":"notes","return_type":"String","visibility":"Public","body":"if (__temp_1 = @notes).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#notes cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notes?:String|Nil-instance-method","name":"notes?","abstract":false,"def":{"name":"notes?","return_type":"String | ::Nil","visibility":"Public","body":"@notes"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_code:Int64-instance-method","name":"site_code","abstract":false,"def":{"name":"site_code","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @site_code).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_code cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_code?:Int64|Nil-instance-method","name":"site_code?","abstract":false,"def":{"name":"site_code?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@site_code"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::CardTemplate#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Filter","path":"InnerRange/Integriti/Filter.html","kind":"alias","full_name":"InnerRange::Integriti::Filter","name":"Filter","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L245"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/FullUser","path":"InnerRange/Integriti/FullUser.html","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L630"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":630,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L630"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::FullUser#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}},{"html_id":"site_id-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":641,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L641"},"def":{"name":"site_id","visibility":"Public","body":"site.id"}},{"html_id":"site_name-instance-method","name":"site_name","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L645"},"def":{"name":"site_name","visibility":"Public","body":"site.name"}}]},{"html_id":"drivers/InnerRange/Integriti/Guest","path":"InnerRange/Integriti/Guest.html","kind":"class","full_name":"InnerRange::Integriti::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/GuestBuildingAccess/AccessDetails","kind":"class","full_name":"PlaceOS::Driver::Interface::GuestBuildingAccess::AccessDetails","name":"AccessDetails"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1082"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(user_id:String,permission_id:String,card_hex:String)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"args_string":"(user_id : String, permission_id : String, card_hex : String)","args_html":"(user_id : String, permission_id : String, card_hex : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1086,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1086"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"permission_id","external_name":"permission_id","restriction":"String"},{"name":"card_hex","external_name":"card_hex","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, permission_id, card_hex)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":1082,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1082"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"permission_id:String-instance-method","name":"permission_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id","return_type":"String","visibility":"Public","body":"@permission_id"}},{"html_id":"permission_id=(permission_id:String)-instance-method","name":"permission_id=","abstract":false,"args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"args_string":"(permission_id : String)","args_html":"(permission_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1084,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1084"},"def":{"name":"permission_id=","args":[{"name":"permission_id","external_name":"permission_id","restriction":"String"}],"visibility":"Public","body":"@permission_id = permission_id"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/inner_range/integriti.cr","line_number":1083,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L1083"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","path":"InnerRange/Integriti/IntegritiDoor.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L946"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site:InnerRange::Integriti::Site|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site : InnerRange::Integriti::Site | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":946,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L946"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site","default_value":"nil","external_name":"site","restriction":"::InnerRange::Integriti::Site | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"site:Site-instance-method","name":"site","abstract":false,"def":{"name":"site","return_type":"Site","visibility":"Public","body":"if (__temp_1 = @site).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::IntegritiDoor#site cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site?:Site|Nil-instance-method","name":"site?","abstract":false,"def":{"name":"site?","return_type":"Site | ::Nil","visibility":"Public","body":"@site"}}]},{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","path":"InnerRange/Integriti/IntegritiObject.html","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/InnerRange/Integriti/AddOrUpdateResult","kind":"struct","full_name":"InnerRange::Integriti::AddOrUpdateResult","name":"AddOrUpdateResult"},{"html_id":"drivers/InnerRange/Integriti/AddResult","kind":"struct","full_name":"InnerRange::Integriti::AddResult","name":"AddResult"},{"html_id":"drivers/InnerRange/Integriti/Area","kind":"struct","full_name":"InnerRange::Integriti::Area","name":"Area"},{"html_id":"drivers/InnerRange/Integriti/Card","kind":"struct","full_name":"InnerRange::Integriti::Card","name":"Card"},{"html_id":"drivers/InnerRange/Integriti/CardFormat","kind":"struct","full_name":"InnerRange::Integriti::CardFormat","name":"CardFormat"},{"html_id":"drivers/InnerRange/Integriti/CardTemplate","kind":"struct","full_name":"InnerRange::Integriti::CardTemplate","name":"CardTemplate"},{"html_id":"drivers/InnerRange/Integriti/FullUser","kind":"struct","full_name":"InnerRange::Integriti::FullUser","name":"FullUser"},{"html_id":"drivers/InnerRange/Integriti/IntegritiDoor","kind":"struct","full_name":"InnerRange::Integriti::IntegritiDoor","name":"IntegritiDoor"},{"html_id":"drivers/InnerRange/Integriti/Partition","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition"},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup"},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult"},{"html_id":"drivers/InnerRange/Integriti/Review","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review"},{"html_id":"drivers/InnerRange/Integriti/Site","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site"},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo"},{"html_id":"drivers/InnerRange/Integriti/User","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User"},{"html_id":"drivers/InnerRange/Integriti/UserPermission","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/InnerRange/Integriti/Partition","path":"InnerRange/Integriti/Partition.html","kind":"struct","full_name":"InnerRange::Integriti::Partition","name":"Partition","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L588"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,parent_id:Int32|Nil=nil,partition_id:Int32|Nil=nil,short_name:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, parent_id : Int32 | Nil = nil, partition_id : Int32 | Nil = nil, short_name : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":588,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L588"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"parent_id","default_value":"nil","external_name":"parent_id","restriction":"::Int32 | ::Nil"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"short_name","default_value":"nil","external_name":"short_name","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, parent_id, partition_id, short_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"parent_id:Int32-instance-method","name":"parent_id","abstract":false,"def":{"name":"parent_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @parent_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#parent_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"parent_id?:Int32|Nil-instance-method","name":"parent_id?","abstract":false,"def":{"name":"parent_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"short_name:String-instance-method","name":"short_name","abstract":false,"def":{"name":"short_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @short_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Partition#short_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"short_name?:String|Nil-instance-method","name":"short_name?","abstract":false,"def":{"name":"short_name?","return_type":"String | ::Nil","visibility":"Public","body":"@short_name"}}]},{"html_id":"drivers/InnerRange/Integriti/PermissionGroup","path":"InnerRange/Integriti/PermissionGroup.html","kind":"struct","full_name":"InnerRange::Integriti::PermissionGroup","name":"PermissionGroup","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L507"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(partition_id:Int32|Nil=nil,site_name:Nil|String=nil,site_id:Int32|Nil=nil,id:Int64|Nil=nil,name:Nil|String=nil,address:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"args_string":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","args_html":"(partition_id : Int32 | Nil = nil, site_name : Nil | String = nil, site_id : Int32 | Nil = nil, id : Int64 | Nil = nil, name : Nil | String = nil, address : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":507,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L507"},"def":{"name":"new","args":[{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(partition_id, site_name, site_id, id, name, address)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::PermissionGroup#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/Ref","path":"InnerRange/Integriti/Ref.html","kind":"struct","full_name":"InnerRange::Integriti::Ref","name":"Ref","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L414"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(type:String,id:String,partition_id:Int32|String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"args_string":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","args_html":"(type : String, id : String, partition_id : Int32 | String | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":421,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L421"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"::String"},{"name":"id","external_name":"id","restriction":"::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/inner_range/integriti.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L415"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L418"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"partition_id:String|Int32|Nil-instance-method","name":"partition_id","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L419"},"def":{"name":"partition_id","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"to_xml(xml)-instance-method","name":"to_xml","abstract":false,"args":[{"name":"xml","external_name":"xml","restriction":""}],"args_string":"(xml)","args_html":"(xml)","location":{"filename":"src/inner_range/integriti.cr","line_number":424,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L424"},"def":{"name":"to_xml","args":[{"name":"xml","external_name":"xml","restriction":""}],"visibility":"Public","body":"xml.element(\"Ref\", {\"Type\" => type, \"PartitionID\" => partition_id, \"ID\" => id}.compact!)"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L417"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/InnerRange/Integriti/RemoveResult","path":"InnerRange/Integriti/RemoveResult.html","kind":"struct","full_name":"InnerRange::Integriti::RemoveResult","name":"RemoveResult","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L396"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(modified:Int32|Nil=nil,message:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"args_string":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","args_html":"(modified : Int32 | Nil = nil, message : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L396"},"def":{"name":"new","args":[{"name":"modified","default_value":"nil","external_name":"modified","restriction":"::Int32 | ::Nil"},{"name":"message","default_value":"nil","external_name":"message","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(modified, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"message:String-instance-method","name":"message","abstract":false,"def":{"name":"message","return_type":"String","visibility":"Public","body":"if (__temp_1 = @message).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#message cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"message?:String|Nil-instance-method","name":"message?","abstract":false,"def":{"name":"message?","return_type":"String | ::Nil","visibility":"Public","body":"@message"}},{"html_id":"modified:Int32-instance-method","name":"modified","abstract":false,"def":{"name":"modified","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @modified).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::RemoveResult#modified cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"modified?:Int32|Nil-instance-method","name":"modified?","abstract":false,"def":{"name":"modified?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@modified"}}]},{"html_id":"drivers/InnerRange/Integriti/Review","path":"InnerRange/Integriti/Review.html","kind":"struct","full_name":"InnerRange::Integriti::Review","name":"Review","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L973"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,text:Nil|String=nil,time_generated:Time|Nil=nil,event_type:Nil|String=nil,transition:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"args_string":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","args_html":"(id : Nil | String = nil, text : Nil | String = nil, time_generated : Time | Nil = nil, event_type : Nil | String = nil, transition : Nil | String = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":973,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L973"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"text","default_value":"nil","external_name":"text","restriction":"::Nil | ::String"},{"name":"time_generated","default_value":"nil","external_name":"time_generated","restriction":"::Time | ::Nil"},{"name":"event_type","default_value":"nil","external_name":"event_type","restriction":"::Nil | ::String"},{"name":"transition","default_value":"nil","external_name":"transition","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, text, time_generated, event_type, transition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"if (__temp_1 = @event_type).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#event_type cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"event_type?:String|Nil-instance-method","name":"event_type?","abstract":false,"def":{"name":"event_type?","return_type":"String | ::Nil","visibility":"Public","body":"@event_type"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"def":{"name":"text","return_type":"String","visibility":"Public","body":"if (__temp_1 = @text).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#text cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"text?:String|Nil-instance-method","name":"text?","abstract":false,"def":{"name":"text?","return_type":"String | ::Nil","visibility":"Public","body":"@text"}},{"html_id":"time_gen_ms:String-instance-method","name":"time_gen_ms","abstract":false,"location":{"filename":"src/inner_range/integriti.cr","line_number":980,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L980"},"def":{"name":"time_gen_ms","return_type":"String","visibility":"Public","body":"if (__temp_1 = @time_gen_ms).nil?\n @time_gen_ms = (time_generated.to_s(TIME_FORMAT))\nelse\n __temp_1\nend"}},{"html_id":"time_generated:Time-instance-method","name":"time_generated","abstract":false,"def":{"name":"time_generated","return_type":"Time","visibility":"Public","body":"if (__temp_1 = @time_generated).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#time_generated cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_generated?:Time|Nil-instance-method","name":"time_generated?","abstract":false,"def":{"name":"time_generated?","return_type":"Time | ::Nil","visibility":"Public","body":"@time_generated"}},{"html_id":"transition:String-instance-method","name":"transition","abstract":false,"def":{"name":"transition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @transition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Review#transition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"transition?:String|Nil-instance-method","name":"transition?","abstract":false,"def":{"name":"transition?","return_type":"String | ::Nil","visibility":"Public","body":"@transition"}}]},{"html_id":"drivers/InnerRange/Integriti/Site","path":"InnerRange/Integriti/Site.html","kind":"struct","full_name":"InnerRange::Integriti::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L537"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int32|Nil=nil,name:Nil|String=nil,partition_id:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"args_string":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","args_html":"(id : Int32 | Nil = nil, name : Nil | String = nil, partition_id : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":537,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L537"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int32 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, partition_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int32|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::Site#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}}]},{"html_id":"drivers/InnerRange/Integriti/SystemInfo","path":"InnerRange/Integriti/SystemInfo.html","kind":"struct","full_name":"InnerRange::Integriti::SystemInfo","name":"SystemInfo","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L369"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(edition:Nil|String=nil,version:Nil|String=nil,protocol:Int32|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"args_string":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","args_html":"(edition : Nil | String = nil, version : Nil | String = nil, protocol : Int32 | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":369,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L369"},"def":{"name":"new","args":[{"name":"edition","default_value":"nil","external_name":"edition","restriction":"::Nil | ::String"},{"name":"version","default_value":"nil","external_name":"version","restriction":"::Nil | ::String"},{"name":"protocol","default_value":"nil","external_name":"protocol","restriction":"::Int32 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(edition, version, protocol)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"edition:String-instance-method","name":"edition","abstract":false,"def":{"name":"edition","return_type":"String","visibility":"Public","body":"if (__temp_1 = @edition).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#edition cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"edition?:String|Nil-instance-method","name":"edition?","abstract":false,"def":{"name":"edition?","return_type":"String | ::Nil","visibility":"Public","body":"@edition"}},{"html_id":"protocol:Int32-instance-method","name":"protocol","abstract":false,"def":{"name":"protocol","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @protocol).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#protocol cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"protocol?:Int32|Nil-instance-method","name":"protocol?","abstract":false,"def":{"name":"protocol?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@protocol"}},{"html_id":"version:String-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"String","visibility":"Public","body":"if (__temp_1 = @version).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::SystemInfo#version cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"version?:String|Nil-instance-method","name":"version?","abstract":false,"def":{"name":"version?","return_type":"String | ::Nil","visibility":"Public","body":"@version"}}]},{"html_id":"drivers/InnerRange/Integriti/UpdateFields","path":"InnerRange/Integriti/UpdateFields.html","kind":"alias","full_name":"InnerRange::Integriti::UpdateFields","name":"UpdateFields","abstract":false,"locations":[{"filename":"src/inner_range/integriti.cr","line_number":443,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L443"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","aliased_html":"Hash(String, Bool | Float64 | InnerRange::Integriti::Ref | Int64 | String | Nil)","const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"}},{"html_id":"drivers/InnerRange/Integriti/User","path":"InnerRange/Integriti/User.html","kind":"struct","full_name":"InnerRange::Integriti::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L617"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Int64|Nil=nil,name:Nil|String=nil,site_id:Int32|Nil=nil,site_name:Nil|String=nil,address:Nil|String=nil,partition_id:Int32|Nil=nil,origo:Bool|Nil=nil,phone:Nil|String=nil,email:Nil|String=nil,primary_permission_group:InnerRange::Integriti::PermissionGroup|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"args_string":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","args_html":"(id : Int64 | Nil = nil, name : Nil | String = nil, site_id : Int32 | Nil = nil, site_name : Nil | String = nil, address : Nil | String = nil, partition_id : Int32 | Nil = nil, origo : Bool | Nil = nil, phone : Nil | String = nil, email : Nil | String = nil, primary_permission_group : InnerRange::Integriti::PermissionGroup | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L617"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Int64 | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"::Nil | ::String"},{"name":"site_id","default_value":"nil","external_name":"site_id","restriction":"::Int32 | ::Nil"},{"name":"site_name","default_value":"nil","external_name":"site_name","restriction":"::Nil | ::String"},{"name":"address","default_value":"nil","external_name":"address","restriction":"::Nil | ::String"},{"name":"partition_id","default_value":"nil","external_name":"partition_id","restriction":"::Int32 | ::Nil"},{"name":"origo","default_value":"nil","external_name":"origo","restriction":"::Bool | ::Nil"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"primary_permission_group","default_value":"nil","external_name":"primary_permission_group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, site_id, site_name, address, partition_id, origo, phone, email, primary_permission_group)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"if (__temp_1 = @address).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#address cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"address?:String|Nil-instance-method","name":"address?","abstract":false,"def":{"name":"address?","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"def":{"name":"email","return_type":"String","visibility":"Public","body":"if (__temp_1 = @email).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#email cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"email?:String|Nil-instance-method","name":"email?","abstract":false,"def":{"name":"email?","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:Int64|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"name?:String|Nil-instance-method","name":"name?","abstract":false,"def":{"name":"name?","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"origo:Bool-instance-method","name":"origo","abstract":false,"def":{"name":"origo","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @origo).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#origo cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"origo?:Bool|Nil-instance-method","name":"origo?","abstract":false,"def":{"name":"origo?","return_type":"Bool | ::Nil","visibility":"Public","body":"@origo"}},{"html_id":"partition_id:Int32-instance-method","name":"partition_id","abstract":false,"def":{"name":"partition_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @partition_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#partition_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"partition_id?:Int32|Nil-instance-method","name":"partition_id?","abstract":false,"def":{"name":"partition_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@partition_id"}},{"html_id":"phone:String-instance-method","name":"phone","abstract":false,"def":{"name":"phone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @phone).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#phone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"phone?:String|Nil-instance-method","name":"phone?","abstract":false,"def":{"name":"phone?","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"primary_permission_group:PermissionGroup-instance-method","name":"primary_permission_group","abstract":false,"def":{"name":"primary_permission_group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @primary_permission_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#primary_permission_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"primary_permission_group?:PermissionGroup|Nil-instance-method","name":"primary_permission_group?","abstract":false,"def":{"name":"primary_permission_group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@primary_permission_group"}},{"html_id":"site_id:Int32-instance-method","name":"site_id","abstract":false,"def":{"name":"site_id","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @site_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_id?:Int32|Nil-instance-method","name":"site_id?","abstract":false,"def":{"name":"site_id?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_name:String-instance-method","name":"site_name","abstract":false,"def":{"name":"site_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @site_name).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::User#site_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"site_name?:String|Nil-instance-method","name":"site_name?","abstract":false,"def":{"name":"site_name?","return_type":"String | ::Nil","visibility":"Public","body":"@site_name"}}]},{"html_id":"drivers/InnerRange/Integriti/UserPermission","path":"InnerRange/Integriti/UserPermission.html","kind":"struct","full_name":"InnerRange::Integriti::UserPermission","name":"UserPermission","abstract":false,"superclass":{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},"ancestors":[{"html_id":"drivers/InnerRange/Integriti/IntegritiObject","kind":"struct","full_name":"InnerRange::Integriti::IntegritiObject","name":"IntegritiObject"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L693"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/InnerRange/Integriti","kind":"class","full_name":"InnerRange::Integriti","name":"Integriti"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(id:Nil|String=nil,group:InnerRange::Integriti::PermissionGroup|Nil=nil,externally_managed:Bool|Nil=nil,user:InnerRange::Integriti::User|Nil=nil,deny:Bool|Nil=nil,expired:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"args_string":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","args_html":"(id : Nil | String = nil, group : InnerRange::Integriti::PermissionGroup | Nil = nil, externally_managed : Bool | Nil = nil, user : InnerRange::Integriti::User | Nil = nil, deny : Bool | Nil = nil, expired : Bool | Nil = nil)","location":{"filename":"src/inner_range/integriti.cr","line_number":693,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti.cr#L693"},"def":{"name":"new","args":[{"name":"id","default_value":"nil","external_name":"id","restriction":"::Nil | ::String"},{"name":"group","default_value":"nil","external_name":"group","restriction":"::InnerRange::Integriti::PermissionGroup | ::Nil"},{"name":"externally_managed","default_value":"nil","external_name":"externally_managed","restriction":"::Bool | ::Nil"},{"name":"user","default_value":"nil","external_name":"user","restriction":"::InnerRange::Integriti::User | ::Nil"},{"name":"deny","default_value":"nil","external_name":"deny","restriction":"::Bool | ::Nil"},{"name":"expired","default_value":"nil","external_name":"expired","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, group, externally_managed, user, deny, expired)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"deny:Bool-instance-method","name":"deny","abstract":false,"def":{"name":"deny","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @deny).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#deny cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"deny?:Bool|Nil-instance-method","name":"deny?","abstract":false,"def":{"name":"deny?","return_type":"Bool | ::Nil","visibility":"Public","body":"@deny"}},{"html_id":"expired:Bool-instance-method","name":"expired","abstract":false,"def":{"name":"expired","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @expired).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#expired cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"expired?:Bool|Nil-instance-method","name":"expired?","abstract":false,"def":{"name":"expired?","return_type":"Bool | ::Nil","visibility":"Public","body":"@expired"}},{"html_id":"externally_managed:Bool-instance-method","name":"externally_managed","abstract":false,"def":{"name":"externally_managed","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @externally_managed).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#externally_managed cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"externally_managed?:Bool|Nil-instance-method","name":"externally_managed?","abstract":false,"def":{"name":"externally_managed?","return_type":"Bool | ::Nil","visibility":"Public","body":"@externally_managed"}},{"html_id":"group:PermissionGroup-instance-method","name":"group","abstract":false,"def":{"name":"group","return_type":"PermissionGroup","visibility":"Public","body":"if (__temp_1 = @group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"group?:PermissionGroup|Nil-instance-method","name":"group?","abstract":false,"def":{"name":"group?","return_type":"PermissionGroup | ::Nil","visibility":"Public","body":"@group"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"def":{"name":"id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"id?:String|Nil-instance-method","name":"id?","abstract":false,"def":{"name":"id?","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"user:User-instance-method","name":"user","abstract":false,"def":{"name":"user","return_type":"User","visibility":"Public","body":"if (__temp_1 = @user).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::Integriti::UserPermission#user cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user?:User|Nil-instance-method","name":"user?","abstract":false,"def":{"name":"user?","return_type":"User | ::Nil","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/InnerRange/IntegritiUserSync","path":"InnerRange/IntegritiUserSync.html","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"}],"namespace":{"html_id":"drivers/InnerRange","kind":"module","full_name":"InnerRange","name":"InnerRange"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"graph_group_id:String-instance-method","name":"graph_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L50"},"def":{"name":"graph_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @graph_group_id).nil?\n @graph_group_id = (if user_group_id.includes?('@')\n (directory.get_group(user_group_id)).get[\"id\"].as_s\n else\n user_group_id\n end)\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group:String-instance-method","name":"integriti_security_group","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group","return_type":"String","visibility":"Public","body":"if (__temp_1 = @integriti_security_group).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#integriti_security_group cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"integriti_security_group?:String|Nil-instance-method","name":"integriti_security_group?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L62"},"def":{"name":"integriti_security_group?","return_type":"String | ::Nil","visibility":"Public","body":"@integriti_security_group"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@time_zone_string = ((setting?(String, :time_zone)).presence || config.control_system.not_nil!.timezone.presence) || \"GMT\"\n@time_zone = Time::Location.load(@time_zone_string)\n@sync_cron = (setting?(String, :sync_cron)).presence || \"0 21 * * *\"\n@user_group_id = setting(String, :user_group_id)\n@integriti_security_group = setting(String, :integriti_security_group)\n@graph_group_id = nil\nschedule.clear\nschedule.cron(@sync_cron, @time_zone) do\n sync_users\nend\nif (setting?(String, :push_notification_url)).presence\n push_notificaitons_configure\nend\n"}},{"html_id":"perform_user_sync-instance-method","name":"perform_user_sync","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L70"},"def":{"name":"perform_user_sync","visibility":"Public","body":"if @syncing\n return \"already syncing\"\nend\n@sync_mutex.synchronize do\n begin\n @syncing = true\n @sync_requests = 0\n sync_users\n ensure\n @syncing = false\n end\nend\nif @sync_requests > 0\n spawn do\n perform_user_sync\n end\nend\n"}},{"html_id":"sync_cron:String-instance-method","name":"sync_cron","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L59"},"def":{"name":"sync_cron","return_type":"String","visibility":"Public","body":"@sync_cron"}},{"html_id":"time_zone_string:String-instance-method","name":"time_zone_string","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L58"},"def":{"name":"time_zone_string","return_type":"String","visibility":"Public","body":"@time_zone_string"}},{"html_id":"user_group_id:String-instance-method","name":"user_group_id","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_group_id).nil?\n ::raise(::NilAssertionError.new(\"InnerRange::IntegritiUserSync#user_group_id cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_group_id?:String|Nil-instance-method","name":"user_group_id?","abstract":false,"location":{"filename":"src/inner_range/integriti_user_sync.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L61"},"def":{"name":"user_group_id?","return_type":"String | ::Nil","visibility":"Public","body":"@user_group_id"}}],"types":[{"html_id":"drivers/InnerRange/IntegritiUserSync/DirUser","path":"InnerRange/IntegritiUserSync/DirUser.html","kind":"alias","full_name":"InnerRange::IntegritiUserSync::DirUser","name":"DirUser","abstract":false,"locations":[{"filename":"src/inner_range/integriti_user_sync.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/inner_range/integriti_user_sync.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Member","aliased_html":"PlaceCalendar::Member","const":false,"namespace":{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}}]}]},{"html_id":"drivers/JohnsonControls","path":"JohnsonControls.html","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls","abstract":false,"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ISO8601","name":"ISO8601","value":"Time::Format.new(\"%FT%TZ\")"}],"types":[{"html_id":"drivers/JohnsonControls/Attribute","path":"JohnsonControls/Attribute.html","kind":"class","full_name":"JohnsonControls::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L97"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"smaples_url:String-instance-method","name":"smaples_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url","return_type":"String","visibility":"Public","body":"@smaples_url"}},{"html_id":"smaples_url=(smaples_url:String)-instance-method","name":"smaples_url=","abstract":false,"args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"args_string":"(smaples_url : String)","args_html":"(smaples_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L94"},"def":{"name":"smaples_url=","args":[{"name":"smaples_url","external_name":"smaples_url","restriction":"String"}],"visibility":"Public","body":"@smaples_url = smaples_url"}}]},{"html_id":"drivers/JohnsonControls/AuthResponse","path":"JohnsonControls/AuthResponse.html","kind":"class","full_name":"JohnsonControls::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L10"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires:Time-instance-method","name":"expires","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires","return_type":"Time","visibility":"Public","body":"@expires"}},{"html_id":"expires=(expires:Time)-instance-method","name":"expires=","abstract":false,"args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"args_string":"(expires : Time)","args_html":"(expires : Time)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L13"},"def":{"name":"expires=","args":[{"name":"expires","external_name":"expires","restriction":"Time"}],"visibility":"Public","body":"@expires = expires"}}]},{"html_id":"drivers/JohnsonControls/Command","path":"JohnsonControls/Command.html","kind":"class","full_name":"JohnsonControls::Command","name":"Command","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L190"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command_id:String-instance-method","name":"command_id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id","return_type":"String","visibility":"Public","body":"@command_id"}},{"html_id":"command_id=(command_id:String)-instance-method","name":"command_id=","abstract":false,"args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"args_string":"(command_id : String)","args_html":"(command_id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L193"},"def":{"name":"command_id=","args":[{"name":"command_id","external_name":"command_id","restriction":"String"}],"visibility":"Public","body":"@command_id = command_id"}},{"html_id":"items:Array(JSON::Any)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items","return_type":"Array(JSON::Any)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(JSON::Any))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"args_string":"(items : Array(JSON::Any))","args_html":"(items : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L202"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"maximum_items:Int32-instance-method","name":"maximum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items","return_type":"Int32","visibility":"Public","body":"@maximum_items"}},{"html_id":"maximum_items=(maximum_items:Int32)-instance-method","name":"maximum_items=","abstract":false,"args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"args_string":"(maximum_items : Int32)","args_html":"(maximum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L208"},"def":{"name":"maximum_items=","args":[{"name":"maximum_items","external_name":"maximum_items","restriction":"Int32"}],"visibility":"Public","body":"@maximum_items = maximum_items"}},{"html_id":"minimum_items:Int32-instance-method","name":"minimum_items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items","return_type":"Int32","visibility":"Public","body":"@minimum_items"}},{"html_id":"minimum_items=(minimum_items:Int32)-instance-method","name":"minimum_items=","abstract":false,"args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"args_string":"(minimum_items : Int32)","args_html":"(minimum_items : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L205"},"def":{"name":"minimum_items=","args":[{"name":"minimum_items","external_name":"minimum_items","restriction":"Int32"}],"visibility":"Public","body":"@minimum_items = minimum_items"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L196"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L199"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/JohnsonControls/Equipment","path":"JohnsonControls/Equipment.html","kind":"class","full_name":"JohnsonControls::Equipment","name":"Equipment","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_url:String-instance-method","name":"equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url","return_type":"String","visibility":"Public","body":"@equipment_url"}},{"html_id":"equipment_url=(equipment_url:String)-instance-method","name":"equipment_url=","abstract":false,"args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"args_string":"(equipment_url : String)","args_html":"(equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L81"},"def":{"name":"equipment_url=","args":[{"name":"equipment_url","external_name":"equipment_url","restriction":"String"}],"visibility":"Public","body":"@equipment_url = equipment_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L60"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L63"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L66"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L78"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L87"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L72"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"spaces_url:String-instance-method","name":"spaces_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url","return_type":"String","visibility":"Public","body":"@spaces_url"}},{"html_id":"spaces_url=(spaces_url:String)-instance-method","name":"spaces_url=","abstract":false,"args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"args_string":"(spaces_url : String)","args_html":"(spaces_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L75"},"def":{"name":"spaces_url=","args":[{"name":"spaces_url","external_name":"spaces_url","restriction":"String"}],"visibility":"Public","body":"@spaces_url = spaces_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L69"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}},{"html_id":"upstream_equipment_url:String-instance-method","name":"upstream_equipment_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url","return_type":"String","visibility":"Public","body":"@upstream_equipment_url"}},{"html_id":"upstream_equipment_url=(upstream_equipment_url:String)-instance-method","name":"upstream_equipment_url=","abstract":false,"args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"args_string":"(upstream_equipment_url : String)","args_html":"(upstream_equipment_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L84"},"def":{"name":"upstream_equipment_url=","args":[{"name":"upstream_equipment_url","external_name":"upstream_equipment_url","restriction":"String"}],"visibility":"Public","body":"@upstream_equipment_url = upstream_equipment_url"}}]},{"html_id":"drivers/JohnsonControls/EquipmentPoints","path":"JohnsonControls/EquipmentPoints.html","kind":"class","full_name":"JohnsonControls::EquipmentPoints","name":"EquipmentPoints","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(Point))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L215"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"@points = points"}}]},{"html_id":"drivers/JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse","path":"JohnsonControls/GetEquipmentHostedByNetworkDeviceResponse.html","kind":"class","full_name":"JohnsonControls::GetEquipmentHostedByNetworkDeviceResponse","name":"GetEquipmentHostedByNetworkDeviceResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L171"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Equipment)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items","return_type":"Array(Equipment)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Equipment))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"args_string":"(items : Array(Equipment))","args_html":"(items : Array(Equipment))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L177"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Equipment)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L180"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L183"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L186"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L174"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetNetworkDeviceChildrenResponse","path":"JohnsonControls/GetNetworkDeviceChildrenResponse.html","kind":"class","full_name":"JohnsonControls::GetNetworkDeviceChildrenResponse","name":"GetNetworkDeviceChildrenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L138"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L139"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(NetworkDevice)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items","return_type":"Array(NetworkDevice)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(NetworkDevice))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"args_string":"(items : Array(NetworkDevice))","args_html":"(items : Array(NetworkDevice))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L145"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(NetworkDevice)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L148"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L151"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L154"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L142"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetObjectAttributesWithSamplesResponse","path":"JohnsonControls/GetObjectAttributesWithSamplesResponse.html","kind":"class","full_name":"JohnsonControls::GetObjectAttributesWithSamplesResponse","name":"GetObjectAttributesWithSamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L157"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L158"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Attribute)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items","return_type":"Array(Attribute)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Attribute))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"args_string":"(items : Array(Attribute))","args_html":"(items : Array(Attribute))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L164"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Attribute)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L167"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L161"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSamplesForAnObjectAttributeResponse","path":"JohnsonControls/GetSamplesForAnObjectAttributeResponse.html","kind":"class","full_name":"JohnsonControls::GetSamplesForAnObjectAttributeResponse","name":"GetSamplesForAnObjectAttributeResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L114"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_url:String-instance-method","name":"attribute_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url","return_type":"String","visibility":"Public","body":"@attribute_url"}},{"html_id":"attribute_url=(attribute_url:String)-instance-method","name":"attribute_url=","abstract":false,"args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"args_string":"(attribute_url : String)","args_html":"(attribute_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L132"},"def":{"name":"attribute_url=","args":[{"name":"attribute_url","external_name":"attribute_url","restriction":"String"}],"visibility":"Public","body":"@attribute_url = attribute_url"}},{"html_id":"items:Array(Sample)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items","return_type":"Array(Sample)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Sample))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"args_string":"(items : Array(Sample))","args_html":"(items : Array(Sample))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L120"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Sample)"}],"visibility":"Public","body":"@items = items"}},{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L123"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L135"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}},{"html_id":"previous:String|Nil-instance-method","name":"previous","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous","return_type":"String | ::Nil","visibility":"Public","body":"@previous"}},{"html_id":"previous=(previous:String|Nil)-instance-method","name":"previous=","abstract":false,"args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"args_string":"(previous : String | Nil)","args_html":"(previous : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L126"},"def":{"name":"previous=","args":[{"name":"previous","external_name":"previous","restriction":"String | ::Nil"}],"visibility":"Public","body":"@previous = previous"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L129"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"total:Int32-instance-method","name":"total","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total","return_type":"Int32","visibility":"Public","body":"@total"}},{"html_id":"total=(total:Int32)-instance-method","name":"total=","abstract":false,"args":[{"name":"total","external_name":"total","restriction":"Int32"}],"args_string":"(total : Int32)","args_html":"(total : Int32)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L117"},"def":{"name":"total=","args":[{"name":"total","external_name":"total","restriction":"Int32"}],"visibility":"Public","body":"@total = total"}}]},{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","path":"JohnsonControls/GetSingleObjectPresentValueResponse.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L232"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"item:Item-instance-method","name":"item","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item","return_type":"Item","visibility":"Public","body":"@item"}},{"html_id":"item=(item:Item)-instance-method","name":"item=","abstract":false,"args":[{"name":"item","external_name":"item","restriction":"Item"}],"args_string":"(item : Item)","args_html":"(item : Item)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L255"},"def":{"name":"item=","args":[{"name":"item","external_name":"item","restriction":"Item"}],"visibility":"Public","body":"@item = item"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse","name":"GetSingleObjectPresentValueResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L235"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"presentValue:Value-instance-method","name":"presentValue","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue","return_type":"Value","visibility":"Public","body":"@presentValue"}},{"html_id":"presentValue=(presentValue:Value)-instance-method","name":"presentValue=","abstract":false,"args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"args_string":"(presentValue : Value)","args_html":"(presentValue : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L251"},"def":{"name":"presentValue=","args":[{"name":"presentValue","external_name":"presentValue","restriction":"Value"}],"visibility":"Public","body":"@presentValue = presentValue"}}],"types":[{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value","path":"JohnsonControls/GetSingleObjectPresentValueResponse/Item/Value.html","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L237"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls/GetSingleObjectPresentValueResponse/Item","kind":"class","full_name":"JohnsonControls::GetSingleObjectPresentValueResponse::Item","name":"Item"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L238"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next:String|Nil-instance-method","name":"next","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next","return_type":"String | ::Nil","visibility":"Public","body":"@next"}},{"html_id":"next=(next__arg0:String|Nil)-instance-method","name":"next=","abstract":false,"args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"args_string":"(next __arg0 : String | Nil)","args_html":"(next __arg0 : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L247"},"def":{"name":"next=","args":[{"name":"__arg0","external_name":"next","restriction":"String | ::Nil"}],"visibility":"Public","body":"@next = __arg0"}},{"html_id":"reliability:String|Nil-instance-method","name":"reliability","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability","return_type":"String | ::Nil","visibility":"Public","body":"@reliability"}},{"html_id":"reliability=(reliability:String|Nil)-instance-method","name":"reliability=","abstract":false,"args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"args_string":"(reliability : String | Nil)","args_html":"(reliability : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L244"},"def":{"name":"reliability=","args":[{"name":"reliability","external_name":"reliability","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reliability = reliability"}},{"html_id":"value:String|Nil-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value","return_type":"String | ::Nil","visibility":"Public","body":"@value"}},{"html_id":"value=(value:String|Nil)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(value : String | Nil)","args_html":"(value : String | Nil)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L241"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"visibility":"Public","body":"@value = value"}}]}]}]},{"html_id":"drivers/JohnsonControls/Item","path":"JohnsonControls/Item.html","kind":"class","full_name":"JohnsonControls::Item","name":"Item","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L264"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L265"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"value:Value-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value","return_type":"Value","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Value)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Value"}],"args_string":"(value : Value)","args_html":"(value : Value)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L267"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Value"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/Metasys","path":"JohnsonControls/Metasys.html","kind":"class","full_name":"JohnsonControls::Metasys","name":"Metasys","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CONTENT_TYPE","name":"CONTENT_TYPE","value":"\"application/json\""}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L268"},"def":{"name":"count","visibility":"Public","body":"@count"}},{"html_id":"get_attribute_value(id:String):Float64-instance-method","name":"get_attribute_value","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Float64","args_html":"(id : String) : Float64","location":{"filename":"src/johnson_controls/metasys.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L94"},"def":{"name":"get_attribute_value","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Float64","visibility":"Public","body":"current_time = Time.utc\nshort_while_ago = Time.utc - (@poll_interval_seconds * 2).seconds\nresponse = get_request(\"/objects/#{id}/attributes/85/samples\", start_time: short_while_ago.to_rfc3339, end_time: current_time.to_rfc3339, page_size: 1, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n(SamplesResponse.from_json(response.body)).items.first.value.actual\n"}},{"html_id":"get_commands_for_an_object(id:String):Array(Command)-instance-method","name":"get_commands_for_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Array(Command)","args_html":"(id : String) : Array(Command)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L168"},"def":{"name":"get_commands_for_an_object","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Array(Command)","visibility":"Public","body":"response = get_request(\"/objects/#{id}/commands\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nArray(Command).from_json(response.body)\n"}},{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L232"},"def":{"name":"get_data","visibility":"Public","body":"{data: self[:data], averages: self[:averages]}"}},{"html_id":"get_equipment_hosted_by_network_device(id:String,page:Int32=1,page_size:Int32=10):GetEquipmentHostedByNetworkDeviceResponse-instance-method","name":"get_equipment_hosted_by_network_device","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetEquipmentHostedByNetworkDeviceResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L129"},"def":{"name":"get_equipment_hosted_by_network_device","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetEquipmentHostedByNetworkDeviceResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/equipment\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetEquipmentHostedByNetworkDeviceResponse.from_json(response.body)\n"}},{"html_id":"get_equipment_points(id:String):EquipmentPoints-instance-method","name":"get_equipment_points","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : EquipmentPoints","args_html":"(id : String) : EquipmentPoints","location":{"filename":"src/johnson_controls/metasys.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L87"},"def":{"name":"get_equipment_points","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"EquipmentPoints","visibility":"Public","body":"response = get_request(\"/equipment/#{id}/points\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nEquipmentPoints.from_json(response.body)\n"}},{"html_id":"get_network_device_children(id:String,page:Int32=1,page_size:Int32=10):GetNetworkDeviceChildrenResponse-instance-method","name":"get_network_device_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","args_html":"(id : String, page : Int32 = 1, page_size : Int32 = 10) : GetNetworkDeviceChildrenResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L118"},"def":{"name":"get_network_device_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetNetworkDeviceChildrenResponse","visibility":"Public","body":"response = get_request(\"/networkDevices/#{id}/objects\", page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetNetworkDeviceChildrenResponse.from_json(response.body)\n"}},{"html_id":"get_object_attributes_with_samples(id:String):GetObjectAttributesWithSamplesResponse-instance-method","name":"get_object_attributes_with_samples","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetObjectAttributesWithSamplesResponse","args_html":"(id : String) : GetObjectAttributesWithSamplesResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L140"},"def":{"name":"get_object_attributes_with_samples","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetObjectAttributesWithSamplesResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/trendedAttributes\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetObjectAttributesWithSamplesResponse.from_json(response.body)\n"}},{"html_id":"get_request_debug(path:String,**params)-instance-method","name":"get_request_debug","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String, **params)","args_html":"(path : String, **params)","location":{"filename":"src/johnson_controls/metasys.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L252"},"def":{"name":"get_request_debug","args":[{"name":"path","external_name":"path","restriction":"String"}],"double_splat":{"name":"params","external_name":"params","restriction":""},"visibility":"Public","body":"response = get_request(path, **params)\nparsed_json_body = begin\n JSON.parse(response.body)\nrescue ex : JSON::ParseException\n ex.to_s\nend\n{body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\n"}},{"html_id":"get_samples_for_an_object_attribute(id:String,attribute_id:String,start_time:String,end_time:String,page:Int32=1,page_size:Int32=10):GetSamplesForAnObjectAttributeResponse-instance-method","name":"get_samples_for_an_object_attribute","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"args_string":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","args_html":"(id : String, attribute_id : String, start_time : String, end_time : String, page : Int32 = 1, page_size : Int32 = 10) : GetSamplesForAnObjectAttributeResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L154"},"def":{"name":"get_samples_for_an_object_attribute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"attribute_id","external_name":"attribute_id","restriction":"String"},{"name":"start_time","external_name":"start_time","restriction":"String"},{"name":"end_time","external_name":"end_time","restriction":"String"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"page_size","default_value":"10","external_name":"page_size","restriction":"Int32"}],"return_type":"GetSamplesForAnObjectAttributeResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/#{attribute_id}/samples\", start_time: start_time, end_time: end_time, page: page, page_size: page_size, sort: \"-timestamp\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSamplesForAnObjectAttributeResponse.from_json(response.body)\n"}},{"html_id":"get_single_object_presentValue(id:String):GetSingleObjectPresentValueResponse-instance-method","name":"get_single_object_presentValue","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : GetSingleObjectPresentValueResponse","args_html":"(id : String) : GetSingleObjectPresentValueResponse","location":{"filename":"src/johnson_controls/metasys.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L147"},"def":{"name":"get_single_object_presentValue","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"GetSingleObjectPresentValueResponse","visibility":"Public","body":"response = get_request(\"/objects/#{id}/attributes/presentValue\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nGetSingleObjectPresentValueResponse.from_json(response.body)\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L36"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nlogger.debug do\n \"received login response #{response.body}\"\nend\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"get_token_debug-instance-method","name":"get_token_debug","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L59"},"def":{"name":"get_token_debug","visibility":"Public","body":"response = post(\"/login\", headers: {\"Content-Type\" => CONTENT_TYPE}, body: {username: @username, password: @password}.to_json)\nif response.success?\n resp = AuthResponse.from_json(response.body)\n @auth_expiry = resp.expires\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n parsed_json_body = begin\n JSON.parse(response.body)\n rescue ex : JSON::ParseException\n ex.to_s\n end\n {body: response.body, parsed_json_body: parsed_json_body, status_code: response.status_code}\nend\n"}},{"html_id":"lookup_object_id(fqr:String):String-instance-method","name":"lookup_object_id","abstract":false,"args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"args_string":"(fqr : String) : String","args_html":"(fqr : String) : String","location":{"filename":"src/johnson_controls/metasys.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L111"},"def":{"name":"lookup_object_id","args":[{"name":"fqr","external_name":"fqr","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get_request(\"/objectIdentifiers?fqr=#{fqr}\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nresponse.body.to_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@equipment_ids_and_attributes = (setting?(Hash(String, Array(String)), :equipment_ids_and_attributes)) || ({} of String => Array(String))\n@poll_interval_seconds = (setting?(Int32, :poll_interval_seconds)) || 300\n@count = 0\nschedule.every(@poll_interval_seconds.seconds, true) do\n update_data\nend\n"}},{"html_id":"send_command_to_an_object(id:String,command_id:String,body:Array(JSON::Any))-instance-method","name":"send_command_to_an_object","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"args_string":"(id : String, command_id : String, body : Array(JSON::Any))","args_html":"(id : String, command_id : String, body : Array(JSON::Any))","location":{"filename":"src/johnson_controls/metasys.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L175"},"def":{"name":"send_command_to_an_object","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"body","external_name":"body","restriction":"Array(JSON::Any)"}],"visibility":"Public","body":"response = put_request(\"/objects/#{id}/commands/#{command_id}\", body: body)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L32"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry <= Time.utc"}},{"html_id":"update_data-instance-method","name":"update_data","abstract":false,"location":{"filename":"src/johnson_controls/metasys.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys.cr#L180"},"def":{"name":"update_data","visibility":"Public","body":"debug = {} of String => Hash(String, Float64)\ndata = {} of String => Hash(String, Float64)\n@equipment_ids_and_attributes.each do |id, attributes|\n equipment_points = get_equipment_points(id)\n equipment_points.points.each do |p|\n if attributes.includes?(p.name)\n else\n next\n end\n __temp_762 = p.equipment_name\n data[__temp_762]? || (data[__temp_762] = {} of String => Float64)\n __temp_764 = p.equipment_name\n debug[__temp_764]? || (debug[__temp_764] = {} of String => Float64)\n object_id = (p.object_url.split('/')).last\n value = get_attribute_value(object_id)\n data[p.equipment_name][p.name] = value\n debug[p.equipment_name][p.object_url] = value\n end\nend\naverages = calculate_averages(data)\n{data: self[:data] = data, count: @count, equipment_ids_and_attributes: @equipment_ids_and_attributes, debug: debug, averages: self[:averages] = averages}\n"}}]},{"html_id":"drivers/JohnsonControls/NetworkDevice","path":"JohnsonControls/NetworkDevice.html","kind":"class","full_name":"JohnsonControls::NetworkDevice","name":"NetworkDevice","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alarms_url:String-instance-method","name":"alarms_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url","return_type":"String","visibility":"Public","body":"@alarms_url"}},{"html_id":"alarms_url=(alarms_url:String)-instance-method","name":"alarms_url=","abstract":false,"args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"args_string":"(alarms_url : String)","args_html":"(alarms_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L50"},"def":{"name":"alarms_url=","args":[{"name":"alarms_url","external_name":"alarms_url","restriction":"String"}],"visibility":"Public","body":"@alarms_url = alarms_url"}},{"html_id":"audits_url:String-instance-method","name":"audits_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url","return_type":"String","visibility":"Public","body":"@audits_url"}},{"html_id":"audits_url=(audits_url:String)-instance-method","name":"audits_url=","abstract":false,"args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"args_string":"(audits_url : String)","args_html":"(audits_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L53"},"def":{"name":"audits_url=","args":[{"name":"audits_url","external_name":"audits_url","restriction":"String"}],"visibility":"Public","body":"@audits_url = audits_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L20"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"item_reference:String-instance-method","name":"item_reference","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference","return_type":"String","visibility":"Public","body":"@item_reference"}},{"html_id":"item_reference=(item_reference:String)-instance-method","name":"item_reference=","abstract":false,"args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"args_string":"(item_reference : String)","args_html":"(item_reference : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L23"},"def":{"name":"item_reference=","args":[{"name":"item_reference","external_name":"item_reference","restriction":"String"}],"visibility":"Public","body":"@item_reference = item_reference"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L26"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"network_device_url:String-instance-method","name":"network_device_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url","return_type":"String","visibility":"Public","body":"@network_device_url"}},{"html_id":"network_device_url=(network_device_url:String)-instance-method","name":"network_device_url=","abstract":false,"args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"args_string":"(network_device_url : String)","args_html":"(network_device_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L41"},"def":{"name":"network_device_url=","args":[{"name":"network_device_url","external_name":"network_device_url","restriction":"String"}],"visibility":"Public","body":"@network_device_url = network_device_url"}},{"html_id":"objects_url:String-instance-method","name":"objects_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url","return_type":"String","visibility":"Public","body":"@objects_url"}},{"html_id":"objects_url=(objects_url:String)-instance-method","name":"objects_url=","abstract":false,"args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"args_string":"(objects_url : String)","args_html":"(objects_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L38"},"def":{"name":"objects_url=","args":[{"name":"objects_url","external_name":"objects_url","restriction":"String"}],"visibility":"Public","body":"@objects_url = objects_url"}},{"html_id":"parent_url:String-instance-method","name":"parent_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url","return_type":"String","visibility":"Public","body":"@parent_url"}},{"html_id":"parent_url=(parent_url:String)-instance-method","name":"parent_url=","abstract":false,"args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"args_string":"(parent_url : String)","args_html":"(parent_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L35"},"def":{"name":"parent_url=","args":[{"name":"parent_url","external_name":"parent_url","restriction":"String"}],"visibility":"Public","body":"@parent_url = parent_url"}},{"html_id":"points_url:String-instance-method","name":"points_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url","return_type":"String","visibility":"Public","body":"@points_url"}},{"html_id":"points_url=(points_url:String)-instance-method","name":"points_url=","abstract":false,"args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"args_string":"(points_url : String)","args_html":"(points_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L44"},"def":{"name":"points_url=","args":[{"name":"points_url","external_name":"points_url","restriction":"String"}],"visibility":"Public","body":"@points_url = points_url"}},{"html_id":"self:String-instance-method","name":"self","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self","return_type":"String","visibility":"Public","body":"@self"}},{"html_id":"self=(self__arg0:String)-instance-method","name":"self=","abstract":false,"args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"args_string":"(self __arg0 : String)","args_html":"(self __arg0 : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L32"},"def":{"name":"self=","args":[{"name":"__arg0","external_name":"self","restriction":"String"}],"visibility":"Public","body":"@self = __arg0"}},{"html_id":"trended_attributes_url:String-instance-method","name":"trended_attributes_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url","return_type":"String","visibility":"Public","body":"@trended_attributes_url"}},{"html_id":"trended_attributes_url=(trended_attributes_url:String)-instance-method","name":"trended_attributes_url=","abstract":false,"args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"args_string":"(trended_attributes_url : String)","args_html":"(trended_attributes_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L47"},"def":{"name":"trended_attributes_url=","args":[{"name":"trended_attributes_url","external_name":"trended_attributes_url","restriction":"String"}],"visibility":"Public","body":"@trended_attributes_url = trended_attributes_url"}},{"html_id":"type_url:String-instance-method","name":"type_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url","return_type":"String","visibility":"Public","body":"@type_url"}},{"html_id":"type_url=(type_url:String)-instance-method","name":"type_url=","abstract":false,"args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"args_string":"(type_url : String)","args_html":"(type_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L29"},"def":{"name":"type_url=","args":[{"name":"type_url","external_name":"type_url","restriction":"String"}],"visibility":"Public","body":"@type_url = type_url"}}]},{"html_id":"drivers/JohnsonControls/Point","path":"JohnsonControls/Point.html","kind":"class","full_name":"JohnsonControls::Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"equipment_name:String-instance-method","name":"equipment_name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name","return_type":"String","visibility":"Public","body":"@equipment_name"}},{"html_id":"equipment_name=(equipment_name:String)-instance-method","name":"equipment_name=","abstract":false,"args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"args_string":"(equipment_name : String)","args_html":"(equipment_name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L225"},"def":{"name":"equipment_name=","args":[{"name":"equipment_name","external_name":"equipment_name","restriction":"String"}],"visibility":"Public","body":"@equipment_name = equipment_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L222"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"object_url:String-instance-method","name":"object_url","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url","return_type":"String","visibility":"Public","body":"@object_url"}},{"html_id":"object_url=(object_url:String)-instance-method","name":"object_url=","abstract":false,"args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"args_string":"(object_url : String)","args_html":"(object_url : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L228"},"def":{"name":"object_url=","args":[{"name":"object_url","external_name":"object_url","restriction":"String"}],"visibility":"Public","body":"@object_url = object_url"}}]},{"html_id":"drivers/JohnsonControls/Sample","path":"JohnsonControls/Sample.html","kind":"class","full_name":"JohnsonControls::Sample","name":"Sample","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L100"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L101"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"reliable:Bool-instance-method","name":"reliable","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable","return_type":"Bool","visibility":"Public","body":"@reliable"}},{"html_id":"reliable=(reliable:Bool)-instance-method","name":"reliable=","abstract":false,"args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"args_string":"(reliable : Bool)","args_html":"(reliable : Bool)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L107"},"def":{"name":"reliable=","args":[{"name":"reliable","external_name":"reliable","restriction":"Bool"}],"visibility":"Public","body":"@reliable = reliable"}},{"html_id":"timestamp:String-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp","return_type":"String","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:String)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"args_string":"(timestamp : String)","args_html":"(timestamp : String)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L104"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"String"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"value:Hash(String,JSON::Any)-instance-method","name":"value","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Hash(String,JSON::Any))-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"args_string":"(value : Hash(String, JSON::Any))","args_html":"(value : Hash(String, JSON::Any))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L110"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/JohnsonControls/SamplesResponse","path":"JohnsonControls/SamplesResponse.html","kind":"class","full_name":"JohnsonControls::SamplesResponse","name":"SamplesResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L258"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L259"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Item)-instance-method","name":"items","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items","return_type":"Array(Item)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Item))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"args_string":"(items : Array(Item))","args_html":"(items : Array(Item))","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L261"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Item)"}],"visibility":"Public","body":"@items = items"}}]},{"html_id":"drivers/JohnsonControls/Value","path":"JohnsonControls/Value.html","kind":"class","full_name":"JohnsonControls::Value","name":"Value","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/johnson_controls/metasys_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/JohnsonControls","kind":"module","full_name":"JohnsonControls","name":"JohnsonControls"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual:Float64-instance-method","name":"actual","abstract":false,"location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual","return_type":"Float64","visibility":"Public","body":"@actual"}},{"html_id":"actual=(actual:Float64)-instance-method","name":"actual=","abstract":false,"args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"args_string":"(actual : Float64)","args_html":"(actual : Float64)","location":{"filename":"src/johnson_controls/metasys_models.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/johnson_controls/metasys_models.cr#L274"},"def":{"name":"actual=","args":[{"name":"actual","external_name":"actual","restriction":"Float64"}],"visibility":"Public","body":"@actual = actual"}}]}]},{"html_id":"drivers/Juniper","path":"Juniper.html","kind":"module","full_name":"Juniper","name":"Juniper","abstract":false,"locations":[{"filename":"src/juniper/mist_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Juniper/Client","path":"Juniper/Client.html","kind":"class","full_name":"Juniper::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L75"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L76"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L108"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L91"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L90"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L85"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L85"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L114"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L114"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L82"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L89"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L113"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L79"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L78"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L78"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L84"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L96"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L86"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L86"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L102"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L83"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L83"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L94"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L106"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L92"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L81"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L81"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L93"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L98"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L98"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L100"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L99"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L99"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L101"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientLocation","path":"Juniper/ClientLocation.html","kind":"struct","full_name":"Juniper::ClientLocation","name":"ClientLocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accuracy-instance-method","name":"accuracy","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L159"},"def":{"name":"accuracy","visibility":"Public","body":"if raw_accuracy\n return raw_accuracy\nend\n15 // num_locating_aps\n"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L145"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L145"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L146"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"num_locating_aps:Int32-instance-method","name":"num_locating_aps","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps","return_type":"Int32","visibility":"Public","body":"@num_locating_aps"}},{"html_id":"num_locating_aps=(num_locating_aps:Int32)-instance-method","name":"num_locating_aps=","abstract":false,"args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"args_string":"(num_locating_aps : Int32)","args_html":"(num_locating_aps : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L153"},"def":{"name":"num_locating_aps=","args":[{"name":"num_locating_aps","external_name":"num_locating_aps","restriction":"Int32"}],"visibility":"Public","body":"@num_locating_aps = num_locating_aps"}},{"html_id":"raw_accuracy:Int32|Nil-instance-method","name":"raw_accuracy","doc":"meters","summary":"

meters

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy","return_type":"Int32 | ::Nil","visibility":"Public","body":"@raw_accuracy"}},{"html_id":"raw_accuracy=(raw_accuracy:Int32|Nil)-instance-method","name":"raw_accuracy=","doc":"meters","summary":"

meters

","abstract":false,"args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"args_string":"(raw_accuracy : Int32 | Nil)","args_html":"(raw_accuracy : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L157"},"def":{"name":"raw_accuracy=","args":[{"name":"raw_accuracy","external_name":"raw_accuracy","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@raw_accuracy = raw_accuracy"}},{"html_id":"x:Float64-instance-method","name":"x","doc":"pixels","summary":"

pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L149"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","doc":"pixels","summary":"

pixels

","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L149"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"x_m:Float64|Nil-instance-method","name":"x_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x_m"}},{"html_id":"x_m=(x_m:Float64|Nil)-instance-method","name":"x_m=","abstract":false,"args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"args_string":"(x_m : Float64 | Nil)","args_html":"(x_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L151"},"def":{"name":"x_m=","args":[{"name":"x_m","external_name":"x_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x_m = x_m"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L150"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L150"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}},{"html_id":"y_m:Float64|Nil-instance-method","name":"y_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y_m"}},{"html_id":"y_m=(y_m:Float64|Nil)-instance-method","name":"y_m=","abstract":false,"args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"args_string":"(y_m : Float64 | Nil)","args_html":"(y_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L152"},"def":{"name":"y_m=","args":[{"name":"y_m","external_name":"y_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y_m = y_m"}}]},{"html_id":"drivers/Juniper/ClientStats","path":"Juniper/ClientStats.html","kind":"struct","full_name":"Juniper::ClientStats","name":"ClientStats","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ap_id:String-instance-method","name":"ap_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id","return_type":"String","visibility":"Public","body":"@ap_id"}},{"html_id":"ap_id=(ap_id:String)-instance-method","name":"ap_id=","abstract":false,"args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"args_string":"(ap_id : String)","args_html":"(ap_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L133"},"def":{"name":"ap_id=","args":[{"name":"ap_id","external_name":"ap_id","restriction":"String"}],"visibility":"Public","body":"@ap_id = ap_id"}},{"html_id":"ap_mac:String-instance-method","name":"ap_mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac","return_type":"String","visibility":"Public","body":"@ap_mac"}},{"html_id":"ap_mac=(ap_mac:String)-instance-method","name":"ap_mac=","abstract":false,"args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"args_string":"(ap_mac : String)","args_html":"(ap_mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L132"},"def":{"name":"ap_mac=","args":[{"name":"ap_mac","external_name":"ap_mac","restriction":"String"}],"visibility":"Public","body":"@ap_mac = ap_mac"}},{"html_id":"family:String|Nil-instance-method","name":"family","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L127"},"def":{"name":"family","return_type":"String | ::Nil","visibility":"Public","body":"@family"}},{"html_id":"family=(family:String|Nil)-instance-method","name":"family=","abstract":false,"args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"args_string":"(family : String | Nil)","args_html":"(family : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L127"},"def":{"name":"family=","args":[{"name":"family","external_name":"family","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family = family"}},{"html_id":"guest:Guest|Nil-instance-method","name":"guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L139"},"def":{"name":"guest","return_type":"Guest | ::Nil","visibility":"Public","body":"@guest"}},{"html_id":"guest=(guest:Guest|Nil)-instance-method","name":"guest=","abstract":false,"args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"args_string":"(guest : Guest | Nil)","args_html":"(guest : Guest | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L139"},"def":{"name":"guest=","args":[{"name":"guest","external_name":"guest","restriction":"Guest | ::Nil"}],"visibility":"Public","body":"@guest = guest"}},{"html_id":"hostname:String|Nil-instance-method","name":"hostname","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname","return_type":"String | ::Nil","visibility":"Public","body":"@hostname"}},{"html_id":"hostname=(hostname:String|Nil)-instance-method","name":"hostname=","abstract":false,"args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"args_string":"(hostname : String | Nil)","args_html":"(hostname : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L124"},"def":{"name":"hostname=","args":[{"name":"hostname","external_name":"hostname","restriction":"String | ::Nil"}],"visibility":"Public","body":"@hostname = hostname"}},{"html_id":"ip_address:String-instance-method","name":"ip_address","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address","return_type":"String","visibility":"Public","body":"@ip_address"}},{"html_id":"ip_address=(ip_address:String)-instance-method","name":"ip_address=","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L131"},"def":{"name":"ip_address=","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"@ip_address = ip_address"}},{"html_id":"is_guest:Bool|Nil-instance-method","name":"is_guest","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_guest"}},{"html_id":"is_guest=(is_guest:Bool|Nil)-instance-method","name":"is_guest=","abstract":false,"args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"args_string":"(is_guest : Bool | Nil)","args_html":"(is_guest : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L138"},"def":{"name":"is_guest=","args":[{"name":"is_guest","external_name":"is_guest","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@is_guest = is_guest"}},{"html_id":"last_seen:Int64-instance-method","name":"last_seen","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen","return_type":"Int64","visibility":"Public","body":"@last_seen"}},{"html_id":"last_seen=(last_seen:Int64)-instance-method","name":"last_seen=","abstract":false,"args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"args_string":"(last_seen : Int64)","args_html":"(last_seen : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L121"},"def":{"name":"last_seen=","args":[{"name":"last_seen","external_name":"last_seen","restriction":"Int64"}],"visibility":"Public","body":"@last_seen = last_seen"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L120"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L120"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"manufacture:String|Nil-instance-method","name":"manufacture","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture","return_type":"String | ::Nil","visibility":"Public","body":"@manufacture"}},{"html_id":"manufacture=(manufacture:String|Nil)-instance-method","name":"manufacture=","abstract":false,"args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"args_string":"(manufacture : String | Nil)","args_html":"(manufacture : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L126"},"def":{"name":"manufacture=","args":[{"name":"manufacture","external_name":"manufacture","restriction":"String | ::Nil"}],"visibility":"Public","body":"@manufacture = manufacture"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L128"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String|Nil)-instance-method","name":"model=","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"args_string":"(model : String | Nil)","args_html":"(model : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L128"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String | ::Nil"}],"visibility":"Public","body":"@model = model"}},{"html_id":"os:String|Nil-instance-method","name":"os","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L125"},"def":{"name":"os","return_type":"String | ::Nil","visibility":"Public","body":"@os"}},{"html_id":"os=(os:String|Nil)-instance-method","name":"os=","abstract":false,"args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"args_string":"(os : String | Nil)","args_html":"(os : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L125"},"def":{"name":"os=","args":[{"name":"os","external_name":"os","restriction":"String | ::Nil"}],"visibility":"Public","body":"@os = os"}},{"html_id":"psk_id:String|Nil-instance-method","name":"psk_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id","return_type":"String | ::Nil","visibility":"Public","body":"@psk_id"}},{"html_id":"psk_id=(psk_id:String|Nil)-instance-method","name":"psk_id=","abstract":false,"args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"args_string":"(psk_id : String | Nil)","args_html":"(psk_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L136"},"def":{"name":"psk_id=","args":[{"name":"psk_id","external_name":"psk_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@psk_id = psk_id"}},{"html_id":"ssid:String-instance-method","name":"ssid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid","return_type":"String","visibility":"Public","body":"@ssid"}},{"html_id":"ssid=(ssid:String)-instance-method","name":"ssid=","abstract":false,"args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"args_string":"(ssid : String)","args_html":"(ssid : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L134"},"def":{"name":"ssid=","args":[{"name":"ssid","external_name":"ssid","restriction":"String"}],"visibility":"Public","body":"@ssid = ssid"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L123"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}},{"html_id":"username=(username:String|Nil)-instance-method","name":"username=","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil)","args_html":"(username : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L123"},"def":{"name":"username=","args":[{"name":"username","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"@username = username"}},{"html_id":"wlan_id:String-instance-method","name":"wlan_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id","return_type":"String","visibility":"Public","body":"@wlan_id"}},{"html_id":"wlan_id=(wlan_id:String)-instance-method","name":"wlan_id=","abstract":false,"args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"args_string":"(wlan_id : String)","args_html":"(wlan_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L135"},"def":{"name":"wlan_id=","args":[{"name":"wlan_id","external_name":"wlan_id","restriction":"String"}],"visibility":"Public","body":"@wlan_id = wlan_id"}}]},{"html_id":"drivers/Juniper/Guest","path":"Juniper/Guest.html","kind":"class","full_name":"Juniper::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"authorized:Bool-instance-method","name":"authorized","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized","return_type":"Bool","visibility":"Public","body":"@authorized"}},{"html_id":"authorized=(authorized:Bool)-instance-method","name":"authorized=","abstract":false,"args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"args_string":"(authorized : Bool)","args_html":"(authorized : Bool)","location":{"filename":"src/juniper/mist_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L169"},"def":{"name":"authorized=","args":[{"name":"authorized","external_name":"authorized","restriction":"Bool"}],"visibility":"Public","body":"@authorized = authorized"}},{"html_id":"authorized_expiring_time:Int64|Nil-instance-method","name":"authorized_expiring_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_expiring_time"}},{"html_id":"authorized_expiring_time=(authorized_expiring_time:Int64|Nil)-instance-method","name":"authorized_expiring_time=","abstract":false,"args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_expiring_time : Int64 | Nil)","args_html":"(authorized_expiring_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L171"},"def":{"name":"authorized_expiring_time=","args":[{"name":"authorized_expiring_time","external_name":"authorized_expiring_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_expiring_time = authorized_expiring_time"}},{"html_id":"authorized_time:Int64|Nil-instance-method","name":"authorized_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@authorized_time"}},{"html_id":"authorized_time=(authorized_time:Int64|Nil)-instance-method","name":"authorized_time=","abstract":false,"args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"args_string":"(authorized_time : Int64 | Nil)","args_html":"(authorized_time : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L170"},"def":{"name":"authorized_time=","args":[{"name":"authorized_time","external_name":"authorized_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@authorized_time = authorized_time"}},{"html_id":"company:String|Nil-instance-method","name":"company","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L174"},"def":{"name":"company","return_type":"String | ::Nil","visibility":"Public","body":"@company"}},{"html_id":"company=(company:String|Nil)-instance-method","name":"company=","abstract":false,"args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"args_string":"(company : String | Nil)","args_html":"(company : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L174"},"def":{"name":"company=","args":[{"name":"company","external_name":"company","restriction":"String | ::Nil"}],"visibility":"Public","body":"@company = company"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L173"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L173"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L172"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/LatLng","path":"Juniper/LatLng.html","kind":"struct","full_name":"Juniper::LatLng","name":"LatLng","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"lat:Float64-instance-method","name":"lat","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L71"},"def":{"name":"lat","return_type":"Float64","visibility":"Public","body":"@lat"}},{"html_id":"lat=(lat:Float64)-instance-method","name":"lat=","abstract":false,"args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"args_string":"(lat : Float64)","args_html":"(lat : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L71"},"def":{"name":"lat=","args":[{"name":"lat","external_name":"lat","restriction":"Float64"}],"visibility":"Public","body":"@lat = lat"}},{"html_id":"lng:Float64-instance-method","name":"lng","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L72"},"def":{"name":"lng","return_type":"Float64","visibility":"Public","body":"@lng"}},{"html_id":"lng=(lng:Float64)-instance-method","name":"lng=","abstract":false,"args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"args_string":"(lng : Float64)","args_html":"(lng : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L72"},"def":{"name":"lng=","args":[{"name":"lng","external_name":"lng","restriction":"Float64"}],"visibility":"Public","body":"@lng = lng"}}]},{"html_id":"drivers/Juniper/LocationAsset","path":"Juniper/LocationAsset.html","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L236"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L236"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"battery_voltage:Float64|Nil-instance-method","name":"battery_voltage","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage","return_type":"Float64 | ::Nil","visibility":"Public","body":"@battery_voltage"}},{"html_id":"battery_voltage=(battery_voltage:Float64|Nil)-instance-method","name":"battery_voltage=","abstract":false,"args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"args_string":"(battery_voltage : Float64 | Nil)","args_html":"(battery_voltage : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L254"},"def":{"name":"battery_voltage=","args":[{"name":"battery_voltage","external_name":"battery_voltage","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@battery_voltage = battery_voltage"}},{"html_id":"eddystone_uid_instance:String|Nil-instance-method","name":"eddystone_uid_instance","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_instance"}},{"html_id":"eddystone_uid_instance=(eddystone_uid_instance:String|Nil)-instance-method","name":"eddystone_uid_instance=","abstract":false,"args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_instance : String | Nil)","args_html":"(eddystone_uid_instance : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L245"},"def":{"name":"eddystone_uid_instance=","args":[{"name":"eddystone_uid_instance","external_name":"eddystone_uid_instance","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_instance = eddystone_uid_instance"}},{"html_id":"eddystone_uid_namespace:String|Nil-instance-method","name":"eddystone_uid_namespace","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_uid_namespace"}},{"html_id":"eddystone_uid_namespace=(eddystone_uid_namespace:String|Nil)-instance-method","name":"eddystone_uid_namespace=","abstract":false,"args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"args_string":"(eddystone_uid_namespace : String | Nil)","args_html":"(eddystone_uid_namespace : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L244"},"def":{"name":"eddystone_uid_namespace=","args":[{"name":"eddystone_uid_namespace","external_name":"eddystone_uid_namespace","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_uid_namespace = eddystone_uid_namespace"}},{"html_id":"eddystone_url_url:String|Nil-instance-method","name":"eddystone_url_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url","return_type":"String | ::Nil","visibility":"Public","body":"@eddystone_url_url"}},{"html_id":"eddystone_url_url=(eddystone_url_url:String|Nil)-instance-method","name":"eddystone_url_url=","abstract":false,"args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"args_string":"(eddystone_url_url : String | Nil)","args_html":"(eddystone_url_url : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L246"},"def":{"name":"eddystone_url_url=","args":[{"name":"eddystone_url_url","external_name":"eddystone_url_url","restriction":"String | ::Nil"}],"visibility":"Public","body":"@eddystone_url_url = eddystone_url_url"}},{"html_id":"ibeacon_major:Int64|Nil-instance-method","name":"ibeacon_major","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_major"}},{"html_id":"ibeacon_major=(ibeacon_major:Int64|Nil)-instance-method","name":"ibeacon_major=","abstract":false,"args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_major : Int64 | Nil)","args_html":"(ibeacon_major : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L241"},"def":{"name":"ibeacon_major=","args":[{"name":"ibeacon_major","external_name":"ibeacon_major","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_major = ibeacon_major"}},{"html_id":"ibeacon_minor:Int64|Nil-instance-method","name":"ibeacon_minor","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ibeacon_minor"}},{"html_id":"ibeacon_minor=(ibeacon_minor:Int64|Nil)-instance-method","name":"ibeacon_minor=","abstract":false,"args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"args_string":"(ibeacon_minor : Int64 | Nil)","args_html":"(ibeacon_minor : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L242"},"def":{"name":"ibeacon_minor=","args":[{"name":"ibeacon_minor","external_name":"ibeacon_minor","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@ibeacon_minor = ibeacon_minor"}},{"html_id":"ibeacon_uuid:String|Nil-instance-method","name":"ibeacon_uuid","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid","return_type":"String | ::Nil","visibility":"Public","body":"@ibeacon_uuid"}},{"html_id":"ibeacon_uuid=(ibeacon_uuid:String|Nil)-instance-method","name":"ibeacon_uuid=","abstract":false,"args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"args_string":"(ibeacon_uuid : String | Nil)","args_html":"(ibeacon_uuid : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L240"},"def":{"name":"ibeacon_uuid=","args":[{"name":"ibeacon_uuid","external_name":"ibeacon_uuid","restriction":"String | ::Nil"}],"visibility":"Public","body":"@ibeacon_uuid = ibeacon_uuid"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L238"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L238"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"mfg_company_id:Int64|Nil-instance-method","name":"mfg_company_id","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@mfg_company_id"}},{"html_id":"mfg_company_id=(mfg_company_id:Int64|Nil)-instance-method","name":"mfg_company_id=","doc":"BLE manufacturing company ID","summary":"

BLE manufacturing company ID

","abstract":false,"args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"args_string":"(mfg_company_id : Int64 | Nil)","args_html":"(mfg_company_id : Int64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L249"},"def":{"name":"mfg_company_id=","args":[{"name":"mfg_company_id","external_name":"mfg_company_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@mfg_company_id = mfg_company_id"}},{"html_id":"mfg_data:String|Nil-instance-method","name":"mfg_data","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data","return_type":"String | ::Nil","visibility":"Public","body":"@mfg_data"}},{"html_id":"mfg_data=(mfg_data:String|Nil)-instance-method","name":"mfg_data=","doc":"BLE manufacturing data in hex byte-string format","summary":"

BLE manufacturing data in hex byte-string format

","abstract":false,"args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"args_string":"(mfg_data : String | Nil)","args_html":"(mfg_data : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L252"},"def":{"name":"mfg_data=","args":[{"name":"mfg_data","external_name":"mfg_data","restriction":"String | ::Nil"}],"visibility":"Public","body":"@mfg_data = mfg_data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L237"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationEvent","path":"Juniper/LocationEvent.html","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationAsset","kind":"class","full_name":"Juniper::LocationAsset","name":"LocationAsset"},{"html_id":"drivers/Juniper/LocationSDK","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK"},{"html_id":"drivers/Juniper/LocationWifi","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L218"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"sdk\"\n LocationSDK.from_json(json)\nwhen \"wifi\"\n LocationWifi.from_json(json)\nwhen \"asset\"\n LocationAsset.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L211"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L216"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L214"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L214"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L215"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L215"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Juniper/LocationEvents","path":"Juniper/LocationEvents.html","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L196"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(LocationEvent)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L198"},"def":{"name":"events","return_type":"Array(LocationEvent)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L197"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/LocationSDK","path":"Juniper/LocationSDK.html","kind":"class","full_name":"Juniper::LocationSDK","name":"LocationSDK","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L225"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L225"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L228"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L228"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L227"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L227"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L226"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/LocationWifi","path":"Juniper/LocationWifi.html","kind":"class","full_name":"Juniper::LocationWifi","name":"LocationWifi","abstract":false,"superclass":{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},"ancestors":[{"html_id":"drivers/Juniper/LocationEvent","kind":"class","full_name":"Juniper::LocationEvent","name":"LocationEvent"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L231"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L231"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L233"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}},{"html_id":"mac=(mac:String)-instance-method","name":"mac=","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"}],"args_string":"(mac : String)","args_html":"(mac : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L233"},"def":{"name":"mac=","args":[{"name":"mac","external_name":"mac","restriction":"String"}],"visibility":"Public","body":"@mac = mac"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L232"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Juniper/Map","path":"Juniper/Map.html","kind":"class","full_name":"Juniper::Map","name":"Map","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/MapGoogle","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle"},{"html_id":"drivers/Juniper/MapImage","kind":"class","full_name":"Juniper::MapImage","name":"MapImage"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"image\"\n MapImage.from_json(json)\nwhen \"google\"\n MapGoogle.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L22"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L22"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L21"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L21"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Juniper/MapGoogle","path":"Juniper/MapGoogle.html","kind":"class","full_name":"Juniper::MapGoogle","name":"MapGoogle","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bottom_right_coordinates:LatLng-instance-method","name":"bottom_right_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates","return_type":"LatLng","visibility":"Public","body":"@bottom_right_coordinates"}},{"html_id":"bottom_right_coordinates=(bottom_right_coordinates:LatLng)-instance-method","name":"bottom_right_coordinates=","abstract":false,"args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"args_string":"(bottom_right_coordinates : LatLng)","args_html":"(bottom_right_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L65"},"def":{"name":"bottom_right_coordinates=","args":[{"name":"bottom_right_coordinates","external_name":"bottom_right_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@bottom_right_coordinates = bottom_right_coordinates"}},{"html_id":"origin_x:Float64-instance-method","name":"origin_x","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x","return_type":"Float64","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64)-instance-method","name":"origin_x=","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"args_string":"(origin_x : Float64)","args_html":"(origin_x : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L58"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64-instance-method","name":"origin_y","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y","return_type":"Float64","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64)-instance-method","name":"origin_y=","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"args_string":"(origin_y : Float64)","args_html":"(origin_y : Float64)","location":{"filename":"src/juniper/mist_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L59"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"top_left_coordinates:LatLng-instance-method","name":"top_left_coordinates","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates","return_type":"LatLng","visibility":"Public","body":"@top_left_coordinates"}},{"html_id":"top_left_coordinates=(top_left_coordinates:LatLng)-instance-method","name":"top_left_coordinates=","abstract":false,"args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"args_string":"(top_left_coordinates : LatLng)","args_html":"(top_left_coordinates : LatLng)","location":{"filename":"src/juniper/mist_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L62"},"def":{"name":"top_left_coordinates=","args":[{"name":"top_left_coordinates","external_name":"top_left_coordinates","restriction":"LatLng"}],"visibility":"Public","body":"@top_left_coordinates = top_left_coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L56"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"view:String-instance-method","name":"view","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L57"},"def":{"name":"view","return_type":"String","visibility":"Public","body":"@view"}},{"html_id":"view=(view:String)-instance-method","name":"view=","abstract":false,"args":[{"name":"view","external_name":"view","restriction":"String"}],"args_string":"(view : String)","args_html":"(view : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L57"},"def":{"name":"view=","args":[{"name":"view","external_name":"view","restriction":"String"}],"visibility":"Public","body":"@view = view"}}]},{"html_id":"drivers/Juniper/MapImage","path":"Juniper/MapImage.html","kind":"class","full_name":"Juniper::MapImage","name":"MapImage","abstract":false,"superclass":{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},"ancestors":[{"html_id":"drivers/Juniper/Map","kind":"class","full_name":"Juniper::Map","name":"Map"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L30"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"height:Int32-instance-method","name":"height","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L41"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"@height"}},{"html_id":"height=(height:Int32)-instance-method","name":"height=","abstract":false,"args":[{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(height : Int32)","args_html":"(height : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L41"},"def":{"name":"height=","args":[{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"@height = height"}},{"html_id":"height_m:Float64|Nil-instance-method","name":"height_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height_m"}},{"html_id":"height_m=(height_m:Float64|Nil)-instance-method","name":"height_m=","abstract":false,"args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"args_string":"(height_m : Float64 | Nil)","args_html":"(height_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L44"},"def":{"name":"height_m=","args":[{"name":"height_m","external_name":"height_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@height_m = height_m"}},{"html_id":"locked:Bool|Nil-instance-method","name":"locked","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L52"},"def":{"name":"locked","return_type":"Bool | ::Nil","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool|Nil)-instance-method","name":"locked=","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"args_string":"(locked : Bool | Nil)","args_html":"(locked : Bool | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L52"},"def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@locked = locked"}},{"html_id":"org_id:String|Nil-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id","return_type":"String | ::Nil","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String|Nil)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"args_string":"(org_id : String | Nil)","args_html":"(org_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L36"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"orientation:Int32|Nil-instance-method","name":"orientation","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation","return_type":"Int32 | ::Nil","visibility":"Public","body":"@orientation"}},{"html_id":"orientation=(orientation:Int32|Nil)-instance-method","name":"orientation=","abstract":false,"args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"args_string":"(orientation : Int32 | Nil)","args_html":"(orientation : Int32 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L51"},"def":{"name":"orientation=","args":[{"name":"orientation","external_name":"orientation","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@orientation = orientation"}},{"html_id":"origin_x:Float64|Nil-instance-method","name":"origin_x","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_x"}},{"html_id":"origin_x=(origin_x:Float64|Nil)-instance-method","name":"origin_x=","doc":"the user-annotated x origin, pixels","summary":"

the user-annotated x origin, pixels

","abstract":false,"args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"args_string":"(origin_x : Float64 | Nil)","args_html":"(origin_x : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L47"},"def":{"name":"origin_x=","args":[{"name":"origin_x","external_name":"origin_x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_x = origin_x"}},{"html_id":"origin_y:Float64|Nil-instance-method","name":"origin_y","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@origin_y"}},{"html_id":"origin_y=(origin_y:Float64|Nil)-instance-method","name":"origin_y=","doc":"the user-annotated y origin, pixels","summary":"

the user-annotated y origin, pixels

","abstract":false,"args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"args_string":"(origin_y : Float64 | Nil)","args_html":"(origin_y : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L50"},"def":{"name":"origin_y=","args":[{"name":"origin_y","external_name":"origin_y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@origin_y = origin_y"}},{"html_id":"pixels_per_meter:Float64|Nil-instance-method","name":"pixels_per_meter","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter","return_type":"Float64 | ::Nil","visibility":"Public","body":"@pixels_per_meter"}},{"html_id":"pixels_per_meter=(pixels_per_meter:Float64|Nil)-instance-method","name":"pixels_per_meter=","abstract":false,"args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"args_string":"(pixels_per_meter : Float64 | Nil)","args_html":"(pixels_per_meter : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L39"},"def":{"name":"pixels_per_meter=","args":[{"name":"pixels_per_meter","external_name":"pixels_per_meter","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@pixels_per_meter = pixels_per_meter"}},{"html_id":"site_id:String|Nil-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id","return_type":"String | ::Nil","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String|Nil)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String | Nil)","args_html":"(site_id : String | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L35"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@site_id = site_id"}},{"html_id":"thumbnail_url:String-instance-method","name":"thumbnail_url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url","return_type":"String","visibility":"Public","body":"@thumbnail_url"}},{"html_id":"thumbnail_url=(thumbnail_url:String)-instance-method","name":"thumbnail_url=","abstract":false,"args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"args_string":"(thumbnail_url : String)","args_html":"(thumbnail_url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L33"},"def":{"name":"thumbnail_url=","args":[{"name":"thumbnail_url","external_name":"thumbnail_url","restriction":"String"}],"visibility":"Public","body":"@thumbnail_url = thumbnail_url"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L31"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"url:String-instance-method","name":"url","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L32"},"def":{"name":"url","return_type":"String","visibility":"Public","body":"@url"}},{"html_id":"url=(url:String)-instance-method","name":"url=","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"}],"args_string":"(url : String)","args_html":"(url : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L32"},"def":{"name":"url=","args":[{"name":"url","external_name":"url","restriction":"String"}],"visibility":"Public","body":"@url = url"}},{"html_id":"width:Int32-instance-method","name":"width","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L40"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Int32)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32)","args_html":"(width : Int32)","location":{"filename":"src/juniper/mist_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L40"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"visibility":"Public","body":"@width = width"}},{"html_id":"width_m:Float64|Nil-instance-method","name":"width_m","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width_m"}},{"html_id":"width_m=(width_m:Float64|Nil)-instance-method","name":"width_m=","abstract":false,"args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"args_string":"(width_m : Float64 | Nil)","args_html":"(width_m : Float64 | Nil)","location":{"filename":"src/juniper/mist_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L43"},"def":{"name":"width_m=","args":[{"name":"width_m","external_name":"width_m","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@width_m = width_m"}}]},{"html_id":"drivers/Juniper/Mist","path":"Juniper/Mist.html","kind":"class","full_name":"Juniper::Mist","name":"Mist","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(site_id:String,client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(site_id : String, client_mac : String)","args_html":"(site_id : String, client_mac : String)","location":{"filename":"src/juniper/mist.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L117"},"def":{"name":"client","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"clients(site_id:String,map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(site_id : String, map_id : String | Nil = nil)","args_html":"(site_id : String, map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L109"},"def":{"name":"clients","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L97"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"location_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"location_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/juniper/mist.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L124"},"def":{"name":"location_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nvalidation = if signature = headers[\"X-Mist-Signature-v2\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA256, @webhook_secret, body)).downcase\nelse\n if signature = headers[\"X-Mist-Signature\"]?.try(&.first?)\n (OpenSSL::HMAC.hexdigest(OpenSSL::Algorithm::SHA1, @webhook_secret, body)).downcase\n else\n logger.warn do\n \"webhook called without validation signature\"\n end\n return {HTTP::Status::NOT_FOUND.to_i, EMPTY_HEADERS, \"\"}\n end\nend\nif validation != signature.downcase\n logger.warn do\n \"validation failed, check webhook secret\"\n end\n return {HTTP::Status::UNAUTHORIZED.to_i, EMPTY_HEADERS, \"\"}\nend\nbegin\n event_data = WebhookEvent.from_json(body)\n logger.debug do\n \"parsed mist webhook payload\"\n end\n if event_data.topic != \"location\"\n logger.debug do\n \"ignoring message type: #{event_data.topic}\"\n end\n return SUCCESS_RESPONSE\n end\n sites = Hash(String, Array(LocationEvent)).new do |hash, site|\n hash[site] = [] of LocationEvent\n end\n (event_data.events.as(Array(LocationEvent))).each do |event|\n sites[event.site_id] << event\n end\n sites.each do |site, events|\n self[site] = events\n end\nrescue e\n logger.error(exception: e) do\n \"failed to parse mist webhook payload\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}},{"html_id":"maps(site_id:String)-instance-method","name":"maps","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/juniper/mist.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L105"},"def":{"name":"maps","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L28"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nschedule.cron(\"0 * * * *\") do\n reset_rate_limit\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L36"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@org_id = setting(String, :org_id)\n@webhook_secret = (setting?(String, :webhook_secret)) || \"\"\n"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/juniper/mist.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist.cr#L101"},"def":{"name":"sites","visibility":"Public","body":"request(Array(Site)) do |headers|\n get(\"/api/v1/orgs/#{@org_id}/sites\", headers: headers)\nend"}}]},{"html_id":"drivers/Juniper/MistLocationService","path":"Juniper/MistLocationService.html","kind":"class","full_name":"Juniper::MistLocationService","name":"MistLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/juniper/mist_location_service.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L113"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"lookup = format_mac(mac_address)\nif user = (mist.ownership_of(lookup)).get.as_s?\n {location: \"wireless\", assigned_to: user, mac_address: lookup}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L125"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"looking up device locations in #{zone_id}\"\nend\nif location.presence && (location != \"wireless\")\n return [] of String\nend\nmaps = [] of String\n@floorplan_mappings.each do |map_id, data|\n if data.values.includes?(zone_id)\n maps << map_id\n end\nend\nlogger.debug do\n \"found matching mist maps: #{maps}\"\nend\nif maps.empty?\n return [] of String\nend\nignore_older = @max_location_age.ago.to_unix\nall_devices = maps.flat_map do |map_id|\n clients = (mist.status?(Array(Client), map_id)) || ([] of Client)\n mappings = @floorplan_mappings[map_id]\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n clients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\n end\nend\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L192"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L62"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"clients = Array(Client).from_json((mist.locate(username.presence || email.presence.not_nil!)).get.to_json)\nignore_older = @max_location_age.ago.to_unix\nclients.compact_map do |client|\n if client.last_seen < ignore_older\n next\n end\n map_id = client.map_id\n mappings = @floorplan_mappings[map_id]?\n if mappings\n else\n next\n end\n building = mappings[\"building\"]?.as(String | ::Nil)\n level = mappings[\"level\"]?.as(String | ::Nil)\n map_width, map_height = get_floorplan_size(map_id, mappings)\n {location: :wireless, coordinates_from: \"top-left\", x: client.x, y: client.y, mac: client.mac, variance: client.accuracy, last_seen: client.last_seen, map_width: map_width, map_height: map_height, manufacturer: client.manufacture, os: client.os, ssid: client.ssid, building: building, level: level, mist_map_id: map_id}\nend\n"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","doc":"Proxies the data to the mist driver","summary":"

Proxies the data to the mist driver

","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_location_service.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L108"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"mist.mac_address_mappings(username, macs, domain)"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/juniper/mist_location_service.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L102"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(mist.macs_assigned_to(username.presence || email.presence.not_nil!)).get.as_a.map(&.as_s)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_location_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_location_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@floorplan_mappings = (setting?(Hash(String, Hash(String, String | Int32)), :floorplan_mappings)) || @floorplan_mappings\n@max_location_age = ((setting?(UInt32, :max_location_age)) || 6).minutes\nschedule.clear\nschedule.every(10.minutes) do\n sync_map_sizes\nend\nschedule.in(20.seconds) do\n sync_map_sizes\nend\n"}}]},{"html_id":"drivers/Juniper/MistWebsocket","path":"Juniper/MistWebsocket.html","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"client(client_mac:String)-instance-method","name":"client","abstract":false,"args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"args_string":"(client_mac : String)","args_html":"(client_mac : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L207"},"def":{"name":"client","args":[{"name":"client_mac","external_name":"client_mac","restriction":"String"}],"visibility":"Public","body":"request(Client) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients/#{client_mac}\", headers: headers)\nend"}},{"html_id":"client_data:Hash(String,Client)-instance-method","name":"client_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L36"},"def":{"name":"client_data","return_type":"Hash(String, Client)","visibility":"Public","body":"if (__temp_1 = @client_data).nil?\n @client_data = ({} of String => Client)\nelse\n __temp_1\nend"}},{"html_id":"clients(map_id:String|Nil=nil)-instance-method","name":"clients","abstract":false,"args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil = nil)","args_html":"(map_id : String | Nil = nil)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L199"},"def":{"name":"clients","args":[{"name":"map_id","default_value":"nil","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if map_id.presence\n request(Array(Client)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/maps/#{map_id}/clients\", headers: headers)\n end\nelse\n request(Array(ClientStats)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/stats/clients\", headers: headers)\n end\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L69"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\n@location_data = nil\n@client_data = nil\nschedule.every(45.seconds, immediate: true) do\n transport.send({subscribe: \"/sites/#{@site_id}/stats/clients\"}.to_json)\n maps.each do |map|\n transport.send({subscribe: \"/sites/#{@site_id}/stats/maps/#{map.id}/clients\"}.to_json)\n end\nend\nsync_clients\nschedule.every(3.seconds) do\n update_client_locations\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L85"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\n@connected = false\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L248"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"format_username(user:String)-instance-method","name":"format_username","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String"}],"args_string":"(user : String)","args_html":"(user : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L239"},"def":{"name":"format_username","args":[{"name":"user","external_name":"user","restriction":"String"}],"visibility":"Public","body":"if user.includes?(\"@\")\n user = (user.split(\"@\"))[0]\nelse\n if user.includes?(\"\\\\\")\n user = (user.split(\"\\\\\"))[1]\n end\nend\nuser.downcase\n"}},{"html_id":"get_request(location:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L186"},"def":{"name":"get_request","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"request(JSON::Any) do |headers|\n get(location, headers: headers)\nend"}},{"html_id":"locate(username:String)-instance-method","name":"locate","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String)","args_html":"(username : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L266"},"def":{"name":"locate","args":[{"name":"username","external_name":"username","restriction":"String"}],"visibility":"Public","body":"(macs_assigned_to(username)).compact_map do |mac|\n self[mac]?\nend"}},{"html_id":"location_data:Hash(String,Hash(String,Client))-instance-method","name":"location_data","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L32"},"def":{"name":"location_data","return_type":"Hash(String, Hash(String, Client))","visibility":"Public","body":"if (__temp_1 = @location_data).nil?\n @location_data = (Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\n end)\nelse\n __temp_1\nend"}},{"html_id":"mac_address_mappings(username:String,macs:Array(String),domain:String=\"\")-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"args_string":"(username : String, macs : Array(String), domain : String = \"\")","args_html":"(username : String, macs : Array(String), domain : String = "")","location":{"filename":"src/juniper/mist_websocket.cr","line_number":307,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L307"},"def":{"name":"mac_address_mappings","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"macs","external_name":"macs","restriction":"Array(String)"},{"name":"domain","default_value":"\"\"","external_name":"domain","restriction":"String"}],"visibility":"Public","body":"username = format_username(username)\nuser_mac_mappings do |storage|\n macs.each do |mac|\n map_user_mac(format_mac(mac), username, storage)\n end\nend\n"}},{"html_id":"macs_assigned_to(username:String):Array(String)-instance-method","name":"macs_assigned_to","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"}],"args_string":"(username : String) : Array(String)","args_html":"(username : String) : Array(String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L252"},"def":{"name":"macs_assigned_to","args":[{"name":"username","external_name":"username","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"username = format_username(username)\nif macs = user_mac_mappings do |s|\n s[username]?\nend\n Array(String).from_json(macs)\nelse\n [] of String\nend\n"}},{"html_id":"maps-instance-method","name":"maps","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L194"},"def":{"name":"maps","visibility":"Public","body":"request(Array(Map)) do |headers|\n get(\"/api/v1/sites/#{@site_id}/maps\", headers: headers)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"@user_mac_mappings = PlaceOS::Driver::RedisStorage.new(module_id, \"user_macs\")\ntransport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"token = setting(String, :api_token)\n@api_token = \"Token #{token}\"\n@site_id = setting(String, :site_id)\nif @site_id == \"site_id\"\nelse\n transport.http_uri_override = URI.parse(\"https://api.mist.com\")\nend\n@ignore_usernames = (setting?(Array(String), :ignore_usernames)) || ([] of String)\nif @connected\n connected\nend\n"}},{"html_id":"ownership_of(mac_address:String)-instance-method","name":"ownership_of","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L261"},"def":{"name":"ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"mac_address = format_mac(mac_address)\nuser_mac_mappings do |storage|\n storage[mac_address]?\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L221"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"string = (String.new(data)).rstrip\nlogger.debug do\n \"websocket sent: #{string}\"\nend\nevent = WebsocketEvent.from_json(string)\nif event_data = event.data\n if event.channel.includes?(\"/maps/\")\n client_location = ClientLocation.from_json(event_data)\n update_location(client_data, location_data, client_location)\n else\n client_stats = ClientStats.from_json(event_data)\n update_stats(client_data, client_stats)\n end\nend\ntask.try(&.success)\n"}},{"html_id":"site_list(org_id:String)-instance-method","name":"site_list","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L190"},"def":{"name":"site_list","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"request(Array(Hash(String, JSON::Any))) do |headers|\n get(\"/api/v1/installer/orgs/#{org_id}/sites\", headers: headers)\nend"}},{"html_id":"sync_clients-instance-method","name":"sync_clients","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L155"},"def":{"name":"sync_clients","visibility":"Public","body":"all_clients = [] of Client\nmaps.each do |map|\n all_clients.concat((clients(map.id)).map() do |__arg0|\n __arg0.as(Client)\n end)\nend\nloc_data = Hash(String, Hash(String, Client)).new do |hash, map_id|\n hash[map_id] = {} of String => Client\nend\ncli_data = {} of String => Client\nall_clients.each do |client|\n client_mac = format_mac(client.mac)\n client.mac = client_mac\n cli_data[client_mac] = client\n loc_data[client.map_id][client_mac] = client\nend\n@client_data = cli_data\n@location_data = loc_data\nloc_data.each do |map_id, clients|\n self[map_id] = clients.values\nend\nlocation_data.size\n"}},{"html_id":"websocket_headers-instance-method","name":"websocket_headers","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L62"},"def":{"name":"websocket_headers","visibility":"Public","body":"HTTP::Headers {\"Authorization\" => @api_token, \"User-Agent\" => \"PlaceOS/2.0 PlaceTechnology\"}"}}],"types":[{"html_id":"drivers/Juniper/MistWebsocket/WebsocketEvent","path":"Juniper/MistWebsocket/WebsocketEvent.html","kind":"struct","full_name":"Juniper::MistWebsocket::WebsocketEvent","name":"WebsocketEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_websocket.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L211"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper/MistWebsocket","kind":"class","full_name":"Juniper::MistWebsocket","name":"MistWebsocket"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_websocket.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L212"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"channel:String-instance-method","name":"channel","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L215"},"def":{"name":"channel","return_type":"String","visibility":"Public","body":"@channel"}},{"html_id":"data:String|Nil-instance-method","name":"data","doc":"data will be the Client class as a JSON string","summary":"

data will be the Client class as a JSON string

","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L218"},"def":{"name":"data","return_type":"String | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"event:String-instance-method","name":"event","abstract":false,"location":{"filename":"src/juniper/mist_websocket.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_websocket.cr#L214"},"def":{"name":"event","return_type":"String","visibility":"Public","body":"@event"}}]}]},{"html_id":"drivers/Juniper/OtherEvents","path":"Juniper/OtherEvents.html","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents","abstract":false,"superclass":{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},"ancestors":[{"html_id":"drivers/Juniper/WebhookEvent","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L202"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"we are currently ignoring this event","summary":"

we are currently ignoring this event

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L202"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"events:Array(JSON::Any)-instance-method","name":"events","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L204"},"def":{"name":"events","return_type":"Array(JSON::Any)","visibility":"Public","body":"@events"}},{"html_id":"topic:String-instance-method","name":"topic","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L203"},"def":{"name":"topic","return_type":"String","visibility":"Public","body":"@topic"}}]},{"html_id":"drivers/Juniper/Site","path":"Juniper/Site.html","kind":"class","full_name":"Juniper::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"country_code:String-instance-method","name":"country_code","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code","return_type":"String","visibility":"Public","body":"@country_code"}},{"html_id":"country_code=(country_code:String)-instance-method","name":"country_code=","abstract":false,"args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"args_string":"(country_code : String)","args_html":"(country_code : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L9"},"def":{"name":"country_code=","args":[{"name":"country_code","external_name":"country_code","restriction":"String"}],"visibility":"Public","body":"@country_code = country_code"}},{"html_id":"created_time:Int64-instance-method","name":"created_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time","return_type":"Int64","visibility":"Public","body":"@created_time"}},{"html_id":"created_time=(created_time:Int64)-instance-method","name":"created_time=","abstract":false,"args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"args_string":"(created_time : Int64)","args_html":"(created_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L13"},"def":{"name":"created_time=","args":[{"name":"created_time","external_name":"created_time","restriction":"Int64"}],"visibility":"Public","body":"@created_time = created_time"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L10"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"modified_time:Int64-instance-method","name":"modified_time","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time","return_type":"Int64","visibility":"Public","body":"@modified_time"}},{"html_id":"modified_time=(modified_time:Int64)-instance-method","name":"modified_time=","abstract":false,"args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"args_string":"(modified_time : Int64)","args_html":"(modified_time : Int64)","location":{"filename":"src/juniper/mist_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L14"},"def":{"name":"modified_time=","args":[{"name":"modified_time","external_name":"modified_time","restriction":"Int64"}],"visibility":"Public","body":"@modified_time = modified_time"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L11"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"@org_id"}},{"html_id":"org_id=(org_id:String)-instance-method","name":"org_id=","abstract":false,"args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"args_string":"(org_id : String)","args_html":"(org_id : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L12"},"def":{"name":"org_id=","args":[{"name":"org_id","external_name":"org_id","restriction":"String"}],"visibility":"Public","body":"@org_id = org_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/juniper/mist_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L8"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}}]},{"html_id":"drivers/Juniper/WebhookEvent","path":"Juniper/WebhookEvent.html","kind":"class","full_name":"Juniper::WebhookEvent","name":"WebhookEvent","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/juniper/mist_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Juniper/LocationEvents","kind":"class","full_name":"Juniper::LocationEvents","name":"LocationEvents"},{"html_id":"drivers/Juniper/OtherEvents","kind":"class","full_name":"Juniper::OtherEvents","name":"OtherEvents"}],"namespace":{"html_id":"drivers/Juniper","kind":"module","full_name":"Juniper","name":"Juniper"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/juniper/mist_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/juniper/mist_models.cr#L180"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"topic\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'topic' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'topic'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n LocationEvents.from_json(json)\nwhen \"zone\"\n OtherEvents.from_json(json)\nwhen \"asset-raw\"\n OtherEvents.from_json(json)\nwhen \"device-events\"\n OtherEvents.from_json(json)\nwhen \"device-updowns\"\n OtherEvents.from_json(json)\nwhen \"alarms\"\n OtherEvents.from_json(json)\nwhen \"audits\"\n OtherEvents.from_json(json)\nwhen \"client-join\"\n OtherEvents.from_json(json)\nwhen \"client-sessions\"\n OtherEvents.from_json(json)\nwhen \"ping\"\n OtherEvents.from_json(json)\nwhen \"occupancy-alerts\"\n OtherEvents.from_json(json)\nwhen \"sdkclient-scan-data\"\n OtherEvents.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'topic' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]}]},{"html_id":"drivers/Kaiterra","path":"Kaiterra.html","kind":"module","full_name":"Kaiterra","name":"Kaiterra","abstract":false,"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kaiterra/API","path":"Kaiterra/API.html","kind":"class","full_name":"Kaiterra::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"batch(body:Array(Request),params:Hash(String,String)={}ofString=>String)-instance-method","name":"batch","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","args_html":"(body : Array(Request), params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L114"},"def":{"name":"batch","args":[{"name":"body","external_name":"body","restriction":"Array(Request)"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = post(generate_url(\"/batch\", params), body: body.to_json, headers: generate_headers({\"Content-Type\" => \"application/json\", \"Content-Encoding\" => \"UTF-8\"}))\nArray(BatchResponse).from_json(response.body)\n"}},{"html_id":"get_devices(id:String,params:Hash(String,String)={}ofString=>String)-instance-method","name":"get_devices","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"args_string":"(id : String, params : Hash(String, String) = {} of String => String)","args_html":"(id : String, params : Hash(String, String) = {} of String => String)","location":{"filename":"src/kaiterra/api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L89"},"def":{"name":"get_devices","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"params","default_value":"{} of String => String","external_name":"params","restriction":"Hash(String, String)"}],"visibility":"Public","body":"response = get(generate_url(\"/devices/#{id}/top\", params), headers: generate_headers)\nResponse.from_json(response.body)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}}],"types":[{"html_id":"drivers/Kaiterra/API/BatchResponse","path":"Kaiterra/API/BatchResponse.html","kind":"class","full_name":"Kaiterra::API::BatchResponse","name":"BatchResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L107"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L108"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L110"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/kaiterra/api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L110"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"code:Int64-instance-method","name":"code","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L111"},"def":{"name":"code","return_type":"Int64","visibility":"Public","body":"@code"}},{"html_id":"code=(code:Int64)-instance-method","name":"code=","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"Int64"}],"args_string":"(code : Int64)","args_html":"(code : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L111"},"def":{"name":"code=","args":[{"name":"code","external_name":"code","restriction":"Int64"}],"visibility":"Public","body":"@code = code"}}]},{"html_id":"drivers/Kaiterra/API/Data","path":"Kaiterra/API/Data.html","kind":"class","full_name":"Kaiterra::API::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L79"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L80"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"param:Param-instance-method","name":"param","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L82"},"def":{"name":"param","return_type":"Param","visibility":"Public","body":"@param"}},{"html_id":"param=(param:Param)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"Param"}],"args_string":"(param : Param)","args_html":"(param : Param)","location":{"filename":"src/kaiterra/api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L82"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"Param"}],"visibility":"Public","body":"@param = param"}},{"html_id":"points:Array(JSON::Any::Type)-instance-method","name":"points","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L86"},"def":{"name":"points","return_type":"Array(JSON::Any::Type)","visibility":"Public","body":"@points"}},{"html_id":"points=(points:Array(JSON::Any::Type))-instance-method","name":"points=","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"args_string":"(points : Array(JSON::Any::Type))","args_html":"(points : Array(JSON::Any::Type))","location":{"filename":"src/kaiterra/api.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L86"},"def":{"name":"points=","args":[{"name":"points","external_name":"points","restriction":"Array(JSON::Any::Type)"}],"visibility":"Public","body":"@points = points"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L84"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:String|Nil)-instance-method","name":"source=","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(source : String | Nil)","args_html":"(source : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L84"},"def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"@source = source"}},{"html_id":"span:Int64-instance-method","name":"span","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L85"},"def":{"name":"span","return_type":"Int64","visibility":"Public","body":"@span"}},{"html_id":"span=(span:Int64)-instance-method","name":"span=","abstract":false,"args":[{"name":"span","external_name":"span","restriction":"Int64"}],"args_string":"(span : Int64)","args_html":"(span : Int64)","location":{"filename":"src/kaiterra/api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L85"},"def":{"name":"span=","args":[{"name":"span","external_name":"span","restriction":"Int64"}],"visibility":"Public","body":"@span = span"}},{"html_id":"units:Unit-instance-method","name":"units","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L83"},"def":{"name":"units","return_type":"Unit","visibility":"Public","body":"@units"}},{"html_id":"units=(units:Unit)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"Unit"}],"args_string":"(units : Unit)","args_html":"(units : Unit)","location":{"filename":"src/kaiterra/api.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L83"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"Unit"}],"visibility":"Public","body":"@units = units"}}]},{"html_id":"drivers/Kaiterra/API/Param","path":"Kaiterra/API/Param.html","kind":"enum","full_name":"Kaiterra::API::Param","name":"Param","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rco2","name":"Rco2","value":"0"},{"id":"Ro3","name":"Ro3","value":"1"},{"id":"Rpm25c","name":"Rpm25c","value":"2"},{"id":"Rpm10c","name":"Rpm10c","value":"3"},{"id":"Rhumid","name":"Rhumid","value":"4"},{"id":"Rtemp","name":"Rtemp","value":"5"},{"id":"Rtvoc","name":"Rtvoc","value":"6"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"instance_methods":[{"html_id":"rco2?-instance-method","name":"rco2?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L22"},"def":{"name":"rco2?","visibility":"Public","body":"self == Rco2"}},{"html_id":"rhumid?-instance-method","name":"rhumid?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L26"},"def":{"name":"rhumid?","visibility":"Public","body":"self == Rhumid"}},{"html_id":"ro3?-instance-method","name":"ro3?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L23"},"def":{"name":"ro3?","visibility":"Public","body":"self == Ro3"}},{"html_id":"rpm10c?-instance-method","name":"rpm10c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L25"},"def":{"name":"rpm10c?","visibility":"Public","body":"self == Rpm10c"}},{"html_id":"rpm25c?-instance-method","name":"rpm25c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L24"},"def":{"name":"rpm25c?","visibility":"Public","body":"self == Rpm25c"}},{"html_id":"rtemp?-instance-method","name":"rtemp?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L27"},"def":{"name":"rtemp?","visibility":"Public","body":"self == Rtemp"}},{"html_id":"rtvoc?-instance-method","name":"rtvoc?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L28"},"def":{"name":"rtvoc?","visibility":"Public","body":"self == Rtvoc"}}]},{"html_id":"drivers/Kaiterra/API/Request","path":"Kaiterra/API/Request.html","kind":"class","full_name":"Kaiterra::API::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String|Nil-instance-method","name":"body","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L104"},"def":{"name":"body","return_type":"String | ::Nil","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String|Nil)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(body : String | Nil)","args_html":"(body : String | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L104"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"@body = body"}},{"html_id":"headers:Array(NamedTuple(name:String,value:String))|Nil-instance-method","name":"headers","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L103"},"def":{"name":"headers","return_type":"Array(NamedTuple(name: String, value: String)) | ::Nil","visibility":"Public","body":"@headers"}},{"html_id":"headers=(headers:Array(NamedTuple(name:String,value:String))|Nil)-instance-method","name":"headers=","doc":"headers (json, optional) - A JSON array of header description objects, each of which has a name and value object","summary":"

headers (json, optional) - A JSON array of header description objects, each of which has a name and value object

","abstract":false,"args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"args_string":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","args_html":"(headers : Array(NamedTuple(name: String, value: String)) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L103"},"def":{"name":"headers=","args":[{"name":"headers","external_name":"headers","restriction":"Array(NamedTuple(name: String, value: String)) | ::Nil"}],"visibility":"Public","body":"@headers = headers"}},{"html_id":"method:String-instance-method","name":"method","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L100"},"def":{"name":"method","return_type":"String","visibility":"Public","body":"@method"}},{"html_id":"method=(method:String)-instance-method","name":"method=","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"}],"args_string":"(method : String)","args_html":"(method : String)","location":{"filename":"src/kaiterra/api.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L100"},"def":{"name":"method=","args":[{"name":"method","external_name":"method","restriction":"String"}],"visibility":"Public","body":"@method = method"}},{"html_id":"relative_url:String-instance-method","name":"relative_url","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url","return_type":"String","visibility":"Public","body":"@relative_url"}},{"html_id":"relative_url=(relative_url:String)-instance-method","name":"relative_url=","abstract":false,"args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"args_string":"(relative_url : String)","args_html":"(relative_url : String)","location":{"filename":"src/kaiterra/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L101"},"def":{"name":"relative_url=","args":[{"name":"relative_url","external_name":"relative_url","restriction":"String"}],"visibility":"Public","body":"@relative_url = relative_url"}}]},{"html_id":"drivers/Kaiterra/API/Response","path":"Kaiterra/API/Response.html","kind":"class","full_name":"Kaiterra::API::Response","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Data)|Nil-instance-method","name":"data","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L75"},"def":{"name":"data","return_type":"Array(Data) | ::Nil","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Array(Data)|Nil)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"args_string":"(data : Array(Data) | Nil)","args_html":"(data : Array(Data) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L75"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Array(Data) | ::Nil"}],"visibility":"Public","body":"@data = data"}},{"html_id":"errors:Array(JSON::Any::Type)|Nil-instance-method","name":"errors","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L76"},"def":{"name":"errors","return_type":"Array(JSON::Any::Type) | ::Nil","visibility":"Public","body":"@errors"}},{"html_id":"errors=(errors:Array(JSON::Any::Type)|Nil)-instance-method","name":"errors=","abstract":false,"args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"args_string":"(errors : Array(JSON::Any::Type) | Nil)","args_html":"(errors : Array(JSON::Any::Type) | Nil)","location":{"filename":"src/kaiterra/api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L76"},"def":{"name":"errors=","args":[{"name":"errors","external_name":"errors","restriction":"Array(JSON::Any::Type) | ::Nil"}],"visibility":"Public","body":"@errors = errors"}}]},{"html_id":"drivers/Kaiterra/API/Unit","path":"Kaiterra/API/Unit.html","kind":"enum","full_name":"Kaiterra::API::Unit","name":"Unit","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/api.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L31"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ppm","name":"Ppm","value":"0"},{"id":"Ppb","name":"Ppb","value":"1"},{"id":"MicrogramsPerCubicMeter","name":"MicrogramsPerCubicMeter","value":"2"},{"id":"MilligramsPerCubicMeter","name":"MilligramsPerCubicMeter","value":"3"},{"id":"C","name":"C","value":"4"},{"id":"F","name":"F","value":"5"},{"id":"X","name":"X","value":"6"},{"id":"Percentage","name":"Percentage","value":"7"}],"namespace":{"html_id":"drivers/Kaiterra/API","kind":"class","full_name":"Kaiterra::API","name":"API"},"class_methods":[{"html_id":"parse(string)-class-method","name":"parse","abstract":false,"args":[{"name":"string","external_name":"string","restriction":""}],"args_string":"(string)","args_html":"(string)","location":{"filename":"src/kaiterra/api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L41"},"def":{"name":"parse","args":[{"name":"string","external_name":"string","restriction":""}],"visibility":"Public","body":"case string\nwhen \"µg/m³\"\n Unit::MicrogramsPerCubicMeter\nwhen \"mg/m³\"\n Unit::MilligramsPerCubicMeter\nwhen \"%\"\n Unit::Percentage\nelse\n super(string)\nend"}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kaiterra/api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L54"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"parse(pull.read_string)"}}],"instance_methods":[{"html_id":"c?-instance-method","name":"c?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L36"},"def":{"name":"c?","visibility":"Public","body":"self == C"}},{"html_id":"f?-instance-method","name":"f?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L37"},"def":{"name":"f?","visibility":"Public","body":"self == F"}},{"html_id":"micrograms_per_cubic_meter?-instance-method","name":"micrograms_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L34"},"def":{"name":"micrograms_per_cubic_meter?","visibility":"Public","body":"self == MicrogramsPerCubicMeter"}},{"html_id":"milligrams_per_cubic_meter?-instance-method","name":"milligrams_per_cubic_meter?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L35"},"def":{"name":"milligrams_per_cubic_meter?","visibility":"Public","body":"self == MilligramsPerCubicMeter"}},{"html_id":"percentage?-instance-method","name":"percentage?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L39"},"def":{"name":"percentage?","visibility":"Public","body":"self == Percentage"}},{"html_id":"ppb?-instance-method","name":"ppb?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L33"},"def":{"name":"ppb?","visibility":"Public","body":"self == Ppb"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L32"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L58"},"def":{"name":"to_s","visibility":"Public","body":"case self\nwhen Unit::MicrogramsPerCubicMeter\n \"µg/m³\"\nwhen Unit::MilligramsPerCubicMeter\n \"mg/m³\"\nwhen Unit::Percentage\n \"%\"\nelse\n super()\nend"}},{"html_id":"x?-instance-method","name":"x?","abstract":false,"location":{"filename":"src/kaiterra/api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/api.cr#L38"},"def":{"name":"x?","visibility":"Public","body":"self == X"}}]}]},{"html_id":"drivers/Kaiterra/RoomLogic","path":"Kaiterra/RoomLogic.html","kind":"class","full_name":"Kaiterra::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kaiterra/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Kaiterra","kind":"module","full_name":"Kaiterra","name":"Kaiterra"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_measurements-instance-method","name":"get_measurements","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L25"},"def":{"name":"get_measurements","visibility":"Public","body":"response = (kaiterra.get_devices(@room_id)).get\nif results = response.as_h[\"data\"]\nelse\n return \"No Data\"\nend\nresults.as_a.each do |i|\n name = \"#{i[\"param\"]} (#{i[\"units\"]})\"\n value = i[\"points\"].as_a.first[\"value\"]\n self[name] = value\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kaiterra/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kaiterra/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@room_id = setting(String, :kaiterra_room_id)\n@cron_string = setting(String, :kaiterra_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_measurements\nend\n"}}]}]},{"html_id":"drivers/Keycloak","path":"Keycloak.html","kind":"module","full_name":"Keycloak","name":"Keycloak","abstract":false,"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Keycloak/RestAPI","path":"Keycloak/RestAPI.html","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Keycloak","kind":"module","full_name":"Keycloak","name":"Keycloak"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L113"},"def":{"name":"get_token","visibility":"Public","body":"user_id = invoked_by_user_id\nif user_id\nelse\n raise(\"only supports requests directly from SSO users\")\nend\nget_user_token(user_id)\n"}},{"html_id":"get_user_token(user_id:String):String-instance-method","name":"get_user_token","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/keycloak/rest_api.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L120"},"def":{"name":"get_user_token","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = ::HTTP::Client.post(\"#{@place_domain}/api/engine/v2/users/#{user_id}/resource_token\", headers: HTTP::Headers {\"X-API-Key\" => @api_key})\nif response.success?\nelse\n raise(\"failed to obtain a keycloak API key for user #{user_id}: #{response.status_code} - #{response.body}\")\nend\n(JSON.parse(response.body))[\"token\"].as_s\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@realm = (setting(String, :realm)) || \"\"\n@api_key = (setting(String, :place_api_key)) || \"\"\n@place_domain = (setting(String, :place_domain)) || \"\"\n"}},{"html_id":"users(search:String|Nil=nil,email:String|Nil=nil,enabled_users_only:Bool=true,all_pages:Bool=false,auth_token:String|Nil=nil)-instance-method","name":"users","abstract":false,"args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"args_string":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","args_html":"(search : String | Nil = nil, email : String | Nil = nil, enabled_users_only : Bool = true, all_pages : Bool = false, auth_token : String | Nil = nil)","location":{"filename":"src/keycloak/rest_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L63"},"def":{"name":"users","args":[{"name":"search","default_value":"nil","external_name":"search","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"enabled_users_only","default_value":"true","external_name":"enabled_users_only","restriction":"Bool"},{"name":"all_pages","default_value":"false","external_name":"all_pages","restriction":"Bool"},{"name":"auth_token","default_value":"nil","external_name":"auth_token","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_token = \"Bearer #{auth_token.presence || get_token}\"\nparams = URI::Params.build do |form|\n if search.presence\n form.add(\"search\", search.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n form.add(\"enabled\", enabled_users_only.to_s)\n form.add(\"exact\", (!!email.presence).to_s)\n form.add(\"first\", \"1\")\n form.add(\"max\", \"100\")\nend\nusers = [] of UserDetails\nnext_request = \"/admin/realms/#{@realm}/users?#{params}\"\nheaders = HTTP::Headers {\"Accept\" => \"application/json\", \"Authorization\" => user_token}\nlogger.debug do\n \"requesting users, all pages: #{all_pages}\"\nend\npage_count = 1\nloop do\n response = get(next_request, headers: headers)\n if response.success?\n else\n raise(\"unexpected error: #{response.status_code} - #{response.body}\")\n end\n links = LinkHeader.new(response)\n next_request = links[\"next\"]?\n new_users = Array(UserDetails).from_json(response.body)\n users.concat(new_users)\n if (!all_pages || next_request.nil?) || new_users.empty?\n break\n end\n page_count = page_count + 1\nend\nlogger.debug do\n \"users count: #{users.size}, pages: #{page_count}\"\nend\nusers\n"}}],"types":[{"html_id":"drivers/Keycloak/RestAPI/Role","path":"Keycloak/RestAPI/Role.html","kind":"struct","full_name":"Keycloak::RestAPI::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L28"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L29"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L34"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L32"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L33"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Keycloak/RestAPI/UserDetails","path":"Keycloak/RestAPI/UserDetails.html","kind":"struct","full_name":"Keycloak::RestAPI::UserDetails","name":"UserDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/keycloak/rest_api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Keycloak/RestAPI","kind":"class","full_name":"Keycloak::RestAPI","name":"RestAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/keycloak/rest_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_roles:Array(Role)|Nil-instance-method","name":"application_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L59"},"def":{"name":"application_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@application_roles"}},{"html_id":"client_roles:Array(Role)|Nil-instance-method","name":"client_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L56"},"def":{"name":"client_roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@client_roles"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L44"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"enabled:Bool|Nil-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L43"},"def":{"name":"enabled","return_type":"Bool | ::Nil","visibility":"Public","body":"@enabled"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L47"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"groups:Array(String)|Nil-instance-method","name":"groups","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L60"},"def":{"name":"groups","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@groups"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L41"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L50"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"realm_roles:Array(String)|Nil-instance-method","name":"realm_roles","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L53"},"def":{"name":"realm_roles","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@realm_roles"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/keycloak/rest_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/keycloak/rest_api.cr#L42"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]}]},{"html_id":"drivers/KontaktIO","path":"KontaktIO.html","kind":"module","full_name":"KontaktIO","name":"KontaktIO","abstract":false,"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/KontaktIO/Building","path":"KontaktIO/Building.html","kind":"class","full_name":"KontaktIO::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L158"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L159"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L164"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L163"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L168"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L161"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L165"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L166"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L162"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/BuildingShort","path":"KontaktIO/BuildingShort.html","kind":"class","full_name":"KontaktIO::BuildingShort","name":"BuildingShort","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L132"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L133"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/KontaktIO/Campus","path":"KontaktIO/Campus.html","kind":"class","full_name":"KontaktIO::Campus","name":"Campus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L171"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L172"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L177"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"buildings:Array(Building)-instance-method","name":"buildings","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L183"},"def":{"name":"buildings","return_type":"Array(Building)","visibility":"Public","body":"@buildings"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L176"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L174"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L180"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L181"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L175"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L179"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/KontaktIO/Contact","path":"KontaktIO/Contact.html","kind":"class","full_name":"KontaktIO::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration_sec:Int32-instance-method","name":"duration_sec","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L62"},"def":{"name":"duration_sec","return_type":"Int32","visibility":"Public","body":"@duration_sec"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L53"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L56"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L59"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}}]},{"html_id":"drivers/KontaktIO/ContactTracing","path":"KontaktIO/ContactTracing.html","kind":"class","full_name":"KontaktIO::ContactTracing","name":"ContactTracing","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/contact_tracing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"close_contacts(email:String|Nil=nil,username:String|Nil=nil,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil)-instance-method","name":"close_contacts","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L13"},"def":{"name":"close_contacts","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"macs = (location_services.macs_assigned_to(email, username)).get.as_a.map(&.as_s)\nperiods = [] of Tuple(Int64, Int64)\nperiod_start = start_time || 2.days.ago.to_unix\nperiod_end = end_time || 1.days.ago.to_unix\nloop do\n temp_ending = period_start + 6.hours.to_i\n if temp_ending < period_end\n periods << {period_start, temp_ending}\n else\n periods << {period_start, period_end}\n break\n end\n period_start = temp_ending\nend\nlocations = [] of Tracking\nerrors = [] of Exception\nmacs.each do |mac|\n begin\n periods.each do |__temp_821|\n starting, ending = __temp_821\n raw_report = (kontakt.colocations(mac, starting, ending)).get.to_json\n locations.concat(Array(Tracking).from_json(raw_report))\n end\n rescue error\n logger.warn(exception: error) do\n \"locating close contacts\"\n end\n errors << error\n end\nend\nif locations.empty? && errors.size > 0\n raise(errors[0])\nend\nmacs = Set(String).new\nlocations.each do |location|\n macs << location.mac_address\nend\nmac_mappings = {} of String => String\nmacs.each do |mac|\n mac = format_mac(mac)\n if owner = (location_services.check_ownership_of(mac)).get.as_h?\n username = owner[\"assigned_to\"]?.try(&.as_s)\n if username\n else\n next\n end\n mac_mappings[mac] = username\n end\nend\ncontacts = {} of String => NamedTuple(mac_address: String, username: String | ::Nil, contact_time: Int64, duration: Int32)\nlocations.each do |location|\n mac = format_mac(location.mac_address)\n username = mac_mappings[mac]?\n duration = location.duration\n if current = contacts[username || mac]?\n if current[:duration] > duration\n next\n end\n end\n contacts[username || mac] = {mac_address: mac, username: username, contact_time: location.start_time.to_unix, duration: duration}\nend\ncontacts.values\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/contact_tracing.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/contact_tracing.cr#L93"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}}]},{"html_id":"drivers/KontaktIO/Floor","path":"KontaktIO/Floor.html","kind":"class","full_name":"KontaktIO::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L137"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:BuildingShort|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L155"},"def":{"name":"building","return_type":"BuildingShort | ::Nil","visibility":"Public","body":"@building"}},{"html_id":"height:Float64|Nil-instance-method","name":"height","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L143"},"def":{"name":"height","return_type":"Float64 | ::Nil","visibility":"Public","body":"@height"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L140"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"lat:Float64|Nil-instance-method","name":"lat","doc":"lat lng from bottom right corner of image","summary":"

lat lng from bottom right corner of image

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L150"},"def":{"name":"lat","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lat"}},{"html_id":"level:Int32|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L146"},"def":{"name":"level","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"lng:Float64|Nil-instance-method","name":"lng","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L153"},"def":{"name":"lng","return_type":"Float64 | ::Nil","visibility":"Public","body":"@lng"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L141"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"rotation:Float64|Nil-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L145"},"def":{"name":"rotation","return_type":"Float64 | ::Nil","visibility":"Public","body":"@rotation"}},{"html_id":"width:Float64|Nil-instance-method","name":"width","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L144"},"def":{"name":"width","return_type":"Float64 | ::Nil","visibility":"Public","body":"@width"}}]},{"html_id":"drivers/KontaktIO/KioCloud","path":"KontaktIO/KioCloud.html","kind":"class","full_name":"KontaktIO::KioCloud","name":"KioCloud","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"campuses:Array(Campus)-instance-method","name":"campuses","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L110"},"def":{"name":"campuses","return_type":"Array(Campus)","visibility":"Public","body":"campuses = [] of Campus\nmake_request(\"GET\", \"/v2/locations/campuses\") do |data|\n resp = Response(Campus).from_json(data)\n campuses.concat(resp.content)\n resp.page\nend\ncampuses\n"}},{"html_id":"colocations(mac_address:String,start_time:Int64|Nil=nil,end_time:Int64|Nil=nil):Array(Tracking)-instance-method","name":"colocations","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"args_string":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","args_html":"(mac_address : String, start_time : Int64 | Nil = nil, end_time : Int64 | Nil = nil) : Array(Tracking)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L83"},"def":{"name":"colocations","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"},{"name":"start_time","default_value":"nil","external_name":"start_time","restriction":"Int64 | ::Nil"},{"name":"end_time","default_value":"nil","external_name":"end_time","restriction":"Int64 | ::Nil"}],"return_type":"Array(Tracking)","visibility":"Public","body":"ending = end_time ? Time.unix(end_time) : 10.minutes.ago\nstarting = start_time ? Time.unix(start_time) : (ending - 20.days)\ntracking = [] of Tracking\nmake_request(\"GET\", \"/v3/novid/colocations\", params: URI::Params {\"trackingId\" => ((format_mac(mac_address)).upcase.scan(/\\w{2}/)).map() do |__arg1|\n __arg1.to_a.first\nend.join(':'), \"startTime\" => starting.to_rfc3339, \"endTime\" => ending.to_rfc3339}) do |data|\n resp = Response(Tracking).from_json(data)\n tracking.concat(resp.content)\n resp.page\nend\ntracking\n"}},{"html_id":"create_channel(name:String,uri:String)-instance-method","name":"create_channel","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(name : String, uri : String)","args_html":"(name : String, uri : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L202"},"def":{"name":"create_channel","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"make_request(\"POST\", \"/v3/channels\", body: {status: :active, name: name, channel: {type: \"eventHub\", endpoint: uri, streamName: name, accessKey: \"test\", secretKey: \"test\", region: \"test\", sharedAccessKeyName: \"test\", eventHubName: \"test\", sharedAccessKey: \"test\"}}.to_json)"}},{"html_id":"delete_channel(id:Int32|String)-instance-method","name":"delete_channel","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"args_string":"(id : Int32 | String)","args_html":"(id : Int32 | String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L220"},"def":{"name":"delete_channel","args":[{"name":"id","external_name":"id","restriction":"Int32 | String"}],"visibility":"Public","body":"make_request(\"DELETE\", \"/v3/channels\", params: URI::Params {\"id\" => id.to_s})"}},{"html_id":"event_hub(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"event_hub","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L197"},"def":{"name":"event_hub","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"scanning API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nlogger.debug do\n body\nend\n"}},{"html_id":"find(mac_address:String):Position|Nil-instance-method","name":"find","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : Position | Nil","args_html":"(mac_address : String) : Position | Nil","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L102"},"def":{"name":"find","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"Position | ::Nil","visibility":"Public","body":"data = make_request(\"GET\", \"/v2/positions\", params: URI::Params {\"trackingId\" => format_mac(mac_address)})\n(Response(Position).from_json(data)).content.first?\n"}},{"html_id":"format_mac(address:String)-instance-method","name":"format_mac","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String"}],"args_string":"(address : String)","args_html":"(address : String)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L193"},"def":{"name":"format_mac","args":[{"name":"address","external_name":"address","restriction":"String"}],"visibility":"Public","body":"(address.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase"}},{"html_id":"occupancy_cache:Hash(Int64,RoomOccupancy)-instance-method","name":"occupancy_cache","doc":"===================================\nCaching sensor data\n===================================","summary":"

=================================== Caching sensor data ===================================

","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L159"},"def":{"name":"occupancy_cache","return_type":"Hash(Int64, RoomOccupancy)","visibility":"Public","body":"@occupancy_cache"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)\npoll_every = ((setting?(Int32, :poll_every)) || 2).seconds\nschedule.clear\nschedule.every(poll_every) do\n cache_occupancy_counts\nend\n"}},{"html_id":"room_occupancy:Array(RoomOccupancy)-instance-method","name":"room_occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L130"},"def":{"name":"room_occupancy","return_type":"Array(RoomOccupancy)","visibility":"Public","body":"room_occupancy = [] of RoomOccupancy\nmake_request(\"GET\", \"/v3/occupancy/rooms\") do |data|\n resp = Response(RoomOccupancy).from_json(data)\n room_occupancy.concat(resp.content)\n resp.page\nend\nroom_occupancy\n"}},{"html_id":"rooms:Array(Room)-instance-method","name":"rooms","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L120"},"def":{"name":"rooms","return_type":"Array(Room)","visibility":"Public","body":"rooms = [] of Room\nmake_request(\"GET\", \"/v2/locations/rooms\") do |data|\n resp = Response(Room).from_json(data)\n rooms.concat(resp.content)\n resp.page\nend\nrooms\n"}},{"html_id":"telemetry(tracking_ids:Array(String)):Array(Telemetry)-instance-method","name":"telemetry","abstract":false,"args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"args_string":"(tracking_ids : Array(String)) : Array(Telemetry)","args_html":"(tracking_ids : Array(String)) : Array(Telemetry)","location":{"filename":"src/kontakt_io/kio_cloud.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud.cr#L140"},"def":{"name":"telemetry","args":[{"name":"tracking_ids","external_name":"tracking_ids","restriction":"Array(String)"}],"return_type":"Array(Telemetry)","visibility":"Public","body":"telemetry = [] of Telemetry\nparams = URI::Params.new\nparams[\"endTime\"] = Time.utc.to_rfc3339(fraction_digits: 3)\nparams[\"startTime\"] = 2.minutes.ago.to_rfc3339(fraction_digits: 3)\nif tracking_ids.empty?\nelse\n params[\"trackingId\"] = tracking_ids.map() do |__arg2|\n __arg2.strip.downcase\n end.join(\",\")\nend\nmake_request(\"GET\", \"/v3/telemetry\", params: params) do |data|\n resp = Response(Telemetry).from_json(data)\n telemetry.concat(resp.content)\n resp.page\nend\ntelemetry\n"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings","path":"KontaktIO/MacAddressMappings.html","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"map_devices-instance-method","name":"map_devices","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L40"},"def":{"name":"map_devices","visibility":"Public","body":"request = \"https://api.kontakt.io/device?maxResult=500&deviceType=BEACON\"\nlocatable = system.implementing(Interface::Locatable)\nwhile request.presence\n response = HTTP::Client.get(request, headers: HTTP::Headers {\"Api-Key\" => @api_key, \"Content-Type\" => \"application/json\", \"Accept\" => \"application/vnd.com.kontakt+json;version=10\"})\n logger.debug do\n \"request returned:\\n#{response.body}\"\n end\n case response.status_code\n when 303\n when 401\n logger.warn do\n \"The API Key is invalid or disabled\"\n end\n when 403\n logger.warn do\n \"User who created the API no longer has access to the Kio Cloud account or their user role doesn't allow access to the endpoint. Device error if the endpoint is not available for the device model.\"\n end\n end\n if response.success?\n else\n raise(\"request #{request} failed with status: #{response.status_code}\")\n end\n result = NamedTuple(devices: Array(DeviceDetails), searchMeta: SearchMeta).from_json(response.body)\n meta = result[:searchMeta]\n request = meta.next_results\n result[:devices].each do |device|\n if device.alias.presence\n else\n next\n end\n (locatable.mac_address_mappings(device.alias, {device.mac}, \"\")).get\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.hour) do\n map_devices\nend\nschedule.in(10.seconds) do\n map_devices\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :kio_api_key)"}}],"types":[{"html_id":"drivers/KontaktIO/MacAddressMappings/DeviceDetails","path":"KontaktIO/MacAddressMappings/DeviceDetails.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::DeviceDetails","name":"DeviceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"alias:String|Nil-instance-method","name":"alias","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L36"},"def":{"name":"alias","return_type":"String | ::Nil","visibility":"Public","body":"@alias"}},{"html_id":"mac:String-instance-method","name":"mac","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L37"},"def":{"name":"mac","return_type":"String","visibility":"Public","body":"@mac"}}]},{"html_id":"drivers/KontaktIO/MacAddressMappings/SearchMeta","path":"KontaktIO/MacAddressMappings/SearchMeta.html","kind":"class","full_name":"KontaktIO::MacAddressMappings::SearchMeta","name":"SearchMeta","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L26"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO/MacAddressMappings","kind":"class","full_name":"KontaktIO::MacAddressMappings","name":"MacAddressMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L27"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"next_results:String-instance-method","name":"next_results","abstract":false,"location":{"filename":"src/kontakt_io/mac_address_mappings.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/mac_address_mappings.cr#L30"},"def":{"name":"next_results","return_type":"String","visibility":"Public","body":"@next_results"}}]}]},{"html_id":"drivers/KontaktIO/Page","path":"KontaktIO/Page.html","kind":"class","full_name":"KontaktIO::Page","name":"Page","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"number:Int32-instance-method","name":"number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L8"},"def":{"name":"number","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @number).nil?\n @number = (0)\nelse\n __temp_1\nend"}},{"html_id":"size:Int32-instance-method","name":"size","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L7"},"def":{"name":"size","return_type":"Int32","visibility":"Public","body":"@size"}},{"html_id":"total_elements:Int32-instance-method","name":"total_elements","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L11"},"def":{"name":"total_elements","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_elements).nil?\n @total_elements = (0)\nelse\n __temp_1\nend"}},{"html_id":"total_pages:Int32-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L14"},"def":{"name":"total_pages","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @total_pages).nil?\n @total_pages = (0)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Position","path":"KontaktIO/Position.html","kind":"class","full_name":"KontaktIO::Position","name":"Position","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L105"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L106"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L118"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L121"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L115"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"last_update:String|Nil-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L124"},"def":{"name":"last_update","return_type":"String | ::Nil","visibility":"Public","body":"@last_update"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L109"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64|Nil-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L112"},"def":{"name":"room_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_id"}},{"html_id":"x:Int64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L125"},"def":{"name":"x","return_type":"Int64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"y:Int64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L126"},"def":{"name":"y","return_type":"Int64 | ::Nil","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/KontaktIO/Presence","path":"KontaktIO/Presence.html","kind":"class","full_name":"KontaktIO::Presence","name":"Presence","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L87"},"def":{"name":"building_id","return_type":"Int64","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L90"},"def":{"name":"building_name","return_type":"String","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L93"},"def":{"name":"campus_id","return_type":"Int64","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L96"},"def":{"name":"campus_name","return_type":"String","visibility":"Public","body":"@campus_name"}},{"html_id":"company_id:String-instance-method","name":"company_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L69"},"def":{"name":"company_id","return_type":"String","visibility":"Public","body":"@company_id"}},{"html_id":"end_time:String-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L102"},"def":{"name":"end_time","return_type":"String","visibility":"Public","body":"@end_time"}},{"html_id":"floor_id:Int64-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L81"},"def":{"name":"floor_id","return_type":"Int64","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L84"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L72"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L78"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L75"},"def":{"name":"room_name","return_type":"String","visibility":"Public","body":"@room_name"}},{"html_id":"start_time:String-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L99"},"def":{"name":"start_time","return_type":"String","visibility":"Public","body":"@start_time"}}]},{"html_id":"drivers/KontaktIO/Response","path":"KontaktIO/Response.html","kind":"class","full_name":"KontaktIO::Response(T)","name":"Response","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Array(T)-instance-method","name":"content","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L20"},"def":{"name":"content","return_type":"Array(T)","visibility":"Public","body":"@content"}},{"html_id":"page:Page|Nil-instance-method","name":"page","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L21"},"def":{"name":"page","return_type":"Page | ::Nil","visibility":"Public","body":"@page"}}]},{"html_id":"drivers/KontaktIO/Room","path":"KontaktIO/Room.html","kind":"class","full_name":"KontaktIO::Room","name":"Room","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor:Floor-instance-method","name":"floor","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L195"},"def":{"name":"floor","return_type":"Floor","visibility":"Public","body":"@floor"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L190"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L191"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_number:Int64|Nil-instance-method","name":"room_number","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L198"},"def":{"name":"room_number","return_type":"Int64 | ::Nil","visibility":"Public","body":"@room_number"}},{"html_id":"room_sensor_ids:Array(String)-instance-method","name":"room_sensor_ids","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L203"},"def":{"name":"room_sensor_ids","return_type":"Array(String)","visibility":"Public","body":"room_sensors.map(&.tracking_id)"}},{"html_id":"room_sensors:Array(RoomSensor)-instance-method","name":"room_sensors","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L201"},"def":{"name":"room_sensors","return_type":"Array(RoomSensor)","visibility":"Public","body":"if (__temp_1 = @room_sensors).nil?\n @room_sensors = ([] of RoomSensor)\nelse\n __temp_1\nend"}},{"html_id":"room_type:String-instance-method","name":"room_type","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L194"},"def":{"name":"room_type","return_type":"String","visibility":"Public","body":"@room_type"}},{"html_id":"to_room_occupancy(occupied:Bool,last_update:Time)-instance-method","name":"to_room_occupancy","abstract":false,"args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(occupied : Bool, last_update : Time)","args_html":"(occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L207"},"def":{"name":"to_room_occupancy","args":[{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"RoomOccupancy.new(self, occupied, last_update)"}}]},{"html_id":"drivers/KontaktIO/RoomOccupancy","path":"KontaktIO/RoomOccupancy.html","kind":"struct","full_name":"KontaktIO::RoomOccupancy","name":"RoomOccupancy","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L220"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(room:Room,occupied:Bool,last_update:Time)-class-method","name":"new","abstract":false,"args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"args_string":"(room : Room, occupied : Bool, last_update : Time)","args_html":"(room : Room, occupied : Bool, last_update : Time)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L223"},"def":{"name":"new","args":[{"name":"room","external_name":"room","restriction":"Room"},{"name":"occupied","external_name":"occupied","restriction":"Bool"},{"name":"last_update","external_name":"last_update","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(room, occupied, last_update)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L221"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_id:Int64|Nil-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L252"},"def":{"name":"building_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@building_id"}},{"html_id":"building_name:String|Nil-instance-method","name":"building_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L255"},"def":{"name":"building_name","return_type":"String | ::Nil","visibility":"Public","body":"@building_name"}},{"html_id":"campus_id:Int64|Nil-instance-method","name":"campus_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L258"},"def":{"name":"campus_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@campus_id"}},{"html_id":"campus_name:String|Nil-instance-method","name":"campus_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L261"},"def":{"name":"campus_name","return_type":"String | ::Nil","visibility":"Public","body":"@campus_name"}},{"html_id":"floor_id:Int64|Nil-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L246"},"def":{"name":"floor_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_name:String|Nil-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L249"},"def":{"name":"floor_name","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L264"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"occupancy:Int32-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L265"},"def":{"name":"occupancy","return_type":"Int32","visibility":"Public","body":"@occupancy"}},{"html_id":"pir?:Bool-instance-method","name":"pir?","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L267"},"def":{"name":"pir?","return_type":"Bool","visibility":"Public","body":"@pir"}},{"html_id":"room_id:Int64-instance-method","name":"room_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L240"},"def":{"name":"room_id","return_type":"Int64","visibility":"Public","body":"@room_id"}},{"html_id":"room_name:String|Nil-instance-method","name":"room_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L243"},"def":{"name":"room_name","return_type":"String | ::Nil","visibility":"Public","body":"@room_name"}}]},{"html_id":"drivers/KontaktIO/RoomSensor","path":"KontaktIO/RoomSensor.html","kind":"struct","full_name":"KontaktIO::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L212"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L213"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"tracking_id:String-instance-method","name":"tracking_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L217"},"def":{"name":"tracking_id","return_type":"String","visibility":"Public","body":"@tracking_id"}}]},{"html_id":"drivers/KontaktIO/RoomSensorDriver","path":"KontaktIO/RoomSensorDriver.html","kind":"class","full_name":"KontaktIO::RoomSensorDriver","name":"RoomSensorDriver","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsubscribe_to_sensor\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L76"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nsensor = @space\nif sensor\nelse\n return nil\nend\nif mac == \"kontakt-#{sensor.room_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(sensor, :people_count)\nwhen \"presence\"\n build_sensor_details(sensor, :presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L57"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nsensor = @space\nif sensor\nelse\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac == \"kontakt-#{sensor.room_id}\"\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nbuild_sensors(sensor, sensor_type)\n"}},{"html_id":"space:RoomOccupancy-instance-method","name":"space","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space","return_type":"RoomOccupancy","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"KontaktIO::RoomSensorDriver#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:RoomOccupancy|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/kontakt_io/room_sensor.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/room_sensor.cr#L20"},"def":{"name":"space?","return_type":"RoomOccupancy | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/KontaktIO/SensorService","path":"KontaktIO/SensorService.html","kind":"class","full_name":"KontaktIO::SensorService","name":"SensorService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/sensor_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LOCATION","name":"LOCATION","value":"{\"desk\", \"area\"}"},{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L100"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L107"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nfloor_ids = @zone_lookup[zone_id]?\nif floor_ids && floor_ids.size > 0\nelse\n return [] of Nil\nend\nif location && !(LOCATION.includes?(location))\n return [] of Nil\nend\nloc = LOCATION\ncache = @occupancy_cache\ncache.compact_map do |__temp_829|\n room_id, space = __temp_829\n if space.floor_id.in?(floor_ids)\n else\n next\n end\n people_count = space.occupancy\n if @return_empty_spaces || (people_count && people_count > 0)\n if space.pir?\n capacity = 1\n loc_type = loc[1]\n else\n loc_type = loc[0]\n capacity = nil\n end\n if map_id = map_ids[space.room_id]?\n capacity = 1\n loc_type = loc[1]\n else\n map_id = \"room-#{space.room_id}\"\n end\n {location: loc_type, at_location: people_count, map_id: map_id, level: zone_id, building: @floor_mappings[space.floor_id.to_s]?.try(&.[](:building_id)), capacity: capacity, kontakt_io_room: space.room_name}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L90"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L95"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"map_ids:Hash(Int64,String)-instance-method","name":"map_ids","doc":"KIO room id => Map ID","summary":"

KIO room id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L76"},"def":{"name":"map_ids","return_type":"Hash(Int64, String)","visibility":"Public","body":"if (__temp_1 = @map_ids).nil?\n @map_ids = (begin\n ids = {} of Int64 => String\n system_map_ids.each do |sys_id, map_id|\n resp = (staff_api.system_settings(sys_id, \"space_ref_id\")).get\n value = resp.as_s?.try(&.to_i64?) || resp.as_i64?\n if value\n else\n next\n end\n ids[value] = map_id\n end\n ids\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\nlookup = Hash(String, Array(Int64)).new do |hash, key|\n hash[key] = [] of Int64\nend\n@floor_mappings.each do |kontakt_floor_id, zones|\n begin\n kontakt_id = kontakt_floor_id.to_i64\n if building_id = zones[:building_id]\n lookup[building_id] << kontakt_id\n end\n lookup[zones[:level_id]] << kontakt_id\n rescue error\n logger.warn(exception: error) do\n \"invalid floor mapping #{kontakt_floor_id}\"\n end\n end\nend\n@zone_lookup = lookup\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L158"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id && (mac.starts_with?(\"kontakt-\"))\n else\n return nil\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\n if room\n else\n return nil\n end\n case id\n when \"people\"\n if room.pir?\n return nil\n end\n build_sensor_details(room, :people_count)\n when \"presence\"\n build_sensor_details(room, :presence)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L180"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n if mac.starts_with?(\"kontakt-\")\n else\n return NO_MATCH\n end\n room = @occupancy_cache[(mac.lchop(\"kontakt-\")).to_i64?]?\nend\nif zone_id\n levels = @zone_lookup[zone_id]?\nend\nrooms = if room\n {room}\nelse\n if levels\n @occupancy_cache.values.select do |r|\n floor_id = r.floor_id\n (floor_id.in?(levels)) || @floor_mappings[floor_id.to_s]?.nil?\n end\n else\n @occupancy_cache.values\n end\nend\nrooms.flat_map do |r|\n build_sensors(r, sensor_type)\nend\n"}},{"html_id":"system_map_ids:Hash(String,String)-instance-method","name":"system_map_ids","doc":"System id => Map ID","summary":"

System id => Map ID

","abstract":false,"location":{"filename":"src/kontakt_io/sensor_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/sensor_service.cr#L64"},"def":{"name":"system_map_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @system_map_ids).nil?\n @system_map_ids = (begin\n building_zone = location_service.building_id.get.as_s\n map_ids = {} of String => String\n staff_api.systems(zone_id: building_zone).get.as_a.each do |sys|\n map_id = sys[\"map_id\"]?.try(&.as_s?)\n if map_id\n else\n next\n end\n map_ids[sys[\"id\"].as_s] = map_id\n end\n map_ids\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/KontaktIO/Telemetry","path":"KontaktIO/Telemetry.html","kind":"class","full_name":"KontaktIO::Telemetry","name":"Telemetry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L271"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L275"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"number_of_people:Int32|Nil-instance-method","name":"number_of_people","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L281"},"def":{"name":"number_of_people","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_people"}},{"html_id":"seconds_since_motion:Int64|Nil-instance-method","name":"seconds_since_motion","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L278"},"def":{"name":"seconds_since_motion","return_type":"Int64 | ::Nil","visibility":"Public","body":"@seconds_since_motion"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L283"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/KontaktIO/Tracking","path":"KontaktIO/Tracking.html","kind":"class","full_name":"KontaktIO::Tracking","name":"Tracking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L24"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/KontaktIO","kind":"module","full_name":"KontaktIO","name":"KontaktIO"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L25"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contacts:Array(Contact)-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L42"},"def":{"name":"contacts","return_type":"Array(Contact)","visibility":"Public","body":"@contacts"}},{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L44"},"def":{"name":"duration","visibility":"Public","body":"contacts.first.duration_sec"}},{"html_id":"end_time:Time-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L40"},"def":{"name":"end_time","return_type":"Time","visibility":"Public","body":"@end_time"}},{"html_id":"entity_id:Int64|Nil-instance-method","name":"entity_id","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L28"},"def":{"name":"entity_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@entity_id"}},{"html_id":"entity_name:String|Nil-instance-method","name":"entity_name","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L31"},"def":{"name":"entity_name","return_type":"String | ::Nil","visibility":"Public","body":"@entity_name"}},{"html_id":"mac_address:String-instance-method","name":"mac_address","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L34"},"def":{"name":"mac_address","return_type":"String","visibility":"Public","body":"@mac_address"}},{"html_id":"start_time:Time-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/kontakt_io/kio_cloud_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kontakt_io/kio_cloud_models.cr#L37"},"def":{"name":"start_time","return_type":"Time","visibility":"Public","body":"@start_time"}}]}]},{"html_id":"drivers/Kramer","path":"Kramer.html","kind":"module","full_name":"Kramer","name":"Kramer","abstract":false,"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Kramer/RC308Panel","path":"Kramer/RC308Panel.html","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\"","doc":"\\r\\n 0D0A","summary":"

\\r\\n 0D0A

"}],"namespace":{"html_id":"drivers/Kramer","kind":"module","full_name":"Kramer","name":"Kramer"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"button_state(index:UInt8,light:Bool,red:UInt8|Nil=nil,green:UInt8|Nil=nil,blue:UInt8|Nil=nil)-instance-method","name":"button_state","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"args_string":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","args_html":"(index : UInt8, light : Bool, red : UInt8 | Nil = nil, green : UInt8 | Nil = nil, blue : UInt8 | Nil = nil)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L61"},"def":{"name":"button_state","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"light","external_name":"light","restriction":"Bool"},{"name":"red","default_value":"nil","external_name":"red","restriction":"UInt8 | ::Nil"},{"name":"green","default_value":"nil","external_name":"green","restriction":"UInt8 | ::Nil"},{"name":"blue","default_value":"nil","external_name":"blue","restriction":"UInt8 | ::Nil"}],"visibility":"Public","body":"data = \"#RGB #{index},#{red || @default.red},#{green || @default.green},#{blue || @default.blue},#{light ? '1' : '0'}\\r\"\nsend(data, name: \"button#{index}\")\n"}},{"html_id":"button_state?(index:UInt8,priority:Int32=0)-instance-method","name":"button_state?","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(index : UInt8, priority : Int32 = 0)","args_html":"(index : UInt8, priority : Int32 = 0)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L66"},"def":{"name":"button_state?","args":[{"name":"index","external_name":"index","restriction":"UInt8"},{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(\"#RGB? #{index}\\r\", priority: priority)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L46"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(1.minute, true) do\n query_state\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)\non_update\n(0..@button_count).each do |idx|\n self[\"button#{idx}_state\"] = ButtonAction::Released\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L41"},"def":{"name":"on_update","visibility":"Public","body":"@default = (setting?(DefaultLight, :default_light)) || (DefaultLight.new(255_u8, 0_u8, 0_u8))\n@button_count = (setting?(UInt8, :button_count)) || 8_u8\n"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L55"},"def":{"name":"query_state","visibility":"Public","body":"(1_u8..@button_count).each do |idx|\n button_state?(idx)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L89"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Kramer sent: #{data.inspect}\"\nend\nparts = (data.split('@', 2))[1].strip.split(' ')\ncomponent = parts[0].upcase\ndetails = parts[1]\nsuccess = parts[2]?\ncase component\nwhen \"BTN\"\n light_on, button_index, button_action = details.split(',')\n self[\"button#{button_index}_light\"] = light_on == \"1\"\n self[\"button#{button_index}_state\"] = ButtonAction.check(button_action)\nwhen \"RGB\"\n button_index, red, green, blue, light_on = details.split(',')\n self[\"button#{button_index}_rgb\"] = {red.to_u8, green.to_u8, blue.to_u8}\n self[\"button#{button_index}_light\"] = light_on == \"1\"\nwhen \"ERR\"\n logger.warn do\n \"request failed with error code: #{details}\"\n end\n return task.try(&.abort(\"error code: #{details}\"))\nelse\n logger.warn do\n \"unknown button component #{component}\"\n end\n return\nend\nif task\n if task.name\n if success\n task.success\n end\n else\n task.success\n end\nend\n"}}],"types":[{"html_id":"drivers/Kramer/RC308Panel/ButtonAction","path":"Kramer/RC308Panel/ButtonAction.html","kind":"enum","full_name":"Kramer::RC308Panel::ButtonAction","name":"ButtonAction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L70"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pressed","name":"Pressed","value":"0"},{"id":"Released","name":"Released","value":"1"},{"id":"HeldDown","name":"HeldDown","value":"2"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"class_methods":[{"html_id":"check(type:String)-class-method","name":"check","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L75"},"def":{"name":"check","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"case type.downcase\nwhen \"p\"\n ButtonAction::Pressed\nwhen \"r\"\n ButtonAction::Released\nwhen \"h\"\n ButtonAction::HeldDown\nelse\n raise(\"unknown button action type: #{type}\")\nend"}}],"instance_methods":[{"html_id":"held_down?-instance-method","name":"held_down?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L73"},"def":{"name":"held_down?","visibility":"Public","body":"self == HeldDown"}},{"html_id":"pressed?-instance-method","name":"pressed?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L71"},"def":{"name":"pressed?","visibility":"Public","body":"self == Pressed"}},{"html_id":"released?-instance-method","name":"released?","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L72"},"def":{"name":"released?","visibility":"Public","body":"self == Released"}}]},{"html_id":"drivers/Kramer/RC308Panel/DefaultLight","path":"Kramer/RC308Panel/DefaultLight.html","kind":"struct","full_name":"Kramer::RC308Panel::DefaultLight","name":"DefaultLight","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Kramer/RC308Panel","kind":"class","full_name":"Kramer::RC308Panel","name":"RC308Panel"},"constructors":[{"html_id":"new(red:UInt8,green:UInt8,blue:UInt8)-class-method","name":"new","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"new","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"_ = allocate\n_.initialize(red, green, blue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blue:UInt8-instance-method","name":"blue","abstract":false,"def":{"name":"blue","return_type":"UInt8","visibility":"Public","body":"@blue"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@red.clone, @green.clone, @blue.clone)"}},{"html_id":"copy_with(red_red=@red,green_green=@green,blue_blue=@blue)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"args_string":"(red _red = @red, green _green = @green, blue _blue = @blue)","args_html":"(red _red = @red, green _green = @green, blue _blue = @blue)","location":{"filename":"src/kramer/rc_308_panel.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/kramer/rc_308_panel.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_red","default_value":"@red","external_name":"red","restriction":""},{"name":"_green","default_value":"@green","external_name":"green","restriction":""},{"name":"_blue","default_value":"@blue","external_name":"blue","restriction":""}],"visibility":"Public","body":"self.class.new(_red, _green, _blue)"}},{"html_id":"green:UInt8-instance-method","name":"green","abstract":false,"def":{"name":"green","return_type":"UInt8","visibility":"Public","body":"@green"}},{"html_id":"red:UInt8-instance-method","name":"red","abstract":false,"def":{"name":"red","return_type":"UInt8","visibility":"Public","body":"@red"}}]}]}]},{"html_id":"drivers/Lenel","path":"Lenel.html","kind":"module","full_name":"Lenel","name":"Lenel","abstract":false,"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lenel/OpenAccess","path":"Lenel/OpenAccess.html","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L4"},{"filename":"src/lenel/open_access.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"}],"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"badge_types-instance-method","name":"badge_types","doc":"Query the available badge types.\n\nBadge types contain default configuration that is applied to any badge\ncreated under them. This includes items such as access areas, activation\nwindows and other bulk config. These may then be override on individual\nbadge instances.","summary":"

Query the available badge types.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L114"},"def":{"name":"badge_types","visibility":"Public","body":"client.lookup(BadgeType)"}},{"html_id":"check_comms-instance-method","name":"check_comms","doc":"Test service connectivity.","summary":"

Test service connectivity.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L80"},"def":{"name":"check_comms","visibility":"Public","body":"begin\n logger.debug do\n \"checking service connectivity\"\n end\n if client.token\n client.keepalive\n logger.info do\n \"client online and authenticated\"\n end\n else\n client.version\n logger.warn do\n \"service reachable, no active auth session\"\n end\n authenticate!\n end\nrescue e : OpenAccess::Error\n logger.error do\n e.message\n end\n set_connected_state(false)\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"logger.debug do\n \"connected\"\nend\nif client.token.nil?\n authenticate!\nend\n"}},{"html_id":"create_badge(type:Int32,id:Int64,personid:Int32,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"create_badge","doc":"Creates a new badge of the specied *type*, belonging to *personid* with a\nspecific *id*.\n\nNote: 'id' is the physical badge number (e.g. the ID written to an NFC chip)","summary":"

Creates a new badge of the specied type, belonging to personid with a specific id.

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L150"},"def":{"name":"create_badge","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"creating badge for cardholder #{personid}\"\nend\nclient.create(Badge, **args)\n"}},{"html_id":"create_badge_epoch(type:Int32,id:Int64,personid:Int32,activate_epoch:Int32,deactivate_epoch:Int32,uselimit:Int32|Nil=nil)-instance-method","name":"create_badge_epoch","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","args_html":"(type : Int32, id : Int64, personid : Int32, activate_epoch : Int32, deactivate_epoch : Int32, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L162"},"def":{"name":"create_badge_epoch","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"id","external_name":"id","restriction":"Int64"},{"name":"personid","external_name":"personid","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\ncreate_badge(type: type, id: id, personid: personid, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"create_cardholder(email:String,firstname:String,lastname:String)-instance-method","name":"create_cardholder","doc":"Creates a new cardholder.\n\nAn error will be returned if an existing cardholder exists for the specified\n*email* address.","summary":"

Creates a new cardholder.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"args_string":"(email : String, firstname : String, lastname : String)","args_html":"(email : String, firstname : String, lastname : String)","location":{"filename":"src/lenel/open_access.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L264"},"def":{"name":"create_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"},{"name":"firstname","external_name":"firstname","restriction":"String"},{"name":"lastname","external_name":"lastname","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"creating cardholder record for #{email}\"\nend\nif (client.count(Cardholder, filter: \"email = \\\"#{email}\\\"\")).zero?\nelse\n raise(ArgumentError.new(\"record already exists for #{email}\"))\nend\nclient.create(Cardholder, **args)\n"}},{"html_id":"delete_badge(badgekey:Int32):Nil-instance-method","name":"delete_badge","doc":"Deletes a badge with the specified *badgekey*.","summary":"

Deletes a badge with the specified badgekey.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32) : Nil","args_html":"(badgekey : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L217"},"def":{"name":"delete_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting badge #{badgekey}\"\nend\nclient.delete(Badge, **args)\n"}},{"html_id":"delete_badges(badgekeys:Array(Int32)):Int32-instance-method","name":"delete_badges","abstract":false,"args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"args_string":"(badgekeys : Array(Int32)) : Int32","args_html":"(badgekeys : Array(Int32)) : Int32","location":{"filename":"src/lenel/open_access.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L222"},"def":{"name":"delete_badges","args":[{"name":"badgekeys","external_name":"badgekeys","restriction":"Array(Int32)"}],"return_type":"Int32","visibility":"Public","body":"badgekeys.count do |badge_key|\n begin\n delete_badge(badge_key)\n 1\n rescue OpenAccess::Error\n logger.debug do\n \"failed to delete badge #{badge_key}\"\n end\n 0\n end\nend"}},{"html_id":"delete_cardholder(id:Int32):Nil-instance-method","name":"delete_cardholder","doc":"Deletes a cardholed by their person *id*.","summary":"

Deletes a cardholed by their person id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32) : Nil","args_html":"(id : Int32) : Nil","location":{"filename":"src/lenel/open_access.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L278"},"def":{"name":"delete_cardholder","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"deleting cardholder #{id}\"\nend\nclient.delete(Cardholder, **args)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"logger.debug do\n \"disconnected\"\nend\nclient.token = nil\n"}},{"html_id":"list_badges(personid:Int32)-instance-method","name":"list_badges","doc":"List badges belonging to a cardholder","summary":"

List badges belonging to a cardholder

","abstract":false,"args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"args_string":"(personid : Int32)","args_html":"(personid : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L120"},"def":{"name":"list_badges","args":[{"name":"personid","external_name":"personid","restriction":"Int32"}],"visibility":"Public","body":"client.lookup(Badge, filter: \"personid = #{personid}\")"}},{"html_id":"list_directories-instance-method","name":"list_directories","doc":"Query the directories available for auth.","summary":"

Query the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L97"},"def":{"name":"list_directories","visibility":"Public","body":"client.directories"}},{"html_id":"list_events(filter:String,page_number:Int32|Nil=nil)-instance-method","name":"list_events","doc":"List Logged Events","summary":"

List Logged Events

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"args_string":"(filter : String, page_number : Int32 | Nil = nil)","args_html":"(filter : String, page_number : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L291"},"def":{"name":"list_events","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"client.get_logged_events(filter, page_number)"}},{"html_id":"list_events_in_range(filter:String,from:Time|Nil=nil,til:Time|Nil=nil)-instance-method","name":"list_events_in_range","doc":"List events that occured during a given time window. Default to past 24h.","summary":"

List events that occured during a given time window.

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"args_string":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","args_html":"(filter : String, from : Time | Nil = nil, til : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":297,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L297"},"def":{"name":"list_events_in_range","args":[{"name":"filter","external_name":"filter","restriction":"String"},{"name":"from","default_value":"nil","external_name":"from","restriction":"Time | ::Nil"},{"name":"til","default_value":"nil","external_name":"til","restriction":"Time | ::Nil"}],"visibility":"Public","body":"til || (til = Time.local)\nfrom || (from = til - 1.day)\nclient.get_logged_events(filter + \" AND timestamp >= \\\"#{from.to_s}\\\" AND timestamp <= \\\"#{til.to_s}\\\"\")\n"}},{"html_id":"lookup_badge_id(id:Int64)-instance-method","name":"lookup_badge_id","doc":"Get badge by id (instead of badgekey)","summary":"

Get badge by id (instead of badgekey)

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/lenel/open_access.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L137"},"def":{"name":"lookup_badge_id","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"id = #{id}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_badge_key(badgekey:Int32)-instance-method","name":"lookup_badge_key","doc":"Get badge by badgekey (instead of id)\nNote: id is the number in the QR data or burnt to the swipe card. badgekey is Lenel's primary key for badges","summary":"

Get badge by badgekey (instead of id) Note: id is the number in the QR data or burnt to the swipe card.

","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"args_string":"(badgekey : Int32)","args_html":"(badgekey : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L127"},"def":{"name":"lookup_badge_key","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"}],"visibility":"Public","body":"badges = client.lookup(Badge, filter: \"badgekey = #{badgekey}\")\nif badges.size > 1\n logger.warn do\n \"duplicate records exist for #{badgekey}\"\n end\nend\nbadges.first?\n"}},{"html_id":"lookup_cardholder(email:String)-instance-method","name":"lookup_cardholder","doc":"Lookup a cardholder by *email* address.","summary":"

Lookup a cardholder by email address.

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L236"},"def":{"name":"lookup_cardholder","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{email}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholder_id(id:Int32)-instance-method","name":"lookup_cardholder_id","doc":"Lookup a cardholder by ID","summary":"

Lookup a cardholder by ID

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lenel/open_access.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L251"},"def":{"name":"lookup_cardholder_id","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"cardholders = client.lookup(Cardholder, filter: \"id = #{id}\")\nif cardholders.size > 1\n logger.warn do\n \"duplicate records exist for #{id}\"\n end\nend\ncardholders.first?\n"}},{"html_id":"lookup_cardholders(email:String)-instance-method","name":"lookup_cardholders","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/lenel/open_access.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L245"},"def":{"name":"lookup_cardholders","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"client.lookup(Cardholder, filter: \"email = \\\"#{email}\\\"\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L35"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(5.minutes, &->check_comms)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"logger.debug do\n \"settings updated\"\nend\nclient.app_id = setting(String, :application_id)\nauthenticate!\n"}},{"html_id":"search(type_name:String,filter:String|Nil=nil)-instance-method","name":"search","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L308"},"def":{"name":"search","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"client.raw_lookup(type_name, filter)"}},{"html_id":"search_readers(filter:String)-instance-method","name":"search_readers","doc":"List card readers matching a given filter","summary":"

List card readers matching a given filter

","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/lenel/open_access.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L285"},"def":{"name":"search_readers","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"client.lookup(Reader, filter)"}},{"html_id":"update_badge(badgekey:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil,activate:Time|Nil=nil,deactivate:Time|Nil=nil)-instance-method","name":"update_badge","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"args_string":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","args_html":"(badgekey : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil, activate : Time | Nil = nil, deactivate : Time | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L184"},"def":{"name":"update_badge","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"},{"name":"activate","default_value":"nil","external_name":"activate","restriction":"Time | ::Nil"},{"name":"deactivate","default_value":"nil","external_name":"deactivate","restriction":"Time | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"Updating badge #{badgekey}\"\nend\nclient.update(Badge, **args)\n"}},{"html_id":"update_badge_epoch(badgekey:Int32,activate_epoch:Int32,deactivate_epoch:Int32,id:Int64|Nil=nil,uselimit:Int32|Nil=nil)-instance-method","name":"update_badge_epoch","abstract":false,"args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"args_string":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","args_html":"(badgekey : Int32, activate_epoch : Int32, deactivate_epoch : Int32, id : Int64 | Nil = nil, uselimit : Int32 | Nil = nil)","location":{"filename":"src/lenel/open_access.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L196"},"def":{"name":"update_badge_epoch","args":[{"name":"badgekey","external_name":"badgekey","restriction":"Int32"},{"name":"activate_epoch","external_name":"activate_epoch","restriction":"Int32"},{"name":"deactivate_epoch","external_name":"deactivate_epoch","restriction":"Int32"},{"name":"id","default_value":"nil","external_name":"id","restriction":"Int64 | ::Nil"},{"name":"uselimit","default_value":"nil","external_name":"uselimit","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"activate = Time.unix(activate_epoch)\ndeactivate = Time.unix(deactivate_epoch)\nupdate_badge(badgekey: badgekey, id: id, activate: activate, deactivate: deactivate, uselimit: uselimit)\n"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access.cr#L103"},"def":{"name":"version","visibility":"Public","body":"client.version"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Client","path":"Lenel/OpenAccess/Client.html","kind":"class","full_name":"Lenel::OpenAccess::Client","name":"Client","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/client.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"Lenel OpenAccess API wrapper.\n\nProvides thin abstractions over API endpoints. Requests are executed on the\npased transport. This can be a `PlaceOS::Driver`, `HTTP::Client` or other type\nsupporting the same set of base HTTP request methods.","summary":"

Lenel OpenAccess API wrapper.

","constructors":[{"html_id":"new(transport:HTTP::Client,app_id:String)-class-method","name":"new","abstract":false,"args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"args_string":"(transport : HTTP::Client, app_id : String)","args_html":"(transport : HTTP::Client, app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L22"},"def":{"name":"new","args":[{"name":"transport","external_name":"transport","restriction":"::HTTP::Client"},{"name":"app_id","external_name":"app_id","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(transport, app_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"app_id:String-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id","return_type":"String","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:String)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"args_string":"(app_id : String)","args_html":"(app_id : String)","location":{"filename":"src/lenel/open_access/client.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L18"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"String"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"count(entitytype_name:T.class,filter:String|Nil=nil)forallT-instance-method","name":"count","doc":"Counts the number of instances of *entity*.\n\n*filter* may optionally be used to specify a subset of these.","summary":"

Counts the number of instances of entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L152"},"def":{"name":"count","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.encode(args.merge(type_name: T.type_name))\n((~transport.get(path: \"/count?version=1.0&#{params}\")) >> NamedTuple(total_items: Int32))[:total_items]\n"}},{"html_id":"create(entity:T.class,**props)forallT-instance-method","name":"create","doc":"Creates a new instance of *entity*.\n\nAPI create responses return a partial object, which is provided here as an\nuntyped return. This includes the object's database key (which varies\nbetween object types - ID, BADGEKEY etc), however contents of this is\nunspecified. The partial object is provided here, in full, with keys\ntransformed to match how they appear in a type-safe model.","summary":"

Creates a new instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) forall T","args_html":"(entity : T.class, **props) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L94"},"def":{"name":"create","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"visibility":"Public","body":"(~transport.post(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> Models::Untyped"}},{"html_id":"delete(entity:T.class,**props):NilforallT-instance-method","name":"delete","doc":"Deletes an instance of *entity*.","summary":"

Deletes an instance of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : Nil forall T","args_html":"(entity : T.class, **props) : Nil forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L172"},"def":{"name":"delete","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)"}},{"html_id":"directories-instance-method","name":"directories","doc":"Enumerates the directories available for auth.","summary":"

Enumerates the directories available for auth.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L49"},"def":{"name":"directories","visibility":"Public","body":"((~transport.get(path: \"/directories?version=1.0\")) >> NamedTuple(total_items: Int32, item_list: Array(::NamedTuple(property_value_map: ::NamedTuple(ID: String, Name: String, directory_type: Int32)))))[:item_list].map do |item|\n item[:property_value_map]\nend"}},{"html_id":"get_logged_events(filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"get_logged_events","doc":"Retrieve a list of logged events from Onguard\nSee Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events","summary":"

Retrieve a list of logged events from Onguard See Onguard 7.6 OpenAccess User Gude > Chapter 4 REST API > Manage Instances > get logged_events

","abstract":false,"args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L184"},"def":{"name":"get_logged_events","args":[{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/logged_events?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"keepalive:Nil-instance-method","name":"keepalive","doc":"Request a connection keepalive to prevent session timeout.","summary":"

Request a connection keepalive to prevent session timeout.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L81"},"def":{"name":"keepalive","return_type":"Nil","visibility":"Public","body":"~transport.get(path: \"/keepalive?version=1.0\")"}},{"html_id":"login(usernameuser_name:String,password:String,directory_id:String|Nil)-instance-method","name":"login","doc":"Creates a new auth session.","summary":"

Creates a new auth session.

","abstract":false,"args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"args_string":"(username user_name : String, password : String, directory_id : String | Nil)","args_html":"(username user_name : String, password : String, directory_id : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L59"},"def":{"name":"login","args":[{"name":"user_name","external_name":"username","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"directory_id","external_name":"directory_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"(~transport.post(path: \"/authentication?version=1.0\", body: args.to_h.compact.to_json)) >> NamedTuple(session_token: String, token_expiration_time: Time)"}},{"html_id":"logout:Nil-instance-method","name":"logout","doc":"Removes an auth session.","summary":"

Removes an auth session.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L74"},"def":{"name":"logout","return_type":"Nil","visibility":"Public","body":"~transport.delete(path: \"/authentication?version=1.0\")"}},{"html_id":"lookup(entitytype_name:T.class,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=nil,order_by:String|Nil=nil):Array(T)forallT-instance-method","name":"lookup","doc":"Retrieves instances of a particular *entity*.\n\nThe search criteria specified in *filter* is a subset of SQL. This supports\noperations such as as:\n+ exclusion `LastName != \"Lake\"`\n+ wildcards `LastName like \"La%\"`\n+ boolean operators `LastName = \"Lake\" OR FirstName = \"Lisa\"`","summary":"

Retrieves instances of a particular entity.

","abstract":false,"args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","args_html":"(entity type_name : T.class, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = nil, order_by : String | Nil = nil) : Array(T) forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L111"},"def":{"name":"lookup","args":[{"name":"type_name","external_name":"entity","restriction":"T.class"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"nil","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"return_type":"Array(T)","visibility":"Public","body":"params = HTTP::Params.new\nargs.merge(type_name: T.type_name).each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val)\n end\nend\n((~transport.get(path: \"/instances?version=1.0&#{params}\")) >> NamedTuple(page_number: Int32 | ::Nil, page_size: Int32 | ::Nil, total_pages: Int32, total_items: Int32, count: Int32, item_list: Array(T)))[:item_list]\n"}},{"html_id":"raw_lookup(type_name:String,filter:String|Nil=nil,page_number:Int32|Nil=nil,page_size:Int32|Nil=100,order_by:String|Nil=nil)-instance-method","name":"raw_lookup","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"args_string":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","args_html":"(type_name : String, filter : String | Nil = nil, page_number : Int32 | Nil = nil, page_size : Int32 | Nil = 100, order_by : String | Nil = nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L134"},"def":{"name":"raw_lookup","args":[{"name":"type_name","external_name":"type_name","restriction":"String"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"page_number","default_value":"nil","external_name":"page_number","restriction":"Int32 | ::Nil"},{"name":"page_size","default_value":"100","external_name":"page_size","restriction":"Int32 | ::Nil"},{"name":"order_by","default_value":"nil","external_name":"order_by","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nargs.each do |key, val|\n if val.nil?\n else\n params.add(key.to_s, val.to_s)\n end\nend\nresponse = transport.get(path: \"/instances?version=1.0&#{params}\")\nresponse.body\n"}},{"html_id":"token:String|Nil-instance-method","name":"token","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L20"},"def":{"name":"token","return_type":"String | ::Nil","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String|Nil)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"args_string":"(token : String | Nil)","args_html":"(token : String | Nil)","location":{"filename":"src/lenel/open_access/client.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L20"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String | ::Nil"}],"visibility":"Public","body":"@token = token"}},{"html_id":"update(entity:T.class,**props):TforallT-instance-method","name":"update","doc":"Updates a record of *entity*. Passed properties must include the types key and\nany fields to update.","summary":"

Updates a record of entity.

","abstract":false,"args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"args_string":"(entity : T.class, **props) : T forall T","args_html":"(entity : T.class, **props) : T forall T","location":{"filename":"src/lenel/open_access/client.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L161"},"def":{"name":"update","args":[{"name":"entity","external_name":"entity","restriction":"T.class"}],"double_splat":{"name":"props","external_name":"props","restriction":""},"return_type":"T","visibility":"Public","body":"(~transport.put(path: \"/instances?version=1.0\", body: {type_name: T.type_name, property_value_map: T.partial(**props)}.to_json)) >> T"}},{"html_id":"version-instance-method","name":"version","doc":"Gets the version of the attached OnGuard system.","summary":"

Gets the version of the attached OnGuard system.

","abstract":false,"location":{"filename":"src/lenel/open_access/client.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/client.cr#L39"},"def":{"name":"version","visibility":"Public","body":"(~transport.get(path: \"/version?version=1.0\")) >> NamedTuple(product_name: String, product_version: String)"}}]},{"html_id":"drivers/Lenel/OpenAccess/Error","path":"Lenel/OpenAccess/Error.html","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"class_methods":[{"html_id":"from_response(response)-class-method","name":"from_response","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/lenel/open_access/error.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L6"},"def":{"name":"from_response","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"begin\n error = Error::Info.from_json(response.body)\n new(**error[:error])\nrescue\n new(response.status.to_s)\nend"}}],"constructors":[{"html_id":"new(code:String,message:String|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"args_string":"(code : String, message : String | Nil = nil)","args_html":"(code : String, message : String | Nil = nil)","location":{"filename":"src/lenel/open_access/error.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L17"},"def":{"name":"new","args":[{"name":"code","external_name":"code","restriction":"String"},{"name":"message","default_value":"nil","external_name":"message","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(code, message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"code:String-instance-method","name":"code","abstract":false,"location":{"filename":"src/lenel/open_access/error.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L15"},"def":{"name":"code","visibility":"Public","body":"@code"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Error/Info","path":"Lenel/OpenAccess/Error/Info.html","kind":"alias","full_name":"Lenel::OpenAccess::Error::Info","name":"Info","abstract":false,"locations":[{"filename":"src/lenel/open_access/error.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/error.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(error: NamedTuple(code: String, message: String | Nil))","aliased_html":"{error: {code: String, message: String?}}","const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Error","kind":"class","full_name":"Lenel::OpenAccess::Error","name":"Error"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models","path":"Lenel/OpenAccess/Models.html","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROPERTIES_KEY","name":"PROPERTIES_KEY","value":"\"property_value_map\""}],"including_types":[{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess","kind":"class","full_name":"Lenel::OpenAccess","name":"OpenAccess"},"doc":"DTO's for OpenAccess entities.\n\nThese are intentionally lightweight. In cases where a entity holds a\nrelationship to another, these are _not_ auto-resolved. Original ID references\nare kept in place. Types here a simply a thin wrapper for JSON serialization.","summary":"

DTO's for OpenAccess entities.

","types":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","path":"Lenel/OpenAccess/Models/Badge.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L130"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L130"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"activate:Time|Nil-instance-method","name":"activate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L134"},"def":{"name":"activate","return_type":"Time | ::Nil","visibility":"Public","body":"@activate"}},{"html_id":"badgekey:Int32-instance-method","name":"badgekey","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L131"},"def":{"name":"badgekey","return_type":"Int32","visibility":"Public","body":"@badgekey"}},{"html_id":"deactivate:Time|Nil-instance-method","name":"deactivate","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L137"},"def":{"name":"deactivate","return_type":"Time | ::Nil","visibility":"Public","body":"@deactivate"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L139"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"personid:Int32|Nil-instance-method","name":"personid","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L140"},"def":{"name":"personid","return_type":"Int32 | ::Nil","visibility":"Public","body":"@personid"}},{"html_id":"status:Int32|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L141"},"def":{"name":"status","return_type":"Int32 | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"type:Int32|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L142"},"def":{"name":"type","return_type":"Int32 | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"uselimit:Int32|Nil-instance-method","name":"uselimit","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L143"},"def":{"name":"uselimit","return_type":"Int32 | ::Nil","visibility":"Public","body":"@uselimit"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","path":"Lenel/OpenAccess/Models/BadgeType.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L146"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L146"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"badgetypeclass:BadgeTypeClass-instance-method","name":"badgetypeclass","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L156"},"def":{"name":"badgetypeclass","return_type":"BadgeTypeClass","visibility":"Public","body":"@badgetypeclass"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L154"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L155"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"usemobilecredential:Bool-instance-method","name":"usemobilecredential","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L157"},"def":{"name":"usemobilecredential","return_type":"Bool","visibility":"Public","body":"@usemobilecredential"}}],"types":[{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass","path":"Lenel/OpenAccess/Models/BadgeType/BadgeTypeClass.html","kind":"enum","full_name":"Lenel::OpenAccess::Models::BadgeType::BadgeTypeClass","name":"BadgeTypeClass","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L147"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Standard","name":"Standard","value":"0"},{"id":"Temporary","name":"Temporary","value":"1"},{"id":"Visitor","name":"Visitor","value":"2"},{"id":"Guest","name":"Guest","value":"3"},{"id":"SpecialPurpose","name":"SpecialPurpose","value":"4"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},"instance_methods":[{"html_id":"guest?-instance-method","name":"guest?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L151"},"def":{"name":"guest?","visibility":"Public","body":"self == Guest"}},{"html_id":"special_purpose?-instance-method","name":"special_purpose?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L152"},"def":{"name":"special_purpose?","visibility":"Public","body":"self == SpecialPurpose"}},{"html_id":"standard?-instance-method","name":"standard?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L148"},"def":{"name":"standard?","visibility":"Public","body":"self == Standard"}},{"html_id":"temporary?-instance-method","name":"temporary?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L149"},"def":{"name":"temporary?","visibility":"Public","body":"self == Temporary"}},{"html_id":"visitor?-instance-method","name":"visitor?","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L150"},"def":{"name":"visitor?","visibility":"Public","body":"self == Visitor"}}]}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","path":"Lenel/OpenAccess/Models/Cardholder.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L160"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L160"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L161"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","path":"Lenel/OpenAccess/Models/Element.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Badge","kind":"struct","full_name":"Lenel::OpenAccess::Models::Badge","name":"Badge"},{"html_id":"drivers/Lenel/OpenAccess/Models/BadgeType","kind":"struct","full_name":"Lenel::OpenAccess::Models::BadgeType","name":"BadgeType"},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event"},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person"},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader"},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"doc":"Base type for Lenel data objects.","summary":"

Base type for Lenel data objects.

","class_methods":[{"html_id":"partial(**properties:**T):TforallT-class-method","name":"partial","doc":"Provide a compile-time check to ensure *properties* is a subset of *self*.","summary":"

Provide a compile-time check to ensure properties is a subset of self.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L74"},"def":{"name":"partial","double_splat":{"name":"properties","external_name":"properties","restriction":"**T"},"return_type":"T","visibility":"Public","body":"{% for key in T.keys %}\n {% unless @type.has_method?(key)\n raise(\"no \\\"#{key}\\\" property on #{@type.name}\")\nend %}\n {% end %}\nproperties\n"}},{"html_id":"type_name-class-method","name":"type_name","doc":"Name of the type as expected by the OpenAccess API endpoints.","summary":"

Name of the type as expected by the OpenAccess API endpoints.

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L23"},"def":{"name":"type_name","visibility":"Public","body":"\"Lnl_#{(name.rpartition(\"::\")).last}\""}}],"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(*,__pull_for_json_serializablepull:JSON::PullParser)-class-method","name":"new","doc":"Override the default JSON::Serializable behaviour to make keys case\ninensitive when deserialising.","summary":"

Override the default JSON::Serializable behaviour to make keys case inensitive when deserialising.

","abstract":false,"args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"args_string":"(*, __pull_for_json_serializable pull : JSON::PullParser)","args_html":"(*, __pull_for_json_serializable pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L36"},"def":{"name":"new","args":[{"name":"","external_name":"","restriction":""},{"name":"pull","external_name":"__pull_for_json_serializable","restriction":"::JSON::PullParser"}],"splat_index":0,"visibility":"Public","body":"_ = allocate\n_.initialize(__pull_for_json_serializable: pull)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Event","path":"Lenel/OpenAccess/Models/Event.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_result:Int32|Nil-instance-method","name":"access_result","doc":"getter alarm_priority : Int32?\ngetter alarm_ack_blue_channel : Int32?\ngetter alarm_ack_green_channel : Int32?\ngetter alarm_ack_red_channel : Int32?\ngetter alarm_blue_channel : Int32?\ngetter alarm_green_channel : Int32?\ngetter alarm_red_channel : Int32?","summary":"

getter alarm_priority : Int32? getter alarm_ack_blue_channel : Int32? getter alarm_ack_green_channel : Int32? getter alarm_ack_red_channel : Int32? getter alarm_blue_channel : Int32? getter alarm_green_channel : Int32? getter alarm_red_channel : Int32?

","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L111"},"def":{"name":"access_result","return_type":"Int32 | ::Nil","visibility":"Public","body":"@access_result"}},{"html_id":"asset_id:Int32|Nil-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L102"},"def":{"name":"asset_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@asset_id"}},{"html_id":"badge_extended_id:String|Nil-instance-method","name":"badge_extended_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L100"},"def":{"name":"badge_extended_id","return_type":"String | ::Nil","visibility":"Public","body":"@badge_extended_id"}},{"html_id":"badge_id:Int32|Nil-instance-method","name":"badge_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L98"},"def":{"name":"badge_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_id"}},{"html_id":"badge_id_str:String|Nil-instance-method","name":"badge_id_str","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L99"},"def":{"name":"badge_id_str","return_type":"String | ::Nil","visibility":"Public","body":"@badge_id_str"}},{"html_id":"badge_issue_code:Int32|Nil-instance-method","name":"badge_issue_code","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L101"},"def":{"name":"badge_issue_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@badge_issue_code"}},{"html_id":"cardholder_entered:Bool|Nil-instance-method","name":"cardholder_entered","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L112"},"def":{"name":"cardholder_entered","return_type":"Bool | ::Nil","visibility":"Public","body":"@cardholder_entered"}},{"html_id":"cardholder_first_name:String|Nil-instance-method","name":"cardholder_first_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L116"},"def":{"name":"cardholder_first_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_first_name"}},{"html_id":"cardholder_key:Int32|Nil-instance-method","name":"cardholder_key","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L103"},"def":{"name":"cardholder_key","return_type":"Int32 | ::Nil","visibility":"Public","body":"@cardholder_key"}},{"html_id":"cardholder_last_name:String|Nil-instance-method","name":"cardholder_last_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L117"},"def":{"name":"cardholder_last_name","return_type":"String | ::Nil","visibility":"Public","body":"@cardholder_last_name"}},{"html_id":"controller_id:Int32-instance-method","name":"controller_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L91"},"def":{"name":"controller_id","return_type":"Int32","visibility":"Public","body":"@controller_id"}},{"html_id":"controller_name:String|Nil-instance-method","name":"controller_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L114"},"def":{"name":"controller_name","return_type":"String | ::Nil","visibility":"Public","body":"@controller_name"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L90"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"device_id:Int32-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L92"},"def":{"name":"device_id","return_type":"Int32","visibility":"Public","body":"@device_id"}},{"html_id":"device_name:String|Nil-instance-method","name":"device_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L118"},"def":{"name":"device_name","return_type":"String | ::Nil","visibility":"Public","body":"@device_name"}},{"html_id":"duress:Bool|Nil-instance-method","name":"duress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L113"},"def":{"name":"duress","return_type":"Bool | ::Nil","visibility":"Public","body":"@duress"}},{"html_id":"event_source_name:String|Nil-instance-method","name":"event_source_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L115"},"def":{"name":"event_source_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_source_name"}},{"html_id":"event_subtype:Int32|Nil-instance-method","name":"event_subtype","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L96"},"def":{"name":"event_subtype","return_type":"Int32 | ::Nil","visibility":"Public","body":"@event_subtype"}},{"html_id":"event_text:String|Nil-instance-method","name":"event_text","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L97"},"def":{"name":"event_text","return_type":"String | ::Nil","visibility":"Public","body":"@event_text"}},{"html_id":"event_type:Int32-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L95"},"def":{"name":"event_type","return_type":"Int32","visibility":"Public","body":"@event_type"}},{"html_id":"segment_id:Int32|Nil-instance-method","name":"segment_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L94"},"def":{"name":"segment_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@segment_id"}},{"html_id":"serial_number:Int32|Nil-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L88"},"def":{"name":"serial_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@serial_number"}},{"html_id":"subdevice_id:Int32|Nil-instance-method","name":"subdevice_id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L93"},"def":{"name":"subdevice_id","return_type":"Int32 | ::Nil","visibility":"Public","body":"@subdevice_id"}},{"html_id":"subdevice_name:String|Nil-instance-method","name":"subdevice_name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L119"},"def":{"name":"subdevice_name","return_type":"String | ::Nil","visibility":"Public","body":"@subdevice_name"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L89"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Person","path":"Lenel/OpenAccess/Models/Person.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Person","name":"Person","abstract":true,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L124"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Lenel/OpenAccess/Models/Cardholder","kind":"struct","full_name":"Lenel::OpenAccess::Models::Cardholder","name":"Cardholder"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L124"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"firstname:String|Nil-instance-method","name":"firstname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L126"},"def":{"name":"firstname","return_type":"String | ::Nil","visibility":"Public","body":"@firstname"}},{"html_id":"id:Int32-instance-method","name":"id","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L125"},"def":{"name":"id","return_type":"Int32","visibility":"Public","body":"@id"}},{"html_id":"lastname:String|Nil-instance-method","name":"lastname","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L127"},"def":{"name":"lastname","return_type":"String | ::Nil","visibility":"Public","body":"@lastname"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Reader","path":"Lenel/OpenAccess/Models/Reader.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Reader","name":"Reader","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L164"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L164"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"accessMode:Int32|Nil-instance-method","name":"accessMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L165"},"def":{"name":"accessMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@accessMode"}},{"html_id":"address:Int32|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L166"},"def":{"name":"address","return_type":"Int32 | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"aux1Name:String|Nil-instance-method","name":"aux1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L182"},"def":{"name":"aux1Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux1Name"}},{"html_id":"aux2Name:String|Nil-instance-method","name":"aux2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L183"},"def":{"name":"aux2Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux2Name"}},{"html_id":"aux3Name:String|Nil-instance-method","name":"aux3Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L184"},"def":{"name":"aux3Name","return_type":"String | ::Nil","visibility":"Public","body":"@aux3Name"}},{"html_id":"controlType:Int32|Nil-instance-method","name":"controlType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L167"},"def":{"name":"controlType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@controlType"}},{"html_id":"extendedOpenTime:Int32|Nil-instance-method","name":"extendedOpenTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L168"},"def":{"name":"extendedOpenTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedOpenTime"}},{"html_id":"extendedStrikeTime:Int32|Nil-instance-method","name":"extendedStrikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L169"},"def":{"name":"extendedStrikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@extendedStrikeTime"}},{"html_id":"friendlyName:String|Nil-instance-method","name":"friendlyName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L185"},"def":{"name":"friendlyName","return_type":"String | ::Nil","visibility":"Public","body":"@friendlyName"}},{"html_id":"gatewayAddress:Int32|Nil-instance-method","name":"gatewayAddress","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L170"},"def":{"name":"gatewayAddress","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayAddress"}},{"html_id":"gatewayHostName:String|Nil-instance-method","name":"gatewayHostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L186"},"def":{"name":"gatewayHostName","return_type":"String | ::Nil","visibility":"Public","body":"@gatewayHostName"}},{"html_id":"gatewayIPPort:Int32|Nil-instance-method","name":"gatewayIPPort","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L171"},"def":{"name":"gatewayIPPort","return_type":"Int32 | ::Nil","visibility":"Public","body":"@gatewayIPPort"}},{"html_id":"hostName:String|Nil-instance-method","name":"hostName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L187"},"def":{"name":"hostName","return_type":"String | ::Nil","visibility":"Public","body":"@hostName"}},{"html_id":"isPairedMaster:Bool|Nil-instance-method","name":"isPairedMaster","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L192"},"def":{"name":"isPairedMaster","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedMaster"}},{"html_id":"isPairedSlave:Bool|Nil-instance-method","name":"isPairedSlave","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L193"},"def":{"name":"isPairedSlave","return_type":"Bool | ::Nil","visibility":"Public","body":"@isPairedSlave"}},{"html_id":"mode:Int32|Nil-instance-method","name":"mode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L173"},"def":{"name":"mode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mode"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L188"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"offlineMode:Int32|Nil-instance-method","name":"offlineMode","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L172"},"def":{"name":"offlineMode","return_type":"Int32 | ::Nil","visibility":"Public","body":"@offlineMode"}},{"html_id":"openTime:Int32|Nil-instance-method","name":"openTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L174"},"def":{"name":"openTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@openTime"}},{"html_id":"out1Name:String|Nil-instance-method","name":"out1Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L189"},"def":{"name":"out1Name","return_type":"String | ::Nil","visibility":"Public","body":"@out1Name"}},{"html_id":"out2Name:String|Nil-instance-method","name":"out2Name","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L190"},"def":{"name":"out2Name","return_type":"String | ::Nil","visibility":"Public","body":"@out2Name"}},{"html_id":"panelID:Int32|Nil-instance-method","name":"panelID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L175"},"def":{"name":"panelID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@panelID"}},{"html_id":"panelTypeName:String|Nil-instance-method","name":"panelTypeName","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L191"},"def":{"name":"panelTypeName","return_type":"String | ::Nil","visibility":"Public","body":"@panelTypeName"}},{"html_id":"portNumber:Int32|Nil-instance-method","name":"portNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L176"},"def":{"name":"portNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@portNumber"}},{"html_id":"readerID:Int32|Nil-instance-method","name":"readerID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L177"},"def":{"name":"readerID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerID"}},{"html_id":"readerNumber:Int32|Nil-instance-method","name":"readerNumber","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L178"},"def":{"name":"readerNumber","return_type":"Int32 | ::Nil","visibility":"Public","body":"@readerNumber"}},{"html_id":"slaveID:Int32|Nil-instance-method","name":"slaveID","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L179"},"def":{"name":"slaveID","return_type":"Int32 | ::Nil","visibility":"Public","body":"@slaveID"}},{"html_id":"strikeTime:Int32|Nil-instance-method","name":"strikeTime","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L180"},"def":{"name":"strikeTime","return_type":"Int32 | ::Nil","visibility":"Public","body":"@strikeTime"}},{"html_id":"timeAttendanceType:Int32|Nil-instance-method","name":"timeAttendanceType","abstract":false,"location":{"filename":"src/lenel/open_access/models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L181"},"def":{"name":"timeAttendanceType","return_type":"Int32 | ::Nil","visibility":"Public","body":"@timeAttendanceType"}}]},{"html_id":"drivers/Lenel/OpenAccess/Models/Untyped","path":"Lenel/OpenAccess/Models/Untyped.html","kind":"struct","full_name":"Lenel::OpenAccess::Models::Untyped","name":"Untyped","abstract":false,"superclass":{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/Lenel/OpenAccess/Models/Element","kind":"struct","full_name":"Lenel::OpenAccess::Models::Element","name":"Element"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"namespace":{"html_id":"drivers/Lenel/OpenAccess/Models","kind":"module","full_name":"Lenel::OpenAccess::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lenel/open_access/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/lenel/open_access/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L84"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" json_unmapped.\n{{ call }}\n\n \n"}}]}]}]},{"html_id":"drivers/Lenel/TimeConverter","path":"Lenel/TimeConverter.html","kind":"module","full_name":"Lenel::TimeConverter","name":"TimeConverter","abstract":false,"locations":[{"filename":"src/lenel/open_access/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lenel","kind":"module","full_name":"Lenel","name":"Lenel"},"doc":"Ensure that UTC time strings provide the offset as \"+00:00\" instead of \"Z\", as required by Openaccess","summary":"

Ensure that UTC time strings provide the offset as "+00:00" instead of "Z", as required by Openaccess

","class_methods":[{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/lenel/open_access/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lenel/open_access/models.cr#L5"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_s(\"%FT%T%:z\"))"}}]}]},{"html_id":"drivers/Leviton","path":"Leviton.html","kind":"module","full_name":"Leviton","name":"Leviton","abstract":false,"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Leviton/Acquisuite","path":"Leviton/Acquisuite.html","kind":"class","full_name":"Leviton::Acquisuite","name":"Acquisuite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/leviton/acquisuite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Leviton","kind":"module","full_name":"Leviton","name":"Leviton"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_list:Hash(String,{String,String})-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L148"},"def":{"name":"device_list","visibility":"Public","body":"@device_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/leviton/acquisuite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@device_list = setting(Hash(String, Tuple(String, String)), :device_list)\n@manifest_list = setting(Array(String), :manifest_list)\n@config_list = setting(Hash(String, Array(Hash(String, Float64 | String | Nil))), :config_list)\n"}},{"html_id":"receive_webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"receive_webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/leviton/acquisuite.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/leviton/acquisuite.cr#L31"},"def":{"name":"receive_webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n if @debug_webhook\n logger.warn do\n ((\"Received Webhook\\n\" + \"Method: #{method.inspect}\\n\") + \"Headers:\\n#{headers.inspect}\\n\") + \"Body:\\n#{body.inspect}\"\n end\n end\n decoded = Base64.decode_string(body)\n case method.downcase\n when \"post\"\n new_headers = HTTP::Headers.new\n headers.each do |k, v|\n new_headers[k] = v\n end\n request = HTTP::Request.new(\"POST\", \"/request\", new_headers, decoded)\n files, form_data = ActionController::BodyParser.extract_form_data(request, \"multipart/form-data\", request.query_params)\n form_data = form_data.not_nil!\n case form_data[\"MODE\"]\n when \"STATUS\"\n return {HTTP::Status::OK.to_i, {} of String => String, \"SUCCESS\"}\n when \"CONFIGFILEMANIFEST\"\n return {HTTP::Status::OK.to_i, {} of String => String, device_to_manifest.join(\"\\n\")}\n when \"CONFIGFILEUPLOAD\"\n files = files.not_nil!\n return config_file_upload(files, form_data)\n when \"LOGFILEUPLOAD\"\n files = files.not_nil!\n return log_file_upload(files, form_data)\n else\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: Invalid mode passed. Either STATUS, CONFIGFILEMANIFEST, CONFIGFILEUPLOAD or LOGFILEUPLOAD required. Got #{form_data[\"MODE\"]}\"}\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request: #{body.inspect}\"\n end\n self[:last_error] = error.inspect_with_backtrace\n self[:error_payload] = body\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, \"FAILURE: #{error.message.to_s}\"}\nend"}}]}]},{"html_id":"drivers/Lg","path":"Lg.html","kind":"module","full_name":"Lg","name":"Lg","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lg/Displays","path":"Lg/Displays.html","kind":"module","full_name":"Lg::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lg","kind":"module","full_name":"Lg","name":"Lg"},"types":[{"html_id":"drivers/Lg/Displays/Ls5","path":"Lg/Displays/Ls5.html","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"120_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Lg/Displays","kind":"module","full_name":"Lg::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"aspect_ratio(ratio:Ratio)-instance-method","name":"aspect_ratio","abstract":false,"args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"args_string":"(ratio : Ratio)","args_html":"(ratio : Ratio)","location":{"filename":"src/lg/displays/ls5.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L143"},"def":{"name":"aspect_ratio","args":[{"name":"ratio","external_name":"ratio","restriction":"Ratio"}],"visibility":"Public","body":"do_send(Command::AspectRatio, ratio.value, name: \"aspect_ratio\", delay: 1.second)"}},{"html_id":"aspect_ratio?(priority:Int32=0)-instance-method","name":"aspect_ratio?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"aspect_ratio?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AspectRatio, 255, priority: priority, name: \"aspect_ratio\" + \"_status\")"}},{"html_id":"auto_off(state:Bool=false)-instance-method","name":"auto_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L211"},"def":{"name":"auto_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::AutoOff, val, 'm', name: \"disable_auto_off\")\n"}},{"html_id":"auto_off?(priority:Int32=0)-instance-method","name":"auto_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"auto_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::AutoOff, 255, priority: priority, name: \"auto_off\" + \"_status\")"}},{"html_id":"brightness(value:Float64|Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Brightness, val, name: \"brightness\")\n"}},{"html_id":"brightness?(priority:Int32=0)-instance-method","name":"brightness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"brightness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Brightness, 255, priority: priority, name: \"brightness\" + \"_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L56"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nself[:connected] = true\nwake_on_lan\nno_signal_off\nauto_off\nlocal_button_lock\npm_mode\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Float64|Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Contrast, val, name: \"contrast\")\n"}},{"html_id":"contrast?(priority:Int32=0)-instance-method","name":"contrast?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"contrast?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Contrast, 255, priority: priority, name: \"contrast\" + \"_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L69"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nself[:connected] = false\nschedule.clear\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"if @rs232\n power?\n if self[:hard_power]?.try(&.as_bool)\n screen_mute?\n input?\n volume_mute?\n volume?\n end\nelse\n if @connected\n screen_mute?\n if @id_num == 1\n input?\n volume_mute?\n volume?\n end\n else\n if self[:power_target]?.try(&.as_bool)\n power(true)\n end\n end\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L111"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::Power, 0, name: \"power\", priority: 99, clear_queue: true)"}},{"html_id":"input?(priority:Int32=0)-instance-method","name":"input?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L169"},"def":{"name":"input?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Input, 255, 'x', priority: priority)"}},{"html_id":"local_button_lock(state:Bool=true)-instance-method","name":"local_button_lock","doc":"0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons. Default to 2 as power off from local button results in network offline","summary":"

0 = Off, 1 = lock all except Power buttons, 2 = lock all buttons.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L206"},"def":{"name":"local_button_lock","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 2 : 0\ndo_send(Command::LocalButtonLock, val, 't', name: \"local_button_lock\")\n"}},{"html_id":"local_button_lock?(priority:Int32=0)-instance-method","name":"local_button_lock?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"local_button_lock?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::LocalButtonLock, 255, priority: priority, name: \"local_button_lock\" + \"_status\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/lg/displays/ls5.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L119"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n do_send(Command::ScreenMute, state ? 1 : 0, name: \"mute_video\")\nend\nif (layer.audio? || layer.audio_video?) && ((self[:audio_mute]?.try(&.as_bool)) != state)\n do_send(Command::VolumeMute, state ? 0 : 1, name: \"mute_audio\")\nend\nstate\n"}},{"html_id":"no_signal_off(state:Bool=false)-instance-method","name":"no_signal_off","abstract":false,"args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = false)","args_html":"(state : Bool = false)","location":{"filename":"src/lg/displays/ls5.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L199"},"def":{"name":"no_signal_off","args":[{"name":"state","default_value":"false","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ncommand = build_command(Command::NoSignalOff, val, 'f')\nsend(command, name: \"no_signal_off\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"no_signal_off?(priority:Int32=0)-instance-method","name":"no_signal_off?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"no_signal_off?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::NoSignalOff, 255, priority: priority, name: \"no_signal_off\" + \"_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 150.milliseconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@rs232 = setting(Bool, :rs232_control)\n@id_num = setting(Int32, :display_id)\n@id = @id_num.to_s.rjust(2, '0')\n"}},{"html_id":"pm_mode(mode:Int32=3)-instance-method","name":"pm_mode","abstract":false,"args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"args_string":"(mode : Int32 = 3)","args_html":"(mode : Int32 = 3)","location":{"filename":"src/lg/displays/ls5.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L194"},"def":{"name":"pm_mode","args":[{"name":"mode","default_value":"3","external_name":"mode","restriction":"Int32"}],"visibility":"Public","body":"command = build_command(Command::PmMode, mode, 's')\nsend(command, name: \"pm_mode\") do |data, task|\n process_response(data, task)\nend\n"}},{"html_id":"pm_mode?(priority:Int32=0)-instance-method","name":"pm_mode?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"pm_mode?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::PmMode, 255, priority: priority, name: \"pm_mode\" + \"_status\")"}},{"html_id":"power(state:Bool,broadcast:String|Nil=nil)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(state : Bool, broadcast : String | Nil = nil)","args_html":"(state : Bool, broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L98"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if state\n if @rs232\n do_send(Command::Power, 1, name: \"power\", priority: 99)\n else\n wake(broadcast || @last_broadcast)\n end\nend\nif @connected\n mute(!state)\nend\n"}},{"html_id":"power?(priority:Int32=0)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Power, 255, priority: priority, name: \"power\" + \"_status\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lg/displays/ls5.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L253"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"if (resp_value = get_response_value(data)) == -1\n return task.try(&.abort)\nend\ncommand = Command.from_value(data[0])\nlogger.debug do\n \"Received command #{command}\"\nend\ncase command\nwhen .power?\n self[:hard_power] = resp_value == 1\n if self[:hard_power].as_bool\n else\n self[:power] = false\n end\nwhen .input?\n self[:input] = Input.from_value(resp_value)\nwhen .aspect_ratio?\n self[:aspect_ratio] = Ratio.from_value(resp_value)\nwhen .screen_mute?\n self[:power] = resp_value == 0\nwhen .volume_mute?\n self[:audio_mute] = resp_value == 0\nwhen .contrast?, .brightness?, .sharpness?, .volume?\n self[command.to_s.underscore] = resp_value\nwhen .wake_on_lan?, .auto_off?\n self[command.to_s.underscore] = resp_value == 1\nwhen .local_button_lock?\n self[:local_button_lock] = resp_value == 2\nelse\n return task.try(&.retry)\nend\ntask.try(&.success)\n"}},{"html_id":"screen_mute?(priority:Int32=0)-instance-method","name":"screen_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"screen_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::ScreenMute, 255, priority: priority, name: \"screen_mute\" + \"_status\")"}},{"html_id":"sharpness(value:Float64|Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Sharpness, val, name: \"sharpness\")\n"}},{"html_id":"sharpness?(priority:Int32=0)-instance-method","name":"sharpness?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"sharpness?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Sharpness, 255, priority: priority, name: \"sharpness\" + \"_status\")"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/lg/displays/ls5.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L115"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Input, input.value, 'x', name: \"input\", delay: 2.seconds)"}},{"html_id":"volume(value:Float64|Int32)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"args_string":"(value : Float64 | Int32)","args_html":"(value : Float64 | Int32)","location":{"filename":"src/lg/displays/ls5.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L173"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Float64 | Int32"}],"visibility":"Public","body":"val = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, val, name: \"volume\")\n"}},{"html_id":"volume?(priority:Int32=0)-instance-method","name":"volume?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::Volume, 255, priority: priority, name: \"volume\" + \"_status\")"}},{"html_id":"volume_mute?(priority:Int32=0)-instance-method","name":"volume_mute?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"volume_mute?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::VolumeMute, 255, priority: priority, name: \"volume_mute\" + \"_status\")"}},{"html_id":"wake(broadcast:String|Nil=nil)-instance-method","name":"wake","abstract":false,"args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"args_string":"(broadcast : String | Nil = nil)","args_html":"(broadcast : String | Nil = nil)","location":{"filename":"src/lg/displays/ls5.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L221"},"def":{"name":"wake","args":[{"name":"broadcast","default_value":"nil","external_name":"broadcast","restriction":"String | ::Nil"}],"visibility":"Public","body":"if mac = setting?(String, :mac_address)\n wake_device(mac, broadcast)\n logger.debug do\n info = \"Wake on Lan for MAC #{mac}\"\n if b = broadcast\n info = info + \" directed to VLAN #{b}\"\n end\n info\n end\nelse\n logger.warn do\n \"No MAC address provided\"\n end\nend"}},{"html_id":"wake_on_lan(state:Bool=true)-instance-method","name":"wake_on_lan","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/lg/displays/ls5.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L216"},"def":{"name":"wake_on_lan","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? 1 : 0\ndo_send(Command::WakeOnLan, val, 'f', name: \"enable_wake_on_lan\")\n"}},{"html_id":"wake_on_lan?(priority:Int32=0)-instance-method","name":"wake_on_lan?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lg/displays/ls5.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L91"},"def":{"name":"wake_on_lan?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"do_send(Command::WakeOnLan, 255, priority: priority, name: \"wake_on_lan\" + \"_status\")"}}],"types":[{"html_id":"drivers/Lg/Displays/Ls5/Command","path":"Lg/Displays/Ls5/Command.html","kind":"enum","full_name":"Lg::Displays::Ls5::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L75"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"97"},{"id":"Input","name":"Input","value":"98"},{"id":"AspectRatio","name":"AspectRatio","value":"99"},{"id":"ScreenMute","name":"ScreenMute","value":"100"},{"id":"VolumeMute","name":"VolumeMute","value":"101"},{"id":"Volume","name":"Volume","value":"102"},{"id":"Contrast","name":"Contrast","value":"103"},{"id":"Brightness","name":"Brightness","value":"104"},{"id":"Sharpness","name":"Sharpness","value":"107"},{"id":"AutoOff","name":"AutoOff","value":"110"},{"id":"LocalButtonLock","name":"LocalButtonLock","value":"111"},{"id":"WakeOnLan","name":"WakeOnLan","value":"119"},{"id":"NoSignalOff","name":"NoSignalOff","value":"103"},{"id":"PmMode","name":"PmMode","value":"110"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"aspect_ratio?-instance-method","name":"aspect_ratio?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L78"},"def":{"name":"aspect_ratio?","visibility":"Public","body":"self == AspectRatio"}},{"html_id":"auto_off?-instance-method","name":"auto_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L85"},"def":{"name":"auto_off?","visibility":"Public","body":"self == AutoOff"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L83"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L82"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"local_button_lock?-instance-method","name":"local_button_lock?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L86"},"def":{"name":"local_button_lock?","visibility":"Public","body":"self == LocalButtonLock"}},{"html_id":"no_signal_off?-instance-method","name":"no_signal_off?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L88"},"def":{"name":"no_signal_off?","visibility":"Public","body":"self == NoSignalOff"}},{"html_id":"pm_mode?-instance-method","name":"pm_mode?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L89"},"def":{"name":"pm_mode?","visibility":"Public","body":"self == PmMode"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L76"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"screen_mute?-instance-method","name":"screen_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L79"},"def":{"name":"screen_mute?","visibility":"Public","body":"self == ScreenMute"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L84"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L81"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"volume_mute?-instance-method","name":"volume_mute?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L80"},"def":{"name":"volume_mute?","visibility":"Public","body":"self == VolumeMute"}},{"html_id":"wake_on_lan?-instance-method","name":"wake_on_lan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L87"},"def":{"name":"wake_on_lan?","visibility":"Public","body":"self == WakeOnLan"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Input","path":"Lg/Displays/Ls5/Input.html","kind":"enum","full_name":"Lg::Displays::Ls5::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dvi","name":"Dvi","value":"112"},{"id":"Hdmi","name":"Hdmi","value":"160"},{"id":"HdmiDtv","name":"HdmiDtv","value":"144"},{"id":"Hdmi2","name":"Hdmi2","value":"161"},{"id":"Hdmi2Dtv","name":"Hdmi2Dtv","value":"145"},{"id":"DisplayPort","name":"DisplayPort","value":"208"},{"id":"DisplayPortDtv","name":"DisplayPortDtv","value":"192"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L16"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"display_port_dtv?-instance-method","name":"display_port_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L17"},"def":{"name":"display_port_dtv?","visibility":"Public","body":"self == DisplayPortDtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L11"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L14"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_dtv?-instance-method","name":"hdmi2_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L15"},"def":{"name":"hdmi2_dtv?","visibility":"Public","body":"self == Hdmi2Dtv"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L12"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_dtv?-instance-method","name":"hdmi_dtv?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L13"},"def":{"name":"hdmi_dtv?","visibility":"Public","body":"self == HdmiDtv"}}]},{"html_id":"drivers/Lg/Displays/Ls5/Ratio","path":"Lg/Displays/Ls5/Ratio.html","kind":"enum","full_name":"Lg::Displays::Ls5::Ratio","name":"Ratio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lg/displays/ls5.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Square","name":"Square","value":"1"},{"id":"Wide","name":"Wide","value":"2"},{"id":"Zoom","name":"Zoom","value":"4"},{"id":"Scan","name":"Scan","value":"9"},{"id":"Program","name":"Program","value":"6"}],"namespace":{"html_id":"drivers/Lg/Displays/Ls5","kind":"class","full_name":"Lg::Displays::Ls5","name":"Ls5"},"instance_methods":[{"html_id":"program?-instance-method","name":"program?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L140"},"def":{"name":"program?","visibility":"Public","body":"self == Program"}},{"html_id":"scan?-instance-method","name":"scan?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L139"},"def":{"name":"scan?","visibility":"Public","body":"self == Scan"}},{"html_id":"square?-instance-method","name":"square?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L136"},"def":{"name":"square?","visibility":"Public","body":"self == Square"}},{"html_id":"wide?-instance-method","name":"wide?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L137"},"def":{"name":"wide?","visibility":"Public","body":"self == Wide"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/lg/displays/ls5.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lg/displays/ls5.cr#L138"},"def":{"name":"zoom?","visibility":"Public","body":"self == Zoom"}}]}]}]}]},{"html_id":"drivers/Lumens","path":"Lumens.html","kind":"module","full_name":"Lumens","name":"Lumens","abstract":false,"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Lumens/DC193","path":"Lumens/DC193.html","kind":"class","full_name":"Lumens::DC193","name":"DC193","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{193_u8 => :lamp, 176_u8 => :power, 183_u8 => :power_staus, 167_u8 => :picture_mode, 163_u8 => :auto_focus, 138_u8 => :max_zoom, 120_u8 => :frozen_status, 96_u8 => :zoom_staus, 81_u8 => :picture_mode_staus, 80_u8 => :lamp_staus, 44_u8 => :freeze, 31_u8 => :zoom_direct_auto_focus, 19_u8 => :zoom_direct, 17_u8 => :zoom, 16_u8 => :zoom_stop}"},{"id":"PICTURE_MODES","name":"PICTURE_MODES","value":"{:photo, :test, :greyscale}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"}],"namespace":{"html_id":"drivers/Lumens","kind":"module","full_name":"Lumens","name":"Lumens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_focus(name:String=\"auto_focus\")-instance-method","name":"auto_focus","abstract":false,"args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"args_string":"(name : String = \"auto_focus\")","args_html":"(name : String = "auto_focus")","location":{"filename":"src/lumens/dc193.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L107"},"def":{"name":"auto_focus","args":[{"name":"name","default_value":"\"auto_focus\"","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nsend(Bytes[160, 163, 1, 0, 0, 175], name: name)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds) do\n query_status\nend\nquery_status\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L33"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"freeze(state:Bool)-instance-method","name":"freeze","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L117"},"def":{"name":"freeze","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 44, state, 0, 0, 175], name: :freeze)\n"}},{"html_id":"frozen?-instance-method","name":"frozen?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L122"},"def":{"name":"frozen?","visibility":"Public","body":"send(Bytes[160, 120, 0, 0, 0, 175], priority: 0)"}},{"html_id":"lamp(state:Bool,head_led:Bool=false)-instance-method","name":"lamp","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"args_string":"(state : Bool, head_led : Bool = false)","args_html":"(state : Bool, head_led : Bool = false)","location":{"filename":"src/lumens/dc193.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L59"},"def":{"name":"lamp","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"head_led","default_value":"false","external_name":"head_led","restriction":"Bool"}],"visibility":"Public","body":"if @frozen\n return false\nend\nlamps = if state && head_led\n 1_u8\nelse\n if state\n 2_u8\n else\n if head_led\n 3_u8\n else\n 0_u8\n end\n end\nend\nsend(Bytes[160, 193, lamps, 0, 0, 175], name: :lamp)\n"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L75"},"def":{"name":"lamp?","visibility":"Public","body":"send(Bytes[160, 80, 0, 0, 0, 175], priority: 0)"}},{"html_id":"max_zoom?-instance-method","name":"max_zoom?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L146"},"def":{"name":"max_zoom?","visibility":"Public","body":"send(Bytes[160, 138, 0, 0, 0, 175], priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L19"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(6)\n@zoom_range = 0..@zoom_max\n"}},{"html_id":"picture_mode(state:String)-instance-method","name":"picture_mode","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/lumens/dc193.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L126"},"def":{"name":"picture_mode","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"if @frozen\n return false\nend\nmode = case state.downcase\nwhen \"photo\"\n 0_u8\nwhen \"text\"\n 1_u8\nwhen \"greyscale\", \"grayscale\"\n 2_u8\nelse\n raise(ArgumentError.new(\"unknown picture mode #{state}\"))\nend\nsend(Bytes[160, 167, mode, 0, 0, 175], name: :picture_mode)\n"}},{"html_id":"picture_mode?-instance-method","name":"picture_mode?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L142"},"def":{"name":"picture_mode?","visibility":"Public","body":"send(Bytes[160, 81, 0, 0, 0, 175], priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lumens/dc193.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L48"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1_u8 : 0_u8\nsend(Bytes[160, 176, state, 0, 0, 175], name: :power)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L54"},"def":{"name":"power?","visibility":"Public","body":"send(Bytes[160, 183, 0, 0, 0, 175], priority: 0)"}},{"html_id":"query_status-instance-method","name":"query_status","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L37"},"def":{"name":"query_status","visibility":"Public","body":"if power?.get == \"true\"\n lamp?\n zoom?\n frozen?\n max_zoom?\n picture_mode?\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lumens/dc193.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L189"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Lumens sent: #{data.hexstring}\"\nend\nstatus = Status.from_value(data[4].to_i)\nself[:zooming] = status.zooming?\nself[:focusing] = status.focusing?\nself[:iris_adjusting] = status.iris?\nif status.error?\n return task.try(&.abort(\"bad request\"))\nend\nif status.ignored?\n return task.try(&.retry(\"device busy\"))\nend\nresult = case COMMANDS[data[1]]?\nwhen :power\n data[2] == 1_u8\nwhen :power_staus\n @ready = data[2] == 1_u8\n @power = data[3] == 1_u8\n logger.debug do\n \"System power: #{@power}, ready: #{@ready}\"\n end\n self[:ready] = @ready\n self[:power] = @power\nwhen :max_zoom\n @zoom_max = data[2].to_i + (data[3].to_i << 8)\n @zoom_range = 0..@zoom_max\n self[:zoom_range] = {min: 0, max: @zoom_max}\nwhen :frozen_status, :freeze\n self[:frozen] = @frozen = data[2] == 1_u8\nwhen :zoom_staus, :zoom_direct_auto_focus, :zoom_direct\n value = data[2].to_i + (data[3].to_i << 8)\n self[:zoom] = value.to_f * (100.0 / @zoom_max.to_f)\nwhen :picture_mode_staus, :picture_mode\n self[:picture_mode] = PICTURE_MODES[data[2].to_i]\nwhen :lamp_staus, :lamp\n case data[2]\n when 0_u8\n @head_led = @lamp = false\n when 1_u8\n @head_led = @lamp = true\n when 2_u8\n @head_led = false\n @lamp = true\n when 3_u8\n @head_led = true\n @lamp = false\n end\n self[:head_led] = @head_led\n self[:lamp] = @lamp\nwhen :auto_focus\nelse\n error = \"Unknown command #{data[1]}\"\n logger.debug do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success(result))\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=1)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 1)","args_html":"(direction : ZoomDirection, index : Int32 | String = 1)","location":{"filename":"src/lumens/dc193.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L90"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"1","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @frozen\n return false\nend\ncase direction\nwhen ZoomDirection::Stop\n send(Bytes[160, 16, 0, 0, 0, 175])\n zoom?(priority: queue.priority)\n auto_focus(name: \"zoom\")\nwhen ZoomDirection::In\n send(Bytes[160, 17, 0, 0, 0, 175], name: :zoom)\nwhen ZoomDirection::Out\n send(Bytes[160, 17, 1, 0, 0, 175], name: :zoom)\nend\n"}},{"html_id":"zoom?(priority:Int32=0)-instance-method","name":"zoom?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L113"},"def":{"name":"zoom?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(Bytes[160, 96, 0, 0, 0, 175], priority: priority)"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/lumens/dc193.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L79"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nposition = (percentage * @zoom_max.to_f).to_i\nlow = (position & 255).to_u8\nhigh = ((position >> 8) & 255).to_u8\nauto_focus = auto_focus ? 31_u8 : 19_u8\nsend(Bytes[160, auto_focus, low, high, 0, 175], name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Lumens/DC193/Status","path":"Lumens/DC193/Status.html","kind":"enum","full_name":"Lumens::DC193::Status","name":"Status","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L151"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"1"},{"id":"Ignored","name":"Ignored","value":"2"},{"id":"Reserved1","name":"Reserved1","value":"4"},{"id":"Reserved2","name":"Reserved2","value":"8"},{"id":"Focusing","name":"Focusing","value":"16"},{"id":"Zooming","name":"Zooming","value":"32"},{"id":"Iris","name":"Iris","value":"64"},{"id":"Reserved3","name":"Reserved3","value":"128"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"255"}],"namespace":{"html_id":"drivers/Lumens/DC193","kind":"class","full_name":"Lumens::DC193","name":"DC193"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L152"},"def":{"name":"error?","visibility":"Public","body":"self.includes?(Error)"}},{"html_id":"focusing?-instance-method","name":"focusing?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L156"},"def":{"name":"focusing?","visibility":"Public","body":"self.includes?(Focusing)"}},{"html_id":"ignored?-instance-method","name":"ignored?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L153"},"def":{"name":"ignored?","visibility":"Public","body":"self.includes?(Ignored)"}},{"html_id":"iris?-instance-method","name":"iris?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L158"},"def":{"name":"iris?","visibility":"Public","body":"self.includes?(Iris)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L151"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"reserved1?-instance-method","name":"reserved1?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L154"},"def":{"name":"reserved1?","visibility":"Public","body":"self.includes?(Reserved1)"}},{"html_id":"reserved2?-instance-method","name":"reserved2?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L155"},"def":{"name":"reserved2?","visibility":"Public","body":"self.includes?(Reserved2)"}},{"html_id":"reserved3?-instance-method","name":"reserved3?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L159"},"def":{"name":"reserved3?","visibility":"Public","body":"self.includes?(Reserved3)"}},{"html_id":"zooming?-instance-method","name":"zooming?","abstract":false,"location":{"filename":"src/lumens/dc193.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lumens/dc193.cr#L157"},"def":{"name":"zooming?","visibility":"Public","body":"self.includes?(Zooming)"}}]}]}]},{"html_id":"drivers/Lutron","path":"Lutron.html","kind":"module","full_name":"Lutron","name":"Lutron","abstract":false,"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L12"},{"filename":"src/lutron/vive_leap_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"macros":[{"html_id":"upper_enum(name)-macro","name":"upper_enum","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""}],"args_string":"(name)","args_html":"(name)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L4"},"def":{"name":"upper_enum","args":[{"name":"name","external_name":"name","restriction":""}],"visibility":"Public","body":" \n{% if name.type.resolve.nilable? %} @{{ name.var }} : String? {% else %} @{{ name.var }} : String {% end %}\n\n \n{% enum_type = name.type.resolve.union_types.reject(&.nilable?).first %}\n\n\n def \n{{ name.var }}\n : \n{{ name.type }}\n\n if value = @\n{{ name.var }}\n\n \n{{ enum_type }}\n.parse(value)\n \nelse\n nil\n \nend\n \nend\n\n def \n{{ name.var }}\n=(value : \n{{ name.type }}\n) : \n{{ name.type }}\n\n @\n{{ name.var }}\n = value.try &.to_s\n value\n \nend\n \n"}}],"types":[{"html_id":"drivers/Lutron/AreaStatus","path":"Lutron/AreaStatus.html","kind":"struct","full_name":"Lutron::AreaStatus","name":"AreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"href:String-instance-method","name":"href","doc":"/area/3/status","summary":"

/area/3/status

","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L121"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L124"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"occupancy:OccupancyStatus|Nil-instance-method","name":"occupancy","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy","return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"if value = @occupancy\n Lutron::OccupancyStatus.parse(value)\nelse\n nil\nend"}},{"html_id":"occupancy=(value:OccupancyStatus|Nil):OccupancyStatus|Nil-instance-method","name":"occupancy=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"args_string":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","args_html":"(value : OccupancyStatus | Nil) : OccupancyStatus | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L127"},"def":{"name":"occupancy=","args":[{"name":"value","external_name":"value","restriction":"OccupancyStatus | ::Nil"}],"return_type":"OccupancyStatus | ::Nil","visibility":"Public","body":"@occupancy = value.try(&.to_s)\nvalue\n"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L129"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, area_id, status = href.split(\"/\", 4)\n\"#{component}#{area_id}\"\n"}}]},{"html_id":"drivers/Lutron/Availability","path":"Lutron/Availability.html","kind":"enum","full_name":"Lutron::Availability","name":"Availability","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L159"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Available","name":"Available","value":"0"},{"id":"Unavailable","name":"Unavailable","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"available?-instance-method","name":"available?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L160"},"def":{"name":"available?","visibility":"Public","body":"self == Available"}},{"html_id":"unavailable?-instance-method","name":"unavailable?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L161"},"def":{"name":"unavailable?","visibility":"Public","body":"self == Unavailable"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L162"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]},{"html_id":"drivers/Lutron/ClientSetting","path":"Lutron/ClientSetting.html","kind":"struct","full_name":"Lutron::ClientSetting","name":"ClientSetting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"protocol:ClientVersion-instance-method","name":"protocol","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L77"},"def":{"name":"protocol","return_type":"ClientVersion","visibility":"Public","body":"@protocol"}}]},{"html_id":"drivers/Lutron/ClientVersion","path":"Lutron/ClientVersion.html","kind":"struct","full_name":"Lutron::ClientVersion","name":"ClientVersion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"major_version:Int32-instance-method","name":"major_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L84"},"def":{"name":"major_version","return_type":"Int32","visibility":"Public","body":"@major_version"}},{"html_id":"minor_version:Int32-instance-method","name":"minor_version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L87"},"def":{"name":"minor_version","return_type":"Int32","visibility":"Public","body":"@minor_version"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L89"},"def":{"name":"version","visibility":"Public","body":"\"#{major_version}.#{minor_version}.0\""}}]},{"html_id":"drivers/Lutron/CommuniqueType","path":"Lutron/CommuniqueType.html","kind":"enum","full_name":"Lutron::CommuniqueType","name":"CommuniqueType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"ReadRequest","name":"ReadRequest","value":"0"},{"id":"ReadResponse","name":"ReadResponse","value":"1"},{"id":"UpdateRequest","name":"UpdateRequest","value":"2"},{"id":"UpdateResponse","name":"UpdateResponse","value":"3"},{"id":"SubscribeRequest","name":"SubscribeRequest","value":"4"},{"id":"SubscribeResponse","name":"SubscribeResponse","value":"5"},{"id":"DeleteRequest","name":"DeleteRequest","value":"6"},{"id":"DeleteResponse","name":"DeleteResponse","value":"7"},{"id":"CreateRequest","name":"CreateRequest","value":"8"},{"id":"CreateResponse","name":"CreateResponse","value":"9"},{"id":"UnsubscribeRequest","name":"UnsubscribeRequest","value":"10"},{"id":"UnsubscribeResponse","name":"UnsubscribeResponse","value":"11"},{"id":"ExceptionResponse","name":"ExceptionResponse","value":"12"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"create_request?-instance-method","name":"create_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L31"},"def":{"name":"create_request?","visibility":"Public","body":"self == CreateRequest"}},{"html_id":"create_response?-instance-method","name":"create_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L32"},"def":{"name":"create_response?","visibility":"Public","body":"self == CreateResponse"}},{"html_id":"delete_request?-instance-method","name":"delete_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L29"},"def":{"name":"delete_request?","visibility":"Public","body":"self == DeleteRequest"}},{"html_id":"delete_response?-instance-method","name":"delete_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L30"},"def":{"name":"delete_response?","visibility":"Public","body":"self == DeleteResponse"}},{"html_id":"exception_response?-instance-method","name":"exception_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L35"},"def":{"name":"exception_response?","visibility":"Public","body":"self == ExceptionResponse"}},{"html_id":"read_request?-instance-method","name":"read_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L23"},"def":{"name":"read_request?","visibility":"Public","body":"self == ReadRequest"}},{"html_id":"read_response?-instance-method","name":"read_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L24"},"def":{"name":"read_response?","visibility":"Public","body":"self == ReadResponse"}},{"html_id":"subscribe_request?-instance-method","name":"subscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L27"},"def":{"name":"subscribe_request?","visibility":"Public","body":"self == SubscribeRequest"}},{"html_id":"subscribe_response?-instance-method","name":"subscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L28"},"def":{"name":"subscribe_response?","visibility":"Public","body":"self == SubscribeResponse"}},{"html_id":"unsubscribe_request?-instance-method","name":"unsubscribe_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L33"},"def":{"name":"unsubscribe_request?","visibility":"Public","body":"self == UnsubscribeRequest"}},{"html_id":"unsubscribe_response?-instance-method","name":"unsubscribe_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L34"},"def":{"name":"unsubscribe_response?","visibility":"Public","body":"self == UnsubscribeResponse"}},{"html_id":"update_request?-instance-method","name":"update_request?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L25"},"def":{"name":"update_request?","visibility":"Public","body":"self == UpdateRequest"}},{"html_id":"update_response?-instance-method","name":"update_response?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L26"},"def":{"name":"update_response?","visibility":"Public","body":"self == UpdateResponse"}}]},{"html_id":"drivers/Lutron/ContactClosureState","path":"Lutron/ContactClosureState.html","kind":"enum","full_name":"Lutron::ContactClosureState","name":"ContactClosureState","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Open","name":"Open","value":"0"},{"id":"Closed","name":"Closed","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"closed?-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L156"},"def":{"name":"closed?","visibility":"Public","body":"self == Closed"}},{"html_id":"open?-instance-method","name":"open?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L155"},"def":{"name":"open?","visibility":"Public","body":"self == Open"}}]},{"html_id":"drivers/Lutron/ExceptionDetail","path":"Lutron/ExceptionDetail.html","kind":"struct","full_name":"Lutron::ExceptionDetail","name":"ExceptionDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error_code:Int32|Nil-instance-method","name":"error_code","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L101"},"def":{"name":"error_code","return_type":"Int32 | ::Nil","visibility":"Public","body":"@error_code"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L98"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/Lutron/Lighting","path":"Lutron/Lighting.html","kind":"class","full_name":"Lutron::Lighting","name":"Lighting","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/lighting.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Errors","name":"Errors","value":"{\"1\" => \"Parameter count mismatch\", \"2\" => \"Object does not exist\", \"3\" => \"Invalid action number\", \"4\" => \"Parameter data out of range\", \"5\" => \"Parameter data malformed\", \"6\" => \"Unsupported Command\"}"},{"id":"Occupancy","name":"Occupancy","value":"{\"1\" => \"unknown\", \"2\" => \"inactive\", \"3\" => \"occupied\", \"4\" => \"unoccupied\"}"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"blinds(device:String,action:String,component:String=\"shadegrp\")-instance-method","name":"blinds","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"args_string":"(device : String, action : String, component : String = \"shadegrp\")","args_html":"(device : String, action : String, component : String = "shadegrp")","location":{"filename":"src/lutron/lighting.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L77"},"def":{"name":"blinds","args":[{"name":"device","external_name":"device","restriction":"String"},{"name":"action","external_name":"action","restriction":"String"},{"name":"component","default_value":"\"shadegrp\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"case action.downcase\nwhen \"raise\", \"up\"\n send_cmd(component.upcase, device, 3)\nwhen \"lower\", \"down\"\n send_cmd(component.upcase, device, 2)\nwhen \"stop\"\n send_cmd(component.upcase, device, 4)\nend"}},{"html_id":"button_press(area:Int32,button:Int32)-instance-method","name":"button_press","doc":"===============\nDEVICE COMMANDS\n===============","summary":"

=============== DEVICE COMMANDS ===============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"args_string":"(area : Int32, button : Int32)","args_html":"(area : Int32, button : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L116"},"def":{"name":"button_press","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"button","external_name":"button","restriction":"Int32"}],"visibility":"Public","body":"send_cmd(\"DEVICE\", area, button, 3)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L35"},"def":{"name":"connected","visibility":"Public","body":"send(\"#{@login}\\r\\n\", priority: 9999)\nschedule.every(40.seconds) do\n logger.debug do\n \"-- Polling Lutron\"\n end\n scene?(1)\nend\n"}},{"html_id":"daylight(area:Int32,mode:Bool)-instance-method","name":"daylight","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"args_string":"(area : Int32, mode : Bool)","args_html":"(area : Int32, mode : Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L108"},"def":{"name":"daylight","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"Bool"}],"visibility":"Public","body":"val = mode ? 1 : 2\nsend_cmd(\"AREA\", area, 7, val)\n"}},{"html_id":"daylight_mode?(area:Int32)-instance-method","name":"daylight_mode?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L104"},"def":{"name":"daylight_mode?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 7)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L44"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"led(area:Int32,device:Int32,state:Int32|Bool)-instance-method","name":"led","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"args_string":"(area : Int32, device : Int32, state : Int32 | Bool)","args_html":"(area : Int32, device : Int32, state : Int32 | Bool)","location":{"filename":"src/lutron/lighting.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L120"},"def":{"name":"led","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Int32 | Bool"}],"visibility":"Public","body":"val = if state.is_a?(Int32)\n state\nelse\n state ? 1 : 0\nend\nsend_cmd(\"DEVICE\", area, device, 9, val)\n"}},{"html_id":"led?(area:Int32,device:Int32)-instance-method","name":"led?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"args_string":"(area : Int32, device : Int32)","args_html":"(area : Int32, device : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L130"},"def":{"name":"led?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"device","external_name":"device","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"DEVICE\", area, device, 9)"}},{"html_id":"level(device:Int32,level:Int32,rate:Int32=1000,component:String=\"output\")-instance-method","name":"level","doc":"dimmers, CCOs, or other devices in a system that have a controllable output","summary":"

dimmers, CCOs, or other devices in a system that have a controllable output

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"args_string":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = \"output\")","args_html":"(device : Int32, level : Int32, rate : Int32 = 1000, component : String = "output")","location":{"filename":"src/lutron/lighting.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L63"},"def":{"name":"level","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"rate","default_value":"1000","external_name":"rate","restriction":"Int32"},{"name":"component","default_value":"\"output\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nseconds = rate / 1000\nmin = seconds / 60\nseconds = seconds - (min * 60)\ntime = \"#{min.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}\"\nsend_cmd(component.upcase, device, 1, level, time)\n"}},{"html_id":"light_level(area:Int32,level:Int32,component:String|Nil=nil,fade:Int32=1000)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","args_html":"(area : Int32, level : Int32, component : String | Nil = nil, fade : Int32 = 1000)","location":{"filename":"src/lutron/lighting.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L141"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Int32"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"if component\n level(area, level, fade, component)\nelse\n level(area, level, fade, \"area\")\nend"}},{"html_id":"lighting(device:Int32,state:Bool,action:Int32=1)-instance-method","name":"lighting","doc":"on or off","summary":"

on or off

","abstract":false,"args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"args_string":"(device : Int32, state : Bool, action : Int32 = 1)","args_html":"(device : Int32, state : Bool, action : Int32 = 1)","location":{"filename":"src/lutron/lighting.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L53"},"def":{"name":"lighting","args":[{"name":"device","external_name":"device","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"action","default_value":"1","external_name":"action","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100 : 0\nlight_level(device, level)\n"}},{"html_id":"occupancy?(area:Int32)-instance-method","name":"occupancy?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"}],"args_string":"(area : Int32)","args_html":"(area : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L100"},"def":{"name":"occupancy?","args":[{"name":"area","external_name":"area","restriction":"Int32"}],"visibility":"Public","body":"send_query(\"AREA\", area, 8)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 100.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@login = (setting?(String, :login)) || \"nwk\"\n@trigger_type = (setting?(String, :trigger)) || \"area\"\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/lighting.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nparts = data.split(\",\")\ncomponent = parts[0][1..-1].downcase\ncase component\nwhen \"area\", \"output\", \"shadegrp\"\n area = parts[1]\n action = parts[2].to_i\n param = parts[3]\n case action\n when 1\n self[\"#{component}#{area}_level\"] = param.to_f\n when 6\n self[\"#{component}#{area}\"] = param.to_i\n when 7\n self[\"#{component}#{area}_daylight\"] = param == \"1\"\n when 8\n self[\"#{component}#{area}_occupied\"] = Occupancy[param]\n end\nwhen \"device\"\n area = parts[1]\n device = parts[2]\n action = parts[3].to_i\n case action\n when 7\n self[\"device#{area}_#{device}\"] = parts[4].to_i\n when 9\n self[\"device#{area}_#{device}_led\"] = parts[4].to_i\n end\nwhen \"error\"\n error = \"error #{parts[1]}: #{Errors[parts[1]]}\"\n logger.warn do\n error\n end\n return task.try(&.abort(error))\nend\ntask.try(&.success)\n"}},{"html_id":"restart-instance-method","name":"restart","abstract":false,"location":{"filename":"src/lutron/lighting.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L48"},"def":{"name":"restart","visibility":"Public","body":"send_cmd(\"RESET\", 0)"}},{"html_id":"scene(area:Int32,scene:Int32,component:String=\"area\")-instance-method","name":"scene","doc":"=============\nAREA COMMANDS\n=============","summary":"

============= AREA COMMANDS =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, scene : Int32, component : String = \"area\")","args_html":"(area : Int32, scene : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L91"},"def":{"name":"scene","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"(send_cmd(component.upcase, area, 6, scene)).get\nscene?(area, component)\n"}},{"html_id":"scene?(area:Int32,component:String=\"area\")-instance-method","name":"scene?","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"args_string":"(area : Int32, component : String = \"area\")","args_html":"(area : Int32, component : String = "area")","location":{"filename":"src/lutron/lighting.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L96"},"def":{"name":"scene?","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"component","default_value":"\"area\"","external_name":"component","restriction":"String"}],"visibility":"Public","body":"send_query(component.upcase, area, 6)"}},{"html_id":"trigger(area:Int32,scene:Int32)-instance-method","name":"trigger","doc":"=============\nCOMPATIBILITY\n=============","summary":"

============= COMPATIBILITY =============

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32)","args_html":"(area : Int32, scene : Int32)","location":{"filename":"src/lutron/lighting.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/lighting.cr#L137"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"scene(area, scene, @trigger_type)"}}]},{"html_id":"drivers/Lutron/MultipleAreaStatus","path":"Lutron/MultipleAreaStatus.html","kind":"struct","full_name":"Lutron::MultipleAreaStatus","name":"MultipleAreaStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L104"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L105"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(AreaStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L108"},"def":{"name":"states","return_type":"Array(AreaStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/MultipleZoneStatus","path":"Lutron/MultipleZoneStatus.html","kind":"struct","full_name":"Lutron::MultipleZoneStatus","name":"MultipleZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L135"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"states:Array(ZoneStatus)-instance-method","name":"states","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L139"},"def":{"name":"states","return_type":"Array(ZoneStatus)","visibility":"Public","body":"@states"}}]},{"html_id":"drivers/Lutron/OccupancyStatus","path":"Lutron/OccupancyStatus.html","kind":"enum","full_name":"Lutron::OccupancyStatus","name":"OccupancyStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L111"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Occupied","name":"Occupied","value":"0"},{"id":"Unoccupied","name":"Unoccupied","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"occupied?-instance-method","name":"occupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L112"},"def":{"name":"occupied?","visibility":"Public","body":"self == Occupied"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L114"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}},{"html_id":"unoccupied?-instance-method","name":"unoccupied?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L113"},"def":{"name":"unoccupied?","visibility":"Public","body":"self == Unoccupied"}}]},{"html_id":"drivers/Lutron/OneZoneStatus","path":"Lutron/OneZoneStatus.html","kind":"struct","full_name":"Lutron::OneZoneStatus","name":"OneZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L142"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L143"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"status:ZoneStatus-instance-method","name":"status","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L146"},"def":{"name":"status","return_type":"ZoneStatus","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/Lutron/Quantum","path":"Lutron/Quantum.html","kind":"class","full_name":"Lutron::Quantum","name":"Quantum","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/quantum.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"level(id:Int32,level:String)-instance-method","name":"level","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(id : Int32, level : String)","args_html":"(id : Int32, level : String)","location":{"filename":"src/lutron/quantum.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L31"},"def":{"name":"level","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"client.zone.set_status_level(id: id, level: level)\nself[\"area#{id}_level\"] = level\n"}},{"html_id":"level?(id:Int32)-instance-method","name":"level?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L26"},"def":{"name":"level?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.zone.get_status(id)\nself[\"area#{id}_level\"] = status[\"Level\"]\n"}},{"html_id":"occupancy_status?(id:Int32)-instance-method","name":"occupancy_status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L46"},"def":{"name":"occupancy_status?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"occupancy_status = client.area.get_occupancy_status(id: id)\nself[\"area#{id}_occupancy\"] = occupancy_status\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = (URI.parse(config.uri.not_nil!)).host\napi_key = setting(String, :api_key)\ndevice_key = setting(String, :device_key)\n@client = Client.new(host_name: host_name.not_nil!, api_key: api_key, device_key: device_key)\n"}},{"html_id":"root-instance-method","name":"root","abstract":false,"location":{"filename":"src/lutron/quantum.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L57"},"def":{"name":"root","visibility":"Public","body":"client.area.root"}},{"html_id":"scene(id:Int32,scene:Int32)-instance-method","name":"scene","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"args_string":"(id : Int32, scene : Int32)","args_html":"(id : Int32, scene : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L36"},"def":{"name":"scene","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"}],"visibility":"Public","body":"client.area.set_scene(id: id, scene: scene)\nself[\"area#{id}\"] = scene\n"}},{"html_id":"scene?(id:Int32)-instance-method","name":"scene?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L41"},"def":{"name":"scene?","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"status = client.area.get_status(id: id)\nself[\"area#{id}\"] = status[\"CurrentScene\"]\n"}},{"html_id":"scenes(id:Int32)-instance-method","name":"scenes","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"}],"args_string":"(id : Int32)","args_html":"(id : Int32)","location":{"filename":"src/lutron/quantum.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L52"},"def":{"name":"scenes","args":[{"name":"id","external_name":"id","restriction":"Int32"}],"visibility":"Public","body":"client.area.get_scenes(id: id)"}}],"types":[{"html_id":"drivers/Lutron/Quantum/Client","path":"Lutron/Quantum/Client.html","kind":"alias","full_name":"Lutron::Quantum::Client","name":"Client","abstract":false,"locations":[{"filename":"src/lutron/quantum.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/quantum.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Quantum::Client","aliased_html":"Quantum::Client","const":false,"namespace":{"html_id":"drivers/Lutron/Quantum","kind":"class","full_name":"Lutron::Quantum","name":"Quantum"}}]},{"html_id":"drivers/Lutron/Request","path":"Lutron/Request.html","kind":"class","full_name":"Lutron::Request","name":"Request","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L39"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(url:String,req_type:CommuniqueType=CommuniqueType::ReadRequest,body=nil,header:Hash(String,String)={}ofString=>String)-class-method","name":"new","abstract":false,"args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"args_string":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","args_html":"(url : String, req_type : CommuniqueType = CommuniqueType::ReadRequest, body = nil, header : Hash(String, String) = {} of String => String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L56"},"def":{"name":"new","args":[{"name":"url","external_name":"url","restriction":"String"},{"name":"req_type","default_value":"CommuniqueType::ReadRequest","external_name":"req_type","restriction":"CommuniqueType"},{"name":"body","default_value":"nil","external_name":"body","restriction":""},{"name":"header","default_value":"{} of String => String","external_name":"header","restriction":"::Hash(::String, ::String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(url, req_type, body, header)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(*args,**options)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args] = **options"}},{"html_id":"[]=(*args,**options,&)-instance-method","name":"[]=","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]=","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]=(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@header[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L50"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@header.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"if (__temp_1 = @body).nil?\n @body = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L48"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"header:Hash(String,String)-instance-method","name":"header","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header","return_type":"Hash(String, String)","visibility":"Public","body":"@header"}},{"html_id":"header=(header:Hash(String,String))-instance-method","name":"header=","abstract":false,"args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"args_string":"(header : Hash(String, String))","args_html":"(header : Hash(String, String))","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L45"},"def":{"name":"header=","args":[{"name":"header","external_name":"header","restriction":"Hash(String, String)"}],"visibility":"Public","body":"@header = header"}},{"html_id":"name?-instance-method","name":"name?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L52"},"def":{"name":"name?","visibility":"Public","body":"header[\"Url\"]?"}},{"html_id":"type:CommuniqueType-instance-method","name":"type","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type","return_type":"CommuniqueType","visibility":"Public","body":"if value = @type\n Lutron::CommuniqueType.parse(value)\nelse\n nil\nend"}},{"html_id":"type=(value:CommuniqueType):CommuniqueType-instance-method","name":"type=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"args_string":"(value : CommuniqueType) : CommuniqueType","args_html":"(value : CommuniqueType) : CommuniqueType","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L42"},"def":{"name":"type=","args":[{"name":"value","external_name":"value","restriction":"CommuniqueType"}],"return_type":"CommuniqueType","visibility":"Public","body":"@type = value.try(&.to_s)\nvalue\n"}}]},{"html_id":"drivers/Lutron/RoomLogic","path":"Lutron/RoomLogic.html","kind":"class","full_name":"Lutron::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/room_logic.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs","summary":"

Currently this logic driver is designed for Quantum only but ideally there should be just one Lutron room logic that handles all Lutron APIs

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_state-instance-method","name":"get_state","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L26"},"def":{"name":"get_state","visibility":"Public","body":"self[\"lighting_scene\"] = (lutron.scene?(@area_id)).get\nself[\"occupancy\"] = (lutron.occupancy_status?(@area_id)).get\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/room_logic.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/room_logic.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@area_id = setting(Int32, :lutron_area_id)\n@cron_string = setting(String, :lutron_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n get_state\nend\n"}}]},{"html_id":"drivers/Lutron/SwitchedLevel","path":"Lutron/SwitchedLevel.html","kind":"enum","full_name":"Lutron::SwitchedLevel","name":"SwitchedLevel","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L149"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"On","name":"On","value":"0"},{"id":"Off","name":"Off","value":"1"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"instance_methods":[{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L151"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L150"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"drivers/Lutron/ViveBacnet","path":"Lutron/ViveBacnet.html","kind":"class","full_name":"Lutron::ViveBacnet","name":"ViveBacnet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_bacnet.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disable_occupancy(state:Bool)-instance-method","name":"disable_occupancy","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L79"},"def":{"name":"disable_occupancy","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 7, state)).get\nself[:occupancy_disabled] = state\n"}},{"html_id":"level(percentage:Float32)-instance-method","name":"level","abstract":false,"args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"args_string":"(percentage : Float32)","args_html":"(percentage : Float32)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L67"},"def":{"name":"level","args":[{"name":"percentage","external_name":"percentage","restriction":"Float32"}],"visibility":"Public","body":"if percentage < 0.0_f32\n percentage = 0.0_f32\nend\nif percentage > 100.0_f32\n percentage = 100.0_f32\nend\n(bacnet.write_real(@device_id, 2, percentage)).get\nself[:lighting_level] = percentage\n"}},{"html_id":"lighting(state:Bool)-instance-method","name":"lighting","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L74"},"def":{"name":"lighting","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(bacnet.write_binary(@device_id, 3, state)).get\nself[:lighting] = state\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_bacnet.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@device_id = setting(UInt32, :device_id)\nsubscriptions.clear\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[2]\") do |_sub, value|\n self[:lighting_level] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[18]\") do |_sub, value|\n self[:power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.AnalogValue[19]\") do |_sub, value|\n self[:max_power_usage] = value.to_f\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[3]\") do |_sub, value|\n self[:lighting] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.BinaryValue[7]\") do |_sub, value|\n self[:occupancy_disabled] = value == \"1\"\nend\nsystem.subscribe(:BACnet, 1, \"#{@device_id}.MultiStateValue[8]\") do |_sub, value|\n @occupancy = case value\n when \"1\"\n false\n when \"2\"\n true\n else\n nil\n end\n self[:occupancy] = @occupancy\n self[:occupancy_sensor] = @occupancy.nil? ? nil : (@occupancy ? 1.0 : 0.0)\n @last_updated = Time.utc.to_unix\nend\nschedule.clear\nschedule.every((4 + (rand(3))).seconds) do\n (bacnet.update_value(@device_id, 2, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 18, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 19, \"AnalogValue\")).get\n (bacnet.update_value(@device_id, 3, \"BinaryValue\")).get\n (bacnet.update_value(@device_id, 8, \"MultiStateValue\")).get\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L111"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id == \"occupancy\"\nelse\n return nil\nend\nif mac == @device_id.to_s\nelse\n return nil\nend\nif @last_updated == 0_i64\n return nil\nend\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_bacnet.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_bacnet.cr#L90"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != @device_id.to_s)\n return NO_MATCH\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\n[Interface::Sensor::Detail.new(type: SensorType::Presence, value: @occupancy ? 1.0 : 0.0, last_seen: @last_updated, mac: @device_id.to_s, id: \"occupancy\", name: \"#{system.name}: occupancy\", module_id: module_id, binding: \"occupancy_sensor\")]\n"}}]},{"html_id":"drivers/Lutron/ViveLeap","path":"Lutron/ViveLeap.html","kind":"class","full_name":"Lutron::ViveLeap","name":"ViveLeap","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area_status?-instance-method","name":"area_status?","doc":"gets the status of all areas","summary":"

gets the status of all areas

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L85"},"def":{"name":"area_status?","visibility":"Public","body":"request = Request.new(\"/area/status\")\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"request = Request.new(\"/clientsetting\", :update_request, {ClientSetting: {ClientMajorVersion: 1}})\nsend(request.to_json, priority: 99, name: request.name?)\nschedule.every(1.minute) do\n ping\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"@sensors.clear\nschedule.clear\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n length, unpaired = 0, 0\n loop do\n case io.read_char\n when '{'\n unpaired = unpaired + 1\n when '}'\n unpaired = unpaired - 1\n when Nil\n break\n end\n length = length + 1\n if unpaired.zero?\n break\n end\n end\n unpaired.zero? && length > 0 ? length : -1\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L79"},"def":{"name":"ping","visibility":"Public","body":"request = Request.new(\"/server/status/ping\")\nsend(request.to_json, priority: 0, name: request.name?)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/lutron/vive_leap.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L142"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Lutron sent: #{data}\"\nend\nrequest = Request.from_json(data)\nurl = request[\"Url\"]?\nhttp_status = request[\"StatusCode\"]? || \"200 OK\"\nmessage_type = request[\"MessageBodyType\"]?\ncase message_type\nwhen \"OneClientSettingDefinition\"\n setting = ClientSetting.from_json(request.body)\n logger.debug do\n \"protocol version negotiated #{setting.protocol.version}, authenticating\"\n end\n authenticate\nwhen \"MultipleAreaStatus\"\n statuses = MultipleAreaStatus.from_json(request.body)\n timestamp = Time.utc.to_unix\n statuses.states.each do |status|\n base_key = status.status_key\n if status.level\n self[\"#{base_key}_level\"] = status.level\n end\n if status.occupancy\n self[\"#{base_key}_occupied\"] = status.occupancy\n @sensors[base_key] = {status.occupancy.try(&.occupied?) || false, timestamp}\n end\n end\nwhen \"MultipleZoneStatus\"\n statuses = MultipleZoneStatus.from_json(request.body)\n statuses.states.each do |status|\n set_zone(status)\n end\nwhen \"OneZoneStatus\"\n set_zone((OneZoneStatus.from_json(request.body)).status)\nwhen \"ExceptionDetail\"\n code, status = http_status.split(\" \", 2)\n details = ExceptionDetail.from_json(request.body)\n error_message = \"operation #{url} failed with #{code}: #{status}, #{details.message} [#{details.error_code}]\"\n logger.warn do\n error_message\n end\n if task && (task.name == url)\n task.abort(error_message)\n else\n return\n end\nwhen nil\n case url\n when \"/server/status/ping\"\n logger.debug do\n \"got ping response\"\n end\n end\nelse\n logger.debug do\n \"unknown message type #{message_type}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/lutron/vive_leap.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L233"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif mac == config.ip\nelse\n return nil\nend\nif id\nelse\n return nil\nend\nsensor_found = @sensors[id]?\nif sensor_found\nelse\n return nil\nend\npresence, timestamp = sensor_found\nInterface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: mac, id: id, name: \"#{system.name} #{id} occupancy\", module_id: module_id, binding: \"#{id}_occupied\")\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/lutron/vive_leap.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L213"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type && (type != \"Presence\")\n return NO_MATCH\nend\nif mac && (mac != config.ip)\n return NO_MATCH\nend\n@sensors.map do |area_id, __temp_844|\n presence, timestamp = __temp_844\n Interface::Sensor::Detail.new(type: SensorType::Presence, value: presence ? 1.0 : 0.0, last_seen: timestamp, mac: config.ip.not_nil!, id: area_id, name: \"#{system.name} #{area_id} occupancy\", module_id: module_id, binding: \"#{area_id}_occupied\")\nend\n"}},{"html_id":"zone_contact_closure(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_contact_closure","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L130"},"def":{"name":"zone_contact_closure","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToCCOLevel\", CCOLevelParameters: {CCOLevel: state ? \"Closed\" : \"Open\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_level(zone_id:String|Int32,level:Float64)-instance-method","name":"zone_level","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(zone_id : String | Int32, level : Float64)","args_html":"(zone_id : String | Int32, level : Float64)","location":{"filename":"src/lutron/vive_leap.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L106"},"def":{"name":"zone_level","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToDimmedLevel\", DimmedLevelParameters: {Level: level}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_lighting(zone_id:String|Int32,state:Bool)-instance-method","name":"zone_lighting","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(zone_id : String | Int32, state : Bool)","args_html":"(zone_id : String | Int32, state : Bool)","location":{"filename":"src/lutron/vive_leap.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L118"},"def":{"name":"zone_lighting","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | Int32"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request = Request.new(\"/zone/#{zone_id}/commandprocessor\", :create_request, {Command: {CommandType: \"GoToSwitchedLevel\", SwitchedLevelParameters: {SwitchedLevel: state ? \"On\" : \"Off\"}}})\nsend(request.to_json, name: request.name?)\n"}},{"html_id":"zone_status?-instance-method","name":"zone_status?","doc":"get the status of all zones","summary":"

get the status of all zones

","abstract":false,"location":{"filename":"src/lutron/vive_leap.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap.cr#L96"},"def":{"name":"zone_status?","visibility":"Public","body":"request = Request.new(\"/zone/status\")\nsend(request.to_json, name: request.name?)\n"}}]},{"html_id":"drivers/Lutron/ZoneStatus","path":"Lutron/ZoneStatus.html","kind":"struct","full_name":"Lutron::ZoneStatus","name":"ZoneStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/lutron/vive_leap_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L165"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Lutron","kind":"module","full_name":"Lutron","name":"Lutron"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L166"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"availability:Availability|Nil-instance-method","name":"availability","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability","return_type":"Availability | ::Nil","visibility":"Public","body":"if value = @availability\n Lutron::Availability.parse(value)\nelse\n nil\nend"}},{"html_id":"availability=(value:Availability|Nil):Availability|Nil-instance-method","name":"availability=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"args_string":"(value : Availability | Nil) : Availability | Nil","args_html":"(value : Availability | Nil) : Availability | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L177"},"def":{"name":"availability=","args":[{"name":"value","external_name":"value","restriction":"Availability | ::Nil"}],"return_type":"Availability | ::Nil","visibility":"Public","body":"@availability = value.try(&.to_s)\nvalue\n"}},{"html_id":"contact_closure:ContactClosureState|Nil-instance-method","name":"contact_closure","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure","return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"if value = @contact_closure\n Lutron::ContactClosureState.parse(value)\nelse\n nil\nend"}},{"html_id":"contact_closure=(value:ContactClosureState|Nil):ContactClosureState|Nil-instance-method","name":"contact_closure=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"args_string":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","args_html":"(value : ContactClosureState | Nil) : ContactClosureState | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L180"},"def":{"name":"contact_closure=","args":[{"name":"value","external_name":"value","restriction":"ContactClosureState | ::Nil"}],"return_type":"ContactClosureState | ::Nil","visibility":"Public","body":"@contact_closure = value.try(&.to_s)\nvalue\n"}},{"html_id":"href:String-instance-method","name":"href","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L168"},"def":{"name":"href","return_type":"String","visibility":"Public","body":"@href"}},{"html_id":"level:Float64|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L171"},"def":{"name":"level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"status_key-instance-method","name":"status_key","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L182"},"def":{"name":"status_key","visibility":"Public","body":"_blank, component, zone_id, status = href.split(\"/\", 4)\n\"#{component}#{zone_id}\"\n"}},{"html_id":"switched_level:SwitchedLevel|Nil-instance-method","name":"switched_level","abstract":false,"location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level","return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"if value = @switched_level\n Lutron::SwitchedLevel.parse(value)\nelse\n nil\nend"}},{"html_id":"switched_level=(value:SwitchedLevel|Nil):SwitchedLevel|Nil-instance-method","name":"switched_level=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"args_string":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","args_html":"(value : SwitchedLevel | Nil) : SwitchedLevel | Nil","location":{"filename":"src/lutron/vive_leap_models.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/lutron/vive_leap_models.cr#L174"},"def":{"name":"switched_level=","args":[{"name":"value","external_name":"value","restriction":"SwitchedLevel | ::Nil"}],"return_type":"SwitchedLevel | ::Nil","visibility":"Public","body":"@switched_level = value.try(&.to_s)\nvalue\n"}}]}]},{"html_id":"drivers/Mailer","path":"Mailer.html","kind":"class","full_name":"Mailer","name":"Mailer","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_spec.cr","line_number":544,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L544"},{"filename":"src/place/survey_mailer_spec.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L54"},{"filename":"src/place/template_mailer_spec.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L109"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}},{"html_id":"on_load-instance-method","name":"on_load","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"location":{"filename":"src/place/template_mailer_spec.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L112"},"def":{"name":"on_load","visibility":"Public","body":"self[:sent] = 0"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/auto_release_spec.cr","line_number":565,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L565"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L75"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/template_mailer_spec.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L131"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/auto_release_spec.cr","line_number":551,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_spec.cr#L551"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/survey_mailer_spec.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer_spec.cr#L61"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer_spec.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer_spec.cr#L116"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"self[:sent] = self[:sent].as_i + 1\ntrue\n"}}]},{"html_id":"drivers/MessageMedia","path":"MessageMedia.html","kind":"module","full_name":"MessageMedia","name":"MessageMedia","abstract":false,"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MessageMedia/SMS","path":"MessageMedia/SMS.html","kind":"class","full_name":"MessageMedia::SMS","name":"SMS","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/message_media/sms.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/MessageMedia","kind":"module","full_name":"MessageMedia","name":"MessageMedia"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/message_media/sms.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L21"},"def":{"name":"on_update","visibility":"Public","body":""}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/message_media/sms.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/message_media/sms.cr#L24"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nformat = format || \"SMS\"\nnumbers = phone_numbers.map do |number|\n payload = {:content => message, :destination_number => number, :format => format}\n if source\n payload[:source_number] = source.to_s\n payload[:source_number_type] = \"ALPHANUMERIC\"\n end\n payload\nend\nresponse = post(\"/v1/messages\", body: {messages: numbers}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nnil\n"}}]}]},{"html_id":"drivers/Microsoft","path":"Microsoft.html","kind":"module","full_name":"Microsoft","name":"Microsoft","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Microsoft/Coordinates","path":"Microsoft/Coordinates.html","kind":"class","full_name":"Microsoft::Coordinates","name":"Coordinates","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L21"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L24"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L27"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L30"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}}]},{"html_id":"drivers/Microsoft/FindMe","path":"Microsoft/FindMe.html","kind":"class","full_name":"Microsoft::FindMe","name":"FindMe","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"levels-instance-method","name":"levels","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L61"},"def":{"name":"levels","visibility":"Public","body":"data = make_request(\"GET\", \"/FindMeService/api/MeetingRooms/BuildingLevelsWithMeetingRooms\")\nlevels = Array(Microsoft::Level).from_json(data)\nbuildings = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\nend\nlevels.each do |level|\n buildings[level.building] << level.name\nend\nbuildings\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@domain = (setting?(String, :domain)) || \"\"\n"}},{"html_id":"user_details(usernames:String|Array(String))-instance-method","name":"user_details","abstract":false,"args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"args_string":"(usernames : String | Array(String))","args_html":"(usernames : String | Array(String))","location":{"filename":"src/microsoft/find_me.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L71"},"def":{"name":"user_details","args":[{"name":"usernames","external_name":"usernames","restriction":"String | Array(String)"}],"visibility":"Public","body":"users = usernames.is_a?(String) ? [usernames] : usernames\ndata = make_request(\"GET\", \"/FindMeService/api/ObjectLocation/Users/#{users.join(\",\")}?getExtendedData=true\")\n(Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\nend\n"}},{"html_id":"users_on(building:String,level:String)-instance-method","name":"users_on","abstract":false,"args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"args_string":"(building : String, level : String)","args_html":"(building : String, level : String)","location":{"filename":"src/microsoft/find_me.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me.cr#L78"},"def":{"name":"users_on","args":[{"name":"building","external_name":"building","restriction":"String"},{"name":"level","external_name":"level","restriction":"String"}],"visibility":"Public","body":"uri = \"/FindMeService/api/ObjectLocation/Level/#{building}/#{level}\"\ndata = make_request(\"GET\", uri)\nbegin\n (Array(Microsoft::Location).from_json(data)).reject do |loc|\n {\"NoRecentData\", \"NoData\"}.includes?(loc.status)\n end\nrescue error\n logger.debug do\n \"failed to parse location data\\n#{data}\"\n end\n raise(error)\nend\n"}}]},{"html_id":"drivers/Microsoft/FindMeLocationService","path":"Microsoft/FindMeLocationService.html","kind":"class","full_name":"Microsoft::FindMeLocationService","name":"FindMeLocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L91"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nactive_users_raw = (findme.user_details(mac_address)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nif user_details = active_users[0]?\n {location: user_details.located_using == \"FixedLocation\" ? \"desk\" : \"wireless\", assigned_to: user_details.user_data.not_nil!.email_address || \"\", mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L106"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfindme_details = @floor_mappings[zone_id]?\nif findme_details\nelse\n return [] of Nil\nend\nfindme_building = findme_details[:building]\nfindme_level = findme_details[:level]\nactive_users_raw = (findme.users_on(findme_building, findme_level)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nlocations = active_users.compact_map do |loc|\n build_location_response(loc, zone_id, findme_building, findme_level, location)\nend\nlocations\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L49"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocations_raw = (findme.user_details(username)).get.to_json\nlocations = Array(Microsoft::Location).from_json(locations_raw)\nlocations = locations.compact_map do |location|\n coords = location.coordinates\n if coords\n else\n next\n end\n level = findme_building = findme_level = \"\"\n @floor_mappings.each do |zone, details|\n findme_building = details[:building]\n findme_level = details[:level]\n if (findme_building == coords.building) && (findme_level == coords.level)\n level = zone\n break\n end\n end\n if level.empty?\n next\n end\n build_location_response(location, level, findme_building, findme_level)\nend\nlocations\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L78"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nactive_users_raw = (findme.user_details(username || email)).get.to_json\nactive_users = Array(Microsoft::Location).from_json(active_users_raw)\nfound = [] of String\nif user_details = active_users[0]?\n found << user_details.username\nend\nfound\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/find_me_location_service.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_location_service.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@map_id_prefix = (setting?(String, :map_id_prefix)).presence || \"table-\"\n@building_zone = setting(String, :building_zone)\n@floor_mappings = setting(Hash(String, NamedTuple(building: String, level: String)), :floor_mappings)\n@zone_filter = @floor_mappings.keys\n@s2_level = (setting?(Int32, :s2_level)) || 21\n"}}]},{"html_id":"drivers/Microsoft/GPS","path":"Microsoft/GPS.html","kind":"class","full_name":"Microsoft::GPS","name":"GPS","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L34"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L37"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L40"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}}]},{"html_id":"drivers/Microsoft/GraphAPI","path":"Microsoft/GraphAPI.html","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Microsoft/GraphAPIAdvanced","path":"Microsoft/GraphAPIAdvanced.html","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_request(path:String)-instance-method","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L41"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"get(path)"}},{"html_id":"list_managed_devices(filter_device_name:String|Nil=nil)-instance-method","name":"list_managed_devices","abstract":false,"args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"args_string":"(filter_device_name : String | Nil = nil)","args_html":"(filter_device_name : String | Nil = nil)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L77"},"def":{"name":"list_managed_devices","args":[{"name":"filter_device_name","default_value":"nil","external_name":"filter_device_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"query_params = filter_device_name ? URI::Params {\"filter\" => \"deviceName eq #{filter_device_name}\"} : nil\nresponse = get(\"/v1.0/deviceManagement/managedDevices\", query_params)\nresponse.body[\"value\"]\n"}},{"html_id":"list_users_managed_devices(user_id:String)-instance-method","name":"list_users_managed_devices","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L86"},"def":{"name":"list_users_managed_devices","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/v1.0/users/#{user_id}/managedDevices\")\nresponse.body[\"value\"]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"credentials = setting(GraphParams, :credentials)\n@client = Office365::Client.new(**credentials)\n"}},{"html_id":"post_request(path:String)-instance-method","name":"post_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L57"},"def":{"name":"post_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"post(path)"}},{"html_id":"put_request(path:String)-instance-method","name":"put_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/microsoft/graph_api_advanced.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L73"},"def":{"name":"put_request","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"put(path)"}}],"types":[{"html_id":"drivers/Microsoft/GraphAPIAdvanced/GraphParams","path":"Microsoft/GraphAPIAdvanced/GraphParams.html","kind":"alias","full_name":"Microsoft::GraphAPIAdvanced::GraphParams","name":"GraphParams","abstract":false,"locations":[{"filename":"src/microsoft/graph_api_advanced.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/graph_api_advanced.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String)","aliased_html":"{tenant: String, client_id: String, client_secret: String}","const":false,"namespace":{"html_id":"drivers/Microsoft/GraphAPIAdvanced","kind":"class","full_name":"Microsoft::GraphAPIAdvanced","name":"GraphAPIAdvanced"}}]},{"html_id":"drivers/Microsoft/Level","path":"Microsoft/Level.html","kind":"class","full_name":"Microsoft::Level","name":"Level","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L8"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"online:Int32-instance-method","name":"online","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L14"},"def":{"name":"online","return_type":"Int32","visibility":"Public","body":"@online"}}]},{"html_id":"drivers/Microsoft/Location","path":"Microsoft/Location.html","kind":"class","full_name":"Microsoft::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L62"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"doc":"Example Response:\n[{\"Alias\":\"dwatson\",\"LastUpdate\":\"2015-11-12T02:25:50.017Z\",\"Confidence\":100,\n \"Coordinates\":{\"Building\":\"SYDNEY\",\"Level\":\"2\",\"X\":76,\"Y\":29,\"LocationDescription\":\"2140\",\"MapByLocationId\":true},\n \"GPS\":{\"Latitude\":-33.796597429,\"Longitude\":151.1382508278,\"Accuracy\":0.0,\"LocationDescription\":null},\n \"LocationIdentifier\":null,\"Status\":\"Located\",\"LocatedUsing\":\"FixedLocation\",\"Type\":\"Person\",\"Comments\":null,\n \"ExtendedUserData\":{\"Alias\":\"dwatson\",\"DisplayName\":\"David Watson\",\"EmailAddress\":\"David.Watson@microsoft.com\",\"LyncSipAddress\":\"dwatson@microsoft.com\"}}]","summary":"

Example Response: [{"Alias":"dwatson","LastUpdate":"2015-11-12T02:25:50.017Z","Confidence":100, "Coordinates":{"Building":"SYDNEY","Level":"2","X":76,"Y":29,"LocationDescription":"2140","MapByLocationId":true}, "GPS":{"Latitude":-33.796597429,"Longitude":151.1382508278,"Accuracy":0.0,"LocationDescription":null}, "LocationIdentifier":null,"Status":"Located","LocatedUsing":"FixedLocation","Type":"Person","Comments":null, "ExtendedUserData":{"Alias":"dwatson","DisplayName":"David Watson","EmailAddress":"David.Watson@microsoft.com","LyncSipAddress":"dwatson@microsoft.com"}}]

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L63"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"confidence:Float64-instance-method","name":"confidence","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L85"},"def":{"name":"confidence","return_type":"Float64","visibility":"Public","body":"@confidence"}},{"html_id":"coordinates:Coordinates|Nil-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L88"},"def":{"name":"coordinates","return_type":"Coordinates | ::Nil","visibility":"Public","body":"@coordinates"}},{"html_id":"gps:GPS|Nil-instance-method","name":"gps","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L91"},"def":{"name":"gps","return_type":"GPS | ::Nil","visibility":"Public","body":"@gps"}},{"html_id":"last_update:Time-instance-method","name":"last_update","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L82"},"def":{"name":"last_update","return_type":"Time","visibility":"Public","body":"@last_update"}},{"html_id":"located_using:String|Nil-instance-method","name":"located_using","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L100"},"def":{"name":"located_using","return_type":"String | ::Nil","visibility":"Public","body":"@located_using"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L94"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L97"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"type:String|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L103"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"user_data:UserData|Nil-instance-method","name":"user_data","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L106"},"def":{"name":"user_data","return_type":"UserData | ::Nil","visibility":"Public","body":"@user_data"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L76"},"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}],"types":[{"html_id":"drivers/Microsoft/Location/RFC3339Converter","path":"Microsoft/Location/RFC3339Converter.html","kind":"module","full_name":"Microsoft::Location::RFC3339Converter","name":"RFC3339Converter","abstract":false,"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L65"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Microsoft/Location","kind":"class","full_name":"Microsoft::Location","name":"Location"},"class_methods":[{"html_id":"from_json(value:JSON::PullParser):Time-class-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser) : Time","args_html":"(value : JSON::PullParser) : Time","location":{"filename":"src/microsoft/find_me_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L66"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"return_type":"Time","visibility":"Public","body":"Time::Format::RFC_3339.parse(value.read_string)"}},{"html_id":"to_json(value:Time,json:JSON::Builder)-class-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value : Time, json : JSON::Builder)","args_html":"(value : Time, json : JSON::Builder)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L70"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":"Time"},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(Time::Format::RFC_3339.format(value, 1))"}}]}]},{"html_id":"drivers/Microsoft/UserData","path":"Microsoft/UserData.html","kind":"class","full_name":"Microsoft::UserData","name":"UserData","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/microsoft/find_me_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L43"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Microsoft","kind":"module","full_name":"Microsoft","name":"Microsoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/microsoft/find_me_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L44"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L50"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"email_address:String|Nil-instance-method","name":"email_address","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L53"},"def":{"name":"email_address","return_type":"String | ::Nil","visibility":"Public","body":"@email_address"}},{"html_id":"username:String|Nil-instance-method","name":"username","abstract":false,"location":{"filename":"src/microsoft/find_me_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/microsoft/find_me_models.cr#L47"},"def":{"name":"username","return_type":"String | ::Nil","visibility":"Public","body":"@username"}}]}]},{"html_id":"drivers/MuleSoft","path":"MuleSoft.html","kind":"module","full_name":"MuleSoft","name":"MuleSoft","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/MuleSoft/Booking","path":"MuleSoft/Booking.html","kind":"class","full_name":"MuleSoft::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L3"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"body:String-instance-method","name":"body","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L9"},"def":{"name":"body","return_type":"String","visibility":"Public","body":"@body"}},{"html_id":"body=(body:String)-instance-method","name":"body=","abstract":false,"args":[{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(body : String)","args_html":"(body : String)","location":{"filename":"src/mulesoft/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L9"},"def":{"name":"body=","args":[{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"@body = body"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L18"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L18"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L15"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L15"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L20"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/mulesoft/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L20"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L12"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L6"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/mulesoft/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L6"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"to_placeos-instance-method","name":"to_placeos","doc":"we need this method to create an intermediary hash\notherwise when to_json is called all the field names revert to the MuleSoft ones","summary":"

we need this method to create an intermediary hash otherwise when to_json is called all the field names revert to the MuleSoft ones

","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L24"},"def":{"name":"to_placeos","visibility":"Public","body":"value = {\"title\" => @title, \"body\" => @body, \"recurring_master_id\" => @recurring_master_id, \"event_start\" => @event_start, \"event_end\" => @event_end, \"location\" => @location}"}}]},{"html_id":"drivers/MuleSoft/BookingResults","path":"MuleSoft/BookingResults.html","kind":"class","full_name":"MuleSoft::BookingResults","name":"BookingResults","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L36"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L37"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookings:Array(Booking)-instance-method","name":"bookings","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L47"},"def":{"name":"bookings","return_type":"Array(Booking)","visibility":"Public","body":"@bookings"}},{"html_id":"bookings=(bookings:Array(Booking))-instance-method","name":"bookings=","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/mulesoft/models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L47"},"def":{"name":"bookings=","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"@bookings = bookings"}},{"html_id":"count:Int64-instance-method","name":"count","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L39"},"def":{"name":"count","return_type":"Int64","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int64)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int64"}],"args_string":"(count : Int64)","args_html":"(count : Int64)","location":{"filename":"src/mulesoft/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L39"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int64"}],"visibility":"Public","body":"@count = count"}},{"html_id":"venue_code:String-instance-method","name":"venue_code","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code","return_type":"String","visibility":"Public","body":"@venue_code"}},{"html_id":"venue_code=(venue_code:String)-instance-method","name":"venue_code=","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"args_string":"(venue_code : String)","args_html":"(venue_code : String)","location":{"filename":"src/mulesoft/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L42"},"def":{"name":"venue_code=","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"}],"visibility":"Public","body":"@venue_code = venue_code"}},{"html_id":"venue_name:String-instance-method","name":"venue_name","abstract":false,"location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name","return_type":"String","visibility":"Public","body":"@venue_name"}},{"html_id":"venue_name=(venue_name:String)-instance-method","name":"venue_name=","abstract":false,"args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"args_string":"(venue_name : String)","args_html":"(venue_name : String)","location":{"filename":"src/mulesoft/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L45"},"def":{"name":"venue_name=","args":[{"name":"venue_name","external_name":"venue_name","restriction":"String"}],"visibility":"Public","body":"@venue_name = venue_name"}}]},{"html_id":"drivers/MuleSoft/BookingsAPI","path":"MuleSoft/BookingsAPI.html","kind":"class","full_name":"MuleSoft::BookingsAPI","name":"BookingsAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/booking_api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_current_booking-instance-method","name":"check_current_booking","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L78"},"def":{"name":"check_current_booking","visibility":"Public","body":"now = Time.utc.to_unix\nprevious_booking = nil\ncurrent_booking = nil\nnext_booking = Int32::MAX\n@bookings.each_with_index do |event, index|\n starting = event.event_start\n if starting > now\n next_booking = index\n if index > 0\n previous_booking = index - 1\n end\n break\n end\n ending_unix = event.event_end\n if ending_unix < now\n next\n end\n if starting <= now && ending_unix > now\n current_booking = index\n if index > 0\n previous_booking = index - 1\n end\n next_booking = index + 1\n break\n end\nend\nif next_booking >= (@bookings.size - 1)\n next_booking = nil\nend\nself[:previous_booking] = previous_booking ? @bookings[previous_booking].to_placeos : nil\nself[:current_booking] = current_booking ? @bookings[current_booking].to_placeos : nil\nself[:next_booking] = next_booking ? @bookings[next_booking].to_placeos : nil\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/booking_api.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L36"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@running_a_spec = !!(setting(Bool, :running_a_spec))\n@username = setting(String, :username)\n@password = setting(String, :password)\n@basic_auth_enabled = !!(setting?(Bool, :basic_auth_enabled))\nlogger.debug do\n \"basic_auth_enabled is #{@basic_auth_enabled}\"\nend\n@base_path = setting(String, :base_path)\n@venue_code = setting(String, :venue_code)\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\ntime_zone = (setting?(String, :time_zone)).presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@ssl_auth_enabled = !!(setting?(Bool, :ssl_auth_enabled))\nif @ssl_auth_enabled\n save_ssl_credentials\nend\nlogger.debug do\n \"ssl_auth_enabled is #{@ssl_auth_enabled}\"\nend\nschedule.in((Random.rand(60)).seconds + (Random.rand(1000)).milliseconds) do\n poll_bookings\nend\ncron_string = (setting?(String, :polling_cron)).presence || \"*/30 7-20 * * *\"\nschedule.cron(cron_string, @time_zone) do\n poll_bookings(random_delay: true)\nend\n"}},{"html_id":"poll_bookings(random_delay:Bool=false)-instance-method","name":"poll_bookings","abstract":false,"args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"args_string":"(random_delay : Bool = false)","args_html":"(random_delay : Bool = false)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L63"},"def":{"name":"poll_bookings","args":[{"name":"random_delay","default_value":"false","external_name":"random_delay","restriction":"Bool"}],"visibility":"Public","body":"now = Time.local(@time_zone)\nfrom = now - 1.week\nto = now + 1.week\nlogger.debug do\n \"polling bookings #{@venue_code}, from #{from}, to #{to}, in #{@time_zone.name}\"\nend\nif random_delay\n logger.debug do\n \"random delay of <30seconds to reduce instantaneous Mulesoft API load\"\n end\n sleep(Random.rand(30.0))\nend\nquery_bookings(@venue_code, from, to)\ncheck_current_booking\n"}},{"html_id":"query_bookings(venue_code:String,starts_at:Time=Time.local.at_beginning_of_day,ends_at:Time=Time.local.at_end_of_day)-instance-method","name":"query_bookings","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"args_string":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","args_html":"(venue_code : String, starts_at : Time = Time.local.at_beginning_of_day, ends_at : Time = Time.local.at_end_of_day)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L118"},"def":{"name":"query_bookings","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","default_value":"Time.local.at_beginning_of_day","external_name":"starts_at","restriction":"Time"},{"name":"ends_at","default_value":"Time.local.at_end_of_day","external_name":"ends_at","restriction":"Time"}],"visibility":"Public","body":"client = HTTP::Client.new(host: @host, tls: (@ssl_auth_enabled ? @context : nil))\nparams = {\"startDateTime\" => starts_at.to_s(\"%FT%T\"), \"endDateTime\" => ends_at.to_s(\"%FT%T\")}.join('&') do |k, v|\n \"#{k}=#{v}\"\nend\nheaders = HTTP::Headers {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\"}\nif @basic_auth_enabled\n headers.add(\"Authorization\", \"Basic #{Base64.strict_encode(\"#{@username}:#{@password}\")}\")\nend\nif @running_a_spec\n response = get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nelse\n response = client.get(\"#{@base_path}/venues/#{venue_code}/bookings?#{params}\", headers: headers)\nend\nif (200...300).includes?(response.status_code)\nelse\n raise(\"request failed with #{response.status_code}: #{response.body}\")\nend\nif response.body.presence != nil\n results = BookingResults.from_json(response.body)\n self[:venue_code] = results.venue_code\n self[:venue_name] = results.venue_name\n @bookings = results.bookings.sort do |a, b|\n a.event_start <=> b.event_start\n end\n self[:bookings] = @bookings.map(&.to_placeos)\nelse\n self[:venue_code] = nil\n self[:venue_name] = nil\n self[:bookings] = nil\nend\n"}},{"html_id":"query_bookings_epoch(venue_code:String,starts_at:Int32,ends_at:Int32)-instance-method","name":"query_bookings_epoch","abstract":false,"args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"args_string":"(venue_code : String, starts_at : Int32, ends_at : Int32)","args_html":"(venue_code : String, starts_at : Int32, ends_at : Int32)","location":{"filename":"src/mulesoft/booking_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/booking_api.cr#L159"},"def":{"name":"query_bookings_epoch","args":[{"name":"venue_code","external_name":"venue_code","restriction":"String"},{"name":"starts_at","external_name":"starts_at","restriction":"Int32"},{"name":"ends_at","external_name":"ends_at","restriction":"Int32"}],"visibility":"Public","body":"query_bookings(venue_code, Time.unix(starts_at), Time.unix(ends_at))"}}]},{"html_id":"drivers/MuleSoft/CalendarExporter","path":"MuleSoft/CalendarExporter.html","kind":"class","full_name":"MuleSoft::CalendarExporter","name":"CalendarExporter","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/mulesoft/calendar_exporter.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"delete_all_events(past_days:Int32=14,future_days:Int32=14)-instance-method","name":"delete_all_events","abstract":false,"args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"args_string":"(past_days : Int32 = 14, future_days : Int32 = 14)","args_html":"(past_days : Int32 = 14, future_days : Int32 = 14)","location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L137"},"def":{"name":"delete_all_events","args":[{"name":"past_days","default_value":"14","external_name":"past_days","restriction":"Int32"},{"name":"future_days","default_value":"14","external_name":"future_days","restriction":"Int32"}],"visibility":"Public","body":"events = fetch_events(past_span: past_days.days, future_span: future_days.days)\nevent_ids = events.map do |e|\n e[\"id\"]\nend\nevent_ids.each do |event_id|\n calendar.delete_event(calendar_id: system.email.not_nil!, event_id: event_id)\nend\n\"Deleted #{event_ids.size} events\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L24"},"def":{"name":"on_load","visibility":"Public","body":"@just_this_system = {email: system.email.not_nil!, name: system.name}\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\n@time_zone_string = (setting?(String, :calendar_time_zone)).presence\nif @time_zone_string\n @time_zone = Time::Location.load(@time_zone_string.not_nil!)\nend\nself[:timezone] = Time.local.to_s\nsubscription = system.subscribe(:Bookings_1, :bookings) do |_subscription, mulesoft_bookings|\n logger.debug do\n \"DETECTED changed in Mulesoft Bookings..\"\n end\n latest_bookings : Array(Hash(String, Int64 | String | Nil)) = [] of Hash(String, Int64 | String | Nil)\n latest_bookings = Array(Hash(String, Int64 | String | Nil)).from_json(mulesoft_bookings)\n logger.debug do\n \"#{latest_bookings.size} bookings in total\"\n end\n removed_bookings = @bookings - latest_bookings\n now = Time.utc.to_unix\n deleted_bookings = removed_bookings.reject do |b|\n b[\"event_end\"].not_nil!.to_i64 < now\n end\n update_events\n deleted_bookings.each do |b|\n delete_matching_event(b)\n end\n @bookings = latest_bookings\n @bookings.each do |b|\n export_booking(b)\n end\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L63"},"def":{"name":"status","visibility":"Public","body":"{bookings: @bookings, events: @existing_events, deleted_events: @deleted_events}"}},{"html_id":"update_events-instance-method","name":"update_events","abstract":false,"location":{"filename":"src/mulesoft/calendar_exporter.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/calendar_exporter.cr#L71"},"def":{"name":"update_events","visibility":"Public","body":"logger.debug do\n \"FETCHING existing Calendar events...\"\nend\n@existing_events = fetch_events()\nlogger.debug do\n \"#{@existing_events.size} events in total\"\nend\n"}}]},{"html_id":"drivers/MuleSoft/DateTimeConvertor","path":"MuleSoft/DateTimeConvertor.html","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor","abstract":false,"locations":[{"filename":"src/mulesoft/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/MuleSoft/DateTimeConvertor","kind":"module","full_name":"MuleSoft::DateTimeConvertor","name":"DateTimeConvertor"}],"namespace":{"html_id":"drivers/MuleSoft","kind":"module","full_name":"MuleSoft","name":"MuleSoft"},"instance_methods":[{"html_id":"from_json(pull:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/mulesoft/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L57"},"def":{"name":"from_json","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(Time.parse(pull.read_string, \"%FT%T\", Time::Location.local)).to_unix"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/mulesoft/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/mulesoft/models.cr#L53"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string((Time.unix(value)).to_local.to_s(\"%FT%T\"))"}}]}]},{"html_id":"drivers/Nec","path":"Nec.html","kind":"module","full_name":"Nec","name":"Nec","abstract":false,"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Nec/Display","path":"Nec/Display.html","kind":"class","full_name":"Nec::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"13_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_input(priority:Int32=0)-instance-method","name":"audio_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"audio_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AudioInput), priority: priority, name: \"audio_input\")"}},{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L105"},"def":{"name":"auto_adjust","visibility":"Public","body":"data = MsgType::SetParameter.build(Command::AutoSetup, 1)\nsend(data, name: \"auto_adjust\")\n"}},{"html_id":"auto_setup(priority:Int32=0)-instance-method","name":"auto_setup","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"auto_setup","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::AutoSetup), priority: priority, name: \"auto_setup\")"}},{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L110"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::BrightnessStatus, val.clamp(0, 100))\nsend(data, name: \"brightness\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"brightness_status(priority:Int32=0)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::BrightnessStatus), priority: priority, name: \"brightness_status\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L45"},"def":{"name":"connected","visibility":"Public","body":"schedule.clear\nschedule.every(50.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/nec/display.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L116"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"data = MsgType::SetParameter.build(Command::ContrastStatus, val.clamp(0, 100))\nsend(data, name: \"contrast\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"contrast_status(priority:Int32=0)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::ContrastStatus), priority: priority, name: \"contrast_status\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L147"},"def":{"name":"do_poll","visibility":"Public","body":"current_power = power?(priority: 0)\nlogger.debug do\n \"Polling, power = #{current_power}\"\nend\nif current_power\n mute_status\n video_input\nend\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/nec/display.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L139"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"logger.debug do\n \"requested to update mute to #{state}\"\nend\ndata = MsgType::SetParameter.build(Command::MuteStatus, state ? 1 : 0)\nresp = send(data, name: \"mute_audio\")\nresp\n"}},{"html_id":"mute_status(priority:Int32=0)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::MuteStatus), priority: priority, name: \"mute_status\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L38"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 120.milliseconds\nqueue.timeout = 5.seconds\ntransport.tokenizer = Tokenizer.new(Bytes[DELIMITER])\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/display.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:power]? == state\n return\nend\nif state\n logger.debug do\n \"requested to power on\"\n end\n data = MsgType::Command.build(Command::SetPower, 1)\n send(data, name: \"power\", delay: 5.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n data = MsgType::Command.build(Command::SetPower, 4)\n send(data, name: \"power\", delay: 10.seconds, timeout: 10.seconds)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L73"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"data = MsgType::Command.build(Command::PowerQuery)\n(send(data, **options, name: \"power?\")).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerOnDelay), priority: priority, name: \"power_on_delay\")"}},{"html_id":"power_query(priority:Int32=0)-instance-method","name":"power_query","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"power_query","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::PowerQuery), priority: priority, name: \"power_query\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/display.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L157"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"NEC sent: 0x#{data.hexstring}\"\nend\nheader = data[0..6]\nmessage = data[7..-3]\nchecksum = data[-2]\nbegin\n case MsgType.from_value(header[4])\n when .command_reply?\n parse_command_reply(message)\n when .get_parameter_reply?, .set_parameter_reply?\n parse_response(message)\n else\n raise(\"unknown message type\")\n end\nrescue e\n logger.warn(exception: e) do\n \"processing response\"\n end\n task.try(&.abort(e.message))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save(priority:Int32=0)-instance-method","name":"save","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"save","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::Save), priority: priority, name: \"save\")"}},{"html_id":"set_power(priority:Int32=0)-instance-method","name":"set_power","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"set_power","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::SetPower), priority: priority, name: \"set_power\")"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/display.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L99"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch audio to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::AudioInput, input.value)\nsend(data, name: \"audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/display.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L79"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndata = MsgType::SetParameter.build(Command::VideoInput, input.value)\nsend(data, name: \"input\", delay: 6.seconds)\n"}},{"html_id":"video_input(priority:Int32=0)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VideoInput), priority: priority, name: \"video_input\")"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/nec/display.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L122"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\ndata = MsgType::SetParameter.build(Command::VolumeStatus, val)\nsend(data, name: \"volume\")\nsend(MsgType::Command.build(Command::Save), name: \"save\", priority: 0)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L134"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/nec/display.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L272"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"send(MsgType::GetParameter.build(Command::VolumeStatus), priority: priority, name: \"volume_status\")"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L129"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Display/Audio","path":"Nec/Display/Audio.html","kind":"enum","full_name":"Nec::Display::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Audio1","name":"Audio1","value":"1"},{"id":"Audio2","name":"Audio2","value":"2"},{"id":"Audio3","name":"Audio3","value":"3"},{"id":"Hdmi","name":"Hdmi","value":"4"},{"id":"Tv","name":"Tv","value":"6"},{"id":"DisplayPort1","name":"DisplayPort1","value":"7"},{"id":"DisplayPort2","name":"DisplayPort2","value":"8"},{"id":"Hdmi2","name":"Hdmi2","value":"10"},{"id":"Hdmi3","name":"Hdmi3","value":"11"},{"id":"MultiPicture","name":"MultiPicture","value":"13"},{"id":"ComputeModule","name":"ComputeModule","value":"14"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio1?-instance-method","name":"audio1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L86"},"def":{"name":"audio1?","visibility":"Public","body":"self == Audio1"}},{"html_id":"audio2?-instance-method","name":"audio2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L87"},"def":{"name":"audio2?","visibility":"Public","body":"self == Audio2"}},{"html_id":"audio3?-instance-method","name":"audio3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L88"},"def":{"name":"audio3?","visibility":"Public","body":"self == Audio3"}},{"html_id":"compute_module?-instance-method","name":"compute_module?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L96"},"def":{"name":"compute_module?","visibility":"Public","body":"self == ComputeModule"}},{"html_id":"display_port1?-instance-method","name":"display_port1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L91"},"def":{"name":"display_port1?","visibility":"Public","body":"self == DisplayPort1"}},{"html_id":"display_port2?-instance-method","name":"display_port2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L92"},"def":{"name":"display_port2?","visibility":"Public","body":"self == DisplayPort2"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L93"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L94"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L89"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"multi_picture?-instance-method","name":"multi_picture?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L95"},"def":{"name":"multi_picture?","visibility":"Public","body":"self == MultiPicture"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L90"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}}]},{"html_id":"drivers/Nec/Display/Command","path":"Nec/Display/Command.html","kind":"enum","full_name":"Nec::Display::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L246"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VideoInput","name":"VideoInput","value":"96"},{"id":"AudioInput","name":"AudioInput","value":"558"},{"id":"VolumeStatus","name":"VolumeStatus","value":"98"},{"id":"MuteStatus","name":"MuteStatus","value":"141"},{"id":"PowerOnDelay","name":"PowerOnDelay","value":"728"},{"id":"ContrastStatus","name":"ContrastStatus","value":"18"},{"id":"BrightnessStatus","name":"BrightnessStatus","value":"16"},{"id":"AutoSetup","name":"AutoSetup","value":"30"},{"id":"PowerQuery","name":"PowerQuery","value":"470"},{"id":"Save","name":"Save","value":"12"},{"id":"SetPower","name":"SetPower","value":"12714966"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"audio_input?-instance-method","name":"audio_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L248"},"def":{"name":"audio_input?","visibility":"Public","body":"self == AudioInput"}},{"html_id":"auto_setup?-instance-method","name":"auto_setup?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L254"},"def":{"name":"auto_setup?","visibility":"Public","body":"self == AutoSetup"}},{"html_id":"brightness_status?-instance-method","name":"brightness_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L253"},"def":{"name":"brightness_status?","visibility":"Public","body":"self == BrightnessStatus"}},{"html_id":"contrast_status?-instance-method","name":"contrast_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L252"},"def":{"name":"contrast_status?","visibility":"Public","body":"self == ContrastStatus"}},{"html_id":"mute_status?-instance-method","name":"mute_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L250"},"def":{"name":"mute_status?","visibility":"Public","body":"self == MuteStatus"}},{"html_id":"power_on_delay?-instance-method","name":"power_on_delay?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L251"},"def":{"name":"power_on_delay?","visibility":"Public","body":"self == PowerOnDelay"}},{"html_id":"power_query?-instance-method","name":"power_query?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L255"},"def":{"name":"power_query?","visibility":"Public","body":"self == PowerQuery"}},{"html_id":"save?-instance-method","name":"save?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L256"},"def":{"name":"save?","visibility":"Public","body":"self == Save"}},{"html_id":"set_power?-instance-method","name":"set_power?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L257"},"def":{"name":"set_power?","visibility":"Public","body":"self == SetPower"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L259"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"case self\nwhen .save?\n length = 2\nwhen .set_power?\n length = 6\nelse\n length = 4\nend\n(value.to_s(16, upcase: true)).rjust(length, '0')\n"}},{"html_id":"video_input?-instance-method","name":"video_input?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L247"},"def":{"name":"video_input?","visibility":"Public","body":"self == VideoInput"}},{"html_id":"volume_status?-instance-method","name":"volume_status?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L249"},"def":{"name":"volume_status?","visibility":"Public","body":"self == VolumeStatus"}}]},{"html_id":"drivers/Nec/Display/Input","path":"Nec/Display/Input.html","kind":"enum","full_name":"Nec::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"1"},{"id":"Rgbhv","name":"Rgbhv","value":"2"},{"id":"Dvi","name":"Dvi","value":"3"},{"id":"HdmiSet","name":"HdmiSet","value":"4"},{"id":"Video1","name":"Video1","value":"5"},{"id":"Video2","name":"Video2","value":"6"},{"id":"Svideo","name":"Svideo","value":"7"},{"id":"Tuner","name":"Tuner","value":"9"},{"id":"Tv","name":"Tv","value":"10"},{"id":"Dvd1","name":"Dvd1","value":"12"},{"id":"Option","name":"Option","value":"13"},{"id":"Dvd2","name":"Dvd2","value":"14"},{"id":"DisplayPort","name":"DisplayPort","value":"15"},{"id":"Hdmi","name":"Hdmi","value":"17"},{"id":"Hdmi2","name":"Hdmi2","value":"18"},{"id":"Hdmi3","name":"Hdmi3","value":"130"},{"id":"Usb","name":"Usb","value":"135"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L23"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvd1?-instance-method","name":"dvd1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L20"},"def":{"name":"dvd1?","visibility":"Public","body":"self == Dvd1"}},{"html_id":"dvd2?-instance-method","name":"dvd2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L22"},"def":{"name":"dvd2?","visibility":"Public","body":"self == Dvd2"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L25"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L26"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L24"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_set?-instance-method","name":"hdmi_set?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L14"},"def":{"name":"hdmi_set?","visibility":"Public","body":"self == HdmiSet"}},{"html_id":"option?-instance-method","name":"option?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L21"},"def":{"name":"option?","visibility":"Public","body":"self == Option"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == Rgbhv"}},{"html_id":"svideo?-instance-method","name":"svideo?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L17"},"def":{"name":"svideo?","visibility":"Public","body":"self == Svideo"}},{"html_id":"tuner?-instance-method","name":"tuner?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L18"},"def":{"name":"tuner?","visibility":"Public","body":"self == Tuner"}},{"html_id":"tv?-instance-method","name":"tv?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L19"},"def":{"name":"tv?","visibility":"Public","body":"self == Tv"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L27"},"def":{"name":"usb?","visibility":"Public","body":"self == Usb"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"video1?-instance-method","name":"video1?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L15"},"def":{"name":"video1?","visibility":"Public","body":"self == Video1"}},{"html_id":"video2?-instance-method","name":"video2?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L16"},"def":{"name":"video2?","visibility":"Public","body":"self == Video2"}}]},{"html_id":"drivers/Nec/Display/MsgType","path":"Nec/Display/MsgType.html","kind":"enum","full_name":"Nec::Display::MsgType","name":"MsgType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/display.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L280"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"65_u8"},{"id":"CommandReply","name":"CommandReply","value":"66_u8"},{"id":"GetParameter","name":"GetParameter","value":"67_u8"},{"id":"GetParameterReply","name":"GetParameterReply","value":"68_u8"},{"id":"SetParameter","name":"SetParameter","value":"69_u8"},{"id":"SetParameterReply","name":"SetParameterReply","value":"70_u8"}],"namespace":{"html_id":"drivers/Nec/Display","kind":"class","full_name":"Nec::Display","name":"Display"},"doc":"Types of messages sent to and from the LCD","summary":"

Types of messages sent to and from the LCD

","instance_methods":[{"html_id":"build(command:Nec::Display::Command,data:Int|Nil=nil)-instance-method","name":"build","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"args_string":"(command : Nec::Display::Command, data : Int | Nil = nil)","args_html":"(command : Nec::Display::Command, data : Int | Nil = nil)","location":{"filename":"src/nec/display.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L288"},"def":{"name":"build","args":[{"name":"command","external_name":"command","restriction":"Nec::Display::Command"},{"name":"data","default_value":"nil","external_name":"data","restriction":"Int | ::Nil"}],"visibility":"Public","body":"command = command.to_s\nmessage = String.build do |str|\n str << \"0*0\"\n str.write_byte(self.value)\n message_length = command.size + 2\n if data\n message_length = message_length + 4\n end\n str << ((message_length.to_s(16, upcase: true)).rjust(2, '0'))\n str.write_byte(2)\n str << command\n if data\n str << ((data.to_s(16, upcase: true)).rjust(4, '0'))\n end\n str.write_byte(3)\nend\nString.build do |str|\n str.write_byte(1)\n str << message\n str.write_byte(message.each_byte.reduce do |a, b|\n a ^ b\n end)\n str.write_byte(DELIMITER)\nend\n"}},{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L281"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"command_reply?-instance-method","name":"command_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L282"},"def":{"name":"command_reply?","visibility":"Public","body":"self == CommandReply"}},{"html_id":"get_parameter?-instance-method","name":"get_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L283"},"def":{"name":"get_parameter?","visibility":"Public","body":"self == GetParameter"}},{"html_id":"get_parameter_reply?-instance-method","name":"get_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L284"},"def":{"name":"get_parameter_reply?","visibility":"Public","body":"self == GetParameterReply"}},{"html_id":"set_parameter?-instance-method","name":"set_parameter?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L285"},"def":{"name":"set_parameter?","visibility":"Public","body":"self == SetParameter"}},{"html_id":"set_parameter_reply?-instance-method","name":"set_parameter_reply?","abstract":false,"location":{"filename":"src/nec/display.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/display.cr#L286"},"def":{"name":"set_parameter_reply?","visibility":"Public","body":"self == SetParameterReply"}}]}]},{"html_id":"drivers/Nec/Projector","path":"Nec/Projector.html","kind":"class","full_name":"Nec::Projector","name":"Projector","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMAND","name":"COMMAND","value":"{mute_picture: Bytes[2, 16, 0, 0, 0, 18], unmute_picture: Bytes[2, 17, 0, 0, 0, 19], mute_audio_cmd: Bytes[2, 18, 0, 0, 0, 20], unmute_audio_cmd: Bytes[2, 19, 0, 0, 0, 21], mute_onscreen: Bytes[2, 20, 0, 0, 0, 22], unmute_onscreen: Bytes[2, 21, 0, 0, 0, 23], freeze_picture: Bytes[1, 152, 0, 0, 1, 1], unfreeze_picture: Bytes[1, 152, 0, 0, 1, 2], \"lamp?\": Bytes[0, 129, 0, 0, 0, 129], \"input?\": Bytes[0, 133, 0, 0, 1, 2], \"mute?\": Bytes[0, 133, 0, 0, 1, 3], \"error?\": Bytes[0, 136, 0, 0, 0, 136], \"model?\": Bytes[0, 133, 0, 0, 1, 4], lamp_info: Bytes[3, 138, 0, 0, 0, 141], filter_info: Bytes[3, 138, 0, 0, 0, 141], projector_info: Bytes[3, 138, 0, 0, 0, 141], background_black: Bytes[3, 177, 0, 0, 2, 11, 1], background_blue: Bytes[3, 177, 0, 0, 2, 11, 0], background_logo: Bytes[3, 177, 0, 0, 2, 11, 2]}","doc":"Command Listing\nSecond byte used to detect command type","summary":"

Command Listing Second byte used to detect command type

"},{"id":"ERROR_CODES","name":"ERROR_CODES","value":"[{1 => \"Lamp cover error\", 2 => \"Temperature error (Bimetal)\", 8 => \"Fan Error\", 16 => \"Fan Error\", 32 => \"Power Error\", 64 => \"Lamp Error\", 128 => \"Lamp has reached its end of life\"}, {1 => \"Lamp has been used beyond its limit\", 2 => \"Formatter error\", 4 => \"Lamp no.2 Error\"}, {2 => \"FPGA error\", 4 => \"Temperature error (Sensor)\", 8 => \"Lamp housing error\", 16 => \"Lamp data error\", 32 => \"Mirror cover error\", 64 => \"Lamp no.2 has reached its end of life\", 128 => \"Lamp no.2 has been used beyond its limit\"}, {1 => \"Lamp no.2 housing error\", 2 => \"Lamp no.2 data error\", 4 => \"High temperature due to dust pile-up\", 8 => \"A foreign object sensor error\"}]","doc":"Provide all the error info required","summary":"

Provide all the error info required

"},{"id":"INPUT_MAP","name":"INPUT_MAP","value":"{1 => {1 => Input::VGA, 2 => Input::Composite, 3 => Input::SVideo, 6 => Input::HDMI, 7 => Input::Viewer, 33 => Input::HDMI, 34 => Input::DisplayPort}, 2 => {1 => Input::RGBHV, 4 => Input::Component2, 6 => Input::HDMI2, 7 => Input::LAN, 33 => Input::HDMI2}, 3 => {4 => Input::Component}}","doc":"NEC has different values for the input status when compared to input selection","summary":"

NEC has different values for the input status when compared to input selection

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Nec","kind":"module","full_name":"Nec","name":"Nec"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"background_black(**options)-instance-method","name":"background_black","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_black","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_black\"], **options, name: \"background_black\")"}},{"html_id":"background_blue(**options)-instance-method","name":"background_blue","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_blue","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_blue\"], **options, name: \"background_blue\")"}},{"html_id":"background_logo(**options)-instance-method","name":"background_logo","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"background_logo","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"background_logo\"], **options, name: \"background_logo\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(50.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L59"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:power] = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L196"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?(priority: 0)\n background_black(priority: 0)\n lamp_info(priority: 0)\nend"}},{"html_id":"error?(**options)-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"error?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"error?\"], **options, name: \"error?\")"}},{"html_id":"filter_info(**options)-instance-method","name":"filter_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"filter_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"filter_info\"], **options, name: \"filter_info\")"}},{"html_id":"freeze_picture(**options)-instance-method","name":"freeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"freeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"freeze_picture\"], **options, name: \"freeze_picture\")"}},{"html_id":"input?(**options)-instance-method","name":"input?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"input?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"input?\"], **options, name: \"input?\")"}},{"html_id":"lamp?(**options)-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"lamp?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp?\"], **options, name: \"lamp?\")"}},{"html_id":"lamp_info(**options)-instance-method","name":"lamp_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"lamp_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"lamp_info\"], **options, name: \"lamp_info\")"}},{"html_id":"model?(**options)-instance-method","name":"model?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"model?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"model?\"], **options, name: \"model?\")"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/nec/np_series.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L128"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n if state\n mute_picture\n mute_onscreen\n else\n unmute_picture\n end\nend\nif layer.audio? || layer.audio_video?\n state ? mute_audio_cmd : unmute_audio_cmd\nend\n"}},{"html_id":"mute?(**options)-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute?\"], **options, name: \"mute?\")"}},{"html_id":"mute_audio_cmd(**options)-instance-method","name":"mute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_audio_cmd\"], **options, name: \"mute_audio_cmd\")"}},{"html_id":"mute_onscreen(**options)-instance-method","name":"mute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_onscreen\"], **options, name: \"mute_onscreen\")"}},{"html_id":"mute_picture(**options)-instance-method","name":"mute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"mute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"mute_picture\"], **options, name: \"mute_picture\")"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L41"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\nself[:error] = [] of String\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@power_target = nil\n@input_target = nil\n@volume_min = setting(Int32, :volume_min)\n@volume_max = setting(Int32, :volume_max)\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/nec/np_series.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L165"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n command = Bytes[2, 0, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 15.seconds, delay: 1.second)\nelse\n command = Bytes[2, 1, 0, 0, 0]\n do_send(command, name: \"power\", timeout: 60.seconds, delay: 30.seconds, clear_queue: true, priority: 100)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L185"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(COMMAND[:\"lamp?\"], **options, name: \"power?\")).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"projector_info(**options)-instance-method","name":"projector_info","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"projector_info","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"projector_info\"], **options, name: \"projector_info\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/nec/np_series.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L302"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(data, task)"}},{"html_id":"switch_audio(input:Audio)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Audio"}],"args_string":"(input : Audio)","args_html":"(input : Audio)","location":{"filename":"src/nec/np_series.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L159"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"Audio"}],"visibility":"Public","body":"command = Bytes[3, 177, 0, 0, 2, 192, input.value]\ndo_send(command, name: \"switch_audio\")\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/nec/np_series.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L190"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"@input_target = input\ncommand = Bytes[2, 3, 0, 0, 2, 1, input.value]\ndo_send(command, name: \"input\")\n"}},{"html_id":"unfreeze_picture(**options)-instance-method","name":"unfreeze_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unfreeze_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unfreeze_picture\"], **options, name: \"unfreeze_picture\")"}},{"html_id":"unmute_audio_cmd(**options)-instance-method","name":"unmute_audio_cmd","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_audio_cmd","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_audio_cmd\"], **options, name: \"unmute_audio_cmd\")"}},{"html_id":"unmute_onscreen(**options)-instance-method","name":"unmute_onscreen","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_onscreen","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_onscreen\"], **options, name: \"unmute_onscreen\")"}},{"html_id":"unmute_picture(**options)-instance-method","name":"unmute_picture","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L97"},"def":{"name":"unmute_picture","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(COMMAND[\"unmute_picture\"], **options, name: \"unmute_picture\")"}},{"html_id":"volume(vol:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"args_string":"(vol : Int32 | Float64)","args_html":"(vol : Int32 | Float64)","location":{"filename":"src/nec/np_series.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L103"},"def":{"name":"volume","args":[{"name":"vol","external_name":"vol","restriction":"Int32 | Float64"}],"visibility":"Public","body":"vol = vol.to_f.clamp(0.0, 100.0)\npercentage = vol / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ncommand = Bytes[3, 16, 0, 0, 5, 5, 0, 0, vol, 0]\ndo_send(command)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L122"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L117"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Nec/Projector/Audio","path":"Nec/Projector/Audio.html","kind":"enum","full_name":"Nec::Projector::Audio","name":"Audio","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L154"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"VGA","name":"VGA","value":"1"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L155"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L156"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]},{"html_id":"drivers/Nec/Projector/Input","path":"Nec/Projector/Input.html","kind":"enum","full_name":"Nec::Projector::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L10"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"VGA","name":"VGA","value":"1"},{"id":"RGBHV","name":"RGBHV","value":"2"},{"id":"Composite","name":"Composite","value":"6"},{"id":"SVideo","name":"SVideo","value":"11"},{"id":"Component","name":"Component","value":"16"},{"id":"Component2","name":"Component2","value":"17"},{"id":"HDMI","name":"HDMI","value":"26"},{"id":"HDMI2","name":"HDMI2","value":"27"},{"id":"DisplayPort","name":"DisplayPort","value":"166"},{"id":"LAN","name":"LAN","value":"32"},{"id":"Viewer","name":"Viewer","value":"31"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"instance_methods":[{"html_id":"component2?-instance-method","name":"component2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L16"},"def":{"name":"component2?","visibility":"Public","body":"self == Component2"}},{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L15"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L13"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L19"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L17"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"lan?-instance-method","name":"lan?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L20"},"def":{"name":"lan?","visibility":"Public","body":"self == LAN"}},{"html_id":"rgbhv?-instance-method","name":"rgbhv?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L12"},"def":{"name":"rgbhv?","visibility":"Public","body":"self == RGBHV"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L14"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L11"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}},{"html_id":"viewer?-instance-method","name":"viewer?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L21"},"def":{"name":"viewer?","visibility":"Public","body":"self == Viewer"}}]},{"html_id":"drivers/Nec/Projector/Response","path":"Nec/Projector/Response.html","kind":"enum","full_name":"Nec::Projector::Response","name":"Response","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/nec/np_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L219"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Power","name":"Power","value":"8321_u16"},{"id":"InputOrMuteQuery","name":"InputOrMuteQuery","value":"8325_u16"},{"id":"Error","name":"Error","value":"8328_u16"},{"id":"InputSwitch","name":"InputSwitch","value":"8707_u16"},{"id":"Lamp","name":"Lamp","value":"8704_u16"},{"id":"Lamp2","name":"Lamp2","value":"8705_u16"},{"id":"PictureMuteOn","name":"PictureMuteOn","value":"8720_u16"},{"id":"PictureMuteOff","name":"PictureMuteOff","value":"8721_u16"},{"id":"AudioMuteOn","name":"AudioMuteOn","value":"8722_u16"},{"id":"AudioMuteOff","name":"AudioMuteOff","value":"8723_u16"},{"id":"OnscreenMuteOn","name":"OnscreenMuteOn","value":"8724_u16"},{"id":"OnscreenMuteOff","name":"OnscreenMuteOff","value":"8725_u16"},{"id":"VolumeOrImageAdjust","name":"VolumeOrImageAdjust","value":"8976_u16"},{"id":"Info","name":"Info","value":"9098_u16"},{"id":"AudioSwitch","name":"AudioSwitch","value":"9137_u16"}],"namespace":{"html_id":"drivers/Nec/Projector","kind":"class","full_name":"Nec::Projector","name":"Projector"},"doc":"TODO: add responses for freeze commands if we need to process them","summary":"

TODO add responses for freeze commands if we need to process them

","class_methods":[{"html_id":"from_bytes?(response)-class-method","name":"from_bytes?","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/nec/np_series.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L236"},"def":{"name":"from_bytes?","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":"value = (IO::Memory.new(response[0..1])).read_bytes(UInt16, IO::ByteFormat::BigEndian)\nResponse.from_value?(value)\n"}}],"instance_methods":[{"html_id":"audio_mute_off?-instance-method","name":"audio_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L229"},"def":{"name":"audio_mute_off?","visibility":"Public","body":"self == AudioMuteOff"}},{"html_id":"audio_mute_on?-instance-method","name":"audio_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L228"},"def":{"name":"audio_mute_on?","visibility":"Public","body":"self == AudioMuteOn"}},{"html_id":"audio_switch?-instance-method","name":"audio_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L234"},"def":{"name":"audio_switch?","visibility":"Public","body":"self == AudioSwitch"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L222"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L233"},"def":{"name":"info?","visibility":"Public","body":"self == Info"}},{"html_id":"input_or_mute_query?-instance-method","name":"input_or_mute_query?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L221"},"def":{"name":"input_or_mute_query?","visibility":"Public","body":"self == InputOrMuteQuery"}},{"html_id":"input_switch?-instance-method","name":"input_switch?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L223"},"def":{"name":"input_switch?","visibility":"Public","body":"self == InputSwitch"}},{"html_id":"lamp2?-instance-method","name":"lamp2?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L225"},"def":{"name":"lamp2?","visibility":"Public","body":"self == Lamp2"}},{"html_id":"lamp?-instance-method","name":"lamp?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L224"},"def":{"name":"lamp?","visibility":"Public","body":"self == Lamp"}},{"html_id":"onscreen_mute_off?-instance-method","name":"onscreen_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L231"},"def":{"name":"onscreen_mute_off?","visibility":"Public","body":"self == OnscreenMuteOff"}},{"html_id":"onscreen_mute_on?-instance-method","name":"onscreen_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L230"},"def":{"name":"onscreen_mute_on?","visibility":"Public","body":"self == OnscreenMuteOn"}},{"html_id":"picture_mute_off?-instance-method","name":"picture_mute_off?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L227"},"def":{"name":"picture_mute_off?","visibility":"Public","body":"self == PictureMuteOff"}},{"html_id":"picture_mute_on?-instance-method","name":"picture_mute_on?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L226"},"def":{"name":"picture_mute_on?","visibility":"Public","body":"self == PictureMuteOn"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L220"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"volume_or_image_adjust?-instance-method","name":"volume_or_image_adjust?","abstract":false,"location":{"filename":"src/nec/np_series.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/nec/np_series.cr#L232"},"def":{"name":"volume_or_image_adjust?","visibility":"Public","body":"self == VolumeOrImageAdjust"}}]}]}]},{"html_id":"drivers/OfficeRnd","path":"OfficeRnd.html","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd","abstract":false,"locations":[{"filename":"src/office_rnd/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L4"},{"filename":"src/office_rnd/office_rnd_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"OfficeRnD Data Models","summary":"

OfficeRnD Data Models

","types":[{"html_id":"drivers/OfficeRnd/Booking","path":"OfficeRnd/Booking.html","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L88"},"def":{"name":"new","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(resource_id, booking_start, booking_end, summary, team_id, member_id, description, tentative, free)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L66"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:BookingTime-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L70"},"def":{"name":"booking_end","return_type":"BookingTime","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:BookingTime-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L68"},"def":{"name":"booking_start","return_type":"BookingTime","visibility":"Public","body":"@booking_start"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L82"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"extras:JSON::Any-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L86"},"def":{"name":"extras","return_type":"JSON::Any","visibility":"Public","body":"@extras"}},{"html_id":"fees:Array(OfficeRnd::BookingFee)-instance-method","name":"fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L85"},"def":{"name":"fees","return_type":"Array(::OfficeRnd::BookingFee)","visibility":"Public","body":"@fees"}},{"html_id":"free:Bool|Nil-instance-method","name":"free","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L84"},"def":{"name":"free","return_type":"Bool | ::Nil","visibility":"Public","body":"@free"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L81"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"overlaps?(time_span:Range(Time,Time))-instance-method","name":"overlaps?","abstract":false,"args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"args_string":"(time_span : Range(Time, Time))","args_html":"(time_span : Range(Time, Time))","location":{"filename":"src/office_rnd/models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L106"},"def":{"name":"overlaps?","args":[{"name":"time_span","external_name":"time_span","restriction":"Range(Time, Time)"}],"visibility":"Public","body":"starting, ending = booking_start.time, booking_end.time\nwithin = (time_span.includes?(starting)) || (time_span.includes?(ending))\ncovers = starting < time_span.begin && ending > time_span.end\nwithin || covers\n"}},{"html_id":"plan_id:String-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L77"},"def":{"name":"plan_id","return_type":"String","visibility":"Public","body":"@plan_id"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L75"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"source:String|Nil-instance-method","name":"source","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L72"},"def":{"name":"source","return_type":"String | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"summary:String|Nil-instance-method","name":"summary","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L73"},"def":{"name":"summary","return_type":"String | ::Nil","visibility":"Public","body":"@summary"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L79"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}},{"html_id":"tentative:Bool|Nil-instance-method","name":"tentative","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L83"},"def":{"name":"tentative","return_type":"Bool | ::Nil","visibility":"Public","body":"@tentative"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L71"},"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/BookingFee","path":"OfficeRnd/BookingFee.html","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"credits:Array(Credit)-instance-method","name":"credits","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L63"},"def":{"name":"credits","return_type":"Array(Credit)","visibility":"Public","body":"@credits"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L59"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"extra_fees:Array(JSON::Any|Nil)-instance-method","name":"extra_fees","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L62"},"def":{"name":"extra_fees","return_type":"Array(JSON::Any | ::Nil)","visibility":"Public","body":"@extra_fees"}},{"html_id":"fee:Fee|Nil-instance-method","name":"fee","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L60"},"def":{"name":"fee","return_type":"Fee | ::Nil","visibility":"Public","body":"@fee"}}]},{"html_id":"drivers/OfficeRnd/BookingTime","path":"OfficeRnd/BookingTime.html","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L31"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(time:Time)-class-method","name":"new","abstract":false,"args":[{"name":"time","external_name":"time","restriction":"Time"}],"args_string":"(time : Time)","args_html":"(time : Time)","location":{"filename":"src/office_rnd/models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L35"},"def":{"name":"new","args":[{"name":"time","external_name":"time","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L33"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}}]},{"html_id":"drivers/OfficeRnd/Credit","path":"OfficeRnd/Credit.html","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L115"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L115"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L116"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"credit:String-instance-method","name":"credit","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L117"},"def":{"name":"credit","return_type":"String","visibility":"Public","body":"@credit"}}]},{"html_id":"drivers/OfficeRnd/Data","path":"OfficeRnd/Data.html","kind":"struct","full_name":"OfficeRnd::Data","name":"Data","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/OfficeRnd/Booking","kind":"struct","full_name":"OfficeRnd::Booking","name":"Booking"},{"html_id":"drivers/OfficeRnd/BookingFee","kind":"struct","full_name":"OfficeRnd::BookingFee","name":"BookingFee"},{"html_id":"drivers/OfficeRnd/BookingTime","kind":"struct","full_name":"OfficeRnd::BookingTime","name":"BookingTime"},{"html_id":"drivers/OfficeRnd/Credit","kind":"struct","full_name":"OfficeRnd::Credit","name":"Credit"},{"html_id":"drivers/OfficeRnd/Fee","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee"},{"html_id":"drivers/OfficeRnd/Floor","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor"},{"html_id":"drivers/OfficeRnd/Office","kind":"struct","full_name":"OfficeRnd::Office","name":"Office"},{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy"},{"html_id":"drivers/OfficeRnd/Rate/Extra","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra"},{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},{"html_id":"drivers/OfficeRnd/TokenResponse","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}]},{"html_id":"drivers/OfficeRnd/Fee","path":"OfficeRnd/Fee.html","kind":"struct","full_name":"OfficeRnd::Fee","name":"Fee","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bill_in_advance:Bool|Nil-instance-method","name":"bill_in_advance","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L53"},"def":{"name":"bill_in_advance","return_type":"Bool | ::Nil","visibility":"Public","body":"@bill_in_advance"}},{"html_id":"date:Time-instance-method","name":"date","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L42"},"def":{"name":"date","return_type":"Time","visibility":"Public","body":"@date"}},{"html_id":"is_personal:Bool|Nil-instance-method","name":"is_personal","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L55"},"def":{"name":"is_personal","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_personal"}},{"html_id":"member_id:String|Nil-instance-method","name":"member_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L48"},"def":{"name":"member_id","return_type":"String | ::Nil","visibility":"Public","body":"@member_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L39"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L46"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"plan_id:String|Nil-instance-method","name":"plan_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L50"},"def":{"name":"plan_id","return_type":"String | ::Nil","visibility":"Public","body":"@plan_id"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L40"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}},{"html_id":"quantity:Int32-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L41"},"def":{"name":"quantity","return_type":"Int32","visibility":"Public","body":"@quantity"}},{"html_id":"refundable:Bool|Nil-instance-method","name":"refundable","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L51"},"def":{"name":"refundable","return_type":"Bool | ::Nil","visibility":"Public","body":"@refundable"}},{"html_id":"team_id:String|Nil-instance-method","name":"team_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L44"},"def":{"name":"team_id","return_type":"String | ::Nil","visibility":"Public","body":"@team_id"}}]},{"html_id":"drivers/OfficeRnd/Floor","path":"OfficeRnd/Floor.html","kind":"struct","full_name":"OfficeRnd::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L189"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L189"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area:Int32|Nil-instance-method","name":"area","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L196"},"def":{"name":"area","return_type":"Int32 | ::Nil","visibility":"Public","body":"@area"}},{"html_id":"floor:String|Nil-instance-method","name":"floor","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L192"},"def":{"name":"floor","return_type":"String | ::Nil","visibility":"Public","body":"@floor"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L191"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L198"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L193"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L195"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"target_revenue:Int32|Nil-instance-method","name":"target_revenue","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L200"},"def":{"name":"target_revenue","return_type":"Int32 | ::Nil","visibility":"Public","body":"@target_revenue"}}]},{"html_id":"drivers/OfficeRnd/Office","path":"OfficeRnd/Office.html","kind":"struct","full_name":"OfficeRnd::Office","name":"Office","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L24"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"city:String|Nil-instance-method","name":"city","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L23"},"def":{"name":"city","return_type":"String | ::Nil","visibility":"Public","body":"@city"}},{"html_id":"country:String|Nil-instance-method","name":"country","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L21"},"def":{"name":"country","return_type":"String | ::Nil","visibility":"Public","body":"@country"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L19"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"image:String|Nil-instance-method","name":"image","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L26"},"def":{"name":"image","return_type":"String | ::Nil","visibility":"Public","body":"@image"}},{"html_id":"is_open:Bool|Nil-instance-method","name":"is_open","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L28"},"def":{"name":"is_open","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_open"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"state:String|Nil-instance-method","name":"state","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L22"},"def":{"name":"state","return_type":"String | ::Nil","visibility":"Public","body":"@state"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L25"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}}]},{"html_id":"drivers/OfficeRnd/OfficeRndAPI","path":"OfficeRnd/OfficeRndAPI.html","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking(booking_id:String)-instance-method","name":"booking","doc":"Get a booking\n","summary":"

Get a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L130"},"def":{"name":"booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/bookings/#{booking_id}\", Booking)"}},{"html_id":"bookings(office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil)-instance-method","name":"bookings","doc":"Get bookings\n","summary":"

Get bookings

","abstract":false,"args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","args_html":"(office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L136"},"def":{"name":"bookings","args":[{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif member_id\n params[\"member\"] = member_id\nend\nif team_id\n params[\"team\"] = team_id\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/bookings\" : \"/bookings?#{query_string}\"\nget_request(path, Array(Booking))\n"}},{"html_id":"create_booking(resource_id:String,booking_start:Time,booking_end:Time,summary:String|Nil=nil,team_id:String|Nil=nil,member_id:String|Nil=nil,description:String|Nil=nil,tentative:Bool|Nil=nil,free:Bool|Nil=nil)-instance-method","name":"create_booking","doc":"Create a booking\n","summary":"

Create a booking

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"args_string":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","args_html":"(resource_id : String, booking_start : Time, booking_end : Time, summary : String | Nil = nil, team_id : String | Nil = nil, member_id : String | Nil = nil, description : String | Nil = nil, tentative : Bool | Nil = nil, free : Bool | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L164"},"def":{"name":"create_booking","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"},{"name":"summary","default_value":"nil","external_name":"summary","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"tentative","default_value":"nil","external_name":"tentative","restriction":"Bool | ::Nil"},{"name":"free","default_value":"nil","external_name":"free","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"create_bookings([Booking.new(resource_id: resource_id, booking_start: booking_start, booking_end: booking_end, summary: summary, team_id: team_id, member_id: member_id, description: description, tentative: tentative, free: free)])"}},{"html_id":"create_bookings(bookings:Array(Booking))-instance-method","name":"create_bookings","doc":"Make a booking\n","summary":"

Make a booking

","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"args_string":"(bookings : Array(Booking))","args_html":"(bookings : Array(Booking))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L158"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(Booking)"}],"visibility":"Public","body":"post_request(\"/bookings\", body: bookings.to_json)"}},{"html_id":"create_bookings(bookings:Array(BookingArgument))-instance-method","name":"create_bookings","abstract":false,"args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"args_string":"(bookings : Array(BookingArgument))","args_html":"(bookings : Array(BookingArgument))","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L200"},"def":{"name":"create_bookings","args":[{"name":"bookings","external_name":"bookings","restriction":"Array(BookingArgument)"}],"visibility":"Public","body":"create_bookings(bookings.map do |booking|\n Booking.new(**booking)\nend)"}},{"html_id":"delete_booking(booking_id:String)-instance-method","name":"delete_booking","doc":"Delete a booking\n","summary":"

Delete a booking

","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"args_string":"(booking_id : String)","args_html":"(booking_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L152"},"def":{"name":"delete_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String"}],"visibility":"Public","body":"!!(delete_request(\"/bookings/#{booking_id}\"))"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L38"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(floor_id:String)-instance-method","name":"floor","doc":"Get a floor\n","summary":"

Get a floor

","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L89"},"def":{"name":"floor","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"path = \"/floors/#{floor_id}\"\nget_request(path, Floor)\n"}},{"html_id":"floors(office_id:String|Nil,name:String|Nil)-instance-method","name":"floors","doc":"Get floors\n","summary":"

Get floors

","abstract":false,"args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(office_id : String | Nil, name : String | Nil)","args_html":"(office_id : String | Nil, name : String | Nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L96"},"def":{"name":"floors","args":[{"name":"office_id","external_name":"office_id","restriction":"String | ::Nil"},{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = HTTP::Params.new\nif office_id\n params[\"office\"] = office_id\nend\nif name\n params[\"name\"] = name\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/floors\" : \"/floors?#{query_string}\"\nget_request(path, Array(Floor))\n"}},{"html_id":"get_header-instance-method","name":"get_header","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L77"},"def":{"name":"get_header","visibility":"Public","body":"headers = {\"Accept\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L46"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nauth_route = @test_auth ? \"http://localhost:17839/oauth/token\" : \"https://identity.officernd.com/oauth/token\"\nparams = HTTP::Params.encode({\"client_id\" => @client_id, \"client_secret\" => @client_secret, \"grant_type\" => \"client_credentials\", \"scope\" => @scopes.join(' ')})\nheaders = HTTP::Headers {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\"}\nresponse = HTTP::Client.post(url: auth_route, headers: headers, body: params)\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body)\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.access_token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"office(name:String)-instance-method","name":"office","doc":"Retrieve office\n","summary":"

Retrieve office

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L216"},"def":{"name":"office","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"path = \"/offices/#{name}\"\nget_request(path, Array(Office))\n"}},{"html_id":"offices-instance-method","name":"offices","doc":"List offices\n","summary":"

List offices

","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L209"},"def":{"name":"offices","visibility":"Public","body":"path = \"/offices\"\nget_request(path, Array(Office))\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\n@test_auth = setting(Bool, :test_auth)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@client_id = setting(String, :client_id)\n@client_secret = setting(String, :client_secret)\n@scopes = setting(Array(String), :scopes)\n"}},{"html_id":"resource_bookings(resource_id:String,range_start:Time=Time.utc-5.minutes,range_end:Time=Time.utc+24.hours,office_id:String|Nil=nil,member_id:String|Nil=nil,team_id:String|Nil=nil):Array(Booking)-instance-method","name":"resource_bookings","doc":"Get bookings for a resource for a given time span\n","summary":"

Get bookings for a resource for a given time span

","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","args_html":"(resource_id : String, range_start : Time = Time.utc - 5.minutes, range_end : Time = Time.utc + 24.hours, office_id : String | Nil = nil, member_id : String | Nil = nil, team_id : String | Nil = nil) : Array(Booking)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L110"},"def":{"name":"resource_bookings","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"range_start","default_value":"Time.utc - 5.minutes","external_name":"range_start","restriction":"Time"},{"name":"range_end","default_value":"Time.utc + 24.hours","external_name":"range_end","restriction":"Time"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"member_id","default_value":"nil","external_name":"member_id","restriction":"String | ::Nil"},{"name":"team_id","default_value":"nil","external_name":"team_id","restriction":"String | ::Nil"}],"return_type":"Array(Booking)","visibility":"Public","body":"time_span = (range_start..range_end)\nbookings(office_id: office_id, member_id: member_id, team_id: team_id).select! do |booking|\n (booking.resource_id == resource_id) && (booking.overlaps?(time_span))\nend\n"}},{"html_id":"resources(type:Resource::Type|String|Nil=nil,name:String|Nil=nil,office_id:String|Nil=nil,available_from:Time|Nil=nil,available_to:Time|Nil=nil)-instance-method","name":"resources","doc":"Get available rooms (resources) by\n- type\n- date range (available_from, available_to)\n- office (office_id)\n- resource name (name)","summary":"

Get available rooms (resources) by - type - date range (available_from, available_to) - office (office_id) - resource name (name)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"args_string":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","args_html":"(type : Resource::Type | String | Nil = nil, name : String | Nil = nil, office_id : String | Nil = nil, available_from : Time | Nil = nil, available_to : Time | Nil = nil)","location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L229"},"def":{"name":"resources","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"Resource::Type | String | ::Nil"},{"name":"name","default_value":"nil","external_name":"name","restriction":"String | ::Nil"},{"name":"office_id","default_value":"nil","external_name":"office_id","restriction":"String | ::Nil"},{"name":"available_from","default_value":"nil","external_name":"available_from","restriction":"Time | ::Nil"},{"name":"available_to","default_value":"nil","external_name":"available_to","restriction":"Time | ::Nil"}],"visibility":"Public","body":"if type.is_a?(String)\n type = Resource::Type.parse(type)\nend\nparams = HTTP::Params.new\nif type\n params[\"type\"] = type.to_s\nend\nif name\n params[\"name\"] = name\nend\nif office_id\n params[\"office\"] = office_id\nend\nif available_from\n params[\"availableFrom\"] = available_from.to_s\nend\nif available_to\n params[\"availableTo\"] = available_to.to_s\nend\nquery_string = params.to_s\npath = query_string.empty? ? \"/resources\" : \"/resources?#{query_string}\"\nget_request(path, Array(Resource))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/office_rnd/office_rnd_api.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L42"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}}],"types":[{"html_id":"drivers/OfficeRnd/OfficeRndAPI/BookingArgument","path":"OfficeRnd/OfficeRndAPI/BookingArgument.html","kind":"alias","full_name":"OfficeRnd::OfficeRndAPI::BookingArgument","name":"BookingArgument","abstract":false,"locations":[{"filename":"src/office_rnd/office_rnd_api.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/office_rnd_api.cr#L188"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(resource_id: String, booking_start: Time, booking_end: Time, summary: String | Nil, team_id: String | Nil, member_id: String | Nil, description: String | Nil, tentative: Bool | Nil, free: Bool | Nil)","aliased_html":"{resource_id: String, booking_start: Time, booking_end: Time, summary: String?, team_id: String?, member_id: String?, description: String?, tentative: Bool?, free: Bool?}","const":false,"namespace":{"html_id":"drivers/OfficeRnd/OfficeRndAPI","kind":"class","full_name":"OfficeRnd::OfficeRndAPI","name":"OfficeRndAPI"}}]},{"html_id":"drivers/OfficeRnd/Rate","path":"OfficeRnd/Rate.html","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L120"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"cancellation_policy:CancellationPolicy-instance-method","name":"cancellation_policy","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L126"},"def":{"name":"cancellation_policy","return_type":"CancellationPolicy","visibility":"Public","body":"@cancellation_policy"}},{"html_id":"extras:Array(Extra)-instance-method","name":"extras","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L127"},"def":{"name":"extras","return_type":"Array(Extra)","visibility":"Public","body":"@extras"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L122"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"max_duration:Int32-instance-method","name":"max_duration","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L129"},"def":{"name":"max_duration","return_type":"Int32","visibility":"Public","body":"@max_duration"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L123"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L124"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}],"types":[{"html_id":"drivers/OfficeRnd/Rate/CancellationPolicy","path":"OfficeRnd/Rate/CancellationPolicy.html","kind":"struct","full_name":"OfficeRnd::Rate::CancellationPolicy","name":"CancellationPolicy","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L131"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L131"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"minimum_period:Int32-instance-method","name":"minimum_period","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period","return_type":"Int32","visibility":"Public","body":"@minimum_period"}},{"html_id":"minimum_period=(minimum_period:Int32)-instance-method","name":"minimum_period=","abstract":false,"args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"args_string":"(minimum_period : Int32)","args_html":"(minimum_period : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L133"},"def":{"name":"minimum_period=","args":[{"name":"minimum_period","external_name":"minimum_period","restriction":"Int32"}],"visibility":"Public","body":"@minimum_period = minimum_period"}}]},{"html_id":"drivers/OfficeRnd/Rate/Extra","path":"OfficeRnd/Rate/Extra.html","kind":"struct","full_name":"OfficeRnd::Rate::Extra","name":"Extra","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OfficeRnd/Rate","kind":"struct","full_name":"OfficeRnd::Rate","name":"Rate"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L136"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L138"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L139"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"price:Int32-instance-method","name":"price","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L140"},"def":{"name":"price","return_type":"Int32","visibility":"Public","body":"@price"}}]}]},{"html_id":"drivers/OfficeRnd/Resource","path":"OfficeRnd/Resource.html","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAPPING","name":"MAPPING","value":"{Type::MeetingRoom => \"meeting_room\", Type::PrivateOffices => \"team_room\", Type::PrivateOfficeDesk => \"desk_tr\", Type::DedicatedDesks => \"desk\", Type::HotDesks => \"hotdesk\"}"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L144"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L151"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L145"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"office_id:String-instance-method","name":"office_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L149"},"def":{"name":"office_id","return_type":"String","visibility":"Public","body":"@office_id"}},{"html_id":"rate_id:String|Nil-instance-method","name":"rate_id","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L147"},"def":{"name":"rate_id","return_type":"String | ::Nil","visibility":"Public","body":"@rate_id"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L152"},"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}}],"types":[{"html_id":"drivers/OfficeRnd/Resource/Type","path":"OfficeRnd/Resource/Type.html","kind":"enum","full_name":"OfficeRnd::Resource::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L162"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"MeetingRoom","name":"MeetingRoom","value":"0"},{"id":"PrivateOffices","name":"PrivateOffices","value":"1"},{"id":"PrivateOfficeDesk","name":"PrivateOfficeDesk","value":"2"},{"id":"DedicatedDesks","name":"DedicatedDesks","value":"3"},{"id":"HotDesks","name":"HotDesks","value":"4"}],"namespace":{"html_id":"drivers/OfficeRnd/Resource","kind":"struct","full_name":"OfficeRnd::Resource","name":"Resource"},"class_methods":[{"html_id":"parse(type:String)-class-method","name":"parse","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L177"},"def":{"name":"parse","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"parsed = Resource::MAPPING.key_for?(type)\nif parsed\nelse\n raise(ArgumentError.new(\"Unrecognised Resource::Type '#{type}'\"))\nend\nparsed\n"}},{"html_id":"valid?(type:String)-class-method","name":"valid?","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L183"},"def":{"name":"valid?","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"!!(Resource::MAPPING.key_for?(type))"}}],"instance_methods":[{"html_id":"dedicated_desks?-instance-method","name":"dedicated_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L166"},"def":{"name":"dedicated_desks?","visibility":"Public","body":"self == DedicatedDesks"}},{"html_id":"hot_desks?-instance-method","name":"hot_desks?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L167"},"def":{"name":"hot_desks?","visibility":"Public","body":"self == HotDesks"}},{"html_id":"meeting_room?-instance-method","name":"meeting_room?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L163"},"def":{"name":"meeting_room?","visibility":"Public","body":"self == MeetingRoom"}},{"html_id":"private_office_desk?-instance-method","name":"private_office_desk?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L165"},"def":{"name":"private_office_desk?","visibility":"Public","body":"self == PrivateOfficeDesk"}},{"html_id":"private_offices?-instance-method","name":"private_offices?","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L164"},"def":{"name":"private_offices?","visibility":"Public","body":"self == PrivateOffices"}},{"html_id":"to_json(json:JSON::Builder)-instance-method","name":"to_json","doc":"Serializes this enum member by name.\n\nFor non-flags enums, the serialization is a JSON string. The value is the\nmember name (see `#to_s`) transformed with `String#underscore`.\n\n```\nenum Stages\n INITIAL\n SECOND_STAGE\nend\n\nStages::INITIAL.to_json # => %(\"initial\")\nStages::SECOND_STAGE.to_json # => %(\"second_stage\")\n```\n\nFor flags enums, the serialization is a JSON array including every flagged\nmember individually serialized in the same way as a member of a non-flags enum.\n`None` is serialized as an empty array, `All` as an array containing\nall members.\n\n```\n@[Flags]\nenum Sides\n LEFT\n RIGHT\nend\n\nSides::LEFT.to_json # => %([\"left\"])\n(Sides::LEFT | Sides::RIGHT).to_json # => %([\"left\",\"right\"])\nSides::All.to_json # => %([\"left\",\"right\"])\nSides::None.to_json # => %([])\n```\n\n`ValueConverter.to_json` offers a different serialization strategy based on the\nmember value.","summary":"

Serializes this enum member by name.

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(json : JSON::Builder)","args_html":"(json : JSON::Builder)","location":{"filename":"src/office_rnd/models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L173"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(self.to_s)"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a `String` representation of this enum member.\nIn the case of regular enums, this is just the name of the member.\nIn the case of flag enums, it's the names joined by vertical bars, or \"None\",\nif the value is zero.\n\nIf an enum's value doesn't match a member's value, the raw value\nis returned as a string.\n\n```\nColor::Red.to_s # => \"Red\"\nIOMode::None.to_s # => \"None\"\n(IOMode::Read | IOMode::Write).to_s # => \"Read | Write\"\n\nColor.new(10).to_s # => \"10\"\n```","summary":"

Returns a String representation of this enum member.

","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L169"},"def":{"name":"to_s","visibility":"Public","body":"Resource::MAPPING[self]"}}]}]},{"html_id":"drivers/OfficeRnd/TokenResponse","path":"OfficeRnd/TokenResponse.html","kind":"struct","full_name":"OfficeRnd::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/OfficeRnd/Data","kind":"struct","full_name":"OfficeRnd::Data","name":"Data"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/office_rnd/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OfficeRnd","kind":"module","full_name":"OfficeRnd","name":"OfficeRnd"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/office_rnd/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L11"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/office_rnd/models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L11"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/office_rnd/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L13"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"scope:String-instance-method","name":"scope","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L14"},"def":{"name":"scope","return_type":"String","visibility":"Public","body":"@scope"}},{"html_id":"scope=(scope:String)-instance-method","name":"scope=","abstract":false,"args":[{"name":"scope","external_name":"scope","restriction":"String"}],"args_string":"(scope : String)","args_html":"(scope : String)","location":{"filename":"src/office_rnd/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L14"},"def":{"name":"scope=","args":[{"name":"scope","external_name":"scope","restriction":"String"}],"visibility":"Public","body":"@scope = scope"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L12"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/office_rnd/models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/office_rnd/models.cr#L12"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]}]},{"html_id":"drivers/OpenAI","path":"OpenAI.html","kind":"module","full_name":"OpenAI","name":"OpenAI","abstract":false,"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L3"},{"filename":"src/open_ai/models/edit_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L4"},{"filename":"src/open_ai/models/model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L3"},{"filename":"src/open_ai/models/text_completion.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/OpenAI/ChatCompletion","path":"OpenAI/ChatCompletion.html","kind":"struct","full_name":"OpenAI::ChatCompletion","name":"ChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L87"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(MessageChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L95"},"def":{"name":"choices","return_type":"Array(MessageChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L93"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L89"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L90"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L96"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/CreateChatCompletion","path":"OpenAI/CreateChatCompletion.html","kind":"class","full_name":"OpenAI::CreateChatCompletion","name":"CreateChatCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/chat/completions","summary":"

POST https://api.openai.com/v1/chat/completions

","constructors":[{"html_id":"new(model:String,messages:Array(OpenAI::Message))-class-method","name":"new","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"args_string":"(model : String, messages : Array(OpenAI::Message))","args_html":"(model : String, messages : Array(OpenAI::Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L30"},"def":{"name":"new","args":[{"name":"model","external_name":"model","restriction":"::String"},{"name":"messages","external_name":"messages","restriction":"::Array(::OpenAI::Message)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(model, messages)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L68"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L72"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"messages:Array(Message)-instance-method","name":"messages","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages","return_type":"Array(Message)","visibility":"Public","body":"@messages"}},{"html_id":"messages=(messages:Array(Message))-instance-method","name":"messages=","abstract":false,"args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"args_string":"(messages : Array(Message))","args_html":"(messages : Array(Message))","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L36"},"def":{"name":"messages=","args":[{"name":"messages","external_name":"messages","restriction":"Array(Message)"}],"visibility":"Public","body":"@messages = messages"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L34"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L51"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L63"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L58"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L54"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L41"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L47"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L75"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/CreateEditCompletion","path":"OpenAI/CreateEditCompletion.html","kind":"class","full_name":"OpenAI::CreateEditCompletion","name":"CreateEditCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/edit_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/edits","summary":"

POST https://api.openai.com/v1/edits

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"input:String-instance-method","name":"input","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input","return_type":"String","visibility":"Public","body":"@input"}},{"html_id":"input=(input:String)-instance-method","name":"input=","doc":"The input text to use as a starting point for the edit.","summary":"

The input text to use as a starting point for the edit.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L14"},"def":{"name":"input=","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"@input = input"}},{"html_id":"instruction:String-instance-method","name":"instruction","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction","return_type":"String","visibility":"Public","body":"@instruction"}},{"html_id":"instruction=(instruction:String)-instance-method","name":"instruction=","doc":"The instruction that tells the model how to edit the prompt.","summary":"

The instruction that tells the model how to edit the prompt.

","abstract":false,"args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"args_string":"(instruction : String)","args_html":"(instruction : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L17"},"def":{"name":"instruction=","args":[{"name":"instruction","external_name":"instruction","restriction":"String"}],"visibility":"Public","body":"@instruction = instruction"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id\nYou can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.","summary":"

the model id You can use the text-davinci-edit-001 or code-davinci-edit-001 model with this endpoint.

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L11"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L32"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L22"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/edit_completion.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/edit_completion.cr#L28"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}}]},{"html_id":"drivers/OpenAI/CreateTextCompletion","path":"OpenAI/CreateTextCompletion.html","kind":"class","full_name":"OpenAI::CreateTextCompletion","name":"CreateTextCompletion","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"POST https://api.openai.com/v1/completions","summary":"

POST https://api.openai.com/v1/completions

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"best_of:Int32-instance-method","name":"best_of","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of","return_type":"Int32","visibility":"Public","body":"@best_of"}},{"html_id":"best_of=(best_of:Int32)-instance-method","name":"best_of=","doc":"Generates best_of completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\nbest_of must be greater than num_completions","summary":"

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token).

","abstract":false,"args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"args_string":"(best_of : Int32)","args_html":"(best_of : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L62"},"def":{"name":"best_of=","args":[{"name":"best_of","external_name":"best_of","restriction":"Int32"}],"visibility":"Public","body":"@best_of = best_of"}},{"html_id":"echo:Bool-instance-method","name":"echo","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo","return_type":"Bool","visibility":"Public","body":"@echo"}},{"html_id":"echo=(echo:Bool)-instance-method","name":"echo=","doc":"Echo back the prompt in addition to the completion","summary":"

Echo back the prompt in addition to the completion

","abstract":false,"args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"args_string":"(echo : Bool)","args_html":"(echo : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L44"},"def":{"name":"echo=","args":[{"name":"echo","external_name":"echo","restriction":"Bool"}],"visibility":"Public","body":"@echo = echo"}},{"html_id":"frequency_penalty:Float64-instance-method","name":"frequency_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty","return_type":"Float64","visibility":"Public","body":"@frequency_penalty"}},{"html_id":"frequency_penalty=(frequency_penalty:Float64)-instance-method","name":"frequency_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"args_string":"(frequency_penalty : Float64)","args_html":"(frequency_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L58"},"def":{"name":"frequency_penalty=","args":[{"name":"frequency_penalty","external_name":"frequency_penalty","restriction":"Float64"}],"visibility":"Public","body":"@frequency_penalty = frequency_penalty"}},{"html_id":"logit_bias:Hash(String,Float64)|Nil-instance-method","name":"logit_bias","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias","return_type":"Hash(String, Float64) | ::Nil","visibility":"Public","body":"@logit_bias"}},{"html_id":"logit_bias=(logit_bias:Hash(String,Float64)|Nil)-instance-method","name":"logit_bias=","doc":"Modify the likelihood of specified tokens appearing in the completion.\nYou can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs","summary":"

Modify the likelihood of specified tokens appearing in the completion.

","abstract":false,"args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"args_string":"(logit_bias : Hash(String, Float64) | Nil)","args_html":"(logit_bias : Hash(String, Float64) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L66"},"def":{"name":"logit_bias=","args":[{"name":"logit_bias","external_name":"logit_bias","restriction":"Hash(String, Float64) | ::Nil"}],"visibility":"Public","body":"@logit_bias = logit_bias"}},{"html_id":"logprobs:Int32|Nil-instance-method","name":"logprobs","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs","return_type":"Int32 | ::Nil","visibility":"Public","body":"@logprobs"}},{"html_id":"logprobs=(logprobs:Int32|Nil)-instance-method","name":"logprobs=","doc":"Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.","summary":"

Include the log probabilities on the logprobs most likely tokens, as well the chosen tokens.

","abstract":false,"args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"args_string":"(logprobs : Int32 | Nil)","args_html":"(logprobs : Int32 | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L41"},"def":{"name":"logprobs=","args":[{"name":"logprobs","external_name":"logprobs","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@logprobs = logprobs"}},{"html_id":"max_tokens:Int32-instance-method","name":"max_tokens","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens","return_type":"Int32","visibility":"Public","body":"@max_tokens"}},{"html_id":"max_tokens=(max_tokens:Int32)-instance-method","name":"max_tokens=","doc":"The maximum number of tokens to generate in the completion.\nMost models have a context length of 2048 tokens (except for the newest models, which support 4096).\nThe token count of your prompt plus max_tokens cannot exceed the model's context length.","summary":"

The maximum number of tokens to generate in the completion.

","abstract":false,"args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"args_string":"(max_tokens : Int32)","args_html":"(max_tokens : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L20"},"def":{"name":"max_tokens=","args":[{"name":"max_tokens","external_name":"max_tokens","restriction":"Int32"}],"visibility":"Public","body":"@max_tokens = max_tokens"}},{"html_id":"model:String-instance-method","name":"model","doc":"the model id","summary":"

the model id

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model","return_type":"String","visibility":"Public","body":"@model"}},{"html_id":"model=(model:String)-instance-method","name":"model=","doc":"the model id","summary":"

the model id

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"}],"args_string":"(model : String)","args_html":"(model : String)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L9"},"def":{"name":"model=","args":[{"name":"model","external_name":"model","restriction":"String"}],"visibility":"Public","body":"@model = model"}},{"html_id":"num_completions:Int32-instance-method","name":"num_completions","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions","return_type":"Int32","visibility":"Public","body":"@num_completions"}},{"html_id":"num_completions=(num_completions:Int32)-instance-method","name":"num_completions=","doc":"How many completions to generate for each prompt.","summary":"

How many completions to generate for each prompt.

","abstract":false,"args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"args_string":"(num_completions : Int32)","args_html":"(num_completions : Int32)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L35"},"def":{"name":"num_completions=","args":[{"name":"num_completions","external_name":"num_completions","restriction":"Int32"}],"visibility":"Public","body":"@num_completions = num_completions"}},{"html_id":"presence_penalty:Float64-instance-method","name":"presence_penalty","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty","return_type":"Float64","visibility":"Public","body":"@presence_penalty"}},{"html_id":"presence_penalty=(presence_penalty:Float64)-instance-method","name":"presence_penalty=","doc":"Number between -2.0 and 2.0.\nPositive values penalize new tokens based on whether they appear in the text so far,\nincreasing the model's likelihood to talk about new topics.","summary":"

Number between -2.0 and 2.0.

","abstract":false,"args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"args_string":"(presence_penalty : Float64)","args_html":"(presence_penalty : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L53"},"def":{"name":"presence_penalty=","args":[{"name":"presence_penalty","external_name":"presence_penalty","restriction":"Float64"}],"visibility":"Public","body":"@presence_penalty = presence_penalty"}},{"html_id":"prompt:String|Array(String)|Nil-instance-method","name":"prompt","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"prompt=(prompt:String|Array(String)|Nil)-instance-method","name":"prompt=","doc":"The prompt(s) to generate completions for","summary":"

The prompt(s) to generate completions for

","abstract":false,"args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"args_string":"(prompt : String | Array(String) | Nil)","args_html":"(prompt : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L12"},"def":{"name":"prompt=","args":[{"name":"prompt","external_name":"prompt","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@prompt = prompt"}},{"html_id":"stop:String|Array(String)|Nil-instance-method","name":"stop","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@stop"}},{"html_id":"stop=(stop:String|Array(String)|Nil)-instance-method","name":"stop=","doc":"Up to 4 sequences where the API will stop generating further tokens.\nThe returned text will not contain the stop sequence.","summary":"

Up to 4 sequences where the API will stop generating further tokens.

","abstract":false,"args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"args_string":"(stop : String | Array(String) | Nil)","args_html":"(stop : String | Array(String) | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L48"},"def":{"name":"stop=","args":[{"name":"stop","external_name":"stop","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@stop = stop"}},{"html_id":"stream:Bool-instance-method","name":"stream","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream","return_type":"Bool","visibility":"Public","body":"@stream"}},{"html_id":"stream=(stream:Bool)-instance-method","name":"stream=","doc":"Whether to stream back partial progress.","summary":"

Whether to stream back partial progress.

","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"args_string":"(stream : Bool)","args_html":"(stream : Bool)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L38"},"def":{"name":"stream=","args":[{"name":"stream","external_name":"stream","restriction":"Bool"}],"visibility":"Public","body":"@stream = stream"}},{"html_id":"suffix:String|Nil-instance-method","name":"suffix","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix","return_type":"String | ::Nil","visibility":"Public","body":"@suffix"}},{"html_id":"suffix=(suffix:String|Nil)-instance-method","name":"suffix=","doc":"The suffix that comes after a completion of inserted text.","summary":"

The suffix that comes after a completion of inserted text.

","abstract":false,"args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"args_string":"(suffix : String | Nil)","args_html":"(suffix : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L15"},"def":{"name":"suffix=","args":[{"name":"suffix","external_name":"suffix","restriction":"String | ::Nil"}],"visibility":"Public","body":"@suffix = suffix"}},{"html_id":"temperature:Float64-instance-method","name":"temperature","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature","return_type":"Float64","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Float64)-instance-method","name":"temperature=","doc":"What sampling temperature to use, between 0 and 2.\nHigher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.","summary":"

What sampling temperature to use, between 0 and 2.

","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"args_string":"(temperature : Float64)","args_html":"(temperature : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L25"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Float64"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"top_p:Float64-instance-method","name":"top_p","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p","return_type":"Float64","visibility":"Public","body":"@top_p"}},{"html_id":"top_p=(top_p:Float64)-instance-method","name":"top_p=","doc":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\nAlter this or temperature but not both.","summary":"

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.

","abstract":false,"args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"args_string":"(top_p : Float64)","args_html":"(top_p : Float64)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L31"},"def":{"name":"top_p=","args":[{"name":"top_p","external_name":"top_p","restriction":"Float64"}],"visibility":"Public","body":"@top_p = top_p"}},{"html_id":"user:String|Nil-instance-method","name":"user","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user","return_type":"String | ::Nil","visibility":"Public","body":"@user"}},{"html_id":"user=(user:String|Nil)-instance-method","name":"user=","doc":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.","summary":"

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.

","abstract":false,"args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"args_string":"(user : String | Nil)","args_html":"(user : String | Nil)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L69"},"def":{"name":"user=","args":[{"name":"user","external_name":"user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@user = user"}}]},{"html_id":"drivers/OpenAI/GPT","path":"OpenAI/GPT.html","kind":"class","full_name":"OpenAI::GPT","name":"GPT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/gpt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat(model:String,message:Message|Array(Message))-instance-method","name":"chat","doc":"creates a completion for the chat message","summary":"

creates a completion for the chat message

","abstract":false,"args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"args_string":"(model : String, message : Message | Array(Message))","args_html":"(model : String, message : Message | Array(Message))","location":{"filename":"src/open_ai/gpt.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L78"},"def":{"name":"chat","args":[{"name":"model","external_name":"model","restriction":"String"},{"name":"message","external_name":"message","restriction":"Message | Array(Message)"}],"visibility":"Public","body":"messages = message.is_a?(Array) ? message : [message]\nchat = CreateChatCompletion.new(model, messages)\nresponse = check(post(\"/v1/chat/completions\", body: chat.to_json))\nchat = ChatCompletion.from_json(response.body)\nupdate_token(chat.usage)\nchat.choices\n"}},{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L37"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"model(id:String)-instance-method","name":"model","doc":"returns the details of the provided model id","summary":"

returns the details of the provided model id

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/open_ai/gpt.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L72"},"def":{"name":"model","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = check(get(\"/v1/models/#{id}\"))\nModel.from_json(response.body)\n"}},{"html_id":"models-instance-method","name":"models","doc":"returns the available models for the current key","summary":"

returns the available models for the current key

","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L66"},"def":{"name":"models","visibility":"Public","body":"response = check(get(\"/v1/models\"))\n(List(Model).from_json(response.body)).data\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L14"},"def":{"name":"on_update","visibility":"Public","body":"openai_key = setting(String, :openai_key)\nopenai_org = setting?(String, :openai_org)\ntransport.before_request do |request|\n logger.debug do\n \"requesting #{request.method} #{request.path}?#{request.query}\\n#{request.headers}\\n#{request.body}\"\n end\n request.headers[\"Authorization\"] = \"Bearer #{openai_key}\"\n if openai_org\n request.headers[\"OpenAI-Organization\"] = openai_org\n end\n request.headers[\"Content-Type\"] = \"application/json\"\nend\nif usage = setting?(Usage, :token_usage)\n @total_tokens = usage.total_tokens\n @prompt_tokens = usage.prompt_tokens\n @completion_tokens = usage.completion_tokens\nend\n"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L36"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/gpt.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/gpt.cr#L35"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/List","path":"OpenAI/List.html","kind":"struct","full_name":"OpenAI::List(Type)","name":"List","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Type)-instance-method","name":"data","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L8"},"def":{"name":"data","return_type":"Array(Type)","visibility":"Public","body":"@data"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L7"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}}]},{"html_id":"drivers/OpenAI/Message","path":"OpenAI/Message.html","kind":"struct","full_name":"OpenAI::Message","name":"Message","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"Typically, a conversation is formatted with a system message first,\nfollowed by alternating user and assistant messages.","summary":"

Typically, a conversation is formatted with a system message first, followed by alternating user and assistant messages.

","constructors":[{"html_id":"new(role:Role,content:String)-class-method","name":"new","abstract":false,"args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"args_string":"(role : Role, content : String)","args_html":"(role : Role, content : String)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L19"},"def":{"name":"new","args":[{"name":"role","external_name":"role","restriction":"Role"},{"name":"content","external_name":"content","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(role, content)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L23"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"role:Role-instance-method","name":"role","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L22"},"def":{"name":"role","return_type":"Role","visibility":"Public","body":"@role"}}]},{"html_id":"drivers/OpenAI/MessageChoice","path":"OpenAI/MessageChoice.html","kind":"struct","full_name":"OpenAI::MessageChoice","name":"MessageChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L78"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L79"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L83"},"def":{"name":"finish_reason","return_type":"String","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L81"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"message:Message-instance-method","name":"message","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L82"},"def":{"name":"message","return_type":"Message","visibility":"Public","body":"@message"}}]},{"html_id":"drivers/OpenAI/Model","path":"OpenAI/Model.html","kind":"struct","full_name":"OpenAI::Model","name":"Model","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"GET https://api.openai.com/v1/models","summary":"

GET https://api.openai.com/v1/models

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L27"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L28"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"owned_by:String-instance-method","name":"owned_by","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L29"},"def":{"name":"owned_by","return_type":"String","visibility":"Public","body":"@owned_by"}}]},{"html_id":"drivers/OpenAI/Role","path":"OpenAI/Role.html","kind":"enum","full_name":"OpenAI::Role","name":"Role","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/chat_completion.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"User","name":"User","value":"0","doc":"Can be generated by the end users of an application, or set by a developer as an instruction.","summary":"

Can be generated by the end users of an application, or set by a developer as an instruction.

"},{"id":"System","name":"System","value":"1","doc":"The system message helps set the behavior of the assistant.\nGPT 3 does not always pay strong attention to system messages","summary":"

The system message helps set the behavior of the assistant.

"},{"id":"Assistant","name":"Assistant","value":"2","doc":"The assistant messages help store prior responses. They can also be written by a developer to help give examples of desired behavior.","summary":"

The assistant messages help store prior responses.

"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"instance_methods":[{"html_id":"assistant?-instance-method","name":"assistant?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L11"},"def":{"name":"assistant?","visibility":"Public","body":"self == Assistant"}},{"html_id":"system?-instance-method","name":"system?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L9"},"def":{"name":"system?","visibility":"Public","body":"self == System"}},{"html_id":"user?-instance-method","name":"user?","abstract":false,"location":{"filename":"src/open_ai/models/chat_completion.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/chat_completion.cr#L6"},"def":{"name":"user?","visibility":"Public","body":"self == User"}}]},{"html_id":"drivers/OpenAI/TextChoice","path":"OpenAI/TextChoice.html","kind":"struct","full_name":"OpenAI::TextChoice","name":"TextChoice","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L73"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"finish_reason:String|Nil-instance-method","name":"finish_reason","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L78"},"def":{"name":"finish_reason","return_type":"String | ::Nil","visibility":"Public","body":"@finish_reason"}},{"html_id":"index:Int32-instance-method","name":"index","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L77"},"def":{"name":"index","return_type":"Int32","visibility":"Public","body":"@index"}},{"html_id":"text:String-instance-method","name":"text","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L76"},"def":{"name":"text","return_type":"String","visibility":"Public","body":"@text"}}]},{"html_id":"drivers/OpenAI/TextCompletion","path":"OpenAI/TextCompletion.html","kind":"struct","full_name":"OpenAI::TextCompletion","name":"TextCompletion","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/text_completion.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L81"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/text_completion.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L82"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"choices:Array(TextChoice)-instance-method","name":"choices","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L91"},"def":{"name":"choices","return_type":"Array(TextChoice)","visibility":"Public","body":"@choices"}},{"html_id":"created:Time-instance-method","name":"created","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L89"},"def":{"name":"created","return_type":"Time","visibility":"Public","body":"@created"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L84"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"model:String|Nil-instance-method","name":"model","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L85"},"def":{"name":"model","return_type":"String | ::Nil","visibility":"Public","body":"@model"}},{"html_id":"object:String-instance-method","name":"object","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L86"},"def":{"name":"object","return_type":"String","visibility":"Public","body":"@object"}},{"html_id":"usage:Usage-instance-method","name":"usage","abstract":false,"location":{"filename":"src/open_ai/models/text_completion.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/text_completion.cr#L92"},"def":{"name":"usage","return_type":"Usage","visibility":"Public","body":"@usage"}}]},{"html_id":"drivers/OpenAI/Usage","path":"OpenAI/Usage.html","kind":"struct","full_name":"OpenAI::Usage","name":"Usage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/models/model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"constructors":[{"html_id":"new(total_tokens:Int64,prompt_tokens:Int64,completion_tokens:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"args_string":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","args_html":"(total_tokens : Int64, prompt_tokens : Int64, completion_tokens : Int64)","location":{"filename":"src/open_ai/models/model.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L14"},"def":{"name":"new","args":[{"name":"total_tokens","external_name":"total_tokens","restriction":"::Int64"},{"name":"prompt_tokens","external_name":"prompt_tokens","restriction":"::Int64"},{"name":"completion_tokens","external_name":"completion_tokens","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(total_tokens, prompt_tokens, completion_tokens)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/open_ai/models/model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"completion_tokens:Int64-instance-method","name":"completion_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L19"},"def":{"name":"completion_tokens","return_type":"Int64","visibility":"Public","body":"@completion_tokens"}},{"html_id":"prompt_tokens:Int64-instance-method","name":"prompt_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L18"},"def":{"name":"prompt_tokens","return_type":"Int64","visibility":"Public","body":"@prompt_tokens"}},{"html_id":"total_tokens:Int64-instance-method","name":"total_tokens","abstract":false,"location":{"filename":"src/open_ai/models/model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/models/model.cr#L17"},"def":{"name":"total_tokens","return_type":"Int64","visibility":"Public","body":"@total_tokens"}}]},{"html_id":"drivers/OpenAI/VoiceControlInterface","path":"OpenAI/VoiceControlInterface.html","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"PROMPT","name":"PROMPT","value":"OpenAI::Message.new(:user, \"\\n\")"}],"namespace":{"html_id":"drivers/OpenAI","kind":"module","full_name":"OpenAI","name":"OpenAI"},"doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"A Voice interface that should be able to:\n* request","summary":"

A Voice interface that should be able to: * request

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"custom_prompts:Array(OpenAI::Message)-instance-method","name":"custom_prompts","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L25"},"def":{"name":"custom_prompts","return_type":"Array(OpenAI::Message)","visibility":"Public","body":"@custom_prompts"}},{"html_id":"llm_model_id:String-instance-method","name":"llm_model_id","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L24"},"def":{"name":"llm_model_id","return_type":"String","visibility":"Public","body":"@llm_model_id"}},{"html_id":"module_status(module_id:String):Hash(String,String)-instance-method","name":"module_status","doc":"returns a hash of status values","summary":"

returns a hash of status values

","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Hash(String, String)","args_html":"(module_id : String) : Hash(String, String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L71"},"def":{"name":"module_status","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"system[module_id].__status__"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"@llm_model_id = setting(String, :llm_model_id)\n@custom_prompts = (setting?(Array(OpenAI::Message), :custom_prompts)) || ([] of OpenAI::Message)\n"}},{"html_id":"request(text:String)-instance-method","name":"request","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String)","args_html":"(text : String)","location":{"filename":"src/open_ai/voice_control.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L34"},"def":{"name":"request","args":[{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"messages = ([PROMPT] + custom_prompts) + [OpenAI::Message.new(:user, \"The Request: #{text}\")]\nchoices = Array(MessageChoice).from_json((language_model.chat(llm_model_id, messages)).get.to_json)\n"}},{"html_id":"system_metadata-instance-method","name":"system_metadata","abstract":false,"location":{"filename":"src/open_ai/voice_control.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L46"},"def":{"name":"system_metadata","visibility":"Public","body":"metadata = {} of String => Metadata\nsys = system\nsys.modules.each do |module_name|\n 1.upto(sys.count(module_name)) do |index|\n mod = sys.get(module_name, index)\n metadata[\"#{module_name}_#{index}\"] = mod.__metadata__.llm_interface\n end\nend\n{name: sys.name, description: sys.description, modules: metadata}\n"}}],"types":[{"html_id":"drivers/OpenAI/VoiceControlInterface/Metadata","path":"OpenAI/VoiceControlInterface/Metadata.html","kind":"alias","full_name":"OpenAI::VoiceControlInterface::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/open_ai/voice_control.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/open_ai/voice_control.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::DriverModel::Metadata","aliased_html":"PlaceOS::Driver::DriverModel::Metadata","const":false,"namespace":{"html_id":"drivers/OpenAI/VoiceControlInterface","kind":"class","full_name":"OpenAI::VoiceControlInterface","name":"VoiceControlInterface"}}]}]},{"html_id":"drivers/Optergy","path":"Optergy.html","kind":"module","full_name":"Optergy","name":"Optergy","abstract":false,"locations":[{"filename":"src/optergy/p864_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ANALOG_INPUT_MODE","name":"ANALOG_INPUT_MODE","value":"{\"2\" => \"10k-2 sensor\", \"6\" => \"Dry Contact\", \"4|10\" => \"Pulse 10 per pulse\", \"3|0|100\" => \"4-20 ma 0 to 100\", \"5\" => \"3K sensor\"}"}],"types":[{"html_id":"drivers/Optergy/AnalogValue","path":"Optergy/AnalogValue.html","kind":"struct","full_name":"Optergy::AnalogValue","name":"AnalogValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L21"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L25"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L20"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L28"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L30"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L32"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str.to_f? || 0.0)\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L24"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/BinaryValue","path":"Optergy/BinaryValue.html","kind":"struct","full_name":"Optergy::BinaryValue","name":"BinaryValue","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L42"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"if (__temp_1 = @description).nil?\n @description = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L46"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L41"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (\"\")\nelse\n __temp_1\nend"}},{"html_id":"out_of_service?:Bool-instance-method","name":"out_of_service?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L49"},"def":{"name":"out_of_service?","return_type":"Bool","visibility":"Public","body":"@out_of_service"}},{"html_id":"units:Int32|Nil-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L51"},"def":{"name":"units","return_type":"Int32 | ::Nil","visibility":"Public","body":"@units"}},{"html_id":"value:Bool-instance-method","name":"value","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L53"},"def":{"name":"value","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @value).nil?\n @value = (value_str == \"Active\")\nelse\n __temp_1\nend"}},{"html_id":"value_str:String-instance-method","name":"value_str","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L45"},"def":{"name":"value_str","return_type":"String","visibility":"Public","body":"@value_str"}}]},{"html_id":"drivers/Optergy/Config","path":"Optergy/Config.html","kind":"struct","full_name":"Optergy::Config","name":"Config","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L13"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"units:Units-instance-method","name":"units","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L12"},"def":{"name":"units","return_type":"Units","visibility":"Public","body":"@units"}}]},{"html_id":"drivers/Optergy/ModeResponse","path":"Optergy/ModeResponse.html","kind":"struct","full_name":"Optergy::ModeResponse","name":"ModeResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L66"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L67"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"instance:Int32-instance-method","name":"instance","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L70"},"def":{"name":"instance","return_type":"Int32","visibility":"Public","body":"@instance"}},{"html_id":"mode:String-instance-method","name":"mode","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L69"},"def":{"name":"mode","return_type":"String","visibility":"Public","body":"@mode"}},{"html_id":"object_type:Int32-instance-method","name":"object_type","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L73"},"def":{"name":"object_type","return_type":"Int32","visibility":"Public","body":"@object_type"}}]},{"html_id":"drivers/Optergy/P864","path":"Optergy/P864.html","kind":"class","full_name":"Optergy::P864","name":"P864","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"value\", \"input\", \"output\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"analog_input(instance:Int32)-instance-method","name":"analog_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ai/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_inputs-instance-method","name":"analog_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_inputs","visibility":"Public","body":"response = get(\"/api/ai/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_output(instance:Int32)-instance-method","name":"analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_outputs-instance-method","name":"analog_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_outputs","visibility":"Public","body":"response = get(\"/api/ao/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"analog_value(instance:Int32)-instance-method","name":"analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"analog_values-instance-method","name":"analog_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"analog_values","visibility":"Public","body":"response = get(\"/api/av/\", headers: auth_headers)\nArray(AnalogValue).from_json(check(response))\n"}},{"html_id":"auth_headers-instance-method","name":"auth_headers","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L193"},"def":{"name":"auth_headers","visibility":"Public","body":"HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\", \"Authorization\" => get_token}"}},{"html_id":"binary_input(instance:Int32)-instance-method","name":"binary_input","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_input","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bi/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_inputs-instance-method","name":"binary_inputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_inputs","visibility":"Public","body":"response = get(\"/api/bi/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_output(instance:Int32)-instance-method","name":"binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_outputs-instance-method","name":"binary_outputs","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_outputs","visibility":"Public","body":"response = get(\"/api/bo/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"binary_value(instance:Int32)-instance-method","name":"binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"args_string":"(instance : Int32)","args_html":"(instance : Int32)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = get(path, headers: auth_headers)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"binary_values-instance-method","name":"binary_values","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"binary_values","visibility":"Public","body":"response = get(\"/api/bv/\", headers: auth_headers)\nArray(BinaryValue).from_json(check(response))\n"}},{"html_id":"configuration-instance-method","name":"configuration","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L56"},"def":{"name":"configuration","visibility":"Public","body":"response = get(\"/api/device/config\", headers: auth_headers)\nConfig.from_json(check(response))\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L158"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/authorize\", headers: HTTP::Headers {\"Accept\" => \"application/json\", \"Content-Type\" => \"application/json\"}, body: {username: @username, password: @password}.to_json)\nbody = response.body\nnow = Time.utc\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n set_connected_state(true)\n token = (TokenResponse.from_json(body)).token\n payload, header = JWT.decode(token, verify: false, validate: false)\n issued = payload[\"iat\"].as_i64\n expires = payload[\"exp\"].as_i64\n expires_at = now + ((expires - issued) - 3).seconds\n @auth_expiry = expires_at\n @auth_token = \"Bearer #{token}\"\nelse\n set_connected_state(false)\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.every(1.minutes) do\n version\nend\ntransport.before_request do |req|\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@unit_mappings = (setting?(Mapping, :unit_mappings)) || Mapping.new\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/optergy/p864.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L318"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nthis_mac = device_mac\nif mac != this_mac\n return nil\nend\nif id\nelse\n return nil\nend\ninstance = id.to_i?\nif instance\nelse\n return nil\nend\ndevice = (begin\n analog_value(instance)\nrescue\n nil\nend)\nif device\nelse\n return nil\nend\nto_sensor(device, this_mac)\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/optergy/p864.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L306"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n this_mac = device_mac\n if mac && (mac != this_mac)\n return NO_MATCH\n end\n filter = type ? Interface::Sensor::SensorType.parse?(type) : nil\n analog_values.compact_map do |obj|\n to_sensor(obj, this_mac, filter)\n end\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"set_input_mode(instance:Int32,mode:String)-instance-method","name":"set_input_mode","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"args_string":"(instance : Int32, mode : String)","args_html":"(instance : Int32, mode : String)","location":{"filename":"src/optergy/p864.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L138"},"def":{"name":"set_input_mode","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"mode","external_name":"mode","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/ai/#{instance}/mode\", headers: auth_headers, body: {mode: mode}.to_json)\nModeResponse.from_json(check(response))\n"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L149"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"version-instance-method","name":"version","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L51"},"def":{"name":"version","visibility":"Public","body":"response = get(\"/version\", headers: auth_headers)\n(NamedTuple(version: String).from_json(check(response)))[:version]\n"}},{"html_id":"write_analog_output(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/ao/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_analog_value(instance:Int32,value:Float64,priority:Int32=8)-instance-method","name":"write_analog_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Float64, priority : Int32 = 8)","args_html":"(instance : Int32, value : Float64, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L63"},"def":{"name":"write_analog_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Float64"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/av/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value.to_s, arrayIndex: priority, property: \"presentValue\"}.to_json)\nAnalogValue.from_json(check(response))\n"}},{"html_id":"write_binary_output(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_output","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_output","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bo/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}},{"html_id":"write_binary_value(instance:Int32,value:Bool,priority:Int32=8)-instance-method","name":"write_binary_value","abstract":false,"args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"args_string":"(instance : Int32, value : Bool, priority : Int32 = 8)","args_html":"(instance : Int32, value : Bool, priority : Int32 = 8)","location":{"filename":"src/optergy/p864.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L100"},"def":{"name":"write_binary_value","args":[{"name":"instance","external_name":"instance","restriction":"Int32"},{"name":"value","external_name":"value","restriction":"Bool"},{"name":"priority","default_value":"8","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"path = String.build do |str|\n str << \"/api/bv/\"\n instance.to_s(str)\nend\nresponse = post(path, headers: auth_headers, body: {value: value ? \"Active\" : \"Inactive\", arrayIndex: priority, property: \"presentValue\"}.to_json)\nBinaryValue.from_json(check(response))\n"}}],"macros":[{"html_id":"check(response)-macro","name":"check","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""}],"args_string":"(response)","args_html":"(response)","location":{"filename":"src/optergy/p864.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L201"},"def":{"name":"check","args":[{"name":"response","external_name":"response","restriction":""}],"visibility":"Public","body":" \n%resp\n = \n{{ response }}\n\n logger.debug \n{ \"received: #{\n%resp\n.body}\" }\n raise \"error response: #{\n%resp\n.status} (#{\n%resp\n.status_code})\\n#{\n%resp\n.body}\" unless \n%resp\n.success?\n \n%resp\n.body\n \n"}}],"types":[{"html_id":"drivers/Optergy/P864/Mapping","path":"Optergy/P864/Mapping.html","kind":"alias","full_name":"Optergy::P864::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/optergy/p864.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L33"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, Tuple(PlaceOS::Driver::Interface::Sensor::SensorType, String))","aliased_html":"Hash(Int32, {PlaceOS::Driver::Interface::Sensor::SensorType, String})","const":false,"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"}},{"html_id":"drivers/Optergy/P864/TokenResponse","path":"Optergy/P864/TokenResponse.html","kind":"struct","full_name":"Optergy::P864::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Optergy/P864","kind":"class","full_name":"Optergy::P864","name":"P864"},"constructors":[{"html_id":"new(token:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/optergy/p864.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L154"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone)"}},{"html_id":"copy_with(token_token=@token)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"args_string":"(token _token = @token)","args_html":"(token _token = @token)","location":{"filename":"src/optergy/p864.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864.cr#L153"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""}],"visibility":"Public","body":"self.class.new(_token)"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]}]},{"html_id":"drivers/Optergy/Units","path":"Optergy/Units.html","kind":"enum","full_name":"Optergy::Units","name":"Units","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/optergy/p864_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Metric","name":"Metric","value":"0"},{"id":"Imperial","name":"Imperial","value":"1"}],"namespace":{"html_id":"drivers/Optergy","kind":"module","full_name":"Optergy","name":"Optergy"},"instance_methods":[{"html_id":"imperial?-instance-method","name":"imperial?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L6"},"def":{"name":"imperial?","visibility":"Public","body":"self == Imperial"}},{"html_id":"metric?-instance-method","name":"metric?","abstract":false,"location":{"filename":"src/optergy/p864_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/optergy/p864_models.cr#L5"},"def":{"name":"metric?","visibility":"Public","body":"self == Metric"}}]}]},{"html_id":"drivers/Panasonic","path":"Panasonic.html","kind":"module","full_name":"Panasonic","name":"Panasonic","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Panasonic/Camera","path":"Panasonic/Camera.html","kind":"module","full_name":"Panasonic::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Camera/HESeries","path":"Panasonic/Camera/HESeries.html","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"MOVEMENT_STOPPED","name":"MOVEMENT_STOPPED","value":"50"},{"id":"ZOOM_MAX","name":"ZOOM_MAX","value":"4095"},{"id":"ZOOM_MIN","name":"ZOOM_MIN","value":"1365"},{"id":"ZOOM_RANGE","name":"ZOOM_RANGE","value":"(ZOOM_MAX - ZOOM_MIN).to_f"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Camera","kind":"module","full_name":"Panasonic::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L254"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n zoom?\n pantilt?\nend"}},{"html_id":"installation(position:Installation)-instance-method","name":"installation","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Installation"}],"args_string":"(position : Installation)","args_html":"(position : Installation)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L223"},"def":{"name":"installation","args":[{"name":"position","external_name":"position","restriction":"Installation"}],"visibility":"Public","body":"request(\"INS\", position.desk? ? 0 : 1) do |resp|\n parse_installation(resp)\nend"}},{"html_id":"installation?-instance-method","name":"installation?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L227"},"def":{"name":"installation?","visibility":"Public","body":"parse_installation(query(\"INS\"))"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L85"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan = (MOVEMENT_STOPPED + (joyspeed(pan_speed))).to_s.rjust(2, '0')\ntilt = (MOVEMENT_STOPPED + (joyspeed(tilt_speed))).to_s.rjust(2, '0')\nif (pan_speed == \"50\") && (tilt_speed == \"50\")\n options = {retries: 4, priority: queue.priority + 50, clear_queue: true, name: :joystick}\nelse\n options = {retries: 1, priority: queue.priority, clear_queue: false, name: :joystick}\nend\nrequest(\"PTS\", \"#{pan}#{tilt}\", **options) do |resp|\n pan, tilt = (resp[3..-1].scan(/.{2}/)).flat_map(&.to_a)\n self[:pan_speed] = pan.not_nil!.to_i - MOVEMENT_STOPPED\n self[:tilt_speed] = tilt.not_nil!.to_i - MOVEMENT_STOPPED\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L141"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .open?, .close?\nin .down?, .up?\n joystick(pan_speed: 0, tilt_speed: position.down? ? @default_movement_speed : -@default_movement_speed)\nin .left?, .right?\n joystick(pan_speed: position.left? ? -@default_movement_speed : @default_movement_speed, tilt_speed: 0)\nin .in?, .out?\n zoom(position.in? ? ZoomDirection::In : ZoomDirection::Out)\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 130.milliseconds\nschedule.every(1.minute) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@default_movement_speed = (setting?(Int32, :default_movement_speed)) || 12\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Float64)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Float64))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32)-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"args_string":"(pan : Int32, tilt : Int32)","args_html":"(pan : Int32, tilt : Int32)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L238"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"}],"visibility":"Public","body":"pan_val = (pan.to_s(16)).upcase.rjust(4, '0')\ntilt_val = (tilt.to_s(16)).upcase.rjust(4, '0')\nrequest(\"APC\", \"#{pan_val}#{tilt_val}\", name: :pantilt) do |resp|\n parse_pantilt(resp)\nend\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L244"},"def":{"name":"pantilt?","visibility":"Public","body":"parse_pantilt(query(\"APC\"))"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L53"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n delay = 6.seconds\nend\nrequest(\"O\", state ? 1 : 0, delay: delay) do |resp|\n parse_power(resp)\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L58"},"def":{"name":"power?","visibility":"Public","body":"parse_power(query(\"O\"))"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L115"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(preset[:pan], preset[:tilt])\n zoom_to(preset[:zoom])\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L132"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L125"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"do_poll\n@presets[name] = {pan: @pan, tilt: @tilt, zoom: self[:zoom].as_f}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L210"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"move_zoom(0, priority: 100)\njoystick(0, 0)\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L189"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case direction\nin .in?\n move_zoom(@default_movement_speed // 2)\nin .out?\n move_zoom(-@default_movement_speed)\nin .stop?\n move_zoom(0)\nend"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L177"},"def":{"name":"zoom?","visibility":"Public","body":"resp = query(\"GZ\")\nif resp.includes?(\"--\")\n message = \"camera in standby, operation unavailable\"\n logger.debug do\n message\n end\n message\nelse\n @zoom_raw = resp[2..-1].to_i(16)\n self[:zoom] = (@zoom_raw - ZOOM_MIN).to_f * (100.0 / ZOOM_RANGE)\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/panasonic/camera/he_series.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L167"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * ZOOM_RANGE).to_i + ZOOM_MIN\nrequest(\"AXZ\", (zoom_value.to_s(16)).upcase.rjust(3, '0')) do |resp|\n self[:zoom] = resp[3..-1].to_i(16)\nend\n"}}],"types":[{"html_id":"drivers/Panasonic/Camera/HESeries/Installation","path":"Panasonic/Camera/HESeries/Installation.html","kind":"enum","full_name":"Panasonic::Camera::HESeries::Installation","name":"Installation","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/camera/he_series.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Desk","name":"Desk","value":"0"},{"id":"Ceiling","name":"Ceiling","value":"1"}],"namespace":{"html_id":"drivers/Panasonic/Camera/HESeries","kind":"class","full_name":"Panasonic::Camera::HESeries","name":"HESeries"},"instance_methods":[{"html_id":"ceiling?-instance-method","name":"ceiling?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L220"},"def":{"name":"ceiling?","visibility":"Public","body":"self == Ceiling"}},{"html_id":"desk?-instance-method","name":"desk?","abstract":false,"location":{"filename":"src/panasonic/camera/he_series.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/camera/he_series.cr#L219"},"def":{"name":"desk?","visibility":"Public","body":"self == Desk"}}]}]}]},{"html_id":"drivers/Panasonic/Display","path":"Panasonic/Display.html","kind":"module","full_name":"Panasonic::Display","name":"Display","abstract":false,"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Display/Protocol2","path":"Panasonic/Display/Protocol2.html","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", input: \"IMS\", volume: \"AVL\", volume_query: \"QAV\", audio_mute: \"AMT\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HM1\", Inputs::HDMI2 => \"HM2\", Inputs::VGA => \"PC1\", Inputs::DVI => \"DVI\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Display","kind":"module","full_name":"Panasonic::Display","name":"Display"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L51"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?(priority: 0)\n mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","doc":"There is no input query command","summary":"

There is no input query command

","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L111"},"def":{"name":"input?","visibility":"Public","body":"self[:input]?"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There is no video mute command so this only mutes audio","summary":"

There is no video mute command so this only mutes audio

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L116"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"requested audio mute state: #{state}\"\n end\n do_send(:audio_mute, state ? 1 : 0)\nend"}},{"html_id":"mute?:Bool-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L129"},"def":{"name":"mute?","return_type":"Bool","visibility":"Public","body":"(do_send(:audio_mute)).get\n!!self[:audio_mute]?.try(&.as_bool)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L42"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(60.seconds) do\n do_poll\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"dispadmin\"\n@password = (setting?(String, :password)) || \"@Panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L78"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)\nend\npower?\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L91"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(:power_query, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L175"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic display sent: #{data} for #{task.try(&.name) || \"unknown\"}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\ndata = data[2..-1]\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"display busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"display error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on, :power_off, :power_query\n if (cmd == (:power_on)) || (cmd == (:power_off))\n self[:power] = cmd == (:power_on)\n end\n if cmd == (:power_query)\n self[:power] = val.not_nil!.to_i == 1\n end\n if power_target = @power_target\n if self[:power] == power_target\n @power_target = nil\n else\n power(power_target)\n end\n end\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :volume, :volume_query\n self[:volume] = val.not_nil!.to_f\nwhen :audio_mute\n self[:audio_mute] = val.not_nil!.to_i == 1\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L104"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"logger.debug do\n \"requested to switch to: #{input}\"\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nself[:input] = input\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/panasonic/display/protocol2.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L134"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = (val.to_f.clamp(0.0, 100.0)).round_away.to_i\n(do_send(:volume, val.to_s.rjust(3, '0'))).get\nself[:volume] = val\n"}},{"html_id":"volume?:Int32|Nil-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L142"},"def":{"name":"volume?","return_type":"Int32 | ::Nil","visibility":"Public","body":"(do_send(:volume_query)).get\nself[:volume]?.try(&.as_i)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L152"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L147"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Panasonic/Display/Protocol2/Inputs","path":"Panasonic/Display/Protocol2/Inputs.html","kind":"enum","full_name":"Panasonic::Display::Protocol2::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/display/protocol2.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L21"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"DVI","name":"DVI","value":"3"}],"namespace":{"html_id":"drivers/Panasonic/Display/Protocol2","kind":"class","full_name":"Panasonic::Display::Protocol2","name":"Protocol2"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L25"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L23"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L22"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/display/protocol2.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/display/protocol2.cr#L24"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Panasonic/Projector","path":"Panasonic/Projector.html","kind":"module","full_name":"Panasonic::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Panasonic","kind":"module","full_name":"Panasonic","name":"Panasonic"},"types":[{"html_id":"drivers/Panasonic/Projector/NTControl","path":"Panasonic/Projector/NTControl.html","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{power_on: \"PON\", power_off: \"POF\", power_query: \"QPW\", freeze: \"OFZ\", input: \"IIS\", mute: \"OSH\", lamp: \"Q$S\", lamp_hours: \"Q$L\"}"},{"id":"ERRORS","name":"ERRORS","value":"{\"ERR1\" => \"1: Undefined control command\", \"ERR2\" => \"2: Out of parameter range\", \"ERR3\" => \"3: Busy state or no-acceptable period\", \"ERR4\" => \"4: Timeout or no-acceptable period\", \"ERR5\" => \"5: Wrong data length\", \"ERRA\" => \"A: Password mismatch\", \"ER401\" => \"401: Command cannot be executed\", \"ER402\" => \"402: Invalid parameter is sent\"}"},{"id":"INPUT_LOOKUP","name":"INPUT_LOOKUP","value":"INPUTS.invert"},{"id":"INPUTS","name":"INPUTS","value":"{Inputs::HDMI => \"HD1\", Inputs::HDMI2 => \"HD2\", Inputs::VGA => \"RG1\", Inputs::VGA2 => \"RG2\", Inputs::Miracast => \"MC1\", Inputs::DVI => \"DVI\", Inputs::DisplayPort => \"DP1\", Inputs::HDBaseT => \"DL1\", Inputs::Composite => \"VID\"}"},{"id":"RESPONSES","name":"RESPONSES","value":"COMMANDS.to_h.invert"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Panasonic/Projector","kind":"module","full_name":"Panasonic::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L55"},"def":{"name":"disconnected","visibility":"Public","body":"if @channel.closed?\nelse\n @channel.close\nend"}},{"html_id":"lamp_hours?(**options)-instance-method","name":"lamp_hours?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L105"},"def":{"name":"lamp_hours?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp_hours, 1, **options)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes audio + video","summary":"

Mutes audio + video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L133"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"logger.debug do\n \"requested mute state: #{state}\"\nend\nactual = state ? 1 : 0\ndo_send(:mute, actual)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\")\nschedule.every(40.seconds) do\n power?(priority: 0)\n lamp_hours?(priority: 0)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L66"},"def":{"name":"on_update","visibility":"Public","body":"@username = (setting?(String, :username)) || \"admin1\"\n@password = (setting?(String, :password)) || \"panasonic\"\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L83"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:stable_power] = @stable_power = false\nself[:power_target] = state\nif state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:power_on, retries: 10, name: :power, delay: 8.seconds)\n do_send(:lamp)\nelse\n logger.debug do\n \"requested to power off\"\n end\n (do_send(:power_off, retries: 10, name: :power, delay: 8.seconds)).get\n schedule.in(10.seconds) do\n do_send(:lamp)\n end\nend\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L101"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(:lamp, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L158"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip\nlogger.debug do\n \"Panasonic sent: #{data}\"\nend\nif data.starts_with?(\"NTCONTROL\")\n if @channel && !@channel.closed?\n @channel.send(data[10] == '1' ? data[12..-1] : \"\")\n else\n transport.disconnect\n end\n return\nend\ntransport.disconnect\nif data[0] == 'E'\n self[:last_error] = error_msg = ERRORS[data]\n if {\"ERR3\", \"ERR4\"}.includes?(data)\n logger.info do\n \"projector busy: #{error_msg} (#{data})\"\n end\n task.try(&.retry)\n else\n logger.error do\n \"projector error: #{error_msg} (#{data})\"\n end\n task.try(&.abort(error_msg))\n end\n return\nend\nif task\nelse\n return\nend\ndata = data[2..-1]\nresp = data.split(':')\ncmd = RESPONSES[resp[0]]?\nval = resp[1]?\ncase cmd\nwhen :power_on\n self[:power] = true\nwhen :power_off\n self[:power] = false\nwhen :power_query\n self[:power] = val.not_nil!.to_i == 1\nwhen :freeze\n self[:frozen] = val.not_nil!.to_i == 1\nwhen :input\n self[:input] = INPUT_LOOKUP[val]\nwhen :mute\n state = self[:mute] = val.not_nil!.to_i == 1\n self[:mute0] = state\n self[:mute0_video] = state\n self[:mute0_audio] = state\nelse\n case task.name\n when \"lamp\"\n ival = resp[0].to_i\n self[:power] = {1, 2}.includes?(ival)\n self[:warming] = ival == 1\n self[:cooling] = ival == 3\n if !@stable_power\n if self[:power] == self[:power_target]\n self[:stable_power] = @stable_power = true\n else\n power(self[:power_target].as_bool)\n end\n end\n when \"lamp_hours\"\n self[:lamp_usage] = data.to_i\n end\nend\ntask.success\n"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L122"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"if self[:mute]\n unmute\nend\ndo_send(:input, INPUTS[input], delay: 2.seconds)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\nself[:input] = input\n"}}],"types":[{"html_id":"drivers/Panasonic/Projector/NTControl/Inputs","path":"Panasonic/Projector/NTControl/Inputs.html","kind":"enum","full_name":"Panasonic::Projector::NTControl::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/panasonic/projector/nt_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"HDMI2","name":"HDMI2","value":"1"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"3"},{"id":"Miracast","name":"Miracast","value":"4"},{"id":"DVI","name":"DVI","value":"5"},{"id":"DisplayPort","name":"DisplayPort","value":"6"},{"id":"HDBaseT","name":"HDBaseT","value":"7"},{"id":"Composite","name":"Composite","value":"8"}],"namespace":{"html_id":"drivers/Panasonic/Projector/NTControl","kind":"class","full_name":"Panasonic::Projector::NTControl","name":"NTControl"},"instance_methods":[{"html_id":"composite?-instance-method","name":"composite?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L31"},"def":{"name":"composite?","visibility":"Public","body":"self == Composite"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L29"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L28"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L30"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L24"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L23"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"miracast?-instance-method","name":"miracast?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L27"},"def":{"name":"miracast?","visibility":"Public","body":"self == Miracast"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L26"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/panasonic/projector/nt_control.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/panasonic/projector/nt_control.cr#L25"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]}]},{"html_id":"drivers/Pattr","path":"Pattr.html","kind":"module","full_name":"Pattr","name":"Pattr","abstract":false,"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Pattr/ChatBot","path":"Pattr/ChatBot.html","kind":"class","full_name":"Pattr::ChatBot","name":"ChatBot","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"chat_data_request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"chat_data_request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/pattr/chat_bot.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L45"},"def":{"name":"chat_data_request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nrequest = Request.from_json(body)\nresponse = case request\nin Location\n locate(request.referencing)\nend\npayload = response.to_json\nif @debug_webhook\n logger.debug do\n payload\n end\nend\n{HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, payload}\n"}},{"html_id":"locate(staff:Array(String))-instance-method","name":"locate","doc":"map reduce search for the users across all buildings","summary":"

map reduce search for the users across all buildings

","abstract":false,"args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"args_string":"(staff : Array(String))","args_html":"(staff : Array(String))","location":{"filename":"src/pattr/chat_bot.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L61"},"def":{"name":"locate","args":[{"name":"staff","external_name":"staff","restriction":"Array(String)"}],"visibility":"Public","body":"searches = staff.map do |username|\n email = username.includes?('@') ? username : nil\n queries = @buildings.map do |building|\n building[:LocationServices].locate_user(email, username)\n end\n {username, queries}\nend\nresponse = {} of String => PlaceLocationResult\nsearches.each do |__temp_871|\n username, queries = __temp_871\n locations = {} of String => PlaceLocationResult\n queries.each do |results|\n (Array(PlaceLocationResult).from_json(results.get.to_json)).map do |location|\n locations[location.location] = location\n end\n end\n if location = (locations[\"meeting\"]? || locations[\"wireless\"]?) || locations[\"desk\"]?\n response[username] = location\n end\nend\nresponse.transform_values do |location|\n case location.location\n when \"meeting\"\n {building: zones[location.building], level: zones[location.level], room: systems[location.sys_id.not_nil!]}\n else\n {building: zones[location.building], level: zones[location.level]}\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"@zones = Hash(String, String).new do |hash, key|\n zone = (staff_api.zone(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg0|\n __arg0.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\n@systems = Hash(String, String).new do |hash, key|\n zone = (staff_api.get_system(key)).get.as_h\n hash[key] = zone[\"display_name\"]?.try() do |__arg2|\n __arg2.as_s?.try(&.presence)\n end || zone[\"name\"].as_s\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/pattr/chat_bot.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\nbuildings = (setting?(Array(String), :buildings)) || [config.control_system.not_nil!.id]\n@buildings = buildings.map do |id|\n system(id)\nend\n"}}]},{"html_id":"drivers/Pattr/Location","path":"Pattr/Location.html","kind":"class","full_name":"Pattr::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},"ancestors":[{"html_id":"drivers/Pattr/Request","kind":"class","full_name":"Pattr::Request","name":"Request"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L15"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"referencing:Array(String)-instance-method","name":"referencing","doc":"user emails / usernames of users we want to locate","summary":"

user emails / usernames of users we want to locate

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L19"},"def":{"name":"referencing","return_type":"Array(String)","visibility":"Public","body":"@referencing"}},{"html_id":"request:String-instance-method","name":"request","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L16"},"def":{"name":"request","return_type":"String","visibility":"Public","body":"@request"}}]},{"html_id":"drivers/Pattr/PlaceLocationResult","path":"Pattr/PlaceLocationResult.html","kind":"class","full_name":"Pattr::PlaceLocationResult","name":"PlaceLocationResult","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building:String-instance-method","name":"building","doc":"zone ids","summary":"

zone ids

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L29"},"def":{"name":"building","return_type":"String","visibility":"Public","body":"@building"}},{"html_id":"level:String-instance-method","name":"level","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L30"},"def":{"name":"level","return_type":"String","visibility":"Public","body":"@level"}},{"html_id":"location:String-instance-method","name":"location","doc":"wireless, desk, meeting, booking","summary":"

wireless, desk, meeting, booking

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L26"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"sys_id:String|Nil-instance-method","name":"sys_id","doc":"system id (if it's a meeting room)","summary":"

system id (if it's a meeting room)

","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L33"},"def":{"name":"sys_id","return_type":"String | ::Nil","visibility":"Public","body":"@sys_id"}}]},{"html_id":"drivers/Pattr/Request","path":"Pattr/Request.html","kind":"class","full_name":"Pattr::Request","name":"Request","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/pattr/chat_bot_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Pattr/Location","kind":"class","full_name":"Pattr::Location","name":"Location"}],"namespace":{"html_id":"drivers/Pattr","kind":"module","full_name":"Pattr","name":"Pattr"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","doc":"request type hint","summary":"

request type hint

","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/pattr/chat_bot_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"request\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'request' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'request'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"location\"\n Location.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'request' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"user:String-instance-method","name":"user","abstract":false,"location":{"filename":"src/pattr/chat_bot_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/pattr/chat_bot_models.cr#L12"},"def":{"name":"user","return_type":"String","visibility":"Public","body":"@user"}}]}]},{"html_id":"drivers/Philips","path":"Philips.html","kind":"module","full_name":"Philips","name":"Philips","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Philips/Dynalite","path":"Philips/Dynalite.html","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynalite.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"254 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(1.minute) do\n logger.debug do\n \"maintaining connection\"\n end\n get_current_preset(1)\nend"}},{"html_id":"decrement_area_level(area:UInt8)-instance-method","name":"decrement_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L124"},"def":{"name":"decrement_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 5, 0, 0, 255])"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L24"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"get_current_preset(area:UInt8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L59"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 99, 0, 0, 255]\ndo_send(command, wait: true)\n"}},{"html_id":"get_light_level(area:Int32,channel:Int32=255)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, channel : Int32 = 255)","args_html":"(area : Int32, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L116"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"do_send(Bytes[28, area & 255, channel & 255, 97, 0, 0, 255], wait: true)"}},{"html_id":"increment_area_level(area:UInt8)-instance-method","name":"increment_area_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L120"},"def":{"name":"increment_area_level","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, 100, 6, 0, 0, 255])"}},{"html_id":"light_level(area:Int32,level:Float64,fade:Int32=1000,channel:Int32=255)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"args_string":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","args_html":"(area : Int32, level : Float64, fade : Int32 = 1000, channel : Int32 = 255)","location":{"filename":"src/philips/dynalite.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L78"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"},{"name":"channel","default_value":"255","external_name":"channel","restriction":"Int32"}],"visibility":"Public","body":"cmd = 113\nfade = if fade <= 25500\n fade // 100\nelse\n if fade < 255000\n cmd = 114\n fade // 1000\n else\n cmd = 115\n (fade // 60000).clamp(1, 22)\n end\nend\narea_key = ((Area.new(area.to_u32, channel: channel == 255 ? nil : channel.to_u32)).append(\"level\")).to_s\nself[area_key] = level\nlevel = ((level.clamp(0.0, 100.0)) * LEVEL_PERCENTAGE).to_u8\nlevel = 255_u8 - level\ncommand = Bytes[28, area & 255, channel & 255, cmd, level, fade & 255, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"lighting(area:Int32,state:Bool,fade:Int32=1000)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, state : Bool, fade : Int32 = 1000)","args_html":"(area : Int32, state : Bool, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L71"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"level = state ? 100.0 : 0.0\nlight_level(area, level, fade)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L215"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nget_light_level(area_id, area_channel.to_i)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynalite.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L204"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = check_arguments(area)\nget_current_preset(area_id.to_u8)\n"}},{"html_id":"link_area(area:UInt8,join:UInt8)-instance-method","name":"link_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt8, join : UInt8)","args_html":"(area : UInt8, join : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L134"},"def":{"name":"link_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"join","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Bytes[28, area, join, 20, 0, 0, 255])"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynalite.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\nqueue.delay = 35.milliseconds\ntransport.tokenizer = Tokenizer.new(8, Bytes[28])\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynalite.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L138"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received 0x#{data.hexstring}\"\nend\ncase data[3]\nwhen 0, 1, 2, 3, 10, 11, 12, 13\n number = data[3]\n if number > 3\n number = number - (10 + 4)\n end\n number = number + ((data[5] * 8) + 1)\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 98\n number = data[2] + 1\n self[Area.new(data[1].to_u32)] = number\n task.try(&.success(number))\nwhen 96\n level = data[4]\n level = 255 - level\n level = level / LEVEL_PERCENTAGE\n channel = data[2].to_u32\n area_key = ((Area.new(data[1].to_u32, channel: channel == 255_u32 ? nil : channel)).append(\"level\")).to_s\n self[area_key] = level\n task.try(&.success(level))\nelse\n task.try(&.success)\nend\n"}},{"html_id":"save_preset(area:UInt8,scene:UInt8)-instance-method","name":"save_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"args_string":"(area : UInt8, scene : UInt8)","args_html":"(area : UInt8, scene : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L65"},"def":{"name":"save_preset","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"scene","external_name":"scene","restriction":"UInt8"}],"visibility":"Public","body":"num = (scene - 1) & 255\ncommand = Bytes[28, area, num, 9, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L209"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\narea_channel = area.try(&.channel) || 255_u32\nlight_level(area_id, level, fade_time.to_i, area_channel.to_i)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynalite.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L199"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id = check_arguments(area)\ntrigger(area_id, scene.to_i, fade_time.to_i)\n"}},{"html_id":"stop_all_fading(area:UInt8)-instance-method","name":"stop_all_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L111"},"def":{"name":"stop_all_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, 0, 122, 0, 0, 255]\ndo_send(command)\n"}},{"html_id":"stop_fading(area:UInt8,channel:UInt8=255_u8)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"args_string":"(area : UInt8, channel : UInt8 = 255_u8)","args_html":"(area : UInt8, channel : UInt8 = 255_u8)","location":{"filename":"src/philips/dynalite.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L106"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt8"},{"name":"channel","default_value":"255_u8","external_name":"channel","restriction":"UInt8"}],"visibility":"Public","body":"command = Bytes[28, area, channel, 118, 0, 0, 255]\ndo_send(command, name: \"level_#{area}_#{channel}\")\n"}},{"html_id":"trigger(area:Int32,scene:Int32,fade:Int32=1000)-instance-method","name":"trigger","doc":"fade_time in millisecond","summary":"

fade_time in millisecond

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"args_string":"(area : Int32, scene : Int32, fade : Int32 = 1000)","args_html":"(area : Int32, scene : Int32, fade : Int32 = 1000)","location":{"filename":"src/philips/dynalite.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L37"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"Int32"},{"name":"scene","external_name":"scene","restriction":"Int32"},{"name":"fade","default_value":"1000","external_name":"fade","restriction":"Int32"}],"visibility":"Public","body":"fade_centi = fade // 10\nself[Area.new(area.to_u32)] = scene\nscene = scene - 1\nbank = scene // 8\nscene = scene - (bank * 8)\nif scene >= 4\n scene = scene + 6\nend\ncommand = Bytes[28, area & 255, fade_centi & 255, scene & 255, (fade_centi >> 8) & 255, bank, 255]\nschedule.in((fade + 200).milliseconds) do\n get_light_level(area)\nend\ndo_send(command, name: \"preset_#{area}_#{scene}\")\n"}},{"html_id":"unlink_area(area:UInt8)-instance-method","name":"unlink_area","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"args_string":"(area : UInt8)","args_html":"(area : UInt8)","location":{"filename":"src/philips/dynalite.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L128"},"def":{"name":"unlink_area","args":[{"name":"area","external_name":"area","restriction":"UInt8"}],"visibility":"Public","body":"link_area(area, 0_u8)"}}],"types":[{"html_id":"drivers/Philips/Dynalite/Area","path":"Philips/Dynalite/Area.html","kind":"alias","full_name":"Philips::Dynalite::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynalite.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynalite.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Dynalite","kind":"class","full_name":"Philips::Dynalite","name":"Dynalite"}}]},{"html_id":"drivers/Philips/DyNetText","path":"Philips/DyNetText.html","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/dynet_text.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L28"},"def":{"name":"connected","visibility":"Public","body":"@ready = false\nself[:ready] = false\nschedule.every(60.seconds) do\n logger.debug do\n \"-- polling gateway\"\n end\n get_date\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L38"},"def":{"name":"disconnected","visibility":"Public","body":"new_telnet_client\nschedule.clear\n"}},{"html_id":"get_current_preset(area:UInt16,join:UInt8=255_u8)-instance-method","name":"get_current_preset","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8)","args_html":"(area : UInt16, join : UInt8 = 255_u8)","location":{"filename":"src/philips/dynet_text.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L169"},"def":{"name":"get_current_preset","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"}],"visibility":"Public","body":"do_send(\"RequestCurrentPreset #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}\" : \"get_area#{area}_#{join}\"))"}},{"html_id":"get_date-instance-method","name":"get_date","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L152"},"def":{"name":"get_date","visibility":"Public","body":"do_send(\"RequestDate\", name: :date)"}},{"html_id":"get_light_level(area:UInt16,join:UInt8=255_u8,channel:UInt16=1_u16)-instance-method","name":"get_light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 1_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L183"},"def":{"name":"get_light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"1_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"RequestChannelLevel #{channel} #{area} #{join}\", name: (join == 255_u8 ? \"get_area#{area}_level\" : \"get_area#{area}_#{join}_level\"))"}},{"html_id":"get_time-instance-method","name":"get_time","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L156"},"def":{"name":"get_time","visibility":"Public","body":"do_send(\"RequestTime\", name: :time)"}},{"html_id":"light_level(area:UInt16,level:Float64,join:UInt8=255_u8,fade:UInt32=1000_u32,channel:UInt16=0_u16)-instance-method","name":"light_level","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, level : Float64, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L177"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"level","external_name":"level","restriction":"Float64"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"level = level.round_away.to_i\ndo_send(\"ChannelLevel #{channel} #{level.clamp(0, 100)} #{area} #{fade} #{join}\", name: \"level#{area}_#{channel}_#{join}\")\n"}},{"html_id":"lighting(area:UInt16,state:Bool,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"lighting","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, state : Bool, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L173"},"def":{"name":"lighting","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"state","external_name":"state","restriction":"Bool"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"light_level(area, state ? 100.0 : 0.0, join, fade)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L218"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 1_u32\nget_light_level(area_id, area_join, area_channel.to_u16)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/dynet_text.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L207"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\nget_current_preset(area_id, area_join)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/philips/dynet_text.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L22"},"def":{"name":"on_load","visibility":"Public","body":"new_telnet_client\ntransport.pre_processor do |bytes|\n telnet.buffer(bytes)\nend\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/philips/dynet_text.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L48"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = (String.new(data)).strip(\"\\u0000\\r\\n\\t \")\nif data.empty?\n return\nend\nlogger.debug do\n \"Dynalite sent: #{data}\"\nend\nif @ready\n components = (data.split(\", \")).map do |component|\n parts = component.downcase.split\n value = parts.pop\n key = parts.join(' ')\n {key, value}\n end.to_h\n process_response(data, components, task)\nelse\n if data =~ (/Connection Established/i)\n @ready = true\n self[:ready] = true\n do_send(\"Echo 0\", name: \"echo\")\n do_send(\"Verbose\", name: \"verbose\")\n do_send(\"ReplyOK 1\", name: \"replies\")\n do_send(\"Join 255\", name: \"join\")\n end\nend\n"}},{"html_id":"send_custom(data:String)-instance-method","name":"send_custom","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/philips/dynet_text.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L165"},"def":{"name":"send_custom","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"do_send(data)"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L212"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\narea_channel = area.try(&.channel) || 0_u32\nlight_level(area_id, level, area_join, fade_time, area_channel.to_u16)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L202"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area_id, area_join = check_arguments(area)\ntrigger(area_id, scene.to_u16, area_join, fade_time)\n"}},{"html_id":"stop_fading(area:UInt16,join:UInt8=255_u8,channel:UInt16=0_u16)-instance-method","name":"stop_fading","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"args_string":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","args_html":"(area : UInt16, join : UInt8 = 255_u8, channel : UInt16 = 0_u16)","location":{"filename":"src/philips/dynet_text.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L188"},"def":{"name":"stop_fading","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"channel","default_value":"0_u16","external_name":"channel","restriction":"UInt16"}],"visibility":"Public","body":"do_send(\"StopFade #{channel} #{area} #{join}\", name: \"stopfade#{area}_#{join}_#{channel}\")"}},{"html_id":"trigger(area:UInt16,scene:UInt16,join:UInt8=255_u8,fade:UInt32=1000_u32)-instance-method","name":"trigger","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"args_string":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","args_html":"(area : UInt16, scene : UInt16, join : UInt8 = 255_u8, fade : UInt32 = 1000_u32)","location":{"filename":"src/philips/dynet_text.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L160"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt16"},{"name":"scene","external_name":"scene","restriction":"UInt16"},{"name":"join","default_value":"255_u8","external_name":"join","restriction":"UInt8"},{"name":"fade","default_value":"1000_u32","external_name":"fade","restriction":"UInt32"}],"visibility":"Public","body":"do_send(\"Preset #{scene} #{area} #{fade} #{join}\", name: \"preset#{area}_#{join}\")"}}],"types":[{"html_id":"drivers/Philips/DyNetText/Area","path":"Philips/DyNetText/Area.html","kind":"alias","full_name":"Philips::DyNetText::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/dynet_text.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/dynet_text.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/DyNetText","kind":"class","full_name":"Philips::DyNetText","name":"DyNetText"}}]},{"html_id":"drivers/Philips/Hue","path":"Philips/Hue.html","kind":"class","full_name":"Philips::Hue","name":"Hue","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Philips","kind":"module","full_name":"Philips","name":"Philips"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"app_key:String-instance-method","name":"app_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L33"},"def":{"name":"app_key","return_type":"String","visibility":"Public","body":"@app_key"}},{"html_id":"client_key:String-instance-method","name":"client_key","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L36"},"def":{"name":"client_key","return_type":"String","visibility":"Public","body":"@client_key"}},{"html_id":"device_list-instance-method","name":"device_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L96"},"def":{"name":"device_list","visibility":"Public","body":"resource_details(Resource::Device)"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L184"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\nelse\n raise(\"no area provided\")\nend\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\njson = resource_details(resource, area_id)\nstate = json[\"on\"][\"on\"].as_bool\nstate ? json[\"dimming\"][\"brightness\"].as_i : 0\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L170"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"raise(\"not really a thing\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@app_key = setting(String, :app_key)\n@client_key = setting(String, :client_key)\n@scenes = (setting?(Array(String), :scenes)) || ([] of String)\n"}},{"html_id":"register-instance-method","name":"register","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L52"},"def":{"name":"register","visibility":"Public","body":"response = post(\"/api\", body: {devicetype: \"placeos##{module_id}\", generateclientkey: true}.to_json)\nif response.success?\nelse\n raise(\"unknown error: #{response.body}\")\nend\nresp = (Array(RegResponse).from_json(response.body))[0]\nif success = resp.success\n @app_key = success.username\n @client_key = success.clientkey\n define_setting(:app_key, @app_key)\n define_setting(:client_key, @client_key)\n @app_key\nelse\n error = resp.error.as(HueError)\n logger.error do\n \"type #{error.type}: #{error.description}\"\n end\n error.description\nend\n"}},{"html_id":"resource_details(resource:Resource,id:String|Nil=nil)-instance-method","name":"resource_details","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(resource : Resource, id : String | Nil = nil)","args_html":"(resource : Resource, id : String | Nil = nil)","location":{"filename":"src/philips/hue.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L88"},"def":{"name":"resource_details","args":[{"name":"resource","external_name":"resource","restriction":"Resource"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = get(\"/clip/v2/resource/#{resource.to_s.underscore}#{id.presence ? \"/#{id}\" : \"\"}\", headers: HTTP::Headers {\"hue-application-key\" => app_key})\nJSON.parse(response.body)\n"}},{"html_id":"rgb_to_cie(r:UInt8,g:UInt8,b:UInt8):Tuple(Float64,Float64)-instance-method","name":"rgb_to_cie","doc":"convert RGB to CIE which is used by Hue","summary":"

convert RGB to CIE which is used by Hue

","abstract":false,"args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"args_string":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","args_html":"(r : UInt8, g : UInt8, b : UInt8) : Tuple(Float64, Float64)","location":{"filename":"src/philips/hue.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L105"},"def":{"name":"rgb_to_cie","args":[{"name":"r","external_name":"r","restriction":"UInt8"},{"name":"g","external_name":"g","restriction":"UInt8"},{"name":"b","external_name":"b","restriction":"UInt8"}],"return_type":"Tuple(Float64, Float64)","visibility":"Public","body":"r_norm = r / 255.0\ng_norm = g / 255.0\nb_norm = b / 255.0\nr_lin = (r_norm > 0.04045) ? ((r_norm + 0.055) / 1.055) ** 2.4 : r_norm / 12.92\ng_lin = (g_norm > 0.04045) ? ((g_norm + 0.055) / 1.055) ** 2.4 : g_norm / 12.92\nb_lin = (b_norm > 0.04045) ? ((b_norm + 0.055) / 1.055) ** 2.4 : b_norm / 12.92\nx = ((r_lin * 0.4124) + (g_lin * 0.3576)) + (b_lin * 0.1805)\ny = ((r_lin * 0.2126) + (g_lin * 0.7152)) + (b_lin * 0.0722)\nz = ((r_lin * 0.0193) + (g_lin * 0.1192)) + (b_lin * 0.9505)\nxy_x = x / ((x + y) + z)\nxy_y = y / ((x + y) + z)\n{xy_x, xy_y}\n"}},{"html_id":"scene_list-instance-method","name":"scene_list","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L100"},"def":{"name":"scene_list","visibility":"Public","body":"resource_details(Resource::Scene)"}},{"html_id":"scenes:Array(String)-instance-method","name":"scenes","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L38"},"def":{"name":"scenes","return_type":"Array(String)","visibility":"Public","body":"@scenes"}},{"html_id":"set_light_colour(light_id:Int32,r:UInt8=0_u8,g:UInt8=0_u8,b:UInt8=0_u8)-instance-method","name":"set_light_colour","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"args_string":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","args_html":"(light_id : Int32, r : UInt8 = 0_u8, g : UInt8 = 0_u8, b : UInt8 = 0_u8)","location":{"filename":"src/philips/hue.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L128"},"def":{"name":"set_light_colour","args":[{"name":"light_id","external_name":"light_id","restriction":"Int32"},{"name":"r","default_value":"0_u8","external_name":"r","restriction":"UInt8"},{"name":"g","default_value":"0_u8","external_name":"g","restriction":"UInt8"},{"name":"b","default_value":"0_u8","external_name":"b","restriction":"UInt8"}],"visibility":"Public","body":"x, y = rgb_to_cie(r, g, b)\nresponse = put(\"/clip/v2/resource/light/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {color: {xy: {x: x, y: y}}}.to_json)\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"set_light_level(light_id:String,level:UInt32,resource:Resource=Resource::Light)-instance-method","name":"set_light_level","abstract":false,"args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"args_string":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","args_html":"(light_id : String, level : UInt32, resource : Resource = Resource::Light)","location":{"filename":"src/philips/hue.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L137"},"def":{"name":"set_light_level","args":[{"name":"light_id","external_name":"light_id","restriction":"String"},{"name":"level","external_name":"level","restriction":"UInt32"},{"name":"resource","default_value":"Resource::Light","external_name":"resource","restriction":"Resource"}],"visibility":"Public","body":"level = level.clamp(0, 100)\nif level == 0\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: false}}.to_json)\nelse\n response = put(\"/clip/v2/resource/#{resource.to_s.underscore}/#{light_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {on: {on: true}, dimming: {brightness: level}}.to_json)\nend\nif response.success?\nelse\n raise(\"error controlling light (#{response.status})\\n#{response.body}\")\nend\nlevel\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L174"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"level_int = level.round_away.to_u32\narea = area.as(Area)\narea_id = area.id.as(String)\nresource = Resource.parse(area.component || \"light\")\nset_light_level(area_id, level_int, resource)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","doc":"==================\nLighting Interface\n==================","summary":"

================== Lighting Interface ==================

","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/philips/hue.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L165"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"scene_id = @scenes[scene]\nset_scene(scene_id)\n"}},{"html_id":"set_scene(scene_id:String)-instance-method","name":"set_scene","abstract":false,"args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"args_string":"(scene_id : String)","args_html":"(scene_id : String)","location":{"filename":"src/philips/hue.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L154"},"def":{"name":"set_scene","args":[{"name":"scene_id","external_name":"scene_id","restriction":"String"}],"visibility":"Public","body":"response = put(\"/clip/v2/resource/scene/#{scene_id}\", headers: HTTP::Headers {\"hue-application-key\" => app_key}, body: {recall: {action: :active}}.to_json)\nif response.success?\nelse\n raise(\"error activating scene (#{response.status})\\n#{response.body}\")\nend\nresponse.body\n"}}],"types":[{"html_id":"drivers/Philips/Hue/Area","path":"Philips/Hue/Area.html","kind":"alias","full_name":"Philips::Hue::Area","name":"Area","abstract":false,"locations":[{"filename":"src/philips/hue.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"doc":"component == resource\nid == id","summary":"

component == resource id == id

"},{"html_id":"drivers/Philips/Hue/HueError","path":"Philips/Hue/HueError.html","kind":"struct","full_name":"Philips::Hue::HueError","name":"HueError","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(type:Int32,address:String,description:String)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(type : Int32, address : String, description : String)","args_html":"(type : Int32, address : String, description : String)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"Int32"},{"name":"address","external_name":"address","restriction":"String"},{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, address, description)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"String","visibility":"Public","body":"@address"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@type.clone, @address.clone, @description.clone)"}},{"html_id":"copy_with(type_type=@type,address_address=@address,description_description=@description)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"args_string":"(type _type = @type, address _address = @address, description _description = @description)","args_html":"(type _type = @type, address _address = @address, description _description = @description)","location":{"filename":"src/philips/hue.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L40"},"def":{"name":"copy_with","args":[{"name":"_type","default_value":"@type","external_name":"type","restriction":""},{"name":"_address","default_value":"@address","external_name":"address","restriction":""},{"name":"_description","default_value":"@description","external_name":"description","restriction":""}],"visibility":"Public","body":"self.class.new(_type, _address, _description)"}},{"html_id":"description:String-instance-method","name":"description","abstract":false,"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"type:Int32-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Int32","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/Philips/Hue/RegResponse","path":"Philips/Hue/RegResponse.html","kind":"struct","full_name":"Philips::Hue::RegResponse","name":"RegResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(success:RegSuccess|Nil,error:HueError|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"args_string":"(success : RegSuccess | Nil, error : HueError | Nil)","args_html":"(success : RegSuccess | Nil, error : HueError | Nil)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"new","args":[{"name":"success","external_name":"success","restriction":"RegSuccess | ::Nil"},{"name":"error","external_name":"error","restriction":"HueError | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(success, error)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@success.clone, @error.clone)"}},{"html_id":"copy_with(success_success=@success,error_error=@error)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"args_string":"(success _success = @success, error _error = @error)","args_html":"(success _success = @success, error _error = @error)","location":{"filename":"src/philips/hue.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L48"},"def":{"name":"copy_with","args":[{"name":"_success","default_value":"@success","external_name":"success","restriction":""},{"name":"_error","default_value":"@error","external_name":"error","restriction":""}],"visibility":"Public","body":"self.class.new(_success, _error)"}},{"html_id":"error:HueError|Nil-instance-method","name":"error","abstract":false,"def":{"name":"error","return_type":"HueError | ::Nil","visibility":"Public","body":"@error"}},{"html_id":"success:RegSuccess|Nil-instance-method","name":"success","abstract":false,"def":{"name":"success","return_type":"RegSuccess | ::Nil","visibility":"Public","body":"@success"}}]},{"html_id":"drivers/Philips/Hue/RegSuccess","path":"Philips/Hue/RegSuccess.html","kind":"struct","full_name":"Philips::Hue::RegSuccess","name":"RegSuccess","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"constructors":[{"html_id":"new(username:String,clientkey:String)-class-method","name":"new","abstract":false,"args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"args_string":"(username : String, clientkey : String)","args_html":"(username : String, clientkey : String)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"new","args":[{"name":"username","external_name":"username","restriction":"String"},{"name":"clientkey","external_name":"clientkey","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(username, clientkey)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/philips/hue.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clientkey:String-instance-method","name":"clientkey","abstract":false,"def":{"name":"clientkey","return_type":"String","visibility":"Public","body":"@clientkey"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@username.clone, @clientkey.clone)"}},{"html_id":"copy_with(username_username=@username,clientkey_clientkey=@clientkey)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"args_string":"(username _username = @username, clientkey _clientkey = @clientkey)","args_html":"(username _username = @username, clientkey _clientkey = @clientkey)","location":{"filename":"src/philips/hue.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L44"},"def":{"name":"copy_with","args":[{"name":"_username","default_value":"@username","external_name":"username","restriction":""},{"name":"_clientkey","default_value":"@clientkey","external_name":"clientkey","restriction":""}],"visibility":"Public","body":"self.class.new(_username, _clientkey)"}},{"html_id":"username:String-instance-method","name":"username","abstract":false,"def":{"name":"username","return_type":"String","visibility":"Public","body":"@username"}}]},{"html_id":"drivers/Philips/Hue/Resource","path":"Philips/Hue/Resource.html","kind":"enum","full_name":"Philips::Hue::Resource","name":"Resource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/philips/hue.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L74"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Light","name":"Light","value":"0"},{"id":"Scene","name":"Scene","value":"1"},{"id":"Room","name":"Room","value":"2"},{"id":"Zone","name":"Zone","value":"3"},{"id":"GroupedLight","name":"GroupedLight","value":"4"},{"id":"Device","name":"Device","value":"5"},{"id":"Motion","name":"Motion","value":"6"},{"id":"GroupedMotion","name":"GroupedMotion","value":"7"},{"id":"GroupedLightLevel","name":"GroupedLightLevel","value":"8"},{"id":"CameraMotion","name":"CameraMotion","value":"9"},{"id":"Temperature","name":"Temperature","value":"10"}],"namespace":{"html_id":"drivers/Philips/Hue","kind":"class","full_name":"Philips::Hue","name":"Hue"},"instance_methods":[{"html_id":"camera_motion?-instance-method","name":"camera_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L84"},"def":{"name":"camera_motion?","visibility":"Public","body":"self == CameraMotion"}},{"html_id":"device?-instance-method","name":"device?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L80"},"def":{"name":"device?","visibility":"Public","body":"self == Device"}},{"html_id":"grouped_light?-instance-method","name":"grouped_light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L79"},"def":{"name":"grouped_light?","visibility":"Public","body":"self == GroupedLight"}},{"html_id":"grouped_light_level?-instance-method","name":"grouped_light_level?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L83"},"def":{"name":"grouped_light_level?","visibility":"Public","body":"self == GroupedLightLevel"}},{"html_id":"grouped_motion?-instance-method","name":"grouped_motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L82"},"def":{"name":"grouped_motion?","visibility":"Public","body":"self == GroupedMotion"}},{"html_id":"light?-instance-method","name":"light?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L75"},"def":{"name":"light?","visibility":"Public","body":"self == Light"}},{"html_id":"motion?-instance-method","name":"motion?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L81"},"def":{"name":"motion?","visibility":"Public","body":"self == Motion"}},{"html_id":"room?-instance-method","name":"room?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L77"},"def":{"name":"room?","visibility":"Public","body":"self == Room"}},{"html_id":"scene?-instance-method","name":"scene?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L76"},"def":{"name":"scene?","visibility":"Public","body":"self == Scene"}},{"html_id":"temperature?-instance-method","name":"temperature?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L85"},"def":{"name":"temperature?","visibility":"Public","body":"self == Temperature"}},{"html_id":"zone?-instance-method","name":"zone?","abstract":false,"location":{"filename":"src/philips/hue.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/philips/hue.cr#L78"},"def":{"name":"zone?","visibility":"Public","body":"self == Zone"}}]}]}]},{"html_id":"drivers/Place","path":"Place.html","kind":"module","full_name":"Place","name":"Place","abstract":false,"locations":[{"filename":"src/place/area_config.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L4"},{"filename":"src/place/meet/help.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L3"},{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Place/AreaConfig","path":"Place/AreaConfig.html","kind":"class","full_name":"Place::AreaConfig","name":"AreaConfig","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:String,name,coordinates,building_id=nil,area_type:String=\"Feature\",feature_type:String=\"section\",capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"args_string":"(id : String, name, coordinates, building_id = nil, area_type : String = \"Feature\", feature_type : String = \"section\", capacity = nil)","args_html":"(id : String, name, coordinates, building_id = nil, area_type : String = "Feature", feature_type : String = "section", capacity = nil)","location":{"filename":"src/place/area_config.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L19"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::String"},{"name":"name","external_name":"name","restriction":""},{"name":"coordinates","external_name":"coordinates","restriction":""},{"name":"building_id","default_value":"nil","external_name":"building_id","restriction":""},{"name":"area_type","default_value":"\"Feature\"","external_name":"area_type","restriction":"::String"},{"name":"feature_type","default_value":"\"section\"","external_name":"feature_type","restriction":"::String"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, name, coordinates, building_id, area_type, feature_type, capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L33"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/place/area_config.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L33"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}},{"html_id":"building:String|Nil-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L46"},"def":{"name":"building","return_type":"String | ::Nil","visibility":"Public","body":"self.properties[\"building_id\"]?.as?(String)"}},{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L50"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"(self.properties[\"capacity\"]?.as?(Int64 | Float64)).try(&.to_i)"}},{"html_id":"coordinates(map_width:Float64,map_height:Float64)-instance-method","name":"coordinates","abstract":false,"args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"args_string":"(map_width : Float64, map_height : Float64)","args_html":"(map_width : Float64, map_height : Float64)","location":{"filename":"src/place/area_config.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L62"},"def":{"name":"coordinates","args":[{"name":"map_width","external_name":"map_width","restriction":"Float64"},{"name":"map_height","external_name":"map_height","restriction":"Float64"}],"visibility":"Public","body":"@adjusted_coords = self.geometry.coordinates.map do |__temp_884|\n x, y = __temp_884\n {x * map_width, y * map_height}\nend"}},{"html_id":"coordinates-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L54"},"def":{"name":"coordinates","visibility":"Public","body":"if coords = @adjusted_coords\n coords\nelse\n self.geometry.coordinates\nend"}},{"html_id":"feature_type:String-instance-method","name":"feature_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L34"},"def":{"name":"feature_type","return_type":"String","visibility":"Public","body":"@feature_type"}},{"html_id":"feature_type=(feature_type:String)-instance-method","name":"feature_type=","abstract":false,"args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"args_string":"(feature_type : String)","args_html":"(feature_type : String)","location":{"filename":"src/place/area_config.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L34"},"def":{"name":"feature_type=","args":[{"name":"feature_type","external_name":"feature_type","restriction":"String"}],"visibility":"Public","body":"@feature_type = feature_type"}},{"html_id":"geometry:Geometry-instance-method","name":"geometry","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L36"},"def":{"name":"geometry","return_type":"Geometry","visibility":"Public","body":"@geometry"}},{"html_id":"geometry=(geometry:Geometry)-instance-method","name":"geometry=","abstract":false,"args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"args_string":"(geometry : Geometry)","args_html":"(geometry : Geometry)","location":{"filename":"src/place/area_config.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L36"},"def":{"name":"geometry=","args":[{"name":"geometry","external_name":"geometry","restriction":"Geometry"}],"visibility":"Public","body":"@geometry = geometry"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L30"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/area_config.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L42"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"self.properties[\"name\"].as(String)"}},{"html_id":"polygon:Polygon-instance-method","name":"polygon","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L66"},"def":{"name":"polygon","return_type":"Polygon","visibility":"Public","body":"@polygon || (@polygon = Polygon.new(coordinates.map do |coords|\n Point.new(*coords)\nend))"}},{"html_id":"properties:Hash(String,JSON::Any::Type)-instance-method","name":"properties","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L37"},"def":{"name":"properties","return_type":"Hash(String, JSON::Any::Type)","visibility":"Public","body":"@properties"}},{"html_id":"properties=(properties:Hash(String,JSON::Any::Type))-instance-method","name":"properties=","abstract":false,"args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"args_string":"(properties : Hash(String, JSON::Any::Type))","args_html":"(properties : Hash(String, JSON::Any::Type))","location":{"filename":"src/place/area_config.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L37"},"def":{"name":"properties=","args":[{"name":"properties","external_name":"properties","restriction":"Hash(String, JSON::Any::Type)"}],"visibility":"Public","body":"@properties = properties"}}]},{"html_id":"drivers/Place/AreaManagement","path":"Place/AreaManagement.html","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"areas:Hash(String,AreaConfig)-instance-method","name":"areas","doc":"area_id => area","summary":"

area_id => area

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L80"},"def":{"name":"areas","return_type":"Hash(String, AreaConfig)","visibility":"Public","body":"@areas"}},{"html_id":"building_id:String-instance-method","name":"building_id","doc":"PlaceOS client config","summary":"

PlaceOS client config

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L87"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.as(String))\nelse\n __temp_1\nend"}},{"html_id":"campus?:Bool-instance-method","name":"campus?","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L71"},"def":{"name":"campus?","return_type":"Bool","visibility":"Public","body":"@campus"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L160"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"is_inside?(x:Float64,y:Float64,area_id:String):Bool-instance-method","name":"is_inside?","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(x : Float64, y : Float64, area_id : String) : Bool","args_html":"(x : Float64, y : Float64, area_id : String) : Bool","location":{"filename":"src/place/area_management.cr","line_number":581,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L581"},"def":{"name":"is_inside?","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"area = @areas[area_id]\narea.polygon.contains(x, y)\n"}},{"html_id":"level_areas:Hash(String,Array(AreaConfig))-instance-method","name":"level_areas","doc":"zone_id => areas","summary":"

zone_id => areas

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L78"},"def":{"name":"level_areas","return_type":"Hash(String, Array(AreaConfig))","visibility":"Public","body":"@level_areas"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L74"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"@level_buildings"}},{"html_id":"level_details:Hash(String,LevelCapacity)-instance-method","name":"level_details","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L84"},"def":{"name":"level_details","return_type":"Hash(String, LevelCapacity)","visibility":"Public","body":"@level_details"}},{"html_id":"level_sensors:Hash(String,Hash(String,SensorMeta))-instance-method","name":"level_sensors","doc":"zone_id => sensors","summary":"

zone_id => sensors

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L76"},"def":{"name":"level_sensors","return_type":"Hash(String, Hash(String, SensorMeta))","visibility":"Public","body":"@level_sensors"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L105"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\nspawn do\n update_scheduler\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L112"},"def":{"name":"on_unload","visibility":"Public","body":"@rate_limit.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L116"},"def":{"name":"on_update","visibility":"Public","body":"@include_sensors = (setting?(Bool, :include_sensors)) || false\n@campus = (setting?(Bool, :is_campus)) || false\n@desk_id_mappings = (setting?(Array(String), :desk_id_mappings)) || ([] of String)\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@location_service = (setting?(String, :location_service)).presence || \"LocationServices\"\n@duplication_factor = (setting?(Float64, :duplication_factor)) || 0.8\n@sensor_discovery = Hash(String, Hash(String, SensorMeta)).new do |hash, key|\n hash[key] = {} of String => SensorMeta\nend\n@rounding_precision = (setting?(UInt32, :rounding_precision)) || 2_u32\nif building_areas = setting?(Hash(String, Array(AreaSetting)), :areas)\n @level_areas.clear\n building_areas.each do |zone_id, areas|\n @level_areas[zone_id] = areas.map do |area|\n config = AreaConfig.new(area[:id], area[:name], area[:coordinates], area[:building])\n @areas[config.id] = config\n config\n end\n end\nend\nschedule.clear\nschedule.every(@poll_rate) do\n synchronize_all_levels\nend\nif @include_sensors\n schedule.in(@poll_rate * 3) do\n schedule.every(2.hours + (rand(300)).seconds, immediate: true) do\n write_sensor_discovery\n end\n end\nend\nunits = (setting?(Hash(String, String), :units)) || ({} of String => String)\n@units = units.transform_keys do |key|\n SensorType.parse(key)\nend\n"}},{"html_id":"request_level_locations(level_id:String,sensor_data:Array(SensorDetail)|Nil=nil,overview:Bool=true):Nil-instance-method","name":"request_level_locations","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"args_string":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","args_html":"(level_id : String, sensor_data : Array(SensorDetail) | Nil = nil, overview : Bool = true) : Nil","location":{"filename":"src/place/area_management.cr","line_number":562,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L562"},"def":{"name":"request_level_locations","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"sensor_data","default_value":"nil","external_name":"sensor_data","restriction":"Array(SensorDetail) | ::Nil"},{"name":"overview","default_value":"true","external_name":"overview","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@update_lock.synchronize do\n zone = Zone.from_json((staff_api.zone(level_id)).get.to_json)\n if !(zone.tags.includes?(\"level\"))\n logger.warn do\n \"attempted to update location for #{zone.name} (#{level_id}) which is not tagged as a level\"\n end\n return\n end\n metadata = Metadata.from_json((staff_api.metadata(level_id)).get.to_json)\n update_level_details(@level_details, zone, metadata)\n update_level_locations(@level_counts, level_id, @level_details[level_id], sensor_data)\n if overview\n update_overview\n end\nend"}},{"html_id":"request_sensor_data(level_id:String):Array(SensorDetail)-instance-method","name":"request_sensor_data","doc":"Queries all the sensors in a building and exposes the data","summary":"

Queries all the sensors in a building and exposes the data

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Array(SensorDetail)","args_html":"(level_id : String) : Array(SensorDetail)","location":{"filename":"src/place/area_management.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L206"},"def":{"name":"request_sensor_data","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Array(SensorDetail)","visibility":"Public","body":"level_sensors = @level_sensors[level_id]?\nsensors = location_service.sensors(zone_id: level_id).get.as_a\nif sensors.empty?\n return [] of SensorDetail\nend\ndetails = Array(SensorDetail).from_json(sensors.to_json)\nbuilding_id_local = level_buildings[level_id]? || building_id\nlocs = sensor_locations(level_id)\ndetails = details.select! do |sensor|\n id = sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac\n @sensor_discovery[building_id_local][id] = SensorMeta.new(sensor.name, sensor.type, sensor.level, sensor.x, sensor.y)\n sensor.module_id = sensor.binding = sensor.loc = nil\n if location = locs[id]?\n sensor.x = location.x\n sensor.y = location.y\n sensor.level = location.level\n sensor.building = building_id_local\n end\n if sensor.level.nil? && level_sensors\n if level_sensors[sensor.id ? \"#{sensor.mac}-#{sensor.id}\" : sensor.mac]?\n sensor.level = level_id\n end\n end\n if sensor.x && sensor.level\n if ((curr_unit = sensor.unit) && (desired_unit = @units[sensor.type]?)) && (curr_unit != desired_unit)\n begin\n sensor.value = ((Units::Measurement.new(sensor.value, curr_unit)).convert_to(desired_unit)).to_f\n sensor.unit = desired_unit\n rescue error\n logger.warn(exception: error) do\n \"failed to convert #{sensor.value} #{curr_unit} => #{desired_unit}\"\n end\n end\n end\n sensor\n end\nend\nself[\"#{level_id}:sensors\"] = {value: details, ts_hint: \"complex\", ts_map: {x: \"xloc\", y: \"yloc\"}, ts_tag_keys: {\"s2_cell_id\"}, ts_tags: {pos_building: building_id_local, pos_level: level_id}}\ndetails\n"}},{"html_id":"sensor_discovery:Hash(String,Hash(String,Place::AreaManagement::SensorMeta))-instance-method","name":"sensor_discovery","doc":"Building => sensor_id => sensor meta","summary":"

Building => sensor_id => sensor meta

","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L97"},"def":{"name":"sensor_discovery","visibility":"Public","body":"@sensor_discovery"}},{"html_id":"sensor_locations(level_id:String|Nil=nil)-instance-method","name":"sensor_locations","doc":"returns the sensor location data that has been configured","summary":"

returns the sensor location data that has been configured

","abstract":false,"args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil = nil)","args_html":"(level_id : String | Nil = nil)","location":{"filename":"src/place/area_management.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L197"},"def":{"name":"sensor_locations","args":[{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if level_id\n @level_sensors[level_id]? || ({} of String => SensorMeta)\nelse\n @level_sensors.values.reduce({} of String => SensorMeta) do |acc, i|\n acc.merge!(i)\n end\nend"}},{"html_id":"synchronize_all_levels-instance-method","name":"synchronize_all_levels","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L651"},"def":{"name":"synchronize_all_levels","visibility":"Public","body":"@schedule_lock.synchronize do\n @update_all = true\nend"}},{"html_id":"update_available(level_ids:Array(String))-instance-method","name":"update_available","abstract":false,"args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"args_string":"(level_ids : Array(String))","args_html":"(level_ids : Array(String))","location":{"filename":"src/place/area_management.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L647"},"def":{"name":"update_available","args":[{"name":"level_ids","external_name":"level_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@schedule_lock.synchronize do\n @update_levels.concat(level_ids)\nend"}},{"html_id":"write_sensor_discovery-instance-method","name":"write_sensor_discovery","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L190"},"def":{"name":"write_sensor_discovery","visibility":"Public","body":"sensor_discovery.each do |b_id, sensors|\n staff_api.write_metadata(b_id, \"sensor-discovered\", sensors)\nend"}}],"types":[{"html_id":"drivers/Place/AreaManagement/AreaSetting","path":"Place/AreaManagement/AreaSetting.html","kind":"alias","full_name":"Place::AreaManagement::AreaSetting","name":"AreaSetting","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: String, name: String, building: String | Nil, coordinates: Array(Tuple(Float64, Float64)))","aliased_html":"{id: String, name: String, building: String?, coordinates: Array({Float64, Float64})}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/ChildMetadata","path":"Place/AreaManagement/ChildMetadata.html","kind":"alias","full_name":"Place::AreaManagement::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L344"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/LevelCapacity","path":"Place/AreaManagement/LevelCapacity.html","kind":"alias","full_name":"Place::AreaManagement::LevelCapacity","name":"LevelCapacity","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String))","aliased_html":"{total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Metadata","path":"Place/AreaManagement/Metadata.html","kind":"alias","full_name":"Place::AreaManagement::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L343"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/RawLevelDetails","path":"Place/AreaManagement/RawLevelDetails.html","kind":"alias","full_name":"Place::AreaManagement::RawLevelDetails","name":"RawLevelDetails","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L63"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: NamedTuple(total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)), sensors: Hash(String, Float64))","aliased_html":"{wireless_devices: Int32, desk_bookings: Int32, desk_usage: Int32, capacity: {total_desks: Int32, total_capacity: Int32, desk_ids: Array(String), desk_mappings: Hash(String, String)}, sensors: Hash(String, Float64)}","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorDetail","path":"Place/AreaManagement/SensorDetail.html","kind":"alias","full_name":"Place::AreaManagement::SensorDetail","name":"SensorDetail","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::Detail","aliased_html":"PlaceOS::Driver::Interface::Sensor::Detail","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/SensorMeta","path":"Place/AreaManagement/SensorMeta.html","kind":"struct","full_name":"Place::AreaManagement::SensorMeta","name":"SensorMeta","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_management.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L177"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"},"constructors":[{"html_id":"new(name:Nil|String,type:PlaceOS::Driver::Interface::Sensor::SensorType|Nil,level:Nil|String,x:Float64|Nil,y:Float64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"args_string":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","args_html":"(name : Nil | String, type : PlaceOS::Driver::Interface::Sensor::SensorType | Nil, level : Nil | String, x : Float64 | Nil, y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L180"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Nil | ::String"},{"name":"type","external_name":"type","restriction":"::PlaceOS::Driver::Interface::Sensor::SensorType | ::Nil"},{"name":"level","external_name":"level","restriction":"::Nil | ::String"},{"name":"x","external_name":"x","restriction":"::Float64 | ::Nil"},{"name":"y","external_name":"y","restriction":"::Float64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, type, level, x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_management.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L178"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"level:String|Nil-instance-method","name":"level","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L185"},"def":{"name":"level","return_type":"String | ::Nil","visibility":"Public","body":"@level"}},{"html_id":"level=(level:String|Nil)-instance-method","name":"level=","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"args_string":"(level : String | Nil)","args_html":"(level : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L185"},"def":{"name":"level=","args":[{"name":"level","external_name":"level","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level = level"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L184"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/place/area_management.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L184"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"type:SensorType|Nil-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L183"},"def":{"name":"type","return_type":"SensorType | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:SensorType|Nil)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"args_string":"(type : SensorType | Nil)","args_html":"(type : SensorType | Nil)","location":{"filename":"src/place/area_management.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L183"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"SensorType | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"x:Float64|Nil-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L186"},"def":{"name":"x","return_type":"Float64 | ::Nil","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64|Nil)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"args_string":"(x : Float64 | Nil)","args_html":"(x : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L186"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64|Nil-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L187"},"def":{"name":"y","return_type":"Float64 | ::Nil","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64|Nil)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"args_string":"(y : Float64 | Nil)","args_html":"(y : Float64 | Nil)","location":{"filename":"src/place/area_management.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L187"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64 | ::Nil"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/Place/AreaManagement/SensorType","path":"Place/AreaManagement/SensorType.html","kind":"alias","full_name":"Place::AreaManagement::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L175"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}},{"html_id":"drivers/Place/AreaManagement/Zone","path":"Place/AreaManagement/Zone.html","kind":"alias","full_name":"Place::AreaManagement::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/area_management.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_management.cr#L342"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/AreaManagement","kind":"class","full_name":"Place::AreaManagement","name":"AreaManagement"}}]},{"html_id":"drivers/Place/AttendeeScanner","path":"Place/AttendeeScanner.html","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L27"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"externals_booked_to_visit-instance-method","name":"externals_booked_to_visit","doc":"Find the list of external guests expected in the building today","summary":"

Find the list of external guests expected in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L102"},"def":{"name":"externals_booked_to_visit","visibility":"Public","body":"building = building_id\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\n(staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {building}, type: \"visitor\")).get.as_a.map do |booking|\n Booking.new(booking[\"asset_id\"].as_s.downcase, Time.unix(booking[\"booking_start\"].as_i64), Time.unix(booking[\"booking_end\"].as_i64))\nend\n"}},{"html_id":"externals_in_events-instance-method","name":"externals_in_events","doc":"extract the list of externals invited to meetings in the building today","summary":"

extract the list of externals invited to meetings in the building today

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L62"},"def":{"name":"externals_in_events","visibility":"Public","body":"building = building_id\nexternals = [] of Guest\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nsystems.each do |level_id, system_ids|\n zones = {org_id, building, level_id}\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n events = begin\n (sys.get(\"Bookings\", 1)).status(Array(Event), :bookings)\n rescue\n [] of Event\n end\n events.each do |event|\n event_end = event.event_end || end_of_day\n if event_end <= now\n next\n end\n if event.event_start >= end_of_day\n break\n end\n externals.concat(event.attendees.reject do |attendee|\n internal_domains.find do |domain|\n attendee.email.downcase.ends_with?(domain)\n end\n end.map do |attendee|\n Guest.new(zones, system_id, attendee, event)\n end)\n end\n end\n end\nend\nexternals\n"}},{"html_id":"internal_domains:Array(String)-instance-method","name":"internal_domains","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L15"},"def":{"name":"internal_domains","return_type":"Array(String)","visibility":"Public","body":"@internal_domains"}},{"html_id":"invite_external_guests-instance-method","name":"invite_external_guests","doc":"invite missing guests","summary":"

invite missing guests

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L113"},"def":{"name":"invite_external_guests","visibility":"Public","body":"bookings = externals_booked_to_visit\nexternals = externals_in_events\nchecked = externals.size\nfailed = 0\nlogger.debug do\n \"found bookings #{bookings.size} and #{externals.size} externals\"\nend\nexternals.reject! do |guest|\n guest_email = guest.details.email.downcase\n bookings.find do |booking|\n booking.visitor_email == guest_email\n end\nend\nlogger.debug do\n \"found #{externals.size} guests without bookings\"\nend\nnow = Time.local(timezone)\nend_of_day = now.at_end_of_day\nexternals.each do |guest|\n begin\n event = guest.event\n host_email = (event.host.as(String)).downcase\n host = guest.event.attendees.find! do |attend|\n attend.email.downcase == host_email\n end\n guest_email = guest.details.email.downcase\n guest_name = guest.details.name\n sys_info = (staff_api.get_system(guest.system_id)).get\n staff_api.create_booking(booking_type: \"visitor\", asset_id: guest_email, user_id: host_email, user_email: host_email, user_name: host.name, zones: guest.zones, booking_start: event.event_start.to_unix, booking_end: event.event_end.try(&.to_unix) || end_of_day.to_unix, checked_in: false, approved: true, title: guest_name, description: event.title, time_zone: timezone.name, extension_data: {name: guest_name, parent_id: event.id, location_id: sys_info[\"name\"].as_s}, utm_source: \"attendee_scanner\", limit_override: 999, event_id: event.id, ical_uid: event.ical_uid, attendees: [{name: guest_name, email: guest_email}]).get\n rescue error\n failed = failed + 1\n logger.warn(exception: error) do\n \"failed to invite guest: #{guest.details.email}\"\n end\n end\nend\n{invited: externals.size - failed, checked: checked, failure: failed}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L17"},"def":{"name":"on_update","visibility":"Public","body":"@internal_domains = (setting(Array(String), :internal_domains)).map!() do |__arg0|\n __arg0.strip.downcase\nend\n@building_id = nil\n@timezone = nil\n@systems = nil\n@org_id = nil\n"}},{"html_id":"org_id:String-instance-method","name":"org_id","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L36"},"def":{"name":"org_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_id).nil?\n @org_id = (begin\n building_details = (staff_api.zone(building_id)).get\n if tz = building_details[\"timezone\"].as_s?\n @timezone = Time::Location.load(tz)\n end\n building_details[\"parent_id\"].as_s\n end)\nelse\n __temp_1\nend"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L32"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/AttendeeScanner/Attendee","path":"Place/AttendeeScanner/Attendee.html","kind":"alias","full_name":"Place::AttendeeScanner::Attendee","name":"Attendee","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event::Attendee","aliased_html":"PlaceCalendar::Event::Attendee","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Booking","path":"Place/AttendeeScanner/Booking.html","kind":"struct","full_name":"Place::AttendeeScanner::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(visitor_email:String,booking_start:Time,booking_end:Time)-class-method","name":"new","abstract":false,"args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"args_string":"(visitor_email : String, booking_start : Time, booking_end : Time)","args_html":"(visitor_email : String, booking_start : Time, booking_end : Time)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"new","args":[{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"booking_start","external_name":"booking_start","restriction":"Time"},{"name":"booking_end","external_name":"booking_end","restriction":"Time"}],"visibility":"Public","body":"_ = allocate\n_.initialize(visitor_email, booking_start, booking_end)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_end:Time-instance-method","name":"booking_end","abstract":false,"def":{"name":"booking_end","return_type":"Time","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_start:Time-instance-method","name":"booking_start","abstract":false,"def":{"name":"booking_start","return_type":"Time","visibility":"Public","body":"@booking_start"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@visitor_email.clone, @booking_start.clone, @booking_end.clone)"}},{"html_id":"copy_with(visitor_email_visitor_email=@visitor_email,booking_start_booking_start=@booking_start,booking_end_booking_end=@booking_end)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"args_string":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","args_html":"(visitor_email _visitor_email = @visitor_email, booking_start _booking_start = @booking_start, booking_end _booking_end = @booking_end)","location":{"filename":"src/place/attendee_scanner.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L97"},"def":{"name":"copy_with","args":[{"name":"_visitor_email","default_value":"@visitor_email","external_name":"visitor_email","restriction":""},{"name":"_booking_start","default_value":"@booking_start","external_name":"booking_start","restriction":""},{"name":"_booking_end","default_value":"@booking_end","external_name":"booking_end","restriction":""}],"visibility":"Public","body":"self.class.new(_visitor_email, _booking_start, _booking_end)"}},{"html_id":"visitor_email:String-instance-method","name":"visitor_email","abstract":false,"def":{"name":"visitor_email","return_type":"String","visibility":"Public","body":"@visitor_email"}}]},{"html_id":"drivers/Place/AttendeeScanner/Event","path":"Place/AttendeeScanner/Event.html","kind":"alias","full_name":"Place::AttendeeScanner::Event","name":"Event","abstract":false,"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceCalendar::Event","aliased_html":"PlaceCalendar::Event","const":false,"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"}},{"html_id":"drivers/Place/AttendeeScanner/Guest","path":"Place/AttendeeScanner/Guest.html","kind":"struct","full_name":"Place::AttendeeScanner::Guest","name":"Guest","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AttendeeScanner","kind":"class","full_name":"Place::AttendeeScanner","name":"AttendeeScanner"},"constructors":[{"html_id":"new(zones:Tuple(String,String,String),system_id:String,details:Attendee,event:Event)-class-method","name":"new","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"args_string":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","args_html":"(zones : Tuple(String, String, String), system_id : String, details : Attendee, event : Event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"new","args":[{"name":"zones","external_name":"zones","restriction":"Tuple(String, String, String)"},{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"details","external_name":"details","restriction":"Attendee"},{"name":"event","external_name":"event","restriction":"Event"}],"visibility":"Public","body":"_ = allocate\n_.initialize(zones, system_id, details, event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/attendee_scanner.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L58"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@zones.clone, @system_id.clone, @details.clone, @event.clone)"}},{"html_id":"copy_with(zones_zones=@zones,system_id_system_id=@system_id,details_details=@details,event_event=@event)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"args_string":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","args_html":"(zones _zones = @zones, system_id _system_id = @system_id, details _details = @details, event _event = @event)","location":{"filename":"src/place/attendee_scanner.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/attendee_scanner.cr#L57"},"def":{"name":"copy_with","args":[{"name":"_zones","default_value":"@zones","external_name":"zones","restriction":""},{"name":"_system_id","default_value":"@system_id","external_name":"system_id","restriction":""},{"name":"_details","default_value":"@details","external_name":"details","restriction":""},{"name":"_event","default_value":"@event","external_name":"event","restriction":""}],"visibility":"Public","body":"self.class.new(_zones, _system_id, _details, _event)"}},{"html_id":"details:Attendee-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"Attendee","visibility":"Public","body":"@details"}},{"html_id":"event:Event-instance-method","name":"event","abstract":false,"def":{"name":"event","return_type":"Event","visibility":"Public","body":"@event"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"zones:Tuple(String,String,String)-instance-method","name":"zones","abstract":false,"def":{"name":"zones","return_type":"Tuple(String, String, String)","visibility":"Public","body":"@zones"}}]}]},{"html_id":"drivers/Place/AutoDeskCheckin","path":"Place/AutoDeskCheckin.html","kind":"class","full_name":"Place::AutoDeskCheckin","name":"AutoDeskCheckin","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_check_in-instance-method","name":"fetch_and_check_in","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L29"},"def":{"name":"fetch_and_check_in","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nbooking_ids = (staff_api.query_bookings(@booking_category, period_start, period_end, @zones, checked_in: false)).get.as_a.map do |booking|\n booking[\"id\"].as_i64\nend\nsuccess = 0\nfailed = [] of Int64\nbooking_ids.each do |id|\n begin\n (staff_api.booking_check_in(id, true, \"auto-checkin\")).get\n success = success + 1\n rescue error\n failed << id\n logger.debug(exception: error) do\n \"failed to check-in booking #{id}\"\n end\n end\nend\n\"checked-in #{success} bookings, failed #{failed.size}: #{failed}\"\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/auto_desk_checkin.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/auto_desk_checkin.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@zones = setting(Array(String), :check_in_zones)\n@time_period = (setting(Int32, :hours_before_booking_start)).hours\n@booking_category = setting(String, :booking_category)\nschedule.clear\nschedule.every(5.minutes) do\n fetch_and_check_in\nend\n"}}]},{"html_id":"drivers/Place/AutoRelease","path":"Place/AutoRelease.html","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:Zone-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L33"},"def":{"name":"building_zone","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (get_building_zone?.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L95"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"if (!@auto_release.resources.empty? && (@auto_release.time_before > 0 || @auto_release.time_after > 0)) && !building_zone.time_location?.nil?\n true\nelse\n logger.notice do\n \"auto release is not enabled on zone #{building_zone.id}\"\n end\n if @auto_release.resources.empty?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.resources being empty\"\n end\n end\n if @auto_release.time_before.zero? && @auto_release.time_after.zero?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to auto_release.time_before and auto_release.time_after being 0\"\n end\n end\n if building_zone.time_location?.nil?\n logger.debug do\n \"auto release is not enabled on zone #{building_zone.id} due to building_zone.time_location being nil\"\n end\n end\n false\nend"}},{"html_id":"get_building_zone?:Zone|Nil-instance-method","name":"get_building_zone?","doc":"Finds the building zone for the current location services object","summary":"

Finds the building zone for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L84"},"def":{"name":"get_building_zone?","return_type":"Zone | ::Nil","visibility":"Public","body":"begin\n zones = Array(Zone).from_json(staff_api.zones(tags: \"building\").get.to_json)\n zone_ids = zones.map(&.id)\n zone_id = (zone_ids & system.zones).first\n zones.find do |zone|\n zone.id == zone_id\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone\"\n end\n nil\nend"}},{"html_id":"get_pending_bookings:Array(Booking)-instance-method","name":"get_pending_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L110"},"def":{"name":"get_pending_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n @auto_release.resources.each do |type|\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [building_zone.id]).get.to_json)\n results = results + bookings.select do |booking|\n !booking.checked_in\n end\n end\n logger.debug do\n \"found #{results.size} pending bookings\"\n end\n self[:pending_bookings] = results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of bookings\"\n end\n self[:pending_bookings] = [] of Booking\nend"}},{"html_id":"get_user_preferences?(user_id:String)-instance-method","name":"get_user_preferences?","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L132"},"def":{"name":"get_user_preferences?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"begin\n user = (staff_api.user(user_id)).get\n work_preferences = Array(WorktimePreference).from_json(user.as_h[\"work_preferences\"].to_json)\n work_overrides = Hash(String, WorktimePreference).from_json(user.as_h[\"work_overrides\"].to_json)\n {work_preferences: work_preferences, work_overrides: work_overrides}\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain user work location\"\n end\n nil\nend"}},{"html_id":"in_preference?(preference:WorktimePreference,event_time:Float64,locations:Array(String),match_locations:Bool=true):Bool-instance-method","name":"in_preference?","abstract":false,"args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"args_string":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","args_html":"(preference : WorktimePreference, event_time : Float64, locations : Array(String), match_locations : Bool = true) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L152"},"def":{"name":"in_preference?","args":[{"name":"preference","external_name":"preference","restriction":"WorktimePreference"},{"name":"event_time","external_name":"event_time","restriction":"Float64"},{"name":"locations","external_name":"locations","restriction":"Array(String)"},{"name":"match_locations","default_value":"true","external_name":"match_locations","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"if match_locations\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && (locations.includes?(block.location))\n end\nelse\n preference.blocks.any? do |block|\n (in_preference_hours?(block.start_time, block.end_time, event_time)) && !(locations.includes?(block.location))\n end\nend"}},{"html_id":"in_preference_hours?(start_time:Float64,end_time:Float64,event_time:Float64):Bool-instance-method","name":"in_preference_hours?","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"args_string":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","args_html":"(start_time : Float64, end_time : Float64, event_time : Float64) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L144"},"def":{"name":"in_preference_hours?","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"},{"name":"end_time","external_name":"end_time","restriction":"Float64"},{"name":"event_time","external_name":"event_time","restriction":"Float64"}],"return_type":"Bool","visibility":"Public","body":"if start_time < end_time\n start_time < event_time && end_time > event_time\nelse\n start_time < event_time || end_time > event_time\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = nil\n@email_schedule = (setting?(String, :email_schedule)).presence\n@email_template = (setting?(String, :email_template)) || \"auto_release\"\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\n@release_locations = (setting?(Array(String), :release_locations)) || [\"wfh\"]\n@auto_release = (setting?(AutoReleaseConfig, :auto_release)) || AutoReleaseConfig.new\nschedule.clear\nschedule.every(5.minutes) do\n pending_release\nend\nschedule.every(1.minute) do\n release_bookings\nend\nif emails = @email_schedule\n schedule.cron(emails, @timezone) do\n send_release_emails\n end\nend\n"}},{"html_id":"pending_release-instance-method","name":"pending_release","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L167"},"def":{"name":"pending_release","visibility":"Public","body":"results = [] of Booking\nif enabled?\nelse\n return results\nend\nbookings = get_pending_bookings\nbookings.each do |booking|\n if preferences = get_user_preferences?(booking.user_id)\n booking_start = (Time.unix(booking.booking_start)).in(building_zone.time_location!)\n day_of_week = booking_start.day_of_week.value\n if day_of_week == 7\n day_of_week = 0\n end\n event_time = booking_start.hour + (booking_start.minute / 60.0)\n overrides = preferences[:work_overrides].select do |_, pref|\n pref.blocks.size > 0\n end\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations))\n results << booking\n else\n if (override = overrides[booking_start.to_s(format: \"%F\")]?) && (in_preference?(override, event_time, @release_locations, false))\n else\n if (preference = preferences[:work_preferences].find do |pref|\n pref.day_of_week == day_of_week\n end) && (in_preference?(preference, event_time, @release_locations))\n results << booking\n end\n end\n end\n end\nend\nlogger.debug do\n \"found #{results.size} bookings pending release\"\nend\nself[:pending_release] = results\n"}},{"html_id":"release_bookings-instance-method","name":"release_bookings","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L214"},"def":{"name":"release_bookings","visibility":"Public","body":"begin\n released_booking_ids = [] of Int64\n if enabled?\n else\n return released_booking_ids\n end\n bookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\n previously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\n previously_released = previously_released - (previously_released - bookings.map(&.id))\n released_booking_ids = released_booking_ids + previously_released\n bookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if (Time.utc.to_unix - booking.booking_start) > (@auto_release.time_after * 60)\n if skip_release?(booking)\n next\n end\n logger.debug do\n \"rejecting booking #{booking.id} as it is within the time_after window\"\n end\n (staff_api.reject(booking.id)).get\n released_booking_ids << booking.id\n end\n end\n logger.debug do\n \"released #{released_booking_ids.size} bookings\"\n end\n self[:released_booking_ids] = released_booking_ids\nrescue error\n logger.warn(exception: error) do\n \"unable to release bookings\"\n end\n self[:released_booking_ids] = [] of Int64\nend"}},{"html_id":"send_release_emails-instance-method","name":"send_release_emails","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L280"},"def":{"name":"send_release_emails","visibility":"Public","body":"emailed_booking_ids = [] of Int64\nbookings = self[:pending_release]? ? Array(Booking).from_json(self[:pending_release].to_json) : [] of Booking\npreviously_released = self[:released_booking_ids]? ? Array(Int64).from_json(self[:released_booking_ids].to_json) : [] of Int64\npreviously_emailed = self[:emailed_booking_ids]? ? Array(Int64).from_json(self[:emailed_booking_ids].to_json) : [] of Int64\npreviously_emailed = previously_emailed - (previously_emailed - bookings.map(&.id))\nemailed_booking_ids = emailed_booking_ids + previously_emailed\nbookings.each do |booking|\n if previously_released.includes?(booking.id)\n next\n end\n if previously_emailed.includes?(booking.id)\n next\n end\n if (enabled? && ((booking.booking_start - Time.utc.to_unix) < (@auto_release.time_before * 60))) && ((Time.utc.to_unix - booking.booking_start) < (@auto_release.time_after * 60))\n logger.debug do\n \"sending release email to #{booking.user_email} for booking #{booking.id} as it is withing the time_before window\"\n end\n timezone = booking.timezone.presence || @timezone.name\n location = Time::Location.load(timezone)\n starting = (Time.unix(booking.booking_start)).in(location)\n ending = (Time.unix(booking.booking_end)).in(location)\n args = {booking_id: booking.id, booking_start: booking.booking_start, booking_end: booking.booking_end, start_time: starting.to_s(@time_format), start_date: starting.to_s(@date_format), start_datetime: starting.to_s(@date_time_format), end_time: ending.to_s(@time_format), end_date: ending.to_s(@date_format), end_datetime: ending.to_s(@date_time_format), asset_id: booking.asset_id, user_id: booking.user_id, user_email: booking.user_email, user_name: booking.user_name, reason: booking.title, approver_name: booking.approver_name, approver_email: booking.approver_email, booked_by_name: booking.booked_by_name, booked_by_email: booking.booked_by_email}\n begin\n mailer.send_template(to: booking.user_email, template: {@email_template, \"auto_release\"}, args: args)\n emailed_booking_ids << booking.id\n rescue error\n logger.warn(exception: error) do\n \"failed to send release email to #{booking.user_email}\"\n end\n end\n end\nend\nself[:emailed_booking_ids] = emailed_booking_ids\n"}},{"html_id":"skip_release?(cached_booking:Booking):Bool-instance-method","name":"skip_release?","abstract":false,"args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"args_string":"(cached_booking : Booking) : Bool","args_html":"(cached_booking : Booking) : Bool","location":{"filename":"src/place/auto_release.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L205"},"def":{"name":"skip_release?","args":[{"name":"cached_booking","external_name":"cached_booking","restriction":"Booking"}],"return_type":"Bool","visibility":"Public","body":"if (booking_json_any = (staff_api.get_booking(cached_booking.id)).get) && (booking = Booking.from_json(booking_json_any.to_json))\n booking.checked_in || (booking.booking_start != cached_booking.booking_start)\nelse\n true\nend"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L248"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {@email_template, \"auto_release\"}, name: \"Auto release booking\", description: \"Notification when a booking is pending automatic release due to user's work location preferences\", fields: [{name: \"booking_id\", description: \"Unique identifier for the booking that may be released\"}, {name: \"booking_start\", description: \"Unix timestamp of when the booking begins\"}, {name: \"booking_end\", description: \"Unix timestamp of when the booking ends\"}, {name: \"start_time\", description: \"Formatted start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Formatted start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Formatted start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Formatted end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Formatted end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Formatted end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"asset_id\", description: \"Identifier of the booked resource\"}, {name: \"user_id\", description: \"Identifier of the person who has the booking\"}, {name: \"user_email\", description: \"Email address of the person who has the booking\"}, {name: \"user_name\", description: \"Full name of the person who has the booking\"}, {name: \"reason\", description: \"Title or purpose of the booking\"}, {name: \"approver_name\", description: \"Name of the person who approved the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}])]\n"}}],"types":[{"html_id":"drivers/Place/AutoRelease/AutoReleaseConfig","path":"Place/AutoRelease/AutoReleaseConfig.html","kind":"struct","full_name":"Place::AutoRelease::AutoReleaseConfig","name":"AutoReleaseConfig","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"time_before and time_after are in minutes","summary":"

time_before and time_after are in minutes

","constructors":[{"html_id":"new(time_before:Int64=0,time_after:Int64=0,resources:Array(String)=[]ofString)-class-method","name":"new","abstract":false,"args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"args_string":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","args_html":"(time_before : Int64 = 0, time_after : Int64 = 0, resources : Array(String) = [] of String)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"new","args":[{"name":"time_before","default_value":"0","external_name":"time_before","restriction":"Int64"},{"name":"time_after","default_value":"0","external_name":"time_after","restriction":"Int64"},{"name":"resources","default_value":"[] of String","external_name":"resources","restriction":"Array(String)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(time_before, time_after, resources)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L348"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@time_before.clone, @time_after.clone, @resources.clone)"}},{"html_id":"copy_with(time_before_time_before=@time_before,time_after_time_after=@time_after,resources_resources=@resources)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"args_string":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","args_html":"(time_before _time_before = @time_before, time_after _time_after = @time_after, resources _resources = @resources)","location":{"filename":"src/place/auto_release.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L347"},"def":{"name":"copy_with","args":[{"name":"_time_before","default_value":"@time_before","external_name":"time_before","restriction":""},{"name":"_time_after","default_value":"@time_after","external_name":"time_after","restriction":""},{"name":"_resources","default_value":"@resources","external_name":"resources","restriction":""}],"visibility":"Public","body":"self.class.new(_time_before, _time_after, _resources)"}},{"html_id":"resources:Array(String)-instance-method","name":"resources","abstract":false,"def":{"name":"resources","return_type":"Array(String)","visibility":"Public","body":"@resources"}},{"html_id":"time_after:Int64-instance-method","name":"time_after","abstract":false,"def":{"name":"time_after","return_type":"Int64","visibility":"Public","body":"@time_after"}},{"html_id":"time_before:Int64-instance-method","name":"time_before","abstract":false,"def":{"name":"time_before","return_type":"Int64","visibility":"Public","body":"@time_before"}}]},{"html_id":"drivers/Place/AutoRelease/Booking","path":"Place/AutoRelease/Booking.html","kind":"struct","full_name":"Place::AutoRelease::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L370"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L371"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"approved:Bool-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L391"},"def":{"name":"approved","return_type":"Bool","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"args_string":"(approved : Bool)","args_html":"(approved : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":391,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L391"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L394"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":394,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L394"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L393"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":393,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L393"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L395"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":395,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L395"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L378"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"asset_id=(asset_id:String)-instance-method","name":"asset_id=","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"args_string":"(asset_id : String)","args_html":"(asset_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":378,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L378"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L398"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id","return_type":"String","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"args_string":"(booked_by_id : String)","args_html":"(booked_by_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":397,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L397"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L399"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L383"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":383,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L383"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L382"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":382,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L382"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L380"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/auto_release.cr","line_number":380,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L380"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L389"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":389,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L389"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L403"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":403,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L403"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L387"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":387,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L387"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L373"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/auto_release.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L373"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L402"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":402,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L402"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L401"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L401"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L390"},"def":{"name":"rejected","return_type":"Bool","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"args_string":"(rejected : Bool)","args_html":"(rejected : Bool)","location":{"filename":"src/place/auto_release.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L390"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L385"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":385,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L385"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L386"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L386"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L376"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/auto_release.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L376"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L375"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/auto_release.cr","line_number":375,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L375"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L377"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/auto_release.cr","line_number":377,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L377"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L379"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/auto_release.cr","line_number":379,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L379"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimeBlock","path":"Place/AutoRelease/WorktimeBlock.html","kind":"struct","full_name":"Place::AutoRelease::WorktimeBlock","name":"WorktimeBlock","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":354,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L354"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"start_time: Start time of work hours. e.g. `7.5` being 7:30AM\nend_time: End time of work hours. e.g. `18.5` being 6:30PM\nlocation: Name of the location the work is being performed at","summary":"

start_time: Start time of work hours.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":355,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L355"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_time:Float64-instance-method","name":"end_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L358"},"def":{"name":"end_time","return_type":"Float64","visibility":"Public","body":"@end_time"}},{"html_id":"end_time=(end_time:Float64)-instance-method","name":"end_time=","abstract":false,"args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"args_string":"(end_time : Float64)","args_html":"(end_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":358,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L358"},"def":{"name":"end_time=","args":[{"name":"end_time","external_name":"end_time","restriction":"Float64"}],"visibility":"Public","body":"@end_time = end_time"}},{"html_id":"location:String-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L359"},"def":{"name":"location","return_type":"String","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String)","args_html":"(location : String)","location":{"filename":"src/place/auto_release.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L359"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String"}],"visibility":"Public","body":"@location = location"}},{"html_id":"start_time:Float64-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L357"},"def":{"name":"start_time","return_type":"Float64","visibility":"Public","body":"@start_time"}},{"html_id":"start_time=(start_time:Float64)-instance-method","name":"start_time=","abstract":false,"args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"args_string":"(start_time : Float64)","args_html":"(start_time : Float64)","location":{"filename":"src/place/auto_release.cr","line_number":357,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L357"},"def":{"name":"start_time=","args":[{"name":"start_time","external_name":"start_time","restriction":"Float64"}],"visibility":"Public","body":"@start_time = start_time"}}]},{"html_id":"drivers/Place/AutoRelease/WorktimePreference","path":"Place/AutoRelease/WorktimePreference.html","kind":"struct","full_name":"Place::AutoRelease::WorktimePreference","name":"WorktimePreference","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"doc":"day_of_week: Index of the day of the week. `0` being Sunday","summary":"

day_of_week: Index of the day of the week.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocks:Array(WorktimeBlock)-instance-method","name":"blocks","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L367"},"def":{"name":"blocks","return_type":"Array(WorktimeBlock)","visibility":"Public","body":"@blocks"}},{"html_id":"blocks=(blocks:Array(WorktimeBlock))-instance-method","name":"blocks=","abstract":false,"args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"args_string":"(blocks : Array(WorktimeBlock))","args_html":"(blocks : Array(WorktimeBlock))","location":{"filename":"src/place/auto_release.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L367"},"def":{"name":"blocks=","args":[{"name":"blocks","external_name":"blocks","restriction":"Array(WorktimeBlock)"}],"visibility":"Public","body":"@blocks = blocks"}},{"html_id":"day_of_week:Int32-instance-method","name":"day_of_week","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week","return_type":"Int32","visibility":"Public","body":"@day_of_week"}},{"html_id":"day_of_week=(day_of_week:Int32)-instance-method","name":"day_of_week=","abstract":false,"args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"args_string":"(day_of_week : Int32)","args_html":"(day_of_week : Int32)","location":{"filename":"src/place/auto_release.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L366"},"def":{"name":"day_of_week=","args":[{"name":"day_of_week","external_name":"day_of_week","restriction":"Int32"}],"visibility":"Public","body":"@day_of_week = day_of_week"}}]},{"html_id":"drivers/Place/AutoRelease/Zone","path":"Place/AutoRelease/Zone.html","kind":"struct","full_name":"Place::AutoRelease::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L406"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/AutoRelease","kind":"class","full_name":"Place::AutoRelease","name":"AutoRelease"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/auto_release.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L407"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L412"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/auto_release.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L412"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L415"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L415"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L409"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/auto_release.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L409"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L414"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L414"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L411"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/auto_release.cr","line_number":411,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L411"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L418"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L418"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Set(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L413"},"def":{"name":"tags","return_type":"Set(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Set(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"args_string":"(tags : Set(String))","args_html":"(tags : Set(String))","location":{"filename":"src/place/auto_release.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L413"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Set(String)"}],"visibility":"Public","body":"@tags = tags"}},{"html_id":"time_location!:Time::Location-instance-method","name":"time_location!","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L429"},"def":{"name":"time_location!","return_type":"Time::Location","visibility":"Public","body":"time_location?.not_nil!"}},{"html_id":"time_location?:Time::Location|Nil-instance-method","name":"time_location?","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L423"},"def":{"name":"time_location?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if tz = timezone.presence\n @time_location || (@time_location = Time::Location.load(tz))\nend"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L416"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/auto_release.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release.cr#L416"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}}]}]},{"html_id":"drivers/Place/AutoReleaseLocker","path":"Place/AutoReleaseLocker.html","kind":"class","full_name":"Place::AutoReleaseLocker","name":"AutoReleaseLocker","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/auto_release_locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_bookings:Array(Booking)-instance-method","name":"get_bookings","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L47"},"def":{"name":"get_bookings","return_type":"Array(Booking)","visibility":"Public","body":"begin\n results = [] of Booking\n bookings = Array(Booking).from_json(staff_api.query_bookings(type: @booking_type, period_start: Time.utc.to_unix, period_end: (Time.utc + @time_window_hours.hours).to_unix, zones: [get_building_id]).get.to_json)\n results = bookings.select do |booking|\n booking.checked_in\n end\n logger.debug do\n \"found #{results.size} #{@booking_type} bookings\"\n end\n results\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of #{@booking_type} bookings\"\n end\n [] of Booking\nend"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L38"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L23"},"def":{"name":"on_update","visibility":"Public","body":"@release_schedule = (setting?(String, :release_schedule)).presence\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@booking_type = (setting?(String, :booking_type)).presence || \"locker\"\n@time_window_hours = (setting?(Int32, :time_window_hours)) || 1\nschedule.clear\nif release = @release_schedule\n schedule.cron(release, @timezone) do\n release_lockers\n end\nend\n"}},{"html_id":"release_lockers-instance-method","name":"release_lockers","abstract":false,"location":{"filename":"src/place/auto_release_locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/auto_release_locker.cr#L65"},"def":{"name":"release_lockers","visibility":"Public","body":"bookings = get_bookings\nreleased = 0\nbookings.each do |booking|\n logger.debug do\n \"releasing booking #{booking.id} as it is within the time_after window\"\n end\n begin\n staff_api.update_booking(booking_id: booking.id, booking_end: Time.utc.to_unix, checked_in: false).get\n released = released + 1\n rescue error\n logger.warn(exception: error) do\n \"unable to release #{@booking_type} with booking id #{booking.id}\"\n end\n end\nend\n{total: bookings.size, released: released}\n"}}]},{"html_id":"drivers/Place/Booking","path":"Place/Booking.html","kind":"class","full_name":"Place::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_model.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(id:Int64,booking_type:String,booking_start:Int64,booking_end:Int64,user_id:String,user_email:String,user_name:String,zones:Array(String),booked_by_name:String,booked_by_email:String,action:Nil|String=nil,timezone:Nil|String=nil,asset_id:Nil|String=nil,resource_id:Nil|String=nil,checked_in:Bool|Nil=nil,rejected:Bool|Nil=nil,approved:Bool|Nil=nil,process_state:Nil|String=nil,last_changed:Int64|Nil=nil,approver_name:Nil|String=nil,approver_email:Nil|String=nil,title:Nil|String=nil,description:Nil|String=nil,asset_ids:Array(String)=[]ofString,created:Int64|Nil=nil,approver_id:Nil|String=nil,booked_by_id:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"args_string":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","args_html":"(id : Int64, booking_type : String, booking_start : Int64, booking_end : Int64, user_id : String, user_email : String, user_name : String, zones : Array(String), booked_by_name : String, booked_by_email : String, action : Nil | String = nil, timezone : Nil | String = nil, asset_id : Nil | String = nil, resource_id : Nil | String = nil, checked_in : Bool | Nil = nil, rejected : Bool | Nil = nil, approved : Bool | Nil = nil, process_state : Nil | String = nil, last_changed : Int64 | Nil = nil, approver_name : Nil | String = nil, approver_email : Nil | String = nil, title : Nil | String = nil, description : Nil | String = nil, asset_ids : Array(String) = [] of String, created : Int64 | Nil = nil, approver_id : Nil | String = nil, booked_by_id : Nil | String = nil)","location":{"filename":"src/place/booking_model.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L95"},"def":{"name":"new","args":[{"name":"id","external_name":"id","restriction":"::Int64"},{"name":"booking_type","external_name":"booking_type","restriction":"::String"},{"name":"booking_start","external_name":"booking_start","restriction":"::Int64"},{"name":"booking_end","external_name":"booking_end","restriction":"::Int64"},{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"user_email","external_name":"user_email","restriction":"::String"},{"name":"user_name","external_name":"user_name","restriction":"::String"},{"name":"zones","external_name":"zones","restriction":"::Array(::String)"},{"name":"booked_by_name","external_name":"booked_by_name","restriction":"::String"},{"name":"booked_by_email","external_name":"booked_by_email","restriction":"::String"},{"name":"action","default_value":"nil","external_name":"action","restriction":"::Nil | ::String"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"::Nil | ::String"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"::Nil | ::String"},{"name":"resource_id","default_value":"nil","external_name":"resource_id","restriction":"::Nil | ::String"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"::Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"::Bool | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"::Bool | ::Nil"},{"name":"process_state","default_value":"nil","external_name":"process_state","restriction":"::Nil | ::String"},{"name":"last_changed","default_value":"nil","external_name":"last_changed","restriction":"::Int64 | ::Nil"},{"name":"approver_name","default_value":"nil","external_name":"approver_name","restriction":"::Nil | ::String"},{"name":"approver_email","default_value":"nil","external_name":"approver_email","restriction":"::Nil | ::String"},{"name":"title","default_value":"nil","external_name":"title","restriction":"::Nil | ::String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"::Nil | ::String"},{"name":"asset_ids","default_value":"[] of String","external_name":"asset_ids","restriction":"::Array(::String)"},{"name":"created","default_value":"nil","external_name":"created","restriction":"::Int64 | ::Nil"},{"name":"approver_id","default_value":"nil","external_name":"approver_id","restriction":"::Nil | ::String"},{"name":"booked_by_id","default_value":"nil","external_name":"booked_by_id","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(id, booking_type, booking_start, booking_end, user_id, user_email, user_name, zones, booked_by_name, booked_by_email, action, timezone, asset_id, resource_id, checked_in, rejected, approved, process_state, last_changed, approver_name, approver_email, title, description, asset_ids, created, approver_id, booked_by_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_model.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String|Nil-instance-method","name":"action","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L7"},"def":{"name":"action","return_type":"String | ::Nil","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String|Nil)-instance-method","name":"action=","doc":"This is to support events","summary":"

This is to support events

","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"args_string":"(action : String | Nil)","args_html":"(action : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L7"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String | ::Nil"}],"visibility":"Public","body":"@action = action"}},{"html_id":"approved:Bool|Nil-instance-method","name":"approved","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L31"},"def":{"name":"approved","return_type":"Bool | ::Nil","visibility":"Public","body":"@approved"}},{"html_id":"approved=(approved:Bool|Nil)-instance-method","name":"approved=","abstract":false,"args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"args_string":"(approved : Bool | Nil)","args_html":"(approved : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L31"},"def":{"name":"approved=","args":[{"name":"approved","external_name":"approved","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@approved = approved"}},{"html_id":"approver_email:String|Nil-instance-method","name":"approver_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L38"},"def":{"name":"approver_email","return_type":"String | ::Nil","visibility":"Public","body":"@approver_email"}},{"html_id":"approver_email=(approver_email:String|Nil)-instance-method","name":"approver_email=","abstract":false,"args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"args_string":"(approver_email : String | Nil)","args_html":"(approver_email : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L38"},"def":{"name":"approver_email=","args":[{"name":"approver_email","external_name":"approver_email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_email = approver_email"}},{"html_id":"approver_id:String|Nil-instance-method","name":"approver_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L36"},"def":{"name":"approver_id","return_type":"String | ::Nil","visibility":"Public","body":"@approver_id"}},{"html_id":"approver_id=(approver_id:String|Nil)-instance-method","name":"approver_id=","abstract":false,"args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"args_string":"(approver_id : String | Nil)","args_html":"(approver_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L36"},"def":{"name":"approver_id=","args":[{"name":"approver_id","external_name":"approver_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_id = approver_id"}},{"html_id":"approver_name:String|Nil-instance-method","name":"approver_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L37"},"def":{"name":"approver_name","return_type":"String | ::Nil","visibility":"Public","body":"@approver_name"}},{"html_id":"approver_name=(approver_name:String|Nil)-instance-method","name":"approver_name=","abstract":false,"args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"args_string":"(approver_name : String | Nil)","args_html":"(approver_name : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L37"},"def":{"name":"approver_name=","args":[{"name":"approver_name","external_name":"approver_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@approver_name = approver_name"}},{"html_id":"asset_id:String-instance-method","name":"asset_id","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L20"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"(@asset_id || @resource_id).as(String)"}},{"html_id":"asset_id=(asset_id:String|Nil)-instance-method","name":"asset_id=","doc":"events use resource_id instead of asset_id","summary":"

events use resource_id instead of asset_id

","abstract":false,"args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"args_string":"(asset_id : String | Nil)","args_html":"(asset_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L16"},"def":{"name":"asset_id=","args":[{"name":"asset_id","external_name":"asset_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@asset_id = asset_id"}},{"html_id":"asset_ids:Array(String)-instance-method","name":"asset_ids","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids","return_type":"Array(String)","visibility":"Public","body":"@asset_ids"}},{"html_id":"asset_ids=(asset_ids:Array(String))-instance-method","name":"asset_ids=","abstract":false,"args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"args_string":"(asset_ids : Array(String))","args_html":"(asset_ids : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L17"},"def":{"name":"asset_ids=","args":[{"name":"asset_ids","external_name":"asset_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@asset_ids = asset_ids"}},{"html_id":"booked_by_email:String-instance-method","name":"booked_by_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email","return_type":"String","visibility":"Public","body":"@booked_by_email"}},{"html_id":"booked_by_email=(booked_by_email:String)-instance-method","name":"booked_by_email=","abstract":false,"args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"args_string":"(booked_by_email : String)","args_html":"(booked_by_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L42"},"def":{"name":"booked_by_email=","args":[{"name":"booked_by_email","external_name":"booked_by_email","restriction":"String"}],"visibility":"Public","body":"@booked_by_email = booked_by_email"}},{"html_id":"booked_by_id:String|Nil-instance-method","name":"booked_by_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@booked_by_id"}},{"html_id":"booked_by_id=(booked_by_id:String|Nil)-instance-method","name":"booked_by_id=","abstract":false,"args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"args_string":"(booked_by_id : String | Nil)","args_html":"(booked_by_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L40"},"def":{"name":"booked_by_id=","args":[{"name":"booked_by_id","external_name":"booked_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@booked_by_id = booked_by_id"}},{"html_id":"booked_by_name:String-instance-method","name":"booked_by_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name","return_type":"String","visibility":"Public","body":"@booked_by_name"}},{"html_id":"booked_by_name=(booked_by_name:String)-instance-method","name":"booked_by_name=","abstract":false,"args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"args_string":"(booked_by_name : String)","args_html":"(booked_by_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L41"},"def":{"name":"booked_by_name=","args":[{"name":"booked_by_name","external_name":"booked_by_name","restriction":"String"}],"visibility":"Public","body":"@booked_by_name = booked_by_name"}},{"html_id":"booking_end:Int64-instance-method","name":"booking_end","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L12"},"def":{"name":"booking_end","return_type":"Int64","visibility":"Public","body":"@booking_end"}},{"html_id":"booking_end=(booking_end:Int64)-instance-method","name":"booking_end=","abstract":false,"args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"args_string":"(booking_end : Int64)","args_html":"(booking_end : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L12"},"def":{"name":"booking_end=","args":[{"name":"booking_end","external_name":"booking_end","restriction":"Int64"}],"visibility":"Public","body":"@booking_end = booking_end"}},{"html_id":"booking_start:Int64-instance-method","name":"booking_start","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L11"},"def":{"name":"booking_start","return_type":"Int64","visibility":"Public","body":"@booking_start"}},{"html_id":"booking_start=(booking_start:Int64)-instance-method","name":"booking_start=","abstract":false,"args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"args_string":"(booking_start : Int64)","args_html":"(booking_start : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L11"},"def":{"name":"booking_start=","args":[{"name":"booking_start","external_name":"booking_start","restriction":"Int64"}],"visibility":"Public","body":"@booking_start = booking_start"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L10"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"booking_type=(booking_type:String)-instance-method","name":"booking_type=","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"args_string":"(booking_type : String)","args_html":"(booking_type : String)","location":{"filename":"src/place/booking_model.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L10"},"def":{"name":"booking_type=","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"}],"visibility":"Public","body":"@booking_type = booking_type"}},{"html_id":"changed-instance-method","name":"changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L55"},"def":{"name":"changed","visibility":"Public","body":"Time.unix(last_changed.not_nil!)"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L44"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @checked_in).nil?\n @checked_in = (false)\nelse\n __temp_1\nend"}},{"html_id":"checked_in=(checked_in:Bool)-instance-method","name":"checked_in=","abstract":false,"args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"args_string":"(checked_in : Bool)","args_html":"(checked_in : Bool)","location":{"filename":"src/place/booking_model.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L44"},"def":{"name":"checked_in=","args":[{"name":"checked_in","external_name":"checked_in","restriction":"Bool"}],"visibility":"Public","body":"@checked_in = checked_in"}},{"html_id":"created:Int64|Nil-instance-method","name":"created","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L34"},"def":{"name":"created","return_type":"Int64 | ::Nil","visibility":"Public","body":"@created"}},{"html_id":"created=(created:Int64|Nil)-instance-method","name":"created=","abstract":false,"args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"args_string":"(created : Int64 | Nil)","args_html":"(created : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L34"},"def":{"name":"created=","args":[{"name":"created","external_name":"created","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@created = created"}},{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L46"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L46"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"expand-instance-method","name":"expand","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L59"},"def":{"name":"expand","visibility":"Public","body":"if asset_ids.size < 2\n return {self}.each\nend\nasset_ids.map do |aid|\n Place::Booking.new(id: id, booking_type: booking_type, booking_start: booking_start, booking_end: booking_end, user_id: user_id, user_email: user_email, user_name: user_name, zones: zones, booked_by_name: booked_by_name, booked_by_email: booked_by_email, action: action, timezone: timezone, asset_id: aid, resource_id: resource_id, checked_in: checked_in, rejected: rejected, approved: approved, process_state: process_state, last_changed: last_changed, approver_name: approver_name, approver_email: approver_email, title: title, description: description, asset_ids: [aid], created: created, approver_id: approver_id, booked_by_id: booked_by_id)\nend\n"}},{"html_id":"extension_data:Hash(String,JSON::Any)-instance-method","name":"extension_data","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L48"},"def":{"name":"extension_data","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @extension_data).nil?\n @extension_data = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"extension_data=(extension_data:Hash(String,JSON::Any))-instance-method","name":"extension_data=","abstract":false,"args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"args_string":"(extension_data : Hash(String, JSON::Any))","args_html":"(extension_data : Hash(String, JSON::Any))","location":{"filename":"src/place/booking_model.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L48"},"def":{"name":"extension_data=","args":[{"name":"extension_data","external_name":"extension_data","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"@extension_data = extension_data"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L9"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/booking_model.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L9"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"in_progress?-instance-method","name":"in_progress?","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L50"},"def":{"name":"in_progress?","visibility":"Public","body":"now = Time.utc.to_unix\nnow >= @booking_start && now < @booking_end\n"}},{"html_id":"last_changed:Int64|Nil-instance-method","name":"last_changed","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L33"},"def":{"name":"last_changed","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_changed"}},{"html_id":"last_changed=(last_changed:Int64|Nil)-instance-method","name":"last_changed=","abstract":false,"args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"args_string":"(last_changed : Int64 | Nil)","args_html":"(last_changed : Int64 | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L33"},"def":{"name":"last_changed=","args":[{"name":"last_changed","external_name":"last_changed","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_changed = last_changed"}},{"html_id":"process_state:String|Nil-instance-method","name":"process_state","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L32"},"def":{"name":"process_state","return_type":"String | ::Nil","visibility":"Public","body":"@process_state"}},{"html_id":"process_state=(process_state:String|Nil)-instance-method","name":"process_state=","abstract":false,"args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"args_string":"(process_state : String | Nil)","args_html":"(process_state : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L32"},"def":{"name":"process_state=","args":[{"name":"process_state","external_name":"process_state","restriction":"String | ::Nil"}],"visibility":"Public","body":"@process_state = process_state"}},{"html_id":"rejected:Bool|Nil-instance-method","name":"rejected","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L30"},"def":{"name":"rejected","return_type":"Bool | ::Nil","visibility":"Public","body":"@rejected"}},{"html_id":"rejected=(rejected:Bool|Nil)-instance-method","name":"rejected=","abstract":false,"args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"args_string":"(rejected : Bool | Nil)","args_html":"(rejected : Bool | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L30"},"def":{"name":"rejected=","args":[{"name":"rejected","external_name":"rejected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@rejected = rejected"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L18"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String|Nil)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"args_string":"(resource_id : String | Nil)","args_html":"(resource_id : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L18"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L13"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"timezone=(timezone:String|Nil)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(timezone : String | Nil)","args_html":"(timezone : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L13"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L45"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/place/booking_model.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L45"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L25"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_email=(user_email:String)-instance-method","name":"user_email=","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(user_email : String)","args_html":"(user_email : String)","location":{"filename":"src/place/booking_model.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L25"},"def":{"name":"user_email=","args":[{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"@user_email = user_email"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L24"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/booking_model.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L24"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L26"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}},{"html_id":"user_name=(user_name:String)-instance-method","name":"user_name=","abstract":false,"args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"args_string":"(user_name : String)","args_html":"(user_name : String)","location":{"filename":"src/place/booking_model.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L26"},"def":{"name":"user_name=","args":[{"name":"user_name","external_name":"user_name","restriction":"String"}],"visibility":"Public","body":"@user_name = user_name"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L28"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String))-instance-method","name":"zones=","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_model.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_model.cr#L28"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/BookingApprovalWorkflows","path":"Place/BookingApprovalWorkflows.html","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":542,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L542"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_895|\n _event, entered = __temp_895\n expired > entered\nend\nexpired = 1.hour.ago.to_unix\n@group_email_notifications.reject! do |_, entered|\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n building_name = details[:name]\n approval_type = details[:approval]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, approval_type, building_name, building_key, support_email, attachments, months_from_now)\n end\nend\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L370"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @approval_lookup[zone_id]?\n if details\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details[:name], details[:approval], details[:support_email], attachments}\n end\nend\nnil\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L657"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (mailer.get_user_manager(staff_email)).get\n {(manager[\"email\"]? || manager[\"username\"]).as_s, manager[\"name\"].as_s}\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n {nil, nil}\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L59"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L94"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@remind_after = ((setting?(Int32, :remind_after)) || 24).hours\n@escalate_after = ((setting?(Int32, :escalate_after)) || 48).hours\n@notify_managers = (setting?(Bool, :notify_managers)) || false\n@approval_lookup = setting(Hash(String, SiteDetails), :approval_type)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\nschedule.clear\nschedule.every(5.minutes) do\n check_bookings\nend\nreminders = (setting?(Reminders, :reminders)) || {crons: [] of String, zones: {} of String => Array(String)}\nreminders[:crons].each do |cron|\n reminders[:zones].each do |timezone, zones|\n begin\n schedule.cron(cron, Time::Location.load(timezone)) do\n send_checkin_reminder(zones)\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to schedule reminder: #{zones} => #{timezone} : #{cron}\"\n end\n end\n end\nend\n"}},{"html_id":"send_checkin_reminder(zones:Array(String)|Nil=nil,timezone:String|Nil=nil)-instance-method","name":"send_checkin_reminder","abstract":false,"args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"args_string":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","args_html":"(zones : Array(String) | Nil = nil, timezone : String | Nil = nil)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":713,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L713"},"def":{"name":"send_checkin_reminder","args":[{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"}],"visibility":"Public","body":"time_now = Time.utc.in(timezone ? Time::Location.load(timezone) : @time_zone)\ntime_now = time_now.at_beginning_of_day + 12.hours\ntime_now = time_now.to_local_in(Time::Location::UTC)\nquery_start = time_now.to_unix\nquery_end = (time_now + 30.minutes).to_unix\n@check_bookings_mutex.synchronize do\n @approval_lookup.each do |building_zone, details|\n if zones && !(zones.includes?(building_zone))\n next\n end\n building_name = details[:name]\n support_email = details[:support_email]\n attachments = (details[:attachments] || ({} of String => String)).compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_checkin_reminder(building_zone, building_name, building_key, support_email, attachments, query_start, query_end)\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_approval_workflows.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L129"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"desk_id\", description: \"Identifier of the booked desk\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"support_email\", description: \"Contact email for booking support\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"group_booking_sent#{@template_suffix}\"}, name: \"Group booking sent#{@template_fields_suffix}\", description: \"Notification when a group booking has been created\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved_by#{@template_suffix}\"}, name: \"Booking approved by#{@template_fields_suffix}\", description: \"Notification when booking is approved by someone other than the requester\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"approved#{@template_suffix}\"}, name: \"Booking approved#{@template_fields_suffix}\", description: \"Notification when booking is approved\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"rejected#{@template_suffix}\"}, name: \"Booking rejected#{@template_fields_suffix}\", description: \"Notification when booking is rejected\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"checked_in#{@template_suffix}\"}, name: \"Booking checked in#{@template_fields_suffix}\", description: \"Notification when user checks in to their booking\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled_by#{@template_suffix}\"}, name: \"Booking cancelled by#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by someone other than the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when booking is cancelled by the booker\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_notify_cancelled#{@template_suffix}\"}, name: \"Booking cancelled manager notification#{@template_fields_suffix}\", description: \"Notification to manager when their team member's booking is cancelled\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_approval#{@template_suffix}\"}, name: \"Booking manager approval#{@template_fields_suffix}\", description: \"Request for manager to approve a booking#{@template_suffix}\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"manager_contacted#{@template_suffix}\"}, name: \"Booking manager contacted#{@template_fields_suffix}\", description: \"Notification to user that their manager has been contacted for approval\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"notify_manager#{@template_suffix}\"}, name: \"Booking manager notification#{@template_fields_suffix}\", description: \"Notification to manager about their team member's booking\", fields: common_fields)]\n"}},{"html_id":"users_with_invalid_desk_bookings(building_zone:String,ending:Int64)-instance-method","name":"users_with_invalid_desk_bookings","abstract":false,"args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"args_string":"(building_zone : String, ending : Int64)","args_html":"(building_zone : String, ending : Int64)","location":{"filename":"src/place/booking_approval_workflows.cr","line_number":666,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L666"},"def":{"name":"users_with_invalid_desk_bookings","args":[{"name":"building_zone","external_name":"building_zone","restriction":"String"},{"name":"ending","external_name":"ending","restriction":"Int64"}],"visibility":"Public","body":"meta_raw = (staff_api.metadata_children(building_zone, \"desks\")).get.as_a\nmetadata = {} of String => Hash(String, Array(String))\nmeta_raw.each do |zone|\n desks = {} of String => Array(String)\n zone_id = zone[\"zone\"][\"id\"].as_s\n zone[\"metadata\"][\"desks\"][\"details\"].as_a.each do |desk|\n desks[desk[\"id\"].as_s] = desk[\"groups\"].as_a.map() do |__arg11|\n __arg11.as_s.downcase\n end\n end\n metadata[zone_id] = desks\nend\nusers = [] of Tuple(String, String, String, Int64, Int64, String)\nbookings = staff_api.query_bookings(type: \"desk\", period_end: ending, zones: [building_zone], rejected: false).get.as_a\nbookings.each do |booking|\n user_email = booking[\"user_email\"].as_s\n level_id = (booking[\"zones\"].as_a.map(&.as_s).reject(building_zone)).first\n desk_id = booking[\"asset_id\"].as_s\n booking_id = booking[\"id\"].as_i64\n starting = booking[\"booking_start\"].as_i64\n if desks = metadata[level_id]?\n if groups = desks[desk_id]?\n if groups.empty?\n next\n end\n users_groups = (mailer.get_groups(user_email)).get.as_a.map do |g|\n g[\"name\"].as_s.downcase\n end\n overlap = users_groups & groups\n if overlap.empty?\n date_friendly = (Time.unix(starting)).to_s(@date_format)\n users << {user_email, desk_id, level_id, booking_id, starting, date_friendly}\n end\n end\n end\nend\nlogger.debug do\n \"Email,Desk ID,Zone,Booking id,Starting,Start date\\n#{users.map do |u|\n \"#{u[0]},#{u[1]},#{u[2]},#{u[3]},#{u[4]},#{u[5]}\"\n end.join(\"\\n\")}\"\nend\nnil\n"}}],"types":[{"html_id":"drivers/Place/BookingApprovalWorkflows/Reminders","path":"Place/BookingApprovalWorkflows/Reminders.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::Reminders","name":"Reminders","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(crons: Array(String), zones: Hash(String, Array(String)))","aliased_html":"{crons: Array(String), zones: Hash(String, Array(String))}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}},{"html_id":"drivers/Place/BookingApprovalWorkflows/SiteDetails","path":"Place/BookingApprovalWorkflows/SiteDetails.html","kind":"alias","full_name":"Place::BookingApprovalWorkflows::SiteDetails","name":"SiteDetails","abstract":false,"locations":[{"filename":"src/place/booking_approval_workflows.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approval_workflows.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(approval: String, name: String, support_email: String, attachments: Hash(String, String) | Nil)","aliased_html":"{approval: String, name: String, support_email: String, attachments: Hash(String, String)?}","const":false,"namespace":{"html_id":"drivers/Place/BookingApprovalWorkflows","kind":"class","full_name":"Place::BookingApprovalWorkflows","name":"BookingApprovalWorkflows"}}]},{"html_id":"drivers/Place/BookingApprover","path":"Place/BookingApprover.html","kind":"class","full_name":"Place::BookingApprover","name":"BookingApprover","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_approver.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve_missed-instance-method","name":"approve_missed","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L78"},"def":{"name":"approve_missed","visibility":"Public","body":"booking_type = @approve_booking_types[0]? || \"desk\"\nbookings = Array(Booking).from_json(staff_api.query_bookings(type: booking_type, zones: [get_building_id], approved: false, period_end: 8.weeks.from_now.to_unix).get.to_json)\nbookings.each do |booking|\n booking.action = \"create\"\n approve_booking(booking)\nend\n\"found #{bookings.size} missed\"\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L37"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n approve_booking(Booking.from_json(payload))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@approve_zones = (setting?(Array(String), :approve_zones)) || ([] of String)\n@approve_booking_types = (setting?(Array(String), :approve_booking_types)) || ([] of String)\nschedule.clear\nschedule.every(10.minutes) do\n approve_missed\nend\n"}},{"html_id":"status-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/booking_approver.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_approver.cr#L96"},"def":{"name":"status","visibility":"Public","body":"{bookings_approved: @bookings_approved}"}}]},{"html_id":"drivers/Place/BookingCheckInHelper","path":"Place/BookingCheckInHelper.html","kind":"class","full_name":"Place::BookingCheckInHelper","name":"BookingCheckInHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_check_in_helper.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"current_meeting:PlaceCalendar::Event|Nil-instance-method","name":"current_meeting","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L95"},"def":{"name":"current_meeting","return_type":"PlaceCalendar::Event | ::Nil","visibility":"Public","body":"@current_meeting"}},{"html_id":"ignore_long_meeting?:Bool-instance-method","name":"ignore_long_meeting?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L145"},"def":{"name":"ignore_long_meeting?","return_type":"Bool","visibility":"Public","body":"meeting = current_meeting\nif meeting\nelse\n return false\nend\nevent_end = meeting.event_end\nif event_end\nelse\n return true\nend\nignore_length = @ignore_longer_than\nif ignore_length\nelse\n return false\nend\nmeeting_length = event_end - meeting.event_start\nmeeting_length >= ignore_length\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L15"},"def":{"name":"mailer","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\n(sys.implementing(Interface::Mailer))[0]\n"}},{"html_id":"meeting_pending?:Bool-instance-method","name":"meeting_pending?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L93"},"def":{"name":"meeting_pending?","return_type":"Bool","visibility":"Public","body":"@meeting_pending"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L108"},"def":{"name":"on_update","visibility":"Public","body":"@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n@decline_message = setting?(String, :decline_message)\n@mailer_system = setting?(String, :mailer_system)\n@ignore_longer_than = (setting?(Int32, :ignore_longer_than)).try(&.minutes)\n@prompt_after = ((setting?(Int32, :prompt_after)) || 10).minutes\n@present_from = ((setting?(Int32, :present_from)) || 5).minutes\n@auto_cancel = (setting?(Bool, :auto_cancel)) || false\n@check_in_url = (setting?(String, :check_in_url)) || \"\"\n@no_show_url = (setting?(String, :no_show_url)) || \"\"\nif @check_in_url.presence\n @domain = (URI.parse(@check_in_url)).host.not_nil!\nend\nsubscriptions.clear\nbookings.subscribe(:current_booking) do |_sub, pending|\n event = ::Union(PlaceCalendar::Event, ::Nil).from_json(pending)\n update_current(event)\nend\nbookings.subscribe(:current_pending) do |_sub, pending|\n update_pending(pending == \"true\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nmonitor(\"#{config.control_system.not_nil!.id}/guest/bookings/prompted\") do |_sub, response|\n checkin_or_end_meeting(**NamedTuple(id: String, check_in: Bool).from_json(response))\nend\ntimezone = (setting?(String, :time_zone)) || config.control_system.not_nil!.timezone.presence\nif timezone\n @timezone = Time::Location.load(timezone)\nend\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L94"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"staff_api-instance-method","name":"staff_api","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L21"},"def":{"name":"staff_api","visibility":"Public","body":"sys_id = @mailer_system.presence\nsys = sys_id ? system(sys_id) : system\nsys[:StaffAPI_1]\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_check_in_helper.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_check_in_helper.cr#L257"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@timezone)\n[TemplateFields.new(trigger: {\"bookings\", \"check_in_prompt\"}, name: \"Check in prompt\", description: \"Email template for prompting meeting hosts to check in or cancel their booking\", fields: [{name: \"jwt\", description: \"Authentication token for secure responses\"}, {name: \"host_email\", description: \"Email address of the meeting organizer\"}, {name: \"host_name\", description: \"Full name of the meeting organizer\"}, {name: \"event_id\", description: \"Unique identifier for the calendar event\"}, {name: \"system_id\", description: \"Unique identifier for the room/space\"}, {name: \"meeting_room_name\", description: \"Display name of the meeting room\"}, {name: \"meeting_summary\", description: \"Title or subject of the meeting\"}, {name: \"meeting_datetime\", description: \"Formatted date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"meeting_time\", description: \"Formatted time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"meeting_date\", description: \"Formatted date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"check_in_url\", description: \"URL for confirming attendance\"}, {name: \"no_show_url\", description: \"URL for cancelling the booking\"}])]\n"}}]},{"html_id":"drivers/Place/BookingNotifier","path":"Place/BookingNotifier.html","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"calendar-instance-method","name":"calendar","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L64"},"def":{"name":"calendar","visibility":"Public","body":"system[:Calendar]"}},{"html_id":"check_bookings(months_from_now:Int32=2)-instance-method","name":"check_bookings","abstract":false,"args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"args_string":"(months_from_now : Int32 = 2)","args_html":"(months_from_now : Int32 = 2)","location":{"filename":"src/place/booking_notifier.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L365"},"def":{"name":"check_bookings","args":[{"name":"months_from_now","default_value":"2","external_name":"months_from_now","restriction":"Int32"}],"visibility":"Public","body":"expired = 5.minutes.ago.to_unix\n@debounce.reject! do |_, __temp_902|\n _event, entered = __temp_902\n expired > entered\nend\n@check_bookings_mutex.synchronize do\n @notify_lookup.each do |building_zone, details|\n building_name = details.name\n email = details.email\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n building_key = building_name.downcase.gsub(' ', '_')\n perform_booking_check(building_zone, building_name, building_key, email, details.notify_booking_owner, details.notify_manager, attachments, months_from_now)\n end\nend\n"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":508,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L508"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"get_building_name(zones:Array(String))-instance-method","name":"get_building_name","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(zones : Array(String))","args_html":"(zones : Array(String))","location":{"filename":"src/place/booking_notifier.cr","line_number":313,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L313"},"def":{"name":"get_building_name","args":[{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"zones.each do |zone_id|\n details = @notify_lookup[zone_id]?\n if details\n attachments = details.attachments.compact_map do |n, l|\n get_attachment(n, l)\n end\n logger.debug do\n \"attaching #{attachments.size} files\"\n end\n return {zone_id, details, attachments}\n end\nend\n{nil, nil, nil}\n"}},{"html_id":"get_manager(staff_email:String)-instance-method","name":"get_manager","abstract":false,"args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"args_string":"(staff_email : String)","args_html":"(staff_email : String)","location":{"filename":"src/place/booking_notifier.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L489"},"def":{"name":"get_manager","args":[{"name":"staff_email","external_name":"staff_email","restriction":"String"}],"visibility":"Public","body":"begin\n manager = (calendar.get_user_manager(staff_email)).get\n (manager[\"email\"]? || manager[\"username\"]).as_s\nrescue error\n logger.warn do\n \"failed to email manager of #{staff_email}\\n#{error.inspect_with_backtrace}\"\n end\n nil\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L60"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L68"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n parse_booking(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L113"},"def":{"name":"on_update","visibility":"Public","body":"@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@unique_templates = (setting?(Bool, :unique_templates)) || false\n@template_suffix = @unique_templates ? \"_#{@booking_type}\" : \"\"\n@template_fields_suffix = @unique_templates ? \" (#{@booking_type})\" : \"\"\ntime_zone = (setting?(String, :calendar_time_zone)).presence || \"Australia/Sydney\"\n@time_zone = Time::Location.load(time_zone)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\n@notify_lookup = setting(Hash(String, SiteDetails), :notify)\nattach = setting?(Bool, :disable_attachments)\n@disable_attachments = attach.nil? ? true : !!attach\n@poll_bookings = setting(Bool, :poll_bookings)\n@poll_every_minutes = setting(Int32, :poll_every_minutes)\nschedule.clear\nif @poll_bookings\n schedule.every(@poll_every_minutes.minutes) do\n check_bookings\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L136"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"booking_id\", description: \"Unique identifier for the booking\"}, {name: \"start_time\", description: \"Booking start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"start_date\", description: \"Booking start date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"start_datetime\", description: \"Booking start date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"end_time\", description: \"Booking end time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"end_date\", description: \"Booking end date (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"end_datetime\", description: \"Booking end date and time (e.g., #{time_now.to_s(@date_time_format)})\"}, {name: \"starting_unix\", description: \"Booking start time as Unix timestamp\"}, {name: \"asset_id\", description: \"Identifier of the booked asset (e.g., desk)\"}, {name: \"user_id\", description: \"Identifier of the person the booking is for\"}, {name: \"user_email\", description: \"Email of the person the booking is for\"}, {name: \"user_name\", description: \"Name of the person the booking is for\"}, {name: \"reason\", description: \"Purpose or title of the booking\"}, {name: \"level_zone\", description: \"Zone identifier for the specific floor level\"}, {name: \"building_zone\", description: \"Zone identifier for the building\"}, {name: \"building_name\", description: \"Name of the building\"}, {name: \"approver_name\", description: \"Name of the person who approved/rejected the booking\"}, {name: \"approver_email\", description: \"Email of the person who approved/rejected the booking\"}, {name: \"booked_by_name\", description: \"Name of the person who made the booking\"}, {name: \"booked_by_email\", description: \"Email of the person who made the booking\"}, {name: \"attachment_name\", description: \"Name of any attached files\"}, {name: \"attachment_url\", description: \"URL to download any attachments\"}, {name: \"network_username\", description: \"Network access username (if configured)\"}, {name: \"network_password\", description: \"Generated network access password (if configured)\"}]\n[TemplateFields.new(trigger: {\"bookings\", \"booked_by_notify#{@template_suffix}\"}, name: \"Booking booked by notification#{@template_fields_suffix}\", description: \"Notification when someone books on behalf of another person\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"booking_notify#{@template_suffix}\"}, name: \"Booking booked notification#{@template_fields_suffix}\", description: \"Notification when a booking is created for yourself\", fields: common_fields), TemplateFields.new(trigger: {\"bookings\", \"cancelled#{@template_suffix}\"}, name: \"Booking cancelled#{@template_fields_suffix}\", description: \"Notification when a booking is cancelled\", fields: common_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/booking_notifier.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L497"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/BookingNotifier/SiteDetails","path":"Place/BookingNotifier/SiteDetails.html","kind":"class","full_name":"Place::BookingNotifier::SiteDetails","name":"SiteDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/booking_notifier.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L95"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/BookingNotifier","kind":"class","full_name":"Place::BookingNotifier","name":"BookingNotifier"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/booking_notifier.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L96"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attachments:Hash(String,String)-instance-method","name":"attachments","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L100"},"def":{"name":"attachments","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @attachments).nil?\n @attachments = ({} of String => String)\nelse\n __temp_1\nend"}},{"html_id":"email:Array(String)-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L99"},"def":{"name":"email","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @email).nil?\n @email = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"include_network_credentials:Bool|Nil-instance-method","name":"include_network_credentials","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L103"},"def":{"name":"include_network_credentials","return_type":"Bool | ::Nil","visibility":"Public","body":"@include_network_credentials"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L98"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"network_group_ids:Array(String)-instance-method","name":"network_group_ids","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L110"},"def":{"name":"network_group_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @network_group_ids).nil?\n @network_group_ids = ([] of String)\nelse\n __temp_1\nend"}},{"html_id":"network_password_exclude:String|Nil-instance-method","name":"network_password_exclude","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L105"},"def":{"name":"network_password_exclude","return_type":"String | ::Nil","visibility":"Public","body":"@network_password_exclude"}},{"html_id":"network_password_length:Int32|Nil-instance-method","name":"network_password_length","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L104"},"def":{"name":"network_password_length","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_length"}},{"html_id":"network_password_minimum_lowercase:Int32|Nil-instance-method","name":"network_password_minimum_lowercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L106"},"def":{"name":"network_password_minimum_lowercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_lowercase"}},{"html_id":"network_password_minimum_numbers:Int32|Nil-instance-method","name":"network_password_minimum_numbers","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L108"},"def":{"name":"network_password_minimum_numbers","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_numbers"}},{"html_id":"network_password_minimum_symbols:Int32|Nil-instance-method","name":"network_password_minimum_symbols","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L109"},"def":{"name":"network_password_minimum_symbols","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_symbols"}},{"html_id":"network_password_minimum_uppercase:Int32|Nil-instance-method","name":"network_password_minimum_uppercase","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L107"},"def":{"name":"network_password_minimum_uppercase","return_type":"Int32 | ::Nil","visibility":"Public","body":"@network_password_minimum_uppercase"}},{"html_id":"notify_booking_owner:Bool|Nil-instance-method","name":"notify_booking_owner","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L102"},"def":{"name":"notify_booking_owner","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_booking_owner"}},{"html_id":"notify_manager:Bool|Nil-instance-method","name":"notify_manager","abstract":false,"location":{"filename":"src/place/booking_notifier.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/booking_notifier.cr#L101"},"def":{"name":"notify_manager","return_type":"Bool | ::Nil","visibility":"Public","body":"@notify_manager"}}]}]},{"html_id":"drivers/Place/Bookings","path":"Place/Bookings.html","kind":"class","full_name":"Place::Bookings","name":"Bookings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"book_now(period_in_seconds:Int64,title:String|Nil=nil,owner:String|Nil=nil)-instance-method","name":"book_now","abstract":false,"args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"args_string":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","args_html":"(period_in_seconds : Int64, title : String | Nil = nil, owner : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L233"},"def":{"name":"book_now","args":[{"name":"period_in_seconds","external_name":"period_in_seconds","restriction":"Int64"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"owner","default_value":"nil","external_name":"owner","restriction":"String | ::Nil"}],"visibility":"Public","body":"title || (title = @default_title)\nstarting = Time.utc.to_unix\nending = starting + period_in_seconds\nif @next_pending || (status?(Bool, \"in_use\"))\n raise(\"the room is currently in use\")\nend\nif next_booking = upcoming\n if next_booking.event_start.to_unix < ending\n raise(\"unable to book due to clash\")\n end\nend\nlogger.debug do\n \"booking event #{title}, from #{starting}, to #{ending}, in #{@time_zone.name}, on #{@calendar_id}\"\nend\nroom_email = system.email.not_nil!\nif @application_permissions\n host_calendar = @calendar_id\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, true)]\n if owner && !owner.empty?\n attendees << (::PlaceCalendar::Event::Attendee.new(owner, owner))\n end\nelse\n host_calendar = owner.presence || @calendar_id\n room_is_organizer = host_calendar == room_email\n attendees = [::PlaceCalendar::Event::Attendee.new(room_email, room_email, \"accepted\", true, room_is_organizer)]\nend\nevent = calendar.create_event(title: title, event_start: starting, event_end: ending, description: \"\", attendees: attendees, location: status?(String, \"room_name\"), timezone: @time_zone.name, calendar_id: host_calendar)\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(2.seconds) do\n poll_events\n end\nend\ncheck_in_actual(starting, check_bookings: false)\nevent\n"}},{"html_id":"calendar_id:String-instance-method","name":"calendar_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L60"},"def":{"name":"calendar_id","return_type":"String","visibility":"Public","body":"@calendar_id"}},{"html_id":"calendar_ids:Array(String)-instance-method","name":"calendar_ids","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L61"},"def":{"name":"calendar_ids","return_type":"Array(String)","visibility":"Public","body":"@calendar_ids"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/bookings.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L510"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nsys_email = @calendar_id.downcase\nif (sys_email == mac_address.downcase) && (host = current.try(&.host))\n {location: \"meeting\", assigned_to: host, mac_address: sys_email}\nend\n"}},{"html_id":"checkin:Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L193"},"def":{"name":"checkin","return_type":"Nil","visibility":"Public","body":"if booking = pending || current\n check_in_actual(booking.event_start.to_unix)\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L522"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\n[] of Nil\n"}},{"html_id":"end_meeting(meeting_start_time:Int64,notify:Bool=true,comment:String=\"cancelledatbookingpanel\"):Nil-instance-method","name":"end_meeting","doc":"End either the current meeting early, or the pending meeting","summary":"

End either the current meeting early, or the pending meeting

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"args_string":"(meeting_start_time : Int64, notify : Bool = true, comment : String = \"cancelled at booking panel\") : Nil","args_html":"(meeting_start_time : Int64, notify : Bool = true, comment : String = "cancelled at booking panel") : Nil","location":{"filename":"src/place/bookings.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L208"},"def":{"name":"end_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"\"cancelled at booking panel\"","external_name":"comment","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"cmeeting = current\nresult = if cmeeting && (cmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"deleting event #{cmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, cmeeting.id, notify: notify, comment: comment)\nelse\n nmeeting = upcoming\n if nmeeting && (nmeeting.event_start.to_unix == meeting_start_time)\n logger.debug do\n \"declining event #{nmeeting.title}, from #{@calendar_id}\"\n end\n calendar.decline_event(@calendar_id, nmeeting.id, notify: notify, comment: comment)\n else\n raise(\"only the current or pending meeting can be cancelled\")\n end\nend\nresult.get\nif (subscription = @subscription) && !subscription.expired?\nelse\n schedule.in(1.seconds) do\n poll_events\n end\nend\n"}},{"html_id":"is_stale?(timestamp:Int64|Nil):Bool-instance-method","name":"is_stale?","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"args_string":"(timestamp : Int64 | Nil) : Bool","args_html":"(timestamp : Int64 | Nil) : Bool","location":{"filename":"src/place/bookings.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L634"},"def":{"name":"is_stale?","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64 | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"if timestamp.nil?\n return self[:sensor_stale] = false\nend\nsensor_time = Time.unix(timestamp)\nstale_time = @sensor_stale_minutes.ago\nif sensor_time > stale_time\n self[:sensor_stale] = false\nelse\n @perform_sensor_search = true\n self[:sensor_stale] = true\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:UInt32|Nil=20_u32)-instance-method","name":"list_users","doc":"Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)","summary":"

Allow apps to search for attendees (to add to new bookings) via driver instead of via staff-api (as some role based accounts may not have MS Graph access)

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","args_html":"(query : String | Nil = nil, limit : UInt32 | Nil = 20_u32)","location":{"filename":"src/place/bookings.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L229"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"20_u32","external_name":"limit","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"calendar.list_users(query, limit)"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/bookings.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L481"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nemail = email.to_s.downcase\nusername = username.to_s.downcase\nmatching_events = [] of ::PlaceCalendar::Event\nif event = current\n emails = event.attendees.map() do |__arg4|\n __arg4.email.downcase\n end\n if host = event.host\n emails << host.downcase\n end\n if (emails.includes?(email)) || (emails.includes?(username))\n logger.debug do\n \"found user {#{email}, #{username}} in list of attendees\"\n end\n matching_events << event\n else\n if !username.empty? && emails.find(&.starts_with?(username))\n logger.debug do\n \"found email starting with username '#{username}' in list of attendees\"\n end\n matching_events << event\n end\n end\nend\nto_location_format(matching_events)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/bookings.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L506"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"(locate_user(email, username)).map(&.[](:mac))"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L84"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\n@calendar_id = ((setting?(String, :calendar_id)).presence || system.email.not_nil!).downcase\nids = ((setting?(Array(String), :calendar_ids)) || ([] of String)).map!(&.downcase)\nids.unshift(@calendar_id)\n@calendar_ids = ids.uniq!\n@perform_sensor_search = true\nschedule.in((Random.rand(30)).seconds + (Random.rand(30000)).milliseconds) do\n poll_events\nend\ncache_polling_period = ((setting?(UInt32, :cache_polling_period)) || 2_u32).minutes.total_milliseconds.to_i\ncache_polling_period = cache_polling_period + (Random.rand(5000))\ncache_random_period = cache_polling_period // 3\nschedule.every(cache_polling_period.milliseconds) do\n schedule.in((Random.rand(cache_random_period)).milliseconds) do\n poll_events\n end\nend\ntime_zone = (setting?(String, :calendar_time_zone)).presence || config.control_system.not_nil!.timezone.presence\nif time_zone\n @time_zone = Time::Location.load(time_zone)\nend\n@default_title = (setting?(String, :book_now_default_title)).presence || \"Ad Hoc booking\"\nbook_now = setting?(Bool, :disable_book_now)\nnot_bookable = (setting?(Bool, :not_bookable)) || false\nself[:bookable] = bookable = not_bookable ? false : system.bookable\n@disable_book_now = book_now.nil? ? !bookable : !!book_now\n@disable_end_meeting = !!(setting?(Bool, :disable_end_meeting))\n@disable_book_now_host = (setting?(Bool, :disable_book_now_host)) || false\n@max_user_search_results = (setting?(UInt32, :max_user_search_results)) || 20_u32\npending_period = (setting?(UInt32, :pending_period)) || 5_u32\n@pending_period = pending_period.minutes\npending_before = (setting?(UInt32, :pending_before)) || 5_u32\n@pending_before = pending_before.minutes\ncache_days = (setting?(UInt32, :cache_days)) || 30_u32\n@cache_days = cache_days.days\n@change_event_sync_delay = (setting?(UInt32, :change_event_sync_delay)) || 5_u32\nlast_started = (setting?(Int64, :last_booking_started)) || 0_i64\n@last_booking_started = last_started > 30.minutes.from_now.to_unix ? 0_i64 : last_started\n@include_cancelled_bookings = (setting?(Bool, :include_cancelled_bookings)) || false\n@application_permissions = (setting?(Bool, :application_permissions)) || false\n@sensor_stale_minutes = ((setting?(Int32, :sensor_stale_minutes)) || 8).minutes\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nschedule.cron(\"* * * * *\") do\n schedule.in((rand(1000)).milliseconds) do\n if list = self[:bookings]?\n check_current_booking(list.as_a)\n end\n end\nend\npush_notificaitons_configure\ncontrol_sys = config.control_system.not_nil!\nself[:room_name] = ((setting?(String, :room_name)).presence || control_sys.display_name.presence) || control_sys.name\nself[:room_capacity] = (setting?(Int32, :room_capacity)) || control_sys.capacity\nself[:default_title] = @default_title\nself[:disable_book_now_host] = @disable_book_now_host\nself[:disable_book_now] = @disable_book_now\nself[:disable_end_meeting] = @disable_end_meeting\nself[:pending_period] = pending_period\nself[:pending_before] = pending_before\nself[:control_ui] = setting?(String, :control_ui)\nself[:catering_ui] = setting?(String, :catering_ui)\nself[:room_image] = (setting?(String, :room_image)) || control_sys.images.try(&.first?)\nself[:hide_meeting_details] = (setting?(Bool, :hide_meeting_details)) || false\nself[:hide_meeting_title] = (setting?(Bool, :hide_meeting_title)) || false\nself[:offline_color] = setting?(String, :offline_color)\nself[:offline_image] = setting?(String, :offline_image)\nself[:custom_qr_color] = setting?(String, :custom_qr_color)\nself[:custom_qr_url] = (setting?(String, :custom_qr_url)).try(&.gsub(\"{system_id}\", control_sys.id))\nhide_qr_code = (setting?(Bool, :hide_qr_code)) || false\nshow_qr_code = setting?(Bool, :show_qr_code)\nself[:show_qr_code] = show_qr_code.nil? ? !hide_qr_code : show_qr_code\nself[:sensor_mac] = @sensor_mac = setting?(String, :sensor_mac)\nself[:min_duration] = (setting?(Int32, :min_duration)) || 15\nself[:max_duration] = (setting?(Int32, :max_duration)) || 480\nself[:enable_end_meeting_button] = (setting?(Bool, :enable_end_meeting_button)) || false\n"}},{"html_id":"people_count?:Float64|Nil-instance-method","name":"people_count?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":527,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L527"},"def":{"name":"people_count?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n drivers = system.implementing(Interface::Sensor)\n count_data = (drivers.sensors(\"people_count\", @sensor_mac)).get.flat_map(&.as_a).first?\n if count_data\n else\n return nil\n end\n if is_stale?(count_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = count_data[\"value\"]\n (data.as_f? || data.as_i).to_f\nrescue error\n logger.warn(exception: error) do\n \"error checking people count\"\n end\n nil\nend"}},{"html_id":"people_present?:Float64|Nil-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":541,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L541"},"def":{"name":"people_present?","return_type":"Float64 | ::Nil","visibility":"Public","body":"begin\n count = people_count?\n if count\n return count > 0.0 ? 1.0 : 0.0\n end\n drivers = system.implementing(Interface::Sensor)\n presence_data = (drivers.sensors(\"presence\", @sensor_mac)).get.flat_map(&.as_a).first?\n if presence_data\n else\n return nil\n end\n if is_stale?(presence_data[\"last_seen\"]?.try(&.as_i64))\n return nil\n end\n data = presence_data[\"value\"]\n (data.as_f? || data.as_i).to_f > 0.0 ? 1.0 : 0.0\nrescue error\n logger.warn(exception: error) do\n \"error checking people presence\"\n end\n nil\nend"}},{"html_id":"poll_events:Nil-instance-method","name":"poll_events","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L281"},"def":{"name":"poll_events","return_type":"Nil","visibility":"Public","body":"begin\n if @polling\n return\n end\n @polling = true\n if @perform_sensor_search\n check_for_sensors\n end\n now = Time.local(@time_zone)\n start_of_day = now.at_beginning_of_day.to_unix\n cache_period = start_of_day + @cache_days.to_i\n events = @calendar_ids.flat_map do |cal_id|\n logger.debug do\n \"polling events #{cal_id}, from #{start_of_day}, to #{cache_period}, in #{@time_zone.name}\"\n end\n (calendar.list_events(cal_id, start_of_day, cache_period, @time_zone.name, include_cancelled: @include_cancelled_bookings)).get.as_a\n end.sort do |a, b|\n a[\"event_start\"].as_i64 <=> b[\"event_start\"].as_i64\n end\n self[:bookings] = events\n check_current_booking(events)\n events\nensure\n @polling = false\nend"}},{"html_id":"start_meeting(meeting_start_time:Int64):Nil-instance-method","name":"start_meeting","doc":"we no longer accept user specified values","summary":"

we no longer accept user specified values

","abstract":false,"args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"args_string":"(meeting_start_time : Int64) : Nil","args_html":"(meeting_start_time : Int64) : Nil","location":{"filename":"src/place/bookings.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L188"},"def":{"name":"start_meeting","args":[{"name":"meeting_start_time","external_name":"meeting_start_time","restriction":"Int64"}],"return_type":"Nil","visibility":"Public","body":"logger.warn do\n \"deprecated function call to start_meeting, please use checkin\"\nend\ncheckin\n"}},{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":740,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L740"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess","path":"Place/Bookings/GrantAreaAccess.html","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"allocations:Hash(String,Array(String))-instance-method","name":"allocations","doc":"user_id => Array(special access)","summary":"

user_id => Array(special access)

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L29"},"def":{"name":"allocations","return_type":"Hash(String, Array(String))","visibility":"Public","body":"@allocations"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"cached_user_lookups:Hash(String,String|Int64)-instance-method","name":"cached_user_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L30"},"def":{"name":"cached_user_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_user_lookups"}},{"html_id":"cached_zone_lookups:Hash(String,String|Int64)-instance-method","name":"cached_zone_lookups","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L31"},"def":{"name":"cached_zone_lookups","return_type":"Hash(String, String | Int64)","visibility":"Public","body":"@cached_zone_lookups"}},{"html_id":"desks(level_id:String):Hash(String,String)-instance-method","name":"desks","doc":"returns desk_id => security zone name / id","summary":"

returns desk_id => security zone name / id

","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"args_string":"(level_id : String) : Hash(String, String)","args_html":"(level_id : String) : Hash(String, String)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L119"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"}],"return_type":"Hash(String, String)","visibility":"Public","body":"desks = (staff_api.metadata(level_id, \"desks\")).get.dig?(\"desks\", \"details\")\nsecurity = {} of String => String\nif desks\nelse\n return security\nend\n(Array(Desk).from_json(desks.to_json)).each do |desk|\n sec = desk.security.presence\n if sec\n else\n next\n end\n security[desk.id] = sec\nend\nsecurity\n"}},{"html_id":"ensure_booking_access-instance-method","name":"ensure_booking_access","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L132"},"def":{"name":"ensure_booking_access","visibility":"Public","body":"errors = [] of String\n@mutex.synchronize do\n now = (Time.local(timezone)).at_beginning_of_day\n end_of_day = (3.days.from_now.in(timezone)).at_end_of_day\n access_required = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n levels.each do |level_id|\n desks = desks(level_id)\n if desks.empty?\n next\n end\n desk_bookings = (staff_api.query_bookings(now.to_unix, end_of_day.to_unix, zones: {level_id}, type: \"desk\")).get.as_a\n if desk_bookings.empty?\n next\n end\n desk_bookings.each do |booking|\n desk = booking[\"asset_id\"].as_s\n if security = desks[desk]?\n user_access = access_required[booking[\"user_email\"].as_s.downcase]\n user_access << security\n user_access.uniq!\n end\n end\n end\n allocations = @allocations\n if allocations == access_required\n return\n end\n remove = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n add = Hash(String, Array(String)).new do |hash, key|\n hash[key] = [] of String\n end\n logger.debug do\n \"found #{allocations.size} users that need access changes\"\n end\n all_keys = allocations.keys.concat(access_required.keys)\n all_keys.each do |key|\n current = allocations[key]? || ([] of String)\n desired = access_required[key]? || ([] of String)\n to_remove = current - desired\n to_add = desired - current\n if to_remove.empty?\n else\n remove[key] = to_remove\n end\n if to_add.empty?\n else\n add[key] = to_add\n end\n end\n logger.debug do\n \"deleting permissions: #{remove.size}\"\n end\n logger.debug do\n \"granting permissions: #{add.size}\"\n end\n security = security_system\n remove.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_remove_member(zone_id, user_id)).get\n rescue error\n access_required[user_email] << zone\n msg = \"failed to remove #{user_email} from security zone: #{zone}\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n rescue error\n access_required[user_email] = allocations[user_email]\n add.delete(user_email)\n msg = \"failed to remove #{user_email} from security zones\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n add.each do |user_email, zones|\n begin\n user_id = lookup_user_id(security, user_email)\n if user_id\n else\n raise(\"unable to find user_id for: #{user_email}\")\n end\n zones.uniq!.each do |zone|\n begin\n zone_id = lookup_zone_id(security, zone)\n if zone_id\n else\n raise(\"unable to find zone_id for: #{zone}\")\n end\n (security.zone_access_add_member(zone_id, user_id)).get\n rescue error\n access_required[user_email].delete(zone)\n msg = \"failed to add #{user_email} to security zone: #{zone}\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n rescue error\n access_required.delete(user_email)\n msg = \"failed to add #{user_email} to security zones\"\n errors << msg\n logger.warn(exception: error) do\n msg\n end\n end\n end\n define_setting(:permissions_allocated, access_required)\nend\nself[:sync_errors] = errors\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L53"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"systems.keys"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n check_access(Booking.from_json(payload))\nend\nschedule.every(30.minutes) do\n ensure_booking_access\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@timezone = nil\n@systems = nil\n@mutex.synchronize do\n @allocations = (setting?(Hash(String, Array(String)), :permissions_allocated)) || Hash(String, Array(String)).new\nend\n"}},{"html_id":"security_system-instance-method","name":"security_system","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L13"},"def":{"name":"security_system","visibility":"Public","body":"(system.implementing(Interface::ZoneAccessSecurity)).first"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L49"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = ((staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg0|\n __arg0.as_a.map(&.as_s)\n end)\nelse\n __temp_1\nend"}},{"html_id":"user_id?(email:String):String|Int64|Nil-instance-method","name":"user_id?","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String) : String | Int64 | Nil","args_html":"(email : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L78"},"def":{"name":"user_id?","args":[{"name":"email","external_name":"email","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_user_id(security, email.downcase)\n"}},{"html_id":"zone_id?(name_or_id:String):String|Int64|Nil-instance-method","name":"zone_id?","abstract":false,"args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"args_string":"(name_or_id : String) : String | Int64 | Nil","args_html":"(name_or_id : String) : String | Int64 | Nil","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L92"},"def":{"name":"zone_id?","args":[{"name":"name_or_id","external_name":"name_or_id","restriction":"String"}],"return_type":"String | Int64 | Nil","visibility":"Public","body":"security = security_system\nlookup_zone_id(security, name_or_id)\n"}}],"types":[{"html_id":"drivers/Place/Bookings/GrantAreaAccess/Desk","path":"Place/Bookings/GrantAreaAccess/Desk.html","kind":"struct","full_name":"Place::Bookings::GrantAreaAccess::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/grant_area_access.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings/GrantAreaAccess","kind":"class","full_name":"Place::Bookings::GrantAreaAccess","name":"GrantAreaAccess"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L74"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"security:String|Nil-instance-method","name":"security","abstract":false,"location":{"filename":"src/place/bookings/grant_area_access.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/grant_area_access.cr#L75"},"def":{"name":"security","return_type":"String | ::Nil","visibility":"Public","body":"@security"}}]}]},{"html_id":"drivers/Place/Bookings/NotifyEvent","path":"Place/Bookings/NotifyEvent.html","kind":"struct","full_name":"Place::Bookings::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L667"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings.cr","line_number":668,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L668"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L674"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":670,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L670"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":677,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L677"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":671,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L671"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":672,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L672"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":673,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L673"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/Bookings/NotifyType","path":"Place/Bookings/NotifyType.html","kind":"enum","full_name":"Place::Bookings::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L655"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":657,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L657"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":659,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L659"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L663"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":664,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L664"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":662,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L662"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":658,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L658"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/Bookings/ServiceName","path":"Place/Bookings/ServiceName.html","kind":"enum","full_name":"Place::Bookings::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings.cr","line_number":650,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L650"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/Bookings","kind":"class","full_name":"Place::Bookings","name":"Bookings"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":651,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L651"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/bookings.cr","line_number":652,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings.cr#L652"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/Calendar","path":"Place/Calendar.html","kind":"class","full_name":"Place::Calendar","name":"Calendar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/CalendarCommon","path":"Place/CalendarCommon.html","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon","abstract":false,"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"locations":[{"filename":"src/place/calendar_common.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"including_types":[{"html_id":"drivers/Microsoft/GraphAPI","kind":"class","full_name":"Microsoft::GraphAPI","name":"GraphAPI"},{"html_id":"drivers/Place/Calendar","kind":"class","full_name":"Place::Calendar","name":"Calendar"},{"html_id":"drivers/Place/WorkspaceAPI","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L330"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"accepting event #{event_id} on #{calendar_id}\"\nend\nclient(&.accept_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"access_token(user_id:String|Nil=nil)-instance-method","name":"access_token","abstract":false,"args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String | Nil = nil)","args_html":"(user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L161"},"def":{"name":"access_token","args":[{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.info do\n \"access token requested #{user_id}\"\nend\nclient(&.access_token(user_id))\n"}},{"html_id":"calendar_service_name-instance-method","name":"calendar_service_name","doc":"returns: google or office365","summary":"

returns: google or office365

","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":396,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L396"},"def":{"name":"calendar_service_name","visibility":"Public","body":"@client.not_nil!.client_id"}},{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]of::PlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of ::PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L339"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of ::PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(::PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = ::PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nclient(&.create_event(user_id, event, calendar_id))\n"}},{"html_id":"create_notifier(resource:String,notification_url:String,expiration_time:Int64,client_secret:String|Nil=nil,lifecycle_notification_url:String|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"create_notifier","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"args_string":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","args_html":"(resource : String, notification_url : String, expiration_time : Int64, client_secret : String | Nil = nil, lifecycle_notification_url : String | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":401,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L401"},"def":{"name":"create_notifier","args":[{"name":"resource","external_name":"resource","restriction":"String"},{"name":"notification_url","external_name":"notification_url","restriction":"String"},{"name":"expiration_time","external_name":"expiration_time","restriction":"Int64"},{"name":"client_secret","default_value":"nil","external_name":"client_secret","restriction":"String | ::Nil"},{"name":"lifecycle_notification_url","default_value":"nil","external_name":"lifecycle_notification_url","restriction":"String | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(expiration_time)\nclient(&.create_notifier(resource, notification_url, expires, client_secret, lifecycle_notification_url: lifecycle_notification_url))\n"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":312,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L312"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"declining event #{event_id} on #{calendar_id}\"\nend\nclient(&.decline_event(user_id, event_id, calendar_id: calendar_id, notify: notify, comment: comment))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L321"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nclient(&.delete_event(user_id, event_id, calendar_id: calendar_id, notify: notify))\n"}},{"html_id":"delete_notifier(subscription:PlaceCalendar::Subscription):Nil-instance-method","name":"delete_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"args_string":"(subscription : PlaceCalendar::Subscription) : Nil","args_html":"(subscription : PlaceCalendar::Subscription) : Nil","location":{"filename":"src/place/calendar_common.cr","line_number":420,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L420"},"def":{"name":"delete_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"}],"return_type":"Nil","visibility":"Public","body":"client(&.delete_notifier(subscription))"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/calendar_common.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L119"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/calendar_common.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L115"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"get_event(calendar_id:String,event_id:String,user_id:String|Nil=nil)-instance-method","name":"get_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L305"},"def":{"name":"get_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"fetching event #{event_id} on #{calendar_id}\"\nend\nuser_id = (user_id || @service_account.presence) || calendar_id\nclient(&.get_event(user_id, id: event_id, calendar_id: calendar_id))\n"}},{"html_id":"get_group(group_id:String)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L258"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n office_client = (_client.calendar.as(PlaceCalendar::Office365)).client\n if group_id.includes?('@')\n group = office_client.list_groups(filter: \"mail eq '#{group_id}'\").value.first?\n if group\n return group.to_place_group\n end\n end\n (office_client.get_group(group_id)).to_place_group\n end\nend\n"}},{"html_id":"get_groups(user_id:String)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L167"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nclient(&.get_groups(user_id))\n"}},{"html_id":"get_members(group_id:String,next_page:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(group_id : String, next_page : String | Nil = nil)","args_html":"(group_id : String, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L177"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nif group_id.includes?('@')\n client do |_client|\n if _client.client_id == (:office365)\n logger.warn do\n \"inefficient group members request. Recommended obtaining group.id versus using email\"\n end\n end\n end\nend\nmembers = client(&.get_members(group_id, next_link: next_page))\nif member = members.first?\n member.next_page = member.next_link\nend\nmembers\n"}},{"html_id":"get_user(user_id:String)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L220"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nclient(&.get_user_by_email(user_id))\n"}},{"html_id":"get_user_manager(user_id:String)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L233"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.get_user_manager(user_id)).to_place_calendar\n end\nend\n"}},{"html_id":"in_flight_size-instance-method","name":"in_flight_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L111"},"def":{"name":"in_flight_size","visibility":"Public","body":"@flight_size"}},{"html_id":"list_calendars(user_id:String)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/calendar_common.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L226"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nclient(&.list_calendars(user_id))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,ical_uid:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, ical_uid : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L273"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"}],"visibility":"Public","body":"location = time_zone ? Time::Location.load(time_zone) : Time::Location.local\nperiod_start = (Time.unix(period_start)).in(location)\nperiod_end = (Time.unix(period_end)).in(location)\nuser_id = (user_id || @service_account.presence) || calendar_id\nlogger.debug do\n \"listing events for #{calendar_id}\"\nend\n_client = @client.not_nil!\nevents = if _client.client_id == (:google)\n (_client.calendar.as(PlaceCalendar::Google)).list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid, quotaUser: calendar_id[0..39])\nelse\n _client.list_events(user_id, calendar_id, period_start: period_start, period_end: period_end, showDeleted: include_cancelled, ical_uid: ical_uid)\nend\nif ical_uid\n events = events.select do |e|\n e.ical_uid == ical_uid\n end\nend\nevents\n"}},{"html_id":"list_groups(query:String|Nil=nil,filter:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, filter : String | Nil = nil)","args_html":"(query : String | Nil = nil, filter : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L244"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{filter || query}, note: graphAPI only\"\nend\nclient do |_client|\n if _client.client_id == (:office365)\n ((_client.calendar.as(PlaceCalendar::Office365)).client.list_groups(query, filter: filter)).value.map(&.to_place_group)\n end\nend\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,filter:String|Nil=nil,next_page:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, filter : String | Nil = nil, next_page : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L203"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"filter","default_value":"nil","external_name":"filter","restriction":"String | ::Nil"},{"name":"next_page","default_value":"nil","external_name":"next_page","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query || filter}, limit #{limit} (next: #{!!next_page})\"\nend\nusers = client(&.list_users(query, limit, filter: filter, next_link: next_page))\nif user = users.first?\n user.next_page = user.next_link\nend\nusers\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L40"},"def":{"name":"on_unload","visibility":"Public","body":"@in_flight.close\n@channel.close\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L45"},"def":{"name":"on_update","visibility":"Public","body":"if proxy_config = setting?(NamedTuple(host: String, port: Int32, auth: NamedTuple(username: String, password: String) | ::Nil), :proxy)\n ConnectProxy.proxy_uri = \"http://#{proxy_config[:host]}:#{proxy_config[:port]}\"\n if proxy_auth = proxy_config[:auth]\n ConnectProxy.username = proxy_auth[:username]\n ConnectProxy.password = proxy_auth[:password]\n end\nend\nConnectProxy.verify_tls = !!(setting?(Bool, :proxy_verify_tls))\nConnectProxy.disable_crl_checks = !!(setting?(Bool, :proxy_disable_crl))\n@service_account = (setting?(String, :calendar_service_account)).presence\n@rate_limit = (setting?(Int32, :rate_limit)) || 10\n@wait_time = 1.second / @rate_limit\n@mailer_from = (setting?(String, :mailer_from)).presence || @service_account\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n@in_flight.close\n@channel.close\n@client = begin\n config = setting(GoogleParams, :calendar_config)\n cli = ::PlaceCalendar::Client.new(**config)\n @channel = Channel(Nil).new(9)\n @in_flight = Channel(Nil).new(10)\n spawn do\n rate_limiter\n end\n cli\nrescue\n config = setting(OfficeParams, :calendar_config)\n ::PlaceCalendar::Client.new(**config)\nend\n"}},{"html_id":"queue_size-instance-method","name":"queue_size","abstract":false,"location":{"filename":"src/place/calendar_common.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L107"},"def":{"name":"queue_size","visibility":"Public","body":"@queue_size"}},{"html_id":"reauthorize_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64|Nil=nil):PlaceCalendar::Subscription-instance-method","name":"reauthorize_notifier","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64 | Nil = nil) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L414"},"def":{"name":"reauthorize_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","default_value":"nil","external_name":"new_expiration_time","restriction":"Int64 | ::Nil"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = new_expiration_time ? Time.unix(new_expiration_time) : nil\nclient(&.reauthorize_notifier(subscription, expires))\n"}},{"html_id":"renew_notifier(subscription:PlaceCalendar::Subscription,new_expiration_time:Int64):PlaceCalendar::Subscription-instance-method","name":"renew_notifier","abstract":false,"args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"args_string":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","args_html":"(subscription : PlaceCalendar::Subscription, new_expiration_time : Int64) : PlaceCalendar::Subscription","location":{"filename":"src/place/calendar_common.cr","line_number":407,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L407"},"def":{"name":"renew_notifier","args":[{"name":"subscription","external_name":"subscription","restriction":"::PlaceCalendar::Subscription"},{"name":"new_expiration_time","external_name":"new_expiration_time","restriction":"Int64"}],"return_type":"::PlaceCalendar::Subscription","visibility":"Public","body":"expires = Time.unix(new_expiration_time)\nclient(&.renew_notifier(subscription, expires))\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L124"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"sender = case from\nin String\n from\nin Array(String)\n from.first? || @mailer_from.not_nil!\nin Nil\n @mailer_from.not_nil!\nend\nlogger.debug do\n \"an email was sent from: #{sender}, to: #{to}\"\nend\nclient do |__arg0|\n __arg0.calendar.send_mail(sender, to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc)\nend\n"}},{"html_id":"update_event(event:PlaceCalendar::Event,user_id:String|Nil=nil,calendar_id:String|Nil=nil)-instance-method","name":"update_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"args_string":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","args_html":"(event : PlaceCalendar::Event, user_id : String | Nil = nil, calendar_id : String | Nil = nil)","location":{"filename":"src/place/calendar_common.cr","line_number":386,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L386"},"def":{"name":"update_event","args":[{"name":"event","external_name":"event","restriction":"::PlaceCalendar::Event"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"user_id = ((user_id || @service_account.presence) || calendar_id).not_nil!\ncalendar_id = calendar_id || user_id\nlogger.debug do\n \"updating event #{event.id} on #{event.host}\"\nend\nclient(&.update_event(user_id: user_id, event: event, calendar_id: calendar_id))\n"}}],"types":[{"html_id":"drivers/Place/CalendarCommon/GoogleParams","path":"Place/CalendarCommon/GoogleParams.html","kind":"alias","full_name":"Place::CalendarCommon::GoogleParams","name":"GoogleParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String)","aliased_html":"{scopes: Array(String) | String, domain: String, sub: String, issuer: String, signing_key: String}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}},{"html_id":"drivers/Place/CalendarCommon/OfficeParams","path":"Place/CalendarCommon/OfficeParams.html","kind":"alias","full_name":"Place::CalendarCommon::OfficeParams","name":"OfficeParams","abstract":false,"locations":[{"filename":"src/place/calendar_common.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_common.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(tenant: String, client_id: String, client_secret: String, conference_type: String | Nil)","aliased_html":"{tenant: String, client_id: String, client_secret: String, conference_type: String?}","const":false,"namespace":{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}}]},{"html_id":"drivers/Place/CalendarDelegated","path":"Place/CalendarDelegated.html","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_event(title:String,event_start:Int64,event_end:Int64|Nil=nil,description:String=\"\",attendees:Array(PlaceCalendar::Event::Attendee)=[]ofPlaceCalendar::Event::Attendee,location:String|Nil=nil,timezone:String|Nil=nil,user_id:String|Nil=nil,calendar_id:String|Nil=nil,online_meeting_id:String|Nil=nil,online_meeting_provider:String|Nil=nil,online_meeting_url:String|Nil=nil,online_meeting_sip:String|Nil=nil,online_meeting_phones:Array(String)|Nil=nil,online_meeting_pin:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"create_event","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = \"\", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(title : String, event_start : Int64, event_end : Int64 | Nil = nil, description : String = "", attendees : Array(PlaceCalendar::Event::Attendee) = [] of PlaceCalendar::Event::Attendee, location : String | Nil = nil, timezone : String | Nil = nil, user_id : String | Nil = nil, calendar_id : String | Nil = nil, online_meeting_id : String | Nil = nil, online_meeting_provider : String | Nil = nil, online_meeting_url : String | Nil = nil, online_meeting_sip : String | Nil = nil, online_meeting_phones : Array(String) | Nil = nil, online_meeting_pin : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L207"},"def":{"name":"create_event","args":[{"name":"title","external_name":"title","restriction":"String"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"},{"name":"attendees","default_value":"[] of PlaceCalendar::Event::Attendee","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee)"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"calendar_id","default_value":"nil","external_name":"calendar_id","restriction":"String | ::Nil"},{"name":"online_meeting_id","default_value":"nil","external_name":"online_meeting_id","restriction":"String | ::Nil"},{"name":"online_meeting_provider","default_value":"nil","external_name":"online_meeting_provider","restriction":"String | ::Nil"},{"name":"online_meeting_url","default_value":"nil","external_name":"online_meeting_url","restriction":"String | ::Nil"},{"name":"online_meeting_sip","default_value":"nil","external_name":"online_meeting_sip","restriction":"String | ::Nil"},{"name":"online_meeting_phones","default_value":"nil","external_name":"online_meeting_phones","restriction":"Array(String) | ::Nil"},{"name":"online_meeting_pin","default_value":"nil","external_name":"online_meeting_pin","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar_id = calendar_id || user_id\nlogger.debug do\n \"creating event on #{calendar_id}\"\nend\nevent = PlaceCalendar::Event.new(host: calendar_id, title: title, body: description, location: location, timezone: timezone, attendees: attendees, online_meeting_id: online_meeting_id, online_meeting_url: online_meeting_url, online_meeting_sip: online_meeting_sip, online_meeting_pin: online_meeting_pin, online_meeting_phones: online_meeting_phones, online_meeting_provider: online_meeting_provider)\nif timezone\n tz = Time::Location.load(timezone)\nend\nevent.event_start = timezone ? (Time.unix(event_start)).in(tz.not_nil!) : Time.unix(event_start)\nif event_end\n event.event_end = timezone ? (Time.unix(event_end)).in(tz.not_nil!) : Time.unix(event_end)\nend\nif event_end\nelse\n event.all_day = true\nend\nprocess((client(act_as_user)).post(\"/api/staff/v1/events\", body: event.to_json, headers: act_as(act_as_user)))\n"}},{"html_id":"delete_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L174"},"def":{"name":"delete_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting event #{event_id} on #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nif notify\n begin\n process((client(act_as_user)).post(\"/api/staff/v1/events/#{event_id}/decline\", params: params, headers: act_as(act_as_user)))\n rescue\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\n end\nelse\n params[\"notify\"] = \"false\"\n process((client(act_as_user)).delete(\"/api/staff/v1/events/#{event_id}\", params: params, headers: act_as(act_as_user)))\nend\n"}},{"html_id":"get_group(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_group","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L125"},"def":{"name":"get_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group #{group_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_groups(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_groups","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L78"},"def":{"name":"get_groups","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting group membership for user: #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/groups\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_members(group_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_members","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(group_id : String, act_as_user : String | Nil = nil)","args_html":"(group_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L84"},"def":{"name":"get_members","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing members of group: #{group_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups/#{group_id}/members\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L97"},"def":{"name":"get_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting user details for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}\", headers: act_as(act_as_user)))\n"}},{"html_id":"get_user_manager(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"get_user_manager","doc":"NOTE:: GraphAPI Only!","summary":"

NOTE : GraphAPI Only!

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L110"},"def":{"name":"get_user_manager","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting manager details for #{user_id}, note: graphAPI only\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/manager\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_calendars(user_id:String,act_as_user:String|Nil=nil)-instance-method","name":"list_calendars","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(user_id : String, act_as_user : String | Nil = nil)","args_html":"(user_id : String, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L103"},"def":{"name":"list_calendars","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing calendars for #{user_id}\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/people/#{user_id}/calendars\", headers: act_as(act_as_user)))\n"}},{"html_id":"list_events(calendar_id:String,period_start:Int64,period_end:Int64,time_zone:String|Nil=nil,user_id:String|Nil=nil,include_cancelled:Bool=false,act_as_user:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","args_html":"(calendar_id : String, period_start : Int64, period_end : Int64, time_zone : String | Nil = nil, user_id : String | Nil = nil, include_cancelled : Bool = false, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L145"},"def":{"name":"list_events","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"include_cancelled","default_value":"false","external_name":"include_cancelled","restriction":"Bool"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing events for #{calendar_id}\"\nend\nif system_id = check_if_resource(calendar_id)\n params = {\"system_ids\" => system_id}\nelse\n params = {\"calendars\" => calendar_id}\nend\nparams[\"period_start\"] = period_start.to_s\nparams[\"period_end\"] = period_end.to_s\nif include_cancelled\n params[\"include_cancelled\"] = \"true\"\nend\nprocess((client(act_as_user)).get(\"/api/staff/v1/events\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_groups(query:String|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_groups","doc":"NOTE:: GraphAPI Only! - here for use with configuration","summary":"

NOTE : GraphAPI Only! - here for use with configuration

","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L117"},"def":{"name":"list_groups","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing groups, filtering by #{query}, note: graphAPI only\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/groups\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"list_users(query:String|Nil=nil,limit:Int32|Nil=nil,act_as_user:String|Nil=nil)-instance-method","name":"list_users","abstract":false,"args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"args_string":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","args_html":"(query : String | Nil = nil, limit : Int32 | Nil = nil, act_as_user : String | Nil = nil)","location":{"filename":"src/place/calendar_delegated.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L90"},"def":{"name":"list_users","args":[{"name":"query","default_value":"nil","external_name":"query","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"act_as_user","default_value":"nil","external_name":"act_as_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing user details, query #{query}\"\nend\nparams = query ? {\"q\" => query} : {} of String => String | ::Nil\nprocess((client(act_as_user)).get(\"/api/staff/v1/people\", params: params, headers: act_as(act_as_user)))\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L53"},"def":{"name":"on_update","visibility":"Public","body":"rate_limit = (setting?(Float64, :rate_limit)) || 3.0\n@limiter = RateLimiter.new(rate: rate_limit, max_burst: rate_limit.to_i)\n@api_key = api_key = setting(String, :api_key)\ntransport.before_request do |request|\n if request.headers[\"Authorization\"]?\n else\n request.headers[\"X-API-Key\"] = api_key\n end\nend\n@host = (URI.parse(config.uri.not_nil!)).host.not_nil!\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@jwt_private_key = (setting?(String, :jwt_private_key)) || \"\"\n"}}],"types":[{"html_id":"drivers/Place/CalendarDelegated/User","path":"Place/CalendarDelegated/User.html","kind":"struct","full_name":"Place::CalendarDelegated::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/calendar_delegated.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L251"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/CalendarDelegated","kind":"class","full_name":"Place::CalendarDelegated","name":"CalendarDelegated"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/calendar_delegated.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L252"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L255"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L256"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/calendar_delegated.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/calendar_delegated.cr#L254"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Chat","path":"Place/Chat.html","kind":"module","full_name":"Place::Chat","name":"Chat","abstract":false,"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L4"},{"filename":"src/place/chat/health_rooms_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Chat/ConferenceDetails","path":"Place/Chat/ConferenceDetails.html","kind":"struct","full_name":"Place::Chat::ConferenceDetails","name":"ConferenceDetails","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(place_id:String,space_id:String,host_pin:String,guest_pin:String)-class-method","name":"new","abstract":false,"args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"args_string":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","args_html":"(place_id : String, space_id : String, host_pin : String, guest_pin : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L16"},"def":{"name":"new","args":[{"name":"place_id","external_name":"place_id","restriction":"::String"},{"name":"space_id","external_name":"space_id","restriction":"::String"},{"name":"host_pin","external_name":"host_pin","restriction":"::String"},{"name":"guest_pin","external_name":"guest_pin","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(place_id, space_id, host_pin, guest_pin)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L14"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"guest_pin:String-instance-method","name":"guest_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L11"},"def":{"name":"guest_pin","return_type":"String","visibility":"Public","body":"@guest_pin"}},{"html_id":"host_pin:String-instance-method","name":"host_pin","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L10"},"def":{"name":"host_pin","return_type":"String","visibility":"Public","body":"@host_pin"}},{"html_id":"place_id:String-instance-method","name":"place_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L8"},"def":{"name":"place_id","return_type":"String","visibility":"Public","body":"@place_id"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L9"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}}]},{"html_id":"drivers/Place/Chat/HealthRooms","path":"Place/Chat/HealthRooms.html","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EXAMPLE_SMS_TEMPLATE","name":"EXAMPLE_SMS_TEMPLATE","value":"\"patient %{patient_name} is waiting in %{room_name} for an appointment at %{appointment_time}\""}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"guest_mark_as_contacted(rtc_user_id:String,session_id:String,contacted:Bool=true):Bool-instance-method","name":"guest_mark_as_contacted","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"args_string":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","args_html":"(rtc_user_id : String, session_id : String, contacted : Bool = true) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L808"},"def":{"name":"guest_mark_as_contacted","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"contacted","default_value":"true","external_name":"contacted","restriction":"Bool"}],"return_type":"Bool","visibility":"Public","body":"found = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n if participant = meeting.participants[rtc_user_id]?\n found = true\n participant.contacted = contacted\n end\n end\nend\nlogger.debug do\n \"[meet] marking guest #{rtc_user_id} as contacted: #{contacted} in session #{session_id}\"\nend\nif found\n update_meeting_state(session_id)\nend\nfound\n"}},{"html_id":"guest_move_session(rtc_user_id:String,session_id:String,new_session_id:String):Bool-instance-method","name":"guest_move_session","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","args_html":"(rtc_user_id : String, session_id : String, new_session_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":823,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L823"},"def":{"name":"guest_move_session","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"new_session_id","external_name":"new_session_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"system_id = nil\nnew_meeting = nil\nif @recent_lock.synchronize do\n @recently_disconnected[rtc_user_id]?\nend\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as disconnected\"\n end\n raise(\"can't move disconnected users, please wait for reconnection or kick\")\nend\n@meeting_mutex.synchronize do\n if (meeting = @meetings[session_id]?) && (new_meeting = @meetings[new_session_id]?)\n if participant = meeting.remove(rtc_user_id)\n system_id = meeting.system_id\n new_meeting.add(participant)\n if meeting.empty?\n @meetings.delete(session_id)\n @room_mutex.synchronize do\n @rooms[system_id].try(&.delete(session_id))\n end\n end\n end\n end\nend\nif system_id && new_meeting\n logger.debug do\n \"[meet] moving user #{rtc_user_id} into #{new_session_id} from #{session_id}\"\n end\n update_meeting_state(session_id, system_id)\n update_meeting_state(new_session_id)\n conference = new_meeting.conference\n staff_api.transfer_user(rtc_user_id, new_session_id, {space_id: conference.space_id, guest_pin: conference.guest_pin})\nelse\n logger.warn do\n \"[meet] failed to move guest #{rtc_user_id} as could not find session\"\n end\nend\n!!system_id\n"}},{"html_id":"meeting_end(session_id:String)-instance-method","name":"meeting_end","doc":"removes the meeting from the list and kicks anyone left in the meeting","summary":"

removes the meeting from the list and kicks anyone left in the meeting

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":778,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L778"},"def":{"name":"meeting_end","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nsystem_id = nil\nmeeting = nil\nlogger.debug do\n \"[meet] ending meeting #{session_id} ended by #{placeos_user_id}\"\nend\n@meeting_mutex.synchronize do\n meeting = @meetings.delete(session_id)\n if meeting\n else\n raise(\"meeting not found\")\n end\n system_id = meeting.system_id\n @room_mutex.synchronize do\n if sessions = @rooms[system_id]?\n sessions.delete(session_id)\n if sessions.empty?\n @rooms.delete(system_id)\n end\n end\n end\nend\nmeeting.not_nil!.participants.keys.each do |rtc_user_id|\n staff_api.kick_user(rtc_user_id, session_id, \"meeting ended\")\nend\nupdate_meeting_state(session_id, system_id.as(String))\n"}},{"html_id":"meeting_join(rtc_user_id:String,session_id:String,type:String|Nil=nil,system_id:String|Nil=nil,text_chat_only:Bool|Nil=nil):ConferenceDetails-instance-method","name":"meeting_join","doc":"this is how staff members create a meeting room\nor join an existing meeting","summary":"

this is how staff members create a meeting room or join an existing meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","args_html":"(rtc_user_id : String, session_id : String, type : String | Nil = nil, system_id : String | Nil = nil, text_chat_only : Bool | Nil = nil) : ConferenceDetails","location":{"filename":"src/place/chat/health_rooms.cr","line_number":653,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L653"},"def":{"name":"meeting_join","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"return_type":"ConferenceDetails","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nuser_details = (staff_api.user(placeos_user_id)).get\nuser_name = user_details[\"name\"].as_s\nparticipant = Participant.new(user_id: rtc_user_id, name: user_name, email: user_details[\"email\"].as_s, type: type, staff_user_id: placeos_user_id, text_chat_only: text_chat_only)\n@recent_lock.synchronize do\n @recently_disconnected.delete(rtc_user_id)\nend\nmeeting = nil\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n system_id = meeting.system_id\n end\nend\nif system_id\nelse\n raise(\"must provide a system id if there is not an existing session\")\nend\nsystem_id = system_id.as(String)\ntimezone = meeting.try(&.timezone) || (timezone_system(system_id))\nlogger.debug do\n if meeting\n \"[meet] joining existing meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n else\n \"[meet] creating new meeting: staff #{placeos_user_id}, session: #{session_id} in #{system_id}\"\n end\nend\nif meeting\nelse\n conference = pool_checkout_conference\nend\n@meeting_mutex.synchronize do\n meeting = if meet = @meetings[session_id]?\n system_id = meet.system_id\n meet.add(participant)\n meet\n else\n conference = conference || pool_checkout_conference\n meet = Meeting.new(system_id.as(String), session_id, conference, participant)\n meet.timezone = timezone\n meet\n end\n @meetings[session_id] = meeting\n conference = meeting.conference\n @room_mutex.synchronize do\n sessions = @rooms[system_id]? || ([] of SessionId)\n if sessions.includes?(session_id)\n else\n sessions << session_id\n end\n @rooms[system_id] = sessions\n end\nend\nupdate_meeting_state(session_id, system_id.as(String))\nconference.as(ConferenceDetails)\n"}},{"html_id":"meeting_kick(rtc_user_id:String,session_id:String)-instance-method","name":"meeting_kick","doc":"kicks an individual from a meeting","summary":"

kicks an individual from a meeting

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String)","args_html":"(rtc_user_id : String, session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":766,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L766"},"def":{"name":"meeting_kick","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.warn do\n \"[meet] kicking user #{rtc_user_id} from session #{session_id}, kicked by: #{placeos_user_id}\"\nend\nstaff_api.kick_user(rtc_user_id, session_id, \"kicked by host\")\nuser_exited(rtc_user_id)\n"}},{"html_id":"meeting_leave(rtc_user_id:String,session_id:String):Nil-instance-method","name":"meeting_leave","doc":"the user is planning of leaving the meeting or has left","summary":"

the user is planning of leaving the meeting or has left

","abstract":false,"args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(rtc_user_id : String, session_id : String) : Nil","args_html":"(rtc_user_id : String, session_id : String) : Nil","location":{"filename":"src/place/chat/health_rooms.cr","line_number":758,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L758"},"def":{"name":"meeting_leave","args":[{"name":"rtc_user_id","external_name":"rtc_user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"placeos_user_id = invoked_by_user_id\nlogger.debug do\n \"[meet] user leaving #{rtc_user_id} (#{placeos_user_id}) session #{session_id}\"\nend\nmeeting_remove_user(rtc_user_id, session_id, placeos_user_id)\n"}},{"html_id":"meeting_move_room(session_id:String,system_id:String):Bool-instance-method","name":"meeting_move_room","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(session_id : String, system_id : String) : Bool","args_html":"(session_id : String, system_id : String) : Bool","location":{"filename":"src/place/chat/health_rooms.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L615"},"def":{"name":"meeting_move_room","args":[{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"system_id","external_name":"system_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"old_system_id = nil\nmoved = false\n@meeting_mutex.synchronize do\n if meeting = @meetings[session_id]?\n old_system_id = meeting.system_id\n meeting.system_id = system_id\n moved = true\n @room_mutex.synchronize do\n if room_sessions = @rooms[old_system_id]?\n room_sessions.delete(session_id)\n if room_sessions.empty?\n @rooms.delete(old_system_id)\n self[old_system_id] = nil\n end\n sessions = @rooms[system_id]? || ([] of SessionId)\n sessions << session_id\n @rooms[system_id] = sessions\n end\n end\n end\nend\nlogger.debug do\n \"[meet] moving session: #{session_id} to system #{system_id} from #{old_system_id}\"\nend\nif moved\n update_meeting_state(session_id, system_id, old_system_id)\nend\nmoved\n"}},{"html_id":"meeting_state_request_save-instance-method","name":"meeting_state_request_save","doc":"use this to trigger a save","summary":"

use this to trigger a save

","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L88"},"def":{"name":"meeting_state_request_save","visibility":"Public","body":"@save_requested.send(nil)"}},{"html_id":"notify_config(system_id:String,timezone:String)-instance-method","name":"notify_config","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(system_id : String, timezone : String)","args_html":"(system_id : String, timezone : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":491,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L491"},"def":{"name":"notify_config","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"timezone = Time::Location.load(timezone)\nraw_settings = (staff_api.metadata(system_id, \"settings\")).get[\"settings\"]?.try(&.to_json)\nsettings = raw_settings ? RoomSettings.from_json(raw_settings, root: \"details\") : RoomSettings.new\ndefault_notifications = settings.notifications\nroom_users = settings.members.compact_map do |member|\n if member.available?\n else\n next\n end\n begin\n user_data = (staff_api.user(member.id)).get.as_h\n member.name = (user_data[\"nickname\"]? || user_data[\"name\"]).as_s\n member.email = user_data[\"email\"].as_s\n member.phone = user_data[\"phone\"]?.try(&.as_s)\n notify_settings = if user_settings = (staff_api.metadata(member.id, \"settings\")).get[\"settings\"]?.try(&.[]?(\"details\")).try(&.to_json)\n begin\n NotificationSettings.from_json(user_settings, root: \"notifications\")\n rescue parse_error\n logger.warn(exception: parse_error) do\n \"failed to parse user #{member.id} notification settings\"\n end\n default_notifications\n end\n else\n default_notifications\n end\n if notify_settings.enabled?\n else\n next\n end\n member.notifications = notify_settings\n member\n rescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain user #{member.id} metadata\"\n end\n nil\n end\nend\nsettings.members = room_users\nsettings.timezone = timezone\nsettings\n"}},{"html_id":"notify_inspect_meeting(session_id:String)-instance-method","name":"notify_inspect_meeting","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String)","args_html":"(session_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L481"},"def":{"name":"notify_inspect_meeting","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"visibility":"Public","body":"meeting = @meeting_mutex.synchronize do\n @meetings[session_id]?.try(&.dup)\nend\nif meeting\nelse\n raise(\"meeting #{session_id} not found\")\nend\nsystem_info, room_settings = notify_load_notifications(meeting)\nmembers = room_settings.try do |__arg8|\n __arg8.members.map do |member|\n {member: member, notifications: member.notifications}\n end\nend\n{settings: room_settings, members: members}\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L25"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n meeting_state_perform_save\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@update_mutex.synchronize do\n if @update_expected > 0\n @update_expected = @update_expected - 1\n logger.debug do\n \"[admin] updating settings...\"\n end\n return\n end\nend\nlogger.debug do\n \"[admin] updating settings...\"\nend\nis_spec = (setting?(Bool, :is_spec)) || false\ndomain = setting(String, :domain_id)\n@sms_source = setting?(String, :sms_source)\n@sms_template = (setting?(String, :sms_template)) || EXAMPLE_SMS_TEMPLATE\n@notify_no_time = (setting?(String, :notify_no_time)) || \"no time specified\"\n@pool_target_size = (setting?(Int32, :pool_size)) || 10\nsystem_id = config.control_system.not_nil!.id\n@disconnect_timeout = ((setting?(Int32, :disconnect_timeout)) || 3).minutes\n@timezone_default = nil\nschedule.clear\nschedule.every(@disconnect_timeout / 3) do\n cleanup_disconnected\nend\nschedule.every(5.minutes) do\n pool_cleanup\nend\nif is_spec\nelse\n schedule.in(1.second) do\n pool_cleanup\n end\nend\nmonitoring = \"#{domain}/chat/#{system_id}/guest/entry\"\nself[:monitoring] = monitoring\nsubscriptions.clear\nmeeting_state_restore\nmonitor(monitoring) do |_subscription, payload|\n new_guest(payload)\nend\nmonitor(\"#{domain}/chat/user/joined\") do |_subscription, payload|\n user_joined(payload)\nend\nmonitor(\"#{domain}/chat/user/exited\") do |_subscription, payload|\n logger.debug do\n \"[signal] user exited: #{payload}\"\n end\n user_id = (NamedTuple(user_id: String).from_json(payload))[:user_id]\n user_exited(user_id)\nend\nmonitor(\"#{domain}/chat/user/left\") do |_subscription, payload|\n user_left(payload)\nend\nlogger.debug do\n \"[admin] settings update success!\"\nend\n"}},{"html_id":"pool_checkout_conference:ConferenceDetails-instance-method","name":"pool_checkout_conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":939,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L939"},"def":{"name":"pool_checkout_conference","return_type":"ConferenceDetails","visibility":"Public","body":"meeting = @pool_lock.synchronize do\n if @pool_meet.size > 0\n @pool_size = @pool_size - 1\n @pool_meet.shift\n end\nend\nlogger.debug do\n \"[pool] Checking out meeting, available in pool? #{!meeting.nil?}\"\nend\nspawn do\n pool_ensure_size\nend\nmeeting || new_conference\n"}},{"html_id":"pool_clear_conferences:Nil-instance-method","name":"pool_clear_conferences","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":953,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L953"},"def":{"name":"pool_clear_conferences","return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"[pool] Clearing #{@pool_size} meetings from pool\"\nend\n@pool_lock.synchronize do\n @pool_size = 0\n @pool_meet = [] of ConferenceDetails\nend\npool_ensure_size\n"}},{"html_id":"pool_ensure_size:Nil-instance-method","name":"pool_ensure_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":909,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L909"},"def":{"name":"pool_ensure_size","return_type":"Nil","visibility":"Public","body":"required = 0\n@pool_lock.synchronize do\n required = @pool_target_size - @pool_size\n @pool_size = @pool_target_size\nend\nlogger.debug do\n \"[pool] Maintaining meeting pool size, #{required} new meetings required\"\nend\nif required <= 0\n return\nend\ncreated = 0\nbegin\n required.times do\n meeting = new_conference\n @pool_lock.synchronize do\n @pool_meet << meeting\n end\n created = created + 1\n end\nrescue error\n logger.error(exception: error) do\n \"[pool] error creating pool meetings\"\n end\n if created != required\n diff = required - created\n @pool_lock.synchronize do\n @pool_size = @pool_size - diff\n end\n end\nend\n"}},{"html_id":"pool_size:Int32-instance-method","name":"pool_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":872,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L872"},"def":{"name":"pool_size","return_type":"Int32","visibility":"Public","body":"@pool_size"}},{"html_id":"pool_target_size:Int32-instance-method","name":"pool_target_size","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":873,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L873"},"def":{"name":"pool_target_size","return_type":"Int32","visibility":"Public","body":"@pool_target_size"}},{"html_id":"sessions_with_user(user_id:String):Array(String)-instance-method","name":"sessions_with_user","doc":"finds all the session_ids that includes the specified user_id","summary":"

finds all the session_ids that includes the specified user_id

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(String)","args_html":"(user_id : String) : Array(String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":399,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L399"},"def":{"name":"sessions_with_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"sessions = [] of String\n@meeting_mutex.synchronize do\n @meetings.each do |session_id, meeting|\n if meeting.participants.has_key?(user_id)\n sessions << session_id\n end\n end\nend\nsessions\n"}},{"html_id":"timezone_default:String-instance-method","name":"timezone_default","abstract":false,"location":{"filename":"src/place/chat/health_rooms.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L471"},"def":{"name":"timezone_default","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone_default).nil?\n @timezone_default = (system.timezone.presence || \"UTC\")\nelse\n __temp_1\nend"}},{"html_id":"timezone_system(system_id:String)-instance-method","name":"timezone_system","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms.cr","line_number":473,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L473"},"def":{"name":"timezone_system","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"begin\n (staff_api.get_system(system_id)).get[\"timezone\"]?.try() do |__arg6|\n __arg6.as_s.presence\n end || timezone_default\nrescue error\n logger.error(exception: error) do\n \"[notify] failed to obtain timezone information for #{system_id}\"\n end\n timezone_default\nend"}}],"types":[{"html_id":"drivers/Place/Chat/HealthRooms/SessionId","path":"Place/Chat/HealthRooms/SessionId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SessionId","name":"SessionId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":602,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L602"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"session id == the webrtc session id","summary":"

session id == the webrtc session id

"},{"html_id":"drivers/Place/Chat/HealthRooms/SystemId","path":"Place/Chat/HealthRooms/SystemId.html","kind":"alias","full_name":"Place::Chat::HealthRooms::SystemId","name":"SystemId","abstract":false,"locations":[{"filename":"src/place/chat/health_rooms.cr","line_number":605,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms.cr#L605"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Chat/HealthRooms","kind":"class","full_name":"Place::Chat::HealthRooms","name":"HealthRooms"},"doc":"system id == room","summary":"

system id == room

"}]},{"html_id":"drivers/Place/Chat/Meeting","path":"Place/Chat/Meeting.html","kind":"class","full_name":"Place::Chat::Meeting","name":"Meeting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(system_id:String,session_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, session_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L139"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"session_id","external_name":"session_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, session_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(system_id:String,conference:Place::Chat::ConferenceDetails,participant:Participant)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","args_html":"(system_id : String, conference : Place::Chat::ConferenceDetails, participant : Participant)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L128"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"::String"},{"name":"conference","external_name":"conference","restriction":"::Place::Chat::ConferenceDetails"},{"name":"participant","external_name":"participant","restriction":"Participant"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, conference, participant)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"add(participant:Participant):Participant-instance-method","name":"add","abstract":false,"args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"args_string":"(participant : Participant) : Participant","args_html":"(participant : Participant) : Participant","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L147"},"def":{"name":"add","args":[{"name":"participant","external_name":"participant","restriction":"Participant"}],"return_type":"Participant","visibility":"Public","body":"@participants[participant.user_id] = participant\n@participants[@created_by_user_id]?.try(&.contacted = true)\n@updated_at = Time.utc\nparticipant\n"}},{"html_id":"conference:ConferenceDetails-instance-method","name":"conference","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference","return_type":"ConferenceDetails","visibility":"Public","body":"@conference"}},{"html_id":"conference=(conference:ConferenceDetails)-instance-method","name":"conference=","abstract":false,"args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"args_string":"(conference : ConferenceDetails)","args_html":"(conference : ConferenceDetails)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L89"},"def":{"name":"conference=","args":[{"name":"conference","external_name":"conference","restriction":"ConferenceDetails"}],"visibility":"Public","body":"@conference = conference"}},{"html_id":"created_at:Time-instance-method","name":"created_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L84"},"def":{"name":"created_at","return_type":"Time","visibility":"Public","body":"@created_at"}},{"html_id":"created_by_participant-instance-method","name":"created_by_participant","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L161"},"def":{"name":"created_by_participant","visibility":"Public","body":"@participants[created_by_user_id]"}},{"html_id":"created_by_user_id:String-instance-method","name":"created_by_user_id","doc":"webrtc_user_id that created the meeting","summary":"

webrtc_user_id that created the meeting

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L81"},"def":{"name":"created_by_user_id","return_type":"String","visibility":"Public","body":"@created_by_user_id"}},{"html_id":"creator_contacted?-instance-method","name":"creator_contacted?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L165"},"def":{"name":"creator_contacted?","visibility":"Public","body":"@participants[created_by_user_id]?.try(&.contacted)"}},{"html_id":"empty?:Bool-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L181"},"def":{"name":"empty?","return_type":"Bool","visibility":"Public","body":"@participants.empty?"}},{"html_id":"has_participant?(webrtc_user_id:String):Participant|Nil-instance-method","name":"has_participant?","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L169"},"def":{"name":"has_participant?","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"@participants[webrtc_user_id]?"}},{"html_id":"mark_participant_connected(webrtc_user_id:String,state:Bool):String|Nil-instance-method","name":"mark_participant_connected","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(webrtc_user_id : String, state : Bool) : String | Nil","args_html":"(webrtc_user_id : String, state : Bool) : String | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L173"},"def":{"name":"mark_participant_connected","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"},{"name":"state","external_name":"state","restriction":"Bool"}],"return_type":"String | ::Nil","visibility":"Public","body":"if participant = has_participant?(webrtc_user_id)\n old_state = participant.connected\n participant.connected = state\n if old_state == state\n else\n return system_id\n end\nend"}},{"html_id":"notify_members_on_entry:Array(RoomMember)-instance-method","name":"notify_members_on_entry","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L110"},"def":{"name":"notify_members_on_entry","return_type":"Array(RoomMember)","visibility":"Public","body":"settings = room_settings\nif settings\nelse\n return [] of RoomMember\nend\npatient = participants[created_by_user_id]\nclinician_selected = patient.chat_to_user_id.presence\ncontact = filter_members(clinician_selected)\nif contact.empty? && clinician_selected\n contact = filter_members(nil)\nend\nif contact.empty?\n contact = settings.members\nend\ncontact\n"}},{"html_id":"participants:Hash(String,Participant)-instance-method","name":"participants","doc":"webrtc_user_id => participant","summary":"

webrtc_user_id => participant

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L75"},"def":{"name":"participants","return_type":"Hash(String, Participant)","visibility":"Public","body":"@participants"}},{"html_id":"remove(webrtc_user_id:String):Participant|Nil-instance-method","name":"remove","abstract":false,"args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"args_string":"(webrtc_user_id : String) : Participant | Nil","args_html":"(webrtc_user_id : String) : Participant | Nil","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L154"},"def":{"name":"remove","args":[{"name":"webrtc_user_id","external_name":"webrtc_user_id","restriction":"String"}],"return_type":"Participant | ::Nil","visibility":"Public","body":"if participant = @participants.delete(webrtc_user_id)\n @updated_at = Time.utc\n participant\nend"}},{"html_id":"room_settings:RoomSettings|Nil-instance-method","name":"room_settings","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings","return_type":"RoomSettings | ::Nil","visibility":"Public","body":"@room_settings"}},{"html_id":"room_settings=(room_settings:RoomSettings|Nil)-instance-method","name":"room_settings=","abstract":false,"args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"args_string":"(room_settings : RoomSettings | Nil)","args_html":"(room_settings : RoomSettings | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L92"},"def":{"name":"room_settings=","args":[{"name":"room_settings","external_name":"room_settings","restriction":"RoomSettings | ::Nil"}],"visibility":"Public","body":"@room_settings = room_settings"}},{"html_id":"session_id:String-instance-method","name":"session_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L76"},"def":{"name":"session_id","return_type":"String","visibility":"Public","body":"@session_id"}},{"html_id":"system:PlaceOS::Driver::DriverModel::ControlSystem|Nil-instance-method","name":"system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system","return_type":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil","visibility":"Public","body":"@system"}},{"html_id":"system=(system:PlaceOS::Driver::DriverModel::ControlSystem|Nil)-instance-method","name":"system=","abstract":false,"args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"args_string":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","args_html":"(system : PlaceOS::Driver::DriverModel::ControlSystem | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L95"},"def":{"name":"system=","args":[{"name":"system","external_name":"system","restriction":"PlaceOS::Driver::DriverModel::ControlSystem | ::Nil"}],"visibility":"Public","body":"@system = system"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L77"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}},{"html_id":"timezone:String-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"String","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::Meeting#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:String)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"args_string":"(timezone : String)","args_html":"(timezone : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L78"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:String|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"updated_at:Time-instance-method","name":"updated_at","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L87"},"def":{"name":"updated_at","return_type":"Time","visibility":"Public","body":"@updated_at"}}]},{"html_id":"drivers/Place/Chat/MeetingSummary","path":"Place/Chat/MeetingSummary.html","kind":"struct","full_name":"Place::Chat::MeetingSummary","name":"MeetingSummary","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L58"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pos_system:String,call_count:Int32,participant_count:Int32,waiting_count:Int32,longest_wait_time:Int64)-class-method","name":"new","abstract":false,"args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"args_string":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","args_html":"(pos_system : String, call_count : Int32, participant_count : Int32, waiting_count : Int32, longest_wait_time : Int64)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L67"},"def":{"name":"new","args":[{"name":"pos_system","external_name":"pos_system","restriction":"::String"},{"name":"call_count","external_name":"call_count","restriction":"::Int32"},{"name":"participant_count","external_name":"participant_count","restriction":"::Int32"},{"name":"waiting_count","external_name":"waiting_count","restriction":"::Int32"},{"name":"longest_wait_time","external_name":"longest_wait_time","restriction":"::Int64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(pos_system, call_count, participant_count, waiting_count, longest_wait_time)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L59"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"call_count:Int32-instance-method","name":"call_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L62"},"def":{"name":"call_count","return_type":"Int32","visibility":"Public","body":"@call_count"}},{"html_id":"longest_wait_time:Int64-instance-method","name":"longest_wait_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L65"},"def":{"name":"longest_wait_time","return_type":"Int64","visibility":"Public","body":"@longest_wait_time"}},{"html_id":"participant_count:Int32-instance-method","name":"participant_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L64"},"def":{"name":"participant_count","return_type":"Int32","visibility":"Public","body":"@participant_count"}},{"html_id":"pos_system:String-instance-method","name":"pos_system","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L61"},"def":{"name":"pos_system","return_type":"String","visibility":"Public","body":"@pos_system"}},{"html_id":"waiting_count:Int32-instance-method","name":"waiting_count","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L63"},"def":{"name":"waiting_count","return_type":"Int32","visibility":"Public","body":"@waiting_count"}}]},{"html_id":"drivers/Place/Chat/NotificationSettings","path":"Place/Chat/NotificationSettings.html","kind":"struct","full_name":"Place::Chat::NotificationSettings","name":"NotificationSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L30"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"chosen_provider?:Bool-instance-method","name":"chosen_provider?","doc":"only alert if the user selected me","summary":"

only alert if the user selected me

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L34"},"def":{"name":"chosen_provider?","return_type":"Bool","visibility":"Public","body":"@chosen_provider"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L35"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"on_enter:NotifyEventSettings-instance-method","name":"on_enter","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L37"},"def":{"name":"on_enter","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_enter"}},{"html_id":"on_escalate:NotifyEventSettings-instance-method","name":"on_escalate","doc":"settings if the patient has been waiting for a long time","summary":"

settings if the patient has been waiting for a long time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L43"},"def":{"name":"on_escalate","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_escalate"}},{"html_id":"on_recurr:NotifyEventSettings-instance-method","name":"on_recurr","doc":"how often should it send notifications","summary":"

how often should it send notifications

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L39"},"def":{"name":"on_recurr","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_recurr"}},{"html_id":"on_waiting:NotifyEventSettings-instance-method","name":"on_waiting","doc":"do we only notify if the user has been waiting for a certain amount of time","summary":"

do we only notify if the user has been waiting for a certain amount of time

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L41"},"def":{"name":"on_waiting","return_type":"NotifyEventSettings","visibility":"Public","body":"@on_waiting"}}]},{"html_id":"drivers/Place/Chat/NotifyEventSettings","path":"Place/Chat/NotifyEventSettings.html","kind":"struct","full_name":"Place::Chat::NotifyEventSettings","name":"NotifyEventSettings","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L13"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L15"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"browser?:Bool-instance-method","name":"browser?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L19"},"def":{"name":"browser?","return_type":"Bool","visibility":"Public","body":"@browser"}},{"html_id":"delay:Int32-instance-method","name":"delay","doc":"minutes before notification","summary":"

minutes before notification

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L24"},"def":{"name":"delay","return_type":"Int32","visibility":"Public","body":"@delay"}},{"html_id":"email?:Bool-instance-method","name":"email?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L20"},"def":{"name":"email?","return_type":"Bool","visibility":"Public","body":"@email"}},{"html_id":"enabled?:Bool-instance-method","name":"enabled?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L18"},"def":{"name":"enabled?","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"sms?:Bool-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L21"},"def":{"name":"sms?","return_type":"Bool","visibility":"Public","body":"@sms"}}]},{"html_id":"drivers/Place/Chat/OpeningHours","path":"Place/Chat/OpeningHours.html","kind":"struct","full_name":"Place::Chat::OpeningHours","name":"OpeningHours","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(opening_times:Tuple(String,String,Bool))-class-method","name":"new","abstract":false,"args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"args_string":"(opening_times : Tuple(String, String, Bool))","args_html":"(opening_times : Tuple(String, String, Bool))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L73"},"def":{"name":"new","args":[{"name":"opening_times","external_name":"opening_times","restriction":"Tuple(String, String, Bool)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(opening_times)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"closes:Time::Span-instance-method","name":"closes","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L85"},"def":{"name":"closes","return_type":"Time::Span","visibility":"Public","body":"@closes"}},{"html_id":"enabled:Bool-instance-method","name":"enabled","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L86"},"def":{"name":"enabled","return_type":"Bool","visibility":"Public","body":"@enabled"}},{"html_id":"is_open?(now:Time)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"now","external_name":"now","restriction":"Time"}],"args_string":"(now : Time)","args_html":"(now : Time)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L88"},"def":{"name":"is_open?","args":[{"name":"now","external_name":"now","restriction":"Time"}],"visibility":"Public","body":"if enabled\nelse\n return false\nend\nstart_of_day = now.at_beginning_of_day\nopening = start_of_day + opens\nif now >= opening\nelse\n return false\nend\nclosing = start_of_day + closes\nnow < closing\n"}},{"html_id":"opens:Time::Span-instance-method","name":"opens","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L84"},"def":{"name":"opens","return_type":"Time::Span","visibility":"Public","body":"@opens"}}]},{"html_id":"drivers/Place/Chat/Participant","path":"Place/Chat/Participant.html","kind":"class","full_name":"Place::Chat::Participant","name":"Participant","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_rooms_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(user_id:String,name:String,email:Nil|String=nil,phone:Nil|String=nil,type:Nil|String=nil,staff_user_id:Nil|String=nil,text_chat_only:Bool|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"args_string":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","args_html":"(user_id : String, name : String, email : Nil | String = nil, phone : Nil | String = nil, type : Nil | String = nil, staff_user_id : Nil | String = nil, text_chat_only : Bool | Nil = nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L54"},"def":{"name":"new","args":[{"name":"user_id","external_name":"user_id","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"::Nil | ::String"},{"name":"phone","default_value":"nil","external_name":"phone","restriction":"::Nil | ::String"},{"name":"type","default_value":"nil","external_name":"type","restriction":"::Nil | ::String"},{"name":"staff_user_id","default_value":"nil","external_name":"staff_user_id","restriction":"::Nil | ::String"},{"name":"text_chat_only","default_value":"nil","external_name":"text_chat_only","restriction":"::Bool | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(user_id, name, email, phone, type, staff_user_id, text_chat_only)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"appointment_time:String|Nil-instance-method","name":"appointment_time","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L37"},"def":{"name":"appointment_time","return_type":"String | ::Nil","visibility":"Public","body":"@appointment_time"}},{"html_id":"captcha:String|Nil-instance-method","name":"captcha","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha","return_type":"String | ::Nil","visibility":"Public","body":"@captcha"}},{"html_id":"captcha=(captcha:String|Nil)-instance-method","name":"captcha=","doc":"as we don't care about this field anymore and don't want it saved in unmapped","summary":"

as we don't care about this field anymore and don't want it saved in unmapped

","abstract":false,"args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"args_string":"(captcha : String | Nil)","args_html":"(captcha : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L50"},"def":{"name":"captcha=","args":[{"name":"captcha","external_name":"captcha","restriction":"String | ::Nil"}],"visibility":"Public","body":"@captcha = captcha"}},{"html_id":"chat_to_user_id:String|Nil-instance-method","name":"chat_to_user_id","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@chat_to_user_id"}},{"html_id":"chat_to_user_id=(chat_to_user_id:String|Nil)-instance-method","name":"chat_to_user_id=","doc":"the placeos user id we would like to notify if we have the user details","summary":"

the placeos user id we would like to notify if we have the user details

","abstract":false,"args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"args_string":"(chat_to_user_id : String | Nil)","args_html":"(chat_to_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L36"},"def":{"name":"chat_to_user_id=","args":[{"name":"chat_to_user_id","external_name":"chat_to_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@chat_to_user_id = chat_to_user_id"}},{"html_id":"connected:Bool-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected","return_type":"Bool","visibility":"Public","body":"@connected"}},{"html_id":"connected=(connected:Bool)-instance-method","name":"connected=","abstract":false,"args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"args_string":"(connected : Bool)","args_html":"(connected : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L52"},"def":{"name":"connected=","args":[{"name":"connected","external_name":"connected","restriction":"Bool"}],"visibility":"Public","body":"@connected = connected"}},{"html_id":"contacted:Bool-instance-method","name":"contacted","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted","return_type":"Bool","visibility":"Public","body":"@contacted"}},{"html_id":"contacted=(contacted:Bool)-instance-method","name":"contacted=","abstract":false,"args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"args_string":"(contacted : Bool)","args_html":"(contacted : Bool)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L45"},"def":{"name":"contacted=","args":[{"name":"contacted","external_name":"contacted","restriction":"Bool"}],"visibility":"Public","body":"@contacted = contacted"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L26"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L25"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L27"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"session_id:String|Nil-instance-method","name":"session_id","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id","return_type":"String | ::Nil","visibility":"Public","body":"@session_id"}},{"html_id":"session_id=(session_id:String|Nil)-instance-method","name":"session_id=","doc":"the chat session id the user is planning to use, the initial chat room","summary":"

the chat session id the user is planning to use, the initial chat room

","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"args_string":"(session_id : String | Nil)","args_html":"(session_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L44"},"def":{"name":"session_id=","args":[{"name":"session_id","external_name":"session_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@session_id = session_id"}},{"html_id":"staff_user_id:String|Nil-instance-method","name":"staff_user_id","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id","return_type":"String | ::Nil","visibility":"Public","body":"@staff_user_id"}},{"html_id":"staff_user_id=(staff_user_id:String|Nil)-instance-method","name":"staff_user_id=","abstract":false,"args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"args_string":"(staff_user_id : String | Nil)","args_html":"(staff_user_id : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L46"},"def":{"name":"staff_user_id=","args":[{"name":"staff_user_id","external_name":"staff_user_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@staff_user_id = staff_user_id"}},{"html_id":"text_chat_only:Bool|Nil-instance-method","name":"text_chat_only","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only","return_type":"Bool | ::Nil","visibility":"Public","body":"@text_chat_only"}},{"html_id":"text_chat_only=(text_chat_only:Bool|Nil)-instance-method","name":"text_chat_only=","abstract":false,"args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"args_string":"(text_chat_only : Bool | Nil)","args_html":"(text_chat_only : Bool | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L32"},"def":{"name":"text_chat_only=","args":[{"name":"text_chat_only","external_name":"text_chat_only","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@text_chat_only = text_chat_only"}},{"html_id":"type:String|Nil-instance-method","name":"type","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type","return_type":"String | ::Nil","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String|Nil)-instance-method","name":"type=","doc":"the type of guest (additional information)","summary":"

the type of guest (additional information)

","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil)","args_html":"(type : String | Nil)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L31"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@type = type"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","doc":"the users chat id. This purely generated on the frontend\nnot a placeos user_id, we use it to track browser instances","summary":"

the users chat id.

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/chat/health_rooms_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_rooms_models.cr#L41"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]},{"html_id":"drivers/Place/Chat/RoomMember","path":"Place/Chat/RoomMember.html","kind":"class","full_name":"Place::Chat::RoomMember","name":"RoomMember","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"admin?-instance-method","name":"admin?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L67"},"def":{"name":"admin?","visibility":"Public","body":"roles.includes?(\"admin\")"}},{"html_id":"available?:Bool-instance-method","name":"available?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L49"},"def":{"name":"available?","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"clinician?-instance-method","name":"clinician?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L63"},"def":{"name":"clinician?","visibility":"Public","body":"roles.includes?(\"clinician\")"}},{"html_id":"coordinator?-instance-method","name":"coordinator?","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L59"},"def":{"name":"coordinator?","visibility":"Public","body":"roles.includes?(\"coordinator\")"}},{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L50"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L51"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L52"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomMember#notifications cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"notifications=(notifications:NotificationSettings)-instance-method","name":"notifications=","abstract":false,"args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"args_string":"(notifications : NotificationSettings)","args_html":"(notifications : NotificationSettings)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L57"},"def":{"name":"notifications=","args":[{"name":"notifications","external_name":"notifications","restriction":"NotificationSettings"}],"visibility":"Public","body":"@notifications = notifications"}},{"html_id":"notifications?:NotificationSettings|Nil-instance-method","name":"notifications?","abstract":false,"def":{"name":"notifications?","return_type":"NotificationSettings | ::Nil","visibility":"Public","body":"@notifications"}},{"html_id":"phone:String|Nil-instance-method","name":"phone","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone","return_type":"String | ::Nil","visibility":"Public","body":"@phone"}},{"html_id":"phone=(phone:String|Nil)-instance-method","name":"phone=","abstract":false,"args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"args_string":"(phone : String | Nil)","args_html":"(phone : String | Nil)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L53"},"def":{"name":"phone=","args":[{"name":"phone","external_name":"phone","restriction":"String | ::Nil"}],"visibility":"Public","body":"@phone = phone"}},{"html_id":"roles:Array(String)-instance-method","name":"roles","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L54"},"def":{"name":"roles","return_type":"Array(String)","visibility":"Public","body":"@roles"}}]},{"html_id":"drivers/Place/Chat/RoomSettings","path":"Place/Chat/RoomSettings.html","kind":"class","full_name":"Place::Chat::RoomSettings","name":"RoomSettings","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/chat/health_notification_models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L99"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Chat","kind":"module","full_name":"Place::Chat","name":"Chat"},"doc":"Room metadata => settings key","summary":"

Room metadata => settings key

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L100"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L102"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L105"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"is_open?(timezone:Time::Location)-instance-method","name":"is_open?","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L132"},"def":{"name":"is_open?","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"if available\nelse\n return false\nend\nif open_24_7\n return true\nend\nnow = Time.local(timezone)\nindex = now.day_of_week.to_i - 1\n(OpeningHours.new(opening_hours[index])).is_open?(now)\n"}},{"html_id":"members:Array(RoomMember)-instance-method","name":"members","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members","return_type":"Array(RoomMember)","visibility":"Public","body":"@members"}},{"html_id":"members=(members:Array(RoomMember))-instance-method","name":"members=","abstract":false,"args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"args_string":"(members : Array(RoomMember))","args_html":"(members : Array(RoomMember))","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L111"},"def":{"name":"members=","args":[{"name":"members","external_name":"members","restriction":"Array(RoomMember)"}],"visibility":"Public","body":"@members = members"}},{"html_id":"notifications:NotificationSettings-instance-method","name":"notifications","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L107"},"def":{"name":"notifications","return_type":"NotificationSettings","visibility":"Public","body":"if (__temp_1 = @notifications).nil?\n @notifications = (NotificationSettings.new)\nelse\n __temp_1\nend"}},{"html_id":"open_24_7:Bool-instance-method","name":"open_24_7","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L106"},"def":{"name":"open_24_7","return_type":"Bool","visibility":"Public","body":"@open_24_7"}},{"html_id":"opening:Hash(Time::DayOfWeek,OpeningHours)-instance-method","name":"opening","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L123"},"def":{"name":"opening","return_type":"Hash(Time::DayOfWeek, OpeningHours)","visibility":"Public","body":"if (__temp_1 = @opening).nil?\n @opening = (begin\n times = {} of Time::DayOfWeek => OpeningHours\n opening_hours.each_with_index do |times, index|\n index = index + 1\n times[Time::DayOfWeek.from_value(index)] = OpeningHours.new(times)\n end\n times\n end)\nelse\n __temp_1\nend"}},{"html_id":"opening_hours:Array(Tuple(String,String,Bool))-instance-method","name":"opening_hours","doc":"0 index == Monday\n open time, close time, enabled","summary":"

0 index == Monday open time, close time, enabled

","abstract":false,"location":{"filename":"src/place/chat/health_notification_models.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L118"},"def":{"name":"opening_hours","return_type":"Array(Tuple(String, String, Bool))","visibility":"Public","body":"if (__temp_1 = @opening_hours).nil?\n @opening_hours = ([] of Tuple(String, String, Bool))\nelse\n __temp_1\nend"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n ::raise(::NilAssertionError.new(\"Place::Chat::RoomSettings#timezone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"timezone=(timezone:Time::Location)-instance-method","name":"timezone=","abstract":false,"args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(timezone : Time::Location)","args_html":"(timezone : Time::Location)","location":{"filename":"src/place/chat/health_notification_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/chat/health_notification_models.cr#L114"},"def":{"name":"timezone=","args":[{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"@timezone = timezone"}},{"html_id":"timezone?:Time::Location|Nil-instance-method","name":"timezone?","abstract":false,"def":{"name":"timezone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@timezone"}}]}]},{"html_id":"drivers/Place/Demo","path":"Place/Demo.html","kind":"module","full_name":"Place::Demo","name":"Demo","abstract":false,"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Demo/Display","path":"Place/Demo/Display.html","kind":"class","full_name":"Place::Demo::Display","name":"Display","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/demo/display.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L52"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"self[:audio_mute] = state\nself[:volume] = state ? 0 : @volume\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/demo/display.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L28"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"self[:power] = state"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L32"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[:power].as_bool"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/place/demo/display.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L36"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"self[:input] = input"}},{"html_id":"test_setting(key:String,payload:JSON::Any)-instance-method","name":"test_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(key : String, payload : JSON::Any)","args_html":"(key : String, payload : JSON::Any)","location":{"filename":"src/place/demo/display.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L46"},"def":{"name":"test_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"define_setting(key, payload)\npayload\n"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/demo/display.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L42"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"self[:volume] = @volume = level.to_f64"}},{"html_id":"volume?:Float64-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L40"},"def":{"name":"volume?","return_type":"Float64","visibility":"Public","body":"@volume"}}],"types":[{"html_id":"drivers/Place/Demo/Display/Input","path":"Place/Demo/Display/Input.html","kind":"enum","full_name":"Place::Demo::Display::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/display.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Place/Demo/Display","kind":"class","full_name":"Place::Demo::Display","name":"Display"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L20"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L17"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L13"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L15"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L16"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L14"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L19"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/place/demo/display.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/display.cr#L18"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]},{"html_id":"drivers/Place/Demo/LocationServices","path":"Place/Demo/LocationServices.html","kind":"class","full_name":"Place::Demo::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/location_services.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/location_services.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L24"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"case rand(3)\nwhen 0\n [{location: \"wireless\", coordinates_from: \"bottom-left\", x: 27.113065326953013, y: 36.85052447328469, lon: 55.27498749637098, lat: 25.20090608906493, mac: \"66e0fd1279ce\", variance: 4.5194575835650745, last_seen: 1601555879, building: @building_zone, level: @level_zone, map_width: 1234.2, map_height: 123.8}]\nwhen 1\n [{location: \"meeting\", mac: \"meeting.room@resource.org.com\", event_id: \"meet-1234567\", map_id: \"map-1234\", sys_id: @system_id, ends_at: 1.hour.from_now, private: false, level: @level_zone, building: @building_zone}]\nelse\n [] of String\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/location_services.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/location_services.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@building_zone = setting(String, :building_zone)\n@level_zone = setting(String, :level_zone)\n@system_id = setting(String, :system_id)\n"}}]},{"html_id":"drivers/Place/Demo/Lockers","path":"Place/Demo/Lockers.html","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L15"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (locations.building_id.get.as_s)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L317"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"begin\n if mac_address.starts_with?(\"lb=\")\n else\n return nil\n end\n floor_mac = URI::Params.parse(mac_address)\n locker_bank = floor_mac[\"lb\"]\n locker_key = floor_mac[\"lk\"]\n locker = locker_banks[locker_bank].locker_hash[locker_key]\n has_reservation = false\n if user_id = locker.allocated_to\n if time = locker.allocated_until\n has_reservation = time > Time.utc\n else\n has_reservation = true\n end\n end\n if has_reservation\n {location: \"locker\", assigned_to: (staff_api.user(locker.allocated_to)).get[\"email\"].as_s, mac_address: mac_address}\n end\nrescue\n nil\nend"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L345"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching lockers in zone #{zone_id}\"\nend\nif location && (location != \"locker\")\n return [] of Nil\nend\nbuilding = building_id\nlevel_zone = zone_id == building ? nil : zone_id\nif level_zone && !(level_zone.in?(levels))\n return [] of Nil\nend\nnow = Time.utc\nlocker_banks.values.flat_map do |bank|\n if level_zone && (bank.level_id != level_zone)\n next [] of PlaceLocker\n end\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"levels:Array(String)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L19"},"def":{"name":"levels","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @levels).nil?\n @levels = ((staff_api.systems_in_building(building_id)).get.as_h.keys)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L305"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/place/demo/lockers.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L153"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"begin\n bank = locker_banks[bank_id.to_s]\n locker_id = locker_id ? locker_id : bank.locker_hash.values.select(&.not_allocated?).sample.id\n locker = bank.locker_hash[locker_id.to_s]\n locker.allocated_to = user_id\n if expires_at\n locker.allocated_until = Time.unix(expires_at)\n end\n PlaceLocker.new(bank_id, locker, building_id)\nrescue\n raise(\"no available lockers\")\nend"}},{"html_id":"locker_banks:Hash(String,LockerBank)-instance-method","name":"locker_banks","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L23"},"def":{"name":"locker_banks","return_type":"Hash(String, LockerBank)","visibility":"Public","body":"if (__temp_1 = @locker_banks).nil?\n @locker_banks = (begin\n banks = (staff_api.metadata(building_id, \"locker_banks\")).get.dig?(\"locker_banks\", \"details\")\n if banks\n else\n return Hash(String, LockerBank).new\n end\n banks = begin\n Array(LockerBank).from_json(banks.to_json)\n rescue error\n message = \"error parsing banks json on building #{building_id}:\\n#{banks.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lookup = {} of String => LockerBank\n banks.each do |bank|\n bank.level_id = (levels & bank.zones).first?\n lookup[bank.id] = bank\n end\n lockers = (staff_api.metadata(building_id, \"lockers\")).get.dig?(\"lockers\", \"details\")\n if lockers\n else\n return lookup\n end\n lockers = begin\n Array(Locker).from_json(lockers.to_json)\n rescue error\n message = \"error parsing locker json on building #{building_id}:\\n#{lockers.to_pretty_json}\"\n logger.warn(exception: error) do\n message\n end\n raise(message)\n end\n lockers.each do |locker|\n begin\n bank = lookup[locker.bank_id]\n locker.level_id = bank.level_id\n bank.lockers << locker\n rescue error\n logger.warn(exception: error) do\n \"config issue with locker #{locker.id} on bank #{locker.bank_id}\"\n end\n end\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L178"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nif locker.allocated_to == owner_id\n locker.release\nelse\n locker.shared_with.delete(owner_id)\nend\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L213"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with << share_with\n locker.shared_with.uniq!\nend\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L265"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n locker.shared_with\nelse\n [] of String\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L288"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/place/demo/lockers.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L236"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker = locker_banks[bank_id.to_s].locker_hash[locker_id.to_s]\nperform_share = false\nif locker.allocated_to == owner_id\n if time = locker.allocated_until\n perform_share = time > Time.utc\n else\n perform_share = true\n end\nend\nif perform_share\n if shared_with_id\n locker.shared_with.delete(shared_with_id)\n else\n locker.shared_with = [] of String\n end\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/place/demo/lockers.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L195"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"now = Time.utc\nbuilding = building_id\nlocker_banks.values.flat_map do |bank|\n bank.locker_hash.values.compact_map do |locker|\n if locker.allocated_to == user_id\n if time = locker.allocated_until\n if time > now\n PlaceLocker.new(bank.id, locker, building)\n end\n else\n PlaceLocker.new(bank.id, locker, building)\n end\n end\n end\nend\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/lockers.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L310"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}}],"types":[{"html_id":"drivers/Place/Demo/Lockers/Locker","path":"Place/Demo/Lockers/Locker.html","kind":"class","full_name":"Place::Demo::Lockers::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L68"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated?:Bool-instance-method","name":"allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L87"},"def":{"name":"allocated?","return_type":"Bool","visibility":"Public","body":"if time = self.allocated_until\n if time > Time.utc\n true\n else\n false\n end\nelse\n if allocated_to = self.allocated_to\n true\n else\n false\n end\nend"}},{"html_id":"allocated_to:String|Nil-instance-method","name":"allocated_to","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to","return_type":"String | ::Nil","visibility":"Public","body":"@allocated_to"}},{"html_id":"allocated_to=(allocated_to:String|Nil)-instance-method","name":"allocated_to=","doc":"for tracking, not part of metadata","summary":"

for tracking, not part of metadata

","abstract":false,"args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"args_string":"(allocated_to : String | Nil)","args_html":"(allocated_to : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L76"},"def":{"name":"allocated_to=","args":[{"name":"allocated_to","external_name":"allocated_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@allocated_to = allocated_to"}},{"html_id":"allocated_until:Time|Nil-instance-method","name":"allocated_until","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until","return_type":"Time | ::Nil","visibility":"Public","body":"@allocated_until"}},{"html_id":"allocated_until=(allocated_until:Time|Nil)-instance-method","name":"allocated_until=","abstract":false,"args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"args_string":"(allocated_until : Time | Nil)","args_html":"(allocated_until : Time | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L77"},"def":{"name":"allocated_until=","args":[{"name":"allocated_until","external_name":"allocated_until","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@allocated_until = allocated_until"}},{"html_id":"bank_id:String-instance-method","name":"bank_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L72"},"def":{"name":"bank_id","return_type":"String","visibility":"Public","body":"@bank_id"}},{"html_id":"bookable:Bool-instance-method","name":"bookable","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L73"},"def":{"name":"bookable","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @bookable).nil?\n @bookable = (false)\nelse\n __temp_1\nend"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L70"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L78"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L71"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"not_allocated?:Bool-instance-method","name":"not_allocated?","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L101"},"def":{"name":"not_allocated?","return_type":"Bool","visibility":"Public","body":"!allocated?"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L81"},"def":{"name":"release","visibility":"Public","body":"@allocated_to = nil\n@allocated_until = nil\n@shared_with = [] of String\n"}},{"html_id":"shared_with:Array(String)-instance-method","name":"shared_with","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with","return_type":"Array(String)","visibility":"Public","body":"@shared_with"}},{"html_id":"shared_with=(shared_with:Array(String))-instance-method","name":"shared_with=","abstract":false,"args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"args_string":"(shared_with : Array(String))","args_html":"(shared_with : Array(String))","location":{"filename":"src/place/demo/lockers.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L79"},"def":{"name":"shared_with=","args":[{"name":"shared_with","external_name":"shared_with","restriction":"Array(String)"}],"visibility":"Public","body":"@shared_with = shared_with"}}]},{"html_id":"drivers/Place/Demo/Lockers/LockerBank","path":"Place/Demo/Lockers/LockerBank.html","kind":"class","full_name":"Place::Demo::Lockers::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/lockers.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L106"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/demo/lockers.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L107"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L109"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"level_id:String|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id","return_type":"String | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(level_id : String | Nil)","args_html":"(level_id : String | Nil)","location":{"filename":"src/place/demo/lockers.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L113"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"locker_hash:Hash(String,Locker)-instance-method","name":"locker_hash","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L115"},"def":{"name":"locker_hash","return_type":"Hash(String, Locker)","visibility":"Public","body":"if (__temp_1 = @locker_hash).nil?\n @locker_hash = (begin\n lookup = {} of String => Locker\n level = self.level_id\n lockers.each do |locker|\n locker.level_id = level\n lookup[locker.id] = locker\n end\n lookup\n end)\nelse\n __temp_1\nend"}},{"html_id":"lockers:Array(Locker)-instance-method","name":"lockers","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L114"},"def":{"name":"lockers","return_type":"Array(Locker)","visibility":"Public","body":"@lockers"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L110"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @name).nil?\n @name = (id)\nelse\n __temp_1\nend"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/demo/lockers.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L111"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"@zones"}}]},{"html_id":"drivers/Place/Demo/Lockers/PlaceLocker","path":"Place/Demo/Lockers/PlaceLocker.html","kind":"alias","full_name":"Place::Demo::Lockers::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/place/demo/lockers.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/lockers.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Place/Demo/Lockers","kind":"class","full_name":"Place::Demo::Lockers","name":"Lockers"}}]},{"html_id":"drivers/Place/Demo/RoomSensor","path":"Place/Demo/RoomSensor.html","kind":"class","full_name":"Place::Demo::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L44"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L147"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @count).nil?\n ::raise(::NilAssertionError.new(\"Place::Demo::RoomSensor#count cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"count?:Int32|Nil-instance-method","name":"count?","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L21"},"def":{"name":"count?","return_type":"Int32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L152"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif {building_id, level_id}.includes?(zone_id)\nelse\n return [] of Nil\nend\nif location && (location != \"area\")\n return [] of Nil\nend\n[{location: \"area\", at_location: count, map_id: system.map_id, level: level_id, building: building_id, capacity: @capacity, module_id: module_id}]\n"}},{"html_id":"level_id:String-instance-method","name":"level_id","doc":"Finds the level ID for the current location services object","summary":"

Finds the level ID for the current location services object

","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L53"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_id).nil?\n @level_id = begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"level\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\n rescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\n end\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L137"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L142"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@capacity = (setting?(Int32, :capacity)) || 2\n@count || (@count = (setting?(Int32, :default_count)) || 0)\n@sensor_id = (setting?(String, :sensor_id)) || module_id\n@timestamp = Time.utc.to_unix\nupdate_state\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/place/demo/room_sensor.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L87"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"demo-#{@sensor_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L68"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"demo-#{@sensor_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"set_sensor(new_count:Int32)-instance-method","name":"set_sensor","abstract":false,"args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"args_string":"(new_count : Int32)","args_html":"(new_count : Int32)","location":{"filename":"src/place/demo/room_sensor.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/room_sensor.cr#L32"},"def":{"name":"set_sensor","args":[{"name":"new_count","external_name":"new_count","restriction":"Int32"}],"visibility":"Public","body":"@timestamp = Time.utc.to_unix\n@count = new_count\nupdate_state\n"}}]},{"html_id":"drivers/Place/Demo/Switcher","path":"Place/Demo/Switcher.html","kind":"class","full_name":"Place::Demo::Switcher","name":"Switcher","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"},{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/switcher.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Switchable","kind":"module","full_name":"PlaceOS::Driver::Interface::Switchable","name":"Switchable"}],"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inputs:Int32-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L17"},"def":{"name":"inputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @inputs).nil?\n @inputs = (setting(Int32, :inputs))\nelse\n __temp_1\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@inputs = nil\n@outputs = nil\n"}},{"html_id":"outputs:Int32-instance-method","name":"outputs","abstract":false,"location":{"filename":"src/place/demo/switcher.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L18"},"def":{"name":"outputs","return_type":"Int32","visibility":"Public","body":"if (__temp_1 = @outputs).nil?\n @outputs = (setting(Int32, :outputs))\nelse\n __temp_1\nend"}},{"html_id":"switch(map:Hash(Input,Array(Output)),layer:SwitchLayer|Nil=nil)-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"args_string":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","args_html":"(map : Hash(Input, Array(Output)), layer : SwitchLayer | Nil = nil)","location":{"filename":"src/place/demo/switcher.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L32"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(Input, Array(Output))"},{"name":"layer","default_value":"nil","external_name":"layer","restriction":"SwitchLayer | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"switching #{map} on layer #{layer || SwitchLayer::All}\"\nend\nmap.each do |input, outputs|\n outputs.each do |outp|\n self[\"output#{outp}\"] = input\n end\nend\ntrue\n"}},{"html_id":"switch_to(input:Int32)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32"}],"args_string":"(input : Int32)","args_html":"(input : Int32)","location":{"filename":"src/place/demo/switcher.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/switcher.cr#L25"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Int32"}],"visibility":"Public","body":"if input < 0 || input > inputs\n raise(\"invalid input #{input}, supported values 0 -> #{inputs}\")\nend\nlogger.debug do\n \"switching all outputs to input #{input}\"\nend\n(1..outputs).each do |outp|\n self[\"output#{outp}\"] = input\nend\ntrue\n"}}]},{"html_id":"drivers/Place/Demo/TestSSH","path":"Place/Demo/TestSSH.html","kind":"class","full_name":"Place::Demo::TestSSH","name":"TestSSH","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/demo/test_ssh.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Demo","kind":"module","full_name":"Place::Demo","name":"Demo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"ls(dir:String=\"./\",modifiers:String=\"\")-instance-method","name":"ls","abstract":false,"args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"args_string":"(dir : String = \"./\", modifiers : String = \"\")","args_html":"(dir : String = "./", modifiers : String = "")","location":{"filename":"src/place/demo/test_ssh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L16"},"def":{"name":"ls","args":[{"name":"dir","default_value":"\"./\"","external_name":"dir","restriction":"String"},{"name":"modifiers","default_value":"\"\"","external_name":"modifiers","restriction":"String"}],"visibility":"Public","body":"(exec(\"ls -#{modifiers} #{dir}\")).gets_to_end"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L25"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"SSH response:\\n#{data}\"\nend\ntask.try(&.success(data))\n"}},{"html_id":"run(command:String,wait:Bool=true)-instance-method","name":"run","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"args_string":"(command : String, wait : Bool = true)","args_html":"(command : String, wait : Bool = true)","location":{"filename":"src/place/demo/test_ssh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/demo/test_ssh.cr#L20"},"def":{"name":"run","args":[{"name":"command","external_name":"command","restriction":"String"},{"name":"wait","default_value":"true","external_name":"wait","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"SSH command:\\n#{command}\"\nend\nsend(\"#{command}\\n\", wait: wait)\n"}}]}]},{"html_id":"drivers/Place/Desk","path":"Place/Desk.html","kind":"module","full_name":"Place::Desk","name":"Desk","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Desk/Control","path":"Place/Desk/Control.html","kind":"class","full_name":"Place::Desk::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"desks\""}],"namespace":{"html_id":"drivers/Place/Desk","kind":"module","full_name":"Place::Desk","name":"Desk"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"desk_id_key:String-instance-method","name":"desk_id_key","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L30"},"def":{"name":"desk_id_key","return_type":"String","visibility":"Public","body":"@desk_id_key"}},{"html_id":"desk_ids:Hash(String,String)-instance-method","name":"desk_ids","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L90"},"def":{"name":"desk_ids","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @desk_ids).nil?\n @desk_ids = (begin\n metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\n end\n desks = {} of String => String\n key = desk_id_key\n metadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if ids = level[:metadata][METADATA_KEY]?.try(&.details)\n ids.each do |desk_details|\n if mapped_id = desk_details.json_unmapped[key]?.try(&.as_s?)\n desks[desk_details.id] = mapped_id\n end\n end\n end\n end\n end\n desks\n end)\nelse\n __temp_1\nend"}},{"html_id":"desk_lookup(desk_id:String):String-instance-method","name":"desk_lookup","abstract":false,"args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"args_string":"(desk_id : String) : String","args_html":"(desk_id : String) : String","location":{"filename":"src/place/desk/control.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L32"},"def":{"name":"desk_lookup","args":[{"name":"desk_id","external_name":"desk_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if desk_id_key != \"id\"\n mapped_id = desk_ids[desk_id]?\n if mapped_id\n else\n raise(\"mapped id not found\")\n end\n mapped_id\nelse\n desk_id\nend"}},{"html_id":"get_desk_height(desk_key:String)-instance-method","name":"get_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L56"},"def":{"name":"get_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_height(desk_key)).get"}},{"html_id":"get_desk_power(desk_key:String)-instance-method","name":"get_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"args_string":"(desk_key : String)","args_html":"(desk_key : String)","location":{"filename":"src/place/desk/control.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L65"},"def":{"name":"get_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"}],"visibility":"Public","body":"(desk_control.get_desk_power(desk_key)).get"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L118"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L20"},"def":{"name":"on_load","visibility":"Public","body":"schedule.every(1.hour) do\n @desk_ids = nil\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L26"},"def":{"name":"on_update","visibility":"Public","body":"@desk_id_key = (setting?(String, :desk_id_key)) || \"id\""}},{"html_id":"set_desk_height(desk_key:String,desk_height:Int32)-instance-method","name":"set_desk_height","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"args_string":"(desk_key : String, desk_height : Int32)","args_html":"(desk_key : String, desk_height : Int32)","location":{"filename":"src/place/desk/control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L51"},"def":{"name":"set_desk_height","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_height","external_name":"desk_height","restriction":"Int32"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_height(desk_key, desk_height)).get\n"}},{"html_id":"set_desk_power(desk_key:String,desk_power:Bool|Nil)-instance-method","name":"set_desk_power","abstract":false,"args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"args_string":"(desk_key : String, desk_power : Bool | Nil)","args_html":"(desk_key : String, desk_power : Bool | Nil)","location":{"filename":"src/place/desk/control.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L60"},"def":{"name":"set_desk_power","args":[{"name":"desk_key","external_name":"desk_key","restriction":"String"},{"name":"desk_power","external_name":"desk_power","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"desk_key = desk_lookup(desk_key)\n(desk_control.set_desk_power(desk_key, desk_power)).get\n"}}],"types":[{"html_id":"drivers/Place/Desk/Control/ChildMetadata","path":"Place/Desk/Control/ChildMetadata.html","kind":"alias","full_name":"Place::Desk::Control::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Desk::Control::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/DeskId","path":"Place/Desk/Control/DeskId.html","kind":"struct","full_name":"Place::Desk::Control::DeskId","name":"DeskId","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L73"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L74"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L77"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Desk/Control/Details","path":"Place/Desk/Control/Details.html","kind":"struct","full_name":"Place::Desk::Control::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk/control.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L80"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/desk/control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L81"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(DeskId)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L83"},"def":{"name":"details","return_type":"Array(DeskId)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(DeskId))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"args_string":"(details : Array(DeskId))","args_html":"(details : Array(DeskId))","location":{"filename":"src/place/desk/control.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L83"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(DeskId)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Desk/Control/Metadata","path":"Place/Desk/Control/Metadata.html","kind":"alias","full_name":"Place::Desk::Control::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L87"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Desk::Control::Details)","aliased_html":"Hash(String, Place::Desk::Control::Details)","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}},{"html_id":"drivers/Place/Desk/Control/Zone","path":"Place/Desk/Control/Zone.html","kind":"alias","full_name":"Place::Desk::Control::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/desk/control.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk/control.cr#L86"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Desk/Control","kind":"class","full_name":"Place::Desk::Control","name":"Control"}}]}]},{"html_id":"drivers/Place/DeskBookingsLocations","path":"Place/DeskBookingsLocations.html","kind":"class","full_name":"Place::DeskBookingsLocations","name":"DeskBookingsLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_bookings_locations.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L121"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L133"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L106"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/desk_bookings_locations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_912|\n user_email, _name = __temp_912\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L33"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@zone_filter = (setting?(Array(String), :zone_filter)) || ([] of String)\n@zones = nil\n@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@booking_type = (setting?(String, :booking_type)).presence || \"desk\"\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\nmap_zones\nschedule.clear\nschedule.every(@poll_rate) do\n query_desk_bookings\nend\nschedule.in(5.seconds) do\n query_desk_bookings\nend\n"}},{"html_id":"query_desk_bookings:Nil-instance-method","name":"query_desk_bookings","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L216"},"def":{"name":"query_desk_bookings","return_type":"Nil","visibility":"Public","body":"ids = Set(Int64).new\nbookings = [] of JSON::Any\nzones.each do |zone|\n begin\n bookings.concat(staff_api.query_bookings(type: @booking_type, zones: {zone}).get.as_a)\n rescue error\n logger.warn(exception: error) do\n \"failed to query bookings in zone: #{zone}\"\n end\n end\nend\nbookings = bookings.flat_map do |booking|\n booking = Booking.from_json(booking.to_json)\n if ids.includes?(booking.id)\n next [] of Booking\n end\n ids << booking.id\n booking.user_email = booking.user_email.downcase\n booking.expand\nend\nlogger.debug do\n \"queried desk bookings, found #{bookings.size}\"\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zones:Array(String)-instance-method","name":"zones","abstract":false,"location":{"filename":"src/place/desk_bookings_locations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_bookings_locations.cr#L57"},"def":{"name":"zones","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zones).nil?\n @zones = (begin\n filtered = @zone_filter\n if filtered.empty?\n location_service.systems.get.as_h.keys\n else\n filtered\n end\n end)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/DeskBookingWebhook","path":"Place/DeskBookingWebhook.html","kind":"class","full_name":"Place::DeskBookingWebhook","name":"DeskBookingWebhook","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/desk_booking_webhook.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_post-instance-method","name":"fetch_and_post","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L54"},"def":{"name":"fetch_and_post","visibility":"Public","body":"period_start = Time.utc.to_unix\nperiod_end = @time_period.from_now.to_unix\nzones = [@building]\npayload = (staff_api.query_bookings(@booking_category, period_start, period_end, zones)).get.to_json\nheaders = HTTP::Headers.new\n@custom_headers.each do |key, value|\n headers[key] = value\nend\nheaders[\"Content-Type\"] = \"application/json; charset=UTF-8\"\nif @debug\n logger.debug do\n \"Posting: #{payload} \\n with Headers: #{headers}\"\n end\nend\nresponse = HTTP::Client.post(@post_uri, headers, body: payload)\nif response.status_code < 300\nelse\n raise(\"Request failed with #{response.status_code}: #{response.body}\")\nend\n\"#{response.status_code}: #{response.body}\"\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n fetch_and_post\nend\nschedule.every(24.hours) do\n fetch_and_post\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/desk_booking_webhook.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/desk_booking_webhook.cr#L43"},"def":{"name":"on_update","visibility":"Public","body":"@post_uri = setting(String, :post_uri)\n@building = setting(String, :building)\n@custom_headers = setting(Hash(String, String), :custom_headers)\n@time_period = (setting(Int32, :days_from_now)).days\n@booking_category = setting(String, :booking_category)\n@debug = setting(Bool, :debug)\nfetch_and_post\n"}}]},{"html_id":"drivers/Place/EventAttendanceRecorder","path":"Place/EventAttendanceRecorder.html","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"booking_id:String|Nil-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L22"},"def":{"name":"booking_id","return_type":"String | ::Nil","visibility":"Public","body":"@booking_id"}},{"html_id":"count:UInt64-instance-method","name":"count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L18"},"def":{"name":"count","return_type":"UInt64","visibility":"Public","body":"@count"}},{"html_id":"last_known_count:Int32-instance-method","name":"last_known_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L27"},"def":{"name":"last_known_count","return_type":"Int32","visibility":"Public","body":"@last_known_count"}},{"html_id":"last_saved_count:Int32-instance-method","name":"last_saved_count","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L26"},"def":{"name":"last_saved_count","return_type":"Int32","visibility":"Public","body":"@last_saved_count"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"@system_id = config.control_system.not_nil!.id\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@metadata_key = (setting?(String, :metadata_key)).presence || \"people_count\"\n@debounce_seconds = (setting?(Int32, :debounce_seconds)) || 0\n"}},{"html_id":"people_counts:Array(Int32)-instance-method","name":"people_counts","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L25"},"def":{"name":"people_counts","return_type":"Array(Int32)","visibility":"Public","body":"@people_counts"}},{"html_id":"should_save:Bool-instance-method","name":"should_save","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L24"},"def":{"name":"should_save","return_type":"Bool","visibility":"Public","body":"@should_save"}},{"html_id":"status:String-instance-method","name":"status","doc":"Tracking meeting details","summary":"

Tracking meeting details

","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L21"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}],"types":[{"html_id":"drivers/Place/EventAttendanceRecorder/StaffEventChange","path":"Place/EventAttendanceRecorder/StaffEventChange.html","kind":"class","full_name":"Place::EventAttendanceRecorder::StaffEventChange","name":"StaffEventChange","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L46"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventAttendanceRecorder","kind":"class","full_name":"Place::EventAttendanceRecorder","name":"EventAttendanceRecorder"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L47"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/bookings/event_attendance_recorder.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/bookings/event_attendance_recorder.cr#L50"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}}]}]},{"html_id":"drivers/Place/EventMailer","path":"Place/EventMailer.html","kind":"class","full_name":"Place::EventMailer","name":"EventMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_mailer.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L227"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"inspect_event_store:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"inspect_event_store","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L108"},"def":{"name":"inspect_event_store","visibility":"Public","body":"@events"}},{"html_id":"list_systems_in_zone(zone_id:String)-instance-method","name":"list_systems_in_zone","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/event_mailer.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L104"},"def":{"name":"list_systems_in_zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"staff_api.systems(zone_id: zone_id).get.as_a"}},{"html_id":"list_target_systems-instance-method","name":"list_target_systems","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L100"},"def":{"name":"list_target_systems","visibility":"Public","body":"@target_zones.flat_map do |zone_id|\n list_systems_in_zone(zone_id)\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@target_zones = (setting?(Array(String), :zone_ids_to_target)) || ([] of String)\n@target_module = (setting?(String, :module_to_target)) || \"Bookings_1\"\n@target_status = (setting?(String, :module_status_to_target)) || \"bookings\"\n@event_filter = (setting?(String, :event_filter)) || \"\"\n@email_template_group = (setting?(String, :email_template_group)) || \"events\"\n@email_template = (setting?(String, :email_template)) || \"welcome\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@debug = (setting?(Bool, :debug)) || false\nself[:events] = @events.clear\nsubscribe_to_all_modules\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/event_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L126"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(Time::Location.local)\n[TemplateFields.new(trigger: {@email_template_group, @email_template}, name: \"Event welcome\", description: \"Welcome email sent to event organizers when their event is coming up today\", fields: [{name: \"host_name\", description: \"Name of the event organizer\"}, {name: \"host_email\", description: \"Email address of the event organizer\"}, {name: \"room_name\", description: \"Location or room where the event is being held\"}, {name: \"event_title\", description: \"Title or subject of the event\"}, {name: \"event_start\", description: \"Start time of the event (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the event (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"network_username\", description: \"Username for network access (only if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated password for network access (only if network credentials enabled)\"}])]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/event_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_mailer.cr#L216"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime","path":"Place/EventSetupBreakdownTime.html","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L14"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/event/changed\") do |_subscription, payload|\n begin\n logger.debug do\n \"received event changed signal #{payload}\"\n end\n @event_change_mutex.synchronize do\n event_changed(EventChangedSignal.from_json(payload))\n end\n rescue error\n logger.warn(exception: error) do\n \"error processing event changed signal\"\n end\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/EventChangedSignal","path":"Place/EventSetupBreakdownTime/EventChangedSignal.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventChangedSignal","name":"EventChangedSignal","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L187"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L189"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"event:PlaceCalendar::Event-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event","return_type":"PlaceCalendar::Event","visibility":"Public","body":"@event"}},{"html_id":"event=(event:PlaceCalendar::Event)-instance-method","name":"event=","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":195,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L195"},"def":{"name":"event=","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"@event = event"}},{"html_id":"event_ical_uid:String-instance-method","name":"event_ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid","return_type":"String","visibility":"Public","body":"@event_ical_uid"}},{"html_id":"event_ical_uid=(event_ical_uid:String)-instance-method","name":"event_ical_uid=","abstract":false,"args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"args_string":"(event_ical_uid : String)","args_html":"(event_ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L192"},"def":{"name":"event_ical_uid=","args":[{"name":"event_ical_uid","external_name":"event_ical_uid","restriction":"String"}],"visibility":"Public","body":"@event_ical_uid = event_ical_uid"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L191"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L196"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String|Nil)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"args_string":"(host : String | Nil)","args_html":"(host : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L193"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String | ::Nil"}],"visibility":"Public","body":"@host = host"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L194"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L190"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/EventMetadata","path":"Place/EventSetupBreakdownTime/EventMetadata.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::EventMetadata","name":"EventMetadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L199"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L200"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L218"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time","return_type":"Int64","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"args_string":"(breakdown_time : Int64)","args_html":"(breakdown_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L216"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"cancelled:Bool-instance-method","name":"cancelled","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled","return_type":"Bool","visibility":"Public","body":"@cancelled"}},{"html_id":"cancelled=(cancelled:Bool)-instance-method","name":"cancelled=","abstract":false,"args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"args_string":"(cancelled : Bool)","args_html":"(cancelled : Bool)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L211"},"def":{"name":"cancelled=","args":[{"name":"cancelled","external_name":"cancelled","restriction":"Bool"}],"visibility":"Public","body":"@cancelled = cancelled"}},{"html_id":"event_end:Int64-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end","return_type":"Int64","visibility":"Public","body":"@event_end"}},{"html_id":"event_end=(event_end:Int64)-instance-method","name":"event_end=","abstract":false,"args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"args_string":"(event_end : Int64)","args_html":"(event_end : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L210"},"def":{"name":"event_end=","args":[{"name":"event_end","external_name":"event_end","restriction":"Int64"}],"visibility":"Public","body":"@event_end = event_end"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L203"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_start:Int64-instance-method","name":"event_start","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start","return_type":"Int64","visibility":"Public","body":"@event_start"}},{"html_id":"event_start=(event_start:Int64)-instance-method","name":"event_start=","abstract":false,"args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(event_start : Int64)","args_html":"(event_start : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L209"},"def":{"name":"event_start=","args":[{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"@event_start = event_start"}},{"html_id":"ext_data:JSON::Any|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:JSON::Any|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(ext_data : JSON::Any | Nil)","args_html":"(ext_data : JSON::Any | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L213"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host_email:String-instance-method","name":"host_email","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email","return_type":"String","visibility":"Public","body":"@host_email"}},{"html_id":"host_email=(host_email:String)-instance-method","name":"host_email=","abstract":false,"args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"args_string":"(host_email : String)","args_html":"(host_email : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L207"},"def":{"name":"host_email=","args":[{"name":"host_email","external_name":"host_email","restriction":"String"}],"visibility":"Public","body":"@host_email = host_email"}},{"html_id":"ical_uid:String-instance-method","name":"ical_uid","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid","return_type":"String","visibility":"Public","body":"@ical_uid"}},{"html_id":"ical_uid=(ical_uid:String)-instance-method","name":"ical_uid=","abstract":false,"args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"args_string":"(ical_uid : String)","args_html":"(ical_uid : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L205"},"def":{"name":"ical_uid=","args":[{"name":"ical_uid","external_name":"ical_uid","restriction":"String"}],"visibility":"Public","body":"@ical_uid = ical_uid"}},{"html_id":"recurring_master_id:String|Nil-instance-method","name":"recurring_master_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id","return_type":"String | ::Nil","visibility":"Public","body":"@recurring_master_id"}},{"html_id":"recurring_master_id=(recurring_master_id:String|Nil)-instance-method","name":"recurring_master_id=","abstract":false,"args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"args_string":"(recurring_master_id : String | Nil)","args_html":"(recurring_master_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L204"},"def":{"name":"recurring_master_id=","args":[{"name":"recurring_master_id","external_name":"recurring_master_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@recurring_master_id = recurring_master_id"}},{"html_id":"resource_calendar:String-instance-method","name":"resource_calendar","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar","return_type":"String","visibility":"Public","body":"@resource_calendar"}},{"html_id":"resource_calendar=(resource_calendar:String)-instance-method","name":"resource_calendar=","abstract":false,"args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"args_string":"(resource_calendar : String)","args_html":"(resource_calendar : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L208"},"def":{"name":"resource_calendar=","args":[{"name":"resource_calendar","external_name":"resource_calendar","restriction":"String"}],"visibility":"Public","body":"@resource_calendar = resource_calendar"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L217"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time","return_type":"Int64","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"args_string":"(setup_time : Int64)","args_html":"(setup_time : Int64)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L215"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64"}],"visibility":"Public","body":"@setup_time = setup_time"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L202"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/LinkedEvents","path":"Place/EventSetupBreakdownTime/LinkedEvents.html","kind":"struct","full_name":"Place::EventSetupBreakdownTime::LinkedEvents","name":"LinkedEvents","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":162,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L162"},{"filename":"src/place/event_setup_breakdown_time.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"constructors":[{"html_id":"new(main_event_ical:String|Nil,main_event_id:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil, main_event_id : String | Nil)","args_html":"(main_event_ical : String | Nil, main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L182"},"def":{"name":"new","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"},{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(main_event_ical, main_event_id)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L175"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L180"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"main_event_ical:String|Nil-instance-method","name":"main_event_ical","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_ical"}},{"html_id":"main_event_ical=(main_event_ical:String|Nil)-instance-method","name":"main_event_ical=","abstract":false,"args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"args_string":"(main_event_ical : String | Nil)","args_html":"(main_event_ical : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L177"},"def":{"name":"main_event_ical=","args":[{"name":"main_event_ical","external_name":"main_event_ical","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_ical = main_event_ical"}},{"html_id":"main_event_id:String|Nil-instance-method","name":"main_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@main_event_id"}},{"html_id":"main_event_id=(main_event_id:String|Nil)-instance-method","name":"main_event_id=","abstract":false,"args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"args_string":"(main_event_id : String | Nil)","args_html":"(main_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L178"},"def":{"name":"main_event_id=","args":[{"name":"main_event_id","external_name":"main_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@main_event_id = main_event_id"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L179"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}}]},{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","path":"Place/EventSetupBreakdownTime/PlaceCalendar.html","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar","abstract":false,"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime","kind":"class","full_name":"Place::EventSetupBreakdownTime","name":"EventSetupBreakdownTime"},"types":[{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar/Event","path":"Place/EventSetupBreakdownTime/PlaceCalendar/Event.html","kind":"class","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/event_setup_breakdown_time.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L155"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/EventSetupBreakdownTime/PlaceCalendar","kind":"module","full_name":"Place::EventSetupBreakdownTime::PlaceCalendar","name":"PlaceCalendar"},"instance_methods":[{"html_id":"breakdown_event_id:String|Nil-instance-method","name":"breakdown_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@breakdown_event_id"}},{"html_id":"breakdown_event_id=(breakdown_event_id:String|Nil)-instance-method","name":"breakdown_event_id=","abstract":false,"args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(breakdown_event_id : String | Nil)","args_html":"(breakdown_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L159"},"def":{"name":"breakdown_event_id=","args":[{"name":"breakdown_event_id","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@breakdown_event_id = breakdown_event_id"}},{"html_id":"breakdown_time:Int64|Nil-instance-method","name":"breakdown_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@breakdown_time"}},{"html_id":"breakdown_time=(breakdown_time:Int64|Nil)-instance-method","name":"breakdown_time=","abstract":false,"args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"args_string":"(breakdown_time : Int64 | Nil)","args_html":"(breakdown_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L157"},"def":{"name":"breakdown_time=","args":[{"name":"breakdown_time","external_name":"breakdown_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@breakdown_time = breakdown_time"}},{"html_id":"setup_event_id:String|Nil-instance-method","name":"setup_event_id","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id","return_type":"String | ::Nil","visibility":"Public","body":"@setup_event_id"}},{"html_id":"setup_event_id=(setup_event_id:String|Nil)-instance-method","name":"setup_event_id=","abstract":false,"args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"args_string":"(setup_event_id : String | Nil)","args_html":"(setup_event_id : String | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L158"},"def":{"name":"setup_event_id=","args":[{"name":"setup_event_id","external_name":"setup_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@setup_event_id = setup_event_id"}},{"html_id":"setup_time:Int64|Nil-instance-method","name":"setup_time","abstract":false,"location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time","return_type":"Int64 | ::Nil","visibility":"Public","body":"@setup_time"}},{"html_id":"setup_time=(setup_time:Int64|Nil)-instance-method","name":"setup_time=","abstract":false,"args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"args_string":"(setup_time : Int64 | Nil)","args_html":"(setup_time : Int64 | Nil)","location":{"filename":"src/place/event_setup_breakdown_time.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/event_setup_breakdown_time.cr#L156"},"def":{"name":"setup_time=","args":[{"name":"setup_time","external_name":"setup_time","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@setup_time = setup_time"}}]}]}]},{"html_id":"drivers/Place/Geometry","path":"Place/Geometry.html","kind":"class","full_name":"Place::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_config.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/area_config.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(coordinates:Array(Tuple(Float64,Float64)),geo_type:String=\"Polygon\")-class-method","name":"new","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = \"Polygon\")","args_html":"(coordinates : Array(Tuple(Float64, Float64)), geo_type : String = "Polygon")","location":{"filename":"src/place/area_config.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L8"},"def":{"name":"new","args":[{"name":"coordinates","external_name":"coordinates","restriction":"::Array(::Tuple(::Float64, ::Float64))"},{"name":"geo_type","default_value":"\"Polygon\"","external_name":"geo_type","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(coordinates, geo_type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"coordinates:Array(Tuple(Float64,Float64))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L13"},"def":{"name":"coordinates","return_type":"Array(Tuple(Float64, Float64))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Tuple(Float64,Float64)))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"args_string":"(coordinates : Array(Tuple(Float64, Float64)))","args_html":"(coordinates : Array(Tuple(Float64, Float64)))","location":{"filename":"src/place/area_config.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L13"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Tuple(Float64, Float64))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"geo_type:String-instance-method","name":"geo_type","abstract":false,"location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L12"},"def":{"name":"geo_type","return_type":"String","visibility":"Public","body":"@geo_type"}},{"html_id":"geo_type=(geo_type:String)-instance-method","name":"geo_type=","abstract":false,"args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"args_string":"(geo_type : String)","args_html":"(geo_type : String)","location":{"filename":"src/place/area_config.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_config.cr#L12"},"def":{"name":"geo_type=","args":[{"name":"geo_type","external_name":"geo_type","restriction":"String"}],"visibility":"Public","body":"@geo_type = geo_type"}}]},{"html_id":"drivers/Place/Help","path":"Place/Help.html","kind":"alias","full_name":"Place::Help","name":"Help","abstract":false,"locations":[{"filename":"src/place/meet/help.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::HelpPage)","aliased_html":"Hash(String, Place::HelpPage)","const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"}},{"html_id":"drivers/Place/HelpPage","path":"Place/HelpPage.html","kind":"struct","full_name":"Place::HelpPage","name":"HelpPage","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/help.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/help.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:String-instance-method","name":"content","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L10"},"def":{"name":"content","return_type":"String","visibility":"Public","body":"@content"}},{"html_id":"icon:String|Nil-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L8"},"def":{"name":"icon","return_type":"String | ::Nil","visibility":"Public","body":"@icon"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/meet/help.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/help.cr#L9"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/HTTPPinger","path":"Place/HTTPPinger.html","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/http_pinger.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DUMMY_CALLBACK","name":"DUMMY_CALLBACK","value":"Proc(Task, Nil).new do\n nil\nend"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_status:Bool-instance-method","name":"check_status","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L55"},"def":{"name":"check_status","return_type":"Bool","visibility":"Public","body":"begin\n response = http(@request_verb, \"/\", headers: @request_headers)\n if response.status_code == expected_response_code\n self[:last_successful_check] = Time.utc.to_unix\n self[:last_response_code] = response.status_code\n true\n else\n self[:last_response_code] = response.status_code\n @response_mismatch_count = @response_mismatch_count + 1\n self[:response_mismatch_count] = @response_mismatch_count\n queue.online = false\n false\n end\nrescue error\n logger.warn(exception: error) do\n \"HTTP service not responding\"\n end\n @response_failure_count = @response_failure_count + 1\n self[:response_failure_count] = @response_failure_count\n self[:last_error] = error.message\n false\nend"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"check_status"}},{"html_id":"curl(verb:String,path:String,headers:Hash(String,String)={}ofString=>String,body:String|Nil=nil)-instance-method","name":"curl","abstract":false,"args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"args_string":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","args_html":"(verb : String, path : String, headers : Hash(String, String) = {} of String => String, body : String | Nil = nil)","location":{"filename":"src/place/http_pinger.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L80"},"def":{"name":"curl","args":[{"name":"verb","external_name":"verb","restriction":"String"},{"name":"path","external_name":"path","restriction":"String"},{"name":"headers","default_value":"{} of String => String","external_name":"headers","restriction":"Hash(String, String)"},{"name":"body","default_value":"nil","external_name":"body","restriction":"String | ::Nil"}],"visibility":"Public","body":"response = http(verb, path, body, headers: headers)\nlogger.debug do\n \"response #{response.status}: #{response.status_message}\\nheaders: #{response.headers}\\n#{response.body}\"\nend\ntask = PlaceOS::Driver::Task.new(queue, DUMMY_CALLBACK, 0, 0.seconds, 0, false, nil, nil)\ntask.success(response.body, response.status_code)\n"}},{"html_id":"expected_response_code:Int32-instance-method","name":"expected_response_code","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L26"},"def":{"name":"expected_response_code","return_type":"Int32","visibility":"Public","body":"@expected_response_code"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"transport.before_request do |request|\n logger.debug do\n \"using proxy #{!!transport.proxy_in_use} #{transport.proxy_in_use.inspect}\\nconnecting to host: #{config.uri}\\nperforming request: #{request.method} #{request.path}\\nheaders: #{request.headers}\\n#{!request.body.nil? ? String.new((request.body.as(IO::Memory)).to_slice) : nil}\"\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L39"},"def":{"name":"on_update","visibility":"Public","body":"schedule.clear\nschedule.every(((setting?(Int32, :ping_every)) || 60).seconds) do\n check_status\nend\n@request_verb = (setting?(String, :request_verb)) || \"GET\"\n@expected_response_code = (setting?(Int32, :expected_response_code)) || 200\nrequest_headers = HTTP::Headers.new\nheaders = (setting?(HeaderJSON, :request_headers)) || ({} of String => Array(String) | String)\nheaders.each do |key, value|\n request_headers.add(key, value)\nend\n@request_headers = request_headers\n"}},{"html_id":"request_verb:String-instance-method","name":"request_verb","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L27"},"def":{"name":"request_verb","return_type":"String","visibility":"Public","body":"@request_verb"}},{"html_id":"response_failure_count:UInt64-instance-method","name":"response_failure_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L24"},"def":{"name":"response_failure_count","return_type":"UInt64","visibility":"Public","body":"@response_failure_count"}},{"html_id":"response_mismatch_count:UInt64-instance-method","name":"response_mismatch_count","abstract":false,"location":{"filename":"src/place/http_pinger.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L23"},"def":{"name":"response_mismatch_count","return_type":"UInt64","visibility":"Public","body":"@response_mismatch_count"}}],"types":[{"html_id":"drivers/Place/HTTPPinger/HeaderJSON","path":"Place/HTTPPinger/HeaderJSON.html","kind":"alias","full_name":"Place::HTTPPinger::HeaderJSON","name":"HeaderJSON","abstract":false,"locations":[{"filename":"src/place/http_pinger.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/http_pinger.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Array(String) | String)","aliased_html":"Hash(String, Array(String) | String)","const":false,"namespace":{"html_id":"drivers/Place/HTTPPinger","kind":"class","full_name":"Place::HTTPPinger","name":"HTTPPinger"}}]},{"html_id":"drivers/Place/LLM","path":"Place/LLM.html","kind":"class","full_name":"Place::LLM","name":"LLM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/llm.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capabilities-instance-method","name":"capabilities","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L43"},"def":{"name":"capabilities","visibility":"Public","body":"(system.implementing(Interface::ChatFunctions)).map do |driver|\n {id: driver.module_name, capability: driver[:capabilities].as_s}\nend"}},{"html_id":"new_chat-instance-method","name":"new_chat","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L52"},"def":{"name":"new_chat","visibility":"Public","body":"{prompt: @prompt, capabilities: capabilities, system_id: system.id}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L31"},"def":{"name":"on_update","visibility":"Public","body":"@prompt = setting(String, :prompt)\n@user_hint = (setting?(String, :user_hint)) || \"Hi! I'm your workplace assistant.\"\nschedule.clear\nschedule.in(5.seconds) do\n update_prompt\nend\nschedule.every(5.minutes) do\n update_prompt\nend\n"}},{"html_id":"prompt:String-instance-method","name":"prompt","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L41"},"def":{"name":"prompt","return_type":"String","visibility":"Public","body":"if (__temp_1 = @prompt).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#prompt cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"prompt?:String|Nil-instance-method","name":"prompt?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L41"},"def":{"name":"prompt?","return_type":"String | ::Nil","visibility":"Public","body":"@prompt"}},{"html_id":"user_hint:String-instance-method","name":"user_hint","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint","return_type":"String","visibility":"Public","body":"if (__temp_1 = @user_hint).nil?\n ::raise(::NilAssertionError.new(\"Place::LLM#user_hint cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"user_hint?:String|Nil-instance-method","name":"user_hint?","abstract":false,"location":{"filename":"src/place/llm/llm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/llm.cr#L40"},"def":{"name":"user_hint?","return_type":"String | ::Nil","visibility":"Public","body":"@user_hint"}}]},{"html_id":"drivers/Place/LocationServices","path":"Place/LocationServices.html","kind":"class","full_name":"Place::LocationServices","name":"LocationServices","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/location_services.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, {} of String => String, nil}","doc":"===============================\nIP ADDRESS => MAC ADDRESS\n===============================","summary":"

=============================== IP ADDRESS => MAC ADDRESS ===============================

"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L30"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String)-instance-method","name":"check_ownership_of","doc":"Will return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

Will return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String)","args_html":"(mac_address : String)","location":{"filename":"src/place/location_services.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L138"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nowner = nil\n((system.implementing(Interface::Locatable)).check_ownership_of(mac_address)).get.each do |result|\n if result != nil\n owner = result\n break\n end\nend\nif owner.nil? && @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).check_ownership_of(mac_address))\n end\n end\n results.each do |sys_results|\n sys_results.get.each do |result|\n if result != nil\n owner = result\n break\n end\n end\n if owner.nil?\n else\n break\n end\n end\nend\nowner\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"Will return an array of devices and their x, y coordinates","summary":"

Will return an array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L174"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).device_locations(zone_id, location)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @include_room_locations\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).device_locations(zone_id, location))\n end\n end\n results.each do |__arg9|\n __arg9.get.each do |locations|\n located.concat(locations.as_a)\n end\n end\nend\nlocated\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L54"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n building_setting = setting?(String, :building_zone_override)\n if building_setting.presence\n return building_setting\n end\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L65"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (staff_api.systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"ip_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"ip_mappings","doc":"Webhook handler for accepting IP address to username mappings\nThis data is typically obtained via domain controller logs","summary":"

Webhook handler for accepting IP address to username mappings This data is typically obtained via domain controller logs

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L298"},"def":{"name":"ip_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"IP mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nip_map = Array(Tuple(String, String, String, String | ::Nil)).from_json(body)\n(system.implementing(Interface::Locatable)).ip_username_mappings(ip_map)\nSUCCESS_RESPONSE\n"}},{"html_id":"locate_contacts(list_name:String)-instance-method","name":"locate_contacts","doc":"locates all the of the emergency contacts","summary":"

locates all the of the emergency contacts

","abstract":false,"args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"args_string":"(list_name : String)","args_html":"(list_name : String)","location":{"filename":"src/place/location_services.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L346"},"def":{"name":"locate_contacts","args":[{"name":"list_name","external_name":"list_name","restriction":"String"}],"visibility":"Public","body":"contacts = status(Hash(String, Array(NamedTuple(email: String, username: String))), :emergency_contacts)\nlist = contacts[list_name]\nresults = {} of String => Array(JSON::Any)\nlist.each do |person|\n email = person[:email]\n results[email] = locate_user(email, person[:username])\nend\nresults\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"Runs through all the services that support the Locatable interface\nrequests location information on the identifier for all of them\nconcatenates the results and returns them as a single array","summary":"

Runs through all the services that support the Locatable interface requests location information on the identifier for all of them concatenates the results and returns them as a single array

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L75"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"searching for #{email}, #{username}\"\nend\nlocated = [] of JSON::Any\n((system.implementing(Interface::Locatable)).locate_user(email, username)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n results << {level_id, ((system(system_id)).implementing(Interface::Locatable)).locate_user(email, username)}\n end\n end\n results.each do |__temp_929|\n level_id, result = __temp_929\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"mac_address_mappings(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"mac_address_mappings","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/location_services.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L309"},"def":{"name":"mac_address_mappings","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"MAC mappings webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_webhook\n logger.debug do\n body\n end\nend\nusername, macs, domain = Tuple(String, Array(String), String | ::Nil).from_json(body)\nusername = username.strip\nmacs = macs.compact_map do |mac|\n mac = (mac.strip.gsub(/(0x|[^0-9A-Fa-f])*/, \"\")).downcase\n if mac.size == 12\n mac\n end\nend\nif username.empty? || macs.empty?\n return {HTTP::Status::NOT_ACCEPTABLE, {} of String => String, nil}\nend\n(system.implementing(Interface::Locatable)).mac_address_mappings(username, macs, domain)\nSUCCESS_RESPONSE\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"macs_assigned_to","doc":"Will return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

Will return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L112"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"email = email.try(&.downcase)\nlogger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nmacs = [] of String\n((system.implementing(Interface::Locatable)).macs_assigned_to(email, username)).get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\nend\nif @search_building\n results = [] of PlaceOS::Driver::Proxy::Drivers::Responses\n systems.each do |_level_id, system_ids|\n system_ids.each do |system_id|\n results << (((system(system_id)).implementing(Interface::Locatable)).macs_assigned_to(email, username))\n end\n end\n results.each do |__arg7|\n __arg7.get.each do |found|\n macs.concat(found.as_a.map(&.as_s))\n end\n end\nend\nmacs\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n@emergency_contacts = (setting?(Hash(String, String), :emergency_contacts)) || Hash(String, String).new\n@search_building = (setting?(Bool, :search_building)) || false\n@include_room_locations = (setting?(Bool, :include_room_locations)) || false\n@building_id = nil\n@systems = nil\nschedule.clear\nif @search_building || @include_room_locations\n schedule.every(1.hour) do\n if @systems\n @systems = get_systems_list.not_nil!\n end\n end\nend\nif !@emergency_contacts.empty?\n schedule.every(6.hours, immediate: true) do\n update_contacts_list\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil)-instance-method","name":"sensor","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil)","args_html":"(mac : String, id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L247"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"querying sensor with mac: #{mac}, id: #{id.inspect}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensor(mac, id)).get.each do |locations|\n located.concat(locations.as_a)\nend\nif located.empty?\nelse\n return located.first\nend\ndriver_ids = Set.new(drivers.map() do |__arg13|\n __arg13.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg14|\n __arg14.@module_id\n end)\n results << {level_id, drivers.sensor(mac, id)}\n end\n end\n results.each do |__temp_931|\n level_id, result = __temp_931\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nif located.empty?\nelse\n located.first\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil)-instance-method","name":"sensors","doc":"sensor search + filtered search","summary":"

sensor search + filtered search

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil)","location":{"filename":"src/place/location_services.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L203"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching sensors of type: #{type.inspect}, mac: #{mac.inspect}, zone_id: #{zone_id}\"\nend\nlocated = [] of JSON::Any\ndrivers = system.implementing(Interface::Sensor)\n(drivers.sensors(type, mac, zone_id)).get.each do |locations|\n located.concat(locations.as_a)\nend\ndriver_ids = Set.new(drivers.map() do |__arg10|\n __arg10.@module_id\nend)\nif @search_building\n building = JSON::Any.new(building_id)\n results = [] of Tuple(JSON::Any, PlaceOS::Driver::Proxy::Drivers::Responses)\n systems.each do |level_id, system_ids|\n if zone_id && (zone_id != level_id)\n next\n end\n level_id = JSON::Any.new(level_id)\n system_ids.each do |system_id|\n drivers = (system(system_id)).implementing(Interface::Sensor)\n drivers = PlaceOS::Driver::Proxy::Drivers.new(drivers.reject do |driver|\n (driver.@module_id).in?(driver_ids)\n end)\n driver_ids.concat(drivers.map() do |__arg11|\n __arg11.@module_id\n end)\n results << {level_id, drivers.sensors(type, mac, zone_id)}\n end\n end\n results.each do |__temp_930|\n level_id, result = __temp_930\n result.get.each do |locations|\n located.concat(locations.as_a.tap(&.each do |location|\n location = location.as_h\n location[\"level\"] = level_id\n location[\"building\"] = building\n end))\n end\n end\nend\nlocated\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L31"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"update_contacts_list-instance-method","name":"update_contacts_list","abstract":false,"location":{"filename":"src/place/location_services.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/location_services.cr#L328"},"def":{"name":"update_contacts_list","visibility":"Public","body":"if @emergency_contacts.empty?\n self[:emergency_contacts] = nil\n return\nend\nif !(system.exists?(:Calendar))\n logger.warn do\n \"contacts requested however no directory service available\"\n end\n return\nend\ndirectory = system[:Calendar]\nself[:emergency_contacts] = @emergency_contacts.transform_values do |id|\n (directory.get_members(id)).get.as(JSON::Any)\nend\n"}}]},{"html_id":"drivers/Place/LogicExample","path":"Place/LogicExample.html","kind":"class","full_name":"Place::LogicExample","name":"LogicExample","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/logic_example.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"use for testing some basic functionality","summary":"

use for testing some basic functionality

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"display_count-instance-method","name":"display_count","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L28"},"def":{"name":"display_count","visibility":"Public","body":"system.count(:Display)"}},{"html_id":"not_implemented-instance-method","name":"not_implemented","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L32"},"def":{"name":"not_implemented","visibility":"Public","body":"raise(\"not implemented\")"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L10"},"def":{"name":"on_update","visibility":"Public","body":"logger.info do\n \"woot! an update #{setting?(String, :name)}\"\nend"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/logic_example.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L18"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(system.all(:Display)).power(state)"}},{"html_id":"power_state?-instance-method","name":"power_state?","abstract":false,"location":{"filename":"src/place/logic_example.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L14"},"def":{"name":"power_state?","visibility":"Public","body":"main_lcd[:power]"}},{"html_id":"webhook(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"webhook","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/place/logic_example.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/logic_example.cr#L22"},"def":{"name":"webhook","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"webhook executed\"\nend\npower(true)\n{HTTP::Status::OK.to_i, {} of String => String, \"\"}\n"}}]},{"html_id":"drivers/Place/Meet","path":"Place/Meet.html","kind":"class","full_name":"Place::Meet","name":"Meet","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LIGHT_MOD","name":"DEFAULT_LIGHT_MOD","value":"\"Lighting_1\""},{"id":"EXT_INIT","name":"EXT_INIT","value":"[:qsc_phone_dialing_init] of Symbol"},{"id":"EXT_POWER","name":"EXT_POWER","value":"[:qsc_phone_dialing_power] of Symbol"}],"included_modules":[{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_preset(preset:String,camera:String)-instance-method","name":"add_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":969,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L969"},"def":{"name":"add_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].save_position(preset, cam.index || 0)\n"}},{"html_id":"apply_camera_defaults-instance-method","name":"apply_camera_defaults","doc":"run on system power on","summary":"

run on system power on

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":942,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L942"},"def":{"name":"apply_camera_defaults","visibility":"Public","body":"(system.all(vc_camera_module)).power(true)"}},{"html_id":"apply_default_routes-instance-method","name":"apply_default_routes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L293"},"def":{"name":"apply_default_routes","visibility":"Public","body":"begin\n @default_routes.each do |output, input|\n route_signal(input, output)\n end\nrescue error\n logger.warn(exception: error) do\n \"error applying default routes\"\n end\nend"}},{"html_id":"audio_mute(state:Bool)-instance-method","name":"audio_mute","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L634"},"def":{"name":"audio_mute","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(state)\nstate ? \"audio is muted\" : \"audio is unmuted\"\n"}},{"html_id":"audio_muted?-instance-method","name":"audio_muted?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":640,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L640"},"def":{"name":"audio_muted?","visibility":"Public","body":"(status?(Bool, :mute)) || false"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L91"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"provides meeting room audio visual control such as controlling video source to be presented\\n\"\n str << \"check for available inputs and outputs before switching to present a source to a display.\\n\"\n str << \"output volume and microphone fader controls are floats between 0.0 to 100.0\\n\"\n str << \"query output volume to change it by a relative amount, if asked to increase or decrease volume, change it by 10.0\\n\"\n str << \"audio can be muted and you unroute video to blank displays.\\n\"\n str << \"you can also shutdown, startup, power off, power on, start or end the meeting using the set_power_state function available in this capability.\\n\"\n str << \"some rooms may have lighting control, make sure to check what levels are available before changing state\\n\"\n str << \"some rooms may have accessories such as blinds or projector screen controls. Check for available accessories when asked about something not explicitly controllable\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","doc":"core includes: 'current_routes' hash\nbut we override it here for LLM integration","summary":"

core includes: 'current_routes' hash but we override it here for LLM integration

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L137"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{set_power_state: \"power on or off the meeting room. Send true for power on (startup) or false for power off (shutdown)\", \"power?\": \"query the system power state?\", inputs_and_outputs: \"available inputs and outputs. Route using id keys\", route_input: \"route to present an input to an output / display. Don't guess, look up available input and output ids\", unroute: \"blank a display / output, sometimes called a video mute\", set_volume: \"change the room volume\", \"volume?\": \"query the current volume, useful to know when asked to change the volume relatively\", audio_mute: \"mute or unmute the room audio\", \"audio_muted?\": \"check if the room audio is muted\", lighting_scenes: \"returns the list of available lighting scenes\", \"lighting_scene?\": \"query the current lighting scene\", set_lighting_scene: \"set a new lighting scene. Remember to list available lighting scenes before calling\"}"}},{"html_id":"init_vidconf-instance-method","name":"init_vidconf","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":936,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L936"},"def":{"name":"init_vidconf","visibility":"Public","body":"@vc_camera_in = setting?(String | Array(String), :vc_camera_in)\n@vc_camera_module = setting?(String, :vc_camera_module)\n"}},{"html_id":"inputs_and_outputs-instance-method","name":"inputs_and_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L300"},"def":{"name":"inputs_and_outputs","visibility":"Public","body":"inps = all_inputs\nouts = all_outputs\nresults = [] of NamedTuple(type: Symbol, name: String, id: String)\ninps.each do |input|\n name = status?(NamedTuple(name: String), \"input/#{input}\")\n if name\n results << {type: :input, name: name[:name], id: input}\n end\nend\nouts.each do |output|\n name = status?(NamedTuple(name: String), \"output/#{output}\")\n if name\n results << {type: :output, name: name[:name], id: output}\n end\nend\nresults\n"}},{"html_id":"join_mode(mode_id:String,master:Bool=true)-instance-method","name":"join_mode","abstract":false,"args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"args_string":"(mode_id : String, master : Bool = true)","args_html":"(mode_id : String, master : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":1064,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1064"},"def":{"name":"join_mode","args":[{"name":"mode_id","external_name":"mode_id","restriction":"String"},{"name":"master","default_value":"true","external_name":"master","restriction":"Bool"}],"visibility":"Public","body":"mode = @join_modes[mode_id]\nif @join_selected\n old_mode = @join_modes[@join_selected]?\nend\njoin_settings = @join_settings.not_nil!\nthis_room = config.control_system.not_nil!.id\nbegin\n @join_lock.synchronize do\n if master\n notify_rooms = join_settings.type.fully_aware? ? join_settings.all_rooms : mode.room_ids\n if mode.linked?\n if notify_rooms.includes?(this_room)\n else\n raise(\"unable to perform join from this system\")\n end\n end\n @join_selected = mode.id\n @join_master = true\n if (old_mode && old_mode.linked?) && join_settings.type.independent?\n unlink(old_mode.room_ids - mode.room_ids)\n end\n if !mode.linked?\n return unlink(notify_rooms)\n end\n reset_remote_cache\n self[:join_confirmed] = @join_confirmed = false\n notify_rooms.each do |room_id|\n if room_id == this_room\n next\n end\n (((system(room_id)).get(\"System\", 1)).join_mode(mode_id, master: false)).get\n end\n persist_join_state\n self[:join_master] = master\n self[:joined] = @join_selected\n self[:join_confirmed] = @join_confirmed = true\n else\n @join_selected = mode.id\n @join_master = false\n reset_remote_cache\n persist_join_state\n self[:join_master] = master\n self[:joined] = mode.id\n self[:join_confirmed] = @join_confirmed = true\n end\n end\nensure\n update_available_ui\n if mode.linked? && !power?\n power(true)\n end\n mode.join_actions.each do |action|\n if master || !action.master_only?\n system[action.module_id].__send__(action.function_name, action.arguments, action.named_args)\n end\n end\n if !@light_scenes.empty? && master\n select_lighting_scene(@light_scenes.keys.first)\n end\nend\n"}},{"html_id":"lighting_independent:Bool-instance-method","name":"lighting_independent","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":691,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L691"},"def":{"name":"lighting_independent","return_type":"Bool","visibility":"Public","body":"@lighting_independent"}},{"html_id":"lighting_scene?-instance-method","name":"lighting_scene?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":775,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L775"},"def":{"name":"lighting_scene?","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String, id: Int32)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\ncurrent = status?(Int32, :lighting_scene)\nscene = scenes.find do |available|\n available[:id] == current\nend\nscene ? \"current lighting scene: #{scene[:name]}\" : \"lights in unknown state\"\n"}},{"html_id":"lighting_scenes-instance-method","name":"lighting_scenes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":768,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L768"},"def":{"name":"lighting_scenes","visibility":"Public","body":"scenes = status?(Array(NamedTuple(name: String)), :lighting_scenes)\nif scenes\nelse\n raise(\"no lighting control available\")\nend\nscenes.map do |scene|\n scene[:name].downcase\nend\n"}},{"html_id":"linked_outputs:Hash(String,Hash(String,String))-instance-method","name":"linked_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L122"},"def":{"name":"linked_outputs","visibility":"Public","body":"@linked_outputs"}},{"html_id":"local_accessories:Array(Accessory)-instance-method","name":"local_accessories","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":812,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L812"},"def":{"name":"local_accessories","return_type":"Array(Accessory)","visibility":"Public","body":"@local_accessories"}},{"html_id":"local_help:Help-instance-method","name":"local_help","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L118"},"def":{"name":"local_help","return_type":"Help","visibility":"Public","body":"@local_help"}},{"html_id":"local_lighting_area:LightingArea|Nil-instance-method","name":"local_lighting_area","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":690,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L690"},"def":{"name":"local_lighting_area","return_type":"LightingArea | ::Nil","visibility":"Public","body":"@local_lighting_area"}},{"html_id":"local_mics:Array(Microphone)-instance-method","name":"local_mics","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":833,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L833"},"def":{"name":"local_mics","return_type":"Array(Microphone)","visibility":"Public","body":"@local_mics"}},{"html_id":"local_outputs:Array(String)-instance-method","name":"local_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L123"},"def":{"name":"local_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_outputs"}},{"html_id":"local_preview_outputs:Array(String)-instance-method","name":"local_preview_outputs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L126"},"def":{"name":"local_preview_outputs","return_type":"Array(String)","visibility":"Public","body":"@local_preview_outputs"}},{"html_id":"local_tabs:Array(Tab)-instance-method","name":"local_tabs","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L119"},"def":{"name":"local_tabs","return_type":"Array(Tab)","visibility":"Public","body":"@local_tabs"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Sets the mute state on a signal node within the system.","summary":"

Sets the mute state on a signal node within the system.

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/place/meet.cr","line_number":667,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L667"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"input_or_output = index\naudio = @master_audio\nif audio\n logger.debug do\n \"setting master mute to #{state}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nmixer = system[audio.module_id]\nset_master_mute(mixer, audio, state)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"power(state:Bool,unlink:Bool=false)-instance-method","name":"power","doc":"Sets the overall room power state.","summary":"

Sets the overall room power state.

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"args_string":"(state : Bool, unlink : Bool = false)","args_html":"(state : Bool, unlink : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L210"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"unlink","default_value":"false","external_name":"unlink","restriction":"Bool"}],"visibility":"Public","body":"if state == (status?(Bool, :active))\n return\nend\nlogger.debug do\n \"Powering #{state ? \"up\" : \"down\"}\"\nend\nself[:active] = state\nunlink = @unjoin_on_shutdown.nil? ? unlink : !!@unjoin_on_shutdown\nremotes_before = remote_rooms\nsys = system\nif state\n apply_master_audio_default\n apply_camera_defaults\n apply_default_routes\n apply_mic_defaults\n if first_output = @tabs.first?.try do |__arg0|\n __arg0.inputs.first\n end\n selected_input(first_output)\n end\nelse\n if unlink\n unlink_systems\n end\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n if devices = @shutdown_devices\n devices.each do |device|\n sys[device].power(false)\n end\n else\n (sys.implementing(Interface::Powerable)).power(false)\n end\n if sys.exists?(@local_vidconf)\n sys[@local_vidconf].hangup\n end\nend\nremotes_before.each do |room|\n room.power(state, unlink)\nend\n{% for func in EXT_POWER %}\n begin\n {{ func.id }}(state, unlink)\n rescue error\n logger.warn(exception: error) { \"error in power state function: #{ {{ func.id.stringify }} }\" }\n end\n {% end %}\nstate\n"}},{"html_id":"power?:Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L257"},"def":{"name":"power?","return_type":"Bool","visibility":"Public","body":"(status?(Bool, :active)) || false"}},{"html_id":"remove_preset(preset:String,camera:String)-instance-method","name":"remove_preset","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(preset : String, camera : String)","args_html":"(preset : String, camera : String)","location":{"filename":"src/place/meet.cr","line_number":974,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L974"},"def":{"name":"remove_preset","args":[{"name":"preset","external_name":"preset","restriction":"String"},{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"cam = camera_details(camera)\nsystem[cam.mod].remove_position(preset, cam.index || 0)\n"}},{"html_id":"route(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true,called_from_join:Bool=false)-instance-method","name":"route","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true, called_from_join : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L343"},"def":{"name":"route","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"},{"name":"called_from_join","default_value":"false","external_name":"called_from_join","restriction":"Bool"}],"visibility":"Public","body":"route_signal(input, output, max_dist, simulate, follow_additional_routes)\nif links = @linked_outputs[output]?\n links.each do |_sys_id, remote_out|\n route_signal(input, remote_out, max_dist, simulate, follow_additional_routes)\n end\nend\nif !called_from_join\n remote_systems.each do |remote_system|\n room = remote_system.room_logic\n sys_id = remote_system.system_id\n if links = @linked_outputs[output]?\n if remote_out = links[sys_id]?\n room.route(input, remote_out, max_dist, simulate, follow_additional_routes, true)\n end\n end\n end\nend\n"}},{"html_id":"route_input(input_id:String,output_id:String)-instance-method","name":"route_input","abstract":false,"args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"args_string":"(input_id : String, output_id : String)","args_html":"(input_id : String, output_id : String)","location":{"filename":"src/place/meet.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L321"},"def":{"name":"route_input","args":[{"name":"input_id","external_name":"input_id","restriction":"String"},{"name":"output_id","external_name":"output_id","restriction":"String"}],"visibility":"Public","body":"keys = all_inputs\nhash = keys.each_with_object({} of String => String) do |input, memo|\n memo[input.downcase] = input\nend\ninput_actual = hash[input_id.downcase]?\nif input_actual\nelse\n raise(\"invalid input #{input_id}, must be one of #{keys.join(\", \")}\")\nend\nkeys = all_outputs\nhash = keys.each_with_object({} of String => String) do |output, memo|\n memo[output.downcase] = output\nend\noutput_actual = hash[output_id.downcase]?\nif output_actual\nelse\n raise(\"invalid output #{output_id}, must be one of: #{keys.join(\", \")}\")\nend\npower(true)\nselected_input(input_actual)\nroute(input_actual, output_actual)\n"}},{"html_id":"select_lighting_scene(scene:String,push_to_remotes:Bool=true)-instance-method","name":"select_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"args_string":"(scene : String, push_to_remotes : Bool = true)","args_html":"(scene : String, push_to_remotes : Bool = true)","location":{"filename":"src/place/meet.cr","line_number":755,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L755"},"def":{"name":"select_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"},{"name":"push_to_remotes","default_value":"true","external_name":"push_to_remotes","restriction":"Bool"}],"visibility":"Public","body":"scene_id = @light_scenes[scene.downcase]?\nif scene_id\nelse\n raise(ArgumentError.new(\"invalid scene '#{scene}', valid scenes are: #{@light_scenes.keys.join(\", \")}\"))\nend\nsystem[@light_module].set_lighting_scene(scene_id, @light_area)\nif push_to_remotes && lighting_independent\n remote_rooms.each do |room|\n room.select_lighting_scene(scene, false)\n end\nend\n"}},{"html_id":"selected_camera(camera:String)-instance-method","name":"selected_camera","doc":"This is the camera input that is currently selected so we can switch between\ndifferent cameras","summary":"

This is the camera input that is currently selected so we can switch between different cameras

","abstract":false,"args":[{"name":"camera","external_name":"camera","restriction":"String"}],"args_string":"(camera : String)","args_html":"(camera : String)","location":{"filename":"src/place/meet.cr","line_number":948,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L948"},"def":{"name":"selected_camera","args":[{"name":"camera","external_name":"camera","restriction":"String"}],"visibility":"Public","body":"self[:selected_camera] = camera\ncam = camera_details(camera)\nsystem[cam.mod].power(true)\ncase camera_in = @vc_camera_in\nin String\n route_signal(camera, camera_in)\nin Array(String)\n camera_in.each do |cin|\n route_signal(camera, cin)\n end\nin Nil\nend\nif camera_vc_in = cam.vc_camera_input\n system[@local_vidconf].camera_select(camera_vc_in)\nend\n"}},{"html_id":"selected_input(name:String,simulate:Bool=false):Nil-instance-method","name":"selected_input","doc":"This is the currently selected input\nif the user selects an output then this will be routed to it","summary":"

This is the currently selected input if the user selects an output then this will be routed to it

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"args_string":"(name : String, simulate : Bool = false) : Nil","args_html":"(name : String, simulate : Bool = false) : Nil","location":{"filename":"src/place/meet.cr","line_number":374,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L374"},"def":{"name":"selected_input","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"selected_tab = @tabs.find() do |__arg2|\n __arg2.inputs.includes?(name)\nend.try(&.name)\nif selected_tab || !simulate\n self[:selected_input] = name\n self[:selected_tab] = selected_tab || @tabs.first\n sys = system\n if sys.exists?(name)\n mod = sys[name]\n if mod.implements?(Interface::Powerable)\n mod.power(true)\n end\n end\nend\nif !simulate\n if @preview_outputs.empty?\n if @outputs.size == 1\n route_signal(name, @outputs.first)\n end\n else\n @preview_outputs.each do |output|\n route_signal(name, output)\n end\n end\n remote_rooms.each do |room|\n room.selected_input(name, true)\n end\nend\n"}},{"html_id":"set_lighting_scene(scene:String)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"String"}],"args_string":"(scene : String)","args_html":"(scene : String)","location":{"filename":"src/place/meet.cr","line_number":784,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L784"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"String"}],"visibility":"Public","body":"scenes = lighting_scenes\nif scenes.includes?(scene.downcase)\nelse\n raise(\"invalid scene #{scene}, must be one of: #{scenes.join(\", \")}\")\nend\nselect_lighting_scene(scene)\n\"current lighting scene: #{scene}\"\n"}},{"html_id":"set_microphone(level:Float64,mute:Bool=false)-instance-method","name":"set_microphone","doc":"level is a percentage 0.0->100.0","summary":"

level is a percentage 0.0->100.0

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(level : Float64, mute : Bool = false)","args_html":"(level : Float64, mute : Bool = false)","location":{"filename":"src/place/meet.cr","line_number":903,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L903"},"def":{"name":"set_microphone","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"visibility":"Public","body":"@local_mics.each do |mic|\n mixer = system[mic.module_id]\n if level_index = mic.level_index\n mixer.fader(mic.level_id, level, level_index)\n else\n mixer.fader(mic.level_id, level)\n end\n if mute_index = mic.mute_index\n mixer.mute(mic.level_id, mute, mute_index)\n else\n mixer.mute(mic.level_id, mute)\n end\nend"}},{"html_id":"set_power_state(state:Bool)-instance-method","name":"set_power_state","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/place/meet.cr","line_number":205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L205"},"def":{"name":"set_power_state","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power(state)"}},{"html_id":"set_volume(level:Int32|Float64)-instance-method","name":"set_volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/place/meet.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L616"},"def":{"name":"set_volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"power(true)\nif level.zero?\n audio_mute(true)\n \"audio was muted\"\nelse\n audio_mute(false)\n volume(level, \"\")\n \"volume set to #{level.to_f.clamp(0.0, 100.0)}\"\nend\n"}},{"html_id":"unlink_internal_use-instance-method","name":"unlink_internal_use","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1149"},"def":{"name":"unlink_internal_use","visibility":"Public","body":"begin\n @join_lock.synchronize do\n if @join_modes[@join_selected]?.try() do |__arg11|\n __arg11.room_ids.empty?\n end\n else\n @join_selected = nil\n end\n @join_master = true\n self[:join_confirmed] = @join_confirmed = false\n self[:join_master] = true\n self[:joined] = @join_selected\n reset_remote_cache\n persist_join_state\n update_available_ui\n self[:join_confirmed] = @join_confirmed = true\n end\n if @mute_on_unlink && (status?(Bool, :active))\n @local_outputs.each do |output|\n unroute(output)\n end\n @local_preview_outputs.each do |output|\n unroute(output)\n end\n end\nrescue error\n logger.error(exception: error) do\n \"ui state failed to be applied unjoining room\"\n end\nend"}},{"html_id":"unlink_systems-instance-method","name":"unlink_systems","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1135"},"def":{"name":"unlink_systems","visibility":"Public","body":"begin\n if unlink_mode = @join_modes.find do |_id, mode|\n !mode.linked?\n end\n join_mode(unlink_mode[0])\n else\n currrent_selected = @join_selected\n if currrent_selected && (current_mode = @join_modes[currrent_selected]?)\n unlink(current_mode.room_ids)\n end\n unlink_internal_use\n end\nrescue error\n logger.warn(exception: error) do\n \"unlink failed\"\n end\nend"}},{"html_id":"unroute(output:String)-instance-method","name":"unroute","doc":"we want to unroute any signal going to the display\nor if it's a direct connection, we want to mute the display.","summary":"

we want to unroute any signal going to the display or if it's a direct connection, we want to mute the display.

","abstract":false,"args":[{"name":"output","external_name":"output","restriction":"String"}],"args_string":"(output : String)","args_html":"(output : String)","location":{"filename":"src/place/meet.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L366"},"def":{"name":"unroute","args":[{"name":"output","external_name":"output","restriction":"String"}],"visibility":"Public","body":"begin\n route(\"MUTE\", output)\nrescue error\n logger.debug(exception: error) do\n \"failed to unroute #{output}\"\n end\nend"}},{"html_id":"volume(level:Int32|Float64,input_or_output:String)-instance-method","name":"volume","doc":"Set the volume of a signal node within the system.","summary":"

Set the volume of a signal node within the system.

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"args_string":"(level : Int32 | Float64, input_or_output : String)","args_html":"(level : Int32 | Float64, input_or_output : String)","location":{"filename":"src/place/meet.cr","line_number":645,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L645"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"},{"name":"input_or_output","external_name":"input_or_output","restriction":"String"}],"visibility":"Public","body":"audio = @master_audio\nif audio\n logger.debug do\n \"setting master volume to #{level}\"\n end\nelse\n logger.debug do\n \"no master output configured\"\n end\n return\nend\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = audio.min_level..audio.max_level\nlevel_actual = percentage * (range.end - range.begin)\nlevel_actual = (level_actual + range.begin.to_f).round(1)\nmixer = system[audio.module_id]\nset_master_volume(mixer, audio, level_actual)\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":629,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L629"},"def":{"name":"volume?","visibility":"Public","body":"(status?(Float64, :volume)) || 0.0"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory","path":"Place/Meet/Accessory.html","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":795,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L795"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":796,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L796"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"controls:Array(Control)-instance-method","name":"controls","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":809,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L809"},"def":{"name":"controls","return_type":"Array(Control)","visibility":"Public","body":"@controls"}},{"html_id":"module:String-instance-method","name":"module","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":808,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L808"},"def":{"name":"module","return_type":"String","visibility":"Public","body":"@module"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":807,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L807"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}],"types":[{"html_id":"drivers/Place/Meet/Accessory/Control","path":"Place/Meet/Accessory/Control.html","kind":"struct","full_name":"Place::Meet::Accessory::Control","name":"Control","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":798,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L798"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet/Accessory","kind":"struct","full_name":"Place::Meet::Accessory","name":"Accessory"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":799,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L799"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":804,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L804"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"@arguments"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":803,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L803"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":802,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L802"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":801,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L801"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Place/Meet/AudioFader","path":"Place/Meet/AudioFader.html","kind":"class","full_name":"Place::Meet::AudioFader","name":"AudioFader","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":487,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L487"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L488"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L490"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"default_level:Float64|Nil-instance-method","name":"default_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":498,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L498"},"def":{"name":"default_level","return_type":"Float64 | ::Nil","visibility":"Public","body":"@default_level"}},{"html_id":"default_muted:Bool|Nil-instance-method","name":"default_muted","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L497"},"def":{"name":"default_muted","return_type":"Bool | ::Nil","visibility":"Public","body":"@default_muted"}},{"html_id":"implements_volume?-instance-method","name":"implements_volume?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":522,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L522"},"def":{"name":"implements_volume?","visibility":"Public","body":"level_id == \"\\e\""}},{"html_id":"level_feedback:String-instance-method","name":"level_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L506"},"def":{"name":"level_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @level_feedback).nil?\n @level_feedback = (begin\n id = level_id\n \"fader#{id.is_a?(Array) ? id.first : id}\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"level_feedback=(level_feedback:String)-instance-method","name":"level_feedback=","abstract":false,"args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"args_string":"(level_feedback : String)","args_html":"(level_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":506,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L506"},"def":{"name":"level_feedback=","args":[{"name":"level_feedback","external_name":"level_feedback","restriction":"String"}],"visibility":"Public","body":"@level_feedback = level_feedback"}},{"html_id":"level_feedback?:String?-instance-method","name":"level_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L516"},"def":{"name":"level_feedback?","visibility":"Public","body":"@level_feedback"}},{"html_id":"level_id:String|Array(String)|Nil-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L494"},"def":{"name":"level_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"@level_id"}},{"html_id":"level_id=(level_id:String|Array(String)|Nil)-instance-method","name":"level_id=","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"args_string":"(level_id : String | Array(String) | Nil)","args_html":"(level_id : String | Array(String) | Nil)","location":{"filename":"src/place/meet.cr","line_number":494,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L494"},"def":{"name":"level_id=","args":[{"name":"level_id","external_name":"level_id","restriction":"String | Array(String) | ::Nil"}],"visibility":"Public","body":"@level_id = level_id"}},{"html_id":"level_index:Int32|Nil-instance-method","name":"level_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":500,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L500"},"def":{"name":"level_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@level_index"}},{"html_id":"max_level:Float64-instance-method","name":"max_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":504,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L504"},"def":{"name":"max_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @max_level).nil?\n @max_level = (100.0)\nelse\n __temp_1\nend"}},{"html_id":"min_level:Float64-instance-method","name":"min_level","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":503,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L503"},"def":{"name":"min_level","return_type":"Float64","visibility":"Public","body":"if (__temp_1 = @min_level).nil?\n @min_level = (0.0)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L514"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @module_id).nil?\n @module_id = (\"Mixer_1\")\nelse\n __temp_1\nend"}},{"html_id":"module_id=(module_id:String)-instance-method","name":"module_id=","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String)","args_html":"(module_id : String)","location":{"filename":"src/place/meet.cr","line_number":514,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L514"},"def":{"name":"module_id=","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"visibility":"Public","body":"@module_id = module_id"}},{"html_id":"mute_feedback:String-instance-method","name":"mute_feedback","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L510"},"def":{"name":"mute_feedback","return_type":"String","visibility":"Public","body":"if (__temp_1 = @mute_feedback).nil?\n @mute_feedback = (begin\n id = mute_id || level_id\n \"fader#{id.is_a?(Array) ? id.first : id}_mute\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"mute_feedback=(mute_feedback:String)-instance-method","name":"mute_feedback=","abstract":false,"args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"args_string":"(mute_feedback : String)","args_html":"(mute_feedback : String)","location":{"filename":"src/place/meet.cr","line_number":510,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L510"},"def":{"name":"mute_feedback=","args":[{"name":"mute_feedback","external_name":"mute_feedback","restriction":"String"}],"visibility":"Public","body":"@mute_feedback = mute_feedback"}},{"html_id":"mute_feedback?:String?-instance-method","name":"mute_feedback?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":516,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L516"},"def":{"name":"mute_feedback?","visibility":"Public","body":"@mute_feedback"}},{"html_id":"mute_id:String|Array(String)|Nil-instance-method","name":"mute_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":495,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L495"},"def":{"name":"mute_id","return_type":"String | Array(String) | ::Nil","visibility":"Public","body":"if (__temp_1 = @mute_id).nil?\n @mute_id = (level_id)\nelse\n __temp_1\nend"}},{"html_id":"mute_index:Int32|Nil-instance-method","name":"mute_index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":501,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L501"},"def":{"name":"mute_index","return_type":"Int32 | ::Nil","visibility":"Public","body":"@mute_index"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":493,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L493"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"use_defaults?-instance-method","name":"use_defaults?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":518,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L518"},"def":{"name":"use_defaults?","visibility":"Public","body":"(@module_id.nil? && (level_id.nil? || level_id.try(&.empty?))) && (mute_id.nil? || mute_id.try(&.empty?))"}}]},{"html_id":"drivers/Place/Meet/CamDetails","path":"Place/Meet/CamDetails.html","kind":"class","full_name":"Place::Meet::CamDetails","name":"CamDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":925,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L925"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":926,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L926"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"index:String|Int32|Nil-instance-method","name":"index","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":929,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L929"},"def":{"name":"index","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@index"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":928,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L928"},"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"vc_camera_input:String|Int32|Nil-instance-method","name":"vc_camera_input","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":930,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L930"},"def":{"name":"vc_camera_input","return_type":"String | Int32 | ::Nil","visibility":"Public","body":"@vc_camera_input"}}]},{"html_id":"drivers/Place/Meet/JoinAction","path":"Place/Meet/JoinAction.html","kind":"class","full_name":"Place::Meet::JoinAction","name":"JoinAction","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":994,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L994"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":995,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L995"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"arguments:Array(JSON::Any)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":999,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L999"},"def":{"name":"arguments","return_type":"Array(JSON::Any)","visibility":"Public","body":"if (__temp_1 = @arguments).nil?\n @arguments = ([] of JSON::Any)\nelse\n __temp_1\nend"}},{"html_id":"function_name:String-instance-method","name":"function_name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":998,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L998"},"def":{"name":"function_name","return_type":"String","visibility":"Public","body":"@function_name"}},{"html_id":"master_only?:Bool-instance-method","name":"master_only?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1001,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1001"},"def":{"name":"master_only?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @master_only).nil?\n @master_only = (true)\nelse\n __temp_1\nend"}},{"html_id":"module_id:String-instance-method","name":"module_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":997,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L997"},"def":{"name":"module_id","return_type":"String","visibility":"Public","body":"@module_id"}},{"html_id":"named_args:Hash(String,JSON::Any)-instance-method","name":"named_args","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1000,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1000"},"def":{"name":"named_args","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @named_args).nil?\n @named_args = ({} of String => JSON::Any)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinDetail","path":"Place/Meet/JoinDetail.html","kind":"class","full_name":"Place::Meet::JoinDetail","name":"JoinDetail","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1004,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1004"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1005,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1005"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1007,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1007"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"join_actions:Array(JoinAction)-instance-method","name":"join_actions","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1010,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1010"},"def":{"name":"join_actions","return_type":"Array(JoinAction)","visibility":"Public","body":"if (__temp_1 = @join_actions).nil?\n @join_actions = ([] of JoinAction)\nelse\n __temp_1\nend"}},{"html_id":"linked?:Bool-instance-method","name":"linked?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1017,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1017"},"def":{"name":"linked?","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @linked).nil?\n @linked = (!room_ids.empty?)\nelse\n __temp_1\nend"}},{"html_id":"merge_outputs?:Bool-instance-method","name":"merge_outputs?","doc":"Do we want to merge the outputs (all outputs on all screens)\nor do we want them as seperate displays","summary":"

Do we want to merge the outputs (all outputs on all screens) or do we want them as seperate displays

","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1014,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1014"},"def":{"name":"merge_outputs?","return_type":"Bool","visibility":"Public","body":"@merge_outputs"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1008,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1008"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"room_ids:Array(String)-instance-method","name":"room_ids","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1009,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1009"},"def":{"name":"room_ids","return_type":"Array(String)","visibility":"Public","body":"@room_ids"}}]},{"html_id":"drivers/Place/Meet/JoinSetting","path":"Place/Meet/JoinSetting.html","kind":"class","full_name":"Place::Meet::JoinSetting","name":"JoinSetting","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1020,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1020"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet.cr","line_number":1021,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1021"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_rooms:Set(String)-instance-method","name":"all_rooms","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1028,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1028"},"def":{"name":"all_rooms","return_type":"Set(String)","visibility":"Public","body":"if (__temp_1 = @all_rooms).nil?\n @all_rooms = (modes.reduce(Set(String).new) do |rooms, mode|\n rooms.concat(mode.room_ids)\n end)\nelse\n __temp_1\nend"}},{"html_id":"lock_remote:Bool-instance-method","name":"lock_remote","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1024,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1024"},"def":{"name":"lock_remote","return_type":"Bool","visibility":"Public","body":"if (__temp_1 = @lock_remote).nil?\n @lock_remote = (false)\nelse\n __temp_1\nend"}},{"html_id":"modes:Array(JoinDetail)-instance-method","name":"modes","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1025,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1025"},"def":{"name":"modes","return_type":"Array(JoinDetail)","visibility":"Public","body":"@modes"}},{"html_id":"type:JoinType-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1023,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1023"},"def":{"name":"type","return_type":"JoinType","visibility":"Public","body":"if (__temp_1 = @type).nil?\n @type = (JoinType::Independent)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Meet/JoinType","path":"Place/Meet/JoinType.html","kind":"enum","full_name":"Place::Meet::JoinType","name":"JoinType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":986,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L986"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Independent","name":"Independent","value":"0","doc":"only rooms part of the join need to be notified","summary":"

only rooms part of the join need to be notified

"},{"id":"FullyAware","name":"FullyAware","value":"1","doc":"even rooms not part of the join, need to be notified","summary":"

even rooms not part of the join, need to be notified

"}],"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"doc":"=========================\nRoom Joining Coordination\n=========================","summary":"

========================= Room Joining Coordination =========================

","instance_methods":[{"html_id":"fully_aware?-instance-method","name":"fully_aware?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":991,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L991"},"def":{"name":"fully_aware?","visibility":"Public","body":"self == FullyAware"}},{"html_id":"independent?-instance-method","name":"independent?","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":988,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L988"},"def":{"name":"independent?","visibility":"Public","body":"self == Independent"}}]},{"html_id":"drivers/Place/Meet/LightingArea","path":"Place/Meet/LightingArea.html","kind":"alias","full_name":"Place::Meet::LightingArea","name":"LightingArea","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":685,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L685"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/LightingScene","path":"Place/Meet/LightingScene.html","kind":"alias","full_name":"Place::Meet::LightingScene","name":"LightingScene","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":686,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L686"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(name: String, id: UInt32, icon: String, opacity: Float64)","aliased_html":"{name: String, id: UInt32, icon: String, opacity: Float64}","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/Microphone","path":"Place/Meet/Microphone.html","kind":"alias","full_name":"Place::Meet::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/place/meet.cr","line_number":831,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L831"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Meet::AudioFader","aliased_html":"Place::Meet::AudioFader","const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}},{"html_id":"drivers/Place/Meet/RemoteSystem","path":"Place/Meet/RemoteSystem.html","kind":"struct","full_name":"Place::Meet::RemoteSystem","name":"RemoteSystem","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet.cr","line_number":1204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1204"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"},"constructors":[{"html_id":"new(system_id:String,room_logic:PlaceOS::Driver::Proxy::Driver)-class-method","name":"new","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"args_string":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","args_html":"(system_id : String, room_logic : PlaceOS::Driver::Proxy::Driver)","location":{"filename":"src/place/meet.cr","line_number":1208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1208"},"def":{"name":"new","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"room_logic","external_name":"room_logic","restriction":"PlaceOS::Driver::Proxy::Driver"}],"visibility":"Public","body":"_ = allocate\n_.initialize(system_id, room_logic)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"room_logic:PlaceOS::Driver::Proxy::Driver-instance-method","name":"room_logic","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1206"},"def":{"name":"room_logic","return_type":"PlaceOS::Driver::Proxy::Driver","visibility":"Public","body":"@room_logic"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/meet.cr","line_number":1205,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet.cr#L1205"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]}]},{"html_id":"drivers/Place/MQTT","path":"Place/MQTT.html","kind":"class","full_name":"Place::MQTT","name":"MQTT","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L86"},"def":{"name":"connected","visibility":"Public","body":"transp = Place::TransportAdaptor.new(transport, queue)\nclient = ::MQTT::V3::Client.new(transp)\n@transport = transp\n@mqtt = client\nlogger.debug do\n \"sending connect message\"\nend\nclient.connect(@username, @password, @keep_alive, @client_id)\n@subs.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L100"},"def":{"name":"disconnected","visibility":"Public","body":"@transport = nil\n@mqtt = nil\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L40"},"def":{"name":"on_load","visibility":"Public","body":"spawn do\n rate_limiter\nend\n@sub_proc = Proc(String, Bytes, Nil).new do |key, payload|\n on_message(key, payload)\nend\non_update\n"}},{"html_id":"on_unload-instance-method","name":"on_unload","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L46"},"def":{"name":"on_unload","visibility":"Public","body":"@channel.close"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L50"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@keep_alive = (setting?(Int32, :keep_alive)) || 60\n@client_id = (setting?(String, :client_id)) || (::MQTT.generate_client_id(\"placeos_\"))\n@queue_size = (setting?(Int32, :queue_size)) || 1000\nif rate_limit = setting?(Int32, :rate_limit)\n @rate_limited = true\n @wait_time = (1.0 / rate_limit.to_f).seconds\nelse\n @rate_limited = false\nend\nexisting = @subs\n@subs = (setting?(Array(String), :subscriptions)) || ([] of String)\nschedule.clear\nschedule.every((@keep_alive // 3).seconds) do\n ping\nend\nif client = @mqtt\n unsub = existing - @subs\n newsub = @subs - existing\n unsub.each do |sub|\n logger.debug do\n \"unsubscribing to #{sub}\"\n end\n perform_operation do\n client.unsubscribe(sub)\n end\n end\n newsub.each do |sub|\n logger.debug do\n \"subscribing to #{sub}\"\n end\n perform_operation do\n client.subscribe(sub, &@sub_proc)\n end\n end\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/mqtt.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L115"},"def":{"name":"ping","visibility":"Public","body":"logger.debug do\n \"sending ping\"\nend\nperform_operation do\n @mqtt.not_nil!.ping\nend\n"}},{"html_id":"publish(key:String,payload:String):Nil-instance-method","name":"publish","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"args_string":"(key : String, payload : String) : Nil","args_html":"(key : String, payload : String) : Nil","location":{"filename":"src/place/mqtt.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L109"},"def":{"name":"publish","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"publishing payload to #{key}\"\nend\nperform_operation do\n @mqtt.not_nil!.publish(key, payload)\nend\nnil\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/place/mqtt.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt.cr#L120"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received #{data.size} bytes: 0x#{data.hexstring}\"\nend\n@transport.try(&.process(data))\ntask.try(&.success)\n"}}]},{"html_id":"drivers/Place/Parking","path":"Place/Parking.html","kind":"module","full_name":"Place::Parking","name":"Parking","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Parking/Locations","path":"Place/Parking/Locations.html","kind":"class","full_name":"Place::Parking::Locations","name":"Locations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BOOKING_TYPE","name":"BOOKING_TYPE","value":"\"parking\""},{"id":"METADATA_KEY","name":"METADATA_KEY","value":"\"parking-spaces\""},{"id":"RESERVED_RELEASED","name":"RESERVED_RELEASED","value":"\"parking-released\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/Place/Parking","kind":"module","full_name":"Place::Parking","name":"Parking"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/place/parking/locations.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L125"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"searching for owner of #{mac_address}\"\nend\nif user_details = @known_users[mac_address]?\n email, _name = user_details\n {location: \"booking\", assigned_to: email, mac_address: mac_address}\nend\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L137"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching devices in zone #{zone_id}\"\nend\nif location && (location != \"booking\")\n return [] of Nil\nend\nbookings = [] of Booking\n@bookings.each_value(&.each do |booking|\n if zone_id.in?(booking.zones)\n else\n next\n end\n bookings << booking\nend)\nmap_bookings(bookings)\n"}},{"html_id":"level_buildings:Hash(String,String)-instance-method","name":"level_buildings","doc":"level_zone_id => building_zone_id","summary":"

level_zone_id => building_zone_id

","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L59"},"def":{"name":"level_buildings","return_type":"Hash(String, String)","visibility":"Public","body":"if (__temp_1 = @level_buildings).nil?\n @level_buildings = (begin\n hash = area_manager.level_buildings.get.as_h.transform_values(&.as_s)\n if hash.size > 0\n else\n raise(\"level cache not loaded yet\")\n end\n hash\n end)\nelse\n __temp_1\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/place/parking/locations.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L110"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for #{email}, #{username}\"\nend\nbookings = @bookings[email]? || ([] of Booking)\nmap_bookings(bookings)\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/place/parking/locations.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L116"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"listing MAC addresses assigned to #{email}, #{username}\"\nend\nfound = [] of String\n@known_users.each do |user_id, __temp_993|\n user_email, _name = __temp_993\n if email == user_email\n found << user_id\n end\nend\nfound\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/booking/changed\") do |_subscription, payload|\n logger.debug do\n \"received booking changed event #{payload}\"\n end\n booking = Booking.from_json(payload)\n booking.user_email = booking.user_email.downcase\n booking_changed(booking)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 60).seconds\n@expose_for_analytics = (setting?(Hash(String, String), :expose_for_analytics)) || ({} of String => String)\ntimezone = (config.control_system.not_nil!.timezone.presence || (setting?(String, :time_zone)).presence) || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\nschedule.clear\nschedule.every(@poll_rate) do\n query_parking_bookings\nend\nschedule.in(5.seconds) do\n query_parking_bookings\nend\n"}},{"html_id":"parking_spaces:Hash(String,Array(ParkingSpace))-instance-method","name":"parking_spaces","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L237"},"def":{"name":"parking_spaces","return_type":"Hash(String, Array(ParkingSpace))","visibility":"Public","body":"metadatas = level_buildings.values.uniq.map do |zone_id|\n ChildMetadata.from_json((staff_api.metadata_children(zone_id, METADATA_KEY)).get.to_json)\nend\nzone_parking = Hash(String, Array(ParkingSpace)).new\nmetadatas.each do |metadata|\n metadata.each do |level|\n zone = level[:zone]\n if spaces = level[:metadata][METADATA_KEY]?.try(&.details)\n zone_parking[zone.id] = spaces\n end\n end\nend\nzone_parking\n"}},{"html_id":"query_parking_bookings:Nil-instance-method","name":"query_parking_bookings","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L259"},"def":{"name":"query_parking_bookings","return_type":"Nil","visibility":"Public","body":"reserved_spaces = parking_spaces.tap(&.each_value(&.select!(&.reserved?)))\nlogger.debug do\n count = 0\n reserved_spaces.each_value do |space|\n count = count + space.size\n end\n \"queried reserved spaces, found #{count}\"\nend\nparking_zones = reserved_spaces.keys\nbookings = [] of JSON::Any\nparking_zones.each do |zone|\n bookings.concat(staff_api.query_bookings(type: BOOKING_TYPE, zones: {zone}).get.as_a)\nend\nbookings = bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried parking bookings, found #{bookings.size}\"\nend\nrelease_bookings = [] of JSON::Any\nparking_zones.each do |zone|\n release_bookings.concat(staff_api.query_bookings(type: RESERVED_RELEASED, zones: {zone}).get.as_a)\nend\nrelease_bookings = release_bookings.map do |booking|\n booking = Booking.from_json(booking.to_json)\n booking.user_email = booking.user_email.downcase\n booking\nend\nlogger.debug do\n \"queried released spaces, found #{release_bookings.size}\"\nend\nrelease_bookings.each do |booking|\n parking_space = booking.asset_id\n reserved_spaces.each_value do |spaces|\n spaces.reject! do |space|\n space.id == parking_space\n end\n end\nend\nnow = Time.local(@timezone)\nres_start = now.at_beginning_of_day.to_unix\nres_end = now.at_end_of_day.to_unix\nlevel_to_building = level_buildings\nreserved_spaces.each do |level_zone, reservations|\n building_zone = level_to_building[level_zone]?\n if building_zone\n else\n next\n end\n reservations.each do |reservation|\n bookings << Place::Booking.new(id: -1, booking_type: BOOKING_TYPE, booking_start: res_start, booking_end: res_end, user_id: reservation.assigned_to.as(String), user_email: reservation.assigned_to.as(String), user_name: reservation.assigned_name.as(String), zones: [level_zone, building_zone], booked_by_name: reservation.assigned_name.as(String), booked_by_email: reservation.assigned_to.as(String), asset_id: reservation.id, checked_in: true)\n end\nend\nnew_bookings = Hash(String, Array(Booking)).new do |hash, key|\n hash[key] = [] of Booking\nend\nbookings.each do |booking|\n if booking.rejected\n next\n end\n new_bookings[booking.user_email] << booking\n @known_users[booking.user_id] = {booking.user_email, booking.user_name}\nend\n@bookings = new_bookings\n"}},{"html_id":"zone_filter:Array(String)-instance-method","name":"zone_filter","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L65"},"def":{"name":"zone_filter","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @zone_filter).nil?\n @zone_filter = (begin\n lvb = level_buildings\n (lvb.keys + lvb.values).uniq\n end)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Parking/Locations/ChildMetadata","path":"Place/Parking/Locations/ChildMetadata.html","kind":"alias","full_name":"Place::Parking::Locations::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L229"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, Place::Parking::Locations::Details)})","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/Details","path":"Place/Parking/Locations/Details.html","kind":"struct","full_name":"Place::Parking::Locations::Details","name":"Details","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"details:Array(ParkingSpace)-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L224"},"def":{"name":"details","return_type":"Array(ParkingSpace)","visibility":"Public","body":"@details"}},{"html_id":"details=(details:Array(ParkingSpace))-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"args_string":"(details : Array(ParkingSpace))","args_html":"(details : Array(ParkingSpace))","location":{"filename":"src/place/parking/locations.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L224"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"Array(ParkingSpace)"}],"visibility":"Public","body":"@details = details"}}]},{"html_id":"drivers/Place/Parking/Locations/Metadata","path":"Place/Parking/Locations/Metadata.html","kind":"alias","full_name":"Place::Parking::Locations::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L228"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Place::Parking::Locations::Details)","aliased_html":"Hash(String, Place::Parking::Locations::Details)","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}},{"html_id":"drivers/Place/Parking/Locations/ParkingSpace","path":"Place/Parking/Locations/ParkingSpace.html","kind":"struct","full_name":"Place::Parking::Locations::ParkingSpace","name":"ParkingSpace","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/parking/locations.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/parking/locations.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L208"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"assigned_name:String|Nil-instance-method","name":"assigned_name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_name"}},{"html_id":"assigned_name=(assigned_name:String|Nil)-instance-method","name":"assigned_name=","abstract":false,"args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"args_string":"(assigned_name : String | Nil)","args_html":"(assigned_name : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L214"},"def":{"name":"assigned_name=","args":[{"name":"assigned_name","external_name":"assigned_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_name = assigned_name"}},{"html_id":"assigned_to:String|Nil-instance-method","name":"assigned_to","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to","return_type":"String | ::Nil","visibility":"Public","body":"@assigned_to"}},{"html_id":"assigned_to=(assigned_to:String|Nil)-instance-method","name":"assigned_to=","abstract":false,"args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"args_string":"(assigned_to : String | Nil)","args_html":"(assigned_to : String | Nil)","location":{"filename":"src/place/parking/locations.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L213"},"def":{"name":"assigned_to=","args":[{"name":"assigned_to","external_name":"assigned_to","restriction":"String | ::Nil"}],"visibility":"Public","body":"@assigned_to = assigned_to"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L210"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L210"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L212"},"def":{"name":"map_id","return_type":"String","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"args_string":"(map_id : String)","args_html":"(map_id : String)","location":{"filename":"src/place/parking/locations.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L212"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L211"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/parking/locations.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L211"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"reserved?-instance-method","name":"reserved?","abstract":false,"location":{"filename":"src/place/parking/locations.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L216"},"def":{"name":"reserved?","visibility":"Public","body":"!!@assigned_to"}}]},{"html_id":"drivers/Place/Parking/Locations/Zone","path":"Place/Parking/Locations/Zone.html","kind":"alias","full_name":"Place::Parking::Locations::Zone","name":"Zone","abstract":false,"locations":[{"filename":"src/place/parking/locations.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/parking/locations.cr#L227"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Parking/Locations","kind":"class","full_name":"Place::Parking::Locations","name":"Locations"}}]}]},{"html_id":"drivers/Place/Pinger","path":"Place/Pinger.html","kind":"class","full_name":"Place::Pinger","name":"Pinger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/pinger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"period = (setting?(Int32, :ping_every)) || 60\nperiod = (period * 1000) + (rand(1000))\nschedule.clear\nschedule.every(period.milliseconds) do\n ping\nend\n"}},{"html_id":"ping-instance-method","name":"ping","abstract":false,"location":{"filename":"src/place/pinger.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/pinger.cr#L25"},"def":{"name":"ping","visibility":"Public","body":"hostname = config.ip.not_nil!\npinger = ::Pinger.new(hostname, count: 3)\npinger.ping\npingable = pinger.pingable\nif !pingable\n self[:last_error] = (pinger.exception || pinger.warning) || \"unknown error\"\nend\nset_connected_state(pingable)\nself[:pingable] = pingable\n"}}]},{"html_id":"drivers/Place/QSCPhoneDialing","path":"Place/QSCPhoneDialing.html","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing","abstract":false,"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"Code for handling QSC phone dialing, if available","summary":"

Code for handling QSC phone dialing, if available

","instance_methods":[{"html_id":"qsc_dial_hangup-instance-method","name":"qsc_dial_hangup","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L73"},"def":{"name":"qsc_dial_hangup","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.hangup_id)\n"}},{"html_id":"qsc_dial_makecall-instance-method","name":"qsc_dial_makecall","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L67"},"def":{"name":"qsc_dial_makecall","visibility":"Public","body":"dial_settings = @qsc_dial_settings\nif dial_settings\nelse\n return\nend\nsystem[:Mixer].trigger(dial_settings.dial_id)\n"}},{"html_id":"qsc_dial_pad(number:String)-instance-method","name":"qsc_dial_pad","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"}],"args_string":"(number : String)","args_html":"(number : String)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L46"},"def":{"name":"qsc_dial_pad","args":[{"name":"number","external_name":"number","restriction":"String"}],"visibility":"Public","body":"if number.size > 0\nelse\n return\nend\nchar = number[0]\ncase char\nwhen '\\b'\n if @dial_string.size == 0\n else\n @dial_string = @dial_string[0..-2]\n end\nwhen '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#'\n @dial_string = \"#{@dial_string}#{char}\"\nelse\n logger.info do\n \"unsupported dial char provided #{char}\"\n end\nend\nqsc_dial_pad_sync\n"}},{"html_id":"qsc_dial_pad_clear:Nil-instance-method","name":"qsc_dial_pad_clear","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L62"},"def":{"name":"qsc_dial_pad_clear","return_type":"Nil","visibility":"Public","body":"@dial_string = \"\"\nqsc_dial_pad_sync\n"}}],"types":[{"html_id":"drivers/Place/QSCPhoneDialing/QscPhone","path":"Place/QSCPhoneDialing/QscPhone.html","kind":"class","full_name":"Place::QSCPhoneDialing::QscPhone","name":"QscPhone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/QSCPhoneDialing","kind":"module","full_name":"Place::QSCPhoneDialing","name":"QSCPhoneDialing"},"doc":"This data will be stored in the tab","summary":"

This data will be stored in the tab

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"dial_id:String-instance-method","name":"dial_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L8"},"def":{"name":"dial_id","return_type":"String","visibility":"Public","body":"@dial_id"}},{"html_id":"dtmf_id:String-instance-method","name":"dtmf_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L13"},"def":{"name":"dtmf_id","return_type":"String","visibility":"Public","body":"@dtmf_id"}},{"html_id":"hangup_id:String-instance-method","name":"hangup_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L9"},"def":{"name":"hangup_id","return_type":"String","visibility":"Public","body":"@hangup_id"}},{"html_id":"number_id:String-instance-method","name":"number_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L7"},"def":{"name":"number_id","return_type":"String","visibility":"Public","body":"@number_id"}},{"html_id":"offhook_id:String-instance-method","name":"offhook_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L12"},"def":{"name":"offhook_id","return_type":"String","visibility":"Public","body":"@offhook_id"}},{"html_id":"ringing_id:String-instance-method","name":"ringing_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L11"},"def":{"name":"ringing_id","return_type":"String","visibility":"Public","body":"@ringing_id"}},{"html_id":"status_id:String-instance-method","name":"status_id","abstract":false,"location":{"filename":"src/place/meet/qsc_phone_dialing.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/qsc_phone_dialing.cr#L10"},"def":{"name":"status_id","return_type":"String","visibility":"Public","body":"@status_id"}}]}]},{"html_id":"drivers/Place/RbpRemoteLogger","path":"Place/RbpRemoteLogger.html","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"@logging_enabled = (setting?(Bool, \"enabled\")) || true\n@max_log_entries = (setting?(Int32, \"max_log_entries\")) || 1000\n@debug = (setting?(Bool, \"debug\")) || false\nself[:enabled] = @logging_enabled\n"}},{"html_id":"post_event(payload:JSON::Any|String)-instance-method","name":"post_event","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"args_string":"(payload : JSON::Any | String)","args_html":"(payload : JSON::Any | String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L28"},"def":{"name":"post_event","args":[{"name":"payload","external_name":"payload","restriction":"JSON::Any | String"}],"visibility":"Public","body":"if @debug\n logger.debug do\n \"Received: #{payload}\"\n end\nend\nif payload.is_a?(JSON::Any)\n payload = payload.to_json\nend\nif payload.is_a?(String)\n payload = payload.to_s\nend\nentry = Entry.from_json(payload)\n__temp_946 = entry.device_id\n@entries[__temp_946]? || (@entries[__temp_946] = [] of JSON::Any)\n@entries[entry.device_id] = (@entries[entry.device_id].unshift(JSON.parse(payload))).truncate(0, @max_log_entries)\nself[:entries] = @entries\nentry\n"}}],"types":[{"html_id":"drivers/Place/RbpRemoteLogger/Entry","path":"Place/RbpRemoteLogger/Entry.html","kind":"class","full_name":"Place::RbpRemoteLogger::Entry","name":"Entry","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/rbp_remote_logger.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/RbpRemoteLogger","kind":"class","full_name":"Place::RbpRemoteLogger","name":"RbpRemoteLogger"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:JSON::Any-instance-method","name":"data","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data","return_type":"JSON::Any","visibility":"Public","body":"@data"}},{"html_id":"data=(data:JSON::Any)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"args_string":"(data : JSON::Any)","args_html":"(data : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L58"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"JSON::Any"}],"visibility":"Public","body":"@data = data"}},{"html_id":"device_id:String-instance-method","name":"device_id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id","return_type":"String","visibility":"Public","body":"@device_id"}},{"html_id":"device_id=(device_id:String)-instance-method","name":"device_id=","abstract":false,"args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"args_string":"(device_id : String)","args_html":"(device_id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L53"},"def":{"name":"device_id=","args":[{"name":"device_id","external_name":"device_id","restriction":"String"}],"visibility":"Public","body":"@device_id = device_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L52"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"metadata:JSON::Any-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata","return_type":"JSON::Any","visibility":"Public","body":"@metadata"}},{"html_id":"metadata=(metadata:JSON::Any)-instance-method","name":"metadata=","abstract":false,"args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"args_string":"(metadata : JSON::Any)","args_html":"(metadata : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L59"},"def":{"name":"metadata=","args":[{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"}],"visibility":"Public","body":"@metadata = metadata"}},{"html_id":"raw:JSON::Any-instance-method","name":"raw","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw","return_type":"JSON::Any","visibility":"Public","body":"@raw"}},{"html_id":"raw=(raw:JSON::Any)-instance-method","name":"raw=","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"args_string":"(raw : JSON::Any)","args_html":"(raw : JSON::Any)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L57"},"def":{"name":"raw=","args":[{"name":"raw","external_name":"raw","restriction":"JSON::Any"}],"visibility":"Public","body":"@raw = raw"}},{"html_id":"subtype:String-instance-method","name":"subtype","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype","return_type":"String","visibility":"Public","body":"@subtype"}},{"html_id":"subtype=(subtype:String)-instance-method","name":"subtype=","abstract":false,"args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"args_string":"(subtype : String)","args_html":"(subtype : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L55"},"def":{"name":"subtype=","args":[{"name":"subtype","external_name":"subtype","restriction":"String"}],"visibility":"Public","body":"@subtype = subtype"}},{"html_id":"timestamp:Int64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp","return_type":"Int64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Int64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"args_string":"(timestamp : Int64)","args_html":"(timestamp : Int64)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L56"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Int64"}],"visibility":"Public","body":"@timestamp = timestamp"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/place/rbp_remote_logger.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/rbp_remote_logger.cr#L54"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]}]},{"html_id":"drivers/Place/RoomBookingApproval","path":"Place/RoomBookingApproval.html","kind":"class","full_name":"Place::RoomBookingApproval","name":"RoomBookingApproval","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L64"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L13"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool=false,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool = false, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L69"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"false","external_name":"notify","restriction":"Bool"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify, comment: comment)"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L45"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n bookings.select! do |event|\n event.status == \"tentative\"\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L29"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L38"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L16"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval.cr#L14"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/RoomBookingApprovalAltnerative","path":"Place/RoomBookingApprovalAltnerative.html","kind":"class","full_name":"Place::RoomBookingApprovalAltnerative","name":"RoomBookingApprovalAltnerative","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/room_booking_approval_alternate.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"accept_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"accept_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L81"},"def":{"name":"accept_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.accept_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_accept, comment: comment || @default_accept_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L19"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id.not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"decline_event(calendar_id:String,event_id:String,user_id:String|Nil=nil,notify:Bool|Nil=true,comment:String|Nil=nil)-instance-method","name":"decline_event","abstract":false,"args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"args_string":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","args_html":"(calendar_id : String, event_id : String, user_id : String | Nil = nil, notify : Bool | Nil = true, comment : String | Nil = nil)","location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L87"},"def":{"name":"decline_event","args":[{"name":"calendar_id","external_name":"calendar_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"},{"name":"notify","default_value":"true","external_name":"notify","restriction":"Bool | ::Nil"},{"name":"comment","default_value":"nil","external_name":"comment","restriction":"String | ::Nil"}],"visibility":"Public","body":"calendar.decline_event(calendar_id: calendar_id, event_id: event_id, user_id: user_id, notify: notify || @notify_host_on_decline, comment: comment || @default_decline_message)\nsleep(2.seconds)\nfind_bookings_for_approval\n"}},{"html_id":"find_bookings_for_approval:Hash(String,Array(PlaceCalendar::Event))-instance-method","name":"find_bookings_for_approval","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L63"},"def":{"name":"find_bookings_for_approval","return_type":"Hash(String, Array(PlaceCalendar::Event))","visibility":"Public","body":"results = {} of String => Array(PlaceCalendar::Event)\nsystems.each do |level_id, system_ids|\n system_ids.each do |system_id|\n sys = system(system_id)\n if sys.exists?(\"Bookings\", 1)\n if bookings = (sys.get(\"Bookings\", 1)).status?(Array(PlaceCalendar::Event), \"bookings\")\n @events_requiring_approval_are_tentative ? bookings.select! do |event|\n event.status == \"tentative\"\n end : bookings.select! do |booking|\n (room_attendee(booking)).try(&.response_status).in?({\"needsAction\", \"tentative\"})\n end\n if bookings.empty?\n else\n results[system_id] = bookings\n end\n end\n end\n end\nend\nself[:approval_required] = results\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L47"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = system[\"StaffAPI\"].zones(tags: \"building\").get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n nil\nend"}},{"html_id":"get_systems_list-instance-method","name":"get_systems_list","doc":"Grabs the list of systems in the building","summary":"

Grabs the list of systems in the building

","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L56"},"def":{"name":"get_systems_list","visibility":"Public","body":"begin\n (system[\"StaffAPI\"].systems_in_building(building_id)).get.as_h.transform_values() do |__arg1|\n __arg1.as_a.map(&.as_s)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to obtain list of systems in the building\"\n end\n nil\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@building_id = nil\n@systems = nil\nschedule.clear\nschedule.every(1.hour) do\n @systems = get_systems_list.not_nil!\nend\nschedule.every(5.minutes) do\n find_bookings_for_approval\nend\n@notify_host_on_accept = (setting?(Bool, :notify_host_on_accept)) || true\n@notify_host_on_decline = (setting?(Bool, :notify_host_on_decline)) || true\n@default_accept_message = (setting?(String, :default_accept_message)) || \"Request accepted\"\n@default_decline_message = (setting?(String, :default_decline_message)) || \"Request not accepted\"\n@events_requiring_approval_are_tentative = (setting?(Bool, :events_requiring_approval_are_tentative)) || true\n"}},{"html_id":"systems:Hash(String,Array(String))-instance-method","name":"systems","abstract":false,"location":{"filename":"src/place/room_booking_approval_alternate.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/room_booking_approval_alternate.cr#L20"},"def":{"name":"systems","return_type":"Hash(String, Array(String))","visibility":"Public","body":"if (__temp_1 = @systems).nil?\n @systems = (get_systems_list.not_nil!)\nelse\n __temp_1\nend"}}]},{"html_id":"drivers/Place/Router","path":"Place/Router.html","kind":"module","full_name":"Place::Router","name":"Router","abstract":false,"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"types":[{"html_id":"drivers/Place/Router/Core","path":"Place/Router/Core.html","kind":"module","full_name":"Place::Router::Core","name":"Core","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L11"},{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Meet","kind":"class","full_name":"Place::Meet","name":"Meet"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Core routing methods and functionality. This exists as module to enable\ninclusion in other drivers, such as room logic, that provide auxillary\nfunctionality to signal distribution.","summary":"

Core routing methods and functionality.

","instance_methods":[{"html_id":"current_routes:Hash(String,String|Nil)-instance-method","name":"current_routes","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L42"},"def":{"name":"current_routes","return_type":"Hash(String, String | ::Nil)","visibility":"Public","body":"@current_routes"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L44"},"def":{"name":"on_update","visibility":"Public","body":"load_siggraph"}},{"html_id":"route_signal(input:String,output:String,max_dist:Int32|Nil=nil,simulate:Bool=false,follow_additional_routes:Bool=true)-instance-method","name":"route_signal","doc":"Routes signal from *input* to *output*.\n\nPerforms all intermediate device interaction based on current system\nconfig.","summary":"

Routes signal from input to output.

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"args_string":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","args_html":"(input : String, output : String, max_dist : Int32 | Nil = nil, simulate : Bool = false, follow_additional_routes : Bool = true)","location":{"filename":"src/place/router/core.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L186"},"def":{"name":"route_signal","args":[{"name":"input","external_name":"input","restriction":"String"},{"name":"output","external_name":"output","restriction":"String"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":"Int32 | ::Nil"},{"name":"simulate","default_value":"false","external_name":"simulate","restriction":"Bool"},{"name":"follow_additional_routes","default_value":"true","external_name":"follow_additional_routes","restriction":"Bool"}],"visibility":"Public","body":"logger.debug do\n \"requesting route from #{input} to #{output}\"\nend\nsrc, dst = resolver.values_at(input, output)\ndst_node = siggraph[dst]\nsrc_node = siggraph[src]\npath = (siggraph.route(src, dst, max_dist)) || (raise(\"no route found\"))\nexecs = path.compact_map do |__temp_941|\n node, edge, next_node = __temp_941\n logger.debug do\n \"#{node} → #{next_node}\"\n end\n if next_node.locked\n raise(\"#{next_node} is locked, aborting\")\n end\n case edge\n in SignalGraph::Edge::Static\n nil\n in SignalGraph::Edge::Active\n Promise.defer(timeout: 1.second) do\n next_node.source = siggraph[src].source\n if !simulate\n mod = proxy_for(edge.mod)\n case func = edge.func\n in SignalGraph::Edge::Func::Mute\n dst_layer = dst_node.ref.layer.downcase\n case dst_layer\n when \"audio\", \"video\"\n mod.mute(func.state, func.index, dst_layer)\n else\n mod.mute(func.state, func.index)\n end\n in SignalGraph::Edge::Func::Select\n mod.switch_to(func.input)\n in SignalGraph::Edge::Func::Switch\n mod.switch({func.input => [func.output]}, func.layer)\n end\n end\n nil\n end\n end\nend\nif follow_additional_routes\n routes = {} of String => Tuple(String, String, Int32 | ::Nil, Bool, Bool)\n if following_outputs = dst_node[\"followers\"]?.try(&.as_a)\n logger.debug do\n \"routing #{following_outputs.size} additional followers\"\n end\n following_outputs.each do |output_follow|\n routes[output_follow.as_s] = {input, output_follow.as_s, max_dist, simulate, false}\n end\n end\n ignore_source_routes = dst_node[\"ignore_source_routes\"]?.try(&.as_bool) || false\n if !ignore_source_routes && (additional_routes = src_node[\"perform_routes\"]?.try(&.as_h))\n logger.debug do\n \"perfoming #{additional_routes.size} additional routes\"\n end\n additional_routes.each do |ad_output, ad_input|\n routes[ad_output] = {ad_input.as_s, ad_output, max_dist, simulate, false}\n end\n end\n spawn do\n routes.each_value do |route|\n begin\n route_signal(*route)\n rescue error\n logger.warn(exception: error) do\n \"issue routing: #{route[0]}=>#{route[1]}\"\n end\n end\n end\n end\nend\nlogger.debug do\n \"awaiting responses\"\nend\nexecs.each do |promise|\n begin\n promise.get\n rescue error\n logger.warn(exception: error) do\n \"processing route\"\n end\n end\nend\n:ok\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/NodeRef","path":"Place/Router/Core/NodeRef.html","kind":"alias","full_name":"Place::Router::Core::NodeRef","name":"NodeRef","abstract":false,"locations":[{"filename":"src/place/router/core.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Ref","aliased_html":"Place::Router::SignalGraph::Node::Ref","const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"}},{"html_id":"drivers/Place/Router/Core/Settings","path":"Place/Router/Core/Settings.html","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections","path":"Place/Router/Core/Settings/Connections.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Types for representing the settings format for defining connections.","summary":"

Types for representing the settings format for defining connections.

","class_methods":[{"html_id":"parse(map:Map,sys:String)-class-method","name":"parse","doc":"Parses a `Map` containing the system conectivity into a set of nodes and\nlinks that can be used for assembling the `SignalGraph`.","summary":"

Parses a Map containing the system conectivity into a set of nodes and links that can be used for assembling the SignalGraph.

","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(map : Map, sys : String)","args_html":"(map : Map, sys : String)","location":{"filename":"src/place/router/settings.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L105"},"def":{"name":"parse","args":[{"name":"map","external_name":"map","restriction":"Map"},{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"nodes = [] of SignalGraph::Node::Ref\nlinks = [] of ::Tuple(SignalGraph::Node::Ref, SignalGraph::Node::Ref)\naliases = {} of String => SignalGraph::Node::Ref\nmake_alias = ->(name : String, node : SignalGraph::Node::Ref) do\n if prev = aliases[name]?\n raise(\"invalid configuration: \\\"#{name}\\\" refers to both #{prev} and #{node}\")\n end\n aliases[name] = node\nend\nmap.each do |sink, inputs|\n if sink.is_a?(Alias)\n source = inputs\n if source.is_a?(DeviceOutput)\n else\n raise(\"invalid configuration: \\\"#{sink}\\\" must link to a DeviceOutput\")\n end\n onode = SignalGraph::Output.new(sys, source.mod, source.idx, source.output, source.layer)\n nodes << onode\n make_alias.call(sink.name, onode)\n else\n if inputs.is_a?(DeviceOutput)\n raise(\"invalid configuration: \\\"#{sink}\\\" must specify inputs as either a hash or array\")\n end\n nodes << (SignalGraph::Device.new(sys, sink.mod, sink.idx))\n if inputs.is_a?(Array)\n inputs = (inputs.each.with_index(1)).map(&.reverse)\n end\n inputs.each do |input, input_source|\n inode = SignalGraph::Input.new(sys, sink.mod, sink.idx, input)\n nodes << inode\n if input_source.is_a?(Alias)\n make_alias.call(input_source.name, inode)\n next\n end\n onode = case input_source\n in Device\n SignalGraph::Device.new(sys, input_source.mod, input_source.idx)\n in DeviceOutput\n SignalGraph::Output.new(sys, input_source.mod, input_source.idx, input_source.output, input_source.layer)\n end\n nodes << onode\n links << {onode, inode}\n end\n end\nend\n{nodes, links, aliases}\n"}}],"types":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Alias","path":"Place/Router/Core/Settings/Connections/Alias.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Alias","name":"Alias","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Alias used to refer to a signal node that does not have an accompanying\nmodule. This can be useful for declaring the concept of a device that is\nattached to an input (e.g. `\"*Laptop\"`). All alias' must be prefixed with\nan asterisk ('*') within connections settings.","summary":"

Alias used to refer to a signal node that does not have an accompanying module.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L73"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n new(name)\nend"}}],"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L72"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone)"}},{"html_id":"copy_with(name_name=@name)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"args_string":"(name _name = @name)","args_html":"(name _name = @name)","location":{"filename":"src/place/router/settings.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L71"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""}],"visibility":"Public","body":"self.class.new(_name)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","path":"Place/Router/Core/Settings/Connections/Deserializable.html","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"instance_methods":[{"html_id":"from_json_object_key?(key:String)-instance-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L16"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"parse?(key)"}},{"html_id":"get_parts(module_id:String):Tuple(String,Int32|Nil)-instance-method","name":"get_parts","abstract":false,"args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"args_string":"(module_id : String) : Tuple(String, Int32 | Nil)","args_html":"(module_id : String) : Tuple(String, Int32 | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L20"},"def":{"name":"get_parts","args":[{"name":"module_id","external_name":"module_id","restriction":"String"}],"return_type":"::Tuple(String, Int32 | ::Nil)","visibility":"Public","body":"mod_name, match, index = module_id.rpartition('_')\nif match.empty?\n {module_id, 1}\nelse\n {mod_name, index.to_i?}\nend\n"}},{"html_id":"parse?(raw:String)-instance-method","name":"parse?","abstract":true,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L14"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":""}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Device","path":"Place/Router/Core/Settings/Connections/Device.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Module name of a device within the local system e.g. `\"Switcher_1\"`.","summary":"

Module name of a device within the local system e.g.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L34"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod, idx = get_parts(raw)\nif idx\n new(mod, idx)\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"args_string":"(mod : String, idx : Int32)","args_html":"(mod : String, idx : Int32)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx)","args_html":"(mod _mod = @mod, idx _idx = @idx)","location":{"filename":"src/place/router/settings.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L32"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/DeviceOutput","path":"Place/Router/Core/Settings/Connections/DeviceOutput.html","kind":"struct","full_name":"Place::Router::Core::Settings::Connections::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/Core/Settings/Connections/Deserializable","kind":"module","full_name":"Place::Router::Core::Settings::Connections::Deserializable","name":"Deserializable"}],"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Reference to a specific output on a device that has multiple outputs.\nThis is a concatenation of the `Device` reference a `.` and the output.\nFor example, output 3 of Switcher_1 is `\"Switcher_1.3\"`.","summary":"

Reference to a specific output on a device that has multiple outputs.

","class_methods":[{"html_id":"parse?(raw:String)-class-method","name":"parse?","abstract":false,"args":[{"name":"raw","external_name":"raw","restriction":"String"}],"args_string":"(raw : String)","args_html":"(raw : String)","location":{"filename":"src/place/router/settings.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L47"},"def":{"name":"parse?","args":[{"name":"raw","external_name":"raw","restriction":"String"}],"visibility":"Public","body":"if name = raw.lchop?('*')\n return\nend\nmod_name, match, outp = raw.rpartition('.')\nif !match.empty?\n mod, idx = get_parts(mod_name)\n if idx\n outp_idx, match, layer = outp.rpartition('!')\n if match.empty?\n output = outp.to_i? || outp\n new(mod, idx, output, nil)\n else\n output = outp_idx.to_i? || outp_idx\n new(mod, idx, output, layer)\n end\n end\nend\n"}}],"constructors":[{"html_id":"new(mod:String,idx:Int32,output:String|Int32,layer:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"args_string":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","args_html":"(mod : String, idx : Int32, output : String | Int32, layer : String | Nil)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"String"},{"name":"idx","external_name":"idx","restriction":"Int32"},{"name":"output","external_name":"output","restriction":"String | Int32"},{"name":"layer","external_name":"layer","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/settings.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L46"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"JSON::PullParser"}],"visibility":"Public","body":"(parse?(pull.read_string)) || (pull.raise(\"Invalid #{self} (#{pull.string_value.inspect})\"))"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @idx.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(mod_mod=@mod,idx_idx=@idx,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","args_html":"(mod _mod = @mod, idx _idx = @idx, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/settings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L45"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_idx","default_value":"@idx","external_name":"idx","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _idx, _output, _layer)"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"layer:String|Nil-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String | ::Nil","visibility":"Public","body":"@layer"}},{"html_id":"mod:String-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"String","visibility":"Public","body":"@mod"}},{"html_id":"output:String|Int32-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"String | Int32","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Input","path":"Place/Router/Core/Settings/Connections/Input.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L88"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"String","aliased_html":"String","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Identifier for the input on Sink.","summary":"

Identifier for the input on Sink.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Map","path":"Place/Router/Core/Settings/Connections/Map.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Map","name":"Map","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Hash(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device, Array(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Hash(String, Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput) | Place::Router::Core::Settings::Connections::DeviceOutput)","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"Structure for a full connection map.\n\n```json\n{\n \"Display_1\": {\n \"hdmi\": \"Switcher_1.1\"\n },\n \"Switcher_1\": [\"*Foo\", \"*Bar\"],\n \"*FloorBox\": \"Switcher_1.2\"\n}\n```","summary":"

Structure for a full connection map.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Sink","path":"Place/Router/Core/Settings/Connections/Sink.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Sink","name":"Sink","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L85"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device that recieves the signal.","summary":"

The device that recieves the signal.

"},{"html_id":"drivers/Place/Router/Core/Settings/Connections/Source","path":"Place/Router/Core/Settings/Connections/Source.html","kind":"alias","full_name":"Place::Router::Core::Settings::Connections::Source","name":"Source","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput)","aliased_html":"Place::Router::Core::Settings::Connections::Alias | Place::Router::Core::Settings::Connections::Device | Place::Router::Core::Settings::Connections::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings/Connections","kind":"module","full_name":"Place::Router::Core::Settings::Connections","name":"Connections"},"doc":"The device a signal is originating from.","summary":"

The device a signal is originating from.

"}]},{"html_id":"drivers/Place/Router/Core/Settings/IOMeta","path":"Place/Router/Core/Settings/IOMeta.html","kind":"alias","full_name":"Place::Router::Core::Settings::IOMeta","name":"IOMeta","abstract":false,"locations":[{"filename":"src/place/router/settings.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L166"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Hash(String, JSON::Any))","aliased_html":"Hash(String, Hash(String, JSON::Any))","const":false,"namespace":{"html_id":"drivers/Place/Router/Core/Settings","kind":"module","full_name":"Place::Router::Core::Settings","name":"Settings"},"doc":"Input/outputs and their associated metadata. Attributes specified here are\nprogated to the assocated input status keys. This allows information such as\nname, type etc to be exposed to UI's.","summary":"

Input/outputs and their associated metadata.

"}]},{"html_id":"drivers/Place/Router/Core/SignalNode","path":"Place/Router/Core/SignalNode.html","kind":"struct","full_name":"Place::Router::Core::SignalNode","name":"SignalNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/core.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Core","kind":"module","full_name":"Place::Router::Core","name":"Core"},"doc":"Wrapper for providng simple interaction with a signal node and it's\nassociated driver.","summary":"

Wrapper for providng simple interaction with a signal node and it's associated driver.

","constructors":[{"html_id":"new(label:Place::Router::SignalGraph::Node::Label,proxy:Future::Compute(PlaceOS::Driver::Proxy::Driver))-class-method","name":"new","abstract":false,"args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"args_string":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","args_html":"(label : Place::Router::SignalGraph::Node::Label, proxy : Future::Compute(PlaceOS::Driver::Proxy::Driver))","location":{"filename":"src/place/router/core.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L20"},"def":{"name":"new","args":[{"name":"label","external_name":"label","restriction":"::Place::Router::SignalGraph::Node::Label"},{"name":"proxy","external_name":"proxy","restriction":"::Future::Compute(::PlaceOS::Driver::Proxy::Driver)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(label, proxy)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"proxy-instance-method","name":"proxy","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L25"},"def":{"name":"proxy","visibility":"Public","body":"@proxy.get"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/core.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L29"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}},{"html_id":"watch(&handler:self->)-instance-method","name":"watch","abstract":false,"location":{"filename":"src/place/router/core.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L33"},"def":{"name":"watch","yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"visibility":"Public","body":"@label.watch do\n handler.call(self)\nend"}}],"macros":[{"html_id":"method_missing(call)-macro","name":"method_missing","abstract":false,"args":[{"name":"call","external_name":"call","restriction":""}],"args_string":"(call)","args_html":"(call)","location":{"filename":"src/place/router/core.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/core.cr#L23"},"def":{"name":"method_missing","args":[{"name":"call","external_name":"call","restriction":""}],"visibility":"Public","body":" @label.\n{{ call }}\n\n \n"}}]}]},{"html_id":"drivers/Place/Router/Digraph","path":"Place/Router/Digraph.html","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Labelled digraph. Holds node labels of type *N* and edge labels of type *E*.\n\nNodes are stored on UInt64 ID's. This provides an interface that should feel\nsimilar to `Indexable` for interacting with nodes labels. Similarly edges can\nbe placed and retrieved by using a dual index of {predescessor, successor}.\n\nOPTIMIZE: replace with a sparse matrix and graphBLAS operations.","summary":"

Labelled digraph.

","constructors":[{"html_id":"new(initial_capacity=nil)-class-method","name":"new","abstract":false,"args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"args_string":"(initial_capacity = nil)","args_html":"(initial_capacity = nil)","location":{"filename":"src/place/router/digraph.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L19"},"def":{"name":"new","args":[{"name":"initial_capacity","default_value":"nil","external_name":"initial_capacity","restriction":""}],"visibility":"Public","body":"_ = Digraph(N, E).allocate\n_.initialize(initial_capacity)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](pred_id,succ_id)-instance-method","name":"[]","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id)","args_html":"(pred_id, succ_id)","location":{"filename":"src/place/router/digraph.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L68"},"def":{"name":"[]","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"visibility":"Public","body":"fetch(pred_id, succ_id) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} does not exist\"))\nend"}},{"html_id":"[](id)-instance-method","name":"[]","doc":"Retrieves the label attached to node *id*.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L42"},"def":{"name":"[]","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).attr"}},{"html_id":"[]=(pred_id,succ_id,attr)-instance-method","name":"[]=","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(pred_id, succ_id, attr)","args_html":"(pred_id, succ_id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L81"},"def":{"name":"[]=","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(pred_id, succ_id, attr) do\n raise(Error.new(\"Edge #{pred_id} -> #{succ_id} already exists\"))\nend"}},{"html_id":"[]=(id,attr)-instance-method","name":"[]=","doc":"Insert a new node.","summary":"

Insert a new node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"args_string":"(id, attr)","args_html":"(id, attr)","location":{"filename":"src/place/router/digraph.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L53"},"def":{"name":"[]=","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":""}],"visibility":"Public","body":"insert(id, attr) do\n raise(Error.new(\"Node #{id} already exists\"))\nend"}},{"html_id":"breadth_first_search(from,&:UInt64->Bool|Nil)-instance-method","name":"breadth_first_search","doc":"Perform a breadth first search across the graph, starting at *from*.\n\nEach node id is yielded as it's traversed. The search will terminate when\nthis block returns true. If `nil` is returned the node is skipped, but the\ntraversal continues.\n\nResults are provided as a Hash that includes all reached nodes as the keys,\nand their predecessor as the associated value.","summary":"

Perform a breadth first search across the graph, starting at from.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""}],"args_string":"(from, & : UInt64 -> Bool | Nil)","args_html":"(from, & : UInt64 -> Bool | Nil)","location":{"filename":"src/place/router/digraph.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L106"},"def":{"name":"breadth_first_search","args":[{"name":"from","external_name":"from","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"","external_name":"","restriction":"(UInt64 -> Bool | ::Nil)"},"visibility":"Public","body":"paths = Hash(UInt64, UInt64).new\nqueue = Deque(UInt64).new(1, from)\nwhile pred_id = queue.shift?\n (node(pred_id)).succ.each_key do |succ_id|\n if paths.has_key?(succ_id)\n next\n end\n done = yield succ_id\n if done.nil?\n next\n end\n paths[succ_id] = pred_id\n if done\n return paths\n end\n queue << succ_id\n end\nend\n"}},{"html_id":"clear(*args,**options)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"@nodes.clear(*args, **options)"}},{"html_id":"clear(*args,**options,&)-instance-method","name":"clear","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/digraph.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L17"},"def":{"name":"clear","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"@nodes.clear(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"fetch(pred_id,succ_id,&):E-instance-method","name":"fetch","doc":"Retrieves the label attached to the edge that joins *pred_id* and *succ_id*.","summary":"

Retrieves the label attached to the edge that joins pred_id and succ_id.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"args_string":"(pred_id, succ_id, &) : E","args_html":"(pred_id, succ_id, &) : E","location":{"filename":"src/place/router/digraph.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L75"},"def":{"name":"fetch","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""}],"yields":2,"block_arity":2,"return_type":"E","visibility":"Public","body":"succ_id = check_node_exists(succ_id)\n(node(pred_id)).succ.fetch(succ_id) do\n yield pred_id, succ_id\nend\n"}},{"html_id":"fetch(id,&):N-instance-method","name":"fetch","doc":"Retrieves the label attached to node *id*. Yields if it does not exist.","summary":"

Retrieves the label attached to node id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id, &) : N","args_html":"(id, &) : N","location":{"filename":"src/place/router/digraph.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L47"},"def":{"name":"fetch","args":[{"name":"id","external_name":"id","restriction":""}],"yields":1,"block_arity":1,"return_type":"N","visibility":"Public","body":"node = node(id) do\n return yield id\nend\nnode.attr\n"}},{"html_id":"indegree(id)-instance-method","name":"indegree","doc":"The number of incomming edges to *id*.","summary":"

The number of incomming edges to id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L183"},"def":{"name":"indegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"id = check_node_exists(id)\n@nodes.reduce(0) do |count, __temp_944|\n _, node = __temp_944\n if node.succ.has_key?(id)\n count = count + 1\n end\n count\nend\n"}},{"html_id":"insert(pred_id,succ_id,attr:E,&)-instance-method","name":"insert","doc":"Inserts an edge.","summary":"

Inserts an edge.

","abstract":false,"args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"args_string":"(pred_id, succ_id, attr : E, &)","args_html":"(pred_id, succ_id, attr : E, &)","location":{"filename":"src/place/router/digraph.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L88"},"def":{"name":"insert","args":[{"name":"pred_id","external_name":"pred_id","restriction":""},{"name":"succ_id","external_name":"succ_id","restriction":""},{"name":"attr","external_name":"attr","restriction":"E"}],"yields":2,"block_arity":2,"visibility":"Public","body":"succ_id = check_node_exists(succ_id)\npred = node(pred_id)\nif pred.succ.has_key?(succ_id)\n yield pred_id, succ_id\nelse\n pred.succ[succ_id] = attr\nend\n"}},{"html_id":"insert(id,attr:N,&)-instance-method","name":"insert","doc":"Inserts a node. Yields if it already exists.","summary":"

Inserts a node.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"args_string":"(id, attr : N, &)","args_html":"(id, attr : N, &)","location":{"filename":"src/place/router/digraph.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L58"},"def":{"name":"insert","args":[{"name":"id","external_name":"id","restriction":""},{"name":"attr","external_name":"attr","restriction":"N"}],"yields":1,"block_arity":1,"visibility":"Public","body":"id = id.to_u64\nif @nodes.has_key?(id)\n yield id\nelse\n @nodes[id] = Node(N, E).new(attr, {} of UInt64 => E)\nend\n"}},{"html_id":"nodes:Enumerable(UInt64)-instance-method","name":"nodes","doc":"Provides all nodes present within the graph.\n\nNOTE: ordering of nodes is _not_ defined.","summary":"

Provides all nodes present within the graph.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L149"},"def":{"name":"nodes","return_type":"Enumerable(UInt64)","visibility":"Public","body":"@nodes.each_key"}},{"html_id":"outdegree(id)-instance-method","name":"outdegree","doc":"The outgoing edges from *id*.","summary":"

The outgoing edges from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id)","args_html":"(id)","location":{"filename":"src/place/router/digraph.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L178"},"def":{"name":"outdegree","args":[{"name":"id","external_name":"id","restriction":""}],"visibility":"Public","body":"(node(id)).succ.size"}},{"html_id":"path(from,to,invert=false):Enumerable(UInt64)|Nil-instance-method","name":"path","doc":"Returns a list of node IDs that form the shortest path between the passed\nnodes or `nil` if no path exists.","summary":"

Returns a list of node IDs that form the shortest path between the passed nodes or nil if no path exists.

","abstract":false,"args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"args_string":"(from, to, invert = false) : Enumerable(UInt64) | Nil","args_html":"(from, to, invert = false) : Enumerable(UInt64) | Nil","location":{"filename":"src/place/router/digraph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L130"},"def":{"name":"path","args":[{"name":"from","external_name":"from","restriction":""},{"name":"to","external_name":"to","restriction":""},{"name":"invert","default_value":"false","external_name":"invert","restriction":""}],"return_type":"Enumerable(UInt64) | ::Nil","visibility":"Public","body":"from = check_node_exists(from)\nto = check_node_exists(to)\npaths = breadth_first_search(from, &.==(to))\nif paths.nil?\n return\nend\nnodes = [to]\nwhile !(nodes.last == from)\n nodes << paths[nodes.last]\nend\ninvert ? nodes : nodes.reverse!\n"}},{"html_id":"sink?(id):Bool-instance-method","name":"sink?","doc":"Checks if a node has incoming edges only.","summary":"

Checks if a node has incoming edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L154"},"def":{"name":"sink?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"(outdegree(id)).zero? && !(indegree(id)).zero?"}},{"html_id":"sinks:Enumerable(UInt64)-instance-method","name":"sinks","doc":"Provides all nodes with incoming edges only.","summary":"

Provides all nodes with incoming edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L159"},"def":{"name":"sinks","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n sink?(id)\nend"}},{"html_id":"source?(id):Bool-instance-method","name":"source?","doc":"Checks if a node has outgoing edges only.","summary":"

Checks if a node has outgoing edges only.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Bool","args_html":"(id) : Bool","location":{"filename":"src/place/router/digraph.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L164"},"def":{"name":"source?","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Bool","visibility":"Public","body":"!(outdegree(id)).zero? && (indegree(id)).zero?"}},{"html_id":"sources:Enumerable(UInt64)-instance-method","name":"sources","doc":"Provides all nodes with outgoing edges only.\n\nOPTIMIZE: this is _very_ slow [O(V * E)], but works for testing purposes.\nSwitching the sparse matrix should assist so not worth optimising for this\nsetup.","summary":"

Provides all nodes with outgoing edges only.

","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L173"},"def":{"name":"sources","return_type":"Enumerable(UInt64)","visibility":"Public","body":"nodes.select do |id|\n source?(id)\nend"}},{"html_id":"subtree(id):Enumerable(UInt64)-instance-method","name":"subtree","doc":"Provides all nodes reachable from *id*.","summary":"

Provides all nodes reachable from id.

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":""}],"args_string":"(id) : Enumerable(UInt64)","args_html":"(id) : Enumerable(UInt64)","location":{"filename":"src/place/router/digraph.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L192"},"def":{"name":"subtree","args":[{"name":"id","external_name":"id","restriction":""}],"return_type":"Enumerable(UInt64)","visibility":"Public","body":"id = check_node_exists(id)\nSubtreeIterator.new(self, id)\n"}}],"types":[{"html_id":"drivers/Place/Router/Digraph/Error","path":"Place/Router/Digraph/Error.html","kind":"class","full_name":"Place::Router::Digraph::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"drivers/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"}},{"html_id":"drivers/Place/Router/Digraph/Node","path":"Place/Router/Digraph/Node.html","kind":"struct","full_name":"Place::Router::Digraph::Node(N, E)","name":"Node","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/Digraph","kind":"class","full_name":"Place::Router::Digraph(N, E)","name":"Digraph"},"constructors":[{"html_id":"new(attr:N,succ:Hash(UInt64,E))-class-method","name":"new","abstract":false,"args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"args_string":"(attr : N, succ : Hash(UInt64, E))","args_html":"(attr : N, succ : Hash(UInt64, E))","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"new","args":[{"name":"attr","external_name":"attr","restriction":"N"},{"name":"succ","external_name":"succ","restriction":"Hash(UInt64, E)"}],"visibility":"Public","body":"_ = Node(N, E).allocate\n_.initialize(attr, succ)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"attr:N-instance-method","name":"attr","abstract":false,"def":{"name":"attr","return_type":"N","visibility":"Public","body":"@attr"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@attr.clone, @succ.clone)"}},{"html_id":"copy_with(attr_attr=@attr,succ_succ=@succ)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"args_string":"(attr _attr = @attr, succ _succ = @succ)","args_html":"(attr _attr = @attr, succ _succ = @succ)","location":{"filename":"src/place/router/digraph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/digraph.cr#L11"},"def":{"name":"copy_with","args":[{"name":"_attr","default_value":"@attr","external_name":"attr","restriction":""},{"name":"_succ","default_value":"@succ","external_name":"succ","restriction":""}],"visibility":"Public","body":"self.class.new(_attr, _succ)"}},{"html_id":"succ:Hash(UInt64,E)-instance-method","name":"succ","abstract":false,"def":{"name":"succ","return_type":"Hash(UInt64, E)","visibility":"Public","body":"@succ"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph","path":"Place/Router/SignalGraph.html","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L11"},{"filename":"src/place/router/signal_graph/edge.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L3"},{"filename":"src/place/router/signal_graph/mod.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L5"},{"filename":"src/place/router/signal_graph/node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L5"},{"filename":"src/place/router/signal_graph/watchable.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Mute","name":"Mute","value":"Node::Mute.instance"}],"namespace":{"html_id":"drivers/Place/Router","kind":"module","full_name":"Place::Router","name":"Router"},"doc":"Structures and types for mapping between sys,mod,idx,io referencing and the\nunderlying graph structure.\n\nThe SignalGraph class _does not_ perform any direct interaction with devices,\nbut does provide the ability to discover routes and available connectivity\nwhen may then be acted on.","summary":"

Structures and types for mapping between sys,mod,idx,io referencing and the underlying graph structure.

","class_methods":[{"html_id":"build(nodes:Enumerable(Node::Ref),links:Enumerable(Tuple(Node::Ref,Node::Ref)))-class-method","name":"build","doc":"Construct a graph from a pre-parsed configuration.\n\n*nodes* must contain the set of all signal nodes that form the device inputs\nand outputs across the system. This includes those at the \"edge\" of the\nsignal network (e.g. a input to a switcher) as well as inputs in use on\nintermediate devices (e.g. a input on a display, which in turn is attached to\nthe switcher above).\n\n*links* declares the interconnections between devices.\n\nModules associated with any of these nodes are then introspected for\nswitching, input selection and mute control based on the interfaces they\nexpose.","summary":"

Construct a graph from a pre-parsed configuration.

","abstract":false,"args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"args_string":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","args_html":"(nodes : Enumerable(Node::Ref), links : Enumerable(Tuple(Node::Ref, Node::Ref)))","location":{"filename":"src/place/router/signal_graph.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L93"},"def":{"name":"build","args":[{"name":"nodes","external_name":"nodes","restriction":"Enumerable(Node::Ref)"},{"name":"links","external_name":"links","restriction":"Enumerable(::Tuple(Node::Ref, Node::Ref))"}],"visibility":"Public","body":"mod_io = Hash(Mod, ::Tuple(Set(Input), Set(Output))).new do |h, k|\n h[k] = {Set(Input).new, Set(Output).new}\nend\nsiggraph = new(initial_capacity: nodes.size)\nsiggraph.insert(Mute)\nnodes.each do |node|\n siggraph.insert(node)\n case node\n when Input\n inputs, _ = mod_io[node.mod]\n inputs << node\n when Output\n _, outputs = mod_io[node.mod]\n outputs << node\n end\nend\nlinks.each do |source, dest|\n siggraph.connect(source, dest)\nend\nmod_io.each do |mod, __temp_942|\n inputs, outputs = __temp_942\n siggraph.link(mod, inputs, outputs)\nend\nsiggraph.inputs.each do |node|\n node.source = node.ref\nend\nsiggraph\n"}}],"instance_methods":[{"html_id":"[](node:Node::Ref)-instance-method","name":"[]","doc":"Retrieves the labelled state for *node*.","summary":"

Retrieves the labelled state for node.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref)","args_html":"(node : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L130"},"def":{"name":"[]","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"visibility":"Public","body":"g[node.id]"}},{"html_id":"[](node_id)-instance-method","name":"[]","doc":"Retrieves the labelled state for the signal node at *node_id*.","summary":"

Retrieves the labelled state for the signal node at node_id.

","abstract":false,"args":[{"name":"node_id","external_name":"node_id","restriction":""}],"args_string":"(node_id)","args_html":"(node_id)","location":{"filename":"src/place/router/signal_graph.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L135"},"def":{"name":"[]","args":[{"name":"node_id","external_name":"node_id","restriction":""}],"visibility":"Public","body":"g[node_id]"}},{"html_id":"input?(node:Node::Ref):Bool-instance-method","name":"input?","doc":"Checks if *node* is a system input.","summary":"

Checks if node is a system input.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L161"},"def":{"name":"input?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.sink?(node.id)"}},{"html_id":"inputs(destination:Node::Ref)-instance-method","name":"inputs","doc":"Provide all signal nodes that can be routed to *destination*.","summary":"

Provide all signal nodes that can be routed to destination.

","abstract":false,"args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"args_string":"(destination : Node::Ref)","args_html":"(destination : Node::Ref)","location":{"filename":"src/place/router/signal_graph.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L172"},"def":{"name":"inputs","args":[{"name":"destination","external_name":"destination","restriction":"Node::Ref"}],"visibility":"Public","body":"(g.subtree(destination.id)).map do |id|\n g[id]\nend"}},{"html_id":"inputs-instance-method","name":"inputs","doc":"Provide the signal nodes that form system inputs.","summary":"

Provide the signal nodes that form system inputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L166"},"def":{"name":"inputs","visibility":"Public","body":"g.sinks.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"output?(node:Node::Ref):Bool-instance-method","name":"output?","doc":"Checks if *node* is a system output.","summary":"

Checks if node is a system output.

","abstract":false,"args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"args_string":"(node : Node::Ref) : Bool","args_html":"(node : Node::Ref) : Bool","location":{"filename":"src/place/router/signal_graph.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L177"},"def":{"name":"output?","args":[{"name":"node","external_name":"node","restriction":"Node::Ref"}],"return_type":"Bool","visibility":"Public","body":"g.source?(node.id)"}},{"html_id":"outputs-instance-method","name":"outputs","doc":"Provide the signal nodes that form system outputs.","summary":"

Provide the signal nodes that form system outputs.

","abstract":false,"location":{"filename":"src/place/router/signal_graph.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L182"},"def":{"name":"outputs","visibility":"Public","body":"g.sources.compact_map do |id|\n if id == Mute.id\n else\n g[id]\n end\nend"}},{"html_id":"route(source:Node::Ref,destination:Node::Ref,max_dist=nil)-instance-method","name":"route","doc":"Find the signal path that connects *source* to *dest*, or `nil` if this is\nnot possible.\n\nProvides an `Iterator` that provides labels across each node, the edge, and\nsubsequent node.","summary":"

Find the signal path that connects source to dest, or nil if this is not possible.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"args_string":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","args_html":"(source : Node::Ref, destination : Node::Ref, max_dist = nil)","location":{"filename":"src/place/router/signal_graph.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L144"},"def":{"name":"route","args":[{"name":"source","external_name":"source","restriction":"Node::Ref"},{"name":"destination","external_name":"destination","restriction":"Node::Ref"},{"name":"max_dist","default_value":"nil","external_name":"max_dist","restriction":""}],"visibility":"Public","body":"path = g.path(destination.id, source.id, invert: true)\nif path\nelse\n return nil\nend\nif max_dist && path.size > max_dist\n return nil\nend\n(path.each_cons(2, true)).map do |__temp_943|\n succ, pred = __temp_943\n {g[succ], g[pred, succ], g[pred]}\nend\n"}}],"types":[{"html_id":"drivers/Place/Router/SignalGraph/Device","path":"Place/Router/SignalGraph/Device.html","kind":"alias","full_name":"Place::Router::SignalGraph::Device","name":"Device","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::Device","aliased_html":"Place::Router::SignalGraph::Node::Device","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge","path":"Place/Router/SignalGraph/Edge.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Active","path":"Place/Router/SignalGraph/Edge/Active.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Active","name":"Active","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"new(mod:Mod,func:Func::Type)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"args_string":"(mod : Mod, func : Func::Type)","args_html":"(mod : Mod, func : Func::Type)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"Mod"},{"name":"func","external_name":"func","restriction":"Func::Type"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, func)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@mod.clone, @func.clone)"}},{"html_id":"copy_with(mod_mod=@mod,func_func=@func)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"args_string":"(mod _mod = @mod, func _func = @func)","args_html":"(mod _mod = @mod, func _func = @func)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L13"},"def":{"name":"copy_with","args":[{"name":"_mod","default_value":"@mod","external_name":"mod","restriction":""},{"name":"_func","default_value":"@func","external_name":"func","restriction":""}],"visibility":"Public","body":"self.class.new(_mod, _func)"}},{"html_id":"func:Func::Type-instance-method","name":"func","abstract":false,"def":{"name":"func","return_type":"Func::Type","visibility":"Public","body":"@func"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","path":"Place/Router/SignalGraph/Edge/Func.html","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L15"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Mute","path":"Place/Router/SignalGraph/Edge/Func/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(state:Bool,index:Int32|String=0)-class-method","name":"new","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool, index : Int32 | String = 0)","args_html":"(state : Bool, index : Int32 | String = 0)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"new","args":[{"name":"state","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(state, index)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@state.clone, @index.clone)"}},{"html_id":"copy_with(state_state=@state,index_index=@index)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"args_string":"(state _state = @state, index _index = @index)","args_html":"(state _state = @state, index _index = @index)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L16"},"def":{"name":"copy_with","args":[{"name":"_state","default_value":"@state","external_name":"state","restriction":""},{"name":"_index","default_value":"@index","external_name":"index","restriction":""}],"visibility":"Public","body":"self.class.new(_state, _index)"}},{"html_id":"index:Int32|String-instance-method","name":"index","abstract":false,"def":{"name":"index","return_type":"Int32 | String","visibility":"Public","body":"@index"}},{"html_id":"state:Bool-instance-method","name":"state","abstract":false,"def":{"name":"state","return_type":"Bool","visibility":"Public","body":"@state"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Select","path":"Place/Router/SignalGraph/Edge/Func/Select.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Select","name":"Select","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"args_string":"(input : Int32 | String)","args_html":"(input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone)"}},{"html_id":"copy_with(input_input=@input)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"args_string":"(input _input = @input)","args_html":"(input _input = @input)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L20"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""}],"visibility":"Public","body":"self.class.new(_input)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Switch","path":"Place/Router/SignalGraph/Edge/Func/Switch.html","kind":"struct","full_name":"Place::Router::SignalGraph::Edge::Func::Switch","name":"Switch","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"},"constructors":[{"html_id":"new(input:Int32|String,output:Int32|String,layer:String)-class-method","name":"new","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"args_string":"(input : Int32 | String, output : Int32 | String, layer : String)","args_html":"(input : Int32 | String, output : Int32 | String, layer : String)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"new","args":[{"name":"input","external_name":"input","restriction":"Int32 | String"},{"name":"output","external_name":"output","restriction":"Int32 | String"},{"name":"layer","external_name":"layer","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(input, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@input.clone, @output.clone, @layer.clone)"}},{"html_id":"copy_with(input_input=@input,output_output=@output,layer_layer=@layer)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"args_string":"(input _input = @input, output _output = @output, layer _layer = @layer)","args_html":"(input _input = @input, output _output = @output, layer _layer = @layer)","location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L23"},"def":{"name":"copy_with","args":[{"name":"_input","default_value":"@input","external_name":"input","restriction":""},{"name":"_output","default_value":"@output","external_name":"output","restriction":""},{"name":"_layer","default_value":"@layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"self.class.new(_input, _output, _layer)"}},{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func/Type","path":"Place/Router/SignalGraph/Edge/Func/Type.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Func::Type","name":"Type","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch)","aliased_html":"Place::Router::SignalGraph::Edge::Func::Mute | Place::Router::SignalGraph::Edge::Func::Select | Place::Router::SignalGraph::Edge::Func::Switch","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge/Func","kind":"module","full_name":"Place::Router::SignalGraph::Edge::Func","name":"Func"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Label","path":"Place/Router/SignalGraph/Edge/Label.html","kind":"alias","full_name":"Place::Router::SignalGraph::Edge::Label","name":"Label","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static)","aliased_html":"Place::Router::SignalGraph::Edge::Active | Place::Router::SignalGraph::Edge::Static","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"}},{"html_id":"drivers/Place/Router/SignalGraph/Edge/Static","path":"Place/Router/SignalGraph/Edge/Static.html","kind":"class","full_name":"Place::Router::SignalGraph::Edge::Static","name":"Static","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/edge.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Edge","kind":"module","full_name":"Place::Router::SignalGraph::Edge","name":"Edge"},"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/edge.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/edge.cr#L8"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Input","path":"Place/Router/SignalGraph/Input.html","kind":"alias","full_name":"Place::Router::SignalGraph::Input","name":"Input","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceInput","aliased_html":"Place::Router::SignalGraph::Node::DeviceInput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Mod","path":"Place/Router/SignalGraph/Mod.html","kind":"class","full_name":"Place::Router::SignalGraph::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/mod.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"doc":"Reference to a PlaceOS module that provides IO nodes within the graph.","summary":"

Reference to a PlaceOS module that provides IO nodes within the graph.

","class_methods":[{"html_id":"parse?(ref)-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref)","args_html":"(ref)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L44"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"visibility":"Public","body":"if m = ref.match(/^(.+)\\/(.+)\\_(\\d+)$/)\n sys = m[1]\n mod = m[2]\n idx = m[3].to_i\n new(sys, mod, idx)\nend"}}],"constructors":[{"html_id":"new(sys:String,name:String,idx:Int32)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"args_string":"(sys : String, name : String, idx : Int32)","args_html":"(sys : String, name : String, idx : Int32)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L14"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"idx","external_name":"idx","restriction":"::Int32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"==(other:self)-instance-method","name":"==","doc":"Returns `true` if this reference is the same as *other*. Invokes `same?`.","summary":"

Returns true if this reference is the same as other.

","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"self"}],"args_string":"(other : self)","args_html":"(other : self)","def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"self"}],"visibility":"Public","body":"if same?(other)\n return true\nend\nif @id == (other.@id)\nelse\n return false\nend\ntrue\n"}},{"html_id":"audio_muteable?-instance-method","name":"audio_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"audio_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::AudioMuteable\".in?(metadata.implements)"}},{"html_id":"camera?-instance-method","name":"camera?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"camera?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Camera\".in?(metadata.implements)"}},{"html_id":"chat_functions?-instance-method","name":"chat_functions?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"chat_functions?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ChatFunctions\".in?(metadata.implements)"}},{"html_id":"desk_control?-instance-method","name":"desk_control?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"desk_control?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DeskControl\".in?(metadata.implements)"}},{"html_id":"door_security?-instance-method","name":"door_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"door_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::DoorSecurity\".in?(metadata.implements)"}},{"html_id":"electrical_relay?-instance-method","name":"electrical_relay?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"electrical_relay?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ElectricalRelay\".in?(metadata.implements)"}},{"html_id":"guest_building_access?-instance-method","name":"guest_building_access?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"guest_building_access?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::GuestBuildingAccess\".in?(metadata.implements)"}},{"html_id":"hash(hasher)-instance-method","name":"hash","doc":"See `Object#hash(hasher)`","summary":"

See Object#hash(hasher)

","abstract":false,"args":[{"name":"hasher","external_name":"hasher","restriction":""}],"args_string":"(hasher)","args_html":"(hasher)","def":{"name":"hash","args":[{"name":"hasher","external_name":"hasher","restriction":""}],"visibility":"Public","body":"hasher = @id.hash(hasher)\nhasher\n"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L12"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"idx:Int32-instance-method","name":"idx","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L10"},"def":{"name":"idx","return_type":"Int32","visibility":"Public","body":"@idx"}},{"html_id":"input_muteable?-instance-method","name":"input_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputMuteable\".in?(metadata.implements)"}},{"html_id":"input_selection?-instance-method","name":"input_selection?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"input_selection?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::InputSelection\".in?(metadata.implements)"}},{"html_id":"lighting?-instance-method","name":"lighting?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lighting?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lighting\".in?(metadata.implements)"}},{"html_id":"locatable?-instance-method","name":"locatable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"locatable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Locatable\".in?(metadata.implements)"}},{"html_id":"lockers?-instance-method","name":"lockers?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"lockers?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Lockers\".in?(metadata.implements)"}},{"html_id":"mailer?-instance-method","name":"mailer?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Mailer\".in?(metadata.implements)"}},{"html_id":"mailer_templates?-instance-method","name":"mailer_templates?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"mailer_templates?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::MailerTemplates\".in?(metadata.implements)"}},{"html_id":"metadata-instance-method","name":"metadata","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L19"},"def":{"name":"metadata","visibility":"Public","body":"(PlaceOS::Driver::Proxy::System.driver_metadata?(id)).not_nil!"}},{"html_id":"moveable?-instance-method","name":"moveable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"moveable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Moveable\".in?(metadata.implements)"}},{"html_id":"muteable?-instance-method","name":"muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Muteable\".in?(metadata.implements)"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L9"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"powerable?-instance-method","name":"powerable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"powerable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Powerable\".in?(metadata.implements)"}},{"html_id":"selectable?-instance-method","name":"selectable?","doc":"FIXME: drop if / after renaming InputSelection -> Selectable","summary":"

FIXME drop if / after renaming InputSelection -> Selectable

","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"selectable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Selectable\".in?(metadata.implements)"}},{"html_id":"sensor?-instance-method","name":"sensor?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sensor?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Sensor\".in?(metadata.implements)"}},{"html_id":"sms?-instance-method","name":"sms?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"sms?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::SMS\".in?(metadata.implements)"}},{"html_id":"stoppable?-instance-method","name":"stoppable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"stoppable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Stoppable\".in?(metadata.implements)"}},{"html_id":"switchable?-instance-method","name":"switchable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"switchable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Switchable\".in?(metadata.implements)"}},{"html_id":"sys:String-instance-method","name":"sys","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L8"},"def":{"name":"sys","return_type":"String","visibility":"Public","body":"@sys"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L40"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((((io << sys) << '/') << name) << '_') << idx"}},{"html_id":"video_muteable?-instance-method","name":"video_muteable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"video_muteable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::VideoMuteable\".in?(metadata.implements)"}},{"html_id":"zone_access_security?-instance-method","name":"zone_access_security?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zone_access_security?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::ZoneAccessSecurity\".in?(metadata.implements)"}},{"html_id":"zoomable?-instance-method","name":"zoomable?","abstract":false,"location":{"filename":"src/place/router/signal_graph/mod.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/mod.cr#L29"},"def":{"name":"zoomable?","visibility":"Public","body":"\"PlaceOS::Driver::Interface::Zoomable\".in?(metadata.implements)"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node","path":"Place/Router/SignalGraph/Node.html","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","path":"Place/Router/SignalGraph/Node/Device.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L136"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to the default / central node for a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1\n │ │ │\n │ │ └module index\n │ └module name\n └system\n","summary":"

Reference to the default / central node for a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L150"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if mod = Mod.parse?(ref)\n new(mod)\nend"}}],"constructors":[{"html_id":"new(sys,name,idx)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"args_string":"(sys, name, idx)","args_html":"(sys, name, idx)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L139"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"args_string":"(mod : Place::Router::SignalGraph::Mod)","args_html":"(mod : Place::Router::SignalGraph::Mod)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L143"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L137"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L146"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << mod"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","path":"Place/Router/SignalGraph/Node/DeviceInput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L207"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal input to a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Display_1:hdmi\n │ │ │ │\n │ │ │ └input\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal input to a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L222"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, i = ref.rpartition(':')\nif mod = Mod.parse?(m)\n input = i.to_i? || i\n new(mod, input)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(sys, name, idx, input : Int32 | String)","args_html":"(sys, name, idx, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L211"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,input:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, input : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L215"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"input","external_name":"input","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, input)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"input:Int32|String-instance-method","name":"input","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L209"},"def":{"name":"input","return_type":"Int32 | String","visibility":"Public","body":"@input"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L208"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L218"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << ':') << input"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","path":"Place/Router/SignalGraph/Node/DeviceOutput.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Reference to a signal output from a device.\n\nThese take the cannonical string form of:\n\n sys-abc123/Switcher_1.1!video\n │ │ │ │ │_layer\n │ │ │ └output\n │ │ └module index\n │ └module namme\n └system\n","summary":"

Reference to a signal output from a device.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L187"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"m, _, o = ref.rpartition('.')\nif mod = Mod.parse?(m)\n output = o.to_i? || o\n new(mod, output)\nend\n"}}],"constructors":[{"html_id":"new(sys,name,idx,output:Int32|String,layer)-class-method","name":"new","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"args_string":"(sys, name, idx, output : Int32 | String, layer)","args_html":"(sys, name, idx, output : Int32 | String, layer)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L173"},"def":{"name":"new","args":[{"name":"sys","external_name":"sys","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"idx","external_name":"idx","restriction":""},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"},{"name":"layer","external_name":"layer","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(sys, name, idx, output, layer)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(mod:Place::Router::SignalGraph::Mod,output:Int32|String)-class-method","name":"new","abstract":false,"args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"args_string":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","args_html":"(mod : Place::Router::SignalGraph::Mod, output : Int32 | String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L178"},"def":{"name":"new","args":[{"name":"mod","external_name":"mod","restriction":"::Place::Router::SignalGraph::Mod"},{"name":"output","external_name":"output","restriction":"::Int32 | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(mod, output)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"layer:String-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L171"},"def":{"name":"layer","return_type":"String","visibility":"Public","body":"@layer"}},{"html_id":"mod:Mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L169"},"def":{"name":"mod","return_type":"Mod","visibility":"Public","body":"@mod"}},{"html_id":"output:Int32|String-instance-method","name":"output","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L170"},"def":{"name":"output","return_type":"Int32 | String","visibility":"Public","body":"@output"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L182"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"((io << mod) << '.') << output\nif @layer == DEFAULT_LAYER\nelse\n (io << '!') << @layer\nend\n"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","path":"Place/Router/SignalGraph/Node/Label.html","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Metadata tracked against each signal node.","summary":"

Metadata tracked against each signal node.

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(ref:Place::Router::SignalGraph::Node::Ref)-class-method","name":"new","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"args_string":"(ref : Place::Router::SignalGraph::Node::Ref)","args_html":"(ref : Place::Router::SignalGraph::Node::Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L12"},"def":{"name":"new","args":[{"name":"ref","external_name":"ref","restriction":"::Place::Router::SignalGraph::Node::Ref"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ref)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](*args,**options)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]"}},{"html_id":"[](*args,**options,&)-instance-method","name":"[]","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[](*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"[]=(key,value:JSON::Any)-instance-method","name":"[]=","doc":"Sets a metadata property of `self`.","summary":"

Sets a metadata property of self.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"args_string":"(key, value : JSON::Any)","args_html":"(key, value : JSON::Any)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"JSON::Any"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Int)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(key, value : Int)","args_html":"(key, value : Int)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Float)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"args_string":"(key, value : Float)","args_html":"(key, value : Float)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Float"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Array)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"args_string":"(key, value : Array)","args_html":"(key, value : Array)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Array"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value:Hash)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"args_string":"(key, value : Hash)","args_html":"(key, value : Hash)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":"Hash"}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]=(key,value)-instance-method","name":"[]=","abstract":false,"args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(key, value)","args_html":"(key, value)","def":{"name":"[]=","args":[{"name":"key","external_name":"key","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"(previous_def(key, value)).tap do\n notify\nend"}},{"html_id":"[]?(*args,**options)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options)","args_html":"(*args, **options)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"visibility":"Public","body":"meta[*args, **options]?"}},{"html_id":"[]?(*args,**options,&)-instance-method","name":"[]?","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args, **options, &)","args_html":"(*args, **options, &)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L35"},"def":{"name":"[]?","args":[{"name":"args","external_name":"args","restriction":""}],"double_splat":{"name":"options","external_name":"options","restriction":""},"splat_index":0,"yields":1,"block_arity":1,"visibility":"Public","body":"meta.[]?(*args, **options) do |*yield_args|\n yield *yield_args\nend"}},{"html_id":"locked:Bool-instance-method","name":"locked","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L27"},"def":{"name":"locked","return_type":"Bool","visibility":"Public","body":"@locked"}},{"html_id":"locked=(locked:Bool)-instance-method","name":"locked=","doc":"Locked state. When `true` changes to signal routes that transit this\nare blocked.","summary":"

Locked state.

","abstract":false,"args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"args_string":"(locked : Bool)","args_html":"(locked : Bool)","def":{"name":"locked=","args":[{"name":"locked","external_name":"locked","restriction":"Bool"}],"visibility":"Public","body":"(previous_def(locked)).tap do\n notify\nend"}},{"html_id":"meta:Hash(String,JSON::Any)-instance-method","name":"meta","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L33"},"def":{"name":"meta","return_type":"Hash(String, JSON::Any)","visibility":"Public","body":"if (__temp_1 = @meta).nil?\n @meta = (Hash(String, JSON::Any).new)\nelse\n __temp_1\nend"}},{"html_id":"meta=(meta:Hash(String,JSON::Any))-instance-method","name":"meta=","doc":"Additional metadata passed in from settings or dynamically applied.\nInformation here is propogated to exposed state keys. May be used for\nany information needed by a user interface or external system.","summary":"

Additional metadata passed in from settings or dynamically applied.

","abstract":false,"args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"args_string":"(meta : Hash(String, JSON::Any))","args_html":"(meta : Hash(String, JSON::Any))","def":{"name":"meta=","args":[{"name":"meta","external_name":"meta","restriction":"Hash(String, JSON::Any)"}],"visibility":"Public","body":"(previous_def(meta)).tap do\n notify\nend"}},{"html_id":"ref:Ref-instance-method","name":"ref","doc":"The `Node::Ref` used when creating this node.","summary":"

The Node::Ref used when creating this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L20"},"def":{"name":"ref","return_type":"Ref","visibility":"Public","body":"@ref"}},{"html_id":"source:Ref|Nil-instance-method","name":"source","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L23"},"def":{"name":"source","return_type":"Ref | ::Nil","visibility":"Public","body":"@source"}},{"html_id":"source=(source:Ref|Nil)-instance-method","name":"source=","doc":"`Ref` of the upstream signal source currently feeding this node.","summary":"

Ref of the upstream signal source currently feeding this node.

","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"args_string":"(source : Ref | Nil)","args_html":"(source : Ref | Nil)","def":{"name":"source=","args":[{"name":"source","external_name":"source","restriction":"Ref | ::Nil"}],"visibility":"Public","body":"(previous_def(source)).tap do\n notify\nend"}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L15"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << ref"}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","path":"Place/Router/SignalGraph/Node/Mute.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute","abstract":false,"superclass":{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},"ancestors":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref/ClassMethods","kind":"module","full_name":"Place::Router::SignalGraph::Node::Ref::ClassMethods","name":"ClassMethods"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Virtual node representing (any) mute source.\n\nThis may be refernced simply as `MUTE`.","summary":"

Virtual node representing (any) mute source.

","class_methods":[{"html_id":"parse?(ref):self|Nil-class-method","name":"parse?","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":""}],"args_string":"(ref) : self | Nil","args_html":"(ref) : self | Nil","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L247"},"def":{"name":"parse?","args":[{"name":"ref","external_name":"ref","restriction":""}],"return_type":"self | ::Nil","visibility":"Public","body":"if ref.upcase.ends_with?(\"MUTE\")\n instance\nend"}}],"constructors":[{"html_id":"instance:self-class-method","name":"instance","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L235"},"def":{"name":"instance","return_type":"self","visibility":"Public","body":"if (__temp_1 = @@instance).nil?\n @@instance = (new)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L240"},"def":{"name":"id","visibility":"Public","body":"0_u64"}},{"html_id":"mod-instance-method","name":"mod","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L244"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_s(io)-instance-method","name":"to_s","abstract":false,"args":[{"name":"io","external_name":"io","restriction":""}],"args_string":"(io)","args_html":"(io)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L252"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":""}],"visibility":"Public","body":"io << \"MUTE\""}}]},{"html_id":"drivers/Place/Router/SignalGraph/Node/Ref","path":"Place/Router/SignalGraph/Node/Ref.html","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Ref","name":"Ref","abstract":true,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEFAULT_LAYER","name":"DEFAULT_LAYER","value":"\"all\""}],"subclasses":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Device","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Device","name":"Device"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceInput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceInput","name":"DeviceInput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/DeviceOutput","kind":"struct","full_name":"Place::Router::SignalGraph::Node::DeviceOutput","name":"DeviceOutput"},{"html_id":"drivers/Place/Router/SignalGraph/Node/Mute","kind":"struct","full_name":"Place::Router::SignalGraph::Node::Mute","name":"Mute"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph/Node","kind":"module","full_name":"Place::Router::SignalGraph::Node","name":"Node"},"doc":"Base structure for referring to a node within the graph.","summary":"

Base structure for referring to a node within the graph.

","class_methods":[{"html_id":"resolve?(key:String,sys=nil)-class-method","name":"resolve?","doc":"Resolves a string-based node *key* to a fully-qualified reference.\n\nIf a system component is not present within *key*, this is resolved\nwithin the context of *sys*. For example:\n\n Ref.resolve(\"Display_1:hdmi\", \"sys-abc123\")\n # => DeviceInput(sys: \"sys-abc123\", mod: {\"Display\", 1}, input: \"hdmi\")\n","summary":"

Resolves a string-based node key to a fully-qualified reference.

","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"args_string":"(key : String, sys = nil)","args_html":"(key : String, sys = nil)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L81"},"def":{"name":"resolve?","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"sys","default_value":"nil","external_name":"sys","restriction":""}],"visibility":"Public","body":"ref = key.includes?('/') ? key : \"#{sys}/#{key}\"\n{% if true %}\n {% for type in @type.subclasses %}\n {{ type }}.parse?(ref) || \\\n {% end %}\n nil\n {% end %}\n"}}],"constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"new","visibility":"Public","body":"x = allocate\nif x.responds_to?(:finalize)\n ::GC.add_finalizer(x)\nend\nx\n"}}],"instance_methods":[{"html_id":"==(other:Ref)-instance-method","name":"==","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Ref"}],"args_string":"(other : Ref)","args_html":"(other : Ref)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L104"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":"Ref"}],"visibility":"Public","body":"id == other.id"}},{"html_id":"id-instance-method","name":"id","doc":"Node identifier for usage as the graph ID.","summary":"

Node identifier for usage as the graph ID.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L92"},"def":{"name":"id","visibility":"Public","body":"self.class.hash ^ self.hash"}},{"html_id":"initialize-instance-method","name":"initialize","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L72"},"def":{"name":"initialize","visibility":"Public","body":""}},{"html_id":"layer-instance-method","name":"layer","abstract":false,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L100"},"def":{"name":"layer","visibility":"Public","body":"DEFAULT_LAYER"}},{"html_id":"local(sys:String)-instance-method","name":"local","abstract":false,"args":[{"name":"sys","external_name":"sys","restriction":"String"}],"args_string":"(sys : String)","args_html":"(sys : String)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L108"},"def":{"name":"local","args":[{"name":"sys","external_name":"sys","restriction":"String"}],"visibility":"Public","body":"to_s.lchop(\"#{sys}/\")"}},{"html_id":"mod-instance-method","name":"mod","abstract":true,"location":{"filename":"src/place/router/signal_graph/node.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L96"},"def":{"name":"mod","visibility":"Public","body":""}},{"html_id":"to_json(json)-instance-method","name":"to_json","abstract":false,"args":[{"name":"json","external_name":"json","restriction":""}],"args_string":"(json)","args_html":"(json)","location":{"filename":"src/place/router/signal_graph/node.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/node.cr#L112"},"def":{"name":"to_json","args":[{"name":"json","external_name":"json","restriction":""}],"visibility":"Public","body":"json.string(to_s)"}}]}]},{"html_id":"drivers/Place/Router/SignalGraph/Output","path":"Place/Router/SignalGraph/Output.html","kind":"alias","full_name":"Place::Router::SignalGraph::Output","name":"Output","abstract":false,"locations":[{"filename":"src/place/router/signal_graph.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph.cr#L14"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph::Node::DeviceOutput","aliased_html":"Place::Router::SignalGraph::Node::DeviceOutput","const":false,"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"}},{"html_id":"drivers/Place/Router/SignalGraph/Watchable","path":"Place/Router/SignalGraph/Watchable.html","kind":"module","full_name":"Place::Router::SignalGraph::Watchable","name":"Watchable","abstract":false,"locations":[{"filename":"src/place/router/signal_graph/watchable.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L2"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"drivers/Place/Router/SignalGraph/Node/Label","kind":"class","full_name":"Place::Router::SignalGraph::Node::Label","name":"Label"}],"namespace":{"html_id":"drivers/Place/Router/SignalGraph","kind":"class","full_name":"Place::Router::SignalGraph","name":"SignalGraph"},"instance_methods":[{"html_id":"notify:Nil-instance-method","name":"notify","doc":"Notify subscribers with current state.","summary":"

Notify subscribers with current state.

","abstract":false,"location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L10"},"def":{"name":"notify","return_type":"Nil","visibility":"Public","body":"@subscribers.try(&.each(&.call(self)))"}},{"html_id":"watch(initial=true,&handler:self->):Nil-instance-method","name":"watch","doc":"Subscribe to updates.","summary":"

Subscribe to updates.

","abstract":false,"args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"args_string":"(initial = true, &handler : self -> ) : Nil","args_html":"(initial = true, &handler : self -> ) : Nil","location":{"filename":"src/place/router/signal_graph/watchable.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph/watchable.cr#L4"},"def":{"name":"watch","args":[{"name":"initial","default_value":"true","external_name":"initial","restriction":""}],"yields":1,"block_arity":1,"block_arg":{"name":"handler","external_name":"handler","restriction":"(self ->)"},"return_type":"Nil","visibility":"Public","body":"subscribers << handler\nif initial\n handler.call(self)\nend\n"}}]}]}]},{"html_id":"drivers/Place/Schedule","path":"Place/Schedule.html","kind":"class","full_name":"Place::Schedule","name":"Schedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":356,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L356"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel(event_id:String,reason:String|Nil=nil)-instance-method","name":"cancel","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, reason : String | Nil = nil)","args_html":"(event_id : String, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L202"},"def":{"name":"cancel","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"declining event: #{event_id}\"\nend\ncal_client.decline_event(user_id: me.email, id: event_id, notify: !!reason, comment: reason)\n\"cancelled\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L38"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"lookup or search for the email and phone numbers of other staff members if you haven't been provided their details. Do not guess.\\n\"\n str << \"provides details of my daily schedule, meeting room bookings and events I'm attending.\\n\"\n str << \"meeting room bookings must have a resource as an attendee.\\n\"\n str << \"my meeting room bookings will have me as the host or creator.\\n\"\n str << \"meeting rooms are the attendees marked as resources.\\n\"\n str << \"all day events may not have an ending time.\\n\"\n str << \"internal staff have the following email domain: #{@email_domain}. We can only obtain the schedules of internal staff\\n\"\n str << \"check schedules before booking or moving meetings to ensure no one is busy at that time\\n\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"create(event:CreateEvent)-instance-method","name":"create","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"args_string":"(event : CreateEvent)","args_html":"(event : CreateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L128"},"def":{"name":"create","args":[{"name":"event","external_name":"event","restriction":"CreateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nmy_email = me.email.downcase\nhost_email = (event.host.presence || me.email).downcase\ni_am_host = host_email == my_email\nhost_name = host_email\nattendees = event.attendees.uniq.reject do |attendee|\n attend_email = attendee.email.downcase\n if attend_email == host_email\n host_name = attendee.name\n true\n else\n if attend_email == my_email\n attendee.organizer = true\n false\n end\n end\nend\nattendees << PlaceCalendar::Event::Attendee.new(name: i_am_host ? me.name : host_name, email: host_email, response_status: \"accepted\", organizer: i_am_host)\nif event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\nend\nnew_event = PlaceCalendar::Event.new\nnew_event.attendees = attendees\nnew_event.title = event.title\nnew_event.location = event.location\nnew_event.all_day = event.all_day\nnew_event.event_start = event.starting.in(timezone)\nnew_event.event_end = event.ending.try(&.in(timezone))\nnew_event.body = event.title\nnew_event.timezone = timezone.name\nnew_event.creator = my_email\nnew_event.host = host_email\nlogger.debug do\n \"creating booking: #{new_event.inspect}\"\nend\ncreated_event = cal_client.create_event(user_id: my_email, event: new_event, calendar_id: host_email)\n(Event.from_json(created_event.to_json)).configure_times(timezone)\n"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L330"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_schedule: \"returns my schedule with event details with attendees and their response status. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", search_staff_member: \"search for a staff members phone and email addresses using odata filter queries, don't include `$filter=`, for example: `givenName eq 'mary' or startswith(surname,'smith')`, confrim with the user when there are multiple results, search for both givenName and surname using `or` if there is ambiguity\", lookup_staff_member: \"look up a staff members name and phone number by providing their email address. Use search if you only have their name\", get_schedules: \"returns busy periods of the emails specified. Search for staff first if you haven't been given their email address. This can be a person or a resource like a room. An empty schedules array means they are available\", create: \"create a calendar entry with the provided event details. Make sure the attendees are available by getting their schedules first, remember to include the host in the attendees list. An ending time is required except for all day bookings. You can specify an alternate host if booking on behalf of someone else. Don't provide a response_status for attendees when using this function. Starting and ending date times must be ISO 8601 formatted with the timezone\", modify: \"update the details of an existing event. The original id is required, otherwise you only need to provide the changes. You must provide the complete list of attendees if that list is being modified. Don't provide a response_status for attendees when using this function. You can't modify events where the start time is in the past\", cancel: \"cancels an event with an optional reason\", update_attending_status: \"use to confirm your attendance at a meeting this will update your attendee response_status in the specified meeting from your schedule. You should probably provide a reason when declining, however this is optional\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":359,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L359"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg3|\n __arg3[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"get_schedules(emails:Array(String),day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"get_schedules","abstract":false,"args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(emails : Array(String), day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L91"},"def":{"name":"get_schedules","args":[{"name":"emails","external_name":"emails","restriction":"Array(String)"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nif ending < Time.utc\n return \"past schedules are not useful\"\nend\nduration = ending - starting\nlogger.debug do\n \"getting schedules for #{emails} @ #{starting} -> #{ending}\"\nend\navailability_view_interval = {duration, 30.minutes}.min.total_minutes.to_i!\ntz = timezone\n(cal_client.get_availability(me.email, emails, starting, ending, view_interval: availability_view_interval)).map do |avail|\n {email: avail.calendar, schedule: avail.availability.map do |sched|\n {status: sched.status, starting: sched.starts_at.in(tz), ending: sched.ends_at.in(tz)}\n end}\nend\n"}},{"html_id":"lookup_staff_member(email:String)-instance-method","name":"lookup_staff_member","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L82"},"def":{"name":"lookup_staff_member","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"looking up staff member: #{email}\"\nend\ncal_client = place_calendar_client\nuser = cal_client.get_user_by_email(email)\nif user\nelse\n return \"could not find a staff member with email #{email}. Try searching for their name?\"\nend\nuser\n"}},{"html_id":"modify(event:UpdateEvent)-instance-method","name":"modify","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"args_string":"(event : UpdateEvent)","args_html":"(event : UpdateEvent)","location":{"filename":"src/place/llm/schedule.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L171"},"def":{"name":"modify","args":[{"name":"event","external_name":"event","restriction":"UpdateEvent"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nexisting = cal_client.get_event(me.email, id: event.id)\nif existing\nelse\n return \"error: could not find event with id '#{event.id}', it may have been cancelled?\"\nend\n{% for param in [\"title\", \"location\", \"host\", \"attendees\"] of ::String %}\n existing.{{ param.id }} = event.{{ param.id }}.nil? ? existing.{{ param.id }} : event.{{ param.id }}.not_nil!\n {% end %}\nexisting.event_start = event.starting.nil? ? existing.event_start.in(timezone) : event.starting.not_nil!.in(timezone)\nif event.all_day\n existing.all_day = true\n existing.event_end = nil\nelse\n existing.all_day = false\n existing.event_end = event.ending.nil? ? existing.event_end.try(&.in(timezone)) : event.ending.not_nil!.in(timezone)\n if event.ending.nil? && (event.all_day == false)\n return \"error: ending time required unless this is an all_day event\"\n end\nend\nlogger.debug do\n \"updating event: #{existing.inspect}\"\nend\nupdated_event = cal_client.update_event(user_id: me.email, event: existing, calendar_id: existing.host)\n(Event.from_json(updated_event.to_json)).configure_times(timezone)\n"}},{"html_id":"my_schedule(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_schedule","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L52"},"def":{"name":"my_schedule","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nlogger.debug do\n \"requesting events for #{me.name} (#{me.email}) @ #{starting} -> #{ending}\"\nend\nevents = cal_client.list_events(me.email, period_start: starting, period_end: ending)\nevents = Array(Event).from_json(events.to_json)\nevents.each do |event|\n event.configure_times(timezone)\nend\nevents\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"search_staff_member(filter:String)-instance-method","name":"search_staff_member","abstract":false,"args":[{"name":"filter","external_name":"filter","restriction":"String"}],"args_string":"(filter : String)","args_html":"(filter : String)","location":{"filename":"src/place/llm/schedule.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L75"},"def":{"name":"search_staff_member","args":[{"name":"filter","external_name":"filter","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"searching for staff member: #{filter}\"\nend\ncal_client = place_calendar_client\ncal_client.list_users(filter: filter)\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L334"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}},{"html_id":"update_attending_status(event_id:String,attendance:Attendance,reason:String|Nil=nil)-instance-method","name":"update_attending_status","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"args_string":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","args_html":"(event_id : String, attendance : Attendance, reason : String | Nil = nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L224"},"def":{"name":"update_attending_status","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"attendance","external_name":"attendance","restriction":"Attendance"},{"name":"reason","default_value":"nil","external_name":"reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"cal_client = place_calendar_client\nme = current_user\nlogger.debug do\n \"updating attendance: #{attendance} #{reason} -> #{event_id}\"\nend\ncase attendance\nin .decline?\n cal_client.decline_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"declined\"\nin .attend?\n cal_client.accept_event(user_id: me.email, id: event_id, notify: true, comment: reason)\n \"attending\"\nend\n"}}],"types":[{"html_id":"drivers/Place/Schedule/AccessToken","path":"Place/Schedule/AccessToken.html","kind":"struct","full_name":"Place::Schedule::AccessToken","name":"AccessToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(token:String,expires:Int64|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"args_string":"(token : String, expires : Int64 | Nil)","args_html":"(token : String, expires : Int64 | Nil)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"expires","external_name":"expires","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, expires)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@token.clone, @expires.clone)"}},{"html_id":"copy_with(token_token=@token,expires_expires=@expires)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"args_string":"(token _token = @token, expires _expires = @expires)","args_html":"(token _token = @token, expires _expires = @expires)","location":{"filename":"src/place/llm/schedule.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L372"},"def":{"name":"copy_with","args":[{"name":"_token","default_value":"@token","external_name":"token","restriction":""},{"name":"_expires","default_value":"@expires","external_name":"expires","restriction":""}],"visibility":"Public","body":"self.class.new(_token, _expires)"}},{"html_id":"expires:Int64|Nil-instance-method","name":"expires","abstract":false,"def":{"name":"expires","return_type":"Int64 | ::Nil","visibility":"Public","body":"@expires"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/Place/Schedule/Attendance","path":"Place/Schedule/Attendance.html","kind":"enum","full_name":"Place::Schedule::Attendance","name":"Attendance","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L218"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attend","name":"Attend","value":"0"},{"id":"Decline","name":"Decline","value":"1"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"instance_methods":[{"html_id":"attend?-instance-method","name":"attend?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L219"},"def":{"name":"attend?","visibility":"Public","body":"self == Attend"}},{"html_id":"decline?-instance-method","name":"decline?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L220"},"def":{"name":"decline?","visibility":"Public","body":"self == Decline"}}]},{"html_id":"drivers/Place/Schedule/CreateEvent","path":"Place/Schedule/CreateEvent.html","kind":"struct","full_name":"Place::Schedule::CreateEvent","name":"CreateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L256"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L257"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L265"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L262"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L264"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L261"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L260"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L263"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L259"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/Event","path":"Place/Schedule/Event.html","kind":"class","full_name":"Place::Schedule::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L281"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L282"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L290"},"def":{"name":"all_day","return_type":"Bool","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L291"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee)","visibility":"Public","body":"@attendees"}},{"html_id":"configure_times(tz:Time::Location)-instance-method","name":"configure_times","abstract":false,"args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"args_string":"(tz : Time::Location)","args_html":"(tz : Time::Location)","location":{"filename":"src/place/llm/schedule.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L311"},"def":{"name":"configure_times","args":[{"name":"tz","external_name":"tz","restriction":"Time::Location"}],"visibility":"Public","body":"@time_zone = tz\n@starting = event_start.in(tz)\n@ending = event_end.try(&.in(tz))\nself\n"}},{"html_id":"creator:String|Nil-instance-method","name":"creator","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L289"},"def":{"name":"creator","return_type":"String | ::Nil","visibility":"Public","body":"@creator"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L302"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"event_end:Time|Nil-instance-method","name":"event_end","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L299"},"def":{"name":"event_end","return_type":"Time | ::Nil","visibility":"Public","body":"@event_end"}},{"html_id":"event_start:Time-instance-method","name":"event_start","doc":"We convert unix time into something more readable for a human or AI","summary":"

We convert unix time into something more readable for a human or AI

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":296,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L296"},"def":{"name":"event_start","return_type":"Time","visibility":"Public","body":"@event_start"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L288"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L284"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L286"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"online_meeting_url:String|Nil-instance-method","name":"online_meeting_url","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L292"},"def":{"name":"online_meeting_url","return_type":"String | ::Nil","visibility":"Public","body":"@online_meeting_url"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":301,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L301"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"status:String|Nil-instance-method","name":"status","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L287"},"def":{"name":"status","return_type":"String | ::Nil","visibility":"Public","body":"@status"}},{"html_id":"time_zone:Time::Location-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n ::raise(::NilAssertionError.new(\"Place::Schedule::Event#time_zone cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"time_zone?:Time::Location|Nil-instance-method","name":"time_zone?","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":309,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L309"},"def":{"name":"time_zone?","return_type":"Time::Location | ::Nil","visibility":"Public","body":"@time_zone"}},{"html_id":"timezone:String|Nil-instance-method","name":"timezone","doc":"these are used to configure the JSON times correctly","summary":"

these are used to configure the JSON times correctly

","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L306"},"def":{"name":"timezone","return_type":"String | ::Nil","visibility":"Public","body":"@timezone"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L285"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/UpdateEvent","path":"Place/Schedule/UpdateEvent.html","kind":"struct","full_name":"Place::Schedule::UpdateEvent","name":"UpdateEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L268"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L269"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"all_day:Bool|Nil-instance-method","name":"all_day","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L278"},"def":{"name":"all_day","return_type":"Bool | ::Nil","visibility":"Public","body":"@all_day"}},{"html_id":"attendees:Array(PlaceCalendar::Event::Attendee)|Nil-instance-method","name":"attendees","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L275"},"def":{"name":"attendees","return_type":"Array(PlaceCalendar::Event::Attendee) | ::Nil","visibility":"Public","body":"@attendees"}},{"html_id":"ending:Time|Nil-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L277"},"def":{"name":"ending","return_type":"Time | ::Nil","visibility":"Public","body":"@ending"}},{"html_id":"host:String|Nil-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L274"},"def":{"name":"host","return_type":"String | ::Nil","visibility":"Public","body":"@host"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L271"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L273"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"starting:Time|Nil-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L276"},"def":{"name":"starting","return_type":"Time | ::Nil","visibility":"Public","body":"@starting"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L272"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}}]},{"html_id":"drivers/Place/Schedule/User","path":"Place/Schedule/User.html","kind":"struct","full_name":"Place::Schedule::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L319"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L320"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L323"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L322"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Schedule/Zone","path":"Place/Schedule/Zone.html","kind":"struct","full_name":"Place::Schedule::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/schedule.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L338"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Schedule","kind":"class","full_name":"Place::Schedule","name":"Schedule"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/schedule.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L339"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L343"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L341"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L342"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":349,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L349"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/schedule.cr","line_number":346,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/schedule.cr#L346"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/SensorShutdown","path":"Place/SensorShutdown.html","kind":"class","full_name":"Place::SensorShutdown","name":"SensorShutdown","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/sensor_shutdown.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"event_in_progress?:Bool-instance-method","name":"event_in_progress?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L18"},"def":{"name":"event_in_progress?","return_type":"Bool","visibility":"Public","body":"@event_in_progress"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"timeout_ad_hoc = (setting?(UInt32, :timeout_ad_hoc)) || 15_u32.minutes\ntimeout_booked = (setting?(UInt32, :timeout_booked)) || 30_u32.minutes\nsubscriptions.clear\nbookings.subscribe(:status) do |_sub, status|\n update_status(status != \"\\\"free\\\"\")\nend\nbookings.subscribe(:sensor_stale) do |_sub, sensor_stale|\n update_stale_state(sensor_stale == \"true\")\nend\nbookings.subscribe(:presence) do |_sub, presence|\n update_presence(presence == \"true\")\nend\nav_control.subscribe(:active) do |_sub, active|\n update_room_power_state(active == \"true\")\nend\n"}},{"html_id":"people_present?:Bool-instance-method","name":"people_present?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L19"},"def":{"name":"people_present?","return_type":"Bool","visibility":"Public","body":"@people_present"}},{"html_id":"room_powered_on?:Bool-instance-method","name":"room_powered_on?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L21"},"def":{"name":"room_powered_on?","return_type":"Bool","visibility":"Public","body":"@room_powered_on"}},{"html_id":"sensor_stale?:Bool-instance-method","name":"sensor_stale?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L20"},"def":{"name":"sensor_stale?","return_type":"Bool","visibility":"Public","body":"@sensor_stale"}},{"html_id":"timer_active?:Bool-instance-method","name":"timer_active?","abstract":false,"location":{"filename":"src/place/meet/sensor_shutdown.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/sensor_shutdown.cr#L23"},"def":{"name":"timer_active?","return_type":"Bool","visibility":"Public","body":"@timer_active"}}]},{"html_id":"drivers/Place/Smtp","path":"Place/Smtp.html","kind":"class","full_name":"Place::Smtp","name":"Smtp","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/smtp.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/smtp.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L89"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"Base64.strict_encode((QRCode.new(text)).as_png(size: size))"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/smtp.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L85"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(QRCode.new(text)).as_svg"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/smtp.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L46"},"def":{"name":"on_update","visibility":"Public","body":"defaults = URI.parse(config.uri.not_nil!)\ntls_mode = if scheme = defaults.scheme\n scheme.ends_with?('s') ? EMail::Client::TLSMode::SMTPS : EMail::Client::TLSMode::STARTTLS\nelse\n EMail::Client::TLSMode::STARTTLS\nend\nport = defaults.port || 587\nhost = defaults.host || \"smtp.host\"\n@username = (setting?(String, :username)) || \"\"\n@password = (setting?(String, :password)) || \"\"\n@sender = (setting?(String, :sender)) || \"support@place.tech\"\n@host = (setting?(String, :host)) || host\n@port = (setting?(Int32, :port)) || port\n@tls_mode = (setting?(EMail::Client::TLSMode, :tls_mode)) || tls_mode\n@ssl_verify_ignore = (setting?(Bool, :ssl_verify_ignore)) || false\n@smtp_client = new_smtp_client\n@templates = (setting?(Templates, :email_templates)) || Templates.new\n"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil):Bool-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil) : Bool","location":{"filename":"src/place/smtp.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/smtp.cr#L93"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"return_type":"Bool","visibility":"Public","body":"if to.is_a?(Array)\nelse\n to = {to}\nend\nif from.nil? || from.is_a?(Array)\nelse\n from = {from}\nend\nif cc.nil? || cc.is_a?(Array)\nelse\n cc = {cc}\nend\nif bcc.nil? || bcc.is_a?(Array)\nelse\n bcc = {bcc}\nend\nif reply_to.nil? || reply_to.is_a?(Array)\nelse\n reply_to = {reply_to}\nend\nmessage = EMail::Message.new\nmessage.subject(subject)\nmessage.sender(@sender)\nif from.nil? || from.empty?\n message.from(@sender)\nelse\n from.each do |_from|\n message.from(_from)\n end\nend\nto.each do |_to|\n message.to(_to)\nend\nbcc.each do |_bcc|\n message.bcc(_bcc)\nend\ncc.each do |_cc|\n message.cc(_cc)\nend\nif reply_to\n reply_to.each do |_reply|\n message.reply_to(_reply)\n end\nend\nif message_plaintext.presence.nil?\nelse\n message.message(message_plaintext.as(String))\nend\nif message_html.presence.nil?\nelse\n message.message_html(message_html.as(String))\nend\n{resource_attachments, attachments}.map(&.each).each.flatten.each do |attachment|\n attachment_io = IO::Memory.new\n Base64.decode(attachment[:content], attachment_io)\n attachment_io.rewind\n case attachment\n in Attachment\n message.attach(io: attachment_io, file_name: attachment[:file_name])\n in ResourceAttachment\n message.message_resource(io: attachment_io, file_name: attachment[:file_name], cid: attachment[:content_id])\n end\nend\nsent = false\n@send_lock.synchronize do\n smtp_client.start do\n sent = send(message)\n end\nend\nsent\n"}}]},{"html_id":"drivers/Place/SpecHelper","path":"Place/SpecHelper.html","kind":"class","full_name":"Place::SpecHelper","name":"SpecHelper","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/spec_helper.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/spec_helper.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"implemented_in_driver-instance-method","name":"implemented_in_driver","doc":"This method will be exposed on the module","summary":"

This method will be exposed on the module

","abstract":false,"location":{"filename":"src/place/spec_helper.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/spec_helper.cr#L5"},"def":{"name":"implemented_in_driver","visibility":"Public","body":"\"woot!\""}}]},{"html_id":"drivers/Place/StaffAPI","path":"Place/StaffAPI.html","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"approve(booking_id:String|Int64)-instance-method","name":"approve","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":647,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L647"},"def":{"name":"approve","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"approving booking #{booking_id}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/approve\", headers: authentication)\nif response.success?\nelse\n raise(\"issue approving booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_check_in(booking_id:String|Int64,state:Bool=true,utm_source:String|Nil=nil)-instance-method","name":"booking_check_in","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, state : Bool = true, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L663"},"def":{"name":"booking_check_in","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"checking in booking #{booking_id} to: #{state}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n form.add(\"state\", state.to_s)\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/check_in?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue checking in booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_delete(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"booking_delete","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":676,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L676"},"def":{"name":"booking_delete","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"deleting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = delete(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"booking_state(booking_id:String|Int64,state:String)-instance-method","name":"booking_state","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(booking_id : String | Int64, state : String)","args_html":"(booking_id : String | Int64, state : String)","location":{"filename":"src/place/staff_api.cr","line_number":655,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L655"},"def":{"name":"booking_state","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id} state to: #{state}\"\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/update_state?state=#{state}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue updating booking state #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"chat_members(session_id:String):Array(String)-instance-method","name":"chat_members","abstract":false,"args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"args_string":"(session_id : String) : Array(String)","args_html":"(session_id : String) : Array(String)","location":{"filename":"src/place/staff_api.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L289"},"def":{"name":"chat_members","args":[{"name":"session_id","external_name":"session_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"SimpleRetry.try_to(max_attempts: 3, base_interval: 1.second, max_interval: 5.seconds) do\n response = get(\"/api/engine/v2/webrtc/members/#{session_id}\", headers: authentication)\n if response.success?\n else\n raise(\"webrtc service possibly unavailable\")\n end\n Array(String).from_json(response.not_nil!.body)\nend"}},{"html_id":"create_booking(booking_type:String,asset_id:String,user_id:String,user_email:String,user_name:String,zones:Array(String),booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,checked_in:Bool=false,approved:Bool|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,time_zone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,utm_source:String|Nil=nil,limit_override:Int64|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,attendees:Array(PlaceCalendar::Event::Attendee)|Nil=nil)-instance-method","name":"create_booking","doc":"===================================\nBOOKINGS ACTIONS\n===================================","summary":"

=================================== BOOKINGS ACTIONS ===================================

","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"args_string":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","args_html":"(booking_type : String, asset_id : String, user_id : String, user_email : String, user_name : String, zones : Array(String), booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, checked_in : Bool = false, approved : Bool | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, time_zone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, utm_source : String | Nil = nil, limit_override : Int64 | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, attendees : Array(PlaceCalendar::Event::Attendee) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":531,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L531"},"def":{"name":"create_booking","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"zones","external_name":"zones","restriction":"Array(String)"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"checked_in","default_value":"false","external_name":"checked_in","restriction":"Bool"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"time_zone","default_value":"nil","external_name":"time_zone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"attendees","default_value":"nil","external_name":"attendees","restriction":"Array(PlaceCalendar::Event::Attendee) | ::Nil"}],"visibility":"Public","body":"now = time_zone ? Time.local(Time::Location.load(time_zone)) : Time.local\nbooking_start || (booking_start = now.at_beginning_of_day.to_unix)\nbooking_end || (booking_end = now.at_end_of_day.to_unix)\nif checked_in\n checked_in_at = now.to_unix\nend\nlogger.debug do\n \"creating a #{booking_type} booking, starting #{booking_start}, asset #{asset_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\n if event_id.nil?\n else\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.nil?\n else\n form.add(\"ical_uid\", ical_uid.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"booking_type\" => booking_type, \"asset_id\" => asset_id, \"user_id\" => user_id, \"user_email\" => user_email, \"user_name\" => user_name, \"zones\" => zones, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"approved\" => approved, \"title\" => title, \"description\" => description, \"timezone\" => time_zone, \"extension_data\" => extension_data || (JSON.parse(\"{}\")), \"attendees\" => attendees}.compact.to_json)\nif response.success?\nelse\n raise(\"issue creating #{booking_type} booking, starting #{booking_start}, asset #{asset_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"create_event(event:PlaceCalendar::Event)-instance-method","name":"create_event","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(event : PlaceCalendar::Event)","args_html":"(event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L416"},"def":{"name":"create_event","args":[{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = post(\"/api/staff/v1/events\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"create_user(body_json:String)-instance-method","name":"create_user","abstract":false,"args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(body_json : String)","args_html":"(body_json : String)","location":{"filename":"src/place/staff_api.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L192"},"def":{"name":"create_user","args":[{"name":"body_json","external_name":"body_json","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/users\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to create user: #{response.status_code}\")\nend\nPlaceOS::Client::API::Models::User.from_json(response.body)\n"}},{"html_id":"delete_event(system_id:String,event_id:String)-instance-method","name":"delete_event","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(system_id : String, event_id : String)","args_html":"(system_id : String, event_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L423"},"def":{"name":"delete_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"response = delete(\"/api/staff/v1/events/#{event_id}?system_id=#{system_id}\", headers: authentication)\nif response.success? || (response.status_code == 404)\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"delete_user(id:String,force_removal:Bool=false):Nil-instance-method","name":"delete_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"args_string":"(id : String, force_removal : Bool = false) : Nil","args_html":"(id : String, force_removal : Bool = false) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L210"},"def":{"name":"delete_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"force_removal","default_value":"false","external_name":"force_removal","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"response = delete(\"/api/engine/v2/users/#{id}?force_removal=#{force_removal}\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to delete user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"get_booking(booking_id:String|Int64)-instance-method","name":"get_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"args_string":"(booking_id : String | Int64)","args_html":"(booking_id : String | Int64)","location":{"filename":"src/place/staff_api.cr","line_number":761,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L761"},"def":{"name":"get_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"}],"visibility":"Public","body":"logger.debug do\n \"getting booking #{booking_id}\"\nend\nresponse = get(\"/api/staff/v1/bookings/#{booking_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue getting booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_event(event_id:String,system_id:String|Nil=nil,calendar:String|Nil=nil)-instance-method","name":"get_event","doc":"gets an event from either the `system_id` or `calendar` if only one is provided\nif both are provided, it gets the event from `calendar` and the metadata from `system_id`\nNOTE:: the use of `calendar` will typically not work from a driver unless the X-API-Key\n has read access to it. From a driver perspective you should probably use a\n dedicated Calendar driver with application access and the query_metadata function\n below if metadata is required: `query_metadata(system_id: \"sys\", event_ref: [\"id\", \"uuid\"])`","summary":"

gets an event from either the system_id or calendar if only one is provided if both are provided, it gets the event from calendar and the metadata from system_id NOTE:: the use of calendar will typically not work from a driver unless the X-API-Key has read access to it.

","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"args_string":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","args_html":"(event_id : String, system_id : String | Nil = nil, calendar : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":388,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L388"},"def":{"name":"get_event","args":[{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"calendar","default_value":"nil","external_name":"calendar","restriction":"String | ::Nil"}],"visibility":"Public","body":"if calendar.presence || system_id.presence\nelse\n raise(ArgumentError.new(\"requires system_id or calendar param\"))\nend\nparams = URI::Params.build do |form|\n if calendar.presence\n form.add(\"calendar\", calendar.to_s)\n end\n if system_id.presence\n form.add(\"system_id\", system_id.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events/#{event_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"get_survey_invites(survey_id:Int64|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"get_survey_invites","abstract":false,"args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","args_html":"(survey_id : Int64 | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":772,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L772"},"def":{"name":"get_survey_invites","args":[{"name":"survey_id","default_value":"nil","external_name":"survey_id","restriction":"Int64 | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"getting survey_invites (survey #{survey_id}, sent #{sent})\"\nend\nparams = URI::Params.new\nif survey_id\n params[\"survey_id\"] = survey_id.to_s\nend\nif sent.nil?\nelse\n params[\"sent\"] = sent.to_s\nend\nresponse = get(\"/api/staff/v1/surveys/invitations\", params, headers: authentication)\nif response.success?\nelse\n raise(\"issue getting survey invitations (survey #{survey_id}, sent #{sent}): #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"get_system(id:String,complete:Bool=false)-instance-method","name":"get_system","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"args_string":"(id : String, complete : Bool = false)","args_html":"(id : String, complete : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L112"},"def":{"name":"get_system","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"complete","default_value":"false","external_name":"complete","restriction":"Bool"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}?complete=#{complete}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for system id #{id}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing system #{id}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"guest_details(guest_id:String)-instance-method","name":"guest_details","doc":"===================================\nGuest details\n===================================","summary":"

=================================== Guest details ===================================

","abstract":false,"args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"args_string":"(guest_id : String)","args_html":"(guest_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":305,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L305"},"def":{"name":"guest_details","args":[{"name":"guest_id","external_name":"guest_id","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/guests/#{guest_id}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"kick_user(user_id:String,session_id:String,reason:String)-instance-method","name":"kick_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"args_string":"(user_id : String, session_id : String, reason : String)","args_html":"(user_id : String, session_id : String, reason : String)","location":{"filename":"src/place/staff_api.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L282"},"def":{"name":"kick_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"reason","external_name":"reason","restriction":"String"}],"visibility":"Public","body":"response = post(\"/api/engine/v2/webrtc/kick/#{user_id}/#{session_id}\", headers: authentication, body: {reason: reason}.to_json)\nresponse.status_code\n"}},{"html_id":"lookup_authority_id(retry:Int32=0)-instance-method","name":"lookup_authority_id","abstract":false,"args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"args_string":"(retry : Int32 = 0)","args_html":"(retry : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L51"},"def":{"name":"lookup_authority_id","args":[{"name":"retry","default_value":"0","external_name":"retry","restriction":"Int32"}],"visibility":"Public","body":"begin\n response = get(\"/auth/authority\")\n if response.success?\n else\n raise(\"unexpected response for /auth/authority: #{response.status_code}\\n#{response.body}\")\n end\n old_id = @authority_id\n @authority_id = (NamedTuple(id: String).from_json(response.body))[:id]\n if old_id == @authority_id\n else\n monitor_event_changes\n end\n @authority_id\nrescue error\n logger.warn(exception: error) do\n \"failed to lookup authority id\"\n end\n sleep(rand(3))\n retry = retry + 1\n if retry == 10\n return\n end\n spawn do\n lookup_authority_id(retry)\n end\nend"}},{"html_id":"merge_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"merge_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":502,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L502"},"def":{"name":"merge_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.merge(id, key, payload, description)"}},{"html_id":"metadata(id:String,key:String|Nil=nil)-instance-method","name":"metadata","doc":"===================================\nZONE METADATA\n===================================","summary":"

=================================== ZONE METADATA ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":488,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L488"},"def":{"name":"metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.fetch(id, key)"}},{"html_id":"metadata_children(id:String,key:String|Nil=nil)-instance-method","name":"metadata_children","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"args_string":"(id : String, key : String | Nil = nil)","args_html":"(id : String, key : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":492,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L492"},"def":{"name":"metadata_children","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","default_value":"nil","external_name":"key","restriction":"String | ::Nil"}],"visibility":"Public","body":"placeos_client.metadata.children(id, key)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = (setting(String, :api_key)) || \"\"\nif @api_key.presence\n @access_expires = 30.years.from_now\nend\n@place_domain = URI.parse(config.uri.not_nil!)\n@host_header = (setting?(String, :host_header)) || @place_domain.host.not_nil!\nif @api_key.presence\nelse\n return\nend\nif setting?(Bool, :disable_event_notify)\n return\nend\nschedule.clear\nschedule.every(1.hour + (rand(300)).seconds) do\n lookup_authority_id\nend\nschedule.in(1.second) do\n lookup_authority_id\nend\n"}},{"html_id":"patch_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"patch_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":429,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L429"},"def":{"name":"patch_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"push_event_status-instance-method","name":"push_event_status","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L103"},"def":{"name":"push_event_status","visibility":"Public","body":"{authority_id: @authority_id, monitoring: !!@event_monitoring, events: @notify_count, failures: @notify_fails}"}},{"html_id":"query_bookings(type:String|Nil=nil,period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,zones:Array(String)=[]ofString,user:String|Nil=nil,email:String|Nil=nil,state:String|Nil=nil,event_id:String|Nil=nil,ical_uid:String|Nil=nil,created_before:Int64|Nil=nil,created_after:Int64|Nil=nil,approved:Bool|Nil=nil,rejected:Bool|Nil=nil,checked_in:Bool|Nil=nil,include_checked_out:Bool|Nil=nil,extension_data:JSON::Any|Nil=nil)-instance-method","name":"query_bookings","doc":"===================================\nBOOKINGS QUERY\n===================================","summary":"

=================================== BOOKINGS QUERY ===================================

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"args_string":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","args_html":"(type : String | Nil = nil, period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, zones : Array(String) = [] of String, user : String | Nil = nil, email : String | Nil = nil, state : String | Nil = nil, event_id : String | Nil = nil, ical_uid : String | Nil = nil, created_before : Int64 | Nil = nil, created_after : Int64 | Nil = nil, approved : Bool | Nil = nil, rejected : Bool | Nil = nil, checked_in : Bool | Nil = nil, include_checked_out : Bool | Nil = nil, extension_data : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":689,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L689"},"def":{"name":"query_bookings","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"zones","default_value":"[] of String","external_name":"zones","restriction":"Array(String)"},{"name":"user","default_value":"nil","external_name":"user","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"state","default_value":"nil","external_name":"state","restriction":"String | ::Nil"},{"name":"event_id","default_value":"nil","external_name":"event_id","restriction":"String | ::Nil"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"created_before","default_value":"nil","external_name":"created_before","restriction":"Int64 | ::Nil"},{"name":"created_after","default_value":"nil","external_name":"created_after","restriction":"Int64 | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"rejected","default_value":"nil","external_name":"rejected","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"include_checked_out","default_value":"nil","external_name":"include_checked_out","restriction":"Bool | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"period_start || (period_start = Time.utc.to_unix)\nperiod_end || (period_end = 30.minutes.from_now.to_unix)\nparams = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if type.presence\n form.add(\"type\", type.to_s)\n end\n if zones.empty?\n else\n form.add(\"zones\", zones.join(\",\"))\n end\n if user.presence\n form.add(\"user\", user.to_s)\n end\n if email.presence\n form.add(\"email\", email.to_s)\n end\n if state.presence\n form.add(\"state\", state.to_s)\n end\n if created_before\n form.add(\"created_before\", created_before.to_s)\n end\n if created_after\n form.add(\"created_after\", created_after.to_s)\n end\n if approved.nil?\n else\n form.add(\"approved\", approved.to_s)\n end\n if rejected.nil?\n else\n form.add(\"rejected\", rejected.to_s)\n end\n if checked_in.nil?\n else\n form.add(\"checked_in\", checked_in.to_s)\n end\n if event_id.presence\n form.add(\"event_id\", event_id.to_s)\n end\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if include_checked_out.nil?\n else\n form.add(\"include_checked_out\", include_checked_out.to_s)\n end\n if extension_data\n value = extension_data.as_h.map do |k, v|\n \"#{k}:#{v}\"\n end.join(\",\")\n form.add(\"extension_data\", \"{#{value}}\")\n end\nend\nlogger.debug do\n \"requesting staff/v1/bookings: #{params}\"\nend\nbookings = [] of JSON::Any\nnext_request = \"/api/staff/v1/bookings?#{params}\"\nloop do\n response = get(next_request, headers: authentication)\n if response.success?\n else\n raise(\"issue loading list of bookings (zones #{zones}): #{response.status_code}\")\n end\n links = LinkHeader.new(response)\n new_bookings = (JSON.parse(response.body)).as_a\n bookings.concat(new_bookings)\n last_req = next_request\n next_request = links[\"next\"]?\n if (next_request.nil? || new_bookings.empty?) || (last_req == next_request)\n break\n end\nend\nlogger.debug do\n \"bookings count: #{bookings.size}\"\nend\nbookings\n"}},{"html_id":"query_events(period_start:Int64,period_end:Int64,zones:Array(String)|Nil=nil,systems:Array(String)|Nil=nil,capacity:Int32|Nil=nil,features:String|Nil=nil,bookable:Bool|Nil=nil,include_cancelled:Bool|Nil=nil)-instance-method","name":"query_events","doc":"===================================\nCALENDAR EVENT ACTIONS (via staff api)\n===================================","summary":"

=================================== CALENDAR EVENT ACTIONS (via staff api) ===================================

","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String) | Nil = nil, systems : Array(String) | Nil = nil, capacity : Int32 | Nil = nil, features : String | Nil = nil, bookable : Bool | Nil = nil, include_cancelled : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":350,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L350"},"def":{"name":"query_events","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","default_value":"nil","external_name":"zones","restriction":"Array(String) | ::Nil"},{"name":"systems","default_value":"nil","external_name":"systems","restriction":"Array(String) | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"include_cancelled","default_value":"nil","external_name":"include_cancelled","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n if zones && !zones.empty?\n form.add(\"zone_ids\", zones.join(\",\"))\n end\n if systems && !systems.empty?\n form.add(\"system_ids\", systems.join(\",\"))\n end\n if capacity\n form.add(\"capacity\", capacity.to_s)\n end\n if features\n form.add(\"features\", features)\n end\n if !bookable.nil?\n form.add(\"bookable\", bookable.to_s)\n end\n if !include_cancelled.nil?\n form.add(\"include_cancelled\", include_cancelled.to_s)\n end\nend\nresponse = get(\"/api/staff/v1/events?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_guests(period_start:Int64,period_end:Int64,zones:Array(String))-instance-method","name":"query_guests","abstract":false,"args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"args_string":"(period_start : Int64, period_end : Int64, zones : Array(String))","args_html":"(period_start : Int64, period_end : Int64, zones : Array(String))","location":{"filename":"src/place/staff_api.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L327"},"def":{"name":"query_guests","args":[{"name":"period_start","external_name":"period_start","restriction":"Int64"},{"name":"period_end","external_name":"period_end","restriction":"Int64"},{"name":"zones","external_name":"zones","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"period_start\", period_start.to_s)\n form.add(\"period_end\", period_end.to_s)\n form.add(\"zone_ids\", zones.join(\",\"))\nend\nresponse = get(\"/api/staff/v1/guests?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_metadata(period_start:Int64|Nil=nil,period_end:Int64|Nil=nil,field_name:String|Nil=nil,value:String|Nil=nil,system_id:String|Nil=nil,event_ref:Array(String)|Nil=nil)-instance-method","name":"query_metadata","doc":"Search for metadata that exists on events to obtain the event information.\nFor response details see `EventMetadata__Assigner` in the OpenAPI docs\nhttps://editor.swagger.io/?url=https://raw.githubusercontent.com/PlaceOS/staff-api/master/OPENAPI_DOC.yml","summary":"

Search for metadata that exists on events to obtain the event information.

","abstract":false,"args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"args_string":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","args_html":"(period_start : Int64 | Nil = nil, period_end : Int64 | Nil = nil, field_name : String | Nil = nil, value : String | Nil = nil, system_id : String | Nil = nil, event_ref : Array(String) | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":458,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L458"},"def":{"name":"query_metadata","args":[{"name":"period_start","default_value":"nil","external_name":"period_start","restriction":"Int64 | ::Nil"},{"name":"period_end","default_value":"nil","external_name":"period_end","restriction":"Int64 | ::Nil"},{"name":"field_name","default_value":"nil","external_name":"field_name","restriction":"String | ::Nil"},{"name":"value","default_value":"nil","external_name":"value","restriction":"String | ::Nil"},{"name":"system_id","default_value":"nil","external_name":"system_id","restriction":"String | ::Nil"},{"name":"event_ref","default_value":"nil","external_name":"event_ref","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if period_start\n form.add(\"period_start\", period_start.to_s)\n end\n if period_end\n form.add(\"period_end\", period_end.to_s)\n end\n if field_name.presence\n form.add(\"field_name\", field_name)\n end\n if value.presence\n form.add(\"value\", value)\n end\n if event_ref && !event_ref.empty?\n form.add(\"event_ref\", event_ref.join(\",\"))\n end\nend\nresponse = get(\"/api/staff/v1/events/extension_metadata/#{system_id}?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"query_users(q:String|Nil=nil,limit:Int32=20,offset:Int32=0,authority_id:String|Nil=nil,include_deleted:Bool=false)-instance-method","name":"query_users","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","args_html":"(q : String | Nil = nil, limit : Int32 = 20, offset : Int32 = 0, authority_id : String | Nil = nil, include_deleted : Bool = false)","location":{"filename":"src/place/staff_api.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L249"},"def":{"name":"query_users","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"20","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"authority_id","default_value":"nil","external_name":"authority_id","restriction":"String | ::Nil"},{"name":"include_deleted","default_value":"false","external_name":"include_deleted","restriction":"Bool"}],"visibility":"Public","body":"placeos_client.users.search(q: q, limit: limit, offset: offset, authority_id: authority_id, include_deleted: include_deleted)"}},{"html_id":"reject(booking_id:String|Int64,utm_source:String|Nil=nil)-instance-method","name":"reject","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"args_string":"(booking_id : String | Int64, utm_source : String | Nil = nil)","args_html":"(booking_id : String | Int64, utm_source : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":634,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L634"},"def":{"name":"reject","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"utm_source","default_value":"nil","external_name":"utm_source","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"rejecting booking #{booking_id}\"\nend\nparams = URI::Params.build do |form|\n if utm_source.nil?\n else\n form.add(\"utm_source\", utm_source.to_s)\n end\nend\nresponse = post(\"/api/staff/v1/bookings/#{booking_id}/reject?#{params}\", headers: authentication)\nif response.success?\nelse\n raise(\"issue rejecting booking #{booking_id}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"replace_event_metadata(system_id:String,event_id:String,metadata:JSON::Any,ical_uid:String|Nil=nil,setup_time:Int64|Nil=nil,breakdown_time:Int64|Nil=nil,setup_event_id:String|Nil=nil,breakdown_event_id:String|Nil=nil)-instance-method","name":"replace_event_metadata","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"args_string":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","args_html":"(system_id : String, event_id : String, metadata : JSON::Any, ical_uid : String | Nil = nil, setup_time : Int64 | Nil = nil, breakdown_time : Int64 | Nil = nil, setup_event_id : String | Nil = nil, breakdown_event_id : String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":442,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L442"},"def":{"name":"replace_event_metadata","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"metadata","external_name":"metadata","restriction":"JSON::Any"},{"name":"ical_uid","default_value":"nil","external_name":"ical_uid","restriction":"String | ::Nil"},{"name":"setup_time","default_value":"nil","external_name":"setup_time","restriction":"Int64 | ::Nil"},{"name":"breakdown_time","default_value":"nil","external_name":"breakdown_time","restriction":"Int64 | ::Nil"},{"name":"setup_event_id","default_value":"nil","external_name":"setup_event_id","restriction":"String | ::Nil"},{"name":"breakdown_event_id","default_value":"nil","external_name":"breakdown_event_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n if ical_uid.presence\n form.add(\"ical_uid\", ical_uid.to_s)\n end\n if setup_time\n form.add(\"setup_time\", setup_time.to_s)\n end\n if breakdown_time\n form.add(\"breakdown_time\", breakdown_time.to_s)\n end\n if setup_event_id\n form.add(\"setup_event_id\", setup_event_id.to_s)\n end\n if breakdown_event_id\n form.add(\"breakdown_event_id\", breakdown_event_id.to_s)\n end\nend\nresponse = put(\"/api/staff/v1/events/#{event_id}/metadata/#{system_id}?#{params}\", headers: authentication, body: metadata.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON::Any.from_json(response.body)\n"}},{"html_id":"resource_token-instance-method","name":"resource_token","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L222"},"def":{"name":"resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"revive_user(id:String):Nil-instance-method","name":"revive_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L216"},"def":{"name":"revive_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{id}/revive\", headers: authentication)\nif response.success?\nelse\n raise(\"failed to revive user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"signal(channel:String,payload:JSON::Any|Nil=nil)-instance-method","name":"signal","abstract":false,"args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"args_string":"(channel : String, payload : JSON::Any | Nil = nil)","args_html":"(channel : String, payload : JSON::Any | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":800,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L800"},"def":{"name":"signal","args":[{"name":"channel","external_name":"channel","restriction":"String"},{"name":"payload","default_value":"nil","external_name":"payload","restriction":"JSON::Any | ::Nil"}],"visibility":"Public","body":"placeos_client.root.signal(channel, payload)"}},{"html_id":"staff_details(email:String)-instance-method","name":"staff_details","doc":"Staff details returns the information from AD","summary":"

Staff details returns the information from AD

","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/staff_api.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L172"},"def":{"name":"staff_details","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/staff/v1/people/#{email}\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response for staff #{email}: #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing staff #{email}:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"system_settings(id:String,key:String)-instance-method","name":"system_settings","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(id : String, key : String)","args_html":"(id : String, key : String)","location":{"filename":"src/place/staff_api.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L149"},"def":{"name":"system_settings","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"response = get(\"/api/engine/v2/systems/#{id}/settings\", headers: authentication)\nif response.success?\nelse\n raise(\"settings request failed for #{id}: #{response.status_code}\")\nend\nsetting = (Array(Setting).from_json(response.body)).select do |sub_setting|\n sub_setting.settings_string && (sub_setting.keys.includes?(key))\nend.last?\nif setting\nelse\n return nil\nend\n(YAML.parse(setting.settings_string.as(String)))[key]\n"}},{"html_id":"systems(q:String|Nil=nil,zone_id:String|Nil=nil,capacity:Int32|Nil=nil,bookable:Bool|Nil=nil,features:String|Nil=nil,limit:Int32=1000,offset:Int32=0)-instance-method","name":"systems","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"args_string":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","args_html":"(q : String | Nil = nil, zone_id : String | Nil = nil, capacity : Int32 | Nil = nil, bookable : Bool | Nil = nil, features : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0)","location":{"filename":"src/place/staff_api.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L124"},"def":{"name":"systems","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"},{"name":"capacity","default_value":"nil","external_name":"capacity","restriction":"Int32 | ::Nil"},{"name":"bookable","default_value":"nil","external_name":"bookable","restriction":"Bool | ::Nil"},{"name":"features","default_value":"nil","external_name":"features","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"}],"visibility":"Public","body":"placeos_client.systems.search(q: q, limit: limit, offset: offset, zone_id: zone_id, capacity: capacity, bookable: bookable, features: features)"}},{"html_id":"systems_in_building(zone_id:String,ids_only:Bool=true)-instance-method","name":"systems_in_building","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"args_string":"(zone_id : String, ids_only : Bool = true)","args_html":"(zone_id : String, ids_only : Bool = true)","location":{"filename":"src/place/staff_api.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L159"},"def":{"name":"systems_in_building","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"ids_only","default_value":"true","external_name":"ids_only","restriction":"Bool"}],"visibility":"Public","body":"levels = zones(parent: zone_id, tags: [\"level\"])\nif ids_only\n hash = {} of String => Array(String)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id).map(&.id)\n end\nelse\n hash = {} of String => Array(::PlaceOS::Client::API::Models::System)\n levels.each do |level|\n hash[level.id] = systems(zone_id: level.id)\n end\nend\nhash\n"}},{"html_id":"transfer_user(user_id:String,session_id:String,payload:JSON::Any)-instance-method","name":"transfer_user","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"args_string":"(user_id : String, session_id : String, payload : JSON::Any)","args_html":"(user_id : String, session_id : String, payload : JSON::Any)","location":{"filename":"src/place/staff_api.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L264"},"def":{"name":"transfer_user","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"session_id","external_name":"session_id","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"}],"visibility":"Public","body":"status = 200\npayload_str = payload.to_json\nSimpleRetry.try_to(max_attempts: 5, base_interval: 1.second, max_interval: 10.seconds) do\n response = post(\"/api/engine/v2/webrtc/transfer/#{user_id}/#{session_id}\", headers: authentication, body: payload_str)\n status = response.status_code\n if response.success?\n else\n raise(\"client not yet connected\")\n end\nend\nstatus\n"}},{"html_id":"update_booking(booking_id:String|Int64,booking_start:Int64|Nil=nil,booking_end:Int64|Nil=nil,asset_id:String|Nil=nil,title:String|Nil=nil,description:String|Nil=nil,timezone:String|Nil=nil,extension_data:JSON::Any|Nil=nil,approved:Bool|Nil=nil,checked_in:Bool|Nil=nil,limit_override:Int64|Nil=nil)-instance-method","name":"update_booking","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"args_string":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","args_html":"(booking_id : String | Int64, booking_start : Int64 | Nil = nil, booking_end : Int64 | Nil = nil, asset_id : String | Nil = nil, title : String | Nil = nil, description : String | Nil = nil, timezone : String | Nil = nil, extension_data : JSON::Any | Nil = nil, approved : Bool | Nil = nil, checked_in : Bool | Nil = nil, limit_override : Int64 | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":590,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L590"},"def":{"name":"update_booking","args":[{"name":"booking_id","external_name":"booking_id","restriction":"String | Int64"},{"name":"booking_start","default_value":"nil","external_name":"booking_start","restriction":"Int64 | ::Nil"},{"name":"booking_end","default_value":"nil","external_name":"booking_end","restriction":"Int64 | ::Nil"},{"name":"asset_id","default_value":"nil","external_name":"asset_id","restriction":"String | ::Nil"},{"name":"title","default_value":"nil","external_name":"title","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"timezone","default_value":"nil","external_name":"timezone","restriction":"String | ::Nil"},{"name":"extension_data","default_value":"nil","external_name":"extension_data","restriction":"JSON::Any | ::Nil"},{"name":"approved","default_value":"nil","external_name":"approved","restriction":"Bool | ::Nil"},{"name":"checked_in","default_value":"nil","external_name":"checked_in","restriction":"Bool | ::Nil"},{"name":"limit_override","default_value":"nil","external_name":"limit_override","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating booking #{booking_id}\"\nend\ncase checked_in\nin true\n checked_in_at = Time.utc.to_unix\nin false\n checked_out_at = Time.utc.to_unix\nin nil\nend\nparams = URI::Params.build do |form|\n if limit_override.nil?\n else\n form.add(\"limit_override\", limit_override.to_s)\n end\nend\nresponse = patch(\"/api/staff/v1/bookings/#{booking_id}?#{params}\", headers: authentication, body: {\"booking_start\" => booking_start, \"booking_end\" => booking_end, \"checked_in\" => checked_in, \"checked_in_at\" => checked_in_at, \"checked_out_at\" => checked_out_at, \"asset_id\" => asset_id, \"title\" => title, \"description\" => description, \"timezone\" => timezone, \"extension_data\" => extension_data}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating booking #{booking_id}: #{response.status_code}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"update_event(system_id:String,event:PlaceCalendar::Event)-instance-method","name":"update_event","doc":"NOTE:: https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit#\nThe service account making this request needs delegated access and hence you can only edit\nevents associated with a resource calendar","summary":"

NOTE : https://docs.google.com/document/d/1OaZljpjLVueFitmFWx8xy8BT8rA2lITyPsIvSYyNNW8/edit# The service account making this request needs delegated access and hence you can only edit events associated with a resource calendar

","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"args_string":"(system_id : String, event : PlaceCalendar::Event)","args_html":"(system_id : String, event : PlaceCalendar::Event)","location":{"filename":"src/place/staff_api.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L409"},"def":{"name":"update_event","args":[{"name":"system_id","external_name":"system_id","restriction":"String"},{"name":"event","external_name":"event","restriction":"PlaceCalendar::Event"}],"visibility":"Public","body":"response = patch(\"/api/staff/v1/events/#{event.id}?system_id=#{system_id}\", headers: authentication, body: event.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nPlaceCalendar::Event.from_json(response.body)\n"}},{"html_id":"update_guest(id:String,body_json:String):Nil-instance-method","name":"update_guest","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L318"},"def":{"name":"update_guest","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/staff/v1/guests/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update guest #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"update_survey_invite(token:String,email:String|Nil=nil,sent:Bool|Nil=nil)-instance-method","name":"update_survey_invite","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","args_html":"(token : String, email : String | Nil = nil, sent : Bool | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":783,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L783"},"def":{"name":"update_survey_invite","args":[{"name":"token","external_name":"token","restriction":"String"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"sent","default_value":"nil","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"updating survey invite #{token}\"\nend\nresponse = patch(\"/api/staff/v1/surveys/invitations/#{token}\", headers: authentication, body: {\"email\" => email, \"sent\" => sent}.compact.to_json)\nif response.success?\nelse\n raise(\"issue updating survey invite #{token}: #{response.status_code}\")\nend\ntrue\n"}},{"html_id":"update_user(id:String,body_json:String):Nil-instance-method","name":"update_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"args_string":"(id : String, body_json : String) : Nil","args_html":"(id : String, body_json : String) : Nil","location":{"filename":"src/place/staff_api.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L201"},"def":{"name":"update_user","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"body_json","external_name":"body_json","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"response = patch(\"/api/engine/v2/users/#{id}\", body: body_json, headers: authentication(HTTP::Headers {\"Content-Type\" => \"application/json\"}))\nif response.success?\nelse\n raise(\"failed to update user #{id}: #{response.status_code}\")\nend\n"}},{"html_id":"user(id:String)-instance-method","name":"user","doc":"===================================\nUser details\n===================================","summary":"

=================================== User details ===================================

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/staff_api.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L187"},"def":{"name":"user","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"placeos_client.users.fetch(id)"}},{"html_id":"user_resource_token-instance-method","name":"user_resource_token","doc":"NOTE:: this function requires \"users\" scope to be specified explicity for access","summary":"

NOTE : this function requires "users" scope to be specified explicity for access

","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L236"},"def":{"name":"user_resource_token","visibility":"Public","body":"response = post(\"/api/engine/v2/users/#{invoked_by_user_id}/resource_token\", headers: authentication)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nbegin\n JSON.parse(response.body)\nrescue error\n logger.debug do\n \"issue parsing:\\n#{response.body.inspect}\"\n end\n raise(error)\nend\n"}},{"html_id":"write_metadata(id:String,key:String,payload:JSON::Any,description:String=\"\")-instance-method","name":"write_metadata","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"args_string":"(id : String, key : String, payload : JSON::Any, description : String = \"\")","args_html":"(id : String, key : String, payload : JSON::Any, description : String = "")","location":{"filename":"src/place/staff_api.cr","line_number":497,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L497"},"def":{"name":"write_metadata","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"key","external_name":"key","restriction":"String"},{"name":"payload","external_name":"payload","restriction":"JSON::Any"},{"name":"description","default_value":"\"\"","external_name":"description","restriction":"String"}],"visibility":"Public","body":"placeos_client.metadata.update(id, key, payload, description)"}},{"html_id":"zone(zone_id:String)-instance-method","name":"zone","doc":"===================================\nZONE INFORMATION\n===================================","summary":"

=================================== ZONE INFORMATION ===================================

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/staff_api.cr","line_number":509,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L509"},"def":{"name":"zone","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"placeos_client.zones.fetch(zone_id)"}},{"html_id":"zones(q:String|Nil=nil,limit:Int32=1000,offset:Int32=0,parent:String|Nil=nil,tags:Array(String)|String|Nil=nil)-instance-method","name":"zones","abstract":false,"args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"args_string":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","args_html":"(q : String | Nil = nil, limit : Int32 = 1000, offset : Int32 = 0, parent : String | Nil = nil, tags : Array(String) | String | Nil = nil)","location":{"filename":"src/place/staff_api.cr","line_number":513,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L513"},"def":{"name":"zones","args":[{"name":"q","default_value":"nil","external_name":"q","restriction":"String | ::Nil"},{"name":"limit","default_value":"1000","external_name":"limit","restriction":"Int32"},{"name":"offset","default_value":"0","external_name":"offset","restriction":"Int32"},{"name":"parent","default_value":"nil","external_name":"parent","restriction":"String | ::Nil"},{"name":"tags","default_value":"nil","external_name":"tags","restriction":"Array(String) | String | ::Nil"}],"visibility":"Public","body":"placeos_client.zones.search(q: q, limit: limit, offset: offset, parent_id: parent, tags: tags)"}}],"types":[{"html_id":"drivers/Place/StaffAPI/PushEvent","path":"Place/StaffAPI/PushEvent.html","kind":"struct","full_name":"Place::StaffAPI::PushEvent","name":"PushEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L76"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L77"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"change:String-instance-method","name":"change","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L80"},"def":{"name":"change","return_type":"String","visibility":"Public","body":"@change"}},{"html_id":"event:JSON::Any|Nil-instance-method","name":"event","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L82"},"def":{"name":"event","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@event"}},{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L79"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L81"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}}]},{"html_id":"drivers/Place/StaffAPI/Setting","path":"Place/StaffAPI/Setting.html","kind":"struct","full_name":"Place::StaffAPI::Setting","name":"Setting","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/StaffAPI","kind":"class","full_name":"Place::StaffAPI","name":"StaffAPI"},"constructors":[{"html_id":"new(keys:Array(String),settings_string:String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"args_string":"(keys : Array(String), settings_string : String | Nil)","args_html":"(keys : Array(String), settings_string : String | Nil)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"new","args":[{"name":"keys","external_name":"keys","restriction":"Array(String)"},{"name":"settings_string","external_name":"settings_string","restriction":"String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keys, settings_string)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/staff_api.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L145"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@keys.clone, @settings_string.clone)"}},{"html_id":"copy_with(keys_keys=@keys,settings_string_settings_string=@settings_string)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"args_string":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","args_html":"(keys _keys = @keys, settings_string _settings_string = @settings_string)","location":{"filename":"src/place/staff_api.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/staff_api.cr#L144"},"def":{"name":"copy_with","args":[{"name":"_keys","default_value":"@keys","external_name":"keys","restriction":""},{"name":"_settings_string","default_value":"@settings_string","external_name":"settings_string","restriction":""}],"visibility":"Public","body":"self.class.new(_keys, _settings_string)"}},{"html_id":"keys:Array(String)-instance-method","name":"keys","abstract":false,"def":{"name":"keys","return_type":"Array(String)","visibility":"Public","body":"@keys"}},{"html_id":"settings_string:String|Nil-instance-method","name":"settings_string","abstract":false,"def":{"name":"settings_string","return_type":"String | ::Nil","visibility":"Public","body":"@settings_string"}}]}]},{"html_id":"drivers/Place/SurveyMailer","path":"Place/SurveyMailer.html","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L20"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@send_invites = (setting?(String, :send_invites)).presence\n@email_template = (setting?(String, :email_template)) || \"survey\"\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\nschedule.clear\nif invites = @send_invites\n schedule.cron(invites, @time_zone) do\n send_survey_emails\n end\nend\n"}},{"html_id":"send_survey_emails-instance-method","name":"send_survey_emails","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L61"},"def":{"name":"send_survey_emails","visibility":"Public","body":"invites = Array(SurveyInvite).from_json(staff_api.get_survey_invites(sent: false).get.to_json)\nsent_invites : Hash(String, Array(Int64)) = {} of String => Array(Int64)\ninvites.each do |invite|\n if invite.sent\n next\n end\n begin\n if !(sent_surveys = sent_invites[invite.email]?) || !(sent_surveys.includes?(invite.survey_id))\n __temp_953 = invite.email\n sent_invites[__temp_953]? || (sent_invites[__temp_953] = [] of Int64)\n sent_invites[invite.email] << invite.survey_id\n mailer.send_template(to: invite.email, template: {@email_template, \"invite\"}, args: {email: invite.email, token: invite.token, survey_id: invite.survey_id})\n end\n staff_api.update_survey_invite(invite.token, sent: true)\n rescue error\n logger.warn(exception: error) do\n \"failed to send survey email to #{invite.email}\"\n end\n end\nend\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L45"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"[TemplateFields.new(trigger: {@email_template, \"invite\"}, name: \"Survey invite\", description: \"Email invitation sent to participants to complete a survey\", fields: [{name: \"email\", description: \"Email address of the survey recipient\"}, {name: \"token\", description: \"Unique authentication token for accessing the survey\"}, {name: \"survey_id\", description: \"Unique identifier of the survey to be completed\"}])]"}}],"types":[{"html_id":"drivers/Place/SurveyMailer/SurveyInvite","path":"Place/SurveyMailer/SurveyInvite.html","kind":"struct","full_name":"Place::SurveyMailer::SurveyInvite","name":"SurveyInvite","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/survey_mailer.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L89"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/SurveyMailer","kind":"class","full_name":"Place::SurveyMailer","name":"SurveyMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/survey_mailer.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L90"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L95"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String"}],"args_string":"(email : String)","args_html":"(email : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L95"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String"}],"visibility":"Public","body":"@email = email"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L92"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L92"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"sent:Bool|Nil-instance-method","name":"sent","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L96"},"def":{"name":"sent","return_type":"Bool | ::Nil","visibility":"Public","body":"@sent"}},{"html_id":"sent=(sent:Bool|Nil)-instance-method","name":"sent=","abstract":false,"args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"args_string":"(sent : Bool | Nil)","args_html":"(sent : Bool | Nil)","location":{"filename":"src/place/survey_mailer.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L96"},"def":{"name":"sent=","args":[{"name":"sent","external_name":"sent","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@sent = sent"}},{"html_id":"survey_id:Int64-instance-method","name":"survey_id","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id","return_type":"Int64","visibility":"Public","body":"@survey_id"}},{"html_id":"survey_id=(survey_id:Int64)-instance-method","name":"survey_id=","abstract":false,"args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"args_string":"(survey_id : Int64)","args_html":"(survey_id : Int64)","location":{"filename":"src/place/survey_mailer.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L93"},"def":{"name":"survey_id=","args":[{"name":"survey_id","external_name":"survey_id","restriction":"Int64"}],"visibility":"Public","body":"@survey_id = survey_id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L94"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/place/survey_mailer.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/survey_mailer.cr#L94"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]},{"html_id":"drivers/Place/Tab","path":"Place/Tab.html","kind":"class","full_name":"Place::Tab","name":"Tab","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/meet/tab.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(icon:String,name:String,inputs:Array(String),help:Nil|String=nil,controls:Nil|String=nil,merge_on_join:Bool|Nil=nil,presentation_source:Nil|String=nil,json_unmapped:Hash(String,JSON::Any)=Hash(String,JSON::Any).new)-class-method","name":"new","abstract":false,"args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"args_string":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","args_html":"(icon : String, name : String, inputs : Array(String), help : Nil | String = nil, controls : Nil | String = nil, merge_on_join : Bool | Nil = nil, presentation_source : Nil | String = nil, json_unmapped : Hash(String, JSON::Any) = Hash(String, JSON::Any).new)","location":{"filename":"src/place/meet/tab.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L7"},"def":{"name":"new","args":[{"name":"icon","external_name":"icon","restriction":"::String"},{"name":"name","external_name":"name","restriction":"::String"},{"name":"inputs","external_name":"inputs","restriction":"::Array(::String)"},{"name":"help","default_value":"nil","external_name":"help","restriction":"::Nil | ::String"},{"name":"controls","default_value":"nil","external_name":"controls","restriction":"::Nil | ::String"},{"name":"merge_on_join","default_value":"nil","external_name":"merge_on_join","restriction":"::Bool | ::Nil"},{"name":"presentation_source","default_value":"nil","external_name":"presentation_source","restriction":"::Nil | ::String"},{"name":"json_unmapped","default_value":"Hash(String, JSON::Any).new","external_name":"json_unmapped","restriction":"::Hash(::String, ::JSON::Any)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(icon, name, inputs, help, controls, merge_on_join, presentation_source, json_unmapped)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/meet/tab.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L4"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"clone:Tab-instance-method","name":"clone","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L23"},"def":{"name":"clone","return_type":"Tab","visibility":"Public","body":"Tab.new(@icon, @name, inputs.dup, @help, @controls, @merge_on_join, @presentation_source, @json_unmapped.dup)"}},{"html_id":"controls:String|Nil-instance-method","name":"controls","doc":"such as: vidconf-controls","summary":"

such as: vidconf-controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L17"},"def":{"name":"controls","return_type":"String | ::Nil","visibility":"Public","body":"@controls"}},{"html_id":"help:String|Nil-instance-method","name":"help","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L14"},"def":{"name":"help","return_type":"String | ::Nil","visibility":"Public","body":"@help"}},{"html_id":"icon:String-instance-method","name":"icon","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L10"},"def":{"name":"icon","return_type":"String","visibility":"Public","body":"@icon"}},{"html_id":"inputs:Array(String)-instance-method","name":"inputs","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L12"},"def":{"name":"inputs","return_type":"Array(String)","visibility":"Public","body":"@inputs"}},{"html_id":"merge(tab:Tab):Tab-instance-method","name":"merge","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L27"},"def":{"name":"merge","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"input = (inputs.dup.concat(tab.inputs)).uniq!\nnew_unmapped = tab.json_unmapped.merge(json_unmapped)\nTab.new(@icon, @name, input, @help, @controls, @merge_on_join, @presentation_source, new_unmapped)\n"}},{"html_id":"merge!(tab:Tab):Tab-instance-method","name":"merge!","abstract":false,"args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"args_string":"(tab : Tab) : Tab","args_html":"(tab : Tab) : Tab","location":{"filename":"src/place/meet/tab.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L33"},"def":{"name":"merge!","args":[{"name":"tab","external_name":"tab","restriction":"Tab"}],"return_type":"Tab","visibility":"Public","body":"@json_unmapped.merge!(tab.json_unmapped)\n(@inputs.concat(tab.inputs)).uniq!\nself\n"}},{"html_id":"merge_on_join:Bool|Nil-instance-method","name":"merge_on_join","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L18"},"def":{"name":"merge_on_join","return_type":"Bool | ::Nil","visibility":"Public","body":"@merge_on_join"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"presentation_source:String|Nil-instance-method","name":"presentation_source","doc":"For the VC controls","summary":"

For the VC controls

","abstract":false,"location":{"filename":"src/place/meet/tab.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/meet/tab.cr#L21"},"def":{"name":"presentation_source","return_type":"String | ::Nil","visibility":"Public","body":"@presentation_source"}}]},{"html_id":"drivers/Place/TemplateMailer","path":"Place/TemplateMailer.html","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SEPERATOR","name":"SEPERATOR","value":"\".\""}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","doc":"This driver uses metadata templates to send emails via the SMTP mailer.\nIt should be configured as Mailer_1 with the next mailer in the chain as Mailer_2.\n\nIt also updates metadata in the staff API with available fields for use in email templates.","summary":"

This driver uses metadata templates to send emails via the SMTP mailer.

","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone_id:String-instance-method","name":"building_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L33"},"def":{"name":"building_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_zone_id).nil?\n @building_zone_id = ((get_local_zone_id(building_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"building_zone_ids:Array(String)-instance-method","name":"building_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L29"},"def":{"name":"building_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @building_zone_ids).nil?\n @building_zone_ids = ((get_zone_ids?(\"building\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"clear_template_cache(zone_id:String|Nil=nil)-instance-method","name":"clear_template_cache","abstract":false,"args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil = nil)","args_html":"(zone_id : String | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L177"},"def":{"name":"clear_template_cache","args":[{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"if zone_id && !zone_id.blank?\n @template_cache.delete(zone_id)\nelse\n @template_cache = TemplateCache.new\nend"}},{"html_id":"fetch_templates(zone_id:String|Nil):Array(Template)-instance-method","name":"fetch_templates","doc":"fetch templates from cache or metadata","summary":"

fetch templates from cache or metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(zone_id : String | Nil) : Array(Template)","args_html":"(zone_id : String | Nil) : Array(Template)","location":{"filename":"src/place/template_mailer.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L161"},"def":{"name":"fetch_templates","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Template)","visibility":"Public","body":"if zone_id\nelse\n return [] of Template\nend\nif (cache = @template_cache[zone_id]?) && cache[0] > Time.utc.to_unix\n cache[1]\nelse\n templates = (get_templates?(zone_id)) || ([] of Template)\n @template_cache[zone_id] = {Time.utc.to_unix + @cache_timeout, templates}\n templates\nend\n"}},{"html_id":"find_template?(template:String,zone_ids:Array(String)):Template|Nil-instance-method","name":"find_template?","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(template : String, zone_ids : Array(String)) : Template | Nil","args_html":"(template : String, zone_ids : Array(String)) : Template | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L194"},"def":{"name":"find_template?","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"Template | ::Nil","visibility":"Public","body":"org_id = (zone_ids & org_zone_ids)[0]?\nregion_id = (zone_ids & region_zone_ids)[0]?\nbuilding_id = (zone_ids & building_zone_ids)[0]?\nlevel_id = (zone_ids & level_zone_ids)[0]?\norg_templates = fetch_templates(org_id)\nregion_templates = fetch_templates(region_id)\nbuilding_templates = fetch_templates(building_id)\nlevel_templates = fetch_templates(level_id)\n(((level_templates.find do |t|\n t[\"trigger\"] == template\nend || building_templates.find do |t|\n t[\"trigger\"] == template\nend) || region_templates.find do |t|\n t[\"trigger\"] == template\nend) || org_templates.find do |t|\n t[\"trigger\"] == template\nend) || nil\n"}},{"html_id":"generate_png_qrcode(text:String,size:Int32=128):String-instance-method","name":"generate_png_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"args_string":"(text : String, size : Int32 = 128) : String","args_html":"(text : String, size : Int32 = 128) : String","location":{"filename":"src/place/template_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L218"},"def":{"name":"generate_png_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"},{"name":"size","default_value":"128","external_name":"size","restriction":"Int32"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_png_qrcode(text, size)).get.as_s"}},{"html_id":"generate_svg_qrcode(text:String):String-instance-method","name":"generate_svg_qrcode","abstract":false,"args":[{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(text : String) : String","args_html":"(text : String) : String","location":{"filename":"src/place/template_mailer.cr","line_number":214,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L214"},"def":{"name":"generate_svg_qrcode","args":[{"name":"text","external_name":"text","restriction":"String"}],"return_type":"String","visibility":"Public","body":"(mailer.generate_svg_qrcode(text)).get.as_s"}},{"html_id":"get_local_zone_id(zone_ids:Array(String)):String|Nil-instance-method","name":"get_local_zone_id","abstract":false,"args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"args_string":"(zone_ids : Array(String)) : String | Nil","args_html":"(zone_ids : Array(String)) : String | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L88"},"def":{"name":"get_local_zone_id","args":[{"name":"zone_ids","external_name":"zone_ids","restriction":"Array(String)"}],"return_type":"String | ::Nil","visibility":"Public","body":"begin\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine local zone id\"\n end\n nil\nend"}},{"html_id":"get_template_fields?(zone_id:String):Hash(String,MetadataTemplateFields)|Nil-instance-method","name":"get_template_fields?","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L95"},"def":{"name":"get_template_fields?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_template_fields\")).get[\"email_template_fields\"].to_json)\n Hash(String, MetadataTemplateFields).from_json(metadata.details.to_json)\nrescue error\n logger.warn(exception: error) do\n \"unable to get email template fields from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_templates?(zone_id:String):Array(Template)|Nil-instance-method","name":"get_templates?","doc":"get templates from metadata","summary":"

get templates from metadata

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Array(Template) | Nil","args_html":"(zone_id : String) : Array(Template) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L186"},"def":{"name":"get_templates?","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Array(Template) | ::Nil","visibility":"Public","body":"begin\n metadata = Metadata.from_json((staff_api.metadata(zone_id, \"email_templates\")).get[\"email_templates\"].to_json)\n metadata.details.as_a.map do |template|\n Template.from_json(template.to_json)\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to get email templates from zone #{zone_id} metadata\"\n end\n nil\nend"}},{"html_id":"get_zone_ids?(tag:String):Array(String)|Nil-instance-method","name":"get_zone_ids?","abstract":false,"args":[{"name":"tag","external_name":"tag","restriction":"String"}],"args_string":"(tag : String) : Array(String) | Nil","args_html":"(tag : String) : Array(String) | Nil","location":{"filename":"src/place/template_mailer.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L81"},"def":{"name":"get_zone_ids?","args":[{"name":"tag","external_name":"tag","restriction":"String"}],"return_type":"Array(String) | ::Nil","visibility":"Public","body":"begin\n staff_api.zones(tags: tag).get.as_a.map() do |__arg0|\n __arg0[\"id\"].as_s\n end\nrescue error\n logger.warn(exception: error) do\n \"unable to determine #{tag} zone ids\"\n end\n nil\nend"}},{"html_id":"level_zone_ids:Array(String)-instance-method","name":"level_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L30"},"def":{"name":"level_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @level_zone_ids).nil?\n @level_zone_ids = ((get_zone_ids?(\"level\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L35"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[1]"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L54"},"def":{"name":"on_update","visibility":"Public","body":"@org_zone_ids = nil\n@region_zone_ids = nil\n@building_zone_ids = nil\n@level_zone_ids = nil\n@org_zone_id = nil\n@building_zone_id = nil\n@cache_timeout = (setting?(Int64, :cache_timeout)) || 300_i64\n@keep_if_not_seen = (setting?(Int64, :keep_if_not_seen)) || 6_i64\ntimezone = (setting?(String, :timezone)).presence || \"Australia/Sydney\"\n@timezone = Time::Location.load(timezone)\n@update_schedule = (setting?(String, :update_schedule)).presence\nschedule.clear\nif update_schedule = @update_schedule\n schedule.cron(update_schedule, @timezone) do\n update_template_fields(org_zone_id)\n end\nend\nupdate_template_fields(org_zone_id)\n"}},{"html_id":"org_zone_id:String-instance-method","name":"org_zone_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L32"},"def":{"name":"org_zone_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @org_zone_id).nil?\n @org_zone_id = ((get_local_zone_id(org_zone_ids)).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"org_zone_ids:Array(String)-instance-method","name":"org_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L27"},"def":{"name":"org_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @org_zone_ids).nil?\n @org_zone_ids = ((get_zone_ids?(\"org\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"region_zone_ids:Array(String)-instance-method","name":"region_zone_ids","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L28"},"def":{"name":"region_zone_ids","return_type":"Array(String)","visibility":"Public","body":"if (__temp_1 = @region_zone_ids).nil?\n @region_zone_ids = ((get_zone_ids?(\"region\")).not_nil!)\nelse\n __temp_1\nend"}},{"html_id":"send_mail(to:String|Array(String),subject:String,message_plaintext:String|Nil=nil,message_html:String|Nil=nil,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_mail","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), subject : String, message_plaintext : String | Nil = nil, message_html : String | Nil = nil, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L222"},"def":{"name":"send_mail","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"subject","external_name":"subject","restriction":"String"},{"name":"message_plaintext","default_value":"nil","external_name":"message_plaintext","restriction":"String | ::Nil"},{"name":"message_html","default_value":"nil","external_name":"message_html","restriction":"String | ::Nil"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"mailer.send_mail(to, subject, message_plaintext, message_html, resource_attachments, attachments, cc, bcc, from, reply_to)"}},{"html_id":"send_template(to:String|Array(String),template:Tuple(String,String),args:TemplateItems,resource_attachments:Array(ResourceAttachment)=[]ofResourceAttachment,attachments:Array(Attachment)=[]ofAttachment,cc:String|Array(String)=[]ofString,bcc:String|Array(String)=[]ofString,from:String|Array(String)|Nil=nil,reply_to:String|Array(String)|Nil=nil)-instance-method","name":"send_template","abstract":false,"args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"args_string":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","args_html":"(to : String | Array(String), template : Tuple(String, String), args : TemplateItems, resource_attachments : Array(ResourceAttachment) = [] of ResourceAttachment, attachments : Array(Attachment) = [] of Attachment, cc : String | Array(String) = [] of String, bcc : String | Array(String) = [] of String, from : String | Array(String) | Nil = nil, reply_to : String | Array(String) | Nil = nil)","location":{"filename":"src/place/template_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L237"},"def":{"name":"send_template","args":[{"name":"to","external_name":"to","restriction":"String | Array(String)"},{"name":"template","external_name":"template","restriction":"Tuple(String, String)"},{"name":"args","external_name":"args","restriction":"TemplateItems"},{"name":"resource_attachments","default_value":"[] of ResourceAttachment","external_name":"resource_attachments","restriction":"Array(ResourceAttachment)"},{"name":"attachments","default_value":"[] of Attachment","external_name":"attachments","restriction":"Array(Attachment)"},{"name":"cc","default_value":"[] of String","external_name":"cc","restriction":"String | Array(String)"},{"name":"bcc","default_value":"[] of String","external_name":"bcc","restriction":"String | Array(String)"},{"name":"from","default_value":"nil","external_name":"from","restriction":"String | Array(String) | Nil"},{"name":"reply_to","default_value":"nil","external_name":"reply_to","restriction":"String | Array(String) | Nil"}],"visibility":"Public","body":"zone_ids = if (zones = args[\"zone_ids\"]?) && zones.is_a?(Array(String))\n zones\nelse\n [org_zone_id, building_zone_id]\nend\nmetadata_template = find_template?(template.join(SEPERATOR), zone_ids)\nif metadata_template\n subject = build_template(metadata_template[\"subject\"].to_s, args)\n text = (build_template(metadata_template[\"text\"]?.try(&.to_s), args)) || \"\"\n html = (build_template(metadata_template[\"html\"]?.try(&.to_s), args)) || \"\"\n if (from_template = metadata_template[\"from\"]?) && from_template.to_s.presence\n from = metadata_template[\"from\"].to_s\n end\n if (reply_to_template = metadata_template[\"reply_to\"]?) && reply_to_template.to_s.presence\n reply_to = metadata_template[\"reply_to\"].to_s\n end\n mailer.send_mail(to, subject, text, html, resource_attachments, attachments, cc, bcc, from, reply_to)\nelse\n logger.info do\n \"unable to find template #{template.join(SEPERATOR)} from zones #{zone_ids} metadata, forwarding to Mailer_2\"\n end\n mailer.send_template(to, template, args, resource_attachments, attachments, cc, bcc, from, reply_to)\nend\n"}},{"html_id":"sticky_template_fields(zone_id:String):Hash(String,MetadataTemplateFields)-instance-method","name":"sticky_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String) : Hash(String, MetadataTemplateFields)","args_html":"(zone_id : String) : Hash(String, MetadataTemplateFields)","location":{"filename":"src/place/template_mailer.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L103"},"def":{"name":"sticky_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"return_type":"Hash(String, MetadataTemplateFields)","visibility":"Public","body":"if @keep_if_not_seen == 0\n return Hash(String, MetadataTemplateFields).new\nend\ncurrent_fields = (get_template_fields?(zone_id)) || Hash(String, MetadataTemplateFields).new\nif current_fields.empty?\n return current_fields\nend\nif @keep_if_not_seen == -1\n return current_fields\nend\nsticky_fields = Hash(String, MetadataTemplateFields).new\ncurrent_fields.keys.each do |key|\n @not_seen_times[key] = @not_seen_times[key]? ? @not_seen_times[key] + 1 : 1_i64\n if @not_seen_times[key] <= @keep_if_not_seen\n sticky_fields[key] = current_fields[key]\n end\nend\nsticky_fields\n"}},{"html_id":"template_cache:Hash(String,{Int64,Array(Hash(String,Int64|String))})-instance-method","name":"template_cache","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L173"},"def":{"name":"template_cache","visibility":"Public","body":"@template_cache"}},{"html_id":"update_template_fields(zone_id:String)-instance-method","name":"update_template_fields","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"args_string":"(zone_id : String)","args_html":"(zone_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L126"},"def":{"name":"update_template_fields","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"}],"visibility":"Public","body":"template_fields : Hash(String, MetadataTemplateFields) = sticky_template_fields(zone_id)\n(system.implementing(Interface::MailerTemplates)).each do |driver|\n begin\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n rescue error\n logger.warn(exception: error) do\n \"unable to get template fields from module #{driver.module_id}\"\n end\n next\n end\n driver_template_fields = Array(TemplateFields).from_json(driver.template_fields.get.to_json)\n driver_template_fields.each do |field_list|\n template_fields[\"#{field_list[:trigger].join(SEPERATOR)}\"] = MetadataTemplateFields.new(module_name: driver.module_name, name: field_list[:name], description: field_list[:description], fields: field_list[:fields])\n end\nend\ntemplate_fields.keys.each do |key|\n @not_seen_times[key] = 0_i64\nend\nself[:template_fields] = template_fields\nif template_fields.empty?\nelse\n staff_api.write_metadata(id: zone_id, key: \"email_template_fields\", payload: template_fields, description: \"Available fields for use in email templates\").get\nend\n"}}],"types":[{"html_id":"drivers/Place/TemplateMailer/Metadata","path":"Place/TemplateMailer/Metadata.html","kind":"struct","full_name":"Place::TemplateMailer::Metadata","name":"Metadata","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":275,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L275"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L276"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L279"},"def":{"name":"description","return_type":"String","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/template_mailer.cr","line_number":279,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L279"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"@description = description"}},{"html_id":"details:JSON::Any-instance-method","name":"details","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L280"},"def":{"name":"details","return_type":"JSON::Any","visibility":"Public","body":"@details"}},{"html_id":"details=(details:JSON::Any)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"args_string":"(details : JSON::Any)","args_html":"(details : JSON::Any)","location":{"filename":"src/place/template_mailer.cr","line_number":280,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L280"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"JSON::Any"}],"visibility":"Public","body":"@details = details"}},{"html_id":"editors:Set(String)-instance-method","name":"editors","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L283"},"def":{"name":"editors","return_type":"Set(String)","visibility":"Public","body":"@editors"}},{"html_id":"editors=(editors:Set(String))-instance-method","name":"editors=","abstract":false,"args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"args_string":"(editors : Set(String))","args_html":"(editors : Set(String))","location":{"filename":"src/place/template_mailer.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L283"},"def":{"name":"editors=","args":[{"name":"editors","external_name":"editors","restriction":"Set(String)"}],"visibility":"Public","body":"@editors = editors"}},{"html_id":"modified_by_id:String|Nil-instance-method","name":"modified_by_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id","return_type":"String | ::Nil","visibility":"Public","body":"@modified_by_id"}},{"html_id":"modified_by_id=(modified_by_id:String|Nil)-instance-method","name":"modified_by_id=","abstract":false,"args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"args_string":"(modified_by_id : String | Nil)","args_html":"(modified_by_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":284,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L284"},"def":{"name":"modified_by_id=","args":[{"name":"modified_by_id","external_name":"modified_by_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@modified_by_id = modified_by_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L278"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":278,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L278"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id","return_type":"String","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"args_string":"(parent_id : String)","args_html":"(parent_id : String)","location":{"filename":"src/place/template_mailer.cr","line_number":281,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L281"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"schema_id:String|Nil-instance-method","name":"schema_id","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id","return_type":"String | ::Nil","visibility":"Public","body":"@schema_id"}},{"html_id":"schema_id=(schema_id:String|Nil)-instance-method","name":"schema_id=","abstract":false,"args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"args_string":"(schema_id : String | Nil)","args_html":"(schema_id : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L282"},"def":{"name":"schema_id=","args":[{"name":"schema_id","external_name":"schema_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@schema_id = schema_id"}}]},{"html_id":"drivers/Place/TemplateMailer/MetadataTemplateFields","path":"Place/TemplateMailer/MetadataTemplateFields.html","kind":"struct","full_name":"Place::TemplateMailer::MetadataTemplateFields","name":"MetadataTemplateFields","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/template_mailer.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L287"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"constructors":[{"html_id":"new(module_name:String,name:String,description:String|Nil=nil,fields:Array(NamedTuple(name:String,description:String))=[]ofNamedTuple(name:String,description:String))-class-method","name":"new","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","args_html":"(module_name : String, name : String, description : String | Nil = nil, fields : Array(NamedTuple(name: String, description: String)) = [] of NamedTuple(name: String, description: String))","location":{"filename":"src/place/template_mailer.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L295"},"def":{"name":"new","args":[{"name":"module_name","external_name":"module_name","restriction":"String"},{"name":"name","external_name":"name","restriction":"String"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"fields","default_value":"[] of NamedTuple(name: String, description: String)","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_name, name, description, fields)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/template_mailer.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L288"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L292"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"description=(description:String|Nil)-instance-method","name":"description=","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"args_string":"(description : String | Nil)","args_html":"(description : String | Nil)","location":{"filename":"src/place/template_mailer.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L292"},"def":{"name":"description=","args":[{"name":"description","external_name":"description","restriction":"String | ::Nil"}],"visibility":"Public","body":"@description = description"}},{"html_id":"fields:Array(NamedTuple(name:String,description:String))-instance-method","name":"fields","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L293"},"def":{"name":"fields","return_type":"Array(NamedTuple(name: String, description: String))","visibility":"Public","body":"@fields"}},{"html_id":"fields=(fields:Array(NamedTuple(name:String,description:String)))-instance-method","name":"fields=","abstract":false,"args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"args_string":"(fields : Array(NamedTuple(name: String, description: String)))","args_html":"(fields : Array(NamedTuple(name: String, description: String)))","location":{"filename":"src/place/template_mailer.cr","line_number":293,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L293"},"def":{"name":"fields=","args":[{"name":"fields","external_name":"fields","restriction":"Array(NamedTuple(name: String, description: String))"}],"visibility":"Public","body":"@fields = fields"}},{"html_id":"module_name:String-instance-method","name":"module_name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L290"},"def":{"name":"module_name","return_type":"String","visibility":"Public","body":"@module_name"}},{"html_id":"module_name=(module_name:String)-instance-method","name":"module_name=","abstract":false,"args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"args_string":"(module_name : String)","args_html":"(module_name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L290"},"def":{"name":"module_name=","args":[{"name":"module_name","external_name":"module_name","restriction":"String"}],"visibility":"Public","body":"@module_name = module_name"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L291"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/template_mailer.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L291"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/TemplateMailer/Template","path":"Place/TemplateMailer/Template.html","kind":"alias","full_name":"Place::TemplateMailer::Template","name":"Template","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L270"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Int64 | String)","aliased_html":"Hash(String, Int64 | String)","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}},{"html_id":"drivers/Place/TemplateMailer/TemplateCache","path":"Place/TemplateMailer/TemplateCache.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateCache","name":"TemplateCache","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L273"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(Int64, Array(Hash(String, Int64 | String))))","aliased_html":"Hash(String, {Int64, Array(Hash(String, Int64 | String))})","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"},"doc":" zone_id, timeout, templates","summary":"

zone_id, timeout, templates

"},{"html_id":"drivers/Place/TemplateMailer/TemplateFields","path":"Place/TemplateMailer/TemplateFields.html","kind":"alias","full_name":"Place::TemplateMailer::TemplateFields","name":"TemplateFields","abstract":false,"locations":[{"filename":"src/place/template_mailer.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/template_mailer.cr#L12"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(trigger: Tuple(String, String), name: String, description: String | Nil, fields: Array(NamedTuple(name: String, description: String)))","aliased_html":"{trigger: {String, String}, name: String, description: String?, fields: Array({name: String, description: String})}","const":false,"namespace":{"html_id":"drivers/Place/TemplateMailer","kind":"class","full_name":"Place::TemplateMailer","name":"TemplateMailer"}}]},{"html_id":"drivers/Place/TODOs","path":"Place/TODOs.html","kind":"class","full_name":"Place::TODOs","name":"TODOs","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/todo_list.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_task(description:String)-instance-method","name":"add_task","abstract":false,"args":[{"name":"description","external_name":"description","restriction":"String"}],"args_string":"(description : String)","args_html":"(description : String)","location":{"filename":"src/place/llm/todo_list.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L27"},"def":{"name":"add_task","args":[{"name":"description","external_name":"description","restriction":"String"}],"visibility":"Public","body":"task = {complete: false, task: description}\n@todos << task\ntask\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L17"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"\"manages the list of tasks a user needs to complete throughout the day\""}},{"html_id":"complete_task(index:Int32)-instance-method","name":"complete_task","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32)","args_html":"(index : Int32)","location":{"filename":"src/place/llm/todo_list.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L34"},"def":{"name":"complete_task","args":[{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"task = @todos[index]\n@todos[index] = {complete: true, task: task[:task]}\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{list_tasks: \"returns the list of tasks and their current status\", add_task: \"adds a new task to the list\", complete_task: \"marks a task as completed\"}"}},{"html_id":"list_tasks:Array({complete:Bool,task:String})-instance-method","name":"list_tasks","abstract":false,"location":{"filename":"src/place/llm/todo_list.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/todo_list.cr#L22"},"def":{"name":"list_tasks","visibility":"Public","body":"@todos"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}}]},{"html_id":"drivers/Place/TransportAdaptor","path":"Place/TransportAdaptor.html","kind":"class","full_name":"Place::TransportAdaptor","name":"TransportAdaptor","abstract":false,"superclass":{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},"ancestors":[{"html_id":"drivers/MQTT/Transport","kind":"class","full_name":"MQTT::Transport","name":"Transport"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"constructors":[{"html_id":"new(driver:PlaceOS::Driver::Transport,queue:PlaceOS::Driver::Queue)-class-method","name":"new","abstract":false,"args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"args_string":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","args_html":"(driver : PlaceOS::Driver::Transport, queue : PlaceOS::Driver::Queue)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L4"},"def":{"name":"new","args":[{"name":"driver","external_name":"driver","restriction":"::PlaceOS::Driver::Transport"},{"name":"queue","external_name":"queue","restriction":"::PlaceOS::Driver::Queue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(driver, queue)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"close!:Nil-instance-method","name":"close!","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L11"},"def":{"name":"close!","return_type":"Nil","visibility":"Public","body":"@driver.disconnect"}},{"html_id":"closed?:Bool-instance-method","name":"closed?","abstract":false,"location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L15"},"def":{"name":"closed?","return_type":"Bool","visibility":"Public","body":"!@queue.online"}},{"html_id":"process(data:Bytes)-instance-method","name":"process","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L23"},"def":{"name":"process","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"(@tokenizer.extract(data)).each do |bytes|\n spawn do\n @on_message.try(&.call(bytes))\n end\nend"}},{"html_id":"send(message):Nil-instance-method","name":"send","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message) : Nil","args_html":"(message) : Nil","location":{"filename":"src/place/mqtt_transport_adaptor.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/mqtt_transport_adaptor.cr#L19"},"def":{"name":"send","args":[{"name":"message","external_name":"message","restriction":""}],"return_type":"Nil","visibility":"Public","body":"@driver.send(message)"}}]},{"html_id":"drivers/Place/UserGroupMappings","path":"Place/UserGroupMappings.html","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_user(id:String):Nil-instance-method","name":"check_user","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String) : Nil","args_html":"(id : String) : Nil","location":{"filename":"src/place/user_group_mappings.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L88"},"def":{"name":"check_user","args":[{"name":"id","external_name":"id","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"checking groups of: #{id}\"\nend\nuser_json = (staff_api.user(id)).get\nsync_user(user_json)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L48"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"auth/login\") do |_subscription, payload|\n new_user_login(payload)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L62"},"def":{"name":"on_update","visibility":"Public","body":"@group_mappings = (setting?(Hash(String, Mapping), :group_mappings)) || ({} of String => Mapping)\n@group_prefixes = (setting?(Hash(String, Prefix), :group_prefix)) || ({} of String => Prefix)\n@group_prefixes = @group_prefixes.transform_keys(&.downcase)\n@authority_id = (setting?(String, :authority_id)) || \"authority-12345\"\n"}},{"html_id":"sync_all_users-instance-method","name":"sync_all_users","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L134"},"def":{"name":"sync_all_users","visibility":"Public","body":"begin\n if @syncing\n return \"currently syncing\"\n end\n @syncing = true\n limit = 100\n offset = 0\n issues_with = [] of String\n loop do\n users = staff_api.query_users(limit: limit, offset: offset, authority_id: @authority_id).get.as_a\n logger.debug do\n \"syncing users #{offset}->#{offset + limit}...\"\n end\n users.each do |user|\n begin\n sync_user(user)\n sleep(50.milliseconds)\n rescue error\n issues_with << user[\"email\"].as_s\n end\n end\n if users.size < limit\n break\n end\n offset = offset + limit\n end\n logger.debug do\n \"sync complete! issues with #{issues_with.size}:\\n#{issues_with}\"\n end\n issues_with\nensure\n @syncing = false\nend"}}],"types":[{"html_id":"drivers/Place/UserGroupMappings/Mapping","path":"Place/UserGroupMappings/Mapping.html","kind":"alias","full_name":"Place::UserGroupMappings::Mapping","name":"Mapping","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L53"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(place_id: String)","aliased_html":"{place_id: String}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/Prefix","path":"Place/UserGroupMappings/Prefix.html","kind":"alias","full_name":"Place::UserGroupMappings::Prefix","name":"Prefix","abstract":false,"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(strip_prefix: Bool | Nil, place_id: String | Nil)","aliased_html":"{strip_prefix: Bool?, place_id: String?}","const":false,"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"}},{"html_id":"drivers/Place/UserGroupMappings/UserLogin","path":"Place/UserGroupMappings/UserLogin.html","kind":"class","full_name":"Place::UserGroupMappings::UserLogin","name":"UserLogin","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/user_group_mappings.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/UserGroupMappings","kind":"class","full_name":"Place::UserGroupMappings","name":"UserGroupMappings"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/user_group_mappings.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"provider:String-instance-method","name":"provider","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider","return_type":"String","visibility":"Public","body":"@provider"}},{"html_id":"provider=(provider:String)-instance-method","name":"provider=","abstract":false,"args":[{"name":"provider","external_name":"provider","restriction":"String"}],"args_string":"(provider : String)","args_html":"(provider : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L45"},"def":{"name":"provider=","args":[{"name":"provider","external_name":"provider","restriction":"String"}],"visibility":"Public","body":"@provider = provider"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}},{"html_id":"user_id=(user_id:String)-instance-method","name":"user_id=","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/place/user_group_mappings.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/user_group_mappings.cr#L44"},"def":{"name":"user_id=","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"@user_id = user_id"}}]}]},{"html_id":"drivers/Place/VisitorMailer","path":"Place/VisitorMailer.html","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/MailerTemplates","kind":"module","full_name":"PlaceOS::Driver::Interface::MailerTemplates","name":"MailerTemplates"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_zone:ZoneDetails-instance-method","name":"building_zone","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L91"},"def":{"name":"building_zone","return_type":"ZoneDetails","visibility":"Public","body":"if (__temp_1 = @building_zone).nil?\n @building_zone = (find_building(control_system_zone_list))\nelse\n __temp_1\nend"}},{"html_id":"control_system_zone_list-instance-method","name":"control_system_zone_list","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L159"},"def":{"name":"control_system_zone_list","visibility":"Public","body":"config.control_system.not_nil!.zones"}},{"html_id":"create_network_user(user_email:String,password:String,group_ids:Array(String)=[]ofString)-instance-method","name":"create_network_user","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":674,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L674"},"def":{"name":"create_network_user","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"group_ids","default_value":"[] of String","external_name":"group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"response = network_provider.create_internal_user(email: user_email, name: user_email, password: password, identity_groups: group_ids).get\nif @debug\n logger.debug do\n \"Response from Network Identity provider for creating user #{user_email} was:\\n #{response}\\n\\nDetails:\\n#{response.inspect}\"\n end\nend\n{response[\"name\"], password}\n"}},{"html_id":"mailer-instance-method","name":"mailer","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L54"},"def":{"name":"mailer","visibility":"Public","body":"(system.implementing(Interface::Mailer))[0]"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L58"},"def":{"name":"on_load","visibility":"Public","body":"monitor(\"staff/guest/attending\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/checkin\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_accepted\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\nmonitor(\"staff/guest/induction_declined\") do |_subscription, payload|\n guest_event(payload.gsub(/[^[:print:]]/, \"\"))\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L118"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting?(Bool, :debug)) || true\n@date_time_format = (setting?(String, :date_time_format)) || \"%c\"\n@time_format = (setting?(String, :time_format)) || \"%l:%M%p\"\n@date_format = (setting?(String, :date_format)) || \"%A, %-d %B\"\n@send_reminders = (setting?(String, :send_reminders)).presence\n@reminder_template = (setting?(String, :reminder_template)) || \"visitor\"\n@event_template = (setting?(String, :event_template)) || \"event\"\n@booking_template = (setting?(String, :booking_template)) || \"booking\"\n@notify_checkin_template = (setting?(String, :notify_checkin_template)) || \"notify_checkin\"\n@notify_induction_accepted_template = (setting?(String, :induction_accepted)) || \"induction_accepted\"\n@notify_induction_declined_template = (setting?(String, :induction_declined)) || \"induction_declined\"\n@group_event_template = (setting?(String, :group_event_template)) || \"group_event\"\n@disable_qr_code = (setting?(Bool, :disable_qr_code)) || false\n@determine_host_name_using = (setting?(String, :determine_host_name_using)) || \"calendar-driver\"\n@send_network_credentials = (setting?(Bool, :send_network_credentials)) || false\n@network_password_length = (setting?(Int32, :password_length)) || DEFAULT_PASSWORD_LENGTH\n@network_password_exclude = (setting?(String, :password_exclude)) || DEFAULT_PASSWORD_EXCLUDE\n@network_password_minimum_lowercase = (setting?(Int32, :password_minimum_lowercase)) || DEFAULT_PASSWORD_MINIMUM_LOWERCASE\n@network_password_minimum_uppercase = (setting?(Int32, :password_minimum_uppercase)) || DEFAULT_PASSWORD_MINIMUM_UPPERCASE\n@network_password_minimum_numbers = (setting?(Int32, :password_minimum_numbers)) || DEFAULT_PASSWORD_MINIMUM_NUMBERS\n@network_password_minimum_symbols = (setting?(Int32, :password_minimum_symbols)) || DEFAULT_PASSWORD_MINIMUM_SYMBOLS\n@network_group_ids = (setting?(Array(String), :network_group_ids)) || ([] of String)\n@host_domain_filter = (setting?(Array(String), :host_domain_filter)) || ([] of String)\n@disable_event_visitors = (setting?(Bool, :disable_event_visitors)) || false\n@invite_zone_tag = (setting?(String, :invite_zone_tag)) || \"building\"\n@is_parent_zone = (setting?(Bool, :is_campus)) || false\ntime_zone = (setting?(String, :timezone)).presence || \"GMT\"\n@time_zone = Time::Location.load(time_zone)\n@booking_space_name = (setting?(String, :booking_space_name)).presence || \"Client Floor\"\nzones = config.control_system.not_nil!.zones\nschedule.clear\nif reminders = @send_reminders\n schedule.cron(reminders, @time_zone) do\n send_reminder_emails\n end\nend\nspawn do\n ensure_building_zone(zones)\nend\n"}},{"html_id":"parent_zone_ids:Array(String)-instance-method","name":"parent_zone_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L95"},"def":{"name":"parent_zone_ids","return_type":"Array(String)","visibility":"Public","body":"@parent_zone_ids"}},{"html_id":"send_checkedin_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64)-instance-method","name":"send_checkedin_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L362"},"def":{"name":"send_checkedin_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format)})\n"}},{"html_id":"send_induction_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,induction_status:Induction)-instance-method","name":"send_induction_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, induction_status : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":390,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L390"},"def":{"name":"send_induction_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"induction_status","external_name":"induction_status","restriction":"Induction"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nmailer.send_template(host_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: local_start_time.to_s(@time_format), induction_status: induction_status.to_s})\n"}},{"html_id":"send_reminder_emails-instance-method","name":"send_reminder_emails","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":561,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L561"},"def":{"name":"send_reminder_emails","visibility":"Public","body":"now = 1.hour.ago.to_unix\nlater = 12.hours.from_now.to_unix\nguests = staff_api.query_guests(period_start: now, period_end: later, zones: {building_zone.id}).get.as_a\nguests.uniq! do |g|\n g[\"email\"].as_s.downcase\nend\nguests.each do |guest|\n begin\n if event = guest[\"event\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, event[\"host\"].as_s, event[\"title\"].as_s, event[\"event_start\"].as_i64, (event.dig(\"system\", \"id\")).as_s, event[\"id\"].as_s, ((event.dig?(\"system\", \"display_name\")) || (event.dig(\"system\", \"name\"))).as_s, event_end: event[\"event_end\"].as_i64)\n else\n if booking = guest[\"booking\"]?\n send_visitor_qr_email(@reminder_template, guest[\"email\"].as_s, guest[\"name\"].as_s?, booking[\"user_email\"].as_s, booking[\"title\"].as_s?, booking[\"booking_start\"].as_i64, booking[\"asset_id\"].as_s, booking[\"id\"].as_i64.to_s, @booking_space_name, event_end: booking[\"booking_end\"].as_i64)\n end\n end\n rescue error\n logger.warn(exception: error) do\n \"failed to send reminder email to #{guest[\"email\"]}\"\n end\n end\nend\n"}},{"html_id":"send_visitor_qr_email(template:String,visitor_email:String,visitor_name:String|Nil,host_email:String|Nil,event_title:String|Nil,event_start:Int64,resource_id:String,event_id:String,area_name:String,event_end:Int64|Nil=nil)-instance-method","name":"send_visitor_qr_email","abstract":false,"args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"args_string":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","args_html":"(template : String, visitor_email : String, visitor_name : String | Nil, host_email : String | Nil, event_title : String | Nil, event_start : Int64, resource_id : String, event_id : String, area_name : String, event_end : Int64 | Nil = nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":490,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L490"},"def":{"name":"send_visitor_qr_email","args":[{"name":"template","external_name":"template","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"visitor_name","external_name":"visitor_name","restriction":"String | ::Nil"},{"name":"host_email","external_name":"host_email","restriction":"String | ::Nil"},{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"},{"name":"event_start","external_name":"event_start","restriction":"Int64"},{"name":"resource_id","external_name":"resource_id","restriction":"String"},{"name":"event_id","external_name":"event_id","restriction":"String"},{"name":"area_name","external_name":"area_name","restriction":"String"},{"name":"event_end","default_value":"nil","external_name":"event_end","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"local_start_time = (Time.unix(event_start)).in(@time_zone)\nattach = if @disable_qr_code\n [] of NamedTuple(file_name: String, content: String, content_id: String)\nelse\n qr_png = mailer.generate_png_qrcode(text: \"VISIT:#{visitor_email},#{resource_id},#{event_id},#{host_email}\", size: 256).get.as_s\n [{file_name: \"qr.png\", content: qr_png, content_id: visitor_email}]\nend\nnetwork_username = network_password = \"\"\nif @send_network_credentials\n network_username, network_password = update_network_user_password(visitor_email, generate_password(length: @network_password_length, exclude: @network_password_exclude, minimum_lowercase: @network_password_minimum_lowercase, minimum_uppercase: @network_password_minimum_uppercase, minimum_numbers: @network_password_minimum_numbers, minimum_symbols: @network_password_minimum_symbols), @network_group_ids)\nend\nevent_time = if (end_timestamp = event_end) && (((Time.unix(end_timestamp)) - (Time.unix(event_start))) == 24.hours)\n \"all day\"\nelse\n local_start_time.to_s(@time_format)\nend\nmailer.send_template(visitor_email, {\"visitor_invited\", template}, {visitor_email: visitor_email, visitor_name: visitor_name, host_name: get_host_name(host_email), host_email: host_email, room_name: area_name, building_name: building_zone.display_name.presence || building_zone.name, event_title: event_title, event_start: local_start_time.to_s(@time_format), event_date: local_start_time.to_s(@date_format), event_time: event_time, network_username: network_username, network_password: network_password}, attach)\n"}},{"html_id":"template_fields:Array(TemplateFields)-instance-method","name":"template_fields","doc":" [\n TemplateFields.new(\n trigger: {\"bookings\", \"booked_by_notify\"},\n name: \"Booking booked by notification\",\n description: nil,\n fields: common_fields\n ),\n TemplateFields.new(\n trigger: {\"bookings\", \"booking_notify\"},\n name: \"Booking notification\",\n description: \"This template is used for booking notifications\",\n fields: common_fields + [\n {name: \"start_time\", description: \"The start time of the booking\"},\n ]\n ),\n ]\nend\n","summary":"

[ TemplateFields.new( trigger: {"bookings", "booked_by_notify"}, name: "Booking booked by notification", description: nil, fields: common_fields ), TemplateFields.new( trigger: {"bookings", "booking_notify"}, name: "Booking notification", description: "This template is used for booking notifications", fields: common_fields + [ {name: "start_time", description: "The start time of the booking"}, ] ), ] end

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":419,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L419"},"def":{"name":"template_fields","return_type":"Array(TemplateFields)","visibility":"Public","body":"time_now = Time.utc.in(@time_zone)\ncommon_fields = [{name: \"visitor_email\", description: \"Email address of the visiting guest\"}, {name: \"visitor_name\", description: \"Full name of the visiting guest\"}, {name: \"host_name\", description: \"Name of the person hosting the visitor\"}, {name: \"host_email\", description: \"Email address of the host\"}, {name: \"building_name\", description: \"Name of the building where the visit occurs\"}, {name: \"event_title\", description: \"Title or purpose of the visit\"}, {name: \"event_start\", description: \"Start time (e.g., #{time_now.to_s(@time_format)})\"}, {name: \"event_date\", description: \"Date of the visit (e.g., #{time_now.to_s(@date_format)})\"}, {name: \"event_time\", description: \"Time of the visit (or 'all day' for 24-hour events)\"}]\ninvitation_fields = common_fields + [{name: \"room_name\", description: \"Name of the room or area being visited\"}, {name: \"network_username\", description: \"Network access username (if network credentials enabled)\"}, {name: \"network_password\", description: \"Generated network access password (if network credentials enabled)\"}]\ninduction_fields = common_fields + [{name: \"induction_status\", description: \"Status of the induction (e.g., accepted or declined)\"}]\n[TemplateFields.new(trigger: {\"visitor_invited\", @reminder_template}, name: \"Visitor invited\", description: \"Reminder email for upcoming visitor appointments\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @event_template}, name: \"Visitor invited to event\", description: \"Initial invitation for a visitor attending a calendar event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @booking_template}, name: \"Visitor invited to booking\", description: \"Initial invitation for a visitor with a space booking\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @group_event_template}, name: \"Visitor invited to group event booking\", description: \"Initial invitation for a visitor attending a group event\", fields: invitation_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_checkin_template}, name: \"Visitor check in notification\", description: \"Notification to host when their visitor checks in\", fields: common_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_accepted_template}, name: \"Visitor induction accepted notification\", description: \"Notification to host when their visitor accepts the induction\", fields: induction_fields), TemplateFields.new(trigger: {\"visitor_invited\", @notify_induction_declined_template}, name: \"Visitor induction declined notification\", description: \"Notification to host when their visitor declines the induction\", fields: induction_fields)]\n"}},{"html_id":"update_network_user_password(user_email:String,password:String,network_group_ids:Array(String)=[]ofString)-instance-method","name":"update_network_user_password","abstract":false,"args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"args_string":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","args_html":"(user_email : String, password : String, network_group_ids : Array(String) = [] of String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":663,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L663"},"def":{"name":"update_network_user_password","args":[{"name":"user_email","external_name":"user_email","restriction":"String"},{"name":"password","external_name":"password","restriction":"String"},{"name":"network_group_ids","default_value":"[] of String","external_name":"network_group_ids","restriction":"Array(String)"}],"visibility":"Public","body":"begin\n response = (network_provider.update_internal_user_password_by_name(user_email, password)).get\n if @debug\n logger.debug do\n \"Response from Network Identity provider for lookup of #{user_email} was:\\n#{response}\"\n end\n end\nrescue\n create_network_user(user_email, password, network_group_ids)\nelse\n {user_email, password}\nend"}}],"types":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","path":"Place/VisitorMailer/BookingGuest.html","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L233"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L234"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L236"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L239"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L237"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}}]},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","path":"Place/VisitorMailer/BookingInduction.html","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L253"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L254"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"booking_id:Int64-instance-method","name":"booking_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id","return_type":"Int64","visibility":"Public","body":"@booking_id"}},{"html_id":"booking_id=(booking_id:Int64)-instance-method","name":"booking_id=","abstract":false,"args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"args_string":"(booking_id : Int64)","args_html":"(booking_id : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L257"},"def":{"name":"booking_id=","args":[{"name":"booking_id","external_name":"booking_id","restriction":"Int64"}],"visibility":"Public","body":"@booking_id = booking_id"}},{"html_id":"event_id-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L261"},"def":{"name":"event_id","visibility":"Public","body":"booking_id.to_s"}},{"html_id":"induction:Induction-instance-method","name":"induction","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction","return_type":"Induction","visibility":"Public","body":"@induction"}},{"html_id":"induction=(induction:Induction)-instance-method","name":"induction=","abstract":false,"args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"args_string":"(induction : Induction)","args_html":"(induction : Induction)","location":{"filename":"src/place/visitor_mailer.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L256"},"def":{"name":"induction=","args":[{"name":"induction","external_name":"induction","restriction":"Induction"}],"visibility":"Public","body":"@induction = induction"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L258"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_ids:Array(String)-instance-method","name":"resource_ids","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids","return_type":"Array(String)","visibility":"Public","body":"@resource_ids"}},{"html_id":"resource_ids=(resource_ids:Array(String))-instance-method","name":"resource_ids=","abstract":false,"args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"args_string":"(resource_ids : Array(String))","args_html":"(resource_ids : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L259"},"def":{"name":"resource_ids=","args":[{"name":"resource_ids","external_name":"resource_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@resource_ids = resource_ids"}}]},{"html_id":"drivers/Place/VisitorMailer/EventGuest","path":"Place/VisitorMailer/EventGuest.html","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L221"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L222"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L225"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L226"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L228"},"def":{"name":"resource_id","visibility":"Public","body":"system_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L224"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","path":"Place/VisitorMailer/GuestCheckin.html","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin","abstract":false,"superclass":{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L244"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L245"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_id:String-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id","return_type":"String","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:String)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"args_string":"(event_id : String)","args_html":"(event_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L248"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"String"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"resource:String-instance-method","name":"resource","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource","return_type":"String","visibility":"Public","body":"@resource"}},{"html_id":"resource=(resource:String)-instance-method","name":"resource=","abstract":false,"args":[{"name":"resource","external_name":"resource","restriction":"String"}],"args_string":"(resource : String)","args_html":"(resource : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L249"},"def":{"name":"resource=","args":[{"name":"resource","external_name":"resource","restriction":"String"}],"visibility":"Public","body":"@resource = resource"}},{"html_id":"resource_id:String-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id","return_type":"String","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:String)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"args_string":"(resource_id : String)","args_html":"(resource_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L250"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"String"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"system_id:String-instance-method","name":"system_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id","return_type":"String","visibility":"Public","body":"@system_id"}},{"html_id":"system_id=(system_id:String)-instance-method","name":"system_id=","abstract":false,"args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"args_string":"(system_id : String)","args_html":"(system_id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L247"},"def":{"name":"system_id=","args":[{"name":"system_id","external_name":"system_id","restriction":"String"}],"visibility":"Public","body":"@system_id = system_id"}}]},{"html_id":"drivers/Place/VisitorMailer/GuestNotification","path":"Place/VisitorMailer/GuestNotification.html","kind":"class","full_name":"Place::VisitorMailer::GuestNotification","name":"GuestNotification","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":193,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L193"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/Place/VisitorMailer/BookingGuest","kind":"class","full_name":"Place::VisitorMailer::BookingGuest","name":"BookingGuest"},{"html_id":"drivers/Place/VisitorMailer/BookingInduction","kind":"class","full_name":"Place::VisitorMailer::BookingInduction","name":"BookingInduction"},{"html_id":"drivers/Place/VisitorMailer/EventGuest","kind":"class","full_name":"Place::VisitorMailer::EventGuest","name":"EventGuest"},{"html_id":"drivers/Place/VisitorMailer/GuestCheckin","kind":"class","full_name":"Place::VisitorMailer::GuestCheckin","name":"GuestCheckin"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L196"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"action\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'action' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'action'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"booking_created\"\n BookingGuest.from_json(json)\nwhen \"booking_updated\"\n BookingGuest.from_json(json)\nwhen \"meeting_created\"\n EventGuest.from_json(json)\nwhen \"meeting_update\"\n EventGuest.from_json(json)\nwhen \"checkin\"\n GuestCheckin.from_json(json)\nwhen \"induction_accepted\"\n BookingInduction.from_json(json)\nwhen \"induction_declined\"\n BookingInduction.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'action' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L206"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"action=(action:String)-instance-method","name":"action=","abstract":false,"args":[{"name":"action","external_name":"action","restriction":"String"}],"args_string":"(action : String)","args_html":"(action : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L206"},"def":{"name":"action=","args":[{"name":"action","external_name":"action","restriction":"String"}],"visibility":"Public","body":"@action = action"}},{"html_id":"attendee_email:String-instance-method","name":"attendee_email","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email","return_type":"String","visibility":"Public","body":"@attendee_email"}},{"html_id":"attendee_email=(attendee_email:String)-instance-method","name":"attendee_email=","abstract":false,"args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"args_string":"(attendee_email : String)","args_html":"(attendee_email : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L212"},"def":{"name":"attendee_email=","args":[{"name":"attendee_email","external_name":"attendee_email","restriction":"String"}],"visibility":"Public","body":"@attendee_email = attendee_email"}},{"html_id":"attendee_name:String|Nil-instance-method","name":"attendee_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name","return_type":"String | ::Nil","visibility":"Public","body":"@attendee_name"}},{"html_id":"attendee_name=(attendee_name:String|Nil)-instance-method","name":"attendee_name=","abstract":false,"args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"args_string":"(attendee_name : String | Nil)","args_html":"(attendee_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L211"},"def":{"name":"attendee_name=","args":[{"name":"attendee_name","external_name":"attendee_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attendee_name = attendee_name"}},{"html_id":"checkin:Bool|Nil-instance-method","name":"checkin","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin","return_type":"Bool | ::Nil","visibility":"Public","body":"@checkin"}},{"html_id":"checkin=(checkin:Bool|Nil)-instance-method","name":"checkin=","abstract":false,"args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"args_string":"(checkin : Bool | Nil)","args_html":"(checkin : Bool | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L208"},"def":{"name":"checkin=","args":[{"name":"checkin","external_name":"checkin","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@checkin = checkin"}},{"html_id":"event_starting:Int64-instance-method","name":"event_starting","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting","return_type":"Int64","visibility":"Public","body":"@event_starting"}},{"html_id":"event_starting=(event_starting:Int64)-instance-method","name":"event_starting=","abstract":false,"args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"args_string":"(event_starting : Int64)","args_html":"(event_starting : Int64)","location":{"filename":"src/place/visitor_mailer.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L210"},"def":{"name":"event_starting=","args":[{"name":"event_starting","external_name":"event_starting","restriction":"Int64"}],"visibility":"Public","body":"@event_starting = event_starting"}},{"html_id":"event_summary:String-instance-method","name":"event_summary","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary","return_type":"String","visibility":"Public","body":"@event_summary"}},{"html_id":"event_summary=(event_summary:String)-instance-method","name":"event_summary=","abstract":false,"args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"args_string":"(event_summary : String)","args_html":"(event_summary : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L209"},"def":{"name":"event_summary=","args":[{"name":"event_summary","external_name":"event_summary","restriction":"String"}],"visibility":"Public","body":"@event_summary = event_summary"}},{"html_id":"ext_data:Hash(String,JSON::Any)|Nil-instance-method","name":"ext_data","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data","return_type":"Hash(String, JSON::Any) | ::Nil","visibility":"Public","body":"@ext_data"}},{"html_id":"ext_data=(ext_data:Hash(String,JSON::Any)|Nil)-instance-method","name":"ext_data=","abstract":false,"args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"args_string":"(ext_data : Hash(String, JSON::Any) | Nil)","args_html":"(ext_data : Hash(String, JSON::Any) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L218"},"def":{"name":"ext_data=","args":[{"name":"ext_data","external_name":"ext_data","restriction":"Hash(String, JSON::Any) | ::Nil"}],"visibility":"Public","body":"@ext_data = ext_data"}},{"html_id":"host:String-instance-method","name":"host","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L213"},"def":{"name":"host","return_type":"String","visibility":"Public","body":"@host"}},{"html_id":"host=(host:String)-instance-method","name":"host=","abstract":false,"args":[{"name":"host","external_name":"host","restriction":"String"}],"args_string":"(host : String)","args_html":"(host : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L213"},"def":{"name":"host=","args":[{"name":"host","external_name":"host","restriction":"String"}],"visibility":"Public","body":"@host = host"}},{"html_id":"zones:Array(String)|Nil-instance-method","name":"zones","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@zones"}},{"html_id":"zones=(zones:Array(String)|Nil)-instance-method","name":"zones=","doc":"This is optional for backwards compatibility","summary":"

This is optional for backwards compatibility

","abstract":false,"args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"args_string":"(zones : Array(String) | Nil)","args_html":"(zones : Array(String) | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L216"},"def":{"name":"zones=","args":[{"name":"zones","external_name":"zones","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@zones = zones"}}]},{"html_id":"drivers/Place/VisitorMailer/Induction","path":"Place/VisitorMailer/Induction.html","kind":"enum","full_name":"Place::VisitorMailer::Induction","name":"Induction","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L187"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TENTATIVE","name":"TENTATIVE","value":"0"},{"id":"ACCEPTED","name":"ACCEPTED","value":"1"},{"id":"DECLINED","name":"DECLINED","value":"2"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"instance_methods":[{"html_id":"accepted?-instance-method","name":"accepted?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L189"},"def":{"name":"accepted?","visibility":"Public","body":"self == ACCEPTED"}},{"html_id":"declined?-instance-method","name":"declined?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L190"},"def":{"name":"declined?","visibility":"Public","body":"self == DECLINED"}},{"html_id":"tentative?-instance-method","name":"tentative?","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L188"},"def":{"name":"tentative?","visibility":"Public","body":"self == TENTATIVE"}}]},{"html_id":"drivers/Place/VisitorMailer/SystemDetails","path":"Place/VisitorMailer/SystemDetails.html","kind":"class","full_name":"Place::VisitorMailer::SystemDetails","name":"SystemDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":622,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L622"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":623,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L623"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":627,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L627"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L625"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":625,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L625"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"map_id=(map_id:String|Nil)-instance-method","name":"map_id=","abstract":false,"args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"args_string":"(map_id : String | Nil)","args_html":"(map_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":628,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L628"},"def":{"name":"map_id=","args":[{"name":"map_id","external_name":"map_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@map_id = map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L626"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":626,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L626"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Place/VisitorMailer/ZoneDetails","path":"Place/VisitorMailer/ZoneDetails.html","kind":"class","full_name":"Place::VisitorMailer::ZoneDetails","name":"ZoneDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/visitor_mailer.cr","line_number":611,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L611"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/VisitorMailer","kind":"class","full_name":"Place::VisitorMailer","name":"VisitorMailer"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/visitor_mailer.cr","line_number":612,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L612"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"display_name=(display_name:String|Nil)-instance-method","name":"display_name=","abstract":false,"args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"args_string":"(display_name : String | Nil)","args_html":"(display_name : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":616,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L616"},"def":{"name":"display_name=","args":[{"name":"display_name","external_name":"display_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@display_name = display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L614"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":614,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L614"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:String|Nil-instance-method","name":"location","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L617"},"def":{"name":"location","return_type":"String | ::Nil","visibility":"Public","body":"@location"}},{"html_id":"location=(location:String|Nil)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(location : String | Nil)","args_html":"(location : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":617,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L617"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L615"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/place/visitor_mailer.cr","line_number":615,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L615"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"parent_id:String|Nil-instance-method","name":"parent_id","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id","return_type":"String | ::Nil","visibility":"Public","body":"@parent_id"}},{"html_id":"parent_id=(parent_id:String|Nil)-instance-method","name":"parent_id=","abstract":false,"args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"args_string":"(parent_id : String | Nil)","args_html":"(parent_id : String | Nil)","location":{"filename":"src/place/visitor_mailer.cr","line_number":619,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L619"},"def":{"name":"parent_id=","args":[{"name":"parent_id","external_name":"parent_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@parent_id = parent_id"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"tags=(tags:Array(String))-instance-method","name":"tags=","abstract":false,"args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"args_string":"(tags : Array(String))","args_html":"(tags : Array(String))","location":{"filename":"src/place/visitor_mailer.cr","line_number":618,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/visitor_mailer.cr#L618"},"def":{"name":"tags=","args":[{"name":"tags","external_name":"tags","restriction":"Array(String)"}],"visibility":"Public","body":"@tags = tags"}}]}]},{"html_id":"drivers/Place/Workplace","path":"Place/Workplace.html","kind":"class","full_name":"Place::Workplace","name":"Workplace","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/ChatFunctions","kind":"module","full_name":"PlaceOS::Driver::Interface::ChatFunctions","name":"ChatFunctions"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"all_levels:Array(Zone)-instance-method","name":"all_levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L93"},"def":{"name":"all_levels","return_type":"Array(Zone)","visibility":"Public","body":"if (__temp_1 = @all_levels).nil?\n @all_levels = ([building] + (Array(Zone).from_json(staff_api.zones(parent: building.id, tags: {\"level\"}).get.to_json)).sort_by(&.name))\nelse\n __temp_1\nend"}},{"html_id":"book_on(booking_type:String,asset_id:String,level_id:String,date:Time,number_of_days:Int32=1)-instance-method","name":"book_on","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, date : Time, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L215"},"def":{"name":"book_on","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"date","external_name":"date","restriction":"Time"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking on #{booking_type}, asset #{asset_id} on level #{level_id}, date #{date} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\nnow = (date.in(timezone)).at_beginning_of_day\ncurrent_time = Time.local(timezone)\nif current_time < now || (current_time - now) < 18.hours\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (0...number_of_days).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{now.day_of_week}, #{now.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"book_relative(booking_type:String,asset_id:String,level_id:String,day_offset:Int32=0,number_of_days:Int32=1)-instance-method","name":"book_relative","abstract":false,"args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","args_html":"(booking_type : String, asset_id : String, level_id : String, day_offset : Int32 = 0, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L161"},"def":{"name":"book_relative","args":[{"name":"booking_type","external_name":"booking_type","restriction":"String"},{"name":"asset_id","external_name":"asset_id","restriction":"String"},{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"booking relative #{booking_type}, asset #{asset_id} on level #{level_id}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 18)\nelse\n raise(\"booking in the past is not permitted\")\nend\ncase booking_type\nwhen \"desk\"\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n else\n raise(\"no desks found on level #{level_id}, ensure this id is correct\")\n end\n desks = Array(Desk).from_json(all_desks.to_json)\n desk = desks.find do |d|\n d.id == asset_id\n end\n if desk\n else\n raise(\"could not find a desk with id: #{asset_id}\")\n end\nend\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: booking_type, asset_id: asset_id, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level_id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\")\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"booking for #{asset_id} created on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"building:Zone-instance-method","name":"building","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":464,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L464"},"def":{"name":"building","return_type":"Zone","visibility":"Public","body":"if (__temp_1 = @building).nil?\n @building = (get_building)\nelse\n __temp_1\nend"}},{"html_id":"cancel_bookings(booking_ids:Array(Int64))-instance-method","name":"cancel_bookings","abstract":false,"args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"args_string":"(booking_ids : Array(Int64))","args_html":"(booking_ids : Array(Int64))","location":{"filename":"src/place/llm/workplace.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L267"},"def":{"name":"cancel_bookings","args":[{"name":"booking_ids","external_name":"booking_ids","restriction":"Array(Int64)"}],"visibility":"Public","body":"logger.debug do\n \"cancel bookings #{booking_ids}\"\nend\nbooking_ids.each do |booking_id|\n booking = (staff_api.get_booking(booking_id)).get\n user_id = invoked_by_user_id\n me = current_user\n if (user_id == booking[\"user_id\"]?.try(&.as_s)) || (me.email.downcase.in?({booking[\"user_email\"].as_s, booking[\"booked_by_email\"].as_s}))\n else\n raise(\"can only cancel bookings owned by #{me.email} - this booking is owned by #{booking[\"user_email\"]}\")\n end\n staff_api.booking_delete(booking_id, \"chatgpt\")\nend\n\"bookings have been removed\"\n"}},{"html_id":"capabilities:String-instance-method","name":"capabilities","doc":"overall description of what this driver implements","summary":"

overall description of what this driver implements

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L31"},"def":{"name":"capabilities","return_type":"String","visibility":"Public","body":"if (__temp_1 = @capabilities).nil?\n @capabilities = (String.build do |str|\n str << \"functions for listing building levels to obtain level names and level ids\\n\"\n str << \"find meeting rooms, filtering by capacity and or level id\\n\"\n str << \"my current desk, car parking and guest visitor bookings\\n\"\n str << \"Note: when booking a meeting room, preference one on the same level or closest level to my desk booking, if I have one, unless I specify a specific level. Also try to pick a room with an appropriate capacity.\\n\"\n str << \"once candidate meeting rooms have been found, you can include the list of resource emails when getting schedules to see which rooms are available\\n\"\n str << \"this capability also supports managing desk bookings and inviting visitors to the building\\n\"\n str << \"please cancel any bookings made on the incorrect day\"\n end)\nelse\n __temp_1\nend"}},{"html_id":"current_user:User-instance-method","name":"current_user","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":448,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L448"},"def":{"name":"current_user","return_type":"User","visibility":"Public","body":"User.from_json((staff_api.user(invoked_by_user_id)).get.to_json)"}},{"html_id":"desks(level_id:String,day_offset:Int32=0,date:Time|Nil=nil,feature:String|Nil=nil)-instance-method","name":"desks","abstract":false,"args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"args_string":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","args_html":"(level_id : String, day_offset : Int32 = 0, date : Time | Nil = nil, feature : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L116"},"def":{"name":"desks","args":[{"name":"level_id","external_name":"level_id","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"feature","default_value":"nil","external_name":"feature","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing desks on level #{level_id}, day offset #{day_offset}\"\nend\nlevel = levels.find do |l|\n l.id == level_id\nend\nif level\nelse\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\nend\nall_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\nif all_desks\nelse\n raise(\"no bookable desks on this level, please try another.\")\nend\ndesks = Array(Desk).from_json(all_desks.to_json)\nif date\n starting = (date.in(timezone)).at_beginning_of_day\nelse\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\nme = current_user\nbookings = staff_api.query_bookings(type: \"desk\", period_start: starting.to_unix, period_end: ending.to_unix, zones: {level_id}).get.as_a\nbookings = bookings.map() do |__arg1|\n __arg1[\"asset_id\"].as_s\nend\nfeature = feature.try(&.downcase)\ndesks.reject! do |desk|\n if desk.id.in?(bookings)\n next true\n end\n if feature && !(desk.features.map!(&.downcase).includes?(feature))\n next true\n end\n if !desk.groups.empty?\n (desk.groups & me.groups).empty?\n end\nend\nlogger.debug do\n \"found #{desks.size} available desks\"\nend\ndesks.sample(5)\n"}},{"html_id":"function_descriptions-instance-method","name":"function_descriptions","abstract":false,"def":{"name":"function_descriptions","visibility":"Public","body":"{my_bookings: \"returns desks, car parking spaces and visitors I have booked. day_offset: 0 will return todays schedule, day_offset: 1 will return tomorrows schedule etc. If you provide a date, in ISO 8601 format and the correct timezone, the date will be used.\", levels: \"returns the building details and list of levels. Use this to obtain level_ids\", meeting_rooms: \"returns the list of meeting rooms in the building filtering by capacity or level\", desks: \"returns the list of desks available for booking on the level and day specified. If the level has desk features then you can also filter by features.\", book_relative: \"books an asset, such as a desk or car parking space, for the number of days specified, starting on the day offset. For desk bookings use booking_type: desk\", book_on: \"books an asset, such as a desk or car parking space, for the number of days specified, the start date must be in ISO 8601 format with the correct timezone. For desk bookings use booking_type: desk\", cancel_bookings: \"cancels the given booking ids\", invite: \"book a visitor to the building\"}"}},{"html_id":"get_building:Zone-instance-method","name":"get_building","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":489,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L489"},"def":{"name":"get_building","return_type":"Zone","visibility":"Public","body":"begin\n zones = staff_api.zones(tags: \"building\").get.as_a\n zone_ids = zones.map() do |__arg12|\n __arg12[\"id\"].as_s\n end\n building_id = (zone_ids & system.zones).first\n building = zones.find! do |zone|\n zone[\"id\"].as_s == building_id\n end\n Zone.from_json(building.to_json)\nrescue error\n msg = \"unable to determine building zone\"\n logger.warn(exception: error) do\n msg\n end\n raise(msg)\nend"}},{"html_id":"invite(visitor_name:String,visitor_email:String,day_offset:Int32=0,date:Time|Nil=nil,number_of_days:Int32=1)-instance-method","name":"invite","abstract":false,"args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"args_string":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","args_html":"(visitor_name : String, visitor_email : String, day_offset : Int32 = 0, date : Time | Nil = nil, number_of_days : Int32 = 1)","location":{"filename":"src/place/llm/workplace.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L282"},"def":{"name":"invite","args":[{"name":"visitor_name","external_name":"visitor_name","restriction":"String"},{"name":"visitor_email","external_name":"visitor_email","restriction":"String"},{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"},{"name":"number_of_days","default_value":"1","external_name":"number_of_days","restriction":"Int32"}],"visibility":"Public","body":"logger.debug do\n \"inviting visitor to the building #{visitor_name}: #{visitor_email}, day offset #{day_offset} for num days #{number_of_days}\"\nend\nlevel = levels.first\nuser_id = invoked_by_user_id\nme = current_user\ncurrent_time = Time.local(timezone)\nnow = current_time.at_beginning_of_day\nif date\n desired_date = (date.in(timezone)).at_beginning_of_day\n day_offset = (desired_date - now).total_days.round_away.to_i\nend\nif day_offset > 0 || ((day_offset == 0) && current_time.hour < 16)\nelse\n raise(\"booking in the past is not permitted\")\nend\nvisitor_email = visitor_email.downcase\nids = (day_offset...(day_offset + number_of_days)).map do |offset|\n days = offset.days\n starting = (now + days) + 8.hours\n ending = (now.at_end_of_day + days) - 4.hours\n resp = staff_api.create_booking(booking_type: \"visitor\", asset_id: visitor_email, user_id: user_id, user_email: me.email, user_name: me.name, zones: {level.id, building.id}, booking_start: starting.to_unix, booking_end: ending.to_unix, time_zone: timezone.to_s, utm_source: \"chatgpt\", attendees: [{name: visitor_name, email: visitor_email}])\n resp.get[\"id\"].as_i64\nend\nstarting = now + day_offset.days\n{booking_ids: ids, details: \"invited #{visitor_email} to the office on #{starting.day_of_week}, #{starting.to_s(\"%F\")} for #{number_of_days} #{number_of_days > 1 ? \"days\" : \"day\"}\"}\n"}},{"html_id":"levels:Array(Zone)-instance-method","name":"levels","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L71"},"def":{"name":"levels","return_type":"Array(Zone)","visibility":"Public","body":"logger.debug do\n \"getting list of levels\"\nend\nl = all_levels\nl.each do |level|\n all_desks = (staff_api.metadata(level.id, \"desks\")).get.dig?(\"desks\", \"details\")\n if all_desks\n desks = all_desks.as_a\n level.bookable_desk_count = desks.size\n features = Set(String).new\n desks.each do |desk|\n if feat = desk[\"features\"]?\n feat.as_a.each do |f|\n features << f.as_s.downcase\n end\n end\n end\n if features.empty?\n else\n level.desk_features = features.to_a\n end\n else\n level.bookable_desk_count = 0\n end\nend\nl\n"}},{"html_id":"meeting_rooms(minimum_capacity:Int32=1,level_id:String|Nil=nil)-instance-method","name":"meeting_rooms","abstract":false,"args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"args_string":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","args_html":"(minimum_capacity : Int32 = 1, level_id : String | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L98"},"def":{"name":"meeting_rooms","args":[{"name":"minimum_capacity","default_value":"1","external_name":"minimum_capacity","restriction":"Int32"},{"name":"level_id","default_value":"nil","external_name":"level_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"listing meeting rooms on level #{level_id} with capacity #{minimum_capacity}\"\nend\nif level_id\n level = levels.find do |l|\n l.id == level_id\n end\n if level\n else\n raise(\"could not find level_id #{level_id} in the building. Make sure you've obtained the list of levels.\")\n end\nend\nzone_id = level_id || building.id\nstaff_api.systems(zone_id: zone_id, capacity: minimum_capacity, bookable: true).get.as_a.compact_map do |s|\n to_friendly_system(s)\nend\n"}},{"html_id":"my_bookings(day_offset:Int32=0,date:Time|Nil=nil)-instance-method","name":"my_bookings","abstract":false,"args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"args_string":"(day_offset : Int32 = 0, date : Time | Nil = nil)","args_html":"(day_offset : Int32 = 0, date : Time | Nil = nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L44"},"def":{"name":"my_bookings","args":[{"name":"day_offset","default_value":"0","external_name":"day_offset","restriction":"Int32"},{"name":"date","default_value":"nil","external_name":"date","restriction":"Time | ::Nil"}],"visibility":"Public","body":"me = current_user\nif date\n starting = (date.in(timezone)).at_beginning_of_day\n logger.debug do\n \"listing bookings for #{current_user.email}, on day #{starting}\"\n end\nelse\n logger.debug do\n \"listing bookings for #{current_user.email}, day offset #{day_offset}\"\n end\n now = Time.local(timezone)\n days = day_offset.days\n starting = now.at_beginning_of_day + days\nend\nending = starting.at_end_of_day\n{\"desk\", \"visitor\", \"parking\", \"asset-request\"}.flat_map do |booking_type|\n staff_api.query_bookings(type: booking_type, period_start: starting.to_unix, period_end: ending.to_unix, zones: {building.id}, user: invoked_by_user_id, email: me.email).get.as_a.compact_map do |b|\n to_friendly_booking(b)\n end\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"def":{"name":"on_load","visibility":"Public","body":"self[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"def":{"name":"on_update","visibility":"Public","body":"previous_def()\nself[:capabilities] = capabilities\nself[:function_schemas] = function_schemas\n"}},{"html_id":"timezone:Time::Location-instance-method","name":"timezone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":452,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L452"},"def":{"name":"timezone","return_type":"Time::Location","visibility":"Public","body":"if (__temp_1 = @timezone).nil?\n @timezone = (building.time_zone || @fallback_timezone)\nelse\n __temp_1\nend"}}],"types":[{"html_id":"drivers/Place/Workplace/Booking","path":"Place/Workplace/Booking.html","kind":"struct","full_name":"Place::Workplace::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":405,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L405"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,book:JSON::Any,timezone:Time::Location)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"args_string":"(level : Zone, book : JSON::Any, timezone : Time::Location)","args_html":"(level : Zone, book : JSON::Any, timezone : Time::Location)","location":{"filename":"src/place/llm/workplace.cr","line_number":425,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L425"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"book","external_name":"book","restriction":"JSON::Any"},{"name":"timezone","external_name":"timezone","restriction":"Time::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, book, timezone)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":406,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L406"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"asset_id:String-instance-method","name":"asset_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":413,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L413"},"def":{"name":"asset_id","return_type":"String","visibility":"Public","body":"@asset_id"}},{"html_id":"booking_type:String-instance-method","name":"booking_type","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":412,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L412"},"def":{"name":"booking_type","return_type":"String","visibility":"Public","body":"@booking_type"}},{"html_id":"checked_in:Bool-instance-method","name":"checked_in","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":423,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L423"},"def":{"name":"checked_in","return_type":"Bool","visibility":"Public","body":"@checked_in"}},{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":410,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L410"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":408,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L408"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":417,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L417"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":418,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L418"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":409,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L409"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":415,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L415"},"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_id:String|Nil-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":414,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L414"},"def":{"name":"user_id","return_type":"String | ::Nil","visibility":"Public","body":"@user_id"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":416,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L416"},"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]},{"html_id":"drivers/Place/Workplace/ChildMetadata","path":"Place/Workplace/ChildMetadata.html","kind":"alias","full_name":"Place::Workplace::ChildMetadata","name":"ChildMetadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Array(NamedTuple(zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)))","aliased_html":"Array({zone: PlaceOS::Client::API::Models::Zone, metadata: Hash(String, PlaceOS::Client::API::Models::Metadata)})","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/Desk","path":"Place/Workplace/Desk.html","kind":"struct","full_name":"Place::Workplace::Desk","name":"Desk","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L339"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L340"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L344"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L343"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L342"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}}]},{"html_id":"drivers/Place/Workplace/Metadata","path":"Place/Workplace/Metadata.html","kind":"alias","full_name":"Place::Workplace::Metadata","name":"Metadata","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L112"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, PlaceOS::Client::API::Models::Metadata)","aliased_html":"Hash(String, PlaceOS::Client::API::Models::Metadata)","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/PlaceZone","path":"Place/Workplace/PlaceZone.html","kind":"alias","full_name":"Place::Workplace::PlaceZone","name":"PlaceZone","abstract":false,"locations":[{"filename":"src/place/llm/workplace.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Client::API::Models::Zone","aliased_html":"PlaceOS::Client::API::Models::Zone","const":false,"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"}},{"html_id":"drivers/Place/Workplace/System","path":"Place/Workplace/System.html","kind":"struct","full_name":"Place::Workplace::System","name":"System","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":361,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L361"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(level:Zone,system:JSON::Any)-class-method","name":"new","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"args_string":"(level : Zone, system : JSON::Any)","args_html":"(level : Zone, system : JSON::Any)","location":{"filename":"src/place/llm/workplace.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L376"},"def":{"name":"new","args":[{"name":"level","external_name":"level","restriction":"Zone"},{"name":"system","external_name":"system","restriction":"JSON::Any"}],"visibility":"Public","body":"_ = allocate\n_.initialize(level, system)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":362,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L362"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L368"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L367"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"features:Array(String)-instance-method","name":"features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":366,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L366"},"def":{"name":"features","return_type":"Array(String)","visibility":"Public","body":"@features"}},{"html_id":"id:String|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L364"},"def":{"name":"id","return_type":"String | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"level_id:String-instance-method","name":"level_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":370,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L370"},"def":{"name":"level_id","return_type":"String","visibility":"Public","body":"@level_id"}},{"html_id":"level_name:String-instance-method","name":"level_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L371"},"def":{"name":"level_name","return_type":"String","visibility":"Public","body":"@level_name"}},{"html_id":"map_id:String|Nil-instance-method","name":"map_id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L372"},"def":{"name":"map_id","return_type":"String | ::Nil","visibility":"Public","body":"@map_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":365,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L365"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/User","path":"Place/Workplace/User.html","kind":"struct","full_name":"Place::Workplace::User","name":"User","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":456,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L456"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":457,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L457"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String-instance-method","name":"email","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":460,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L460"},"def":{"name":"email","return_type":"String","visibility":"Public","body":"@email"}},{"html_id":"groups:Array(String)-instance-method","name":"groups","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":461,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L461"},"def":{"name":"groups","return_type":"Array(String)","visibility":"Public","body":"@groups"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":459,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L459"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/Place/Workplace/Zone","path":"Place/Workplace/Zone.html","kind":"class","full_name":"Place::Workplace::Zone","name":"Zone","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/llm/workplace.cr","line_number":466,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L466"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/Workplace","kind":"class","full_name":"Place::Workplace","name":"Workplace"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/llm/workplace.cr","line_number":467,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L467"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"bookable_desk_count:Int32|Nil-instance-method","name":"bookable_desk_count","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@bookable_desk_count"}},{"html_id":"bookable_desk_count=(bookable_desk_count:Int32|Nil)-instance-method","name":"bookable_desk_count=","abstract":false,"args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"args_string":"(bookable_desk_count : Int32 | Nil)","args_html":"(bookable_desk_count : Int32 | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":474,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L474"},"def":{"name":"bookable_desk_count=","args":[{"name":"bookable_desk_count","external_name":"bookable_desk_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@bookable_desk_count = bookable_desk_count"}},{"html_id":"desk_features:Array(String)|Nil-instance-method","name":"desk_features","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@desk_features"}},{"html_id":"desk_features=(desk_features:Array(String)|Nil)-instance-method","name":"desk_features=","abstract":false,"args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"args_string":"(desk_features : Array(String) | Nil)","args_html":"(desk_features : Array(String) | Nil)","location":{"filename":"src/place/llm/workplace.cr","line_number":475,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L475"},"def":{"name":"desk_features=","args":[{"name":"desk_features","external_name":"desk_features","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"@desk_features = desk_features"}},{"html_id":"display_name:String|Nil-instance-method","name":"display_name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":471,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L471"},"def":{"name":"display_name","return_type":"String | ::Nil","visibility":"Public","body":"@display_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":469,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L469"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":470,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L470"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"tags:Array(String)-instance-method","name":"tags","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":472,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L472"},"def":{"name":"tags","return_type":"Array(String)","visibility":"Public","body":"@tags"}},{"html_id":"time_zone:Time::Location|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":481,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L481"},"def":{"name":"time_zone","return_type":"Time::Location | ::Nil","visibility":"Public","body":"if (__temp_1 = @time_zone).nil?\n @time_zone = (if tz = @tz.presence\n Time::Location.load(tz)\n end)\nelse\n __temp_1\nend"}},{"html_id":"tz:String|Nil-instance-method","name":"tz","abstract":false,"location":{"filename":"src/place/llm/workplace.cr","line_number":478,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/llm/workplace.cr#L478"},"def":{"name":"tz","return_type":"String | ::Nil","visibility":"Public","body":"@tz"}}]}]},{"html_id":"drivers/Place/WorkplaceSubscription","path":"Place/WorkplaceSubscription.html","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription","abstract":false,"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"SUBSCRIPTION_LENGTH","name":"SUBSCRIPTION_LENGTH","value":"3.hours","doc":"the API reports that 6 days is the max:\nSubscription expiration can only be 10070 minutes in the future.","summary":"

the API reports that 6 days is the max: Subscription expiration can only be 10070 minutes in the future.

"}],"including_types":[{"html_id":"drivers/InnerRange/IntegritiUserSync","kind":"class","full_name":"InnerRange::IntegritiUserSync","name":"IntegritiUserSync"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"instance_methods":[{"html_id":"sub_renewed_at:Time-instance-method","name":"sub_renewed_at","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L94"},"def":{"name":"sub_renewed_at","return_type":"Time","visibility":"Public","body":"@sub_renewed_at"}},{"html_id":"subscription_on_crud(notification:NotifyEvent):Nil-instance-method","name":"subscription_on_crud","abstract":true,"args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"args_string":"(notification : NotifyEvent) : Nil","args_html":"(notification : NotifyEvent) : Nil","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L30"},"def":{"name":"subscription_on_crud","args":[{"name":"notification","external_name":"notification","restriction":"NotifyEvent"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_on_missed:Nil-instance-method","name":"subscription_on_missed","abstract":true,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L31"},"def":{"name":"subscription_on_missed","return_type":"Nil","visibility":"Public","body":""}},{"html_id":"subscription_resource(service_name:ServiceName):String-instance-method","name":"subscription_resource","doc":"should return the resource URI for monitoring, for example:\n\ncase service_name\nin .google?\n resource = \"/calendars/#{calendar_id}/events\"\nin .office365?\n resource = \"/users/#{calendar_id}/events\"","summary":"

should return the resource URI for monitoring, for example:

","abstract":true,"args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"args_string":"(service_name : ServiceName) : String","args_html":"(service_name : ServiceName) : String","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L45"},"def":{"name":"subscription_resource","args":[{"name":"service_name","external_name":"service_name","restriction":"ServiceName"}],"return_type":"String","visibility":"Public","body":""}}],"types":[{"html_id":"drivers/Place/WorkplaceSubscription/NotifyEvent","path":"Place/WorkplaceSubscription/NotifyEvent.html","kind":"struct","full_name":"Place::WorkplaceSubscription::NotifyEvent","name":"NotifyEvent","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L18"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"client_secret:String-instance-method","name":"client_secret","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L24"},"def":{"name":"client_secret","return_type":"String","visibility":"Public","body":"@client_secret"}},{"html_id":"event_type:NotifyType-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L20"},"def":{"name":"event_type","return_type":"NotifyType","visibility":"Public","body":"@event_type"}},{"html_id":"expiration_time:Time-instance-method","name":"expiration_time","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L27"},"def":{"name":"expiration_time","return_type":"Time","visibility":"Public","body":"@expiration_time"}},{"html_id":"resource_id:String|Nil-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L21"},"def":{"name":"resource_id","return_type":"String | ::Nil","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_uri:String-instance-method","name":"resource_uri","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L22"},"def":{"name":"resource_uri","return_type":"String","visibility":"Public","body":"@resource_uri"}},{"html_id":"subscription_id:String-instance-method","name":"subscription_id","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L23"},"def":{"name":"subscription_id","return_type":"String","visibility":"Public","body":"@subscription_id"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/NotifyType","path":"Place/WorkplaceSubscription/NotifyType.html","kind":"enum","full_name":"Place::WorkplaceSubscription::NotifyType","name":"NotifyType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L5"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Created","name":"Created","value":"0","doc":"resource event changes","summary":"

resource event changes

"},{"id":"Updated","name":"Updated","value":"1"},{"id":"Deleted","name":"Deleted","value":"2"},{"id":"Renew","name":"Renew","value":"3","doc":"subscription lifecycle event (MS only)","summary":"

subscription lifecycle event (MS only)

"},{"id":"Missed","name":"Missed","value":"4"},{"id":"Reauthorize","name":"Reauthorize","value":"5"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"created?-instance-method","name":"created?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L7"},"def":{"name":"created?","visibility":"Public","body":"self == Created"}},{"html_id":"deleted?-instance-method","name":"deleted?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L9"},"def":{"name":"deleted?","visibility":"Public","body":"self == Deleted"}},{"html_id":"missed?-instance-method","name":"missed?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L13"},"def":{"name":"missed?","visibility":"Public","body":"self == Missed"}},{"html_id":"reauthorize?-instance-method","name":"reauthorize?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L14"},"def":{"name":"reauthorize?","visibility":"Public","body":"self == Reauthorize"}},{"html_id":"renew?-instance-method","name":"renew?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L12"},"def":{"name":"renew?","visibility":"Public","body":"self == Renew"}},{"html_id":"updated?-instance-method","name":"updated?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L8"},"def":{"name":"updated?","visibility":"Public","body":"self == Updated"}}]},{"html_id":"drivers/Place/WorkplaceSubscription/ServiceName","path":"Place/WorkplaceSubscription/ServiceName.html","kind":"enum","full_name":"Place::WorkplaceSubscription::ServiceName","name":"ServiceName","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/models/workplace_subscriptions.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L33"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Google","name":"Google","value":"0"},{"id":"Office365","name":"Office365","value":"1"}],"namespace":{"html_id":"drivers/Place/WorkplaceSubscription","kind":"module","full_name":"Place::WorkplaceSubscription","name":"WorkplaceSubscription"},"instance_methods":[{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L34"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"office365?-instance-method","name":"office365?","abstract":false,"location":{"filename":"src/place/models/workplace_subscriptions.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/models/workplace_subscriptions.cr#L35"},"def":{"name":"office365?","visibility":"Public","body":"self == Office365"}}]}]},{"html_id":"drivers/Place/WorkspaceAPI","path":"Place/WorkspaceAPI.html","kind":"class","full_name":"Place::WorkspaceAPI","name":"WorkspaceAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"},{"html_id":"drivers/PlaceOS/Driver/Interface/Mailer","kind":"module","full_name":"PlaceOS::Driver::Interface::Mailer","name":"Mailer"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/google/workspace_api.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/google/workspace_api.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/Place/CalendarCommon","kind":"module","full_name":"Place::CalendarCommon","name":"CalendarCommon"}],"namespace":{"html_id":"drivers/Place","kind":"module","full_name":"Place","name":"Place"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}]}]},{"html_id":"drivers/Planar","path":"Planar.html","kind":"module","full_name":"Planar","name":"Planar","abstract":false,"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Planar/ClarityMatrix","path":"Planar/ClarityMatrix.html","kind":"class","full_name":"Planar::ClarityMatrix","name":"ClarityMatrix","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/planar/clarity_matrix.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Planar","kind":"module","full_name":"Planar","name":"Planar"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"build_date?-instance-method","name":"build_date?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L64"},"def":{"name":"build_date?","visibility":"Public","body":"send(\"ST A1 BUILD.DATE ? \\r\", wait: true)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L23"},"def":{"name":"connected","visibility":"Public","body":"do_poll\nschedule.every(60.seconds) do\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L28"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L59"},"def":{"name":"do_poll","visibility":"Public","body":"power?\nif @power\n input_status?(priority: 0)\nend\n"}},{"html_id":"input_status?(**options)-instance-method","name":"input_status?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L55"},"def":{"name":"input_status?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op A1 slot.current ? \\r\", wait: true)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\ntransport.tokenizer = Tokenizer.new(\"\\r\")\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L34"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"power?.get\nif state && (@power == false)\n send(\"op ** display.power = on \\r\", name: \"power\", delay: 3.seconds)\n result = power?\n schedule.in(20.seconds) do\n recall(0)\n end\n result\nelse\n if !state && (@power == true)\n send(\"op ** display.power = off \\r\", name: \"power\", delay: 3.seconds)\n power?\n end\nend\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/planar/clarity_matrix.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L47"},"def":{"name":"power?","visibility":"Public","body":"send(\"op A1 display.power ? \\r\", wait: true, priority: 0)"}},{"html_id":"recall(preset:UInt32,**options)-instance-method","name":"recall","abstract":false,"args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"args_string":"(preset : UInt32, **options)","args_html":"(preset : UInt32, **options)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L51"},"def":{"name":"recall","args":[{"name":"preset","external_name":"preset","restriction":"UInt32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"send(\"op ** slot.recall (#{preset}) \\r\", **options, name: \"recall\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/planar/clarity_matrix.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/planar/clarity_matrix.cr#L68"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"sent: #{data}\"\nend\ndata = data.split('.')\ncomponent = data[0]\ndata = data[1].split('=')\nstatus = data[0].downcase.strip\nvalue = data[1].strip\ncase status\nwhen \"power\"\n self[:power] = @power = value == \"ON\"\n task.try(&.success(@power))\nwhen \"current\"\n input = value.to_i\n self[:input] = input\n task.try(&.success(input))\nwhen \"date\"\n task.try(&.success(value[1..-2]))\nelse\n task.try(&.success)\nend\n"}}]}]},{"html_id":"drivers/Point","path":"Point.html","kind":"struct","full_name":"Point","name":"Point","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(x:Float64,y:Float64)-class-method","name":"new","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(x : Float64, y : Float64)","args_html":"(x : Float64, y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L19"},"def":{"name":"new","args":[{"name":"x","external_name":"x","restriction":"Float64"},{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"_ = allocate\n_.initialize(x, y)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"distance_to(point:Point)-instance-method","name":"distance_to","doc":"pythagoras","summary":"

pythagoras

","abstract":false,"args":[{"name":"point","external_name":"point","restriction":"Point"}],"args_string":"(point : Point)","args_html":"(point : Point)","location":{"filename":"src/place/area_polygon.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L26"},"def":{"name":"distance_to","args":[{"name":"point","external_name":"point","restriction":"Point"}],"visibility":"Public","body":"a = point.x - @x\nb = point.y - @y\nMath.sqrt((a * a) + (b * b))\n"}},{"html_id":"x:Float64-instance-method","name":"x","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L22"},"def":{"name":"x","return_type":"Float64","visibility":"Public","body":"@x"}},{"html_id":"x=(x:Float64)-instance-method","name":"x=","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Float64"}],"args_string":"(x : Float64)","args_html":"(x : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L22"},"def":{"name":"x=","args":[{"name":"x","external_name":"x","restriction":"Float64"}],"visibility":"Public","body":"@x = x"}},{"html_id":"y:Float64-instance-method","name":"y","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L23"},"def":{"name":"y","return_type":"Float64","visibility":"Public","body":"@y"}},{"html_id":"y=(y:Float64)-instance-method","name":"y=","abstract":false,"args":[{"name":"y","external_name":"y","restriction":"Float64"}],"args_string":"(y : Float64)","args_html":"(y : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L23"},"def":{"name":"y=","args":[{"name":"y","external_name":"y","restriction":"Float64"}],"visibility":"Public","body":"@y = y"}}]},{"html_id":"drivers/PointGrab","path":"PointGrab.html","kind":"module","full_name":"PointGrab","name":"PointGrab","abstract":false,"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/PointGrab/CogniPoint","path":"PointGrab/CogniPoint.html","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/PointGrab","kind":"module","full_name":"PointGrab","name":"PointGrab"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"area(site_id:String,building_id:String,floor_id:String,area_id:String)-instance-method","name":"area","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String, area_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String, area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L259"},"def":{"name":"area","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"},{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas/#{area_id}\", Area)"}},{"html_id":"areas(site_id:String,building_id:String,floor_id:String)-instance-method","name":"areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L253"},"def":{"name":"areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"areas = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}/areas\", NamedTuple(areas: Array(Area)))\nareas[:areas]\n"}},{"html_id":"building(site_id:String,building_id:String)-instance-method","name":"building","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L164"},"def":{"name":"building","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}\", Building)"}},{"html_id":"building_areas(site_id:String,building_id:String)-instance-method","name":"building_areas","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L247"},"def":{"name":"building_areas","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/areas\", NamedTuple(floorsAreas: FloorAreas))\nfloors[:floorsAreas]\n"}},{"html_id":"buildings(site_id:String)-instance-method","name":"buildings","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L159"},"def":{"name":"buildings","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"buildings = get_request(\"/be/cp/v2/sites/#{site_id}/buildings\", NamedTuple(buildings: Array(Building)))\nbuildings[:buildings]\n"}},{"html_id":"customers-instance-method","name":"customers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L89"},"def":{"name":"customers","visibility":"Public","body":"customers = get_request(\"/be/cp/v2/customers\", NamedTuple(endCustomers: Array(Customer)))\ncustomers[:endCustomers]\n"}},{"html_id":"delete_subscription(id:String)-instance-method","name":"delete_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L338"},"def":{"name":"delete_subscription","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"token = get_token\n(delete(\"/be/cp/v2/telemetry/subscriptions/#{id}\", headers: {\"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}},{"html_id":"expire_token!-instance-method","name":"expire_token!","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L34"},"def":{"name":"expire_token!","visibility":"Public","body":"@auth_expiry = 1.minute.ago"}},{"html_id":"floor(site_id:String,building_id:String,floor_id:String)-instance-method","name":"floor","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String, floor_id : String)","args_html":"(site_id : String, building_id : String, floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L194"},"def":{"name":"floor","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"},{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors/#{floor_id}\", Floor)"}},{"html_id":"floors(site_id:String,building_id:String)-instance-method","name":"floors","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"args_string":"(site_id : String, building_id : String)","args_html":"(site_id : String, building_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":189,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L189"},"def":{"name":"floors","args":[{"name":"site_id","external_name":"site_id","restriction":"String"},{"name":"building_id","external_name":"building_id","restriction":"String"}],"visibility":"Public","body":"floors = get_request(\"/be/cp/v2/sites/#{site_id}/buildings/#{building_id}/floors\", NamedTuple(floors: Array(Building)))\nfloors[:floors]\n"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L42"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nresponse = post(\"/be/cp/oauth2/token\", body: \"grant_type=client_credentials\", headers: {\"Content-Type\" => \"application/x-www-form-urlencoded\", \"Accept\" => \"application/json\", \"Authorization\" => \"Basic #{Base64.strict_encode(\"#{@user_id}:#{@app_key}\")}\"})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n resp = TokenResponse.from_json(body.not_nil!)\n token = resp.token\n @auth_expiry = Time.utc + (resp.expires_in - 5).seconds\n @auth_token = \"Bearer #{resp.token}\"\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"handlers-instance-method","name":"handlers","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":276,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L276"},"def":{"name":"handlers","visibility":"Public","body":"handlers = get_request(\"/be/cp/v2/resources/handlers\", NamedTuple(handlers: Array(Handler)))\nhandlers[:handlers]\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@user_id = setting(String, :user_id)\n@app_key = setting(String, :app_key)\n"}},{"html_id":"site(site_id:String)-instance-method","name":"site","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L143"},"def":{"name":"site","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"get_request(\"/be/cp/v2/sites/#{site_id}\", Site)"}},{"html_id":"sites-instance-method","name":"sites","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L138"},"def":{"name":"sites","visibility":"Public","body":"sites = get_request(\"/be/cp/v2/sites\", NamedTuple(sites: Array(Site)))\nsites[:sites]\n"}},{"html_id":"subscribe(handler_uri:String,auth_token:String=UUID.random.to_s,events:NotificationType=NotificationType::Counting)-instance-method","name":"subscribe","abstract":false,"args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"args_string":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","args_html":"(handler_uri : String, auth_token : String = UUID.random.to_s, events : NotificationType = NotificationType::Counting)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":303,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L303"},"def":{"name":"subscribe","args":[{"name":"handler_uri","external_name":"handler_uri","restriction":"String"},{"name":"auth_token","default_value":"UUID.random.to_s","external_name":"auth_token","restriction":"String"},{"name":"events","default_value":"NotificationType::Counting","external_name":"events","restriction":"NotificationType"}],"visibility":"Public","body":"URI.parse(handler_uri)\ntoken = get_token\nresponse = post(\"/be/cp/v2/telemetry/subscriptions\", body: {subscriptionType: \"PUSH\", notificationType: events.to_s.upcase, endpoint: handler_uri, token: auth_token}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})\nbody = response.body\nlogger.debug do\n \"received login response: #{body}\"\nend\nif response.success?\n Subscription.from_json(body.not_nil!)\nelse\n logger.error do\n \"authentication failed with HTTP #{response.status_code}\"\n end\n raise(\"failed to obtain access token\")\nend\n"}},{"html_id":"subscriptions-instance-method","name":"subscriptions","doc":"provides access to the modules subscriptions tracker","summary":"

provides access to the modules subscriptions tracker

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L334"},"def":{"name":"subscriptions","visibility":"Public","body":"get_request(\"/be/cp/v2/telemetry/subscriptions\", Array(Subscription))"}},{"html_id":"token_expired?-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L38"},"def":{"name":"token_expired?","visibility":"Public","body":"@auth_expiry < Time.utc"}},{"html_id":"update_count(count_json:String)-instance-method","name":"update_count","abstract":false,"args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"args_string":"(count_json : String)","args_html":"(count_json : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":376,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L376"},"def":{"name":"update_count","args":[{"name":"count_json","external_name":"count_json","restriction":"String"}],"visibility":"Public","body":"count = CountUpdate.from_json(count_json)\nself[\"area_#{count.area_id}\"] = count.count\n"}},{"html_id":"update_subscription(id:String,started:Bool=true)-instance-method","name":"update_subscription","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"args_string":"(id : String, started : Bool = true)","args_html":"(id : String, started : Bool = true)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":348,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L348"},"def":{"name":"update_subscription","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"started","default_value":"true","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"token = get_token\n(patch(\"/be/cp/v2/telemetry/subscriptions/#{id}\", body: {started: started}.to_json, headers: {\"Content-Type\" => \"application/json\", \"Accept\" => \"application/json\", \"Authorization\" => token})).success?\n"}}],"macros":[{"html_id":"get_request(path,result_type)-macro","name":"get_request","abstract":false,"args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"args_string":"(path, result_type)","args_html":"(path, result_type)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L65"},"def":{"name":"get_request","args":[{"name":"path","external_name":"path","restriction":""},{"name":"result_type","external_name":"result_type","restriction":""}],"visibility":"Public","body":" begin\n \n%token\n = get_token\n \n%response\n = get(\n{{ path }}\n, headers: \n{\n \"Accept\" => \"application/json\",\n \"Authorization\" => \n%token\n\n })\n\n if \n%response\n.success?\n \n{{ result_type }}\n.from_json(\n%response\n.body.not_nil!)\n \nelse\n \nexpire_token! if \n%response\n.status_code == 401\n raise \"unexpected response #{\n%response\n.status_code}\\n#{\n%response\n.body}\"\n \nend\n \nend\n \n"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area","path":"PointGrab/CogniPoint/Area.html","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L198"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":199,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L199"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"applications:Array(Application)-instance-method","name":"applications","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications","return_type":"Array(Application)","visibility":"Public","body":"@applications"}},{"html_id":"applications=(applications:Array(Application))-instance-method","name":"applications=","abstract":false,"args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"args_string":"(applications : Array(Application))","args_html":"(applications : Array(Application))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L228"},"def":{"name":"applications=","args":[{"name":"applications","external_name":"applications","restriction":"Array(Application)"}],"visibility":"Public","body":"@applications = applications"}},{"html_id":"center_x:Float64-instance-method","name":"center_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x","return_type":"Float64","visibility":"Public","body":"@center_x"}},{"html_id":"center_x=(center_x:Float64)-instance-method","name":"center_x=","abstract":false,"args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"args_string":"(center_x : Float64)","args_html":"(center_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L207"},"def":{"name":"center_x=","args":[{"name":"center_x","external_name":"center_x","restriction":"Float64"}],"visibility":"Public","body":"@center_x = center_x"}},{"html_id":"center_y:Float64-instance-method","name":"center_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y","return_type":"Float64","visibility":"Public","body":"@center_y"}},{"html_id":"center_y=(center_y:Float64)-instance-method","name":"center_y=","abstract":false,"args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"args_string":"(center_y : Float64)","args_html":"(center_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":210,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L210"},"def":{"name":"center_y=","args":[{"name":"center_y","external_name":"center_y","restriction":"Float64"}],"visibility":"Public","body":"@center_y = center_y"}},{"html_id":"device_ids:Array(String)-instance-method","name":"device_ids","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids","return_type":"Array(String)","visibility":"Public","body":"@device_ids"}},{"html_id":"device_ids=(device_ids:Array(String))-instance-method","name":"device_ids=","abstract":false,"args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"args_string":"(device_ids : Array(String))","args_html":"(device_ids : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L216"},"def":{"name":"device_ids=","args":[{"name":"device_ids","external_name":"device_ids","restriction":"Array(String)"}],"visibility":"Public","body":"@device_ids = device_ids"}},{"html_id":"frequency:Int32-instance-method","name":"frequency","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency","return_type":"Int32","visibility":"Public","body":"@frequency"}},{"html_id":"frequency=(frequency:Int32)-instance-method","name":"frequency=","abstract":false,"args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"args_string":"(frequency : Int32)","args_html":"(frequency : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L213"},"def":{"name":"frequency=","args":[{"name":"frequency","external_name":"frequency","restriction":"Int32"}],"visibility":"Public","body":"@frequency = frequency"}},{"html_id":"geo_positions:Array(GeoPosition)|Nil-instance-method","name":"geo_positions","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions","return_type":"Array(GeoPosition) | ::Nil","visibility":"Public","body":"@geo_positions"}},{"html_id":"geo_positions=(geo_positions:Array(GeoPosition)|Nil)-instance-method","name":"geo_positions=","doc":"Area Polygon Coordinates positions","summary":"

Area Polygon Coordinates positions

","abstract":false,"args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"args_string":"(geo_positions : Array(GeoPosition) | Nil)","args_html":"(geo_positions : Array(GeoPosition) | Nil)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L236"},"def":{"name":"geo_positions=","args":[{"name":"geo_positions","external_name":"geo_positions","restriction":"Array(GeoPosition) | ::Nil"}],"visibility":"Public","body":"@geo_positions = geo_positions"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L201"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length:Float64-instance-method","name":"length","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length","return_type":"Float64","visibility":"Public","body":"@length"}},{"html_id":"length=(length:Float64)-instance-method","name":"length=","abstract":false,"args":[{"name":"length","external_name":"length","restriction":"Float64"}],"args_string":"(length : Float64)","args_html":"(length : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L203"},"def":{"name":"length=","args":[{"name":"length","external_name":"length","restriction":"Float64"}],"visibility":"Public","body":"@length = length"}},{"html_id":"metric_positions:Array(MetricPositions)-instance-method","name":"metric_positions","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions","return_type":"Array(MetricPositions)","visibility":"Public","body":"@metric_positions"}},{"html_id":"metric_positions=(metric_positions:Array(MetricPositions))-instance-method","name":"metric_positions=","doc":"Area Polygon positions in meters","summary":"

Area Polygon positions in meters

","abstract":false,"args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"args_string":"(metric_positions : Array(MetricPositions))","args_html":"(metric_positions : Array(MetricPositions))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L232"},"def":{"name":"metric_positions=","args":[{"name":"metric_positions","external_name":"metric_positions","restriction":"Array(MetricPositions)"}],"visibility":"Public","body":"@metric_positions = metric_positions"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L202"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"rotation:Int32-instance-method","name":"rotation","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation","return_type":"Int32","visibility":"Public","body":"@rotation"}},{"html_id":"rotation=(rotation:Int32)-instance-method","name":"rotation=","abstract":false,"args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"args_string":"(rotation : Int32)","args_html":"(rotation : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L212"},"def":{"name":"rotation=","args":[{"name":"rotation","external_name":"rotation","restriction":"Int32"}],"visibility":"Public","body":"@rotation = rotation"}},{"html_id":"width:Float64-instance-method","name":"width","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width","return_type":"Float64","visibility":"Public","body":"@width"}},{"html_id":"width=(width:Float64)-instance-method","name":"width=","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Float64"}],"args_string":"(width : Float64)","args_html":"(width : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L204"},"def":{"name":"width=","args":[{"name":"width","external_name":"width","restriction":"Float64"}],"visibility":"Public","body":"@width = width"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Area/Application","path":"PointGrab/CogniPoint/Area/Application.html","kind":"class","full_name":"PointGrab::CogniPoint::Area::Application","name":"Application","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L218"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Area","kind":"class","full_name":"PointGrab::CogniPoint::Area","name":"Area"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":219,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L219"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"application_type:String-instance-method","name":"application_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type","return_type":"String","visibility":"Public","body":"@application_type"}},{"html_id":"application_type=(application_type:String)-instance-method","name":"application_type=","abstract":false,"args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"args_string":"(application_type : String)","args_html":"(application_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L225"},"def":{"name":"application_type=","args":[{"name":"application_type","external_name":"application_type","restriction":"String"}],"visibility":"Public","body":"@application_type = application_type"}},{"html_id":"area_type:String-instance-method","name":"area_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type","return_type":"String","visibility":"Public","body":"@area_type"}},{"html_id":"area_type=(area_type:String)-instance-method","name":"area_type=","abstract":false,"args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"args_string":"(area_type : String)","args_html":"(area_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L222"},"def":{"name":"area_type=","args":[{"name":"area_type","external_name":"area_type","restriction":"String"}],"visibility":"Public","body":"@area_type = area_type"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Building","path":"PointGrab/CogniPoint/Building.html","kind":"class","full_name":"PointGrab::CogniPoint::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L147"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L148"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L150"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Site::Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location","return_type":"Site::Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Site::Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"args_string":"(location : Site::Location)","args_html":"(location : Site::Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L156"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Site::Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L151"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"site_id:String-instance-method","name":"site_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id","return_type":"String","visibility":"Public","body":"@site_id"}},{"html_id":"site_id=(site_id:String)-instance-method","name":"site_id=","abstract":false,"args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"args_string":"(site_id : String)","args_html":"(site_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L154"},"def":{"name":"site_id=","args":[{"name":"site_id","external_name":"site_id","restriction":"String"}],"visibility":"Public","body":"@site_id = site_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/CountUpdate","path":"PointGrab/CogniPoint/CountUpdate.html","kind":"class","full_name":"PointGrab::CogniPoint::CountUpdate","name":"CountUpdate","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":363,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L363"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"doc":"TODO:: this data is posted to the subscription endpoint\nwe need to implement webhooks for this to work properly","summary":"

TODO : this data is posted to the subscription endpoint we need to implement webhooks for this to work properly

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":364,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L364"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"area_id:String-instance-method","name":"area_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id","return_type":"String","visibility":"Public","body":"@area_id"}},{"html_id":"area_id=(area_id:String)-instance-method","name":"area_id=","abstract":false,"args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"args_string":"(area_id : String)","args_html":"(area_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":367,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L367"},"def":{"name":"area_id=","args":[{"name":"area_id","external_name":"area_id","restriction":"String"}],"visibility":"Public","body":"@area_id = area_id"}},{"html_id":"count:Int32-instance-method","name":"count","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count","return_type":"Int32","visibility":"Public","body":"@count"}},{"html_id":"count=(count:Int32)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"Int32"}],"args_string":"(count : Int32)","args_html":"(count : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":373,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L373"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"Int32"}],"visibility":"Public","body":"@count = count"}},{"html_id":"devices:Array(String)-instance-method","name":"devices","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices","return_type":"Array(String)","visibility":"Public","body":"@devices"}},{"html_id":"devices=(devices:Array(String))-instance-method","name":"devices=","abstract":false,"args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"args_string":"(devices : Array(String))","args_html":"(devices : Array(String))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":368,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L368"},"def":{"name":"devices=","args":[{"name":"devices","external_name":"devices","restriction":"Array(String)"}],"visibility":"Public","body":"@devices = devices"}},{"html_id":"event_type:String-instance-method","name":"event_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type","return_type":"String","visibility":"Public","body":"@event_type"}},{"html_id":"event_type=(event_type:String)-instance-method","name":"event_type=","abstract":false,"args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"args_string":"(event_type : String)","args_html":"(event_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":371,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L371"},"def":{"name":"event_type=","args":[{"name":"event_type","external_name":"event_type","restriction":"String"}],"visibility":"Public","body":"@event_type = event_type"}},{"html_id":"timestamp:UInt64-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp","return_type":"UInt64","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:UInt64)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"args_string":"(timestamp : UInt64)","args_html":"(timestamp : UInt64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":372,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L372"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"UInt64"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Customer","path":"PointGrab/CogniPoint/Customer.html","kind":"class","full_name":"PointGrab::CogniPoint::Customer","name":"Customer","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L85"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L86"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Floor","path":"PointGrab/CogniPoint/Floor.html","kind":"class","full_name":"PointGrab::CogniPoint::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L168"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L169"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_number:String-instance-method","name":"floor_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number","return_type":"String","visibility":"Public","body":"@floor_number"}},{"html_id":"floor_number=(floor_number:String)-instance-method","name":"floor_number=","abstract":false,"args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"args_string":"(floor_number : String)","args_html":"(floor_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L175"},"def":{"name":"floor_number=","args":[{"name":"floor_number","external_name":"floor_number","restriction":"String"}],"visibility":"Public","body":"@floor_number = floor_number"}},{"html_id":"floor_plan_url:String-instance-method","name":"floor_plan_url","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url","return_type":"String","visibility":"Public","body":"@floor_plan_url"}},{"html_id":"floor_plan_url=(floor_plan_url:String)-instance-method","name":"floor_plan_url=","abstract":false,"args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"args_string":"(floor_plan_url : String)","args_html":"(floor_plan_url : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L178"},"def":{"name":"floor_plan_url=","args":[{"name":"floor_plan_url","external_name":"floor_plan_url","restriction":"String"}],"visibility":"Public","body":"@floor_plan_url = floor_plan_url"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L171"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"length_distance:Float64-instance-method","name":"length_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance","return_type":"Float64","visibility":"Public","body":"@length_distance"}},{"html_id":"length_distance=(length_distance:Float64)-instance-method","name":"length_distance=","abstract":false,"args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"args_string":"(length_distance : Float64)","args_html":"(length_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L184"},"def":{"name":"length_distance=","args":[{"name":"length_distance","external_name":"length_distance","restriction":"Float64"}],"visibility":"Public","body":"@length_distance = length_distance"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L172"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"width_distance:Float64-instance-method","name":"width_distance","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance","return_type":"Float64","visibility":"Public","body":"@width_distance"}},{"html_id":"width_distance=(width_distance:Float64)-instance-method","name":"width_distance=","abstract":false,"args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"args_string":"(width_distance : Float64)","args_html":"(width_distance : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L181"},"def":{"name":"width_distance=","args":[{"name":"width_distance","external_name":"width_distance","restriction":"Float64"}],"visibility":"Public","body":"@width_distance = width_distance"}}]},{"html_id":"drivers/PointGrab/CogniPoint/FloorAreas","path":"PointGrab/CogniPoint/FloorAreas.html","kind":"class","full_name":"PointGrab::CogniPoint::FloorAreas","name":"FloorAreas","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L239"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L240"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"areas:Array(Area)-instance-method","name":"areas","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas","return_type":"Array(Area)","visibility":"Public","body":"@areas"}},{"html_id":"areas=(areas:Array(Area))-instance-method","name":"areas=","abstract":false,"args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"args_string":"(areas : Array(Area))","args_html":"(areas : Array(Area))","location":{"filename":"src/point_grab/cogni_point.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L244"},"def":{"name":"areas=","args":[{"name":"areas","external_name":"areas","restriction":"Array(Area)"}],"visibility":"Public","body":"@areas = areas"}},{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L243"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}}]},{"html_id":"drivers/PointGrab/CogniPoint/GeoPosition","path":"PointGrab/CogniPoint/GeoPosition.html","kind":"class","full_name":"PointGrab::CogniPoint::GeoPosition","name":"GeoPosition","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L94"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L95"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"latitude:Float64-instance-method","name":"latitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude","return_type":"Float64","visibility":"Public","body":"@latitude"}},{"html_id":"latitude=(latitude:Float64)-instance-method","name":"latitude=","abstract":false,"args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"args_string":"(latitude : Float64)","args_html":"(latitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L97"},"def":{"name":"latitude=","args":[{"name":"latitude","external_name":"latitude","restriction":"Float64"}],"visibility":"Public","body":"@latitude = latitude"}},{"html_id":"longitude:Float64-instance-method","name":"longitude","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude","return_type":"Float64","visibility":"Public","body":"@longitude"}},{"html_id":"longitude=(longitude:Float64)-instance-method","name":"longitude=","abstract":false,"args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"args_string":"(longitude : Float64)","args_html":"(longitude : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L98"},"def":{"name":"longitude=","args":[{"name":"longitude","external_name":"longitude","restriction":"Float64"}],"visibility":"Public","body":"@longitude = longitude"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Handler","path":"PointGrab/CogniPoint/Handler.html","kind":"class","full_name":"PointGrab::CogniPoint::Handler","name":"Handler","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L263"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L264"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_id:UInt32-instance-method","name":"app_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id","return_type":"UInt32","visibility":"Public","body":"@app_id"}},{"html_id":"app_id=(app_id:UInt32)-instance-method","name":"app_id=","abstract":false,"args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"args_string":"(app_id : UInt32)","args_html":"(app_id : UInt32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L270"},"def":{"name":"app_id=","args":[{"name":"app_id","external_name":"app_id","restriction":"UInt32"}],"visibility":"Public","body":"@app_id = app_id"}},{"html_id":"end_point:String-instance-method","name":"end_point","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point","return_type":"String","visibility":"Public","body":"@end_point"}},{"html_id":"end_point=(end_point:String)-instance-method","name":"end_point=","abstract":false,"args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"args_string":"(end_point : String)","args_html":"(end_point : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":273,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L273"},"def":{"name":"end_point=","args":[{"name":"end_point","external_name":"end_point","restriction":"String"}],"visibility":"Public","body":"@end_point = end_point"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L266"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L267"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]},{"html_id":"drivers/PointGrab/CogniPoint/MetricPositions","path":"PointGrab/CogniPoint/MetricPositions.html","kind":"class","full_name":"PointGrab::CogniPoint::MetricPositions","name":"MetricPositions","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L101"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L102"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"pos_x:Float64-instance-method","name":"pos_x","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x","return_type":"Float64","visibility":"Public","body":"@pos_x"}},{"html_id":"pos_x=(pos_x:Float64)-instance-method","name":"pos_x=","abstract":false,"args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"args_string":"(pos_x : Float64)","args_html":"(pos_x : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L105"},"def":{"name":"pos_x=","args":[{"name":"pos_x","external_name":"pos_x","restriction":"Float64"}],"visibility":"Public","body":"@pos_x = pos_x"}},{"html_id":"pos_y:Float64-instance-method","name":"pos_y","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y","return_type":"Float64","visibility":"Public","body":"@pos_y"}},{"html_id":"pos_y=(pos_y:Float64)-instance-method","name":"pos_y=","abstract":false,"args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"args_string":"(pos_y : Float64)","args_html":"(pos_y : Float64)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L108"},"def":{"name":"pos_y=","args":[{"name":"pos_y","external_name":"pos_y","restriction":"Float64"}],"visibility":"Public","body":"@pos_y = pos_y"}}]},{"html_id":"drivers/PointGrab/CogniPoint/NotificationType","path":"PointGrab/CogniPoint/NotificationType.html","kind":"enum","full_name":"PointGrab::CogniPoint::NotificationType","name":"NotificationType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L298"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Counting","name":"Counting","value":"0"},{"id":"Traffic","name":"Traffic","value":"1"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"instance_methods":[{"html_id":"counting?-instance-method","name":"counting?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":299,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L299"},"def":{"name":"counting?","visibility":"Public","body":"self == Counting"}},{"html_id":"traffic?-instance-method","name":"traffic?","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":300,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L300"},"def":{"name":"traffic?","visibility":"Public","body":"self == Traffic"}}]},{"html_id":"drivers/PointGrab/CogniPoint/Site","path":"PointGrab/CogniPoint/Site.html","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L111"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L112"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"customer_id:String-instance-method","name":"customer_id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id","return_type":"String","visibility":"Public","body":"@customer_id"}},{"html_id":"customer_id=(customer_id:String)-instance-method","name":"customer_id=","abstract":false,"args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"args_string":"(customer_id : String)","args_html":"(customer_id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L134"},"def":{"name":"customer_id=","args":[{"name":"customer_id","external_name":"customer_id","restriction":"String"}],"visibility":"Public","body":"@customer_id = customer_id"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L114"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"location=(location:Location)-instance-method","name":"location=","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"Location"}],"args_string":"(location : Location)","args_html":"(location : Location)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L135"},"def":{"name":"location=","args":[{"name":"location","external_name":"location","restriction":"Location"}],"visibility":"Public","body":"@location = location"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L115"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}],"types":[{"html_id":"drivers/PointGrab/CogniPoint/Site/Location","path":"PointGrab/CogniPoint/Site/Location.html","kind":"class","full_name":"PointGrab::CogniPoint::Site::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L117"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint/Site","kind":"class","full_name":"PointGrab::CogniPoint::Site","name":"Site"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L118"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"city:String-instance-method","name":"city","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city","return_type":"String","visibility":"Public","body":"@city"}},{"html_id":"city=(city:String)-instance-method","name":"city=","abstract":false,"args":[{"name":"city","external_name":"city","restriction":"String"}],"args_string":"(city : String)","args_html":"(city : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L123"},"def":{"name":"city=","args":[{"name":"city","external_name":"city","restriction":"String"}],"visibility":"Public","body":"@city = city"}},{"html_id":"country:String-instance-method","name":"country","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country","return_type":"String","visibility":"Public","body":"@country"}},{"html_id":"country=(country:String)-instance-method","name":"country=","abstract":false,"args":[{"name":"country","external_name":"country","restriction":"String"}],"args_string":"(country : String)","args_html":"(country : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L126"},"def":{"name":"country=","args":[{"name":"country","external_name":"country","restriction":"String"}],"visibility":"Public","body":"@country = country"}},{"html_id":"county:String-instance-method","name":"county","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county","return_type":"String","visibility":"Public","body":"@county"}},{"html_id":"county=(county:String)-instance-method","name":"county=","abstract":false,"args":[{"name":"county","external_name":"county","restriction":"String"}],"args_string":"(county : String)","args_html":"(county : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L124"},"def":{"name":"county=","args":[{"name":"county","external_name":"county","restriction":"String"}],"visibility":"Public","body":"@county = county"}},{"html_id":"geo_position:GeoPosition-instance-method","name":"geo_position","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position","return_type":"GeoPosition","visibility":"Public","body":"@geo_position"}},{"html_id":"geo_position=(geo_position:GeoPosition)-instance-method","name":"geo_position=","abstract":false,"args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"args_string":"(geo_position : GeoPosition)","args_html":"(geo_position : GeoPosition)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L130"},"def":{"name":"geo_position=","args":[{"name":"geo_position","external_name":"geo_position","restriction":"GeoPosition"}],"visibility":"Public","body":"@geo_position = geo_position"}},{"html_id":"house_number:String-instance-method","name":"house_number","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number","return_type":"String","visibility":"Public","body":"@house_number"}},{"html_id":"house_number=(house_number:String)-instance-method","name":"house_number=","abstract":false,"args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"args_string":"(house_number : String)","args_html":"(house_number : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L121"},"def":{"name":"house_number=","args":[{"name":"house_number","external_name":"house_number","restriction":"String"}],"visibility":"Public","body":"@house_number = house_number"}},{"html_id":"state:String-instance-method","name":"state","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state","return_type":"String","visibility":"Public","body":"@state"}},{"html_id":"state=(state:String)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"String"}],"args_string":"(state : String)","args_html":"(state : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L125"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"String"}],"visibility":"Public","body":"@state = state"}},{"html_id":"street:String-instance-method","name":"street","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street","return_type":"String","visibility":"Public","body":"@street"}},{"html_id":"street=(street:String)-instance-method","name":"street=","abstract":false,"args":[{"name":"street","external_name":"street","restriction":"String"}],"args_string":"(street : String)","args_html":"(street : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":122,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L122"},"def":{"name":"street=","args":[{"name":"street","external_name":"street","restriction":"String"}],"visibility":"Public","body":"@street = street"}},{"html_id":"zip:String-instance-method","name":"zip","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip","return_type":"String","visibility":"Public","body":"@zip"}},{"html_id":"zip=(zip:String)-instance-method","name":"zip=","abstract":false,"args":[{"name":"zip","external_name":"zip","restriction":"String"}],"args_string":"(zip : String)","args_html":"(zip : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L127"},"def":{"name":"zip=","args":[{"name":"zip","external_name":"zip","restriction":"String"}],"visibility":"Public","body":"@zip = zip"}}]}]},{"html_id":"drivers/PointGrab/CogniPoint/Subscription","path":"PointGrab/CogniPoint/Subscription.html","kind":"class","full_name":"PointGrab::CogniPoint::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L282"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":283,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L283"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"endpoint:String-instance-method","name":"endpoint","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint","return_type":"String","visibility":"Public","body":"@endpoint"}},{"html_id":"endpoint=(endpoint:String)-instance-method","name":"endpoint=","abstract":false,"args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"args_string":"(endpoint : String)","args_html":"(endpoint : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":288,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L288"},"def":{"name":"endpoint=","args":[{"name":"endpoint","external_name":"endpoint","restriction":"String"}],"visibility":"Public","body":"@endpoint = endpoint"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":285,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L285"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"notification_type:String-instance-method","name":"notification_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type","return_type":"String","visibility":"Public","body":"@notification_type"}},{"html_id":"notification_type=(notification_type:String)-instance-method","name":"notification_type=","abstract":false,"args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"args_string":"(notification_type : String)","args_html":"(notification_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":292,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L292"},"def":{"name":"notification_type=","args":[{"name":"notification_type","external_name":"notification_type","restriction":"String"}],"visibility":"Public","body":"@notification_type = notification_type"}},{"html_id":"started:Bool-instance-method","name":"started","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started","return_type":"Bool","visibility":"Public","body":"@started"}},{"html_id":"started=(started:Bool)-instance-method","name":"started=","abstract":false,"args":[{"name":"started","external_name":"started","restriction":"Bool"}],"args_string":"(started : Bool)","args_html":"(started : Bool)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L287"},"def":{"name":"started=","args":[{"name":"started","external_name":"started","restriction":"Bool"}],"visibility":"Public","body":"@started = started"}},{"html_id":"subscription_type:String-instance-method","name":"subscription_type","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type","return_type":"String","visibility":"Public","body":"@subscription_type"}},{"html_id":"subscription_type=(subscription_type:String)-instance-method","name":"subscription_type=","abstract":false,"args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"args_string":"(subscription_type : String)","args_html":"(subscription_type : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":295,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L295"},"def":{"name":"subscription_type=","args":[{"name":"subscription_type","external_name":"subscription_type","restriction":"String"}],"visibility":"Public","body":"@subscription_type = subscription_type"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":286,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L286"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}},{"html_id":"uri:String-instance-method","name":"uri","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri","return_type":"String","visibility":"Public","body":"@uri"}},{"html_id":"uri=(uri:String)-instance-method","name":"uri=","abstract":false,"args":[{"name":"uri","external_name":"uri","restriction":"String"}],"args_string":"(uri : String)","args_html":"(uri : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":289,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L289"},"def":{"name":"uri=","args":[{"name":"uri","external_name":"uri","restriction":"String"}],"visibility":"Public","body":"@uri = uri"}}]},{"html_id":"drivers/PointGrab/CogniPoint/TokenResponse","path":"PointGrab/CogniPoint/TokenResponse.html","kind":"class","full_name":"PointGrab::CogniPoint::TokenResponse","name":"TokenResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/point_grab/cogni_point.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L27"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/PointGrab/CogniPoint","kind":"class","full_name":"PointGrab::CogniPoint","name":"CogniPoint"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L28"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"expires_in:Int32-instance-method","name":"expires_in","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in","return_type":"Int32","visibility":"Public","body":"@expires_in"}},{"html_id":"expires_in=(expires_in:Int32)-instance-method","name":"expires_in=","abstract":false,"args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"args_string":"(expires_in : Int32)","args_html":"(expires_in : Int32)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L31"},"def":{"name":"expires_in=","args":[{"name":"expires_in","external_name":"expires_in","restriction":"Int32"}],"visibility":"Public","body":"@expires_in = expires_in"}},{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}},{"html_id":"token=(token:String)-instance-method","name":"token=","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"String"}],"args_string":"(token : String)","args_html":"(token : String)","location":{"filename":"src/point_grab/cogni_point.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/point_grab/cogni_point.cr#L30"},"def":{"name":"token=","args":[{"name":"token","external_name":"token","restriction":"String"}],"visibility":"Public","body":"@token = token"}}]}]}]},{"html_id":"drivers/Polygon","path":"Polygon.html","kind":"class","full_name":"Polygon","name":"Polygon","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/place/area_polygon.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L35"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constructors":[{"html_id":"new(points:Array(Point))-class-method","name":"new","abstract":false,"args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"args_string":"(points : Array(Point))","args_html":"(points : Array(Point))","location":{"filename":"src/place/area_polygon.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L36"},"def":{"name":"new","args":[{"name":"points","external_name":"points","restriction":"Array(Point)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(points)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"contains(testx:Float64,testy:Float64)-instance-method","name":"contains","abstract":false,"args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"args_string":"(testx : Float64, testy : Float64)","args_html":"(testx : Float64, testy : Float64)","location":{"filename":"src/place/area_polygon.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L54"},"def":{"name":"contains","args":[{"name":"testx","external_name":"testx","restriction":"Float64"},{"name":"testy","external_name":"testy","restriction":"Float64"}],"visibility":"Public","body":"if ((testx < @xmin || testx > @xmax) || testy < @ymin) || testy > @ymax\n return false\nend\ninside = false\nprevious_index = @points.size - 1\n@points.each_with_index do |point, index|\n previous = @points[previous_index]\n if ((point.y > testy) != (previous.y > testy)) && (testx < ((((previous.x - point.x) * (testy - point.y)) / (previous.y - point.y)) + point.x))\n inside = !inside\n end\n previous_index = index\nend\ninside\n"}},{"html_id":"points:Array(Point)-instance-method","name":"points","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L48"},"def":{"name":"points","return_type":"Array(Point)","visibility":"Public","body":"@points"}},{"html_id":"xmax:Float64-instance-method","name":"xmax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L51"},"def":{"name":"xmax","return_type":"Float64","visibility":"Public","body":"@xmax"}},{"html_id":"xmin:Float64-instance-method","name":"xmin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L49"},"def":{"name":"xmin","return_type":"Float64","visibility":"Public","body":"@xmin"}},{"html_id":"ymax:Float64-instance-method","name":"ymax","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L52"},"def":{"name":"ymax","return_type":"Float64","visibility":"Public","body":"@ymax"}},{"html_id":"ymin:Float64-instance-method","name":"ymin","abstract":false,"location":{"filename":"src/place/area_polygon.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/area_polygon.cr#L50"},"def":{"name":"ymin","return_type":"Float64","visibility":"Public","body":"@ymin"}}]},{"html_id":"drivers/Qbic","path":"Qbic.html","kind":"module","full_name":"Qbic","name":"Qbic","abstract":false,"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qbic/TouchPanel","path":"Qbic/TouchPanel.html","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"USERNAME","name":"USERNAME","value":"\"admin\""}],"namespace":{"html_id":"drivers/Qbic","kind":"module","full_name":"Qbic","name":"Qbic"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"device_info-instance-method","name":"device_info","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L188"},"def":{"name":"device_info","visibility":"Public","body":"query(\"GET\", \"/v1/info/\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_all_leds-instance-method","name":"get_all_leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L216"},"def":{"name":"get_all_leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n self[:light_names] = leds\n leds.each do |name|\n get_led_state(name)\n end\n true\nend"}},{"html_id":"get_eddystone_uid-instance-method","name":"get_eddystone_uid","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L165"},"def":{"name":"get_eddystone_uid","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_uid\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_eddystone_url-instance-method","name":"get_eddystone_url","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L184"},"def":{"name":"get_eddystone_url","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/eddystone_url\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_ibeacon-instance-method","name":"get_ibeacon","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L143"},"def":{"name":"get_ibeacon","visibility":"Public","body":"query(\"GET\", \"/v1/net/beacon/ibeacon\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_led_state(name:String)-instance-method","name":"get_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L212"},"def":{"name":"get_led_state","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led/#{name}\") do |data|\n self[name] = JSON.parse(data.not_nil!)\nend"}},{"html_id":"get_token-instance-method","name":"get_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L60"},"def":{"name":"get_token","visibility":"Public","body":"if token_expired?\nelse\n return @auth_token\nend\nif refresh_token = @refresh_token\n response = post(\"/v1/oauth2/token\", body: {grant_type: \"refresh_token\", refresh_token: refresh_token}.to_json)\n if response.success?\n resp = AuthResponse.from_json(response.body.not_nil!)\n @expired = false\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\n @refresh_token = resp.refresh_token\n return @auth_token\n else\n logger.debug do\n \"refresh token request failed\"\n end\n end\nend\nresponse = post(\"/v1/oauth2/token\", body: {grant_type: \"password\", username: USERNAME, password: @password}.to_json)\ndata = response.body.not_nil!\nif response.success?\n resp = AuthResponse.from_json(data)\n @expired = false\n @refresh_token = resp.refresh_token\n @auth_token = \"#{resp.token_type} #{resp.access_token}\"\nelse\n resp = FailureResponse.from_json(data)\n raise(\"failed to obtain access token: #{resp.detail} (#{response.status})\")\nend\n"}},{"html_id":"leds-instance-method","name":"leds","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":208,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L208"},"def":{"name":"leds","visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n self[:leds] = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L22"},"def":{"name":"on_update","visibility":"Public","body":"@password = URI.encode_www_form(setting(String, :password))\ntransport.before_request do |request|\n request.headers[\"Content-Type\"] = \"application/json\"\n if token_expired?\n else\n request.headers[\"Authorization\"] = @auth_token\n end\nend\nschedule.clear\nschedule.every(1.minute) do\n logger.debug do\n \"polling to check connectivity\"\n end\n resp = get(\"/v1/public/info/\")\n if resp.success?\n logger.debug do\n resp.body\n end\n get_all_leds\n end\nend\n"}},{"html_id":"set_all_leds(red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_all_leds","abstract":false,"args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(red : UInt8, green : UInt8, blue : UInt8)","args_html":"(red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L235"},"def":{"name":"set_all_leds","args":[{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"query(\"GET\", \"/v1/led\") do |data|\n leds = (NamedTuple(results: Array(String)).from_json(data.not_nil!))[:results]\n leds.each do |name|\n set_led_state(name, red, green, blue)\n end\n true\nend"}},{"html_id":"set_eddystone_uid(enabled:Bool,namespace:String|Nil=nil,instance:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_uid","doc":"https://github.com/google/eddystone/tree/master/eddystone-uid","summary":"

https://github.com/google/eddystone/tree/master/eddystone-uid

","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, namespace : String | Nil = nil, instance : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L149"},"def":{"name":"set_eddystone_uid","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"namespace","default_value":"nil","external_name":"namespace","restriction":"String | ::Nil"},{"name":"instance","default_value":"nil","external_name":"instance","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_uid\", {enabled: enabled ? \"enabled\" : \"disabled\", namespace: namespace, instance: instance, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_eddystone_url(enabled:Bool,url:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_eddystone_url","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, url : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L170"},"def":{"name":"set_eddystone_url","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"url","default_value":"nil","external_name":"url","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/eddystone_url\", {enabled: enabled ? \"enabled\" : \"disabled\", url: url, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_ibeacon(enabled:Bool,major:UInt16|Nil=nil,minor:UInt16|Nil=nil,uuid:String|Nil=nil,advertise_mode:AdvertiseMode|Nil=nil,power:Int8|Nil=nil)-instance-method","name":"set_ibeacon","abstract":false,"args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"args_string":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","args_html":"(enabled : Bool, major : UInt16 | Nil = nil, minor : UInt16 | Nil = nil, uuid : String | Nil = nil, advertise_mode : AdvertiseMode | Nil = nil, power : Int8 | Nil = nil)","location":{"filename":"src/qbic/touch_panel.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L125"},"def":{"name":"set_ibeacon","args":[{"name":"enabled","external_name":"enabled","restriction":"Bool"},{"name":"major","default_value":"nil","external_name":"major","restriction":"UInt16 | ::Nil"},{"name":"minor","default_value":"nil","external_name":"minor","restriction":"UInt16 | ::Nil"},{"name":"uuid","default_value":"nil","external_name":"uuid","restriction":"String | ::Nil"},{"name":"advertise_mode","default_value":"nil","external_name":"advertise_mode","restriction":"AdvertiseMode | ::Nil"},{"name":"power","default_value":"nil","external_name":"power","restriction":"Int8 | ::Nil"}],"visibility":"Public","body":"query(\"POST\", \"/v1/net/beacon/ibeacon\", {enabled: enabled ? \"enabled\" : \"disabled\", major: major, minor: minor, uuid: uuid, advertise_mode: advertise_mode.to_s.underscore, power: power}.to_json) do\n true\nend"}},{"html_id":"set_led_state(name:String,red:UInt8,green:UInt8,blue:UInt8)-instance-method","name":"set_led_state","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"args_string":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","args_html":"(name : String, red : UInt8, green : UInt8, blue : UInt8)","location":{"filename":"src/qbic/touch_panel.cr","line_number":226,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L226"},"def":{"name":"set_led_state","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"red","external_name":"red","restriction":"UInt8"},{"name":"green","external_name":"green","restriction":"UInt8"},{"name":"blue","external_name":"blue","restriction":"UInt8"}],"visibility":"Public","body":"value = {red: red, green: green, blue: blue}\nquery(\"POST\", \"/v1/led/#{name}\", value.to_json) do\n self[name] = value\nend\n"}},{"html_id":"set_setting(key:String,value:String|JSON::Any)-instance-method","name":"set_setting","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"args_string":"(key : String, value : String | JSON::Any)","args_html":"(key : String, value : String | JSON::Any)","location":{"filename":"src/qbic/touch_panel.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L197"},"def":{"name":"set_setting","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | JSON::Any"}],"visibility":"Public","body":"query(\"POST\", \"/v1/settings/#{key}\", {value: value}.to_json) do\n true\nend"}},{"html_id":"set_url(value:String)-instance-method","name":"set_url","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String)","args_html":"(value : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L204"},"def":{"name":"set_url","args":[{"name":"value","external_name":"value","restriction":"String"}],"visibility":"Public","body":"set_setting(\"content_url\", value)"}},{"html_id":"settings-instance-method","name":"settings","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L192"},"def":{"name":"settings","visibility":"Public","body":"query(\"GET\", \"/v1/settings\") do |data|\n JSON.parse(data.not_nil!)\nend"}},{"html_id":"token_expired?:Bool-instance-method","name":"token_expired?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L56"},"def":{"name":"token_expired?","visibility":"Public","body":"@expired"}},{"html_id":"update_password(new_password:String)-instance-method","name":"update_password","abstract":false,"args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"args_string":"(new_password : String)","args_html":"(new_password : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L106"},"def":{"name":"update_password","args":[{"name":"new_password","external_name":"new_password","restriction":"String"}],"visibility":"Public","body":"if new_password.size >= 4 && new_password.size <= 16\nelse\n raise(\"password must be between 4 and 16 characters\")\nend\nquery(\"POST\", \"/v1/user/password\") do\n define_setting(:password, new_password)\nend\n"}},{"html_id":"wifi_scan-instance-method","name":"wifi_scan","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L114"},"def":{"name":"wifi_scan","visibility":"Public","body":"query(\"GET\", \"/v1/wifi/scan_results\") do |data|\n JSON.parse(data.not_nil!)\nend"}}],"types":[{"html_id":"drivers/Qbic/TouchPanel/AdvertiseMode","path":"Qbic/TouchPanel/AdvertiseMode.html","kind":"enum","full_name":"Qbic::TouchPanel::AdvertiseMode","name":"AdvertiseMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L118"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"LowLatency","name":"LowLatency","value":"0"},{"id":"Balanced","name":"Balanced","value":"1"},{"id":"LowPower","name":"LowPower","value":"2"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"instance_methods":[{"html_id":"balanced?-instance-method","name":"balanced?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L120"},"def":{"name":"balanced?","visibility":"Public","body":"self == Balanced"}},{"html_id":"low_latency?-instance-method","name":"low_latency?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L119"},"def":{"name":"low_latency?","visibility":"Public","body":"self == LowLatency"}},{"html_id":"low_power?-instance-method","name":"low_power?","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L121"},"def":{"name":"low_power?","visibility":"Public","body":"self == LowPower"}}]},{"html_id":"drivers/Qbic/TouchPanel/AuthResponse","path":"Qbic/TouchPanel/AuthResponse.html","kind":"class","full_name":"Qbic::TouchPanel::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L47"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"access_token:String-instance-method","name":"access_token","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token","return_type":"String","visibility":"Public","body":"@access_token"}},{"html_id":"access_token=(access_token:String)-instance-method","name":"access_token=","doc":"Returned on success","summary":"

Returned on success

","abstract":false,"args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"args_string":"(access_token : String)","args_html":"(access_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L51"},"def":{"name":"access_token=","args":[{"name":"access_token","external_name":"access_token","restriction":"String"}],"visibility":"Public","body":"@access_token = access_token"}},{"html_id":"refresh_token:String-instance-method","name":"refresh_token","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token","return_type":"String","visibility":"Public","body":"@refresh_token"}},{"html_id":"refresh_token=(refresh_token:String)-instance-method","name":"refresh_token=","abstract":false,"args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"args_string":"(refresh_token : String)","args_html":"(refresh_token : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L52"},"def":{"name":"refresh_token=","args":[{"name":"refresh_token","external_name":"refresh_token","restriction":"String"}],"visibility":"Public","body":"@refresh_token = refresh_token"}},{"html_id":"token_type:String-instance-method","name":"token_type","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type","return_type":"String","visibility":"Public","body":"@token_type"}},{"html_id":"token_type=(token_type:String)-instance-method","name":"token_type=","abstract":false,"args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"args_string":"(token_type : String)","args_html":"(token_type : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L53"},"def":{"name":"token_type=","args":[{"name":"token_type","external_name":"token_type","restriction":"String"}],"visibility":"Public","body":"@token_type = token_type"}}]},{"html_id":"drivers/Qbic/TouchPanel/FailureResponse","path":"Qbic/TouchPanel/FailureResponse.html","kind":"class","full_name":"Qbic::TouchPanel::FailureResponse","name":"FailureResponse","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qbic/touch_panel.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Qbic/TouchPanel","kind":"class","full_name":"Qbic::TouchPanel","name":"TouchPanel"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/qbic/touch_panel.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"detail:String-instance-method","name":"detail","abstract":false,"location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail","return_type":"String","visibility":"Public","body":"@detail"}},{"html_id":"detail=(detail:String)-instance-method","name":"detail=","abstract":false,"args":[{"name":"detail","external_name":"detail","restriction":"String"}],"args_string":"(detail : String)","args_html":"(detail : String)","location":{"filename":"src/qbic/touch_panel.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qbic/touch_panel.cr#L44"},"def":{"name":"detail=","args":[{"name":"detail","external_name":"detail","restriction":"String"}],"visibility":"Public","body":"@detail = detail"}}]}]}]},{"html_id":"drivers/Qsc","path":"Qsc.html","kind":"module","full_name":"Qsc","name":"Qsc","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Qsc/QSysControl","path":"Qsc/QSysControl.html","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"about-instance-method","name":"about","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L138"},"def":{"name":"about","visibility":"Public","body":"do_send(\"sg\\n\", name: :status, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L54"},"def":{"name":"connected","visibility":"Public","body":"@connected = true\nif @username\n login\nend\nrecreate_change_groups\nschedule.every(40.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n about\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L64"},"def":{"name":"disconnected","visibility":"Public","body":"@connected = false\nschedule.clear\n"}},{"html_id":"fader(fader_ids:Ids,level:Val)-instance-method","name":"fader","doc":"Compatibility Methods","summary":"

Compatibility Methods

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L163"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"level = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nrange = -100..20\nlevel_actual = percentage * (range.size - 1).to_f\nlevel_actual = (level_actual + range.begin.to_f).round(1)\n(ensure_array(fader_ids)).each do |f_id|\n if @history[f_id]? == (:percentage_fader)\n set_value(f_id, level, name: \"fader#{f_id}\")\n else\n set_value(f_id, level_actual, name: \"fader#{f_id}\", fader_type: :fader)\n end\nend\n"}},{"html_id":"faders(fader_ids:Ids,level:Val)-instance-method","name":"faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"args_string":"(fader_ids : Ids, level : Val)","args_html":"(fader_ids : Ids, level : Val)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L181"},"def":{"name":"faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"level","external_name":"level","restriction":"Val"}],"visibility":"Public","body":"fader(fader_ids, level)"}},{"html_id":"get_status(control_id:String,**options)-instance-method","name":"get_status","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String, **options)","args_html":"(control_id : String, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L112"},"def":{"name":"get_status","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\ndo_send(\"cg #{control_id}\\n\", **options)\n"}},{"html_id":"history:Hash(String,Symbol)-instance-method","name":"history","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L31"},"def":{"name":"history","return_type":"Hash(String, Symbol)","visibility":"Public","body":"@history"}},{"html_id":"login(username:String|Nil=nil,password:String|Nil=nil)-instance-method","name":"login","abstract":false,"args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"args_string":"(username : String | Nil = nil, password : String | Nil = nil)","args_html":"(username : String | Nil = nil, password : String | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L142"},"def":{"name":"login","args":[{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"},{"name":"password","default_value":"nil","external_name":"password","restriction":"String | ::Nil"}],"visibility":"Public","body":"username || (username = @username)\npassword || (password = @password)\ndo_send(\"login #{username} #{password}\\n\", name: :login, priority: 99)\n"}},{"html_id":"mute(mute_ids:Ids,state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool = true)","args_html":"(mute_ids : Ids, state : Bool = true)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L185"},"def":{"name":"mute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"level = state ? 1 : 0\n(ensure_array(mute_ids)).each do |m_id|\n set_value(m_id, level, fader_type: :mute)\nend\n"}},{"html_id":"mute_toggle(mute_id:Ids)-instance-method","name":"mute_toggle","abstract":false,"args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"args_string":"(mute_id : Ids)","args_html":"(mute_id : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L198"},"def":{"name":"mute_toggle","args":[{"name":"mute_id","external_name":"mute_id","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_id, !self[\"fader#{mute_id}_mute\"]?.try(&.as_bool))"}},{"html_id":"mutes(mute_ids:Ids,state:Bool)-instance-method","name":"mutes","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(mute_ids : Ids, state : Bool)","args_html":"(mute_ids : Ids, state : Bool)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L190"},"def":{"name":"mutes","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"},{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"mute(mute_ids, state)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L36"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")\nqueue.retries = 1\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_control.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L42"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting?(String, :username)\n@password = setting?(String, :password)\n@static_change_groups = (setting?(Hash(String, Group), :change_groups)) || ({} of String => Group)\nif @connected\n if @username\n login\n end\n recreate_change_groups\nend\n"}},{"html_id":"phone_dial(control_id:String)-instance-method","name":"phone_dial","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L233"},"def":{"name":"phone_dial","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"trigger(control_id)\nschedule.in(200.milliseconds) do\n poll_change_group(:phone)\nend\n"}},{"html_id":"phone_hangup(control_id:String)-instance-method","name":"phone_hangup","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L238"},"def":{"name":"phone_hangup","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"phone_dial(control_id)"}},{"html_id":"phone_number(number:String,control_id:String)-instance-method","name":"phone_number","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(number : String, control_id : String)","args_html":"(number : String, control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L229"},"def":{"name":"phone_number","args":[{"name":"number","external_name":"number","restriction":"String"},{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"set_string(control_id, number)"}},{"html_id":"query_fader(fader_ids:Ids)-instance-method","name":"query_fader","doc":"For inter-module compatibility","summary":"

For inter-module compatibility

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":211,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L211"},"def":{"name":"query_fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: (@history[fad]? || (:fader)))\n"}},{"html_id":"query_faders(fader_ids:Ids)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":216,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L216"},"def":{"name":"query_faders","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |f_id|\n get_status(f_id, fader_type: (@history[f_id]? || (:fader)))\nend"}},{"html_id":"query_mute(fader_ids:Ids)-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L220"},"def":{"name":"query_mute","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"fad = (ensure_array(fader_ids))[0]\nget_status(fad, fader_type: :mute)\n"}},{"html_id":"query_mutes(fader_ids:Ids)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"args_string":"(fader_ids : Ids)","args_html":"(fader_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L225"},"def":{"name":"query_mutes","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"}],"visibility":"Public","body":"(ensure_array(fader_ids)).each do |fad|\n get_status(fad, fader_type: :mute)\nend"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L277"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nputs(\"GOT: #{data}\")\nif data == \"none\\r\\n\"\n return task.try(&.success)\nend\nlogger.debug do\n \"QSys sent: #{data}\"\nend\nresp = shellsplit(data)\ncase resp[0]\nwhen \"cv\"\n control_id = resp[1]\n string_rep = resp[2]\n value = resp[-2]\n position = resp[-1].to_f\n self[\"pos_#{control_id}\"] = position\n if string_rep.ends_with?('%')\n @history[control_id] = :percentage_fader\n end\n if type = @history[control_id]?\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :percentage_fader\n self[\"fader#{control_id}\"] = value.to_f\n when :mute\n self[\"fader#{control_id}_mute\"] = value.to_i == 1\n end\n else\n value = resp[2]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id} == #{value}\"\n end\n end\nwhen \"cvv\"\n control_id = resp[1]\n count = resp[2].to_i\n if type = @history[control_id]?\n next_count = count + 3\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n case type\n when :fader\n range = -100..20\n vol_percent = ((value.to_f - range.begin.to_f) / (range.size - 1).to_f) * 100.0\n self[\"fader#{control_id}\"] = vol_percent.round(2)\n when :mute\n self[\"fader#{control_id}_mute\"] = value == 1\n end\n end\n else\n next_count = 2\n 1.upto(count) do |index|\n value = resp[next_count + index]\n if (value == \"false\") || (value == \"true\")\n self[control_id] = value == \"true\"\n else\n self[control_id] = value.gsub('_', ' ')\n end\n end\n logger.debug do\n \"Received response from unknown ID type: #{control_id}\"\n end\n next_count = count + 3\n count = resp[next_count].to_i\n end\n next_count = (next_count + count) + 1\n count = resp[next_count].to_i\n 1.upto(count) do |index|\n value = resp[next_count + index]\n self[\"pos_#{control_id}\"] = value\n end\nwhen \"sr\"\n self[:design_name] = resp[1]\n self[:is_primary] = resp[3] == \"1\"\n self[:is_active] = resp[4] == \"1\"\nwhen \"core_not_active\", \"bad_change_group_handle\", \"bad_command\", \"bad_id\", \"control_read_only\", \"too_many_change_groups\"\n return task.try(&.abort(\"Error response received: #{data}\"))\nwhen \"login_required\"\n if @username\n login\n end\n return task.try(&.abort(\"Login is required!\"))\nwhen \"login_success\"\n logger.debug do\n \"Login success!\"\n end\nwhen \"login_failed\"\n return task.try(&.abort(\"Invalid login details provided\"))\nwhen \"rc\"\n logger.warn do\n \"System is notifying us of a disconnect!\"\n end\nwhen \"cmvv\"\n logger.debug do\n \"received cmvv response\"\n end\nelse\n logger.warn do\n \"Unknown response received #{data}\"\n end\nend\ntask.try(&.success)\n"}},{"html_id":"save_snapshot(name:String,index:Int32)-instance-method","name":"save_snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(name : String, index : Int32)","args_html":"(name : String, index : Int32)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L206"},"def":{"name":"save_snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(\"sss \\\"#{name}\\\" #{index}\\n\")"}},{"html_id":"set_position(control_id:String,position:Int32,ramp_time:Val|Nil=nil)-instance-method","name":"set_position","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","args_html":"(control_id : String, position : Int32, ramp_time : Val | Nil = nil)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L118"},"def":{"name":"set_position","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"position","external_name":"position","restriction":"Int32"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"visibility":"Public","body":"if ramp_time\n do_send(\"cspr \\\"#{control_id}\\\" #{position} #{ramp_time}\\n\")\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csp \\\"#{control_id}\\\" #{position}\\n\")\nend"}},{"html_id":"set_string(control_ids:Ids,text:String)-instance-method","name":"set_string","doc":"Used to set a dial number/string","summary":"

Used to set a dial number/string

","abstract":false,"args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"args_string":"(control_ids : Ids, text : String)","args_html":"(control_ids : Ids, text : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L149"},"def":{"name":"set_string","args":[{"name":"control_ids","external_name":"control_ids","restriction":"Ids"},{"name":"text","external_name":"text","restriction":"String"}],"visibility":"Public","body":"(ensure_array(control_ids)).each do |id|\n (do_send(\"css \\\"#{id}\\\" \\\"#{text}\\\"\\n\")).get\n self[id] = text\nend"}},{"html_id":"set_value(control_id:String,value:Val,ramp_time:Val|Nil=nil,**options)-instance-method","name":"set_value","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"args_string":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","args_html":"(control_id : String, value : Val, ramp_time : Val | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L127"},"def":{"name":"set_value","args":[{"name":"control_id","external_name":"control_id","restriction":"String"},{"name":"value","external_name":"value","restriction":"Val"},{"name":"ramp_time","default_value":"nil","external_name":"ramp_time","restriction":"Val | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader_type = options[:fader_type]?\nif fader_type\n @history[control_id] = fader_type\nend\nif ramp_time\n do_send(\"csvr \\\"#{control_id}\\\" #{value} #{ramp_time}\\n\", **options)\n schedule.in(ramp_time.seconds + 200.milliseconds) do\n get_status(control_id)\n end\nelse\n do_send(\"csv \\\"#{control_id}\\\" #{value}\\n\", **options)\nend\n"}},{"html_id":"snapshot(name:String,index:Int32,ramp_time:Val=1.5)-instance-method","name":"snapshot","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"args_string":"(name : String, index : Int32, ramp_time : Val = 1.5)","args_html":"(name : String, index : Int32, ramp_time : Val = 1.5)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L202"},"def":{"name":"snapshot","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","external_name":"index","restriction":"Int32"},{"name":"ramp_time","default_value":"1.5","external_name":"ramp_time","restriction":"Val"}],"visibility":"Public","body":"do_send(\"ssl \\\"#{name}\\\" #{index} #{ramp_time}\\n\")"}},{"html_id":"trigger(control_id:String)-instance-method","name":"trigger","doc":"Used to trigger dialing etc","summary":"

Used to trigger dialing etc

","abstract":false,"args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"args_string":"(control_id : String)","args_html":"(control_id : String)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L157"},"def":{"name":"trigger","args":[{"name":"control_id","external_name":"control_id","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"Sending trigger to Qsys: ct #{control_id}\"\nend\ndo_send(\"ct \\\"#{control_id}\\\"\\n\")\n"}},{"html_id":"unmute(mute_ids:Ids)-instance-method","name":"unmute","abstract":false,"args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"args_string":"(mute_ids : Ids)","args_html":"(mute_ids : Ids)","location":{"filename":"src/qsc/q_sys_control.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L194"},"def":{"name":"unmute","args":[{"name":"mute_ids","external_name":"mute_ids","restriction":"Ids"}],"visibility":"Public","body":"mute(mute_ids, false)"}}],"types":[{"html_id":"drivers/Qsc/QSysControl/Group","path":"Qsc/QSysControl/Group.html","kind":"alias","full_name":"Qsc::QSysControl::Group","name":"Group","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(id: Int32, controls: Set(String))","aliased_html":"{id: Int32, controls: Set(String)}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Ids","path":"Qsc/QSysControl/Ids.html","kind":"alias","full_name":"Qsc::QSysControl::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}},{"html_id":"drivers/Qsc/QSysControl/Val","path":"Qsc/QSysControl/Val.html","kind":"alias","full_name":"Qsc::QSysControl::Val","name":"Val","abstract":false,"locations":[{"filename":"src/qsc/q_sys_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_control.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysControl","kind":"class","full_name":"Qsc::QSysControl","name":"QSysControl"}}]},{"html_id":"drivers/Qsc/QSysRemote","path":"Qsc/QSysRemote.html","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BoolVals","name":"BoolVals","value":"[\"true\", \"false\"]"},{"id":"DB_RANGE","name":"DB_RANGE","value":"-100..20"},{"id":"Delimiter","name":"Delimiter","value":"\"\\u0000\""},{"id":"Errors","name":"Errors","value":"{-32700 => \"Parse error. Invalid JSON was received by the server.\", -32600 => \"Invalid request. The JSON sent is not a valid Request object.\", -32601 => \"Method not found.\", -32602 => \"Invalid params.\", -32603 => \"Server error.\", 2 => \"Invalid Page Request ID\", 3 => \"Bad Page Request - could not create the requested Page Request\", 4 => \"Missing file\", 5 => \"Change Groups exhausted\", 6 => \"Unknown change croup\", 7 => \"Unknown component name\", 8 => \"Unknown control\", 9 => \"Illegal mixer channel index\", 10 => \"Logon required\"}"},{"id":"Faders","name":"Faders","value":"{matrix_in: {type: :\"Mixer.SetInputGain\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputGain\", pri: :Outputs}, matrix_crosspoint: {type: :\"Mixer.SetCrossPointGain\", pri: :Inputs, sec: :Outputs}}"},{"id":"JsonRpcVer","name":"JsonRpcVer","value":"\"2.0\""},{"id":"Mutes","name":"Mutes","value":"{matrix_in: {type: :\"Mixer.SetInputMute\", pri: :Inputs}, matrix_out: {type: :\"Mixer.SetOutputMute\", pri: :Outputs}}"}],"namespace":{"html_id":"drivers/Qsc","kind":"module","full_name":"Qsc","name":"Qsc"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_poll_change_group(group_id:String,every:Num,**options)-instance-method","name":"auto_poll_change_group","doc":"Where every is the number of seconds between polls","summary":"

Where every is the number of seconds between polls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"args_string":"(group_id : String, every : Num, **options)","args_html":"(group_id : String, every : Num, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L175"},"def":{"name":"auto_poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"every","external_name":"every","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AutoPoll\", {:Id => group_id, :Rate => every}, **options)"}},{"html_id":"change_group_add_component(group_id:String,component_name:String,controls:Array(String),**options)-instance-method","name":"change_group_add_component","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, component_name : String, controls : Array(String), **options)","args_html":"(group_id : String, component_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L149"},"def":{"name":"change_group_add_component","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"component_name","external_name":"component_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddComponentControl\", {:Id => group_id, :Component => {:Name => component_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}}, **options)"}},{"html_id":"change_group_add_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_add_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L135"},"def":{"name":"change_group_add_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.AddControl\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"change_group_remove_controls(group_id:String,controls:Array(String),**options)-instance-method","name":"change_group_remove_controls","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(group_id : String, controls : Array(String), **options)","args_html":"(group_id : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L142"},"def":{"name":"change_group_remove_controls","args":[{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Remove\", {:Id => group_id, :Controls => controls}, **options)"}},{"html_id":"clear_change_group(group_id:String,**options)-instance-method","name":"clear_change_group","doc":"Removes all controls from change group","summary":"

Removes all controls from change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L170"},"def":{"name":"clear_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Clear\", {:Id => group_id}, **options)"}},{"html_id":"component_get(c_name:String,controls:Array(String),**options)-instance-method","name":"component_get","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"args_string":"(c_name : String, controls : Array(String), **options)","args_html":"(c_name : String, controls : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":108,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L108"},"def":{"name":"component_get","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"controls","external_name":"controls","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Get\", {:Name => c_name, :Controls => controls.map do |ctrl|\n {:Name => ctrl}\nend}, **options)"}},{"html_id":"component_set(c_name:String,values:Values,**options)-instance-method","name":"component_set","abstract":false,"args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"args_string":"(c_name : String, values : Values, **options)","args_html":"(c_name : String, values : Values, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L115"},"def":{"name":"component_set","args":[{"name":"c_name","external_name":"c_name","restriction":"String"},{"name":"values","external_name":"values","restriction":"Values"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"values = ensure_array(values)\ndo_send(next_id, \"Component.Set\", {:Name => c_name, :Controls => values}, **options)\n"}},{"html_id":"component_trigger(component:String,trigger:String,**options)-instance-method","name":"component_trigger","abstract":false,"args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"args_string":"(component : String, trigger : String, **options)","args_html":"(component : String, trigger : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L124"},"def":{"name":"component_trigger","args":[{"name":"component","external_name":"component","restriction":"String"},{"name":"trigger","external_name":"trigger","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.Trigger\", {:Name => component, :Controls => [{:Name => trigger}]}, **options)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L55"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(20.seconds) do\n logger.debug do\n \"Maintaining Connection\"\n end\n no_op\nend\n@id = 0\n"}},{"html_id":"control_get(names:Array(String),**options)-instance-method","name":"control_get","abstract":false,"args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"args_string":"(names : Array(String), **options)","args_html":"(names : Array(String), **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L104"},"def":{"name":"control_get","args":[{"name":"names","external_name":"names","restriction":"Array(String)"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Control.Get\", names, **options)"}},{"html_id":"control_set(name:String,value:Num|Bool,ramp:Num|Nil=nil,**options)-instance-method","name":"control_set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"args_string":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","args_html":"(name : String, value : Num | Bool, ramp : Num | Nil = nil, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L87"},"def":{"name":"control_set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"ramp","default_value":"nil","external_name":"ramp","restriction":"Num | ::Nil"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"if ramp\n params = {:Name => name, :Value => value, :Ramp => ramp}\nelse\n params = {:Name => name, :Value => value}\nend\ndo_send(next_id, \"Control.Set\", params, **options)\n"}},{"html_id":"destroy_change_group(group_id:String,**options)-instance-method","name":"destroy_change_group","doc":"Removes the change group","summary":"

Removes the change group

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L165"},"def":{"name":"destroy_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Destroy\", {:Id => group_id}, **options)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"fader(fader_ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",use_value:Bool=false,**options)-instance-method","name":"fader","doc":"value can either be a number to set actual numeric values like decibels\nor Bool to deal with mute state","summary":"

value can either be a number to set actual numeric values like decibels or Bool to deal with mute state

","abstract":false,"args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"args_string":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", use_value : Bool = false, **options)","args_html":"(fader_ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", use_value : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L264"},"def":{"name":"fader","args":[{"name":"fader_ids","external_name":"fader_ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"},{"name":"use_value","default_value":"false","external_name":"use_value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"faders = ensure_array(fader_ids)\nif component && (val = value.as?(Num))\n val = val.to_f.clamp(0.0, 100.0)\n if @db_based_faders || use_value\n percentage = val / 100.0\n level_actual = percentage * (DB_RANGE.size - 1).to_f\n level_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\n fads = faders.map do |fad|\n {Name: fad, Value: level_actual}\n end\n else\n fads = faders.map do |fad|\n {Name: fad, Position: val}\n end\n end\n (component_set(component, fads, name: \"level_#{faders[0]}\")).get\n component_get(component, faders)\nelse\n reqs = faders.map do |fad|\n control_set(fad, value)\n end\n reqs.last.get\n control_get(faders)\nend\n"}},{"html_id":"faders(ids:Ids,value:Num|Bool,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, value : Num | Bool, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":290,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L290"},"def":{"name":"faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"value","external_name":"value","restriction":"Num | Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(ids, value, component, type, **options)"}},{"html_id":"get_components(**options)-instance-method","name":"get_components","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L131"},"def":{"name":"get_components","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"Component.GetComponents\", **options)"}},{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L72"},"def":{"name":"get_status","visibility":"Public","body":"do_send(next_id, cmd: :StatusGet, params: 0, priority: 0)"}},{"html_id":"logon-instance-method","name":"logon","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L76"},"def":{"name":"logon","visibility":"Public","body":"do_send(cmd: :Logon, params: {:User => @username, :Password => @password}, priority: 99)"}},{"html_id":"matrix_fader(name:String,level:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_fader","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, level : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, level : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":213,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L213"},"def":{"name":"matrix_fader","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"level","external_name":"level","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Faders[type]\nlevel = level.to_f.clamp(0.0, 100.0)\npercentage = level / 100.0\nlevel_actual = percentage * (DB_RANGE.size - 1).to_f\nlevel_actual = (level_actual + DB_RANGE.begin.to_f).round(1)\nif sec = info[:sec]?\n params = {:Name => name, info[:pri] => index[0], sec => index[1], :Value => level_actual}\nelse\n params = {:Name => name, info[:pri] => index, :Value => level_actual}\nend\ndo_send(next_id, info[:type], params, **options)\n"}},{"html_id":"matrix_mute(name:String,value:Num,index:Array(Int32),type:String=\"matrix_out\",**options)-instance-method","name":"matrix_mute","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"args_string":"(name : String, value : Num, index : Array(Int32), type : String = \"matrix_out\", **options)","args_html":"(name : String, value : Num, index : Array(Int32), type : String = "matrix_out", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L252"},"def":{"name":"matrix_mute","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Num"},{"name":"index","external_name":"index","restriction":"Array(Int32)"},{"name":"type","default_value":"\"matrix_out\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"info = Mutes[type]\ndo_send(next_id, info[:type], {:Name => name, info[:pri] => index, :Value => value}, **options)\n"}},{"html_id":"mixer(name:String,inouts:Hash(Int32,Int32|Array(Int32)),mute:Bool=false,**options)-instance-method","name":"mixer","doc":"Example usage:\nmixer 'Parade', {1 => [2,3,4], 3 => 6}, true","summary":"

Example usage: mixer 'Parade', {1 => [2,3,4], 3 => 6}, true

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"args_string":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","args_html":"(name : String, inouts : Hash(Int32, Int32 | Array(Int32)), mute : Bool = false, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":184,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L184"},"def":{"name":"mixer","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"inouts","external_name":"inouts","restriction":"Hash(Int32, Int32 | Array(Int32))"},{"name":"mute","default_value":"false","external_name":"mute","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"inouts.each do |input, outputs|\n outputs = ensure_array(outputs)\n do_send(next_id, \"Mixer.SetCrossPointMute\", {:Name => name, :Inputs => input.to_s, :Outputs => outputs.join(' '), :Value => mute}, **options)\nend"}},{"html_id":"mute(fader_id:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":294,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L294"},"def":{"name":"mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"fader(fader_id, state, component, type, state, **options)"}},{"html_id":"mutes(ids:Ids,state:Bool=true,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, state : Bool = true, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":298,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L298"},"def":{"name":"mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(ids, state, component, type, **options)"}},{"html_id":"next_id-instance-method","name":"next_id","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":398,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L398"},"def":{"name":"next_id","visibility":"Public","body":"@id = @id + 1\n@id\n"}},{"html_id":"no_op-instance-method","name":"no_op","doc":"This command does nothing but is useful for making sure the socket is left open","summary":"

This command does nothing but is useful for making sure the socket is left open

","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L68"},"def":{"name":"no_op","visibility":"Public","body":"do_send(cmd: :NoOp, priority: 0, wait: false)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Delimiter)\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/qsc/q_sys_remote.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"@db_based_faders = setting?(Bool, :db_based_faders)\n@username = setting?(String, :username)\n@password = setting?(String, :password)\nif @username && @password\n logon\nend\n"}},{"html_id":"poll_change_group(group_id:String,**options)-instance-method","name":"poll_change_group","doc":"Returns values for all the controls","summary":"

Returns values for all the controls

","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String, **options)","args_html":"(group_id : String, **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L160"},"def":{"name":"poll_change_group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(next_id, \"ChangeGroup.Poll\", {:Id => group_id}, **options)"}},{"html_id":"query_fader(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_fader","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":306,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L306"},"def":{"name":"query_fader","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"faders = ensure_array(fader_id)\ncomponent ? component_get(component, faders) : control_get(faders)\n"}},{"html_id":"query_faders(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_faders","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":311,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L311"},"def":{"name":"query_faders","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"query_mute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\")-instance-method","name":"query_mute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\")","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader")","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L315"},"def":{"name":"query_mute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"visibility":"Public","body":"query_fader(fader_id, component, type)"}},{"html_id":"query_mutes(ids:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"query_mutes","abstract":false,"args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(ids : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(ids : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L319"},"def":{"name":"query_mutes","args":[{"name":"ids","external_name":"ids","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"query_fader(ids, component, type, **options)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L323"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-2])\nresponse = JSON.parse(data)\nlogger.debug do\n \"QSys sent:\"\nend\nlogger.debug do\n response\nend\nif err = response[\"error\"]?\n code = err[\"code\"]\n logger.warn do\n \"Error code #{code} - #{Errors[code]}\"\n end\n if code == 10\n if @username && @password\n logon.get\n return task.try(&.retry(\"Logged on and retrying command\"))\n else\n return task.try(&.abort(\"Login required but no username and/or password in settings\"))\n end\n end\n return task.try(&.abort(err[\"message\"]))\nend\nif result = response[\"result\"]?\nelse\n return task.try(&.success(\"Unknown response\"))\nend\ncase result\nwhen .as_h?\n if result[\"Controls\"]?\n process(result[\"Controls\"].as_a, result[\"Name\"]?)\n else\n if result[\"Platform\"]?\n result.as_h.each do |k, v|\n self[k.underscore] = v\n end\n end\n end\nwhen .as_a?\n process(result.as_a)\nend\ntask.try(&.success)\n"}},{"html_id":"unmute(fader_id:Ids,component:String|Nil=nil,type:String=\"fader\",**options)-instance-method","name":"unmute","abstract":false,"args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"args_string":"(fader_id : Ids, component : String | Nil = nil, type : String = \"fader\", **options)","args_html":"(fader_id : Ids, component : String | Nil = nil, type : String = "fader", **options)","location":{"filename":"src/qsc/q_sys_remote.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L302"},"def":{"name":"unmute","args":[{"name":"fader_id","external_name":"fader_id","restriction":"Ids"},{"name":"component","default_value":"nil","external_name":"component","restriction":"String | ::Nil"},{"name":"type","default_value":"\"fader\"","external_name":"type","restriction":"String"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"mute(fader_id, false, component, type, **options)"}}],"types":[{"html_id":"drivers/Qsc/QSysRemote/Ids","path":"Qsc/QSysRemote/Ids.html","kind":"alias","full_name":"Qsc::QSysRemote::Ids","name":"Ids","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(String) | String)","aliased_html":"Array(String) | String","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Num","path":"Qsc/QSysRemote/Num.html","kind":"alias","full_name":"Qsc::QSysRemote::Num","name":"Num","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/PosTup","path":"Qsc/QSysRemote/PosTup.html","kind":"alias","full_name":"Qsc::QSysRemote::PosTup","name":"PosTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L39"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Position: Float64 | Int32)","aliased_html":"{Name: String, Position: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/ValTup","path":"Qsc/QSysRemote/ValTup.html","kind":"alias","full_name":"Qsc::QSysRemote::ValTup","name":"ValTup","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L38"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"NamedTuple(Name: String, Value: Float64 | Int32)","aliased_html":"{Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}},{"html_id":"drivers/Qsc/QSysRemote/Values","path":"Qsc/QSysRemote/Values.html","kind":"alias","full_name":"Qsc::QSysRemote::Values","name":"Values","abstract":false,"locations":[{"filename":"src/qsc/q_sys_remote.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/qsc/q_sys_remote.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Array(NamedTuple(Name: String, Position: Float64 | Int32)) | Array(NamedTuple(Name: String, Value: Float64 | Int32)) | NamedTuple(Name: String, Position: Float64 | Int32) | NamedTuple(Name: String, Value: Float64 | Int32))","aliased_html":"Array({Name: String, Position: Float64 | Int32}) | Array({Name: String, Value: Float64 | Int32}) | {Name: String, Position: Float64 | Int32} | {Name: String, Value: Float64 | Int32}","const":false,"namespace":{"html_id":"drivers/Qsc/QSysRemote","kind":"class","full_name":"Qsc::QSysRemote","name":"QSysRemote"}}]}]},{"html_id":"drivers/RHBAccess","path":"RHBAccess.html","kind":"module","full_name":"RHBAccess","name":"RHBAccess","abstract":false,"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/RHBAccess/AxiomRoomLogic","path":"RHBAccess/AxiomRoomLogic.html","kind":"class","full_name":"RHBAccess::AxiomRoomLogic","name":"AxiomRoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock-instance-method","name":"lock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L25"},"def":{"name":"lock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.lock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while LOCKING #{@door_ids}\"\n end\nelse\n self[\"locked_by_placeos_at\"] = Time.local\n status?\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@door_ids = setting(Array(String), :axiom_door_ids)\n@cron_string = setting(String, :axiom_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n status?\nend\n"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L43"},"def":{"name":"status?","visibility":"Public","body":"begin\n result = @door_ids.map do |id|\n {id, (axiom.status?(id)).get}\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR requesting STATUS of #{@door_ids}\"\n end\nelse\n doors_locked = 0\n result.each do |id, status|\n self[id] = status[\"Status\"]\n if status[\"Status\"].to_s.starts_with?(\"Locked\")\n doors_locked = doors_locked + 1\n end\n end\n self[\"doors_locked\"] = doors_locked\nend"}},{"html_id":"unlock-instance-method","name":"unlock","abstract":false,"location":{"filename":"src/rhb_access/axiom_room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiom_room_logic.cr#L34"},"def":{"name":"unlock","visibility":"Public","body":"begin\n @door_ids.map do |d|\n (axiom.unlock(d)).get\n end\nrescue\n logger.error do\n \"AxiomXa: ERROR while UNLOCKING #{@door_ids}\"\n end\nelse\n self[\"unlocked_by_placeos_at\"] = Time.local\n status?\nend"}}]},{"html_id":"drivers/RHBAccess/Axiomxa","path":"RHBAccess/Axiomxa.html","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/RHBAccess","kind":"module","full_name":"RHBAccess","name":"RHBAccess"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"lock(id:String,permanent:Bool=false)-instance-method","name":"lock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L23"},"def":{"name":"lock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg0|\n __arg0.access_points.lock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"locked\", \"permanent\" => permanent.to_s}\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhb_access/axiomxa.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\n@client = Client.new(base_url: host_name.to_s, username: setting(String, :username), password: setting(String, :password))\n"}},{"html_id":"status?(id:String)-instance-method","name":"status?","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L33"},"def":{"name":"status?","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"response = @client.try() do |__arg2|\n __arg2.access_points.status(id: id)\nend\nself[\"access_point_#{id}_status\"] = JSON.parse(response.not_nil!.body)\n"}},{"html_id":"unlock(id:String,permanent:Bool=false)-instance-method","name":"unlock","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"args_string":"(id : String, permanent : Bool = false)","args_html":"(id : String, permanent : Bool = false)","location":{"filename":"src/rhb_access/axiomxa.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L28"},"def":{"name":"unlock","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"permanent","default_value":"false","external_name":"permanent","restriction":"Bool"}],"visibility":"Public","body":"@client.try() do |__arg1|\n __arg1.access_points.unlock(id: id, permanent: permanent.to_s)\nend\nself[\"access_point_#{id}\"] = {\"Status\" => \"unlocked\", \"permanent\" => permanent.to_s}\n"}}],"types":[{"html_id":"drivers/RHBAccess/Axiomxa/Client","path":"RHBAccess/Axiomxa/Client.html","kind":"alias","full_name":"RHBAccess::Axiomxa::Client","name":"Client","abstract":false,"locations":[{"filename":"src/rhb_access/axiomxa.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhb_access/axiomxa.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Axio::Client","aliased_html":"Axio::Client","const":false,"namespace":{"html_id":"drivers/RHBAccess/Axiomxa","kind":"class","full_name":"RHBAccess::Axiomxa","name":"Axiomxa"}}]}]},{"html_id":"drivers/Rhombus","path":"Rhombus.html","kind":"module","full_name":"Rhombus","name":"Rhombus","abstract":false,"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Rhombus/SecurityInterop","path":"Rhombus/SecurityInterop.html","kind":"class","full_name":"Rhombus::SecurityInterop","name":"SecurityInterop","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"door_event(json:String)-instance-method","name":"door_event","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String)","args_html":"(json : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L76"},"def":{"name":"door_event","args":[{"name":"json","external_name":"json","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"new door event detected: #{json}\"\nend\nwebhook = Webhook.new(Interface::DoorSecurity::DoorEvent.from_json(json))\n@event_count = @event_count + 1_u64\n@subscriptions.each do |sub|\n begin\n logger.debug do\n \"notifying webhook of new door event: #{sub.webhook}\"\n end\n webhook.sign(sub.secret)\n response = HTTP::Client.post(sub.webhook, HTTP::Headers {\"Content-Type\" => \"application/json\"}, webhook.to_json)\n if response.success?\n else\n logger.warn do\n \"request #{sub.webhook} failed with status: #{response.status_code}\\n#{response.body}\"\n end\n end\n rescue error\n logger.error(exception: error) do\n \"failed to notify subscription: #{sub.webhook}\"\n end\n end\nend\nself[:event_count] = @event_count\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_interop.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L19"},"def":{"name":"on_update","visibility":"Public","body":"subscriptions.clear\norg_id = (setting?(String, :organization_id)) || \"event\"\nmonitor(\"security/#{org_id}/door\") do |_subscription, payload|\n door_event(payload)\nend\n@subscriptions = (setting?(Array(Subscription), :subscriptions)) || ([] of Subscription)\n@debug_webhook = (setting?(Bool, :debug_webhook)) || false\n"}},{"html_id":"request(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"request","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/rhombus/security_interop.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop.cr#L31"},"def":{"name":"request","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"begin\n logger.debug do\n \"webhook received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\n end\n if @debug_webhook\n logger.debug do\n body\n end\n end\n case method.downcase\n when \"post\"\n @subscriptions << (Subscription.from_json(body))\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::CREATED.to_i, {} of String => String, \"\"}\n when \"delete\"\n sub_webhook = (Subscription.from_json(body)).webhook\n @subscriptions.reject! do |sub|\n sub.webhook == sub_webhook\n end\n define_setting(:subscriptions, @subscriptions)\n {HTTP::Status::ACCEPTED.to_i, {} of String => String, \"\"}\n when \"get\"\n all_doors = [] of JSON::Any\n security.door_list.get.each do |doors|\n all_doors.concat(doors.as_a)\n end\n {HTTP::Status::OK.to_i, {\"Content-Type\" => \"application/json\"}, {doors: all_doors}.to_json}\n when \"put\"\n door = (Interface::DoorSecurity::Door.from_json(body)).door_id\n case (security.unlock(door)).get.first.as_bool?\n in true\n {HTTP::Status::OK.to_i, {} of String => String, \"\"}\n in false\n {HTTP::Status::FORBIDDEN.to_i, {} of String => String, \"\"}\n in nil\n {HTTP::Status::NOT_IMPLEMENTED.to_i, {} of String => String, \"\"}\n end\n else\n {HTTP::Status::BAD_REQUEST.to_i, {\"Content-Type\" => \"application/json\"}, {error: \"unexpected HTTP request method: #{method}\"}.to_json}\n end\nrescue error\n logger.warn(exception: error) do\n \"processing webhook request\"\n end\n {HTTP::Status::INTERNAL_SERVER_ERROR.to_i, {\"Content-Type\" => \"application/json\"}, error.message.to_s}\nend"}}]},{"html_id":"drivers/Rhombus/SecurityMock","path":"Rhombus/SecurityMock.html","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/DoorSecurity","kind":"module","full_name":"PlaceOS::Driver::Interface::DoorSecurity","name":"DoorSecurity"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"card_holders:Array(CardUser)-instance-method","name":"card_holders","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L23"},"def":{"name":"card_holders","return_type":"Array(CardUser)","visibility":"Public","body":"@card_holders"}},{"html_id":"door_list:Array(Door)-instance-method","name":"door_list","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L22"},"def":{"name":"door_list","return_type":"Array(Door)","visibility":"Public","body":"@door_list"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"door_list_size = (setting?(Int32, :door_list_size)) || 30\nFaker.seed(door_list_size)\ndoor_id = 1000\ndoors = Array(Door).new(door_list_size)\ndoor_list_size.times do\n doors << (Door.new(door_id.to_s, Faker::Commerce.department))\n door_id = door_id + 1\nend\n@door_list = doors\n@card_holders = (0..10).map do\n CardUser.new(Faker::Business.credit_card_number, Faker::Name.name, Faker::Internet.safe_email)\nend\nswipe_event_period = (setting?(Int32, :swipe_event_every)) || 30\nschedule.clear\nschedule.every(swipe_event_period.seconds) do\n door = doors.sample\n action = Action::Granted\n case rand(6)\n when 0, 1, 2\n user = card_holders.sample\n when 3\n action = Action::Denied\n user = card_holders.sample\n when 4\n action = Action::Tamper\n when 5\n action = Action::RequestToExit\n end\n publish(\"security/event/door\", DoorEvent.new(module_id: module_id, security_system: \"mock\", door_id: door.door_id, action: action, card_id: user.try(&.card_id), user_name: user.try(&.user_name), user_email: user.try(&.user_email)).to_json)\nend\n"}},{"html_id":"unlock(door_id:String):Bool|Nil-instance-method","name":"unlock","doc":"true for success, false for failed, nil for not supported","summary":"

true for success, false for failed, nil for not supported

","abstract":false,"args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"args_string":"(door_id : String) : Bool | Nil","args_html":"(door_id : String) : Bool | Nil","location":{"filename":"src/rhombus/security_mock.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L81"},"def":{"name":"unlock","args":[{"name":"door_id","external_name":"door_id","restriction":"String"}],"return_type":"Bool | ::Nil","visibility":"Public","body":"self[:last_unlocked] = door_id\ntrue\n"}}],"types":[{"html_id":"drivers/Rhombus/SecurityMock/CardUser","path":"Rhombus/SecurityMock/CardUser.html","kind":"struct","full_name":"Rhombus::SecurityMock::CardUser","name":"CardUser","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus/SecurityMock","kind":"class","full_name":"Rhombus::SecurityMock","name":"SecurityMock"},"constructors":[{"html_id":"new(card_id:String,user_name:String,user_email:String)-class-method","name":"new","abstract":false,"args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"args_string":"(card_id : String, user_name : String, user_email : String)","args_html":"(card_id : String, user_name : String, user_email : String)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"new","args":[{"name":"card_id","external_name":"card_id","restriction":"String"},{"name":"user_name","external_name":"user_name","restriction":"String"},{"name":"user_email","external_name":"user_email","restriction":"String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(card_id, user_name, user_email)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_mock.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"card_id:String-instance-method","name":"card_id","abstract":false,"def":{"name":"card_id","return_type":"String","visibility":"Public","body":"@card_id"}},{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@card_id.clone, @user_name.clone, @user_email.clone)"}},{"html_id":"copy_with(card_id_card_id=@card_id,user_name_user_name=@user_name,user_email_user_email=@user_email)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"args_string":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","args_html":"(card_id _card_id = @card_id, user_name _user_name = @user_name, user_email _user_email = @user_email)","location":{"filename":"src/rhombus/security_mock.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_mock.cr#L18"},"def":{"name":"copy_with","args":[{"name":"_card_id","default_value":"@card_id","external_name":"card_id","restriction":""},{"name":"_user_name","default_value":"@user_name","external_name":"user_name","restriction":""},{"name":"_user_email","default_value":"@user_email","external_name":"user_email","restriction":""}],"visibility":"Public","body":"self.class.new(_card_id, _user_name, _user_email)"}},{"html_id":"user_email:String-instance-method","name":"user_email","abstract":false,"def":{"name":"user_email","return_type":"String","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String-instance-method","name":"user_name","abstract":false,"def":{"name":"user_name","return_type":"String","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Rhombus/Subscription","path":"Rhombus/Subscription.html","kind":"class","full_name":"Rhombus::Subscription","name":"Subscription","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(webhook:String,secret:Nil|String=nil)-class-method","name":"new","abstract":false,"args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"args_string":"(webhook : String, secret : Nil | String = nil)","args_html":"(webhook : String, secret : Nil | String = nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L12"},"def":{"name":"new","args":[{"name":"webhook","external_name":"webhook","restriction":"::String"},{"name":"secret","default_value":"nil","external_name":"secret","restriction":"::Nil | ::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(webhook, secret)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"secret:String|Nil-instance-method","name":"secret","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L10"},"def":{"name":"secret","return_type":"String | ::Nil","visibility":"Public","body":"@secret"}},{"html_id":"webhook:String-instance-method","name":"webhook","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L9"},"def":{"name":"webhook","return_type":"String","visibility":"Public","body":"@webhook"}}]},{"html_id":"drivers/Rhombus/Webhook","path":"Rhombus/Webhook.html","kind":"class","full_name":"Rhombus::Webhook","name":"Webhook","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/rhombus/security_interop_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L16"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Rhombus","kind":"module","full_name":"Rhombus","name":"Rhombus"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L17"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}},{"html_id":"new(event:PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)-class-method","name":"new","abstract":false,"args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"args_string":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","args_html":"(event : PlaceOS::Driver::Interface::DoorSecurity::DoorEvent)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L27"},"def":{"name":"new","args":[{"name":"event","external_name":"event","restriction":"PlaceOS::Driver::Interface::DoorSecurity::DoorEvent"}],"visibility":"Public","body":"_ = allocate\n_.initialize(event)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"action:PlaceOS::Driver::Interface::DoorSecurity::Action-instance-method","name":"action","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L22"},"def":{"name":"action","return_type":"PlaceOS::Driver::Interface::DoorSecurity::Action","visibility":"Public","body":"@action"}},{"html_id":"card_id:String|Nil-instance-method","name":"card_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L23"},"def":{"name":"card_id","return_type":"String | ::Nil","visibility":"Public","body":"@card_id"}},{"html_id":"door_id:String-instance-method","name":"door_id","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L19"},"def":{"name":"door_id","return_type":"String","visibility":"Public","body":"@door_id"}},{"html_id":"sign(secret:String|Nil)-instance-method","name":"sign","abstract":false,"args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"args_string":"(secret : String | Nil)","args_html":"(secret : String | Nil)","location":{"filename":"src/rhombus/security_interop_models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L37"},"def":{"name":"sign","args":[{"name":"secret","external_name":"secret","restriction":"String | ::Nil"}],"visibility":"Public","body":"if key = secret.presence\n @signature = OpenSSL::HMAC.hexdigest(:sha256, key, timestamp.to_rfc3339)\nelse\n @signature = nil\nend\nself\n"}},{"html_id":"signature:String|Nil-instance-method","name":"signature","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L21"},"def":{"name":"signature","return_type":"String | ::Nil","visibility":"Public","body":"@signature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L20"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"user_email:String|Nil-instance-method","name":"user_email","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L25"},"def":{"name":"user_email","return_type":"String | ::Nil","visibility":"Public","body":"@user_email"}},{"html_id":"user_name:String|Nil-instance-method","name":"user_name","abstract":false,"location":{"filename":"src/rhombus/security_interop_models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/rhombus/security_interop_models.cr#L24"},"def":{"name":"user_name","return_type":"String | ::Nil","visibility":"Public","body":"@user_name"}}]}]},{"html_id":"drivers/Samsung","path":"Samsung.html","kind":"module","full_name":"Samsung","name":"Samsung","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Samsung/Displays","path":"Samsung/Displays.html","kind":"module","full_name":"Samsung::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Samsung","kind":"module","full_name":"Samsung","name":"Samsung"},"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol","path":"Samsung/Displays/MDCProtocol.html","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DEVICE_SETTINGS","name":"DEVICE_SETTINGS","value":"{network_standby: Bool, auto_off_timer: Bool, auto_power: Bool, volume: Num, contrast: Num, brightness: Num, sharpness: Num, colour: Num, tint: Num, red_gain: Num, green_gain: Num, blue_gain: Num}"},{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_off_timer(value:Bool,**options)-instance-method","name":"auto_off_timer","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_off_timer","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_off_timer\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_off_timer\"), data, **options)\n"}},{"html_id":"auto_power(value:Bool,**options)-instance-method","name":"auto_power","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"auto_power","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"auto_power\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"auto_power\"), data, **options)\n"}},{"html_id":"blue_gain(value:Num,**options)-instance-method","name":"blue_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"blue_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"blue_gain\"), data, **options)\n"}},{"html_id":"brightness(value:Num,**options)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"brightness\"), data, **options)\n"}},{"html_id":"colour(value:Num,**options)-instance-method","name":"colour","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"colour","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"colour\"), data, **options)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L88"},"def":{"name":"connected","visibility":"Public","body":"if self[:hard_off]?.try(&.as_bool)\nelse\n do_device_config\nend\nschedule.every(30.seconds, true) do\n do_poll\nend\n"}},{"html_id":"contrast(value:Num,**options)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"contrast\"), data, **options)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L96"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L215"},"def":{"name":"do_device_config","visibility":"Public","body":"{% for name, kind in DEVICE_SETTINGS %}\n %value = setting?({{ kind }}, {{ name.id.stringify }})\n {{ name.id }}(%value) if %value\n {% end %}"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":181,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L181"},"def":{"name":"do_poll","visibility":"Public","body":"do_send(Command::Status, Bytes.empty, priority: 0)\nif self[:hard_off]?.try(&.as_bool)\nelse\n power?\nend\n"}},{"html_id":"green_gain(value:Num,**options)-instance-method","name":"green_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"green_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"green_gain\"), data, **options)\n"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L119"},"def":{"name":"hard_off","visibility":"Public","body":"if self[:power]?.try(&.as_bool)\n do_send(Command::PanelMute, 0)\nend\ndo_send(Command::HardOff, 0)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L130"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.video? || layer.audio_video?\n mute_video(state)\nend\nif layer.audio? || layer.audio_video?\n mute_audio(state)\nend\n"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L146"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"mute_video(state:Bool=true)-instance-method","name":"mute_video","doc":"Adds video mute state compatible with projectors","summary":"

Adds video mute state compatible with projectors

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L140"},"def":{"name":"mute_video","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"state = state ? 1 : 0\ndo_send(Command::PanelMute, state)\n"}},{"html_id":"network_standby(value:Bool,**options)-instance-method","name":"network_standby","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool, **options)","args_html":"(value : Bool, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"network_standby","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"state = value ? 1 : 0\ndata = \"network_standby\" == \"auto_off_timer\" ? Bytes[129, state] : state\ndo_send(Command.parse(\"network_standby\"), data, **options)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L62"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L82"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\n@blank = (setting?(String, :blanking_input)).try(&->Input.parse(String))\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L102"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\nif state\n do_send(Command::HardOff, 1)\n do_send(Command::PanelMute, 0)\nelse\n if (blanking_input = @blank) && self[:power]?\n switch_to(blanking_input)\n end\n do_send(Command::PanelMute, 1)\nend\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L124"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::PanelMute, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L237"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .status?\n self[:hard_off] = hard_off = values[0] == 0\n if hard_off\n self[:power] = false\n end\n self[:volume] = values[1]\n self[:audio_mute] = values[2] == 1\n self[:input] = Input.from_value(values[3])\n check_power_state\n when .panel_mute?\n self[:power] = value == 0\n check_power_state\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .brightness?\n self[:brightness] = value\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n if self[:screen_split]?.try(&.as_bool)\n else\n if current_input == @input_target\n @input_target = nil\n else\n if input_target = @input_target\n switch_to(input_target)\n end\n end\n end\n when .speaker?\n self[:speaker] = SpeakerMode.from_value(value)\n when .hard_off?\n if self[:hard_off]?.try(&.as_bool)\n else\n self[:hard_off] = hard_off = value == 0\n if hard_off\n self[:power] = false\n end\n end\n when .screen_split?\n self[:screen_split] = value >= 0\n when .software_version?\n self[:software_version] = values.join\n when .serial_number?\n self[:serial_number] = values.join\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"red_gain(value:Num,**options)-instance-method","name":"red_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"red_gain","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"red_gain\"), data, **options)\n"}},{"html_id":"serial_number-instance-method","name":"serial_number","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":163,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L163"},"def":{"name":"serial_number","visibility":"Public","body":"do_send(Command::SerialNumber)"}},{"html_id":"sharpness(value:Num,**options)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"sharpness\"), data, **options)\n"}},{"html_id":"software_version-instance-method","name":"software_version","doc":"check software version","summary":"

check software version

","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L159"},"def":{"name":"software_version","visibility":"Public","body":"do_send(Command::SoftwareVersion)"}},{"html_id":"speaker_select(mode:SpeakerMode,**options)-instance-method","name":"speaker_select","abstract":false,"args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"args_string":"(mode : SpeakerMode, **options)","args_html":"(mode : SpeakerMode, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L177"},"def":{"name":"speaker_select","args":[{"name":"mode","external_name":"mode","restriction":"SpeakerMode"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(Command::Speaker, mode.value, **options)"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L167"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"tint(value:Num,**options)-instance-method","name":"tint","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"tint","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"tint\"), data, **options)\n"}},{"html_id":"volume(value:Num,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Num"}],"args_string":"(value : Num, **options)","args_html":"(value : Num, **options)","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":202,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L202"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Num"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command.parse(\"volume\"), data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L227"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":222,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L222"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/MDCProtocol/Command","path":"Samsung/Displays/MDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":315,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L315"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":332,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L332"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L339"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":340,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L340"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":327,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L327"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":321,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L321"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L347"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":323,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L323"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L320"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":326,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L326"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L317"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":328,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L328"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":329,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L329"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":338,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L338"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":318,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L318"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":331,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L331"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L325"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":334,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L334"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":341,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L341"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":343,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L343"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":322,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L322"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L330"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":342,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L342"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":337,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L337"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":316,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L316"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":344,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L344"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":345,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L345"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":324,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L324"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":319,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L319"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":333,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L333"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":335,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L335"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L336"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Input","path":"Samsung/Displays/MDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/Num","path":"Samsung/Displays/MDCProtocol/Num.html","kind":"alias","full_name":"Samsung::Displays::MDCProtocol::Num","name":"Num","abstract":false,"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L186"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"(Float64 | Int32)","aliased_html":"Float64 | Int32","const":false,"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"}},{"html_id":"drivers/Samsung/Displays/MDCProtocol/ResponseStatus","path":"Samsung/Displays/MDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L232"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L233"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L234"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]},{"html_id":"drivers/Samsung/Displays/MDCProtocol/SpeakerMode","path":"Samsung/Displays/MDCProtocol/SpeakerMode.html","kind":"enum","full_name":"Samsung::Displays::MDCProtocol::SpeakerMode","name":"SpeakerMode","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L172"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Internal","name":"Internal","value":"0"},{"id":"External","name":"External","value":"1"}],"namespace":{"html_id":"drivers/Samsung/Displays/MDCProtocol","kind":"class","full_name":"Samsung::Displays::MDCProtocol","name":"MDCProtocol"},"instance_methods":[{"html_id":"external?-instance-method","name":"external?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L174"},"def":{"name":"external?","visibility":"Public","body":"self == External"}},{"html_id":"internal?-instance-method","name":"internal?","abstract":false,"location":{"filename":"src/samsung/displays/mdc_protocol.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/mdc_protocol.cr#L173"},"def":{"name":"internal?","visibility":"Public","body":"self == Internal"}}]}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","path":"Samsung/Displays/ReducedMDCProtocol.html","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INDICATOR","name":"INDICATOR","value":"170_u8"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Samsung/Displays","kind":"module","full_name":"Samsung::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"clear_whiteboard-instance-method","name":"clear_whiteboard","doc":"if the user has been using the display as a whiteboard\nthen the display needs to switch input","summary":"

if the user has been using the display as a whiteboard then the display needs to switch input

","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L148"},"def":{"name":"clear_whiteboard","visibility":"Public","body":"target_input = @input_target\nclear_input = @whiteboard_clear_input\nif target_input && clear_input\n (switch_to(clear_input)).get\n switch_to(target_input)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L93"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L99"},"def":{"name":"disconnected","visibility":"Public","body":"if @rs232\nelse\n self[:power] = false\nend\nschedule.clear\n"}},{"html_id":"do_device_config-instance-method","name":"do_device_config","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L165"},"def":{"name":"do_device_config","visibility":"Public","body":"value = setting?(Int32 | Float64, :volume)\nif value\n volume(value)\nend\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L157"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n do_send(Command::Volume, Bytes.empty, priority: 0)\nend"}},{"html_id":"hard_off-instance-method","name":"hard_off","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L110"},"def":{"name":"hard_off","visibility":"Public","body":"do_send(Command::HardOff, 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"Mutes both audio/video","summary":"

Mutes both audio/video

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L120"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer.audio? || layer.audio_video?\n mute_audio(state)\nend"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","doc":"Emulate audio mute","summary":"

Emulate audio mute

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L129"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if self[:audio_mute]?.try(&.as_bool) == state\n return\nend\nself[:audio_mute] = state\nif state\n @previous_volume = self[:volume]?.try(&.as_i) || 0\n volume(0)\nelse\n volume(@previous_volume)\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L63"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n if bytes.first == INDICATOR\n bytes.size < 4 ? 0 : bytes[3].to_i + 5\n else\n logger.debug do\n \"Ignoring unexpected message\"\n end\n io.clear\n 0\n end\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L83"},"def":{"name":"on_update","visibility":"Public","body":"@id = setting(UInt8, :display_id)\n@rs232 = setting(Bool, :rs232_control)\nif clear_input = setting?(String, :whiteboard_clear_input)\n @whiteboard_clear_input = Input.parse(clear_input)\nelse\n @whiteboard_clear_input = nil\nend\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","doc":"As true power off disconnects the server we only want to power off the panel","summary":"

As true power off disconnects the server we only want to power off the panel

","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L105"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"@power_target = state\ndo_send(Command::HardOff, state ? 1 : 0)\n"}},{"html_id":"power?(**options):Bool-instance-method","name":"power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L114"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"return_type":"Bool","visibility":"Public","body":"(do_send(Command::HardOff, Bytes.empty, **options)).get\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L190"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"hex = data.hexstring\nlogger.debug do\n \"Samsung sent: #{hex}\"\nend\nif data[-1] != (checksum = (data[1..-2].sum(0)) & 255)\n logger.error do\n \"Invalid response, checksum should be: #{checksum.to_s(16)}\"\n end\n return task.try(&.retry)\nend\nstatus = ResponseStatus.from_value(data[4])\ncommand = Command.from_value(data[5])\nvalues = data[6..-2]\nvalue = values.first\ncase status\nwhen .ack?\n case command\n when .volume?\n self[:volume] = value\n if value > 0\n self[:audio_mute] = false\n end\n when .input?\n current_input = Input.from_value(value)\n self[:input] = current_input\n when .hard_off?\n self[:power] = value != 0\n check_power_state\n else\n logger.debug do\n \"Samsung responded with ACK: #{value}\"\n end\n end\n task.try(&.success)\nwhen .nak?\n task.try(&.abort(\"Samsung responded with NAK: #{hex}\"))\nelse\n task.try(&.retry)\nend\n"}},{"html_id":"switch_to(input:Input,**options)-instance-method","name":"switch_to","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input, **options)","args_html":"(input : Input, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L141"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"@input_target = input\ndo_send(Command::Input, input.value, **options)\n"}},{"html_id":"volume(value:Int32|Float64,**options)-instance-method","name":"volume","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(value : Int32 | Float64, **options)","args_html":"(value : Int32 | Float64, **options)","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L170"},"def":{"name":"volume","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = (value.to_f.clamp(0.0, 100.0)).round_away.to_i\ndo_send(Command::Volume, data, **options)\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L180"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L175"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Command","path":"Samsung/Displays/ReducedMDCProtocol/Command.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L240"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Status","name":"Status","value":"0_u8"},{"id":"HardOff","name":"HardOff","value":"17_u8"},{"id":"PanelMute","name":"PanelMute","value":"249_u8"},{"id":"Volume","name":"Volume","value":"18_u8"},{"id":"Contrast","name":"Contrast","value":"36_u8"},{"id":"Brightness","name":"Brightness","value":"37_u8"},{"id":"Sharpness","name":"Sharpness","value":"38_u8"},{"id":"Colour","name":"Colour","value":"39_u8"},{"id":"Tint","name":"Tint","value":"40_u8"},{"id":"RedGain","name":"RedGain","value":"41_u8"},{"id":"GreenGain","name":"GreenGain","value":"42_u8"},{"id":"BlueGain","name":"BlueGain","value":"43_u8"},{"id":"Input","name":"Input","value":"20_u8"},{"id":"Mode","name":"Mode","value":"24_u8"},{"id":"Size","name":"Size","value":"25_u8"},{"id":"Pip","name":"Pip","value":"60_u8"},{"id":"AutoAdjust","name":"AutoAdjust","value":"61_u8"},{"id":"WallMode","name":"WallMode","value":"92_u8"},{"id":"Safety","name":"Safety","value":"93_u8"},{"id":"WallOn","name":"WallOn","value":"132_u8"},{"id":"WallUser","name":"WallUser","value":"137_u8"},{"id":"Speaker","name":"Speaker","value":"104_u8"},{"id":"NetworkStandby","name":"NetworkStandby","value":"181_u8"},{"id":"AutoOffTimer","name":"AutoOffTimer","value":"230_u8"},{"id":"AutoPower","name":"AutoPower","value":"51_u8"},{"id":"ScreenSplit","name":"ScreenSplit","value":"178_u8"},{"id":"SoftwareVersion","name":"SoftwareVersion","value":"14_u8"},{"id":"SerialNumber","name":"SerialNumber","value":"11_u8"},{"id":"Time","name":"Time","value":"167_u8"},{"id":"Timer","name":"Timer","value":"164_u8"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"auto_adjust?-instance-method","name":"auto_adjust?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":257,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L257"},"def":{"name":"auto_adjust?","visibility":"Public","body":"self == AutoAdjust"}},{"html_id":"auto_off_timer?-instance-method","name":"auto_off_timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":264,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L264"},"def":{"name":"auto_off_timer?","visibility":"Public","body":"self == AutoOffTimer"}},{"html_id":"auto_power?-instance-method","name":"auto_power?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L265"},"def":{"name":"auto_power?","visibility":"Public","body":"self == AutoPower"}},{"html_id":"blue_gain?-instance-method","name":"blue_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L252"},"def":{"name":"blue_gain?","visibility":"Public","body":"self == BlueGain"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L246"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"build(id:UInt8,data:Bytes):Bytes-instance-method","name":"build","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(id : UInt8, data : Bytes) : Bytes","args_html":"(id : UInt8, data : Bytes) : Bytes","location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L272"},"def":{"name":"build","args":[{"name":"id","external_name":"id","restriction":"UInt8"},{"name":"data","external_name":"data","restriction":"Bytes"}],"return_type":"Bytes","visibility":"Public","body":"(Bytes.new(data.size + 5)).tap do |bytes|\n bytes[0] = INDICATOR\n bytes[1] = self.value\n bytes[2] = id\n bytes[3] = data.size.to_u8\n data.each_with_index(4) do |b, i|\n bytes[i] = b\n end\n bytes[-1] = ((bytes[1..-2].sum(0)) & 255).to_u8\nend"}},{"html_id":"colour?-instance-method","name":"colour?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":248,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L248"},"def":{"name":"colour?","visibility":"Public","body":"self == Colour"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L245"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"green_gain?-instance-method","name":"green_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":251,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L251"},"def":{"name":"green_gain?","visibility":"Public","body":"self == GreenGain"}},{"html_id":"hard_off?-instance-method","name":"hard_off?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L242"},"def":{"name":"hard_off?","visibility":"Public","body":"self == HardOff"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":253,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L253"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":254,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L254"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"network_standby?-instance-method","name":"network_standby?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":263,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L263"},"def":{"name":"network_standby?","visibility":"Public","body":"self == NetworkStandby"}},{"html_id":"panel_mute?-instance-method","name":"panel_mute?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L243"},"def":{"name":"panel_mute?","visibility":"Public","body":"self == PanelMute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L256"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"red_gain?-instance-method","name":"red_gain?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L250"},"def":{"name":"red_gain?","visibility":"Public","body":"self == RedGain"}},{"html_id":"safety?-instance-method","name":"safety?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L259"},"def":{"name":"safety?","visibility":"Public","body":"self == Safety"}},{"html_id":"screen_split?-instance-method","name":"screen_split?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L266"},"def":{"name":"screen_split?","visibility":"Public","body":"self == ScreenSplit"}},{"html_id":"serial_number?-instance-method","name":"serial_number?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":268,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L268"},"def":{"name":"serial_number?","visibility":"Public","body":"self == SerialNumber"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":247,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L247"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"size?-instance-method","name":"size?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L255"},"def":{"name":"size?","visibility":"Public","body":"self == Size"}},{"html_id":"software_version?-instance-method","name":"software_version?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":267,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L267"},"def":{"name":"software_version?","visibility":"Public","body":"self == SoftwareVersion"}},{"html_id":"speaker?-instance-method","name":"speaker?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":262,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L262"},"def":{"name":"speaker?","visibility":"Public","body":"self == Speaker"}},{"html_id":"status?-instance-method","name":"status?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L241"},"def":{"name":"status?","visibility":"Public","body":"self == Status"}},{"html_id":"time?-instance-method","name":"time?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":269,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L269"},"def":{"name":"time?","visibility":"Public","body":"self == Time"}},{"html_id":"timer?-instance-method","name":"timer?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L270"},"def":{"name":"timer?","visibility":"Public","body":"self == Timer"}},{"html_id":"tint?-instance-method","name":"tint?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L249"},"def":{"name":"tint?","visibility":"Public","body":"self == Tint"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L244"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}},{"html_id":"wall_mode?-instance-method","name":"wall_mode?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L258"},"def":{"name":"wall_mode?","visibility":"Public","body":"self == WallMode"}},{"html_id":"wall_on?-instance-method","name":"wall_on?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L260"},"def":{"name":"wall_on?","visibility":"Public","body":"self == WallOn"}},{"html_id":"wall_user?-instance-method","name":"wall_user?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":261,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L261"},"def":{"name":"wall_user?","visibility":"Public","body":"self == WallUser"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/Input","path":"Samsung/Displays/ReducedMDCProtocol/Input.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Vga","name":"Vga","value":"20"},{"id":"Dvi","name":"Dvi","value":"24"},{"id":"DviVideo","name":"DviVideo","value":"31"},{"id":"Hdmi","name":"Hdmi","value":"33"},{"id":"HdmiPc","name":"HdmiPc","value":"34"},{"id":"Hdmi2","name":"Hdmi2","value":"35"},{"id":"Hdmi2Pc","name":"Hdmi2Pc","value":"36"},{"id":"Hdmi3","name":"Hdmi3","value":"49"},{"id":"Hdmi3Pc","name":"Hdmi3Pc","value":"50"},{"id":"Hdmi4","name":"Hdmi4","value":"51"},{"id":"Hdmi4Pc","name":"Hdmi4Pc","value":"52"},{"id":"DisplayPort","name":"DisplayPort","value":"37"},{"id":"Dtv","name":"Dtv","value":"64"},{"id":"Media","name":"Media","value":"96"},{"id":"Widi","name":"Widi","value":"97"},{"id":"MagicInfo","name":"MagicInfo","value":"32"},{"id":"Whiteboard","name":"Whiteboard","value":"100"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L24"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dtv?-instance-method","name":"dtv?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L25"},"def":{"name":"dtv?","visibility":"Public","body":"self == Dtv"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == Dvi"}},{"html_id":"dvi_video?-instance-method","name":"dvi_video?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L15"},"def":{"name":"dvi_video?","visibility":"Public","body":"self == DviVideo"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L18"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi2_pc?-instance-method","name":"hdmi2_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L19"},"def":{"name":"hdmi2_pc?","visibility":"Public","body":"self == Hdmi2Pc"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L20"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"hdmi3_pc?-instance-method","name":"hdmi3_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L21"},"def":{"name":"hdmi3_pc?","visibility":"Public","body":"self == Hdmi3Pc"}},{"html_id":"hdmi4?-instance-method","name":"hdmi4?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L22"},"def":{"name":"hdmi4?","visibility":"Public","body":"self == Hdmi4"}},{"html_id":"hdmi4_pc?-instance-method","name":"hdmi4_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L23"},"def":{"name":"hdmi4_pc?","visibility":"Public","body":"self == Hdmi4Pc"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L16"},"def":{"name":"hdmi?","visibility":"Public","body":"self == Hdmi"}},{"html_id":"hdmi_pc?-instance-method","name":"hdmi_pc?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L17"},"def":{"name":"hdmi_pc?","visibility":"Public","body":"self == HdmiPc"}},{"html_id":"magic_info?-instance-method","name":"magic_info?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L28"},"def":{"name":"magic_info?","visibility":"Public","body":"self == MagicInfo"}},{"html_id":"media?-instance-method","name":"media?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L26"},"def":{"name":"media?","visibility":"Public","body":"self == Media"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L13"},"def":{"name":"vga?","visibility":"Public","body":"self == Vga"}},{"html_id":"whiteboard?-instance-method","name":"whiteboard?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L29"},"def":{"name":"whiteboard?","visibility":"Public","body":"self == Whiteboard"}},{"html_id":"widi?-instance-method","name":"widi?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L27"},"def":{"name":"widi?","visibility":"Public","body":"self == Widi"}}]},{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol/ResponseStatus","path":"Samsung/Displays/ReducedMDCProtocol/ResponseStatus.html","kind":"enum","full_name":"Samsung::Displays::ReducedMDCProtocol::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L185"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Ack","name":"Ack","value":"65"},{"id":"Nak","name":"Nak","value":"78"}],"namespace":{"html_id":"drivers/Samsung/Displays/ReducedMDCProtocol","kind":"class","full_name":"Samsung::Displays::ReducedMDCProtocol","name":"ReducedMDCProtocol"},"instance_methods":[{"html_id":"ack?-instance-method","name":"ack?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L186"},"def":{"name":"ack?","visibility":"Public","body":"self == Ack"}},{"html_id":"nak?-instance-method","name":"nak?","abstract":false,"location":{"filename":"src/samsung/displays/reduced_mdc_protocol.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/samsung/displays/reduced_mdc_protocol.cr#L187"},"def":{"name":"nak?","visibility":"Public","body":"self == Nak"}}]}]}]}]},{"html_id":"drivers/Screen","path":"Screen.html","kind":"class","full_name":"Screen","name":"Screen","abstract":false,"superclass":{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},"ancestors":[{"html_id":"drivers/DriverSpecs/MockDriver","kind":"class","full_name":"DriverSpecs::MockDriver","name":"MockDriver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/global_cache/projector_screen_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/global_cache/projector_screen_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"class_methods":[{"html_id":"driver_interface-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","visibility":"Public","body":"KlassExecutor.driver_interface"}}],"instance_methods":[{"html_id":"__executor(json:String):BaseExecutor-instance-method","name":"__executor","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"args":[{"name":"json","external_name":"json","restriction":"String"}],"args_string":"(json : String) : BaseExecutor","args_html":"(json : String) : BaseExecutor","def":{"name":"__executor","args":[{"name":"json","external_name":"json","restriction":"String"}],"return_type":"BaseExecutor","visibility":"Public","body":"KlassExecutor.new(json)"}},{"html_id":"__init__:Nil-instance-method","name":"__init__","doc":":nodoc:","summary":"

:nodoc:

","abstract":false,"def":{"name":"__init__","return_type":"Nil","visibility":"Public","body":"@__storage__.clear\nPlaceOS::Driver::RedisStorage.with_redis do |redis|\n redis.set(\"interface/#{@module_id}\", KlassExecutor.metadata)\nend\non_load\n"}}]},{"html_id":"drivers/ScreenTechnics","path":"ScreenTechnics.html","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics","abstract":false,"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/ScreenTechnics/Connect","path":"ScreenTechnics/Connect.html","kind":"class","full_name":"ScreenTechnics::Connect","name":"Connect","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/screen_technics/connect.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CMD_LOOKUP","name":"CMD_LOOKUP","value":"{30 => :up, 33 => :down, 1 => :status, 36 => :stop}"},{"id":"COMMANDS","name":"COMMANDS","value":"{up: 30, down: 33, status: 1, stop: 36}"},{"id":"STATUS","name":"STATUS","value":"{0 => :moving_top, 1 => :moving_bottom, 2 => :moving_preset_1, 3 => :moving_preset_2, 4 => :moving_top, 5 => :moving_bottom, 6 => :at_top, 7 => :at_bottom, 8 => :at_preset_1, 9 => :at_preset_2, 10 => :stopped, 11 => :error, 13 => :error_timeout, 14 => :error_current, 15 => :error_rattle, 16 => :at_bottom}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"}],"namespace":{"html_id":"drivers/ScreenTechnics","kind":"module","full_name":"ScreenTechnics","name":"ScreenTechnics"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L44"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(15.seconds, immediate: true) do\n (0...@count).each do |index|\n query_state(index)\n end\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L50"},"def":{"name":"disconnected","visibility":"Public","body":"queue.clear\nschedule.clear\n"}},{"html_id":"down(index:Int32=0)-instance-method","name":"down","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L68"},"def":{"name":"down","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if down?(index)\n return\nend\nstop(index)\ndo_send(:down, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"down?(index:Int32=0)-instance-method","name":"down?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L75"},"def":{"name":"down?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_bottom\", \"at_bottom\"}.includes?(self[\"screen#{index}\"]?)"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L55"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i\ncase position\nwhen MoveablePosition::Up\n up(index)\nwhen MoveablePosition::Down\n down(index)\nelse\n raise(\"invalid position requested\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L32"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 500.milliseconds\ntransport.tokenizer = Tokenizer.new(\"\\r\\n\")\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/screen_technics/connect.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L40"},"def":{"name":"on_update","visibility":"Public","body":"@count = (setting?(Int32, :screen_count)) || 1"}},{"html_id":"query_state(index:Int32=0)-instance-method","name":"query_state","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L101"},"def":{"name":"query_state","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"do_send(:status, index, 32)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/screen_technics/connect.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L125"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Screen sent #{data}\"\nend\nparts = (data.split(/,/)).map do |__arg0|\n __arg0.strip.to_i\nend\ncmd = CMD_LOOKUP[parts[0] - 100]?\nif cmd\n index = parts[2] - 17\n case cmd\n when :up\n logger.debug do\n \"Screen#{index} moving up\"\n end\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = true\n when :down\n logger.debug do\n \"Screen#{index} moving down\"\n end\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = true\n when :stop\n logger.debug do\n \"Screen#{index} stopped\"\n end\n self[\"moving#{index}\"] = false\n screen = \"screen#{index}\"\n if {\"at_top\", \"at_bottom\"}.includes?(self[screen]?)\n else\n self[screen] = :stopped\n end\n when :status\n self[\"screen#{index}\"] = status = STATUS[parts[-1]]\n case status\n when :moving_top, :at_top\n self[\"position#{index}\"] = MoveablePosition::Up\n self[\"moving#{index}\"] = status == (:moving_top)\n when :moving_bottom, :at_bottom\n self[\"position#{index}\"] = MoveablePosition::Down\n self[\"moving#{index}\"] = status == (:moving_bottom)\n when :stopped\n self[\"moving#{index}\"] = false\n when :error, :error_timeout, :error_current, :error_rattle\n self[\"moving#{index}\"] = false\n end\n end\n task.try(&.success)\nelse\n error = \"Unknown command #{parts[0]}\"\n logger.debug do\n error\n end\n task.try(&.abort(error))\nend\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/screen_technics/connect.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L90"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i\ndo_send(:stop, index, name: \"stop#{index}\", clear_queue: emergency, priority: emergency ? (queue.priority + 50) : queue.priority)\n"}},{"html_id":"up(index:Int32=0)-instance-method","name":"up","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L79"},"def":{"name":"up","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"if up?(index)\n return\nend\nstop(index)\ndo_send(:up, index, name: \"direction#{index}\")\nquery_state(index)\n"}},{"html_id":"up?(index:Int32=0)-instance-method","name":"up?","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"args_string":"(index : Int32 = 0)","args_html":"(index : Int32 = 0)","location":{"filename":"src/screen_technics/connect.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/screen_technics/connect.cr#L86"},"def":{"name":"up?","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"{\"moving_top\", \"at_top\"}.includes?(self[\"screen#{index}\"]?)"}}]}]},{"html_id":"drivers/SecureOS","path":"SecureOS.html","kind":"module","full_name":"SecureOS","name":"SecureOS","abstract":false,"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/SecureOS/AuthResponse","path":"SecureOS/AuthResponse.html","kind":"struct","full_name":"SecureOS::AuthResponse","name":"AuthResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L90"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L91"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:AuthToken-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L93"},"def":{"name":"data","return_type":"AuthToken","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L94"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/AuthToken","path":"SecureOS/AuthToken.html","kind":"struct","full_name":"SecureOS::AuthToken","name":"AuthToken","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L97"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L98"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"token:String-instance-method","name":"token","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L100"},"def":{"name":"token","return_type":"String","visibility":"Public","body":"@token"}}]},{"html_id":"drivers/SecureOS/Camera","path":"SecureOS/Camera.html","kind":"struct","full_name":"SecureOS::Camera","name":"Camera","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L110"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L111"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L113"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L114"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"settings:JSON::Any-instance-method","name":"settings","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L115"},"def":{"name":"settings","return_type":"JSON::Any","visibility":"Public","body":"@settings"}},{"html_id":"status:JSON::Any-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L116"},"def":{"name":"status","return_type":"JSON::Any","visibility":"Public","body":"@status"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L117"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/CameraResponse","path":"SecureOS/CameraResponse.html","kind":"struct","full_name":"SecureOS::CameraResponse","name":"CameraResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L103"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L104"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Camera)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L106"},"def":{"name":"data","return_type":"Array(Camera)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L107"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/Error","path":"SecureOS/Error.html","kind":"struct","full_name":"SecureOS::Error","name":"Error","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L82"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L83"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"error:String-instance-method","name":"error","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L87"},"def":{"name":"error","return_type":"String","visibility":"Public","body":"@error"}},{"html_id":"message:String-instance-method","name":"message","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L86"},"def":{"name":"message","return_type":"String","visibility":"Public","body":"@message"}},{"html_id":"request_id:String|Int64|Nil-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L85"},"def":{"name":"request_id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@request_id"}}]},{"html_id":"drivers/SecureOS/ErrorWrapper","path":"SecureOS/ErrorWrapper.html","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L50"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Error-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L52"},"def":{"name":"data","return_type":"Error","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L51"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Event","path":"SecureOS/Event.html","kind":"struct","full_name":"SecureOS::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L68"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L69"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:String-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L73"},"def":{"name":"action","return_type":"String","visibility":"Public","body":"@action"}},{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L72"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"parameters:JSON::Any|Nil-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L79"},"def":{"name":"parameters","return_type":"JSON::Any | ::Nil","visibility":"Public","body":"@parameters"}},{"html_id":"ticks:Int64|Nil-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L74"},"def":{"name":"ticks","return_type":"Int64 | ::Nil","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L77"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L71"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/EventWrapper","path":"SecureOS/EventWrapper.html","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L45"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Event-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L47"},"def":{"name":"data","return_type":"Event","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L46"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Response","path":"SecureOS/Response.html","kind":"class","full_name":"SecureOS::Response","name":"Response","abstract":true,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L29"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"subclasses":[{"html_id":"drivers/SecureOS/ErrorWrapper","kind":"class","full_name":"SecureOS::ErrorWrapper","name":"ErrorWrapper"},{"html_id":"drivers/SecureOS/EventWrapper","kind":"class","full_name":"SecureOS::EventWrapper","name":"EventWrapper"},{"html_id":"drivers/SecureOS/StateWrapper","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L33"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"location = pull.location\ndiscriminator_value = nil\njson = ::String.build do |io|\n ::JSON.build(io) do |builder|\n builder.start_object\n pull.read_object do |key|\n if key == \"type\"\n value_kind = pull.kind\n case value_kind\n when .string?\n discriminator_value = pull.string_value\n when .int?\n discriminator_value = pull.int_value\n when .bool?\n discriminator_value = pull.bool_value\n else\n raise(::JSON::SerializableError.new(\"JSON discriminator field 'type' has an invalid value type of #{value_kind.to_s}\", to_s, nil, *location, nil))\n end\n builder.field(key, discriminator_value)\n pull.read_next\n else\n builder.field(key) do\n pull.read_raw(builder)\n end\n end\n end\n builder.end_object\n end\nend\nif discriminator_value.nil?\n raise(::JSON::SerializableError.new(\"Missing JSON discriminator field 'type'\", to_s, nil, *location, nil))\nend\ncase discriminator_value\nwhen \"state\"\n StateWrapper.from_json(json)\nwhen \"event\"\n EventWrapper.from_json(json)\nwhen \"error\"\n ErrorWrapper.from_json(json)\nelse\n raise(::JSON::SerializableError.new(\"Unknown 'type' discriminator value: #{discriminator_value.inspect}\", to_s, nil, *location, nil))\nend\n"}}]},{"html_id":"drivers/SecureOS/State","path":"SecureOS/State.html","kind":"struct","full_name":"SecureOS::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String|Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L59"},"def":{"name":"id","return_type":"String | Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"states:Hash(String,Bool)-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L65"},"def":{"name":"states","return_type":"Hash(String, Bool)","visibility":"Public","body":"@states"}},{"html_id":"ticks:Int64-instance-method","name":"ticks","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L60"},"def":{"name":"ticks","return_type":"Int64","visibility":"Public","body":"@ticks"}},{"html_id":"time:Time-instance-method","name":"time","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L63"},"def":{"name":"time","return_type":"Time","visibility":"Public","body":"@time"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L58"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/StateType","path":"SecureOS/StateType.html","kind":"enum","full_name":"SecureOS::StateType","name":"StateType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L4"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Attached","name":"Attached","value":"0"},{"id":"Armed","name":"Armed","value":"1"},{"id":"Alarmed","name":"Alarmed","value":"2"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"instance_methods":[{"html_id":"alarmed?-instance-method","name":"alarmed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L7"},"def":{"name":"alarmed?","visibility":"Public","body":"self == Alarmed"}},{"html_id":"armed?-instance-method","name":"armed?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L6"},"def":{"name":"armed?","visibility":"Public","body":"self == Armed"}},{"html_id":"attached?-instance-method","name":"attached?","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L5"},"def":{"name":"attached?","visibility":"Public","body":"self == Attached"}}]},{"html_id":"drivers/SecureOS/StateWrapper","path":"SecureOS/StateWrapper.html","kind":"class","full_name":"SecureOS::StateWrapper","name":"StateWrapper","abstract":false,"superclass":{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},"ancestors":[{"html_id":"drivers/SecureOS/Response","kind":"class","full_name":"SecureOS::Response","name":"Response"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L40"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:State-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L42"},"def":{"name":"data","return_type":"State","visibility":"Public","body":"@data"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L41"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/SubscribeRule","path":"SecureOS/SubscribeRule.html","kind":"struct","full_name":"SecureOS::SubscribeRule","name":"SubscribeRule","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(type:String,id:String,action:Symbol,states:Array(StateType)|Nil=nil,events:Array(String)|Nil=nil)-class-method","name":"new","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"args_string":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","args_html":"(type : String, id : String, action : Symbol, states : Array(StateType) | Nil = nil, events : Array(String) | Nil = nil)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L19"},"def":{"name":"new","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"id","external_name":"id","restriction":"String"},{"name":"action","external_name":"action","restriction":"Symbol"},{"name":"states","default_value":"nil","external_name":"states","restriction":"Array(StateType) | ::Nil"},{"name":"events","default_value":"nil","external_name":"events","restriction":"Array(String) | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(type, id, action, states, events)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"action:Symbol-instance-method","name":"action","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L17"},"def":{"name":"action","return_type":"Symbol","visibility":"Public","body":"@action"}},{"html_id":"events:Array(String)|Nil-instance-method","name":"events","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L16"},"def":{"name":"events","return_type":"Array(String) | ::Nil","visibility":"Public","body":"@events"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L14"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"states:Array(StateType)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L15"},"def":{"name":"states","return_type":"Array(StateType) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L13"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}}]},{"html_id":"drivers/SecureOS/Watchlist","path":"SecureOS/Watchlist.html","kind":"struct","full_name":"SecureOS::Watchlist","name":"Watchlist","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L127"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":128,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L128"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L130"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L131"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]},{"html_id":"drivers/SecureOS/WatchlistResponse","path":"SecureOS/WatchlistResponse.html","kind":"struct","full_name":"SecureOS::WatchlistResponse","name":"WatchlistResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api_models.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L120"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/secure_os/ws_api_models.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L121"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Array(Watchlist)-instance-method","name":"data","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L123"},"def":{"name":"data","return_type":"Array(Watchlist)","visibility":"Public","body":"@data"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/secure_os/ws_api_models.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api_models.cr#L124"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}}]},{"html_id":"drivers/SecureOS/WsApi","path":"SecureOS/WsApi.html","kind":"class","full_name":"SecureOS::WsApi","name":"WsApi","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/secure_os/ws_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/SecureOS","kind":"module","full_name":"SecureOS","name":"SecureOS"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"basic_auth:NamedTuple(username:String,password:String)-instance-method","name":"basic_auth","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth","return_type":"NamedTuple(username: String, password: String)","visibility":"Public","body":"if (__temp_1 = @basic_auth).nil?\n ::raise(::NilAssertionError.new(\"SecureOS::WsApi#basic_auth cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"basic_auth?:NamedTuple(username:String,password:String)|Nil-instance-method","name":"basic_auth?","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L30"},"def":{"name":"basic_auth?","return_type":"NamedTuple(username: String, password: String) | ::Nil","visibility":"Public","body":"@basic_auth"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L40"},"def":{"name":"connected","visibility":"Public","body":"begin\n response = http_client.get(\"#{@rest_api_host}/api/v1/ws_auth\")\n if response.success?\n auth = AuthResponse.from_json(response.body)\n send({type: :auth, token: auth.data.token}.to_json, wait: false)\n else\n raise(\"Authentication failed\")\n end\n schedule.every(30.seconds) do\n send({type: :get_server_time}.to_json, name: :server_time)\n end\n schedule.every(5.minutes, immediate: true) do\n camera_list\n subscribe_all\n watchlist_list\n end\nrescue error\n logger.warn(exception: error) do\n \"Authentication failed\"\n end\n disconnect\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L60"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/secure_os/ws_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@rest_api_host = setting(String, :rest_api_host)\n@basic_auth = setting(NamedTuple(username: String, password: String), :basic_auth)\n@camera_types = setting(Array(String), :camera_types)\n@camera_states = setting(Array(StateType), :camera_states)\n@camera_events = setting(Array(String), :camera_events)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/secure_os/ws_api.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L165"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"raw_json = String.new(data)\nlogger.debug do\n \"SecureOS sent: #{raw_json}\"\nend\ntype_check = (JSON.parse(raw_json))[\"type\"]?\nif type_check\n response = Response.from_json(raw_json)\n case response\n in StateWrapper\n self[\"camera_#{response.data.id}_states\"] = response.data\n in EventWrapper\n self[\"camera_#{response.data.id}\"] = response.data\n in ErrorWrapper\n logger.warn do\n \"SecureOS error: #{response.data}\"\n end\n if response.data.error.in?({\"INVALID_AUTH_TOKEN\", \"UNAUTHORIZED\"})\n disconnect\n else\n self[\"last_error\"] = response.data\n end\n in Response\n end\nend\ntask.try(&.success)\n"}},{"html_id":"watchlist_add_lp(watchlist:String,license_plate:String,comment:String=\"\")-instance-method","name":"watchlist_add_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String, comment : String = \"\")","args_html":"(watchlist : String, license_plate : String, comment : String = "")","location":{"filename":"src/secure_os/ws_api.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L116"},"def":{"name":"watchlist_add_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"},{"name":"comment","default_value":"\"\"","external_name":"comment","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/set\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate, comment: comment}.to_json)\n if response\n else\n logger.warn do\n \"Failed to add license plate to watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to add license plate to watchlist\"\n end\nend"}},{"html_id":"watchlist_remove_lp(watchlist:String,license_plate:String)-instance-method","name":"watchlist_remove_lp","abstract":false,"args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"args_string":"(watchlist : String, license_plate : String)","args_html":"(watchlist : String, license_plate : String)","location":{"filename":"src/secure_os/ws_api.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/secure_os/ws_api.cr#L136"},"def":{"name":"watchlist_remove_lp","args":[{"name":"watchlist","external_name":"watchlist","restriction":"String"},{"name":"license_plate","external_name":"license_plate","restriction":"String"}],"visibility":"Public","body":"begin\n if wl = @watchlist_list.find do |l|\n l.name == watchlist\n end\n response = http_client.post(\"#{@rest_api_host}/api/v1/watchlists/#{wl.id}/delete\", headers: HTTP::Headers {\"Content-Type\" => \"application/json\"}, body: {number: license_plate}.to_json)\n if response\n else\n logger.warn do\n \"Failed to remove license plate from watchlist\"\n end\n end\n else\n logger.warn do\n \"Failed to find a watchlist named: #{watchlist}\"\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"Failed to remove license plate from watchlist\"\n end\nend"}}]}]},{"html_id":"drivers/Settings","path":"Settings.html","kind":"alias","full_name":"Settings","name":"Settings","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings_spec.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::Core::Settings","aliased_html":"Place::Router::Core::Settings","const":false},{"html_id":"drivers/Sharp","path":"Sharp.html","kind":"module","full_name":"Sharp","name":"Sharp","abstract":false,"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sharp/PnSeries","path":"Sharp/PnSeries.html","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AUDIO","name":"AUDIO","value":"{audio1: \"ASDP 2\", audio2: \"ASDP 3\", dvi: \"ASDP 1\", dvi_alt: \"ASDA 1\", hdmi: \"ASHP 0\", hdmi_3mm: \"ASHP 1\", hdmi_rca: \"ASHP 2\", vga: \"ASAP 1\", component: \"ASCA 1\"}"},{"id":"AUDIO_RESPONSE","name":"AUDIO_RESPONSE","value":"AUDIO.to_h.invert"},{"id":"DELIMITER","name":"DELIMITER","value":"\"\\r\\n\""},{"id":"OPERATION_CODE","name":"OPERATION_CODE","value":"{video_input: \"INPS\", volume_status: \"VOLM\", mute_status: \"MUTE\", power_on_delay: \"PWOD\", contrast_status: \"CONT\", brightness_status: \"VLMP\", model_number: \"INF1\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sharp","kind":"module","full_name":"Sharp","name":"Sharp"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"auto_adjust-instance-method","name":"auto_adjust","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L127"},"def":{"name":"auto_adjust","visibility":"Public","body":"do_send(\"AGIN 1\", timeout: 20.seconds)"}},{"html_id":"brightness(val:Int32|Float64)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L131"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nbrightness = (percentage * @brightness_max.to_f).round_away.to_i\ndo_send(\"VLMP#{brightness.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"brightness_status(priority:Int32=0,**options)-instance-method","name":"brightness_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"brightness_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VLMP\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L51"},"def":{"name":"connected","visibility":"Public","body":"send_credentials\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Display\"\n end\n do_poll\nend\n"}},{"html_id":"contrast(val:Int32|Float64)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L139"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"val = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\ncontrast = (percentage * @contrast_max.to_f).round_away.to_i\nmultiplier = (self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1\ncontrast = contrast * multiplier\ndo_send(\"CONT#{contrast.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"contrast_status(priority:Int32=0,**options)-instance-method","name":"contrast_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"contrast_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"CONT\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L61"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L207"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n if self[:model_number]?\n else\n model_number\n end\n power_on_delay\n mute_status\nend"}},{"html_id":"model_number(priority:Int32=0,**options)-instance-method","name":"model_number","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"model_number","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INF1\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"There seems to only be audio mute available","summary":"

There seems to only be audio mute available

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sharp/pn_series.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L175"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"if layer == MuteLayer::Video\n logger.warn do\n \"Sharp LCD requested to mute video which is unsupported\"\n end\nelse\n logger.debug do\n \"Sharp LCD, requested to mute #{state}\"\n end\n do_send(\"MUTE #{state ? '1' : '0'}\")\n mute_status(50)\nend"}},{"html_id":"mute_status(priority:Int32=0,**options)-instance-method","name":"mute_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"mute_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"MUTE\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L47"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(DELIMITER)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sharp/pn_series.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L65"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"delay = self[:power_on_delay]?.try(&.as_i) || 5\nif state != !!self[:power]?.try(&.as_bool)\n if state\n logger.debug do\n \"-- Sharp LCD, requested to power on\"\n end\n do_send(\"POWR 1\", name: :POWR, timeout: delay.seconds + 15.seconds)\n self[:warming] = true\n self[:power] = true\n do_send(\"POWR????\", name: :POWR, timeout: 10.seconds)\n else\n logger.debug do\n \"-- Sharp LCD, requested to power off\"\n end\n do_send(\"POWR 0\", name: :POWR, timeout: 15.seconds)\n self[:power] = false\n end\nend\npower?\nmute_status(0)\nvolume_status(0)\n"}},{"html_id":"power?(**options)-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L88"},"def":{"name":"power?","double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(\"POWR????\", **options, name: :POWR, timeout: 10.seconds)).get\nself[:power].as_bool\n"}},{"html_id":"power_on_delay(priority:Int32=0,**options)-instance-method","name":"power_on_delay","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"power_on_delay","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"PWOD\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sharp/pn_series.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L229"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data[0..-3])\nlogger.debug do\n \"-- Sharp LCD, received: #{data}\"\nend\nif data == \"Password:OK\"\n return task.try(&.success(\"Login successful\"))\nelse\n if data == \"Password:Login incorrect\"\n schedule.in(5.seconds) do\n send_credentials\n end\n return task.try(&.success(\"Sharp LCD, bad login or logged off. Attempting login..\"))\n else\n if data == \"OK\"\n return task.try(&.success)\n else\n if data == \"WAIT\"\n logger.debug do\n \"-- Sharp LCD, wait\"\n end\n return\n else\n if data == \"ERR\"\n return task.try(&.abort(\"-- Sharp LCD, error\"))\n else\n if data.size < 8\n return task.try(&.abort(\"Sharp sent out of order response: #{data}\"))\n end\n end\n end\n end\n end\nend\ncommand, value = data.split\ncase command\nwhen \"POWR\"\n self[:warming] = false\n self[:power] = value.to_i > 0\nwhen \"INPS\"\n input = Input.from_value?(value.to_i)\n self[:input] = input || \"unknown\"\n logger.debug do\n \"-- Sharp LCD, input #{self[:input]} == #{value}\"\n end\nwhen \"VOLM\"\n vol_percent = (value.to_i.to_f / @volume_max.to_f) * 100.0\n if self[:audio_mute]?.try(&.as_bool)\n else\n self[:volume] = vol_percent.round(2)\n end\nwhen \"MUTE\"\n self[:audio_mute] = (mute = value.to_i == 1)\n if mute\n self[:volume] = 0\n else\n volume_status(90)\n end\nwhen \"CONT\"\n val = value.to_i / ((self[:input]? == \"VGA\") && @dbl_contrast ? 2 : 1)\n contrast = (val.to_f / @contrast_max.to_f) * 100.0\n self[:contrast] = contrast.round(2)\nwhen \"VLMP\"\n brightness = (value.to_i.to_f / @brightness_max.to_f) * 100.0\n self[:brightness] = brightness.round(2)\nwhen \"PWOD\"\n self[:power_on_delay] = value.to_i\nwhen \"INF1\"\n self[:model_number] = value\n logger.debug do\n \"-- Sharp LCD, model number #{self[:model_number]}\"\n end\n determine_contrast_mode\nwhen \"ASDP\", \"ASDA\", \"ASHP\", \"ASAP\", \"ASCA\"\n self[:audio_input] = AUDIO_RESPONSE[data] || \"unknown\"\nend\ntask.try(&.success)\n"}},{"html_id":"reset-instance-method","name":"reset","doc":"Resets the brightness and contrast settings","summary":"

Resets the brightness and contrast settings

","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L94"},"def":{"name":"reset","visibility":"Public","body":"do_send(\"ARST 2\")"}},{"html_id":"switch_audio(input:String)-instance-method","name":"switch_audio","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"String"}],"args_string":"(input : String)","args_html":"(input : String)","location":{"filename":"src/sharp/pn_series.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L119"},"def":{"name":"switch_audio","args":[{"name":"input","external_name":"input","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch audio to: #{input}\"\nend\ndo_send(AUDIO[input], name: \"audio\")\nmute_status(40)\nvolume_status(40)\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sharp/pn_series.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L98"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"-- Sharp LCD, requested to switch to: #{input}\"\nend\n(do_send(input.data, name: :input, delay: 2.seconds, timeout: 20.seconds)).get\nvideo_input(40)\nbrightness_status(40)\ncontrast_status(40)\n"}},{"html_id":"video_input(priority:Int32=0,**options)-instance-method","name":"video_input","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"video_input","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"INPS\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume(val:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"args_string":"(val : Int32 | Float64)","args_html":"(val : Int32 | Float64)","location":{"filename":"src/sharp/pn_series.cr","line_number":150,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L150"},"def":{"name":"volume","args":[{"name":"val","external_name":"val","restriction":"Int32 | Float64"}],"visibility":"Public","body":"@vol_status.try(&.cancel)\n@vol_status = schedule.in(2.seconds) do\n @vol_status = nil\n volume_status\nend\nval = val.to_f.clamp(0.0, 100.0)\npercentage = val / 100.0\nvol_actual = (percentage * @volume_max.to_f).round_away.to_i\ndo_send(\"VOLM#{vol_actual.to_s.rjust(4, ' ')}\")\n"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L169"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_status(priority:Int32=0,**options)-instance-method","name":"volume_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sharp/pn_series.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L198"},"def":{"name":"volume_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"data = \"VOLM\" + \"????\"\nlogger.debug do\n \"Sharp sending: #{data}\"\nend\ndo_send(data, **options, priority: priority)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L164"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sharp/PnSeries/Input","path":"Sharp/PnSeries/Input.html","kind":"enum","full_name":"Sharp::PnSeries::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sharp/pn_series.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L13"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"DVI","name":"DVI","value":"1"},{"id":"HDMI","name":"HDMI","value":"10"},{"id":"HDMI2","name":"HDMI2","value":"13"},{"id":"HDMI3","name":"HDMI3","value":"18"},{"id":"DisplayPort","name":"DisplayPort","value":"14"},{"id":"VGA","name":"VGA","value":"2"},{"id":"VGA2","name":"VGA2","value":"16"},{"id":"Component","name":"Component","value":"3"}],"namespace":{"html_id":"drivers/Sharp/PnSeries","kind":"class","full_name":"Sharp::PnSeries","name":"PnSeries"},"instance_methods":[{"html_id":"component?-instance-method","name":"component?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L21"},"def":{"name":"component?","visibility":"Public","body":"self == Component"}},{"html_id":"data-instance-method","name":"data","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L23"},"def":{"name":"data","visibility":"Public","body":"\"INPS\" + (self.value.to_s.rjust(4, '0'))"}},{"html_id":"display_port?-instance-method","name":"display_port?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L18"},"def":{"name":"display_port?","visibility":"Public","body":"self == DisplayPort"}},{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L16"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == HDMI2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L17"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == HDMI3"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L15"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L20"},"def":{"name":"vga2?","visibility":"Public","body":"self == VGA2"}},{"html_id":"vga?-instance-method","name":"vga?","abstract":false,"location":{"filename":"src/sharp/pn_series.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sharp/pn_series.cr#L19"},"def":{"name":"vga?","visibility":"Public","body":"self == VGA"}}]}]}]},{"html_id":"drivers/Shure","path":"Shure.html","kind":"module","full_name":"Shure","name":"Shure","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Shure/Microphone","path":"Shure/Microphone.html","kind":"module","full_name":"Shure::Microphone","name":"Microphone","abstract":false,"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Shure","kind":"module","full_name":"Shure","name":"Shure"},"types":[{"html_id":"drivers/Shure/Microphone/MXA","path":"Shure/Microphone/MXA.html","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"}],"namespace":{"html_id":"drivers/Shure/Microphone","kind":"module","full_name":"Shure::Microphone","name":"Microphone"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L17"},"def":{"name":"connected","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\" >\")\nschedule.every(60.seconds) do\n logger.debug do\n \"-- Polling Mics\"\n end\n do_poll\nend\nquery_all\nif (setting?(Bool, :send_meter_levels)) != true\n set_meter_rate(0)\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L29"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L192"},"def":{"name":"do_poll","visibility":"Public","body":"query_device_id"}},{"html_id":"flash-instance-method","name":"flash","doc":"flash the LED for 30 seconds","summary":"

flash the LED for 30 seconds

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L81"},"def":{"name":"flash","visibility":"Public","body":"do_send(\"SET FLASH ON\")"}},{"html_id":"led(on:Bool=true)-instance-method","name":"led","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L101"},"def":{"name":"led","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"led_state_muted(on)\nled_state_unmuted(on)\n"}},{"html_id":"led_colour_muted(colour:Colour)-instance-method","name":"led_colour_muted","doc":"Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE","summary":"

Supported colours: :RED, :GREEN, :BLUE, :PINK, :PURPLE, :YELLOW, :ORANGE, :WHITE

","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L111"},"def":{"name":"led_colour_muted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_MUTED\", colour.to_s.upcase, name: :muted_color)"}},{"html_id":"led_colour_unmuted(colour:Colour)-instance-method","name":"led_colour_unmuted","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"args_string":"(colour : Colour)","args_html":"(colour : Colour)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L119"},"def":{"name":"led_colour_unmuted","args":[{"name":"colour","external_name":"colour","restriction":"Colour"}],"visibility":"Public","body":"do_send(\"SET LED_COLOR_UNMUTED\", colour.to_s.upcase, name: :unmuted_color)"}},{"html_id":"led_state_muted(on:Bool=true)-instance-method","name":"led_state_muted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L136"},"def":{"name":"led_state_muted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_MUTED\", state)\n"}},{"html_id":"led_state_unmuted(on:Bool=true)-instance-method","name":"led_state_unmuted","abstract":false,"args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool = true)","args_html":"(on : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L127"},"def":{"name":"led_state_unmuted","args":[{"name":"on","default_value":"true","external_name":"on","restriction":"Bool"}],"visibility":"Public","body":"state = on ? \"ON\" : \"OFF\"\ndo_send(\"SET LED_STATE_UNMUTED\", state)\n"}},{"html_id":"mute(state:Bool=true)-instance-method","name":"mute","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L56"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"val = state ? \"ON\" : \"OFF\"\ndo_send(\"SET DEVICE_AUDIO_MUTE\", val, name: :mute)\n"}},{"html_id":"mute_audio(state:Bool=true,index:Int32|String=0)-instance-method","name":"mute_audio","doc":"part of the mutable interface","summary":"

part of the mutable interface

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(state : Bool = true, index : Int32 | String = 0)","args_html":"(state : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L66"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"mute(state)"}},{"html_id":"preset(number:Int32)-instance-method","name":"preset","abstract":false,"args":[{"name":"number","external_name":"number","restriction":"Int32"}],"args_string":"(number : Int32)","args_html":"(number : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L75"},"def":{"name":"preset","args":[{"name":"number","external_name":"number","restriction":"Int32"}],"visibility":"Public","body":"if number.in?(1..10)\nelse\n raise(\"must be a number between 1-10, was #{number}\")\nend\ndo_send(\"SET PRESET\", number.to_s, name: :preset)\n"}},{"html_id":"query_all-instance-method","name":"query_all","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L33"},"def":{"name":"query_all","visibility":"Public","body":"do_send(\"GET 0 ALL\")"}},{"html_id":"query_device_id-instance-method","name":"query_device_id","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L37"},"def":{"name":"query_device_id","visibility":"Public","body":"do_send(\"GET DEVICE_ID\", name: :device_id)"}},{"html_id":"query_firmware-instance-method","name":"query_firmware","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L41"},"def":{"name":"query_firmware","visibility":"Public","body":"do_send(\"GET FW_VER\", name: :firmware)"}},{"html_id":"query_led_colour_muted-instance-method","name":"query_led_colour_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L106"},"def":{"name":"query_led_colour_muted","visibility":"Public","body":"do_send(\"GET LED_COLOR_MUTED\")"}},{"html_id":"query_led_colour_unmuted-instance-method","name":"query_led_colour_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L115"},"def":{"name":"query_led_colour_unmuted","visibility":"Public","body":"do_send(\"GET LED_COLOR_UNMUTED\")"}},{"html_id":"query_led_state-instance-method","name":"query_led_state","doc":"LED Setup","summary":"

LED Setup

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L97"},"def":{"name":"query_led_state","visibility":"Public","body":"do_send(\"GET DEV_LED_IN_STATE\")"}},{"html_id":"query_led_state_muted-instance-method","name":"query_led_state_muted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L132"},"def":{"name":"query_led_state_muted","visibility":"Public","body":"do_send(\"GET LED_STATE_MUTED\")"}},{"html_id":"query_led_state_unmuted-instance-method","name":"query_led_state_unmuted","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L123"},"def":{"name":"query_led_state_unmuted","visibility":"Public","body":"do_send(\"GET LED_STATE_UNMUTED\")"}},{"html_id":"query_mute-instance-method","name":"query_mute","doc":"Mute commands","summary":"

Mute commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L52"},"def":{"name":"query_mute","visibility":"Public","body":"do_send(\"GET DEVICE_AUDIO_MUTE\")"}},{"html_id":"query_preset-instance-method","name":"query_preset","doc":"Preset commands","summary":"

Preset commands

","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L71"},"def":{"name":"query_preset","visibility":"Public","body":"do_send(\"GET PRESET\")"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L141"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(bytes)\nlogger.debug do\n \"-- received: #{data}\"\nend\ndata = ((data.split(\"< \", 2))[1].gsub(/[\\{\\}]/, '\"')).rchop(\" >\")\nresp = (shellsplit(data)).map(&.strip)\nif resp[0] == \"SAMPLE\"\n resp[1..-1].each_with_index do |level, index|\n self[\"output#{index + 1}\"] = level.to_i\n end\n return\nend\nif resp[1] == \"ERR\"\n return task.try(&.abort)\nend\nif resp[1] =~ (/^[0-9]+$/)\n chann = resp[1]\n param = resp[2].try(&.downcase)\n value = resp[3].try(&.downcase)\n self[\"#{param}_#{chann}\"] = value\n return task.try(&.success)\nend\nparam = resp[1].downcase\nvalue = resp[2]\ncase param\nwhen \"device_audio_mute\"\n self[:muted] = value == \"ON\"\nwhen \"dev_led_state_muted\"\n self[:led_muted] = value == \"ON\"\nwhen \"dev_led_state_unmuted\"\n self[:led_unmuted] = value == \"ON\"\nelse\n self[param] = case value\n when \"ON\"\n true\n when \"OFF\"\n false\n when .to_i?\n value.to_i\n else\n value\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_meter_rate(rate:Int32)-instance-method","name":"set_meter_rate","doc":"rate in milliseconds","summary":"

rate in milliseconds

","abstract":false,"args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"args_string":"(rate : Int32)","args_html":"(rate : Int32)","location":{"filename":"src/shure/microphone/mxa.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L46"},"def":{"name":"set_meter_rate","args":[{"name":"rate","external_name":"rate","restriction":"Int32"}],"visibility":"Public","body":"if (rate == 0) || rate >= 100\nelse\n raise(\"rate must be a number greater than 100, was #{rate}\")\nend\ndo_send(\"SET METER_RATE\", rate.to_s, name: :meter_rate)\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L61"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}}],"types":[{"html_id":"drivers/Shure/Microphone/MXA/Colour","path":"Shure/Microphone/MXA/Colour.html","kind":"enum","full_name":"Shure::Microphone::MXA::Colour","name":"Colour","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/shure/microphone/mxa.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L85"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"RED","name":"RED","value":"0"},{"id":"GREEN","name":"GREEN","value":"1"},{"id":"BLUE","name":"BLUE","value":"2"},{"id":"PINK","name":"PINK","value":"3"},{"id":"PURPLE","name":"PURPLE","value":"4"},{"id":"YELLOW","name":"YELLOW","value":"5"},{"id":"ORANGE","name":"ORANGE","value":"6"},{"id":"WHITE","name":"WHITE","value":"7"}],"namespace":{"html_id":"drivers/Shure/Microphone/MXA","kind":"class","full_name":"Shure::Microphone::MXA","name":"MXA"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L88"},"def":{"name":"blue?","visibility":"Public","body":"self == BLUE"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":87,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L87"},"def":{"name":"green?","visibility":"Public","body":"self == GREEN"}},{"html_id":"orange?-instance-method","name":"orange?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L92"},"def":{"name":"orange?","visibility":"Public","body":"self == ORANGE"}},{"html_id":"pink?-instance-method","name":"pink?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L89"},"def":{"name":"pink?","visibility":"Public","body":"self == PINK"}},{"html_id":"purple?-instance-method","name":"purple?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":90,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L90"},"def":{"name":"purple?","visibility":"Public","body":"self == PURPLE"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L86"},"def":{"name":"red?","visibility":"Public","body":"self == RED"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L93"},"def":{"name":"white?","visibility":"Public","body":"self == WHITE"}},{"html_id":"yellow?-instance-method","name":"yellow?","abstract":false,"location":{"filename":"src/shure/microphone/mxa.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/shure/microphone/mxa.cr#L91"},"def":{"name":"yellow?","visibility":"Public","body":"self == YELLOW"}}]}]}]}]},{"html_id":"drivers/Siemens","path":"Siemens.html","kind":"module","full_name":"Siemens","name":"Siemens","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Siemens/Desigo","path":"Siemens/Desigo.html","kind":"class","full_name":"Siemens::Desigo","name":"Desigo","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens","kind":"module","full_name":"Siemens","name":"Siemens"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"commands(id:String)-instance-method","name":"commands","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L43"},"def":{"name":"commands","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"commands = @client.try() do |__arg3|\n __arg3.commands.get(id: id)\nend\nself[\"commands#{id}\"] = commands\n"}},{"html_id":"execute(id:String,property_name:String,command_id:String,command_inputs_for_execution:String)-instance-method","name":"execute","doc":"Because of the introspect failing on generics,\nwe can pass in the `command_inputs_for_execution` as a JSON string\n\"[{\\\"Name\\\": \\\"Value\\\", \\\"DataType\\\": \\\"ExtendedEnum\\\", \\\"Value\\\": \\\"1\\\"}]\"","summary":"

Because of the introspect failing on generics, we can pass in the command_inputs_for_execution as a JSON string "[{"Name": "Value", "DataType": "ExtendedEnum", "Value": "1"}]"

","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"args_string":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","args_html":"(id : String, property_name : String, command_id : String, command_inputs_for_execution : String)","location":{"filename":"src/siemens/desigo.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L51"},"def":{"name":"execute","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"property_name","external_name":"property_name","restriction":"String"},{"name":"command_id","external_name":"command_id","restriction":"String"},{"name":"command_inputs_for_execution","external_name":"command_inputs_for_execution","restriction":"String"}],"visibility":"Public","body":"return_value = @client.try() do |__arg4|\n __arg4.commands.execute(id: id, property_name: property_name, command_id: command_id, command_inputs_for_execution: JSON.parse(command_inputs_for_execution))\nend\nself[\"execute#{id}_property#{property_name}_command#{command_id}\"] = return_value\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"base_url = config.uri.not_nil!.to_s\nusername = setting(String, :username)\npassword = setting(String, :password)\n@client = Client.new(base_url: base_url, username: username, password: password)\nspawn do\n loop do\n @client.try() do |__arg0|\n __arg0.heartbeat.signal\n end\n sleep(60)\n end\nend\n"}},{"html_id":"property_values(id:String)-instance-method","name":"property_values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L33"},"def":{"name":"property_values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"property_values = @client.try() do |__arg1|\n __arg1.property_values.get(id: id)\nend\nself[\"property_values#{id}\"] = property_values\n"}},{"html_id":"values(id:String)-instance-method","name":"values","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/siemens/desigo.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L38"},"def":{"name":"values","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"values = @client.try() do |__arg2|\n __arg2.values.get(id: id)\nend\nself[\"values#{id}\"] = values\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/Client","path":"Siemens/Desigo/Client.html","kind":"alias","full_name":"Siemens::Desigo::Client","name":"Client","abstract":false,"locations":[{"filename":"src/siemens/desigo.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Desigo::Client","aliased_html":"Desigo::Client","const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"}},{"html_id":"drivers/Siemens/Desigo/RoomLogic","path":"Siemens/Desigo/RoomLogic.html","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Siemens/Desigo","kind":"class","full_name":"Siemens::Desigo","name":"Desigo"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"do_queries-instance-method","name":"do_queries","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L25"},"def":{"name":"do_queries","visibility":"Public","body":"responses = @queries.map do |q|\n {q.name, (desigo.values(q.param)).get}\nend\nresponses.each do |name, value|\n self[name] = value.as_a.first.as_h[\"Value\"][\"Value\"]\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@queries = setting(Array(Query), :desigo_queries)\n@cron_string = setting(String, :desigo_status_poll_cron)\nschedule.clear\nschedule.cron(@cron_string) do\n do_queries\nend\n"}}],"types":[{"html_id":"drivers/Siemens/Desigo/RoomLogic/Query","path":"Siemens/Desigo/RoomLogic/Query.html","kind":"struct","full_name":"Siemens::Desigo::RoomLogic::Query","name":"Query","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/siemens/desigo/room_logic.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Siemens/Desigo/RoomLogic","kind":"class","full_name":"Siemens::Desigo::RoomLogic","name":"RoomLogic"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"command:String-instance-method","name":"command","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command","return_type":"String","visibility":"Public","body":"@command"}},{"html_id":"command=(command:String)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"String"}],"args_string":"(command : String)","args_html":"(command : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L33"},"def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"String"}],"visibility":"Public","body":"@command = command"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L32"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"param:String-instance-method","name":"param","abstract":false,"location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param","return_type":"String","visibility":"Public","body":"@param"}},{"html_id":"param=(param:String)-instance-method","name":"param=","abstract":false,"args":[{"name":"param","external_name":"param","restriction":"String"}],"args_string":"(param : String)","args_html":"(param : String)","location":{"filename":"src/siemens/desigo/room_logic.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/siemens/desigo/room_logic.cr#L34"},"def":{"name":"param=","args":[{"name":"param","external_name":"param","restriction":"String"}],"visibility":"Public","body":"@param = param"}}]}]}]}]},{"html_id":"drivers/SigGraph","path":"SigGraph.html","kind":"alias","full_name":"SigGraph","name":"SigGraph","abstract":false,"locations":[{"filename":"src/place/router/signal_graph_spec.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/signal_graph_spec.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/SignalGraph","path":"SignalGraph.html","kind":"alias","full_name":"SignalGraph","name":"SignalGraph","abstract":false,"locations":[{"filename":"src/place/router/settings_spec.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings_spec.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Place::Router::SignalGraph","aliased_html":"Place::Router::SignalGraph","const":false},{"html_id":"drivers/Sony","path":"Sony.html","kind":"module","full_name":"Sony","name":"Sony","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Sony/Camera","path":"Sony/Camera.html","kind":"module","full_name":"Sony::Camera","name":"Camera","abstract":false,"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Camera/CGI","path":"Sony/Camera/CGI.html","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L302"},"def":{"name":"home","visibility":"Public","body":"action(\"/command/presetposition.cgi?HomePos=ptz-recall\", name: \"position\") do\n query_status\nend"}},{"html_id":"info?-instance-method","name":"info?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":156,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L156"},"def":{"name":"info?","visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=system\", priority: 0) do |response|\n response.each do |key, value|\n if {\"ModelName\", \"Serial\", \"SoftVersion\", \"ModelForm\", \"CGIVersion\"}.includes?(key)\n self[key.underscore] = value\n end\n end\n response\nend"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Implement Camera interface","summary":"

Implement Camera interface

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":252,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L252"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\npan_speed = pan_speed.to_i\ntilt_speed = tilt_speed.to_i\nrange = -100..100\nin_range(range, pan_speed)\nin_range(range, tilt_speed)\nif @invert_controls && (tilt_speed != 0)\n tilt_speed = -tilt_speed\nend\naction(\"/command/ptzf.cgi?ContinuousPanTiltZoom=#{pan_speed.to_s(16)},#{tilt_speed.to_s(16)},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = ((pan_speed != 0) || (tilt_speed != 0))\n if !@moving\n query_status\n end\n @moving\nend\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"Implement Moveable interface","summary":"

Implement Moveable interface

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L194"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\ncase position\nwhen MoveablePosition::Up, MoveablePosition::Down, MoveablePosition::Left, MoveablePosition::Right\n if @invert_controls && (position.up? || position.down?)\n position = position.up? ? MoveablePosition::Down : MoveablePosition::Up\n end\n action(\"/command/ptzf.cgi?Move=#{position.to_s.downcase},0,image#{index}\", name: \"moving\") do\n self[:moving] = @moving = true\n end\nwhen MoveablePosition::In\n zoom(ZoomDirection::In)\nwhen MoveablePosition::Out\n zoom(ZoomDirection::Out)\nelse\n raise(\"unsupported direction: #{position}\")\nend\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L31"},"def":{"name":"on_load","visibility":"Public","body":"@pantilt_speed = -100..100\nself[:pan_speed] = self[:tilt_speed] = {min: -100, max: 100, stop: 0}\nself[:has_discrete_zoom] = true\nschedule.every(60.seconds) do\n query_status\nend\nschedule.in(5.seconds) do\n query_status\n info?\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"self[:invert_controls] = @invert_controls = (setting?(Bool, :invert_controls)) || false\n@presets = (setting?(Hash(String, NamedTuple(pan: Int32, tilt: Int32, zoom: Int32)), :presets)) || ({} of String => NamedTuple(pan: Int32, tilt: Int32, zoom: Int32))\nself[:presets] = @presets.keys\n"}},{"html_id":"pantilt(pan:Int32,tilt:Int32,zoom:Int32|Nil=nil):Nil-instance-method","name":"pantilt","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"args_string":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","args_html":"(pan : Int32, tilt : Int32, zoom : Int32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L227"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"Int32"},{"name":"tilt","external_name":"tilt","restriction":"Int32"},{"name":"zoom","default_value":"nil","external_name":"zoom","restriction":"Int32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"in_range(@pan_range, pan)\nin_range(@tilt_range, tilt)\nif zoom\n in_range(@zoom_range, zoom)\n action(\"/command/ptzf.cgi?AbsolutePTZF=#{pan.to_s(16)},#{tilt.to_s(16)},#{zoom.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n self[:zoom] = @zoom_raw = zoom.not_nil!\n end\nelse\n action(\"/command/ptzf.cgi?AbsolutePanTilt=#{pan.to_s(16)},#{tilt.to_s(16)},#{@max_speed.to_s(16)}\", name: \"position\") do\n self[:pan] = @pan = pan\n self[:tilt] = @tilt = tilt\n end\nend\n"}},{"html_id":"query_status(priority:Int32=0)-instance-method","name":"query_status","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0)","args_html":"(priority : Int32 = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L93"},"def":{"name":"query_status","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"visibility":"Public","body":"query(\"/command/inquiry.cgi?inq=ptzf\", priority: priority) do |response|\n response.each do |key, value|\n case key\n when \"AbsolutePTZF\"\n parts = value.split(\",\")\n self[:pan] = @pan = twos_complement(parts[0].to_i(16))\n self[:tilt] = @tilt = twos_complement(parts[1].to_i(16))\n @zoom_raw = parts[2].to_i(16)\n when \"PanMovementRange\"\n parts = value.split(\",\")\n pan_min = twos_complement(parts[0].to_i(16))\n pan_max = twos_complement(parts[1].to_i(16))\n @pan_range = pan_min..pan_max\n self[:pan_range] = {min: pan_min, max: pan_max}\n when \"TiltMovementRange\"\n parts = value.split(\",\")\n tilt_min = twos_complement(parts[0].to_i(16))\n tilt_max = twos_complement(parts[1].to_i(16))\n @tilt_range = tilt_min..tilt_max\n self[:tilt_range] = {min: tilt_min, max: tilt_max}\n when \"ZoomMovementRange\"\n parts = value.split(\",\")\n zoom_min = parts[0].to_i(16)\n zoom_max = parts[1].to_i(16)\n @zoom_range = zoom_min..zoom_max\n self[:zoom_range] = {min: zoom_min, max: zoom_max}\n when \"PtzfStatus\"\n parts = (value.split(\",\")).map do |state|\n Movement.parse(state)\n end[0..2]\n self[:moving] = @moving = parts.includes?(Movement::Moving)\n when \"PanTiltMaxVelocity\"\n @max_speed = value.to_i(16)\n end\n end\n self[:zoom] = @zoom_raw.not_nil!.to_f * (100.0 / @zoom_range.end.to_f)\n response\nend"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":308,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L308"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"preset = @presets[position]?\nif preset\n pantilt(**preset)\nelse\n raise(\"unknown preset #{position}\")\nend\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":325,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L325"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":317,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L317"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {pan: @pan, tilt: @tilt, zoom: @zoom_raw}\ndefine_setting(:presets, @presets)\nself[:presets] = @presets.keys\n"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","doc":"Implement Stoppable interface","summary":"

Implement Stoppable interface

","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":178,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L178"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"index = index.to_i + 1\naction(\"/command/ptzf.cgi?Move=stop,motor,image#{index}\", priority: 999, name: \"moving\", clear_queue: emergency) do\n if @zooming\n zoom(ZoomDirection::Stop)\n end\n self[:moving] = @moving = false\n query_status\nend\n"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L287"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nif direction.stop?\n action(\"/command/ptzf.cgi?Move=stop,zoom,image#{index}\", priority: 999, name: \"zooming\") do\n self[:zooming] = @zooming = false\n end\nelse\n action(\"/command/ptzf.cgi?Move=#{direction.out? ? \"wide\" : \"near\"},0,image#{index}\", name: \"zooming\") do\n self[:zooming] = @zooming = true\n end\nend\n"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"This a discrete level on most cameras","summary":"

This a discrete level on most cameras

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":272,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L272"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"index = index.to_i + 1\nposition = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_range.end.to_f).to_i\naction(\"/command/ptzf.cgi?AbsoluteZoom=#{zoom_value.to_s(16)}\", name: \"zooming\") do\n @zoom_raw = zoom_value\n self[:zoom] = @zoom = position\nend\n"}}],"macros":[{"html_id":"in_range(range,value)-macro","name":"in_range","abstract":false,"args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(range, value)","args_html":"(range, value)","location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L218"},"def":{"name":"in_range","args":[{"name":"range","external_name":"range","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":" \n{{ value }}\n = if \n{{ range }}\n.includes? \n{{ value }}\n\n \n{{ value }}\n\n \nelse\n \n{{ value }}\n < \n{{ range }}\n.begin ? \n{{ range }}\n.begin : \n{{ range }}\n.end\n \nend\n \n{{ value }}\n = twos_complement(\n{{ value }}\n)\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/CGI/Movement","path":"Sony/Camera/CGI/Movement.html","kind":"enum","full_name":"Sony::Camera::CGI::Movement","name":"Movement","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/cgi_protocol.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L25"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Idle","name":"Idle","value":"0"},{"id":"Moving","name":"Moving","value":"1"},{"id":"Unknown","name":"Unknown","value":"2"}],"namespace":{"html_id":"drivers/Sony/Camera/CGI","kind":"class","full_name":"Sony::Camera::CGI","name":"CGI"},"instance_methods":[{"html_id":"idle?-instance-method","name":"idle?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L26"},"def":{"name":"idle?","visibility":"Public","body":"self == Idle"}},{"html_id":"moving?-instance-method","name":"moving?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L27"},"def":{"name":"moving?","visibility":"Public","body":"self == Moving"}},{"html_id":"unknown?-instance-method","name":"unknown?","abstract":false,"location":{"filename":"src/sony/camera/cgi_protocol.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/cgi_protocol.cr#L28"},"def":{"name":"unknown?","visibility":"Public","body":"self == Unknown"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA","path":"Sony/Camera/VISCA.html","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Zoomable","kind":"module","full_name":"PlaceOS::Driver::Interface::Zoomable","name":"Zoomable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Moveable","kind":"module","full_name":"PlaceOS::Driver::Interface::Moveable","name":"Moveable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Stoppable","kind":"module","full_name":"PlaceOS::Driver::Interface::Stoppable","name":"Stoppable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Camera","kind":"module","full_name":"PlaceOS::Driver::Interface::Camera","name":"Camera"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Camera","kind":"module","full_name":"Sony::Camera","name":"Camera"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","doc":"clear the interface","summary":"

clear the interface

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L67"},"def":{"name":"connected","visibility":"Public","body":"reset_sequence_number\nsend_cmd(Bytes[0, 1], name: :if_clear, priority: 98)\n"}},{"html_id":"encode_position(value:UInt16):String-instance-method","name":"encode_position","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"args_string":"(value : UInt16) : String","args_html":"(value : UInt16) : String","location":{"filename":"src/sony/camera/visca.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L124"},"def":{"name":"encode_position","args":[{"name":"value","external_name":"value","restriction":"UInt16"}],"return_type":"String","visibility":"Public","body":"io = IO::Memory.new\nio.write_bytes(value, IO::ByteFormat::BigEndian)\nbytes = io.to_slice.hexstring.rjust(4, '0')\n\"0#{bytes[0]}0#{bytes[1]}0#{bytes[2]}0#{bytes[3]}\"\n"}},{"html_id":"home-instance-method","name":"home","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L85"},"def":{"name":"home","visibility":"Public","body":"send_cmd(Bytes[6, 4], name: :pantilt)"}},{"html_id":"joystick(pan_speed:Float64,tilt_speed:Float64,index:Int32|String=0)-instance-method","name":"joystick","doc":"Most cameras support sending a move speed, the interface should expect a percentage","summary":"

Most cameras support sending a move speed, the interface should expect a percentage

","abstract":false,"args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","args_html":"(pan_speed : Float64, tilt_speed : Float64, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L89"},"def":{"name":"joystick","args":[{"name":"pan_speed","external_name":"pan_speed","restriction":"Float64"},{"name":"tilt_speed","external_name":"tilt_speed","restriction":"Float64"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if @invert\n tilt_speed = -tilt_speed\nend\npan_neg, pan_value, pan_zero = joyspeed(pan_speed, @max_pan_tilt_speed)\ntilt_neg, tilt_value, tilt_zero = joyspeed(tilt_speed, @max_pan_tilt_speed)\npan_direction = pan_zero ? \"03\" : (pan_neg ? \"01\" : \"02\")\ntilt_direction = tilt_zero ? \"03\" : (tilt_neg ? \"02\" : \"01\")\nbytes = \"0601#{pan_value}#{tilt_value}#{pan_direction}#{tilt_direction}\"\nresp = send_cmd(bytes.hexbytes, name: :joystick)\nif pan_zero && tilt_zero\n spawn do\n resp.get\n schedule.in(1.seconds) do\n pantilt?\n end\n end\nend\nresp\n"}},{"html_id":"move(position:MoveablePosition,index:Int32|String=0)-instance-method","name":"move","doc":"moves at 50% of max speed","summary":"

moves at 50% of max speed

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : MoveablePosition, index : Int32 | String = 0)","args_html":"(position : MoveablePosition, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":172,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L172"},"def":{"name":"move","args":[{"name":"position","external_name":"position","restriction":"MoveablePosition"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"case position\nin .up?\n joystick(pan_speed: 0.0, tilt_speed: 50.0)\nin .down?\n joystick(pan_speed: 0.0, tilt_speed: -50.0)\nin .left?\n joystick(pan_speed: -50.0, tilt_speed: 0.0)\nin .right?\n joystick(pan_speed: 50.0, tilt_speed: 0.0)\nin .in?\n zoom(:in)\nin .out?\n zoom(:out)\nin .open?, .close?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","doc":"we want to tokenize the stream, ensure we only process a single packet at a time\nand that we have the complete message","summary":"

we want to tokenize the stream, ensure we only process a single packet at a time and that we have the complete message

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L43"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n if bytes.size < 4\n next 0\n end\n ((IO::Memory.new(bytes[2..3])).read_bytes(UInt16, IO::ByteFormat::BigEndian)).to_i + 8\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L55"},"def":{"name":"on_update","visibility":"Public","body":"@presets = (setting?(Presets, :camera_presets)) || @presets\n@max_pan_tilt_speed = (setting?(UInt8, :max_pan_tilt_speed)) || 15_u8\n@zoom_speed = (setting?(UInt8, :zoom_speed)) || 3_u8\n@zoom_max = (setting?(UInt16, :zoom_max)) || 16384_u16\n@camera_address = 128_u8 | ((setting?(UInt8, :camera_no)) || 1_u8)\nself[:presets] = @presets.keys\nself[:inverted] = @invert = (setting?(Bool, :invert_controls)) || false\n"}},{"html_id":"pan_pos:UInt16-instance-method","name":"pan_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L39"},"def":{"name":"pan_pos","return_type":"UInt16","visibility":"Public","body":"@pan_pos"}},{"html_id":"pantilt(pan:UInt16,tilt:UInt16,speed:UInt8)-instance-method","name":"pantilt","doc":"moves to an absolute position","summary":"

moves to an absolute position

","abstract":false,"args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"args_string":"(pan : UInt16, tilt : UInt16, speed : UInt8)","args_html":"(pan : UInt16, tilt : UInt16, speed : UInt8)","location":{"filename":"src/sony/camera/visca.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L138"},"def":{"name":"pantilt","args":[{"name":"pan","external_name":"pan","restriction":"UInt16"},{"name":"tilt","external_name":"tilt","restriction":"UInt16"},{"name":"speed","external_name":"speed","restriction":"UInt8"}],"visibility":"Public","body":"speed = speed.clamp(0_u8, @max_pan_tilt_speed)\nbytes = \"0602#{Bytes[speed].hexstring.rjust(2, '0')}00#{encode_position(pan)}#{encode_position(tilt)}\"\nsend_cmd(bytes.hexbytes, name: :pantilt)\n"}},{"html_id":"pantilt?-instance-method","name":"pantilt?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L221"},"def":{"name":"pantilt?","visibility":"Public","body":"send_inq(Bytes[6, 18], name: :pantilt_query, priority: 0)"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/camera/visca.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L74"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"payload = state ? Bytes[4, 0, 2] : Bytes[4, 0, 3]\nsend_cmd(payload, name: :power)\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L79"},"def":{"name":"power?","visibility":"Public","body":"send_inq(Bytes[4, 0], name: :power_query)"}},{"html_id":"recall(position:String,index:Int32|String=0)-instance-method","name":"recall","doc":"Most cameras support presets (either as a feature or via manual positioning)","summary":"

Most cameras support presets (either as a feature or via manual positioning)

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : String, index : Int32 | String = 0)","args_html":"(position : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L144"},"def":{"name":"recall","args":[{"name":"position","external_name":"position","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"if pos = @presets[position]?\n pan_pos, tilt_pos, zoom_pos = pos\n pantilt(pan_pos, tilt_pos, @max_pan_tilt_speed)\n zoom_to(zoom_pos)\nelse\n raise(\"unknown preset #{position}\")\nend"}},{"html_id":"received(data,task,sequence:UInt32|Nil=nil):Nil-instance-method","name":"received","doc":"process incoming data, tokenised so we know each data packet is exactly one message","summary":"

process incoming data, tokenised so we know each data packet is exactly one message

","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"args_string":"(data, task, sequence : UInt32 | Nil = nil) : Nil","args_html":"(data, task, sequence : UInt32 | Nil = nil) : Nil","location":{"filename":"src/sony/camera/visca.cr","line_number":336,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L336"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""},{"name":"sequence","default_value":"nil","external_name":"sequence","restriction":"UInt32 | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"logger.debug do\n \"Camera sent: 0x#{data.hexstring}\"\nend\nif sequence.nil?\n logger.info do\n \"unexpected packet received, ignoring as no sequence pending\"\n end\n return\nend\nio = IO::Memory.new(data)\npacket = io.read_bytes(Packet)\npayload = packet.payload\ncase packet.type\nwhen .device_control?\n case payload[-1]\n when 1_u8\n reset_sequence_number(directly: true)\n logger.info do\n \"sequence number error, resetting sequence\"\n end\n when 2_u8\n task.try(&.abort(\"bad request\"))\n end\n return\nwhen .device_reply?\n if task && (task.name == \"reset_sequence_number\")\n task.success\n else\n task.try(&.retry(\"sequence number reset, retrying task\"))\n end\n return\nwhen .reply?\n if sequence != packet.sequence\n logger.info do\n \"unexpected sequence number, ignoring\"\n end\n return\n end\nelse\n logger.info do\n \"unexpected packet type #{packet.type}, ignoring\"\n end\n return\nend\ncheck_command = payload[1] & 240_u8\ncase check_command\nwhen 64_u8\n logger.debug do\n \"ignoring command accepted message\"\n end\n return\nwhen 80_u8\n logger.debug do\n \"command complete message\"\n end\nwhen 96_u8\n case payload[2]\n when 2_u8\n task.try(&.abort(\"syntax error in request\"))\n when 3_u8\n schedule.in(50.milliseconds) do\n task.try(&.retry(\"camera busy\"))\n end\n when 4_u8\n task.try(&.abort(\"request was cancelled by the user\"))\n when 5_u8\n task.try(&.success)\n when 65_u8\n task.try(&.abort(\"request could not be performed\"))\n end\n return\nend\ncase task.try(&.name)\nwhen \"zoom_query\"\n @zoom_raw = zoom_value = decode_position(payload[2..5])\n self[:zoom] = @zoom_pos = zoom_value.to_f * (100.0 / @zoom_max.to_f)\nwhen \"pantilt_query\"\n @pan_pos = decode_position(payload[2..5])\n @tilt_pos = decode_position(payload[6..9])\nwhen \"zoom_to\"\n zoom?\nwhen \"pantilt\"\n pantilt?\nwhen \"power_query\"\n self[:power] = payload[-2] == 2_u8\nend\ntask.try(&.success)\n"}},{"html_id":"remove_position(name:String,index:Int32|String=0)-instance-method","name":"remove_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L159"},"def":{"name":"remove_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets.delete(name)\nsave_presets\n"}},{"html_id":"reset_sequence_number(directly:Bool=false)-instance-method","name":"reset_sequence_number","abstract":false,"args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"args_string":"(directly : Bool = false)","args_html":"(directly : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L320"},"def":{"name":"reset_sequence_number","args":[{"name":"directly","default_value":"false","external_name":"directly","restriction":"Bool"}],"visibility":"Public","body":"packet = Packet.new\npacket.type = :device_control\npacket.sequence = @sequence = 1_u32\npacket.payload = Bytes[1_u8]\nif directly\n return transport.send(packet)\nend\nqueue(name: :reset_sequence_number, priority: 99) do |task|\n transport.send(packet, task) do |data|\n received(data, task, @sequence)\n end\nend\n"}},{"html_id":"save_position(name:String,index:Int32|String=0)-instance-method","name":"save_position","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(name : String, index : Int32 | String = 0)","args_html":"(name : String, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L154"},"def":{"name":"save_position","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"@presets[name] = {@pan_pos, @tilt_pos, @zoom_pos}\nsave_presets\n"}},{"html_id":"send_cmd(bytes:String)-instance-method","name":"send_cmd","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":259,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L259"},"def":{"name":"send_cmd","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_cmd(bytes.hexbytes)"}},{"html_id":"send_inq(bytes:String)-instance-method","name":"send_inq","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"args_string":"(bytes : String)","args_html":"(bytes : String)","location":{"filename":"src/sony/camera/visca.cr","line_number":287,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L287"},"def":{"name":"send_inq","args":[{"name":"bytes","external_name":"bytes","restriction":"String"}],"visibility":"Public","body":"send_inq(bytes.hexbytes)"}},{"html_id":"stop(index:Int32|String=0,emergency:Bool=false)-instance-method","name":"stop","abstract":false,"args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"args_string":"(index : Int32 | String = 0, emergency : Bool = false)","args_html":"(index : Int32 | String = 0, emergency : Bool = false)","location":{"filename":"src/sony/camera/visca.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L227"},"def":{"name":"stop","args":[{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"emergency","default_value":"false","external_name":"emergency","restriction":"Bool"}],"visibility":"Public","body":"zoom(:stop)"}},{"html_id":"tilt_pos:UInt16-instance-method","name":"tilt_pos","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L38"},"def":{"name":"tilt_pos","return_type":"UInt16","visibility":"Public","body":"@tilt_pos"}},{"html_id":"zoom(direction:ZoomDirection,index:Int32|String=0)-instance-method","name":"zoom","doc":"As zoom is typically discreet we manually implement the analogue version\nSimple enough to overwrite this as required","summary":"

As zoom is typically discreet we manually implement the analogue version Simple enough to overwrite this as required

","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(direction : ZoomDirection, index : Int32 | String = 0)","args_html":"(direction : ZoomDirection, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L203"},"def":{"name":"zoom","args":[{"name":"direction","external_name":"direction","restriction":"ZoomDirection"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"speed_byte = case direction\nin .stop?\n schedule.in(500.milliseconds) do\n zoom?\n end\n 0_u8\nin .out?\n 32_u8 | @zoom_speed\nin .in?\n 48_u8 | @zoom_speed\nend\nsend_cmd(Bytes[4, 7, speed_byte], name: :zoom)\n"}},{"html_id":"zoom?-instance-method","name":"zoom?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L217"},"def":{"name":"zoom?","visibility":"Public","body":"send_inq(Bytes[4, 71], name: :zoom_query, priority: 0)"}},{"html_id":"zoom_raw:UInt16-instance-method","name":"zoom_raw","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L36"},"def":{"name":"zoom_raw","return_type":"UInt16","visibility":"Public","body":"@zoom_raw"}},{"html_id":"zoom_to(position:Float64,auto_focus:Bool=true,index:Int32|String=0)-instance-method","name":"zoom_to","doc":"Zooms to an absolute position","summary":"

Zooms to an absolute position

","abstract":false,"args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"args_string":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","args_html":"(position : Float64, auto_focus : Bool = true, index : Int32 | String = 0)","location":{"filename":"src/sony/camera/visca.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L194"},"def":{"name":"zoom_to","args":[{"name":"position","external_name":"position","restriction":"Float64"},{"name":"auto_focus","default_value":"true","external_name":"auto_focus","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"}],"visibility":"Public","body":"position = position.clamp(0.0, 100.0)\npercentage = position / 100.0\nzoom_value = (percentage * @zoom_max.to_f).to_u16\nbytes = \"0447#{encode_position(zoom_value)}\"\nsend_cmd(bytes.hexbytes, name: :zoom_to)\n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet","path":"Sony/Camera/VISCA/Packet.html","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Sony::Camera::VISCA::Packet]","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt16, onlyif: nil, verify: nil, value: nil, enum_type: Type}, {type: \"basic\", name: size, cls: UInt16, onlyif: nil, verify: nil, value: -> do\n payload.size.to_u16\nend}, {type: \"basic\", name: sequence, cls: UInt32, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: payload, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"},"doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":235,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L235"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"payload:Bytes-instance-method","name":"payload","abstract":false,"def":{"name":"payload","return_type":"Bytes","visibility":"Public","body":"@payload"}},{"html_id":"payload=(payload:Bytes)-instance-method","name":"payload=","abstract":false,"args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"args_string":"(payload : Bytes)","args_html":"(payload : Bytes)","def":{"name":"payload=","args":[{"name":"payload","external_name":"payload","restriction":"Bytes"}],"visibility":"Public","body":"@payload = payload"}},{"html_id":"sequence:UInt32-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt32","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt32)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"args_string":"(sequence : UInt32)","args_html":"(sequence : UInt32)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt32"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt16-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt16","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt16)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"args_string":"(size : UInt16)","args_html":"(size : UInt16)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt16"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:Type-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"Type","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Type)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Type"}],"args_string":"(type : Type)","args_html":"(type : Type)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Type"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","doc":"VISCA over IP packet layout","summary":"

VISCA over IP packet layout

","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/sony/camera/visca.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L234"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}}],"types":[{"html_id":"drivers/Sony/Camera/VISCA/Packet/Type","path":"Sony/Camera/VISCA/Packet/Type.html","kind":"enum","full_name":"Sony::Camera::VISCA::Packet::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/camera/visca.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L237"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Command","name":"Command","value":"256_u16"},{"id":"Inquiry","name":"Inquiry","value":"272_u16"},{"id":"Reply","name":"Reply","value":"273_u16"},{"id":"DeviceSetting","name":"DeviceSetting","value":"288_u16","doc":"VISCA device setting","summary":"

VISCA device setting

"},{"id":"DeviceControl","name":"DeviceControl","value":"512_u16","doc":"reset: 0x01\nerror: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)","summary":"

reset: 0x01 error: 0x0Fyy (yy = 01 : sequence number error, 02 : message error)

"},{"id":"DeviceReply","name":"DeviceReply","value":"513_u16","doc":"Acknowledge for reset","summary":"

Acknowledge for reset

"}],"namespace":{"html_id":"drivers/Sony/Camera/VISCA/Packet","kind":"class","full_name":"Sony::Camera::VISCA::Packet","name":"Packet"},"instance_methods":[{"html_id":"command?-instance-method","name":"command?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L238"},"def":{"name":"command?","visibility":"Public","body":"self == Command"}},{"html_id":"device_control?-instance-method","name":"device_control?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L246"},"def":{"name":"device_control?","visibility":"Public","body":"self == DeviceControl"}},{"html_id":"device_reply?-instance-method","name":"device_reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":249,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L249"},"def":{"name":"device_reply?","visibility":"Public","body":"self == DeviceReply"}},{"html_id":"device_setting?-instance-method","name":"device_setting?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L242"},"def":{"name":"device_setting?","visibility":"Public","body":"self == DeviceSetting"}},{"html_id":"inquiry?-instance-method","name":"inquiry?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":239,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L239"},"def":{"name":"inquiry?","visibility":"Public","body":"self == Inquiry"}},{"html_id":"reply?-instance-method","name":"reply?","abstract":false,"location":{"filename":"src/sony/camera/visca.cr","line_number":240,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L240"},"def":{"name":"reply?","visibility":"Public","body":"self == Reply"}}]}]},{"html_id":"drivers/Sony/Camera/VISCA/Presets","path":"Sony/Camera/VISCA/Presets.html","kind":"alias","full_name":"Sony::Camera::VISCA::Presets","name":"Presets","abstract":false,"locations":[{"filename":"src/sony/camera/visca.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/camera/visca.cr#L34"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, Tuple(UInt16, UInt16, Float64))","aliased_html":"Hash(String, {UInt16, UInt16, Float64})","const":false,"namespace":{"html_id":"drivers/Sony/Camera/VISCA","kind":"class","full_name":"Sony::Camera::VISCA","name":"VISCA"}}]}]},{"html_id":"drivers/Sony/Displays","path":"Sony/Displays.html","kind":"module","full_name":"Sony::Displays","name":"Displays","abstract":false,"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Displays/Bravia","path":"Sony/Displays/Bravia.html","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COMMANDS","name":"COMMANDS","value":"{ir_code: \"IRCC\", power: \"POWR\", volume: \"VOLU\", audio_mute: \"AMUT\", mute: \"PMUT\", channel: \"CHNN\", tv_input: \"ISRC\", input: \"INPT\", toggle_mute: \"TPMU\", pip: \"PIPI\", toggle_pip: \"TPIP\", position_pip: \"TPPP\", broadcast_address: \"BADR\", mac_address: \"MADR\"}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Displays","kind":"module","full_name":"Sony::Displays","name":"Displays"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":102,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L102"},"def":{"name":"audio_mute?","visibility":"Public","body":"query(Command::AudioMute, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L57"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(30.seconds, true) do\n do_poll\nend"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L63"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L126"},"def":{"name":"do_poll","visibility":"Public","body":"if self[:power]?\n input?\n mute?\n audio_mute?\n volume?\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L48"},"def":{"name":"input?","visibility":"Public","body":"query(Command::Input, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/displays/bravia.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L76"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"request(Command::Mute, state)\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L89"},"def":{"name":"mute?","visibility":"Public","body":"query(Command::Mute, priority: 0)"}},{"html_id":"mute_audio(state:Bool=true)-instance-method","name":"mute_audio","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool = true)","args_html":"(state : Bool = true)","location":{"filename":"src/sony/displays/bravia.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L93"},"def":{"name":"mute_audio","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::AudioMute, state)\naudio_mute?\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L52"},"def":{"name":"on_load","visibility":"Public","body":"self[:volume_min] = 0\nself[:volume_max] = 100\n"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/displays/bravia.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L67"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"request(Command::Power, state)\npower?\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L72"},"def":{"name":"power?","visibility":"Public","body":"query(Command::Power)"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/displays/bravia.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L147"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"parsed_data = convert_binary(data[3..6])\ncmd = Command.from_response?(parsed_data)\nif cmd.nil?\n return task.try(&.abort(\"unrecognised command: #{parsed_data}\"))\nend\nparam = data[7..-1]\nif param.first? == MessageType::Error.value\n return task.try(&.abort(\"error\"))\nend\ncase MessageType.from_value?(data[2])\nwhen MessageType::Answer\n update_status(cmd, param)\n task.try(&.success)\nwhen MessageType::Notify\n update_status(cmd, param)\nelse\n logger.debug do\n \"Unhandled device response: #{begin\n data[2].chr\n rescue\n data[2]\n end}\"\n end\n task.try(&.abort(\"Unhandled device response\"))\nend\n"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/displays/bravia.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L41"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"logger.debug do\n \"switching input to #{input}\"\nend\nrequest(Command::Input, input.to_param)\nself[:input] = input.to_s\ninput?\n"}},{"html_id":"unmute-instance-method","name":"unmute","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L85"},"def":{"name":"unmute","visibility":"Public","body":"mute(false)"}},{"html_id":"unmute_audio-instance-method","name":"unmute_audio","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L98"},"def":{"name":"unmute_audio","visibility":"Public","body":"mute_audio(false)"}},{"html_id":"volume(level:Int32|Float64)-instance-method","name":"volume","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"args_string":"(level : Int32 | Float64)","args_html":"(level : Int32 | Float64)","location":{"filename":"src/sony/displays/bravia.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L106"},"def":{"name":"volume","args":[{"name":"level","external_name":"level","restriction":"Int32 | Float64"}],"visibility":"Public","body":"level = (level.to_f.clamp(0.0, 100.0)).round_away.to_i\nrequest(Command::Volume, level)\nvolume?\n"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L112"},"def":{"name":"volume?","visibility":"Public","body":"query(Command::Volume, priority: 0)"}},{"html_id":"volume_down-instance-method","name":"volume_down","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L121"},"def":{"name":"volume_down","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume - 5.0)\n"}},{"html_id":"volume_up-instance-method","name":"volume_up","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L116"},"def":{"name":"volume_up","visibility":"Public","body":"current_volume = (status?(Float64, :volume)) || 50.0\nvolume(current_volume + 5.0)\n"}}],"types":[{"html_id":"drivers/Sony/Displays/Bravia/Command","path":"Sony/Displays/Bravia/Command.html","kind":"enum","full_name":"Sony::Displays::Bravia::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"IrCode","name":"IrCode","value":"0"},{"id":"Power","name":"Power","value":"1"},{"id":"Volume","name":"Volume","value":"2"},{"id":"AudioMute","name":"AudioMute","value":"3"},{"id":"Mute","name":"Mute","value":"4"},{"id":"Channel","name":"Channel","value":"5"},{"id":"TvInput","name":"TvInput","value":"6"},{"id":"Input","name":"Input","value":"7"},{"id":"ToggleMute","name":"ToggleMute","value":"8"},{"id":"Pip","name":"Pip","value":"9"},{"id":"TogglePip","name":"TogglePip","value":"10"},{"id":"PositionPip","name":"PositionPip","value":"11"},{"id":"BroadcastAddress","name":"BroadcastAddress","value":"12"},{"id":"MacAddress","name":"MacAddress","value":"13"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"class_methods":[{"html_id":"from_response?(message)-class-method","name":"from_response?","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"from_response?","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"case message\nwhen \"IRCC\"\n IrCode\nwhen \"POWR\"\n Power\nwhen \"VOLU\"\n Volume\nwhen \"AMUT\"\n AudioMute\nwhen \"PMUT\"\n Mute\nwhen \"CHNN\"\n Channel\nwhen \"ISRC\"\n TvInput\nwhen \"INPT\"\n Input\nwhen \"TPMU\"\n ToggleMute\nwhen \"PIPI\"\n Pip\nwhen \"TPIP\"\n TogglePip\nwhen \"TPPP\"\n PositionPip\nwhen \"BADR\"\n BroadcastAddress\nwhen \"MADR\"\n MacAddress\nend"}}],"instance_methods":[{"html_id":"audio_mute?-instance-method","name":"audio_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"audio_mute?","visibility":"Public","body":"self == AudioMute"}},{"html_id":"broadcast_address?-instance-method","name":"broadcast_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"broadcast_address?","visibility":"Public","body":"self == BroadcastAddress"}},{"html_id":"channel?-instance-method","name":"channel?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"channel?","visibility":"Public","body":"self == Channel"}},{"html_id":"function-instance-method","name":"function","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"function","visibility":"Public","body":"case self\nin IrCode\n \"IRCC\"\nin Power\n \"POWR\"\nin Volume\n \"VOLU\"\nin AudioMute\n \"AMUT\"\nin Mute\n \"PMUT\"\nin Channel\n \"CHNN\"\nin TvInput\n \"ISRC\"\nin Input\n \"INPT\"\nin ToggleMute\n \"TPMU\"\nin Pip\n \"PIPI\"\nin TogglePip\n \"TPIP\"\nin PositionPip\n \"TPPP\"\nin BroadcastAddress\n \"BADR\"\nin MacAddress\n \"MADR\"\nend"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"ir_code?-instance-method","name":"ir_code?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"ir_code?","visibility":"Public","body":"self == IrCode"}},{"html_id":"mac_address?-instance-method","name":"mac_address?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"mac_address?","visibility":"Public","body":"self == MacAddress"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"pip?-instance-method","name":"pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"pip?","visibility":"Public","body":"self == Pip"}},{"html_id":"position_pip?-instance-method","name":"position_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"position_pip?","visibility":"Public","body":"self == PositionPip"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"power?","visibility":"Public","body":"self == Power"}},{"html_id":"toggle_mute?-instance-method","name":"toggle_mute?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_mute?","visibility":"Public","body":"self == ToggleMute"}},{"html_id":"toggle_pip?-instance-method","name":"toggle_pip?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"toggle_pip?","visibility":"Public","body":"self == TogglePip"}},{"html_id":"tv_input?-instance-method","name":"tv_input?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"tv_input?","visibility":"Public","body":"self == TvInput"}},{"html_id":"volume?-instance-method","name":"volume?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L182"},"def":{"name":"volume?","visibility":"Public","body":"self == Volume"}}]},{"html_id":"drivers/Sony/Displays/Bravia/Input","path":"Sony/Displays/Bravia/Input.html","kind":"enum","full_name":"Sony::Displays::Bravia::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L20"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Tv0","name":"Tv0","value":"0_u32"},{"id":"Hdmi0","name":"Hdmi0","value":"100000000_u32"},{"id":"Mirror0","name":"Mirror0","value":"500000000_u32"},{"id":"Vga0","name":"Vga0","value":"600000000_u32"},{"id":"Tv1","name":"Tv1","value":"1_u32"},{"id":"Hdmi1","name":"Hdmi1","value":"100000001_u32"},{"id":"Mirror1","name":"Mirror1","value":"500000001_u32"},{"id":"Vga1","name":"Vga1","value":"600000001_u32"},{"id":"Tv2","name":"Tv2","value":"2_u32"},{"id":"Hdmi2","name":"Hdmi2","value":"100000002_u32"},{"id":"Mirror2","name":"Mirror2","value":"500000002_u32"},{"id":"Vga2","name":"Vga2","value":"600000002_u32"},{"id":"Tv3","name":"Tv3","value":"3_u32"},{"id":"Hdmi3","name":"Hdmi3","value":"100000003_u32"},{"id":"Mirror3","name":"Mirror3","value":"500000003_u32"},{"id":"Vga3","name":"Vga3","value":"600000003_u32"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"constructors":[{"html_id":"from_param(value:String):self-class-method","name":"from_param","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"}],"args_string":"(value : String) : self","args_html":"(value : String) : self","location":{"filename":"src/sony/displays/bravia.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L28"},"def":{"name":"from_param","args":[{"name":"value","external_name":"value","restriction":"String"}],"return_type":"self","visibility":"Public","body":"begin\n from_value(UInt32.new(value))\nrescue\n raise(\"Unknown enum #{self} value: #{value}\")\nend"}}],"instance_methods":[{"html_id":"hdmi0?-instance-method","name":"hdmi0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi0?","visibility":"Public","body":"self == Hdmi0"}},{"html_id":"hdmi1?-instance-method","name":"hdmi1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi1?","visibility":"Public","body":"self == Hdmi1"}},{"html_id":"hdmi2?-instance-method","name":"hdmi2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi2?","visibility":"Public","body":"self == Hdmi2"}},{"html_id":"hdmi3?-instance-method","name":"hdmi3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"hdmi3?","visibility":"Public","body":"self == Hdmi3"}},{"html_id":"mirror0?-instance-method","name":"mirror0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror0?","visibility":"Public","body":"self == Mirror0"}},{"html_id":"mirror1?-instance-method","name":"mirror1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror1?","visibility":"Public","body":"self == Mirror1"}},{"html_id":"mirror2?-instance-method","name":"mirror2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror2?","visibility":"Public","body":"self == Mirror2"}},{"html_id":"mirror3?-instance-method","name":"mirror3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"mirror3?","visibility":"Public","body":"self == Mirror3"}},{"html_id":"to_param:String-instance-method","name":"to_param","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L34"},"def":{"name":"to_param","return_type":"String","visibility":"Public","body":"value.to_s.rjust(5, '0')"}},{"html_id":"tv0?-instance-method","name":"tv0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv0?","visibility":"Public","body":"self == Tv0"}},{"html_id":"tv1?-instance-method","name":"tv1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv1?","visibility":"Public","body":"self == Tv1"}},{"html_id":"tv2?-instance-method","name":"tv2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv2?","visibility":"Public","body":"self == Tv2"}},{"html_id":"tv3?-instance-method","name":"tv3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"tv3?","visibility":"Public","body":"self == Tv3"}},{"html_id":"vga0?-instance-method","name":"vga0?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga0?","visibility":"Public","body":"self == Vga0"}},{"html_id":"vga1?-instance-method","name":"vga1?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga1?","visibility":"Public","body":"self == Vga1"}},{"html_id":"vga2?-instance-method","name":"vga2?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga2?","visibility":"Public","body":"self == Vga2"}},{"html_id":"vga3?-instance-method","name":"vga3?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L21"},"def":{"name":"vga3?","visibility":"Public","body":"self == Vga3"}}]},{"html_id":"drivers/Sony/Displays/Bravia/MessageType","path":"Sony/Displays/Bravia/MessageType.html","kind":"enum","full_name":"Sony::Displays::Bravia::MessageType","name":"MessageType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/displays/bravia.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Answer","name":"Answer","value":"65_u8"},{"id":"Control","name":"Control","value":"67_u8"},{"id":"Enquiry","name":"Enquiry","value":"69_u8"},{"id":"Notify","name":"Notify","value":"78_u8"},{"id":"Error","name":"Error","value":"70_u8"}],"namespace":{"html_id":"drivers/Sony/Displays/Bravia","kind":"class","full_name":"Sony::Displays::Bravia","name":"Bravia"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L136"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"control?-instance-method","name":"control?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L137"},"def":{"name":"control?","visibility":"Public","body":"self == Control"}},{"html_id":"control_character-instance-method","name":"control_character","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L142"},"def":{"name":"control_character","visibility":"Public","body":"value.chr"}},{"html_id":"enquiry?-instance-method","name":"enquiry?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L138"},"def":{"name":"enquiry?","visibility":"Public","body":"self == Enquiry"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L140"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"notify?-instance-method","name":"notify?","abstract":false,"location":{"filename":"src/sony/displays/bravia.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/displays/bravia.cr#L139"},"def":{"name":"notify?","visibility":"Public","body":"self == Notify"}}]}]}]},{"html_id":"drivers/Sony/Projector","path":"Sony/Projector.html","kind":"module","full_name":"Sony::Projector","name":"Projector","abstract":false,"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Sony","kind":"module","full_name":"Sony","name":"Sony"},"types":[{"html_id":"drivers/Sony/Projector/Fh","path":"Sony/Projector/Fh.html","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"INPUTS_LOOKUP","name":"INPUTS_LOOKUP","value":"{\"hdmi1\" => Inputs::HDMI, \"dvi1\" => Inputs::DVI, \"video1\" => Inputs::Video, \"svideo1\" => Inputs::SVideo, \"rgb1\" => Inputs::RGB, \"hdbaset1\" => Inputs::HDBaseT, \"input_a\" => Inputs::InputA, \"input_b\" => Inputs::InputB, \"input_c\" => Inputs::InputC, \"input_d\" => Inputs::InputD, \"input_e\" => Inputs::InputE}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(val:Int32)-instance-method","name":"brightness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"brightness\", val.clamp(0, 100))"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"brightness?","visibility":"Public","body":"get(\"brightness\")"}},{"html_id":"color(val:Int32)-instance-method","name":"color","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"color","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"color\", val.clamp(0, 100))"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"color?","visibility":"Public","body":"get(\"color\")"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L48"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(val:Int32)-instance-method","name":"contrast","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"contrast\", val.clamp(0, 100))"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"contrast?","visibility":"Public","body":"get(\"contrast\")"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L52"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(val:Int32)-instance-method","name":"hue","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"hue","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"hue\", val.clamp(0, 100))"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"hue?","visibility":"Public","body":"get(\"hue\")"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L99"},"def":{"name":"input?","visibility":"Public","body":"(get(\"input\")).get\nself[:input].as_s\n"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/fh.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L66"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"(set(\"blank\", state ? \"on\" : \"off\")).get\nself[:mute] = state\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L75"},"def":{"name":"mute?","visibility":"Public","body":"(get(\"blank\")).get\nself[:mute].as_bool\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L44"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(\"\\r\\n\")"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/fh.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L56"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"(set(\"power\", state ? \"on\" : \"off\")).get\nself[:power] = state\n"}},{"html_id":"power?-instance-method","name":"power?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L61"},"def":{"name":"power?","visibility":"Public","body":"get(\"power_status\")\n!!self[:power]?.try(&.as_bool)\n"}},{"html_id":"received(response,task)-instance-method","name":"received","abstract":false,"args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(response, task)","args_html":"(response, task)","location":{"filename":"src/sony/projector/fh.cr","line_number":120,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L120"},"def":{"name":"received","args":[{"name":"response","external_name":"response","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"process_response(response, task)"}},{"html_id":"sharpness(val:Int32)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Int32"}],"args_string":"(val : Int32)","args_html":"(val : Int32)","location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness","args":[{"name":"val","external_name":"val","restriction":"Int32"}],"visibility":"Public","body":"set(\"sharpness\", val.clamp(0, 100))"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L104"},"def":{"name":"sharpness?","visibility":"Public","body":"get(\"sharpness\")"}},{"html_id":"switch_to(input:Inputs)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"args_string":"(input : Inputs)","args_html":"(input : Inputs)","location":{"filename":"src/sony/projector/fh.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L94"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Inputs"}],"visibility":"Public","body":"(set(\"input\", input.to_message)).get\nself[:input] = input.readable\n"}}],"types":[{"html_id":"drivers/Sony/Projector/Fh/Inputs","path":"Sony/Projector/Fh/Inputs.html","kind":"enum","full_name":"Sony::Projector::Fh::Inputs","name":"Inputs","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/fh.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L12"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"0"},{"id":"DVI","name":"DVI","value":"1"},{"id":"Video","name":"Video","value":"2"},{"id":"SVideo","name":"SVideo","value":"3"},{"id":"RGB","name":"RGB","value":"4"},{"id":"HDBaseT","name":"HDBaseT","value":"5"},{"id":"InputA","name":"InputA","value":"6"},{"id":"InputB","name":"InputB","value":"7"},{"id":"InputC","name":"InputC","value":"8"},{"id":"InputD","name":"InputD","value":"9"},{"id":"InputE","name":"InputE","value":"10"}],"namespace":{"html_id":"drivers/Sony/Projector/Fh","kind":"class","full_name":"Sony::Projector::Fh","name":"Fh"},"instance_methods":[{"html_id":"dvi?-instance-method","name":"dvi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L14"},"def":{"name":"dvi?","visibility":"Public","body":"self == DVI"}},{"html_id":"hd_base_t?-instance-method","name":"hd_base_t?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L18"},"def":{"name":"hd_base_t?","visibility":"Public","body":"self == HDBaseT"}},{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L13"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L19"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L20"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L21"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L22"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"input_e?-instance-method","name":"input_e?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L23"},"def":{"name":"input_e?","visibility":"Public","body":"self == InputE"}},{"html_id":"readable:String-instance-method","name":"readable","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L34"},"def":{"name":"readable","return_type":"String","visibility":"Public","body":"to_s.downcase"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L17"},"def":{"name":"rgb?","visibility":"Public","body":"self == RGB"}},{"html_id":"s_video?-instance-method","name":"s_video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L16"},"def":{"name":"s_video?","visibility":"Public","body":"self == SVideo"}},{"html_id":"to_message:String-instance-method","name":"to_message","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L25"},"def":{"name":"to_message","return_type":"String","visibility":"Public","body":"case self\nin HDMI, DVI, Video, SVideo, RGB, HDBaseT\n to_s.downcase + \"1\"\nin InputA, InputB, InputC, InputD, InputE\n to_s.underscore\nend"}},{"html_id":"video?-instance-method","name":"video?","abstract":false,"location":{"filename":"src/sony/projector/fh.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/fh.cr#L15"},"def":{"name":"video?","visibility":"Public","body":"self == Video"}}]}]},{"html_id":"drivers/Sony/Projector/PjTalk","path":"Sony/Projector/PjTalk.html","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CATEGORY","name":"ERROR_CATEGORY","value":"{1_u8 => :item_error, 2_u8 => :community_error, 16_u8 => :request_error, 32_u8 => :network_error, 240_u8 => :comms_error, 241_u8 => :ram_error}"},{"id":"ERRORS","name":"ERRORS","value":"{item_error: {1_u8 => \"Invalid Item\", 2_u8 => \"Invalid Item Request\", 3_u8 => \"Invalid Length\", 4_u8 => \"Invalid Data\", 17_u8 => \"Short Data\", 128_u8 => \"Not Applicable Item\"}, community_error: {1_u8 => \"Different Community\"}, request_error: {1_u8 => \"Invalid Version\", 2_u8 => \"Invalid Category\", 3_u8 => \"Invalid Request\", 17_u8 => \"Short Header\", 18_u8 => \"Short Community\", 19_u8 => \"Short Command\"}, network_error: {1_u8 => \"Timeout\"}, comms_error: {1_u8 => \"Timeout\", 16_u8 => \"Check Sum Error\", 32_u8 => \"Framing Error\", 48_u8 => \"Parity Error\", 64_u8 => \"Over Run Error\", 80_u8 => \"Other Comm Error\", 240_u8 => \"Unknown Response\"}, ram_error: {16_u8 => \"Read Error\", 32_u8 => \"Write Error\"}, unknown: {} of UInt8 => String}"},{"id":"METHODS","name":"METHODS","value":"[:contrast, :brightness, :color, :hue, :sharpness]"},{"id":"PJTALK_HEADER","name":"PJTALK_HEADER","value":"Bytes[2, 10]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(:get, :brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"color?","visibility":"Public","body":"do_send(:get, :color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L39"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(:get, :contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L43"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L177"},"def":{"name":"do_poll","visibility":"Public","body":"if power?\n input?\n mute?\n do_send(:get, :error_status, priority: 0)\n lamp_time?\nend"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"hue?","visibility":"Public","body":"do_send(:get, :hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L93"},"def":{"name":"input?","visibility":"Public","body":"do_send(:get, :input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L97"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(:get, :lamp_timer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L101"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(:set, :mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":110,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L110"},"def":{"name":"mute?","visibility":"Public","body":"do_send(:get, :mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.to_slice\n bytes.size < 10 ? -1 : 10 + bytes[9]\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L35"},"def":{"name":"on_update","visibility":"Public","body":"@community = (setting?(String, :community)) || \"SONY\""}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L47"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(:set, :power_on, name: :power)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(:set, :power_off, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L61"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(:get, :power_status, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L191"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\nresponse_status = ResponseStatus.from_value(data[6])\npjt_command = Command.from_bytes(data[7..8])\npjt_length = data[9]\npjt_data = pjt_length > 0 ? data[10..-1] : Bytes.new(0)\nif response_status.no_good?\n category = ERROR_CATEGORY[pjt_data[0]]? || (:unknown)\n message = ERRORS[category][pjt_data[1]]? || \"unknown: category #{pjt_data[1].to_s(16)}, reason #{pjt_data[1].to_s(16)}\"\n self[:last_error] = \"#{category}: #{message}\"\n logger.debug do\n \"Command #{pjt_command} failed with #{category}: #{message}\"\n end\n return task.try(&.abort)\nend\ncase pjt_command\nwhen .power_on?\n self[:power] = true\nwhen .power_off?\n self[:power] = false\nwhen .lamp_timer?\n self[:lamp_usage] = (pjt_data[-2].to_u16 << 8) + pjt_data[-1]\nwhen .power_status?\n case pjt_data[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\nwhen .mute?\n self[:mute] = pjt_data[-1] == 1\nwhen .input?\n self[:input] = Input.from_bytes(pjt_data)\nwhen .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[pjt_command.to_s.downcase] = pjt_data[-1]\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L123"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(:set, :sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":116,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L116"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(:get, :sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L86"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(:set, :input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/PjTalk/Command","path":"Sony/Projector/PjTalk/Command.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L130"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":148,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L148"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L138"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L139"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L137"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L135"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L140"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L133"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L142"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L134"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L132"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":131,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L131"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L136"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L141"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L144"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/CommandType","path":"Sony/Projector/PjTalk/CommandType.html","kind":"enum","full_name":"Sony::Projector::PjTalk::CommandType","name":"CommandType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L153"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L155"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L154"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/Input","path":"Sony/Projector/PjTalk/Input.html","kind":"enum","full_name":"Sony::Projector::PjTalk::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L66"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/pj_talk.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L79"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L67"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L68"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L69"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L70"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L71"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L73"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L75"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L72"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/PjTalk/ResponseStatus","path":"Sony/Projector/PjTalk/ResponseStatus.html","kind":"enum","full_name":"Sony::Projector::PjTalk::ResponseStatus","name":"ResponseStatus","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/pj_talk.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L186"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"NoGood","name":"NoGood","value":"0_u8"},{"id":"Okay","name":"Okay","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/PjTalk","kind":"class","full_name":"Sony::Projector::PjTalk","name":"PjTalk"},"instance_methods":[{"html_id":"no_good?-instance-method","name":"no_good?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L187"},"def":{"name":"no_good?","visibility":"Public","body":"self == NoGood"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/sony/projector/pj_talk.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/pj_talk.cr#L188"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Sony/Projector/SerialControl","path":"Sony/Projector/SerialControl.html","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/VideoMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::VideoMuteable","name":"VideoMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/AudioMuteable","kind":"module","full_name":"PlaceOS::Driver::Interface::AudioMuteable","name":"AudioMuteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"DELIMITER","name":"DELIMITER","value":"154_u8"},{"id":"ERRORS","name":"ERRORS","value":"{0 => \"No Error\", 1 => \"Lamp Error\", 2 => \"Fan Error\", 4 => \"Cover Error\", 8 => \"Temperature Error\", 16 => \"D5V Error\", 32 => \"Power Error\", 64 => \"Warning Error\", 128 => \"NVM Data ERROR\"}"},{"id":"INDICATOR","name":"INDICATOR","value":"169_u8"},{"id":"METHODS","name":"METHODS","value":"[\"Contrast\", \"Brightness\", \"Color\", \"Hue\", \"Sharpness\"]"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/InputSelection","kind":"module","full_name":"PlaceOS::Driver::Interface::InputSelection","name":"InputSelection"},{"html_id":"drivers/PlaceOS/Driver/Interface/Muteable","kind":"module","full_name":"PlaceOS::Driver::Interface::Muteable","name":"Muteable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Powerable","kind":"module","full_name":"PlaceOS::Driver::Interface::Powerable","name":"Powerable"}],"namespace":{"html_id":"drivers/Sony/Projector","kind":"module","full_name":"Sony::Projector","name":"Projector"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"brightness(value:UInt8)-instance-method","name":"brightness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"brightness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Brightness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"brightness?","visibility":"Public","body":"do_send(Type::Get, Command::Brightness, priority: 0)"}},{"html_id":"color(value:UInt8)-instance-method","name":"color","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"color","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Color, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"color?","visibility":"Public","body":"do_send(Type::Get, Command::Color, priority: 0)"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L22"},"def":{"name":"connected","visibility":"Public","body":"schedule.every(60.seconds) do\n do_poll\nend"}},{"html_id":"contrast(value:UInt8)-instance-method","name":"contrast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"contrast","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Contrast, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"contrast?","visibility":"Public","body":"do_send(Type::Get, Command::Contrast, priority: 0)"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L26"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"hue(value:UInt8)-instance-method","name":"hue","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"hue","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Hue, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"hue?","visibility":"Public","body":"do_send(Type::Get, Command::Hue, priority: 0)"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L77"},"def":{"name":"input?","visibility":"Public","body":"do_send(Type::Get, Command::Input, priority: 0)"}},{"html_id":"lamp_time?-instance-method","name":"lamp_time?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L81"},"def":{"name":"lamp_time?","visibility":"Public","body":"do_send(Type::Get, Command::LampTimer, priority: 0)"}},{"html_id":"mute(state:Bool=true,index:Int32|String=0,layer:MuteLayer=MuteLayer::AudioVideo)-instance-method","name":"mute","doc":"When implementing muteable, these should be the preferred defaults","summary":"

When implementing muteable, these should be the preferred defaults

","abstract":false,"args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"args_string":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","args_html":"(state : Bool = true, index : Int32 | String = 0, layer : MuteLayer = MuteLayer::AudioVideo)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L85"},"def":{"name":"mute","args":[{"name":"state","default_value":"true","external_name":"state","restriction":"Bool"},{"name":"index","default_value":"0","external_name":"index","restriction":"Int32 | String"},{"name":"layer","default_value":"MuteLayer::AudioVideo","external_name":"layer","restriction":"MuteLayer"}],"visibility":"Public","body":"do_send(Type::Set, Command::Mute, Bytes[0, state ? 1 : 0])\nmute?\n"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L94"},"def":{"name":"mute?","visibility":"Public","body":"do_send(Type::Get, Command::Mute, priority: 0)"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L18"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new(Bytes[DELIMITER])"}},{"html_id":"power(state:Bool)-instance-method","name":"power","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L30"},"def":{"name":"power","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"if state\n logger.debug do\n \"requested to power on\"\n end\n do_send(Type::Set, Command::PowerOn, name: :power)\n do_send(Type::Set, Command::PowerOn, name: :power, delay: 3.seconds)\nelse\n logger.debug do\n \"requested to power off\"\n end\n do_send(Type::Set, Command::PowerOff, name: :power, delay: 3.seconds)\nend\npower?(priority: 50)\n"}},{"html_id":"power?(priority:Int32=0,**options)-instance-method","name":"power?","abstract":false,"args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"args_string":"(priority : Int32 = 0, **options)","args_html":"(priority : Int32 = 0, **options)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L45"},"def":{"name":"power?","args":[{"name":"priority","default_value":"0","external_name":"priority","restriction":"Int32"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"(do_send(Type::Get, Command::PowerStatus, **options, priority: priority)).get\n!!self[:power].try(&.as_bool)\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L177"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"sony proj sent: 0x#{data.hexstring}\"\nend\ncmd = data[1..2]\ntype = data[3]\nresp = data[4..5]\nchecksum = data[1..5].reduce do |a, b|\n a = a | b\nend\nif data[6] == checksum\nelse\n return task.try(&.abort(\"Checksum should be 0x#{checksum.to_s(base: 16, upcase: true)}\"))\nend\nif type == 3\n if cmd == Bytes[0, 0]\n return task.try(&.success)\n else\n return task.try(&.abort(\"Command failed with 0x#{cmd.join(&.to_s(base: 16, upcase: true))}\"))\n end\nelse\n case command = Command.from_bytes(cmd)\n when .power_on?\n self[:power] = true\n when .power_off?\n self[:power] = false\n when .lamp_timer?\n self[:lamp_usage] = (resp[-2].to_u16 << 8) + resp[-1]\n when .power_status?\n case resp[-1]\n when 0, 8\n self[:warming] = self[:cooling] = self[:power] = false\n when 1, 2\n self[:cooling] = false\n self[:warming] = self[:power] = true\n when 3\n self[:power] = true\n self[:warming] = self[:cooling] = false\n when 4, 5, 6, 7\n self[:cooling] = true\n self[:warming] = self[:power] = false\n end\n if self[:warming] || self[:cooling]\n schedule.in(5.seconds) do\n power?\n end\n end\n when .mute?\n self[:mute] = resp[-1] == 1\n when .input?\n self[:input] = Input.from_bytes(resp)\n when .contrast?, .brightness?, color?, .hue?, .sharpness?\n self[command.to_s.downcase] = resp[-1]\n end\nend\ntask.try(&.success)\n"}},{"html_id":"sharpness(value:UInt8)-instance-method","name":"sharpness","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":107,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L107"},"def":{"name":"sharpness","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"do_send(Type::Set, Command::Sharpness, Bytes[0, value.clamp(0, 100)], priority: 0)"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L100"},"def":{"name":"sharpness?","visibility":"Public","body":"do_send(Type::Get, Command::Sharpness, priority: 0)"}},{"html_id":"switch_to(input:Input)-instance-method","name":"switch_to","doc":"Switches all outputs to the requested input\nSpecial case `switch_to 0` should mute all the outputs, if supported","summary":"

Switches all outputs to the requested input Special case switch_to 0 should mute all the outputs, if supported

","abstract":false,"args":[{"name":"input","external_name":"input","restriction":"Input"}],"args_string":"(input : Input)","args_html":"(input : Input)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L70"},"def":{"name":"switch_to","args":[{"name":"input","external_name":"input","restriction":"Input"}],"visibility":"Public","body":"do_send(Type::Set, Command::Input, input.to_bytes)\nlogger.debug do\n \"requested to switch to: #{input}\"\nend\ninput?\n"}}],"types":[{"html_id":"drivers/Sony/Projector/SerialControl/Command","path":"Sony/Projector/SerialControl/Command.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":135,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L135"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PowerOn","name":"PowerOn","value":"5934"},{"id":"PowerOff","name":"PowerOff","value":"5935"},{"id":"Input","name":"Input","value":"1"},{"id":"Mute","name":"Mute","value":"48"},{"id":"ErrorStatus","name":"ErrorStatus","value":"257"},{"id":"PowerStatus","name":"PowerStatus","value":"258"},{"id":"Contrast","name":"Contrast","value":"16"},{"id":"Brightness","name":"Brightness","value":"17"},{"id":"Color","name":"Color","value":"18"},{"id":"Hue","name":"Hue","value":"19"},{"id":"Sharpness","name":"Sharpness","value":"20"},{"id":"LampTimer","name":"LampTimer","value":"275"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":153,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L153"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Command.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"brightness?-instance-method","name":"brightness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":143,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L143"},"def":{"name":"brightness?","visibility":"Public","body":"self == Brightness"}},{"html_id":"color?-instance-method","name":"color?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L144"},"def":{"name":"color?","visibility":"Public","body":"self == Color"}},{"html_id":"contrast?-instance-method","name":"contrast?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":142,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L142"},"def":{"name":"contrast?","visibility":"Public","body":"self == Contrast"}},{"html_id":"error_status?-instance-method","name":"error_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L140"},"def":{"name":"error_status?","visibility":"Public","body":"self == ErrorStatus"}},{"html_id":"hue?-instance-method","name":"hue?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L145"},"def":{"name":"hue?","visibility":"Public","body":"self == Hue"}},{"html_id":"input?-instance-method","name":"input?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L138"},"def":{"name":"input?","visibility":"Public","body":"self == Input"}},{"html_id":"lamp_timer?-instance-method","name":"lamp_timer?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":147,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L147"},"def":{"name":"lamp_timer?","visibility":"Public","body":"self == LampTimer"}},{"html_id":"mute?-instance-method","name":"mute?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":139,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L139"},"def":{"name":"mute?","visibility":"Public","body":"self == Mute"}},{"html_id":"power_off?-instance-method","name":"power_off?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L137"},"def":{"name":"power_off?","visibility":"Public","body":"self == PowerOff"}},{"html_id":"power_on?-instance-method","name":"power_on?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L136"},"def":{"name":"power_on?","visibility":"Public","body":"self == PowerOn"}},{"html_id":"power_status?-instance-method","name":"power_status?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L141"},"def":{"name":"power_status?","visibility":"Public","body":"self == PowerStatus"}},{"html_id":"sharpness?-instance-method","name":"sharpness?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L146"},"def":{"name":"sharpness?","visibility":"Public","body":"self == Sharpness"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L149"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Input","path":"Sony/Projector/SerialControl/Input.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Input","name":"Input","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L50"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"HDMI","name":"HDMI","value":"3"},{"id":"InputA","name":"InputA","value":"2"},{"id":"InputB","name":"InputB","value":"3"},{"id":"InputC","name":"InputC","value":"4"},{"id":"InputD","name":"InputD","value":"5"},{"id":"USB","name":"USB","value":"6"},{"id":"Network","name":"Network","value":"7"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"class_methods":[{"html_id":"from_bytes(b:Bytes)-class-method","name":"from_bytes","abstract":false,"args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"args_string":"(b : Bytes)","args_html":"(b : Bytes)","location":{"filename":"src/sony/projector/serial_control.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L63"},"def":{"name":"from_bytes","args":[{"name":"b","external_name":"b","restriction":"Bytes"}],"visibility":"Public","body":"Input.from_value((b[0].to_u16 << 8) + b[1])"}}],"instance_methods":[{"html_id":"hdmi?-instance-method","name":"hdmi?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L51"},"def":{"name":"hdmi?","visibility":"Public","body":"self == HDMI"}},{"html_id":"input_a?-instance-method","name":"input_a?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L52"},"def":{"name":"input_a?","visibility":"Public","body":"self == InputA"}},{"html_id":"input_b?-instance-method","name":"input_b?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L53"},"def":{"name":"input_b?","visibility":"Public","body":"self == InputB"}},{"html_id":"input_c?-instance-method","name":"input_c?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L54"},"def":{"name":"input_c?","visibility":"Public","body":"self == InputC"}},{"html_id":"input_d?-instance-method","name":"input_d?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L55"},"def":{"name":"input_d?","visibility":"Public","body":"self == InputD"}},{"html_id":"network?-instance-method","name":"network?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L57"},"def":{"name":"network?","visibility":"Public","body":"self == Network"}},{"html_id":"to_bytes:Bytes-instance-method","name":"to_bytes","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L59"},"def":{"name":"to_bytes","return_type":"Bytes","visibility":"Public","body":"Bytes[self.value >> 8, self.value & 255]"}},{"html_id":"usb?-instance-method","name":"usb?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L56"},"def":{"name":"usb?","visibility":"Public","body":"self == USB"}}]},{"html_id":"drivers/Sony/Projector/SerialControl/Type","path":"Sony/Projector/SerialControl/Type.html","kind":"enum","full_name":"Sony::Projector::SerialControl::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/sony/projector/serial_control.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L158"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0_u8"},{"id":"Get","name":"Get","value":"1_u8"}],"namespace":{"html_id":"drivers/Sony/Projector/SerialControl","kind":"class","full_name":"Sony::Projector::SerialControl","name":"SerialControl"},"instance_methods":[{"html_id":"get?-instance-method","name":"get?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":160,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L160"},"def":{"name":"get?","visibility":"Public","body":"self == Get"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/sony/projector/serial_control.cr","line_number":159,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/sony/projector/serial_control.cr#L159"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]}]}]}]},{"html_id":"drivers/Steinel","path":"Steinel.html","kind":"module","full_name":"Steinel","name":"Steinel","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Steinel/HPD2","path":"Steinel/HPD2.html","kind":"class","full_name":"Steinel::HPD2","name":"HPD2","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{illuminance: SensorType::Illuminance, temperature: SensorType::Temperature, humidity: SensorType::Humidity, presence: SensorType::Presence, people: SensorType::PeopleCount, illuminance_zones: SensorType::Illuminance, presence_zones: SensorType::Presence, people_zones: SensorType::PeopleCount}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Steinel","kind":"module","full_name":"Steinel","name":"Steinel"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"get_status-instance-method","name":"get_status","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L98"},"def":{"name":"get_status","visibility":"Public","body":"response = get(\"/api/sensorstatus.php\")\nlogger.debug do\n \"received #{response.body}\"\nend\nif response.success?\n status = SensorStatus.from_json(response.body.not_nil!)\n time = Time.utc.to_unix\n mod_id = module_id\n humidity = Interface::Sensor::Detail.new(SensorType::Humidity, status.humidity.to_f, time, @mac, \"humidity\", \"Humidity\", module_id: mod_id, binding: \"humidity\")\n self[:humidity] = status.humidity.to_f\n temperature = Interface::Sensor::Detail.new(SensorType::Temperature, status.temperature.to_f, time, @mac, \"temperature\", \"Temperature\", module_id: mod_id, binding: \"temperature\", unit: \"Cel\")\n self[:temperature] = status.temperature.to_f\n pres = status.person_presence.zero? ? 0.0 : 1.0\n presence = Interface::Sensor::Detail.new(SensorType::Presence, pres, time, @mac, \"presence\", \"Person Presence\", module_id: mod_id, binding: \"presence\")\n self[:presence] = pres\n people = Interface::Sensor::Detail.new(SensorType::PeopleCount, status.detected_persons.to_f, time, @mac, \"people\", \"Detected Persons\", module_id: mod_id, binding: \"people\")\n self[:people] = status.detected_persons\n illuminance = Interface::Sensor::Detail.new(SensorType::Illuminance, status.global_illuminance_lux, time, @mac, \"illuminance\", \"Illuminance\", module_id: mod_id, binding: \"illuminance\", unit: \"lx\")\n self[:illuminance] = status.global_illuminance_lux\n self[:presence_zones] = status.person_presence_zone.map do |value|\n value.zero? ? 0.0 : 1.0\n end\n presence_zones = status.person_presence_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Presence, value.zero? ? 0.0 : 1.0, time, @mac, \"presence-#{index}\", \"Person Presence in Zone#{index}\")\n end\n self[:people_zones] = status.detected_persons_zone\n people_zones = status.detected_persons_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::PeopleCount, value.to_f, time, @mac, \"people-#{index}\", \"Detected People in Zone#{index}\")\n end\n self[:illuminance_zones] = status.lux_zone\n illuminance_zones = status.lux_zone.map_with_index do |value, index|\n Interface::Sensor::Detail.new(SensorType::Illuminance, value, time, @mac, \"illuminance-#{index}\", \"Illuminance in Zone#{index}\", unit: \"lx\")\n end\n @state = {humidity: humidity, temperature: temperature, presence: presence, people: people, illuminance: illuminance, presence_zones: presence_zones, people_zones: people_zones, illuminance_zones: illuminance_zones}\n status\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L33"},"def":{"name":"on_update","visibility":"Public","body":"@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nschedule.every(5.seconds) do\n get_status\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/steinel/hpd2.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L38"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n case id\n when \"humidity\"\n state[:humidity]\n when \"temperature\"\n state[:temperature]\n when \"presence\"\n state[:presence]\n when \"people\"\n state[:people]\n when \"illuminance\"\n state[:illuminance]\n end\n else\n if index = index_str.to_i?\n case id\n when \"presence\"\n state[:presence_zones][index]?\n when \"people\"\n state[:people_zones][index]?\n when \"illuminance\"\n state[:illuminance_zones][index]?\n end\n end\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/steinel/hpd2.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L83"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return state.values.to_a.flatten\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Interface::Sensor::Detail | Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << state[key]\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}},{"html_id":"state:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))-instance-method","name":"state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L22"},"def":{"name":"state","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail))","visibility":"Public","body":"if (__temp_1 = @state).nil?\n ::raise(::NilAssertionError.new(\"Steinel::HPD2#state cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"state?:NamedTuple(illuminance:Interface::Sensor::Detail,temperature:Interface::Sensor::Detail,humidity:Interface::Sensor::Detail,presence:Interface::Sensor::Detail,people:Interface::Sensor::Detail,illuminance_zones:Array(Interface::Sensor::Detail),presence_zones:Array(Interface::Sensor::Detail),people_zones:Array(Interface::Sensor::Detail))|Nil-instance-method","name":"state?","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L22"},"def":{"name":"state?","return_type":"NamedTuple(illuminance: Interface::Sensor::Detail, temperature: Interface::Sensor::Detail, humidity: Interface::Sensor::Detail, presence: Interface::Sensor::Detail, people: Interface::Sensor::Detail, illuminance_zones: Array(Interface::Sensor::Detail), presence_zones: Array(Interface::Sensor::Detail), people_zones: Array(Interface::Sensor::Detail)) | ::Nil","visibility":"Public","body":"@state"}}],"types":[{"html_id":"drivers/Steinel/HPD2/SensorStatus","path":"Steinel/HPD2/SensorStatus.html","kind":"class","full_name":"Steinel::HPD2::SensorStatus","name":"SensorStatus","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/steinel/hpd2.cr","line_number":151,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L151"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/steinel/hpd2.cr","line_number":152,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L152"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"app_version:String-instance-method","name":"app_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version","return_type":"String","visibility":"Public","body":"@app_version"}},{"html_id":"app_version=(app_version:String)-instance-method","name":"app_version=","abstract":false,"args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"args_string":"(app_version : String)","args_html":"(app_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":155,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L155"},"def":{"name":"app_version=","args":[{"name":"app_version","external_name":"app_version","restriction":"String"}],"visibility":"Public","body":"@app_version = app_version"}},{"html_id":"arm_sensor_cpu_usage:String-instance-method","name":"arm_sensor_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage","return_type":"String","visibility":"Public","body":"@arm_sensor_cpu_usage"}},{"html_id":"arm_sensor_cpu_usage=(arm_sensor_cpu_usage:String)-instance-method","name":"arm_sensor_cpu_usage=","abstract":false,"args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"args_string":"(arm_sensor_cpu_usage : String)","args_html":"(arm_sensor_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":218,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L218"},"def":{"name":"arm_sensor_cpu_usage=","args":[{"name":"arm_sensor_cpu_usage","external_name":"arm_sensor_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@arm_sensor_cpu_usage = arm_sensor_cpu_usage"}},{"html_id":"average_fps5:Float64-instance-method","name":"average_fps5","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5","return_type":"Float64","visibility":"Public","body":"@average_fps5"}},{"html_id":"average_fps50:Float64-instance-method","name":"average_fps50","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50","return_type":"Float64","visibility":"Public","body":"@average_fps50"}},{"html_id":"average_fps50=(average_fps50:Float64)-instance-method","name":"average_fps50=","abstract":false,"args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"args_string":"(average_fps50 : Float64)","args_html":"(average_fps50 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L182"},"def":{"name":"average_fps50=","args":[{"name":"average_fps50","external_name":"average_fps50","restriction":"Float64"}],"visibility":"Public","body":"@average_fps50 = average_fps50"}},{"html_id":"average_fps5=(average_fps5:Float64)-instance-method","name":"average_fps5=","abstract":false,"args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"args_string":"(average_fps5 : Float64)","args_html":"(average_fps5 : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L179"},"def":{"name":"average_fps5=","args":[{"name":"average_fps5","external_name":"average_fps5","restriction":"Float64"}],"visibility":"Public","body":"@average_fps5 = average_fps5"}},{"html_id":"detected_persons:Int32-instance-method","name":"detected_persons","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons","return_type":"Int32","visibility":"Public","body":"@detected_persons"}},{"html_id":"detected_persons=(detected_persons:Int32)-instance-method","name":"detected_persons=","abstract":false,"args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"args_string":"(detected_persons : Int32)","args_html":"(detected_persons : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L194"},"def":{"name":"detected_persons=","args":[{"name":"detected_persons","external_name":"detected_persons","restriction":"Int32"}],"visibility":"Public","body":"@detected_persons = detected_persons"}},{"html_id":"detected_persons_zone:Array(Int32)-instance-method","name":"detected_persons_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone","return_type":"Array(Int32)","visibility":"Public","body":"@detected_persons_zone"}},{"html_id":"detected_persons_zone=(detected_persons_zone:Array(Int32))-instance-method","name":"detected_persons_zone=","abstract":false,"args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"args_string":"(detected_persons_zone : Array(Int32))","args_html":"(detected_persons_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L200"},"def":{"name":"detected_persons_zone=","args":[{"name":"detected_persons_zone","external_name":"detected_persons_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@detected_persons_zone = detected_persons_zone"}},{"html_id":"detection_zones_present:Int32-instance-method","name":"detection_zones_present","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present","return_type":"Int32","visibility":"Public","body":"@detection_zones_present"}},{"html_id":"detection_zones_present=(detection_zones_present:Int32)-instance-method","name":"detection_zones_present=","abstract":false,"args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"args_string":"(detection_zones_present : Int32)","args_html":"(detection_zones_present : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":206,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L206"},"def":{"name":"detection_zones_present=","args":[{"name":"detection_zones_present","external_name":"detection_zones_present","restriction":"Int32"}],"visibility":"Public","body":"@detection_zones_present = detection_zones_present"}},{"html_id":"final:String-instance-method","name":"final","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L237"},"def":{"name":"final","return_type":"String","visibility":"Public","body":"@final"}},{"html_id":"final=(final:String)-instance-method","name":"final=","abstract":false,"args":[{"name":"final","external_name":"final","restriction":"String"}],"args_string":"(final : String)","args_html":"(final : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L237"},"def":{"name":"final=","args":[{"name":"final","external_name":"final","restriction":"String"}],"visibility":"Public","body":"@final = final"}},{"html_id":"fpga_version:String-instance-method","name":"fpga_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version","return_type":"String","visibility":"Public","body":"@fpga_version"}},{"html_id":"fpga_version=(fpga_version:String)-instance-method","name":"fpga_version=","abstract":false,"args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"args_string":"(fpga_version : String)","args_html":"(fpga_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":158,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L158"},"def":{"name":"fpga_version=","args":[{"name":"fpga_version","external_name":"fpga_version","restriction":"String"}],"visibility":"Public","body":"@fpga_version = fpga_version"}},{"html_id":"frame_processing_time_ms:Int32-instance-method","name":"frame_processing_time_ms","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms","return_type":"Int32","visibility":"Public","body":"@frame_processing_time_ms"}},{"html_id":"frame_processing_time_ms=(frame_processing_time_ms:Int32)-instance-method","name":"frame_processing_time_ms=","abstract":false,"args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"args_string":"(frame_processing_time_ms : Int32)","args_html":"(frame_processing_time_ms : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":176,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L176"},"def":{"name":"frame_processing_time_ms=","args":[{"name":"frame_processing_time_ms","external_name":"frame_processing_time_ms","restriction":"Int32"}],"visibility":"Public","body":"@frame_processing_time_ms = frame_processing_time_ms"}},{"html_id":"git_revision:String-instance-method","name":"git_revision","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision","return_type":"String","visibility":"Public","body":"@git_revision"}},{"html_id":"git_revision=(git_revision:String)-instance-method","name":"git_revision=","abstract":false,"args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"args_string":"(git_revision : String)","args_html":"(git_revision : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L170"},"def":{"name":"git_revision=","args":[{"name":"git_revision","external_name":"git_revision","restriction":"String"}],"visibility":"Public","body":"@git_revision = git_revision"}},{"html_id":"global_illuminance_lux:Float64-instance-method","name":"global_illuminance_lux","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux","return_type":"Float64","visibility":"Public","body":"@global_illuminance_lux"}},{"html_id":"global_illuminance_lux=(global_illuminance_lux:Float64)-instance-method","name":"global_illuminance_lux=","abstract":false,"args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"args_string":"(global_illuminance_lux : Float64)","args_html":"(global_illuminance_lux : Float64)","location":{"filename":"src/steinel/hpd2.cr","line_number":209,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L209"},"def":{"name":"global_illuminance_lux=","args":[{"name":"global_illuminance_lux","external_name":"global_illuminance_lux","restriction":"Float64"}],"visibility":"Public","body":"@global_illuminance_lux = global_illuminance_lux"}},{"html_id":"global_light_value:Int32-instance-method","name":"global_light_value","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value","return_type":"Int32","visibility":"Public","body":"@global_light_value"}},{"html_id":"global_light_value=(global_light_value:Int32)-instance-method","name":"global_light_value=","abstract":false,"args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"args_string":"(global_light_value : Int32)","args_html":"(global_light_value : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":215,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L215"},"def":{"name":"global_light_value=","args":[{"name":"global_light_value","external_name":"global_light_value","restriction":"Int32"}],"visibility":"Public","body":"@global_light_value = global_light_value"}},{"html_id":"humidity:String-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity","return_type":"String","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:String)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"args_string":"(humidity : String)","args_html":"(humidity : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":227,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L227"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"String"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"ir_led_on:Int32-instance-method","name":"ir_led_on","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on","return_type":"Int32","visibility":"Public","body":"@ir_led_on"}},{"html_id":"ir_led_on=(ir_led_on:Int32)-instance-method","name":"ir_led_on=","abstract":false,"args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"args_string":"(ir_led_on : Int32)","args_html":"(ir_led_on : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L191"},"def":{"name":"ir_led_on=","args":[{"name":"ir_led_on","external_name":"ir_led_on","restriction":"Int32"}],"visibility":"Public","body":"@ir_led_on = ir_led_on"}},{"html_id":"knx_address:String-instance-method","name":"knx_address","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address","return_type":"String","visibility":"Public","body":"@knx_address"}},{"html_id":"knx_address=(knx_address:String)-instance-method","name":"knx_address=","abstract":false,"args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"args_string":"(knx_address : String)","args_html":"(knx_address : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L167"},"def":{"name":"knx_address=","args":[{"name":"knx_address","external_name":"knx_address","restriction":"String"}],"visibility":"Public","body":"@knx_address = knx_address"}},{"html_id":"knx_detected:String-instance-method","name":"knx_detected","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected","return_type":"String","visibility":"Public","body":"@knx_detected"}},{"html_id":"knx_detected=(knx_detected:String)-instance-method","name":"knx_detected=","abstract":false,"args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"args_string":"(knx_detected : String)","args_html":"(knx_detected : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L230"},"def":{"name":"knx_detected=","args":[{"name":"knx_detected","external_name":"knx_detected","restriction":"String"}],"visibility":"Public","body":"@knx_detected = knx_detected"}},{"html_id":"knx_led_state:String-instance-method","name":"knx_led_state","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state","return_type":"String","visibility":"Public","body":"@knx_led_state"}},{"html_id":"knx_led_state=(knx_led_state:String)-instance-method","name":"knx_led_state=","abstract":false,"args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"args_string":"(knx_led_state : String)","args_html":"(knx_led_state : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":236,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L236"},"def":{"name":"knx_led_state=","args":[{"name":"knx_led_state","external_name":"knx_led_state","restriction":"String"}],"visibility":"Public","body":"@knx_led_state = knx_led_state"}},{"html_id":"knx_program_mode:String-instance-method","name":"knx_program_mode","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode","return_type":"String","visibility":"Public","body":"@knx_program_mode"}},{"html_id":"knx_program_mode=(knx_program_mode:String)-instance-method","name":"knx_program_mode=","abstract":false,"args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"args_string":"(knx_program_mode : String)","args_html":"(knx_program_mode : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L233"},"def":{"name":"knx_program_mode=","args":[{"name":"knx_program_mode","external_name":"knx_program_mode","restriction":"String"}],"visibility":"Public","body":"@knx_program_mode = knx_program_mode"}},{"html_id":"knx_sap_number:String-instance-method","name":"knx_sap_number","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number","return_type":"String","visibility":"Public","body":"@knx_sap_number"}},{"html_id":"knx_sap_number=(knx_sap_number:String)-instance-method","name":"knx_sap_number=","abstract":false,"args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"args_string":"(knx_sap_number : String)","args_html":"(knx_sap_number : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":161,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L161"},"def":{"name":"knx_sap_number=","args":[{"name":"knx_sap_number","external_name":"knx_sap_number","restriction":"String"}],"visibility":"Public","body":"@knx_sap_number = knx_sap_number"}},{"html_id":"knx_version:String-instance-method","name":"knx_version","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version","return_type":"String","visibility":"Public","body":"@knx_version"}},{"html_id":"knx_version=(knx_version:String)-instance-method","name":"knx_version=","abstract":false,"args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"args_string":"(knx_version : String)","args_html":"(knx_version : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":164,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L164"},"def":{"name":"knx_version=","args":[{"name":"knx_version","external_name":"knx_version","restriction":"String"}],"visibility":"Public","body":"@knx_version = knx_version"}},{"html_id":"lux_zone:Array(Float64)-instance-method","name":"lux_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone","return_type":"Array(Float64)","visibility":"Public","body":"@lux_zone"}},{"html_id":"lux_zone=(lux_zone:Array(Float64))-instance-method","name":"lux_zone=","abstract":false,"args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"args_string":"(lux_zone : Array(Float64))","args_html":"(lux_zone : Array(Float64))","location":{"filename":"src/steinel/hpd2.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L212"},"def":{"name":"lux_zone=","args":[{"name":"lux_zone","external_name":"lux_zone","restriction":"Array(Float64)"}],"visibility":"Public","body":"@lux_zone = lux_zone"}},{"html_id":"model_name:String-instance-method","name":"model_name","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name","return_type":"String","visibility":"Public","body":"@model_name"}},{"html_id":"model_name=(model_name:String)-instance-method","name":"model_name=","abstract":false,"args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"args_string":"(model_name : String)","args_html":"(model_name : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":173,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L173"},"def":{"name":"model_name=","args":[{"name":"model_name","external_name":"model_name","restriction":"String"}],"visibility":"Public","body":"@model_name = model_name"}},{"html_id":"person_presence:Int32-instance-method","name":"person_presence","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence","return_type":"Int32","visibility":"Public","body":"@person_presence"}},{"html_id":"person_presence=(person_presence:Int32)-instance-method","name":"person_presence=","abstract":false,"args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"args_string":"(person_presence : Int32)","args_html":"(person_presence : Int32)","location":{"filename":"src/steinel/hpd2.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L197"},"def":{"name":"person_presence=","args":[{"name":"person_presence","external_name":"person_presence","restriction":"Int32"}],"visibility":"Public","body":"@person_presence = person_presence"}},{"html_id":"person_presence_zone:Array(Int32)-instance-method","name":"person_presence_zone","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone","return_type":"Array(Int32)","visibility":"Public","body":"@person_presence_zone"}},{"html_id":"person_presence_zone=(person_presence_zone:Array(Int32))-instance-method","name":"person_presence_zone=","abstract":false,"args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"args_string":"(person_presence_zone : Array(Int32))","args_html":"(person_presence_zone : Array(Int32))","location":{"filename":"src/steinel/hpd2.cr","line_number":203,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L203"},"def":{"name":"person_presence_zone=","args":[{"name":"person_presence_zone","external_name":"person_presence_zone","restriction":"Array(Int32)"}],"visibility":"Public","body":"@person_presence_zone = person_presence_zone"}},{"html_id":"running_time:String-instance-method","name":"running_time","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time","return_type":"String","visibility":"Public","body":"@running_time"}},{"html_id":"running_time=(running_time:String)-instance-method","name":"running_time=","abstract":false,"args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"args_string":"(running_time : String)","args_html":"(running_time : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":185,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L185"},"def":{"name":"running_time=","args":[{"name":"running_time","external_name":"running_time","restriction":"String"}],"visibility":"Public","body":"@running_time = running_time"}},{"html_id":"temperature:String-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature","return_type":"String","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:String)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"args_string":"(temperature : String)","args_html":"(temperature : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":224,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L224"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"String"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"uptime:String-instance-method","name":"uptime","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime","return_type":"String","visibility":"Public","body":"@uptime"}},{"html_id":"uptime=(uptime:String)-instance-method","name":"uptime=","abstract":false,"args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"args_string":"(uptime : String)","args_html":"(uptime : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L188"},"def":{"name":"uptime=","args":[{"name":"uptime","external_name":"uptime","restriction":"String"}],"visibility":"Public","body":"@uptime = uptime"}},{"html_id":"web_server_cpu_usage:String-instance-method","name":"web_server_cpu_usage","abstract":false,"location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage","return_type":"String","visibility":"Public","body":"@web_server_cpu_usage"}},{"html_id":"web_server_cpu_usage=(web_server_cpu_usage:String)-instance-method","name":"web_server_cpu_usage=","abstract":false,"args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"args_string":"(web_server_cpu_usage : String)","args_html":"(web_server_cpu_usage : String)","location":{"filename":"src/steinel/hpd2.cr","line_number":221,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L221"},"def":{"name":"web_server_cpu_usage=","args":[{"name":"web_server_cpu_usage","external_name":"web_server_cpu_usage","restriction":"String"}],"visibility":"Public","body":"@web_server_cpu_usage = web_server_cpu_usage"}}]},{"html_id":"drivers/Steinel/HPD2/SensorType","path":"Steinel/HPD2/SensorType.html","kind":"alias","full_name":"Steinel::HPD2::SensorType","name":"SensorType","abstract":false,"locations":[{"filename":"src/steinel/hpd2.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/steinel/hpd2.cr#L67"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Sensor::SensorType","aliased_html":"PlaceOS::Driver::Interface::Sensor::SensorType","const":false,"namespace":{"html_id":"drivers/Steinel/HPD2","kind":"class","full_name":"Steinel::HPD2","name":"HPD2"}}]}]},{"html_id":"drivers/Stripe","path":"Stripe.html","kind":"module","full_name":"Stripe","name":"Stripe","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Stripe/API","path":"Stripe/API.html","kind":"class","full_name":"Stripe::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/stripe/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Stripe","kind":"module","full_name":"Stripe","name":"Stripe"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"add_payment_method(type:String,billing_details:Hash(String,String)|Nil=nil,metadata:Hash(String,String)|Nil=nil,acss_debit:Hash(String,String)|Nil=nil,affirm:Hash(String,String)|Nil=nil,afterpay_clearpay:Hash(String,String)|Nil=nil,alipay:Hash(String,String)|Nil=nil,au_becs_debit:Hash(String,String)|Nil=nil,bacs_debit:Hash(String,String)|Nil=nil,bancontact:Hash(String,String)|Nil=nil,blik:Hash(String,String)|Nil=nil,boleto:Hash(String,String)|Nil=nil,card:Hash(String,String)|Nil=nil,customer_balance:Hash(String,String)|Nil=nil,eps:Hash(String,String)|Nil=nil,fpx:Hash(String,String)|Nil=nil,giropay:Hash(String,String)|Nil=nil,ideal:Hash(String,String)|Nil=nil,interac_present:Hash(String,String)|Nil=nil,klarna:Hash(String,String)|Nil=nil,konbini:Hash(String,String)|Nil=nil,link:Hash(String,String)|Nil=nil,oxxo:Hash(String,String)|Nil=nil,p24:Hash(String,String)|Nil=nil,paynow:Hash(String,String)|Nil=nil,promptpay:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,sepa_debit:Hash(String,String)|Nil=nil,sofort:Hash(String,String)|Nil=nil,us_bank_account:Hash(String,String)|Nil=nil,wechat_pay:Hash(String,String)|Nil=nil)-instance-method","name":"add_payment_method","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","args_html":"(type : String, billing_details : Hash(String, String) | Nil = nil, metadata : Hash(String, String) | Nil = nil, acss_debit : Hash(String, String) | Nil = nil, affirm : Hash(String, String) | Nil = nil, afterpay_clearpay : Hash(String, String) | Nil = nil, alipay : Hash(String, String) | Nil = nil, au_becs_debit : Hash(String, String) | Nil = nil, bacs_debit : Hash(String, String) | Nil = nil, bancontact : Hash(String, String) | Nil = nil, blik : Hash(String, String) | Nil = nil, boleto : Hash(String, String) | Nil = nil, card : Hash(String, String) | Nil = nil, customer_balance : Hash(String, String) | Nil = nil, eps : Hash(String, String) | Nil = nil, fpx : Hash(String, String) | Nil = nil, giropay : Hash(String, String) | Nil = nil, ideal : Hash(String, String) | Nil = nil, interac_present : Hash(String, String) | Nil = nil, klarna : Hash(String, String) | Nil = nil, konbini : Hash(String, String) | Nil = nil, link : Hash(String, String) | Nil = nil, oxxo : Hash(String, String) | Nil = nil, p24 : Hash(String, String) | Nil = nil, paynow : Hash(String, String) | Nil = nil, promptpay : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, sepa_debit : Hash(String, String) | Nil = nil, sofort : Hash(String, String) | Nil = nil, us_bank_account : Hash(String, String) | Nil = nil, wechat_pay : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L22"},"def":{"name":"add_payment_method","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"billing_details","default_value":"nil","external_name":"billing_details","restriction":"Hash(String, String) | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"acss_debit","default_value":"nil","external_name":"acss_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"affirm","default_value":"nil","external_name":"affirm","restriction":"Hash(String, String) | ::Nil"},{"name":"afterpay_clearpay","default_value":"nil","external_name":"afterpay_clearpay","restriction":"Hash(String, String) | ::Nil"},{"name":"alipay","default_value":"nil","external_name":"alipay","restriction":"Hash(String, String) | ::Nil"},{"name":"au_becs_debit","default_value":"nil","external_name":"au_becs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bacs_debit","default_value":"nil","external_name":"bacs_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"bancontact","default_value":"nil","external_name":"bancontact","restriction":"Hash(String, String) | ::Nil"},{"name":"blik","default_value":"nil","external_name":"blik","restriction":"Hash(String, String) | ::Nil"},{"name":"boleto","default_value":"nil","external_name":"boleto","restriction":"Hash(String, String) | ::Nil"},{"name":"card","default_value":"nil","external_name":"card","restriction":"Hash(String, String) | ::Nil"},{"name":"customer_balance","default_value":"nil","external_name":"customer_balance","restriction":"Hash(String, String) | ::Nil"},{"name":"eps","default_value":"nil","external_name":"eps","restriction":"Hash(String, String) | ::Nil"},{"name":"fpx","default_value":"nil","external_name":"fpx","restriction":"Hash(String, String) | ::Nil"},{"name":"giropay","default_value":"nil","external_name":"giropay","restriction":"Hash(String, String) | ::Nil"},{"name":"ideal","default_value":"nil","external_name":"ideal","restriction":"Hash(String, String) | ::Nil"},{"name":"interac_present","default_value":"nil","external_name":"interac_present","restriction":"Hash(String, String) | ::Nil"},{"name":"klarna","default_value":"nil","external_name":"klarna","restriction":"Hash(String, String) | ::Nil"},{"name":"konbini","default_value":"nil","external_name":"konbini","restriction":"Hash(String, String) | ::Nil"},{"name":"link","default_value":"nil","external_name":"link","restriction":"Hash(String, String) | ::Nil"},{"name":"oxxo","default_value":"nil","external_name":"oxxo","restriction":"Hash(String, String) | ::Nil"},{"name":"p24","default_value":"nil","external_name":"p24","restriction":"Hash(String, String) | ::Nil"},{"name":"paynow","default_value":"nil","external_name":"paynow","restriction":"Hash(String, String) | ::Nil"},{"name":"promptpay","default_value":"nil","external_name":"promptpay","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"sepa_debit","default_value":"nil","external_name":"sepa_debit","restriction":"Hash(String, String) | ::Nil"},{"name":"sofort","default_value":"nil","external_name":"sofort","restriction":"Hash(String, String) | ::Nil"},{"name":"us_bank_account","default_value":"nil","external_name":"us_bank_account","restriction":"Hash(String, String) | ::Nil"},{"name":"wechat_pay","default_value":"nil","external_name":"wechat_pay","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"payment_method = @client.not_nil!.payment_methods.create(type, billing_details, metadata, acss_debit, affirm, afterpay_clearpay, alipay, au_becs_debit, bacs_debit, bancontact, blik, boleto, card, customer_balance, eps, fpx, giropay, ideal, interac_present, klarna, konbini, link, oxxo, p24, paynow, promptpay, radar_options, sepa_debit, sofort, us_bank_account, wechat_pay)\nself[\"payment_method\"] = payment_method\n"}},{"html_id":"cancel_payment_intent(id:String,cancellation_reason:String|Nil=nil)-instance-method","name":"cancel_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"args_string":"(id : String, cancellation_reason : String | Nil = nil)","args_html":"(id : String, cancellation_reason : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L79"},"def":{"name":"cancel_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"cancellation_reason","default_value":"nil","external_name":"cancellation_reason","restriction":"String | ::Nil"}],"visibility":"Public","body":"@client.not_nil!.payment_intents.cancel(id: id, cancellation_reason: cancellation_reason)\nself[\"payment_intent\"] = nil\n"}},{"html_id":"confirm_payment_intent(id:String,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,capture_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"confirm_payment_intent","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(id : String, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, capture_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":74,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L74"},"def":{"name":"confirm_payment_intent","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.confirm(id: id, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, capture_method: capture_method, error_on_requires_action: error_on_requires_action, mandate: mandate, mandate_data: mandate_data, off_session: off_session, payment_method_data: payment_method_data, payment_method_options: payment_method_options, payment_method_types: payment_method_types, radar_options: radar_options, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"create_customer(account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"create_customer","abstract":false,"args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L96"},"def":{"name":"create_customer","args":[{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.create(account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}},{"html_id":"create_payment_intent(amount:Int32,currency:String,automatic_payment_methods:Hash(String,String)|Nil=nil,confirm:Bool|Nil=nil,customer:String|Nil=nil,description:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,off_session:Bool|Nil=nil,payment_method:String|Nil=nil,receipt_email:String|Nil=nil,setup_future_usage:String|Nil=nil,shipping:Hash(String,String)|Nil=nil,statement_descriptor:String|Nil=nil,statement_descriptor_suffix:String|Nil=nil,application_fee_amount:Int32|Nil=nil,capture_method:String|Nil=nil,confrimation_method:String|Nil=nil,error_on_requires_action:Bool|Nil=nil,mandate:String|Nil=nil,mandate_data:Hash(String,String)|Nil=nil,on_behalf_of:String|Nil=nil,payment_method_data:Hash(String,String)|Nil=nil,payment_method_types:Array(String)|Nil=nil,payment_method_options:Hash(String,String)|Nil=nil,radar_options:Hash(String,String)|Nil=nil,return_url:String|Nil=nil,transfer_data:Hash(String,String)|Nil=nil,transfer_group:String|Nil=nil,use_stripe_sdk:Bool|Nil=nil)-instance-method","name":"create_payment_intent","abstract":false,"args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"args_string":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","args_html":"(amount : Int32, currency : String, automatic_payment_methods : Hash(String, String) | Nil = nil, confirm : Bool | Nil = nil, customer : String | Nil = nil, description : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, off_session : Bool | Nil = nil, payment_method : String | Nil = nil, receipt_email : String | Nil = nil, setup_future_usage : String | Nil = nil, shipping : Hash(String, String) | Nil = nil, statement_descriptor : String | Nil = nil, statement_descriptor_suffix : String | Nil = nil, application_fee_amount : Int32 | Nil = nil, capture_method : String | Nil = nil, confrimation_method : String | Nil = nil, error_on_requires_action : Bool | Nil = nil, mandate : String | Nil = nil, mandate_data : Hash(String, String) | Nil = nil, on_behalf_of : String | Nil = nil, payment_method_data : Hash(String, String) | Nil = nil, payment_method_types : Array(String) | Nil = nil, payment_method_options : Hash(String, String) | Nil = nil, radar_options : Hash(String, String) | Nil = nil, return_url : String | Nil = nil, transfer_data : Hash(String, String) | Nil = nil, transfer_group : String | Nil = nil, use_stripe_sdk : Bool | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L69"},"def":{"name":"create_payment_intent","args":[{"name":"amount","external_name":"amount","restriction":"Int32"},{"name":"currency","external_name":"currency","restriction":"String"},{"name":"automatic_payment_methods","default_value":"nil","external_name":"automatic_payment_methods","restriction":"Hash(String, String) | ::Nil"},{"name":"confirm","default_value":"nil","external_name":"confirm","restriction":"Bool | ::Nil"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"off_session","default_value":"nil","external_name":"off_session","restriction":"Bool | ::Nil"},{"name":"payment_method","default_value":"nil","external_name":"payment_method","restriction":"String | ::Nil"},{"name":"receipt_email","default_value":"nil","external_name":"receipt_email","restriction":"String | ::Nil"},{"name":"setup_future_usage","default_value":"nil","external_name":"setup_future_usage","restriction":"String | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"statement_descriptor","default_value":"nil","external_name":"statement_descriptor","restriction":"String | ::Nil"},{"name":"statement_descriptor_suffix","default_value":"nil","external_name":"statement_descriptor_suffix","restriction":"String | ::Nil"},{"name":"application_fee_amount","default_value":"nil","external_name":"application_fee_amount","restriction":"Int32 | ::Nil"},{"name":"capture_method","default_value":"nil","external_name":"capture_method","restriction":"String | ::Nil"},{"name":"confrimation_method","default_value":"nil","external_name":"confrimation_method","restriction":"String | ::Nil"},{"name":"error_on_requires_action","default_value":"nil","external_name":"error_on_requires_action","restriction":"Bool | ::Nil"},{"name":"mandate","default_value":"nil","external_name":"mandate","restriction":"String | ::Nil"},{"name":"mandate_data","default_value":"nil","external_name":"mandate_data","restriction":"Hash(String, String) | ::Nil"},{"name":"on_behalf_of","default_value":"nil","external_name":"on_behalf_of","restriction":"String | ::Nil"},{"name":"payment_method_data","default_value":"nil","external_name":"payment_method_data","restriction":"Hash(String, String) | ::Nil"},{"name":"payment_method_types","default_value":"nil","external_name":"payment_method_types","restriction":"Array(String) | ::Nil"},{"name":"payment_method_options","default_value":"nil","external_name":"payment_method_options","restriction":"Hash(String, String) | ::Nil"},{"name":"radar_options","default_value":"nil","external_name":"radar_options","restriction":"Hash(String, String) | ::Nil"},{"name":"return_url","default_value":"nil","external_name":"return_url","restriction":"String | ::Nil"},{"name":"transfer_data","default_value":"nil","external_name":"transfer_data","restriction":"Hash(String, String) | ::Nil"},{"name":"transfer_group","default_value":"nil","external_name":"transfer_group","restriction":"String | ::Nil"},{"name":"use_stripe_sdk","default_value":"nil","external_name":"use_stripe_sdk","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"payment_intent = @client.not_nil!.payment_intents.create(amount: amount, currency: currency, automatic_payment_methods: automatic_payment_methods, confirm: confirm, customer: customer, description: description, metadata: metadata, off_session: off_session, payment_method: payment_method, receipt_email: receipt_email, setup_future_usage: setup_future_usage, shipping: shipping, statement_descriptor: statement_descriptor, statement_descriptor_suffix: statement_descriptor_suffix, application_fee_amount: application_fee_amount, capture_method: capture_method, confrimation_method: confrimation_method, error_on_requires_action: error_on_requires_action, mandate_data: mandate_data, on_behalf_of: on_behalf_of, payment_method_data: payment_method_data, payment_method_types: payment_method_types, payment_method_options: payment_method_options, radar_options: radar_options, return_url: return_url, transfer_data: transfer_data, transfer_group: transfer_group, use_stripe_sdk: use_stripe_sdk)\nself[\"payment_intent\"] = payment_intent\n"}},{"html_id":"get_customer(id:String)-instance-method","name":"get_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/stripe/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L84"},"def":{"name":"get_customer","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"self[\"customer\"] = @client.not_nil!.customers.get(id)"}},{"html_id":"get_product_prices(active:Bool|Nil=nil,currency:String|Nil=nil,product:String|Nil=nil,type:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,lookup_keys:Array(String)|Nil=nil,recurring:Hash(String,String)|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"get_product_prices","abstract":false,"args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","args_html":"(active : Bool | Nil = nil, currency : String | Nil = nil, product : String | Nil = nil, type : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, lookup_keys : Array(String) | Nil = nil, recurring : Hash(String, String) | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L64"},"def":{"name":"get_product_prices","args":[{"name":"active","default_value":"nil","external_name":"active","restriction":"Bool | ::Nil"},{"name":"currency","default_value":"nil","external_name":"currency","restriction":"String | ::Nil"},{"name":"product","default_value":"nil","external_name":"product","restriction":"String | ::Nil"},{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"lookup_keys","default_value":"nil","external_name":"lookup_keys","restriction":"Array(String) | ::Nil"},{"name":"recurring","default_value":"nil","external_name":"recurring","restriction":"Hash(String, String) | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"product_prices = @client.not_nil!.prices.list(active: active, currency: currency, product: product, type: type, created: created, ending_before: ending_before, limit: limit, lookup_keys: lookup_keys, recurring: recurring, starting_after: starting_after)\nself[\"product_prices\"] = product_prices\n"}},{"html_id":"list_customers(email:String|Nil=nil,created:Hash(String,String)|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_customers","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(email : String | Nil = nil, created : Hash(String, String) | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L88"},"def":{"name":"list_customers","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"created","default_value":"nil","external_name":"created","restriction":"Hash(String, String) | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.list(email: email, created: created, ending_before: ending_before, limit: limit, starting_after: starting_after)"}},{"html_id":"list_payment_methods(type:String,customer:String|Nil=nil,ending_before:String|Nil=nil,limit:Int32|Nil=nil,starting_after:String|Nil=nil)-instance-method","name":"list_payment_methods","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"args_string":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","args_html":"(type : String, customer : String | Nil = nil, ending_before : String | Nil = nil, limit : Int32 | Nil = nil, starting_after : String | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L59"},"def":{"name":"list_payment_methods","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"ending_before","default_value":"nil","external_name":"ending_before","restriction":"String | ::Nil"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"starting_after","default_value":"nil","external_name":"starting_after","restriction":"String | ::Nil"}],"visibility":"Public","body":"payment_methods = @client.not_nil!.payment_methods.list(type: type, customer: customer, ending_before: ending_before, limit: limit, starting_after: starting_after)\nself[\"payment_methods\"] = payment_methods\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/stripe/api.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L15"},"def":{"name":"on_update","visibility":"Public","body":"host_name = config.uri.not_nil!.to_s\napi_key = setting(String, :api_key)\n@client = Stripetease::Client.new(base_url: host_name, api_key: api_key)\n"}},{"html_id":"search_customers(query:String,limit:Int32|Nil=nil,page:Int32|Nil=nil)-instance-method","name":"search_customers","abstract":false,"args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"args_string":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","args_html":"(query : String, limit : Int32 | Nil = nil, page : Int32 | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L92"},"def":{"name":"search_customers","args":[{"name":"query","external_name":"query","restriction":"String"},{"name":"limit","default_value":"nil","external_name":"limit","restriction":"Int32 | ::Nil"},{"name":"page","default_value":"nil","external_name":"page","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"self[\"customers\"] = @client.not_nil!.customers.search(query: query, limit: limit, page: page)"}},{"html_id":"update_customer(id:String,customer:String|Nil=nil,account_balance:Int32|Nil=nil,coupon:String|Nil=nil,default_source:String|Nil=nil,description:String|Nil=nil,email:String|Nil=nil,invoice_prefix:String|Nil=nil,metadata:Hash(String,String)|Nil=nil,shipping:Hash(String,String)|Nil=nil,source:String|Nil=nil,tax_info:Hash(String,String)|Nil=nil)-instance-method","name":"update_customer","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"args_string":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","args_html":"(id : String, customer : String | Nil = nil, account_balance : Int32 | Nil = nil, coupon : String | Nil = nil, default_source : String | Nil = nil, description : String | Nil = nil, email : String | Nil = nil, invoice_prefix : String | Nil = nil, metadata : Hash(String, String) | Nil = nil, shipping : Hash(String, String) | Nil = nil, source : String | Nil = nil, tax_info : Hash(String, String) | Nil = nil)","location":{"filename":"src/stripe/api.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L101"},"def":{"name":"update_customer","args":[{"name":"id","external_name":"id","restriction":"String"},{"name":"customer","default_value":"nil","external_name":"customer","restriction":"String | ::Nil"},{"name":"account_balance","default_value":"nil","external_name":"account_balance","restriction":"Int32 | ::Nil"},{"name":"coupon","default_value":"nil","external_name":"coupon","restriction":"String | ::Nil"},{"name":"default_source","default_value":"nil","external_name":"default_source","restriction":"String | ::Nil"},{"name":"description","default_value":"nil","external_name":"description","restriction":"String | ::Nil"},{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"invoice_prefix","default_value":"nil","external_name":"invoice_prefix","restriction":"String | ::Nil"},{"name":"metadata","default_value":"nil","external_name":"metadata","restriction":"Hash(String, String) | ::Nil"},{"name":"shipping","default_value":"nil","external_name":"shipping","restriction":"Hash(String, String) | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"},{"name":"tax_info","default_value":"nil","external_name":"tax_info","restriction":"Hash(String, String) | ::Nil"}],"visibility":"Public","body":"customer = @client.not_nil!.customers.update(id: id, customer: customer, account_balance: account_balance, coupon: coupon, default_source: default_source, description: description, email: email, invoice_prefix: invoice_prefix, metadata: metadata, shipping: shipping, source: source, tax_info: tax_info)\nself[\"customer\"] = customer\n"}}],"types":[{"html_id":"drivers/Stripe/API/Client","path":"Stripe/API/Client.html","kind":"alias","full_name":"Stripe::API::Client","name":"Client","abstract":false,"locations":[{"filename":"src/stripe/api.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/stripe/api.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Stripetease::Client","aliased_html":"Stripetease::Client","const":false,"namespace":{"html_id":"drivers/Stripe/API","kind":"class","full_name":"Stripe::API","name":"API"}}]}]},{"html_id":"drivers/TvOne","path":"TvOne.html","kind":"module","full_name":"TvOne","name":"TvOne","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TvOne/CorioMaster","path":"TvOne/CorioMaster.html","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TvOne","kind":"module","full_name":"TvOne","name":"TvOne"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L37"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(30.seconds) do\n if @ready\n else\n disconnect\n end\nend\nschedule.every(1.minute) do\n do_poll\nend\nspawn do\n init_connection\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L32"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear\nself[:ready] = @ready = false\n"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L62"},"def":{"name":"do_poll","visibility":"Public","body":"logger.debug do\n \"polling device\"\nend\nquery(\"Preset.Take\", expose_as: :preset)\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n"}},{"html_id":"preset(id:UInt32)-instance-method","name":"preset","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"args_string":"(id : UInt32)","args_html":"(id : UInt32)","location":{"filename":"src/tv_one/corio_master.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L67"},"def":{"name":"preset","args":[{"name":"id","external_name":"id","restriction":"UInt32"}],"visibility":"Public","body":"(set(\"Preset.Take\", id)).get\nself[:preset] = id\nif wins = @window_cache[id]?\n logger.debug do\n \"loading cached window state\"\n end\n self[:windows] = wins\nend\nspawn do\n windows = query_windows\n logger.debug do\n \"window cache for preset #{id} updated\"\n end\n self[:windows] = @window_cache[id] = windows\nend\nid\n"}},{"html_id":"preset_list-instance-method","name":"preset_list","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L125"},"def":{"name":"preset_list","visibility":"Public","body":"query_preset_list"}},{"html_id":"query_windows-instance-method","name":"query_windows","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L121"},"def":{"name":"query_windows","visibility":"Public","body":"deep_query(\"Windows\")"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/tv_one/corio_master.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L197"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"data = String.new(data)\nlogger.debug do\n \"Received => #{data}\"\nend\nif !@ready\n if data =~ (/Interface Ready/i)\n configure_tokenizer\n self[:ready] = @ready = true\n end\n return\nend\nbody = data.lines\ncaptures = ((/!(\\w+)\\W*(.*)$/).match(body.pop)).try(&.captures)\nif captures\nelse\n return task.try(&.abort(\"\"))\nend\ntype = captures[0].as(String)\nmessage = (captures[1].as(String)).downcase\nrequest = task.try do |__arg3|\n __arg3.request_payload.try() do |__arg4|\n (__arg4.strip.downcase.split(\" \"))[0]\n end\nend\ncase type\nwhen \"Done\"\n if request && (request == message)\n response = parse_response(body, request)\n task.try(&.success(response))\n end\nwhen \"Info\"\n logger.info do\n \"#{request} => #{message}\"\n end\n task.try(&.success)\nwhen \"Error\"\n logger.error do\n message\n end\n task.try(&.abort)\nwhen \"Event\"\n logger.info do\n \"unhandled event: #{message}\"\n end\nelse\n logger.error do\n \"unhandled response: #{data}\"\n end\n task.try(&.abort)\nend\n"}},{"html_id":"switch(map:Hash(String,Array(UInt32)))-instance-method","name":"switch","abstract":false,"args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"args_string":"(map : Hash(String, Array(UInt32)))","args_html":"(map : Hash(String, Array(UInt32)))","location":{"filename":"src/tv_one/corio_master.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L91"},"def":{"name":"switch","args":[{"name":"map","external_name":"map","restriction":"Hash(String, Array(UInt32))"}],"visibility":"Public","body":"results = map.flat_map do |slot, windows|\n windows.map do |id|\n window(id, \"Input\", slot)\n end\nend\nspawn do\n results.each(&.get)\n if state = status?(Hash(String, Hash(String, JSON::Any)), :windows)\n map.each do |slot, windows|\n value = JSON::Any.new(slot)\n windows.each do |id|\n if win = state[\"window#{id}\"]?\n win[\"input\"] = value\n end\n end\n end\n self[\"windows\"] = state\n end\nend\nnil\n"}},{"html_id":"sync_state-instance-method","name":"sync_state","abstract":false,"location":{"filename":"src/tv_one/corio_master.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L52"},"def":{"name":"sync_state","visibility":"Public","body":"query(\"Preset.Take\", expose_as: :preset)\nquery_preset_list(expose_as: :presets)\ndeep_query(\"Windows\", expose_as: :windows)\ndeep_query(\"Canvases\", expose_as: :canvases)\ndeep_query(\"Layouts\", expose_as: :layouts)\nquery(\"CORIOmax.Serial_Number\", expose_as: :serial_number)\nquery(\"CORIOmax.Software_Version\", expose_as: :firmware)\n"}},{"html_id":"window(id:UInt32,property:String,value:Int64|Bool|Nil|String)-instance-method","name":"window","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"args_string":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","args_html":"(id : UInt32, property : String, value : Int64 | Bool | Nil | String)","location":{"filename":"src/tv_one/corio_master.cr","line_number":117,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L117"},"def":{"name":"window","args":[{"name":"id","external_name":"id","restriction":"UInt32"},{"name":"property","external_name":"property","restriction":"String"},{"name":"value","external_name":"value","restriction":"Int64 | Bool | Nil | String"}],"visibility":"Public","body":"set(\"Window#{id}.#{property}\", value)"}}],"types":[{"html_id":"drivers/TvOne/CorioMaster/PresetList","path":"TvOne/CorioMaster/PresetList.html","kind":"alias","full_name":"TvOne::CorioMaster::PresetList","name":"PresetList","abstract":false,"locations":[{"filename":"src/tv_one/corio_master.cr","line_number":129,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/tv_one/corio_master.cr#L129"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(Int32, NamedTuple(name: String, canvas: String, time: Int64))","aliased_html":"Hash(Int32, {name: String, canvas: String, time: Int64})","const":false,"namespace":{"html_id":"drivers/TvOne/CorioMaster","kind":"class","full_name":"TvOne::CorioMaster","name":"CorioMaster"}}]}]},{"html_id":"drivers/TwentyFiveLivePro","path":"TwentyFiveLivePro.html","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L4"},{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L4"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L3"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L3"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L3"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L3"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L3"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L3"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L6"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L3"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/TwentyFiveLivePro/API","path":"TwentyFiveLivePro/API.html","kind":"class","full_name":"TwentyFiveLivePro::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"availability(id:Int32,start_date:String,end_date:String,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"availability","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, start_date : String, end_date : String, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":93,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L93"},"def":{"name":"availability","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nbody = {\"spaces\" => [{\"spaceId\" => id, \"dates\" => {\"startDt\" => start_date, \"endDt\" => end_date}}]}\nresponse = post(\"/external/spaceAvailability.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"}, body: body.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Availability.from_json(response.body)\n"}},{"html_id":"get_event_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_event_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":256,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L256"},"def":{"name":"get_event_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/event/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::EventDetail.from_json(response.body)\n"}},{"html_id":"get_organization_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_organization_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":180,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L180"},"def":{"name":"get_organization_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/organization/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::OrganizationDetail.from_json(response.body)\n"}},{"html_id":"get_resource_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_resource_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":119,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L119"},"def":{"name":"get_resource_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/resource/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::ResourceDetail.from_json(response.body)\n"}},{"html_id":"get_space_details(id:Int32,included_elements:Array(String)=[]ofString,expanded_elements:Array(String)=[]ofString)-instance-method","name":"get_space_details","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"args_string":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","args_html":"(id : Int32, included_elements : Array(String) = [] of String, expanded_elements : Array(String) = [] of String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L32"},"def":{"name":"get_space_details","args":[{"name":"id","external_name":"id","restriction":"Int32"},{"name":"included_elements","default_value":"[] of String","external_name":"included_elements","restriction":"Array(String)"},{"name":"expanded_elements","default_value":"[] of String","external_name":"expanded_elements","restriction":"Array(String)"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"include\", included_elements.join(\",\"))\n form.add(\"expand\", expanded_elements.join(\",\"))\nend\nresponse = get(\"/external/space/#{id}/detail.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::SpaceDetail.from_json(response.body)\n"}},{"html_id":"list_events(space_id:Int32=1,page:Int32=1,items_per_page:Int32=100,since:String|Nil=nil,paginate:String|Nil=nil)-instance-method","name":"list_events","abstract":false,"args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","args_html":"(space_id : Int32 = 1, page : Int32 = 1, items_per_page : Int32 = 100, since : String | Nil = nil, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":270,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L270"},"def":{"name":"list_events","args":[{"name":"space_id","default_value":"1","external_name":"space_id","restriction":"Int32"},{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"since","default_value":"nil","external_name":"since","restriction":"String | ::Nil"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"events = [] of Models::Event\nloop do\n params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if since\n form.add(\"created_since\", since)\n end\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/event/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Event).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |event|\n events.push(event)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nevents\n"}},{"html_id":"list_organizations(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_organizations","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":194,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L194"},"def":{"name":"list_organizations","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"organizations = [] of Models::Organization\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/organization/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Organization).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |organization|\n organizations.push(organization)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\norganizations\n"}},{"html_id":"list_reservations(space_id:Int32,start_date:String,end_date:String)-instance-method","name":"list_reservations","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"args_string":"(space_id : Int32, start_date : String, end_date : String)","args_html":"(space_id : Int32, start_date : String, end_date : String)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":241,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L241"},"def":{"name":"list_reservations","args":[{"name":"space_id","external_name":"space_id","restriction":"Int32"},{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"space_id\", space_id.to_s)\n form.add(\"start_dt\", start_date)\n form.add(\"end_dt\", end_date)\nend\nresponse = get(\"/reservations.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nModels::Reservations.from_json(response.body)\n"}},{"html_id":"list_resources(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_resources","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L133"},"def":{"name":"list_resources","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"resources = [] of Models::Resource\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/resource/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Resource).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |resource|\n resources.push(resource)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nresources\n"}},{"html_id":"list_spaces(page:Int32=1,items_per_page:Int32=100,paginate:String|Nil=nil)-instance-method","name":"list_spaces","abstract":false,"args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"args_string":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","args_html":"(page : Int32 = 1, items_per_page : Int32 = 100, paginate : String | Nil = nil)","location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L46"},"def":{"name":"list_spaces","args":[{"name":"page","default_value":"1","external_name":"page","restriction":"Int32"},{"name":"items_per_page","default_value":"100","external_name":"items_per_page","restriction":"Int32"},{"name":"paginate","default_value":"nil","external_name":"paginate","restriction":"String | ::Nil"}],"visibility":"Public","body":"spaces = [] of Models::Space\nloop do\n params = URI::Params.build do |form|\n form.add(\"page\", page.to_s)\n form.add(\"itemsPerPage\", items_per_page.to_s)\n if paginate\n form.add(\"paginate\", paginate)\n end\n end\n response = get(\"/external/space/list.json?#{params}\", headers: HTTP::Headers {\"Authorization\" => get_basic_authorization, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n paginated_response = Models::PaginatedResponse.from_json(response.body)\n if page < paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n page = page + 1\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n if page == paginated_response.content.data.total_pages\n begin\n (Array(Models::Space).from_json(paginated_response.content.data.json_unmapped[\"items\"].to_json)).each do |space|\n spaces.push(space)\n end\n break\n rescue exception\n logger.warn do\n \"failed to parse body:\\n#{response.body}\"\n end\n raise(exception)\n end\n else\n break\n end\n end\nend\nspaces\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L16"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/api.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/api.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@username = setting(String, :username)\n@password = setting(String, :password)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]},{"html_id":"drivers/TwentyFiveLivePro/Date","path":"TwentyFiveLivePro/Date.html","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"duration-instance-method","name":"duration","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L13"},"def":{"name":"duration","visibility":"Public","body":"end_date - start_date"}},{"html_id":"end_date:Time-instance-method","name":"end_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date","return_type":"Time","visibility":"Public","body":"@end_date"}},{"html_id":"end_date=(end_date:Time)-instance-method","name":"end_date=","abstract":false,"args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"args_string":"(end_date : Time)","args_html":"(end_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L11"},"def":{"name":"end_date=","args":[{"name":"end_date","external_name":"end_date","restriction":"Time"}],"visibility":"Public","body":"@end_date = end_date"}},{"html_id":"start_date:Time-instance-method","name":"start_date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date","return_type":"Time","visibility":"Public","body":"@start_date"}},{"html_id":"start_date=(start_date:Time)-instance-method","name":"start_date=","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"args_string":"(start_date : Time)","args_html":"(start_date : Time)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L8"},"def":{"name":"start_date=","args":[{"name":"start_date","external_name":"start_date","restriction":"Time"}],"visibility":"Public","body":"@start_date = start_date"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","path":"TwentyFiveLivePro/Date/Converter.html","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L17"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"drivers/TwentyFiveLivePro/Date/Converter","kind":"module","full_name":"TwentyFiveLivePro::Date::Converter","name":"Converter"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Date","kind":"struct","full_name":"TwentyFiveLivePro::Date","name":"Date"},"instance_methods":[{"html_id":"from_json(value:JSON::PullParser)-instance-method","name":"from_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"args_string":"(value : JSON::PullParser)","args_html":"(value : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L24"},"def":{"name":"from_json","args":[{"name":"value","external_name":"value","restriction":"JSON::PullParser"}],"visibility":"Public","body":"Time.parse_rfc3339(value.read_string)"}},{"html_id":"to_json(value,json:JSON::Builder)-instance-method","name":"to_json","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"args_string":"(value, json : JSON::Builder)","args_html":"(value, json : JSON::Builder)","location":{"filename":"src/twenty_five_live_pro/models/date.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/date.cr#L20"},"def":{"name":"to_json","args":[{"name":"value","external_name":"value","restriction":""},{"name":"json","external_name":"json","restriction":"JSON::Builder"}],"visibility":"Public","body":"json.string(value.to_rfc3339)"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models","path":"TwentyFiveLivePro/Models.html","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L5"},{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L4"},{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L4"},{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L4"},{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L4"},{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L4"},{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L4"},{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L7"},{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L4"},{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"instance_methods":[{"html_id":"reservations:Reservations-instance-method","name":"reservations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations","return_type":"Reservations","visibility":"Public","body":"@reservations"}},{"html_id":"reservations=(reservations:Reservations)-instance-method","name":"reservations=","abstract":false,"args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"args_string":"(reservations : Reservations)","args_html":"(reservations : Reservations)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":144,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L144"},"def":{"name":"reservations=","args":[{"name":"reservations","external_name":"reservations","restriction":"Reservations"}],"visibility":"Public","body":"@reservations = reservations"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Attribute","path":"TwentyFiveLivePro/Models/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/attribute.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/attribute.cr#L9"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","path":"TwentyFiveLivePro/Models/Availability.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L56"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","path":"TwentyFiveLivePro/Models/Availability/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability","name":"Availability"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L42"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L52"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:String-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id","return_type":"String","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:String)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"args_string":"(request_id : String)","args_html":"(request_id : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L13"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"String"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","path":"TwentyFiveLivePro/Models/Availability/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L38"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data/Space","path":"TwentyFiveLivePro/Models/Availability/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"available:Bool-instance-method","name":"available","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available","return_type":"Bool","visibility":"Public","body":"@available"}},{"html_id":"available=(available:Bool)-instance-method","name":"available=","abstract":false,"args":[{"name":"available","external_name":"available","restriction":"Bool"}],"args_string":"(available : Bool)","args_html":"(available : Bool)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L31"},"def":{"name":"available=","args":[{"name":"available","external_name":"available","restriction":"Bool"}],"visibility":"Public","body":"@available = available"}},{"html_id":"conflict_type:Int64|Nil-instance-method","name":"conflict_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type","return_type":"Int64 | ::Nil","visibility":"Public","body":"@conflict_type"}},{"html_id":"conflict_type=(conflict_type:Int64|Nil)-instance-method","name":"conflict_type=","abstract":false,"args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"args_string":"(conflict_type : Int64 | Nil)","args_html":"(conflict_type : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L34"},"def":{"name":"conflict_type=","args":[{"name":"conflict_type","external_name":"conflict_type","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@conflict_type = conflict_type"}},{"html_id":"dates:Array(Hash(String,JSON::Any))-instance-method","name":"dates","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates","return_type":"Array(Hash(String, JSON::Any))","visibility":"Public","body":"@dates"}},{"html_id":"dates=(dates:Array(Hash(String,JSON::Any)))-instance-method","name":"dates=","abstract":false,"args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"args_string":"(dates : Array(Hash(String, JSON::Any)))","args_html":"(dates : Array(Hash(String, JSON::Any)))","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L28"},"def":{"name":"dates=","args":[{"name":"dates","external_name":"dates","restriction":"Array(Hash(String, JSON::Any))"}],"visibility":"Public","body":"@dates = dates"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L25"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/Availability/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Availability/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::Availability::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L45"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_types:Array(Expanded::Conflict)|Nil-instance-method","name":"conflict_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types","return_type":"Array(Expanded::Conflict) | ::Nil","visibility":"Public","body":"@conflict_types"}},{"html_id":"conflict_types=(conflict_types:Array(Expanded::Conflict)|Nil)-instance-method","name":"conflict_types=","abstract":false,"args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"args_string":"(conflict_types : Array(Expanded::Conflict) | Nil)","args_html":"(conflict_types : Array(Expanded::Conflict) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/availability.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/availability.cr#L48"},"def":{"name":"conflict_types=","args":[{"name":"conflict_types","external_name":"conflict_types","restriction":"Array(Expanded::Conflict) | ::Nil"}],"visibility":"Public","body":"@conflict_types = conflict_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Category","path":"TwentyFiveLivePro/Models/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L9"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"inherit_code:Int64|Nil-instance-method","name":"inherit_code","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code","return_type":"Int64 | ::Nil","visibility":"Public","body":"@inherit_code"}},{"html_id":"inherit_code=(inherit_code:Int64|Nil)-instance-method","name":"inherit_code=","abstract":false,"args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"args_string":"(inherit_code : Int64 | Nil)","args_html":"(inherit_code : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/category.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/category.cr#L11"},"def":{"name":"inherit_code=","args":[{"name":"inherit_code","external_name":"inherit_code","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@inherit_code = inherit_code"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Event","path":"TwentyFiveLivePro/Models/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"container:Bool|Nil-instance-method","name":"container","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container","return_type":"Bool | ::Nil","visibility":"Public","body":"@container"}},{"html_id":"container=(container:Bool|Nil)-instance-method","name":"container=","abstract":false,"args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"args_string":"(container : Bool | Nil)","args_html":"(container : Bool | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L32"},"def":{"name":"container=","args":[{"name":"container","external_name":"container","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@container = container"}},{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L30"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L24"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L18"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"title:String|Nil-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title","return_type":"String | ::Nil","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String|Nil)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"args_string":"(title : String | Nil)","args_html":"(title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L21"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@title = title"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event.cr#L27"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","path":"TwentyFiveLivePro/Models/EventDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L92"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","path":"TwentyFiveLivePro/Models/EventDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L9"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail","name":"EventDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L10"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L54"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L88"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"id:Int64|Nil-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64|Nil)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"args_string":"(id : Int64 | Nil)","args_html":"(id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L13"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@id = id"}},{"html_id":"updated:String|Nil-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated","return_type":"String | ::Nil","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String|Nil)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"args_string":"(updated : String | Nil)","args_html":"(updated : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L16"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String | ::Nil"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L18"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L19"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Event)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items","return_type":"Array(Event)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Event))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"args_string":"(items : Array(Event))","args_html":"(items : Array(Event))","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L50"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Event)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data/Event","path":"TwentyFiveLivePro/Models/EventDetail/Content/Data/Event.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data::Event","name":"Event","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L21"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L22"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"date:Date-instance-method","name":"date","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date","return_type":"Date","visibility":"Public","body":"@date"}},{"html_id":"date=(date:Date)-instance-method","name":"date=","abstract":false,"args":[{"name":"date","external_name":"date","restriction":"Date"}],"args_string":"(date : Date)","args_html":"(date : Date)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L46"},"def":{"name":"date=","args":[{"name":"date","external_name":"date","restriction":"Date"}],"visibility":"Public","body":"@date = date"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L31"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"event_locator:String-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator","return_type":"String","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"args_string":"(event_locator : String)","args_html":"(event_locator : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L37"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L28"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L25"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L34"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"priority:Int64-instance-method","name":"priority","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority","return_type":"Int64","visibility":"Public","body":"@priority"}},{"html_id":"priority=(priority:Int64)-instance-method","name":"priority=","abstract":false,"args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"args_string":"(priority : Int64)","args_html":"(priority : Int64)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L40"},"def":{"name":"priority=","args":[{"name":"priority","external_name":"priority","restriction":"Int64"}],"visibility":"Public","body":"@priority = priority"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L43"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/EventDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/EventDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::EventDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L63"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L84"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"event_types:Array(Expanded::EventType)|Nil-instance-method","name":"event_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types","return_type":"Array(Expanded::EventType) | ::Nil","visibility":"Public","body":"@event_types"}},{"html_id":"event_types=(event_types:Array(Expanded::EventType)|Nil)-instance-method","name":"event_types=","abstract":false,"args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"args_string":"(event_types : Array(Expanded::EventType) | Nil)","args_html":"(event_types : Array(Expanded::EventType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":78,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L78"},"def":{"name":"event_types=","args":[{"name":"event_types","external_name":"event_types","restriction":"Array(Expanded::EventType) | ::Nil"}],"visibility":"Public","body":"@event_types = event_types"}},{"html_id":"organizations:Array(Expanded::Organization)|Nil-instance-method","name":"organizations","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations","return_type":"Array(Expanded::Organization) | ::Nil","visibility":"Public","body":"@organizations"}},{"html_id":"organizations=(organizations:Array(Expanded::Organization)|Nil)-instance-method","name":"organizations=","abstract":false,"args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"args_string":"(organizations : Array(Expanded::Organization) | Nil)","args_html":"(organizations : Array(Expanded::Organization) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L60"},"def":{"name":"organizations=","args":[{"name":"organizations","external_name":"organizations","restriction":"Array(Expanded::Organization) | ::Nil"}],"visibility":"Public","body":"@organizations = organizations"}},{"html_id":"parent_nodes:Array(Expanded::ParentNode)|Nil-instance-method","name":"parent_nodes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes","return_type":"Array(Expanded::ParentNode) | ::Nil","visibility":"Public","body":"@parent_nodes"}},{"html_id":"parent_nodes=(parent_nodes:Array(Expanded::ParentNode)|Nil)-instance-method","name":"parent_nodes=","abstract":false,"args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"args_string":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","args_html":"(parent_nodes : Array(Expanded::ParentNode) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L81"},"def":{"name":"parent_nodes=","args":[{"name":"parent_nodes","external_name":"parent_nodes","restriction":"Array(Expanded::ParentNode) | ::Nil"}],"visibility":"Public","body":"@parent_nodes = parent_nodes"}},{"html_id":"resources:Array(Expanded::Resource)|Nil-instance-method","name":"resources","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources","return_type":"Array(Expanded::Resource) | ::Nil","visibility":"Public","body":"@resources"}},{"html_id":"resources=(resources:Array(Expanded::Resource)|Nil)-instance-method","name":"resources=","abstract":false,"args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"args_string":"(resources : Array(Expanded::Resource) | Nil)","args_html":"(resources : Array(Expanded::Resource) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L72"},"def":{"name":"resources=","args":[{"name":"resources","external_name":"resources","restriction":"Array(Expanded::Resource) | ::Nil"}],"visibility":"Public","body":"@resources = resources"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L66"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"spaces:Array(Expanded::Space)|Nil-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces","return_type":"Array(Expanded::Space) | ::Nil","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Expanded::Space)|Nil)-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"args_string":"(spaces : Array(Expanded::Space) | Nil)","args_html":"(spaces : Array(Expanded::Space) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L69"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Expanded::Space) | ::Nil"}],"visibility":"Public","body":"@spaces = spaces"}},{"html_id":"states:Array(Expanded::State)|Nil-instance-method","name":"states","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states","return_type":"Array(Expanded::State) | ::Nil","visibility":"Public","body":"@states"}},{"html_id":"states=(states:Array(Expanded::State)|Nil)-instance-method","name":"states=","abstract":false,"args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"args_string":"(states : Array(Expanded::State) | Nil)","args_html":"(states : Array(Expanded::State) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/event_detail.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/event_detail.cr#L75"},"def":{"name":"states=","args":[{"name":"states","external_name":"states","restriction":"Array(Expanded::State) | ::Nil"}],"visibility":"Public","body":"@states = states"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","path":"TwentyFiveLivePro/Models/Expanded.html","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded","abstract":false,"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L5"},{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Attribute","path":"TwentyFiveLivePro/Models/Expanded/Attribute.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Attribute","name":"Attribute","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attribute_id:Int64-instance-method","name":"attribute_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id","return_type":"Int64","visibility":"Public","body":"@attribute_id"}},{"html_id":"attribute_id=(attribute_id:Int64)-instance-method","name":"attribute_id=","abstract":false,"args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"args_string":"(attribute_id : Int64)","args_html":"(attribute_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L10"},"def":{"name":"attribute_id=","args":[{"name":"attribute_id","external_name":"attribute_id","restriction":"Int64"}],"visibility":"Public","body":"@attribute_id = attribute_id"}},{"html_id":"attribute_name:String-instance-method","name":"attribute_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name","return_type":"String","visibility":"Public","body":"@attribute_name"}},{"html_id":"attribute_name=(attribute_name:String)-instance-method","name":"attribute_name=","abstract":false,"args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"args_string":"(attribute_name : String)","args_html":"(attribute_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L12"},"def":{"name":"attribute_name=","args":[{"name":"attribute_name","external_name":"attribute_name","restriction":"String"}],"visibility":"Public","body":"@attribute_name = attribute_name"}},{"html_id":"attribute_type:String|Nil-instance-method","name":"attribute_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type","return_type":"String | ::Nil","visibility":"Public","body":"@attribute_type"}},{"html_id":"attribute_type=(attribute_type:String|Nil)-instance-method","name":"attribute_type=","abstract":false,"args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"args_string":"(attribute_type : String | Nil)","args_html":"(attribute_type : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/attribute.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/attribute.cr#L14"},"def":{"name":"attribute_type=","args":[{"name":"attribute_type","external_name":"attribute_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@attribute_type = attribute_type"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Category","path":"TwentyFiveLivePro/Models/Expanded/Category.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Category","name":"Category","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"category_id:Int64-instance-method","name":"category_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id","return_type":"Int64","visibility":"Public","body":"@category_id"}},{"html_id":"category_id=(category_id:Int64)-instance-method","name":"category_id=","abstract":false,"args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"args_string":"(category_id : Int64)","args_html":"(category_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L10"},"def":{"name":"category_id=","args":[{"name":"category_id","external_name":"category_id","restriction":"Int64"}],"visibility":"Public","body":"@category_id = category_id"}},{"html_id":"category_name:String-instance-method","name":"category_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name","return_type":"String","visibility":"Public","body":"@category_name"}},{"html_id":"category_name=(category_name:String)-instance-method","name":"category_name=","abstract":false,"args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"args_string":"(category_name : String)","args_html":"(category_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/category.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/category.cr#L12"},"def":{"name":"category_name=","args":[{"name":"category_name","external_name":"category_name","restriction":"String"}],"visibility":"Public","body":"@category_name = category_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Conflict","path":"TwentyFiveLivePro/Models/Expanded/Conflict.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Conflict","name":"Conflict","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"conflict_type_description:String-instance-method","name":"conflict_type_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description","return_type":"String","visibility":"Public","body":"@conflict_type_description"}},{"html_id":"conflict_type_description=(conflict_type_description:String)-instance-method","name":"conflict_type_description=","abstract":false,"args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"args_string":"(conflict_type_description : String)","args_html":"(conflict_type_description : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L14"},"def":{"name":"conflict_type_description=","args":[{"name":"conflict_type_description","external_name":"conflict_type_description","restriction":"String"}],"visibility":"Public","body":"@conflict_type_description = conflict_type_description"}},{"html_id":"conflict_type_id:Int64-instance-method","name":"conflict_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id","return_type":"Int64","visibility":"Public","body":"@conflict_type_id"}},{"html_id":"conflict_type_id=(conflict_type_id:Int64)-instance-method","name":"conflict_type_id=","abstract":false,"args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"args_string":"(conflict_type_id : Int64)","args_html":"(conflict_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L10"},"def":{"name":"conflict_type_id=","args":[{"name":"conflict_type_id","external_name":"conflict_type_id","restriction":"Int64"}],"visibility":"Public","body":"@conflict_type_id = conflict_type_id"}},{"html_id":"conflict_type_name:String-instance-method","name":"conflict_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name","return_type":"String","visibility":"Public","body":"@conflict_type_name"}},{"html_id":"conflict_type_name=(conflict_type_name:String)-instance-method","name":"conflict_type_name=","abstract":false,"args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"args_string":"(conflict_type_name : String)","args_html":"(conflict_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/conflict.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/conflict.cr#L12"},"def":{"name":"conflict_type_name=","args":[{"name":"conflict_type_name","external_name":"conflict_type_name","restriction":"String"}],"visibility":"Public","body":"@conflict_type_name = conflict_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Contact","path":"TwentyFiveLivePro/Models/Expanded/Contact.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Contact","name":"Contact","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64|Nil-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64|Nil)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"args_string":"(contact_id : Int64 | Nil)","args_html":"(contact_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L10"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"email=(email:String|Nil)-instance-method","name":"email=","abstract":false,"args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil)","args_html":"(email : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L18"},"def":{"name":"email=","args":[{"name":"email","external_name":"email","restriction":"String | ::Nil"}],"visibility":"Public","body":"@email = email"}},{"html_id":"etag:String|Nil-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag","return_type":"String | ::Nil","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String|Nil)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"args_string":"(etag : String | Nil)","args_html":"(etag : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String | ::Nil"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"family_name:String|Nil-instance-method","name":"family_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name","return_type":"String | ::Nil","visibility":"Public","body":"@family_name"}},{"html_id":"family_name=(family_name:String|Nil)-instance-method","name":"family_name=","abstract":false,"args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"args_string":"(family_name : String | Nil)","args_html":"(family_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L16"},"def":{"name":"family_name=","args":[{"name":"family_name","external_name":"family_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@family_name = family_name"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"first_name=(first_name:String|Nil)-instance-method","name":"first_name=","abstract":false,"args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"args_string":"(first_name : String | Nil)","args_html":"(first_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/expanded/contact.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/contact.cr#L14"},"def":{"name":"first_name=","args":[{"name":"first_name","external_name":"first_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@first_name = first_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/EventType","path":"TwentyFiveLivePro/Models/Expanded/EventType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::EventType","name":"EventType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"type_id:Int64-instance-method","name":"type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id","return_type":"Int64","visibility":"Public","body":"@type_id"}},{"html_id":"type_id=(type_id:Int64)-instance-method","name":"type_id=","abstract":false,"args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"args_string":"(type_id : Int64)","args_html":"(type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L10"},"def":{"name":"type_id=","args":[{"name":"type_id","external_name":"type_id","restriction":"Int64"}],"visibility":"Public","body":"@type_id = type_id"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/event_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/event_type.cr#L12"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Feature","path":"TwentyFiveLivePro/Models/Expanded/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L10"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"feature_name:String-instance-method","name":"feature_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name","return_type":"String","visibility":"Public","body":"@feature_name"}},{"html_id":"feature_name=(feature_name:String)-instance-method","name":"feature_name=","abstract":false,"args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"args_string":"(feature_name : String)","args_html":"(feature_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/feature.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/feature.cr#L12"},"def":{"name":"feature_name=","args":[{"name":"feature_name","external_name":"feature_name","restriction":"String"}],"visibility":"Public","body":"@feature_name = feature_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Layout","path":"TwentyFiveLivePro/Models/Expanded/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L10"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name","return_type":"String","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"args_string":"(layout_name : String)","args_html":"(layout_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/layout.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/layout.cr#L12"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String"}],"visibility":"Public","body":"@layout_name = layout_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Organization","path":"TwentyFiveLivePro/Models/Expanded/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L10"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization.cr#L14"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/OrganizationType","path":"TwentyFiveLivePro/Models/Expanded/OrganizationType.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::OrganizationType","name":"OrganizationType","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L10"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"organization_type_name:String-instance-method","name":"organization_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name","return_type":"String","visibility":"Public","body":"@organization_type_name"}},{"html_id":"organization_type_name=(organization_type_name:String)-instance-method","name":"organization_type_name=","abstract":false,"args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"args_string":"(organization_type_name : String)","args_html":"(organization_type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/organization_type.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/organization_type.cr#L12"},"def":{"name":"organization_type_name=","args":[{"name":"organization_type_name","external_name":"organization_type_name","restriction":"String"}],"visibility":"Public","body":"@organization_type_name = organization_type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/ParentNode","path":"TwentyFiveLivePro/Models/Expanded/ParentNode.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::ParentNode","name":"ParentNode","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"end_dt:String-instance-method","name":"end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt","return_type":"String","visibility":"Public","body":"@end_dt"}},{"html_id":"end_dt=(end_dt:String)-instance-method","name":"end_dt=","abstract":false,"args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"args_string":"(end_dt : String)","args_html":"(end_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L24"},"def":{"name":"end_dt=","args":[{"name":"end_dt","external_name":"end_dt","restriction":"String"}],"visibility":"Public","body":"@end_dt = end_dt"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L10"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"locator:String-instance-method","name":"locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator","return_type":"String","visibility":"Public","body":"@locator"}},{"html_id":"locator=(locator:String)-instance-method","name":"locator=","abstract":false,"args":[{"name":"locator","external_name":"locator","restriction":"String"}],"args_string":"(locator : String)","args_html":"(locator : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L12"},"def":{"name":"locator=","args":[{"name":"locator","external_name":"locator","restriction":"String"}],"visibility":"Public","body":"@locator = locator"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L14"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"node_type:String-instance-method","name":"node_type","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type","return_type":"String","visibility":"Public","body":"@node_type"}},{"html_id":"node_type=(node_type:String)-instance-method","name":"node_type=","abstract":false,"args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"args_string":"(node_type : String)","args_html":"(node_type : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L18"},"def":{"name":"node_type=","args":[{"name":"node_type","external_name":"node_type","restriction":"String"}],"visibility":"Public","body":"@node_type = node_type"}},{"html_id":"start_dt:String-instance-method","name":"start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt","return_type":"String","visibility":"Public","body":"@start_dt"}},{"html_id":"start_dt=(start_dt:String)-instance-method","name":"start_dt=","abstract":false,"args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"args_string":"(start_dt : String)","args_html":"(start_dt : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L22"},"def":{"name":"start_dt=","args":[{"name":"start_dt","external_name":"start_dt","restriction":"String"}],"visibility":"Public","body":"@start_dt = start_dt"}},{"html_id":"title:String-instance-method","name":"title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title","return_type":"String","visibility":"Public","body":"@title"}},{"html_id":"title=(title:String)-instance-method","name":"title=","abstract":false,"args":[{"name":"title","external_name":"title","restriction":"String"}],"args_string":"(title : String)","args_html":"(title : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L16"},"def":{"name":"title=","args":[{"name":"title","external_name":"title","restriction":"String"}],"visibility":"Public","body":"@title = title"}},{"html_id":"type_name:String-instance-method","name":"type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name","return_type":"String","visibility":"Public","body":"@type_name"}},{"html_id":"type_name=(type_name:String)-instance-method","name":"type_name=","abstract":false,"args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"args_string":"(type_name : String)","args_html":"(type_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/parent_node.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/parent_node.cr#L20"},"def":{"name":"type_name=","args":[{"name":"type_name","external_name":"type_name","restriction":"String"}],"visibility":"Public","body":"@type_name = type_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Resource","path":"TwentyFiveLivePro/Models/Expanded/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"resource_id:Int64-instance-method","name":"resource_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id","return_type":"Int64","visibility":"Public","body":"@resource_id"}},{"html_id":"resource_id=(resource_id:Int64)-instance-method","name":"resource_id=","abstract":false,"args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"args_string":"(resource_id : Int64)","args_html":"(resource_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L10"},"def":{"name":"resource_id=","args":[{"name":"resource_id","external_name":"resource_id","restriction":"Int64"}],"visibility":"Public","body":"@resource_id = resource_id"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/resource.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/resource.cr#L14"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Role","path":"TwentyFiveLivePro/Models/Expanded/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L10"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}},{"html_id":"role_name:String-instance-method","name":"role_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name","return_type":"String","visibility":"Public","body":"@role_name"}},{"html_id":"role_name=(role_name:String)-instance-method","name":"role_name=","abstract":false,"args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"args_string":"(role_name : String)","args_html":"(role_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/role.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/role.cr#L14"},"def":{"name":"role_name=","args":[{"name":"role_name","external_name":"role_name","restriction":"String"}],"visibility":"Public","body":"@role_name = role_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/Space","path":"TwentyFiveLivePro/Models/Expanded/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L12"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L18"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name","return_type":"String","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"args_string":"(space_formal_name : String)","args_html":"(space_formal_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L16"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L10"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/space.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/space.cr#L14"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded/State","path":"TwentyFiveLivePro/Models/Expanded/State.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Expanded::State","name":"State","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Expanded","kind":"module","full_name":"TwentyFiveLivePro::Models::Expanded","name":"Expanded"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L7"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"state:Int64-instance-method","name":"state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state","return_type":"Int64","visibility":"Public","body":"@state"}},{"html_id":"state=(state:Int64)-instance-method","name":"state=","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Int64"}],"args_string":"(state : Int64)","args_html":"(state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L10"},"def":{"name":"state=","args":[{"name":"state","external_name":"state","restriction":"Int64"}],"visibility":"Public","body":"@state = state"}},{"html_id":"state_name:String-instance-method","name":"state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name","return_type":"String","visibility":"Public","body":"@state_name"}},{"html_id":"state_name=(state_name:String)-instance-method","name":"state_name=","abstract":false,"args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"args_string":"(state_name : String)","args_html":"(state_name : String)","location":{"filename":"src/twenty_five_live_pro/models/expanded/state.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/expanded/state.cr#L12"},"def":{"name":"state_name=","args":[{"name":"state_name","external_name":"state_name","restriction":"String"}],"visibility":"Public","body":"@state_name = state_name"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Feature","path":"TwentyFiveLivePro/Models/Feature.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Feature","name":"Feature","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"feature_id:Int64-instance-method","name":"feature_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id","return_type":"Int64","visibility":"Public","body":"@feature_id"}},{"html_id":"feature_id=(feature_id:Int64)-instance-method","name":"feature_id=","abstract":false,"args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"args_string":"(feature_id : Int64)","args_html":"(feature_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L9"},"def":{"name":"feature_id=","args":[{"name":"feature_id","external_name":"feature_id","restriction":"Int64"}],"visibility":"Public","body":"@feature_id = feature_id"}},{"html_id":"quantity:Int64-instance-method","name":"quantity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity","return_type":"Int64","visibility":"Public","body":"@quantity"}},{"html_id":"quantity=(quantity:Int64)-instance-method","name":"quantity=","abstract":false,"args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"args_string":"(quantity : Int64)","args_html":"(quantity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/feature.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/feature.cr#L11"},"def":{"name":"quantity=","args":[{"name":"quantity","external_name":"quantity","restriction":"Int64"}],"visibility":"Public","body":"@quantity = quantity"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Layout","path":"TwentyFiveLivePro/Models/Layout.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Layout","name":"Layout","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"default_layout:Bool-instance-method","name":"default_layout","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout","return_type":"Bool","visibility":"Public","body":"@default_layout"}},{"html_id":"default_layout=(default_layout:Bool)-instance-method","name":"default_layout=","abstract":false,"args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"args_string":"(default_layout : Bool)","args_html":"(default_layout : Bool)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L11"},"def":{"name":"default_layout=","args":[{"name":"default_layout","external_name":"default_layout","restriction":"Bool"}],"visibility":"Public","body":"@default_layout = default_layout"}},{"html_id":"layout_capacity:Int64-instance-method","name":"layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity","return_type":"Int64","visibility":"Public","body":"@layout_capacity"}},{"html_id":"layout_capacity=(layout_capacity:Int64)-instance-method","name":"layout_capacity=","abstract":false,"args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"args_string":"(layout_capacity : Int64)","args_html":"(layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L17"},"def":{"name":"layout_capacity=","args":[{"name":"layout_capacity","external_name":"layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@layout_capacity = layout_capacity"}},{"html_id":"layout_diagram_id:Int64|Nil-instance-method","name":"layout_diagram_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_diagram_id"}},{"html_id":"layout_diagram_id=(layout_diagram_id:Int64|Nil)-instance-method","name":"layout_diagram_id=","abstract":false,"args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_diagram_id : Int64 | Nil)","args_html":"(layout_diagram_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L15"},"def":{"name":"layout_diagram_id=","args":[{"name":"layout_diagram_id","external_name":"layout_diagram_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_diagram_id = layout_diagram_id"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L9"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_photo_id:Int64|Nil-instance-method","name":"layout_photo_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@layout_photo_id"}},{"html_id":"layout_photo_id=(layout_photo_id:Int64|Nil)-instance-method","name":"layout_photo_id=","abstract":false,"args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"args_string":"(layout_photo_id : Int64 | Nil)","args_html":"(layout_photo_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/layout.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/layout.cr#L13"},"def":{"name":"layout_photo_id=","args":[{"name":"layout_photo_id","external_name":"layout_photo_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@layout_photo_id = layout_photo_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Organization","path":"TwentyFiveLivePro/Models/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L18"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String|Nil-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title","return_type":"String | ::Nil","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String|Nil)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"args_string":"(organization_title : String | Nil)","args_html":"(organization_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L21"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64|Nil-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id","return_type":"Int64 | ::Nil","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64|Nil)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"args_string":"(organization_type_id : Int64 | Nil)","args_html":"(organization_type_id : Int64 | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization.cr#L24"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","path":"TwentyFiveLivePro/Models/OrganizationDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L70"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail","name":"OrganizationDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L53"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L66"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Organization)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items","return_type":"Array(Organization)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Organization))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"args_string":"(items : Array(Organization))","args_html":"(items : Array(Organization))","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L49"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Organization)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/Data/Organization.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data::Organization","name":"Organization","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"organization_name:String-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name","return_type":"String","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"args_string":"(organization_name : String)","args_html":"(organization_name : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L36"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"organization_title:String-instance-method","name":"organization_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title","return_type":"String","visibility":"Public","body":"@organization_title"}},{"html_id":"organization_title=(organization_title:String)-instance-method","name":"organization_title=","abstract":false,"args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"args_string":"(organization_title : String)","args_html":"(organization_title : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L39"},"def":{"name":"organization_title=","args":[{"name":"organization_title","external_name":"organization_title","restriction":"String"}],"visibility":"Public","body":"@organization_title = organization_title"}},{"html_id":"organization_type_id:Int64-instance-method","name":"organization_type_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id","return_type":"Int64","visibility":"Public","body":"@organization_type_id"}},{"html_id":"organization_type_id=(organization_type_id:Int64)-instance-method","name":"organization_type_id=","abstract":false,"args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"args_string":"(organization_type_id : Int64)","args_html":"(organization_type_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L45"},"def":{"name":"organization_type_id=","args":[{"name":"organization_type_id","external_name":"organization_type_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_type_id = organization_type_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L42"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/OrganizationDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L55"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/OrganizationDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::OrganizationDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L56"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"organization_categories:Array(Expanded::Category)|Nil-instance-method","name":"organization_categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@organization_categories"}},{"html_id":"organization_categories=(organization_categories:Array(Expanded::Category)|Nil)-instance-method","name":"organization_categories=","abstract":false,"args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(organization_categories : Array(Expanded::Category) | Nil)","args_html":"(organization_categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L62"},"def":{"name":"organization_categories=","args":[{"name":"organization_categories","external_name":"organization_categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@organization_categories = organization_categories"}},{"html_id":"organization_types:Array(Expanded::OrganizationType)|Nil-instance-method","name":"organization_types","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types","return_type":"Array(Expanded::OrganizationType) | ::Nil","visibility":"Public","body":"@organization_types"}},{"html_id":"organization_types=(organization_types:Array(Expanded::OrganizationType)|Nil)-instance-method","name":"organization_types=","abstract":false,"args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"args_string":"(organization_types : Array(Expanded::OrganizationType) | Nil)","args_html":"(organization_types : Array(Expanded::OrganizationType) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/organization_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/organization_detail.cr#L59"},"def":{"name":"organization_types=","args":[{"name":"organization_types","external_name":"organization_types","restriction":"Array(Expanded::OrganizationType) | ::Nil"}],"visibility":"Public","body":"@organization_types = organization_types"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","path":"TwentyFiveLivePro/Models/PaginatedResponse.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L42"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse","name":"PaginatedResponse"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L38"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content/Data","path":"TwentyFiveLivePro/Models/PaginatedResponse/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/PaginatedResponse/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::PaginatedResponse::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"current_item_count:Int64-instance-method","name":"current_item_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count","return_type":"Int64","visibility":"Public","body":"@current_item_count"}},{"html_id":"current_item_count=(current_item_count:Int64)-instance-method","name":"current_item_count=","abstract":false,"args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"args_string":"(current_item_count : Int64)","args_html":"(current_item_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L28"},"def":{"name":"current_item_count=","args":[{"name":"current_item_count","external_name":"current_item_count","restriction":"Int64"}],"visibility":"Public","body":"@current_item_count = current_item_count"}},{"html_id":"items_per_page:Int64-instance-method","name":"items_per_page","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page","return_type":"Int64","visibility":"Public","body":"@items_per_page"}},{"html_id":"items_per_page=(items_per_page:Int64)-instance-method","name":"items_per_page=","abstract":false,"args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"args_string":"(items_per_page : Int64)","args_html":"(items_per_page : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L31"},"def":{"name":"items_per_page=","args":[{"name":"items_per_page","external_name":"items_per_page","restriction":"Int64"}],"visibility":"Public","body":"@items_per_page = items_per_page"}},{"html_id":"page_index:Int64-instance-method","name":"page_index","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index","return_type":"Int64","visibility":"Public","body":"@page_index"}},{"html_id":"page_index=(page_index:Int64)-instance-method","name":"page_index=","abstract":false,"args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"args_string":"(page_index : Int64)","args_html":"(page_index : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L19"},"def":{"name":"page_index=","args":[{"name":"page_index","external_name":"page_index","restriction":"Int64"}],"visibility":"Public","body":"@page_index = page_index"}},{"html_id":"paginate_key:Int64-instance-method","name":"paginate_key","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key","return_type":"Int64","visibility":"Public","body":"@paginate_key"}},{"html_id":"paginate_key=(paginate_key:Int64)-instance-method","name":"paginate_key=","abstract":false,"args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"args_string":"(paginate_key : Int64)","args_html":"(paginate_key : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L16"},"def":{"name":"paginate_key=","args":[{"name":"paginate_key","external_name":"paginate_key","restriction":"Int64"}],"visibility":"Public","body":"@paginate_key = paginate_key"}},{"html_id":"paging_link_template:String-instance-method","name":"paging_link_template","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template","return_type":"String","visibility":"Public","body":"@paging_link_template"}},{"html_id":"paging_link_template=(paging_link_template:String)-instance-method","name":"paging_link_template=","abstract":false,"args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"args_string":"(paging_link_template : String)","args_html":"(paging_link_template : String)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L34"},"def":{"name":"paging_link_template=","args":[{"name":"paging_link_template","external_name":"paging_link_template","restriction":"String"}],"visibility":"Public","body":"@paging_link_template = paging_link_template"}},{"html_id":"total_items:Int64-instance-method","name":"total_items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items","return_type":"Int64","visibility":"Public","body":"@total_items"}},{"html_id":"total_items=(total_items:Int64)-instance-method","name":"total_items=","abstract":false,"args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"args_string":"(total_items : Int64)","args_html":"(total_items : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L25"},"def":{"name":"total_items=","args":[{"name":"total_items","external_name":"total_items","restriction":"Int64"}],"visibility":"Public","body":"@total_items = total_items"}},{"html_id":"total_pages:Int64-instance-method","name":"total_pages","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages","return_type":"Int64","visibility":"Public","body":"@total_pages"}},{"html_id":"total_pages=(total_pages:Int64)-instance-method","name":"total_pages=","abstract":false,"args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"args_string":"(total_pages : Int64)","args_html":"(total_pages : Int64)","location":{"filename":"src/twenty_five_live_pro/models/paginated_response.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/paginated_response.cr#L22"},"def":{"name":"total_pages=","args":[{"name":"total_pages","external_name":"total_pages","restriction":"Int64"}],"visibility":"Public","body":"@total_pages = total_pages"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","path":"TwentyFiveLivePro/Models/Reservations.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"engine:String|Nil-instance-method","name":"engine","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine","return_type":"String | ::Nil","visibility":"Public","body":"@engine"}},{"html_id":"engine=(engine:String|Nil)-instance-method","name":"engine=","abstract":false,"args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"args_string":"(engine : String | Nil)","args_html":"(engine : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L9"},"def":{"name":"engine=","args":[{"name":"engine","external_name":"engine","restriction":"String | ::Nil"}],"visibility":"Public","body":"@engine = engine"}},{"html_id":"reservation:Array(Data)-instance-method","name":"reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation","return_type":"Array(Data)","visibility":"Public","body":"@reservation"}},{"html_id":"reservation=(reservation:Array(Data))-instance-method","name":"reservation=","abstract":false,"args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"args_string":"(reservation : Array(Data))","args_html":"(reservation : Array(Data))","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":140,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L140"},"def":{"name":"reservation=","args":[{"name":"reservation","external_name":"reservation","restriction":"Array(Data)"}],"visibility":"Public","body":"@reservation = reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","path":"TwentyFiveLivePro/Models/Reservations/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations","name":"Reservations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"event_end_dt:Date-instance-method","name":"event_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt","return_type":"Date","visibility":"Public","body":"@event_end_dt"}},{"html_id":"event_end_dt=(event_end_dt:Date)-instance-method","name":"event_end_dt=","abstract":false,"args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"args_string":"(event_end_dt : Date)","args_html":"(event_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L21"},"def":{"name":"event_end_dt=","args":[{"name":"event_end_dt","external_name":"event_end_dt","restriction":"Date"}],"visibility":"Public","body":"@event_end_dt = event_end_dt"}},{"html_id":"event_id:Int64-instance-method","name":"event_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id","return_type":"Int64","visibility":"Public","body":"@event_id"}},{"html_id":"event_id=(event_id:Int64)-instance-method","name":"event_id=","abstract":false,"args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"args_string":"(event_id : Int64)","args_html":"(event_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L112"},"def":{"name":"event_id=","args":[{"name":"event_id","external_name":"event_id","restriction":"Int64"}],"visibility":"Public","body":"@event_id = event_id"}},{"html_id":"event_locator:String|Nil-instance-method","name":"event_locator","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator","return_type":"String | ::Nil","visibility":"Public","body":"@event_locator"}},{"html_id":"event_locator=(event_locator:String|Nil)-instance-method","name":"event_locator=","abstract":false,"args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"args_string":"(event_locator : String | Nil)","args_html":"(event_locator : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L88"},"def":{"name":"event_locator=","args":[{"name":"event_locator","external_name":"event_locator","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_locator = event_locator"}},{"html_id":"event_name:String|Nil-instance-method","name":"event_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_name"}},{"html_id":"event_name=(event_name:String|Nil)-instance-method","name":"event_name=","abstract":false,"args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"args_string":"(event_name : String | Nil)","args_html":"(event_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":130,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L130"},"def":{"name":"event_name=","args":[{"name":"event_name","external_name":"event_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_name = event_name"}},{"html_id":"event_start_dt:Date-instance-method","name":"event_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt","return_type":"Date","visibility":"Public","body":"@event_start_dt"}},{"html_id":"event_start_dt=(event_start_dt:Date)-instance-method","name":"event_start_dt=","abstract":false,"args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"args_string":"(event_start_dt : Date)","args_html":"(event_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":133,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L133"},"def":{"name":"event_start_dt=","args":[{"name":"event_start_dt","external_name":"event_start_dt","restriction":"Date"}],"visibility":"Public","body":"@event_start_dt = event_start_dt"}},{"html_id":"event_title:String|Nil-instance-method","name":"event_title","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title","return_type":"String | ::Nil","visibility":"Public","body":"@event_title"}},{"html_id":"event_title=(event_title:String|Nil)-instance-method","name":"event_title=","abstract":false,"args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"args_string":"(event_title : String | Nil)","args_html":"(event_title : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L82"},"def":{"name":"event_title=","args":[{"name":"event_title","external_name":"event_title","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_title = event_title"}},{"html_id":"event_type_class:String|Nil-instance-method","name":"event_type_class","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_class"}},{"html_id":"event_type_class=(event_type_class:String|Nil)-instance-method","name":"event_type_class=","abstract":false,"args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"args_string":"(event_type_class : String | Nil)","args_html":"(event_type_class : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L94"},"def":{"name":"event_type_class=","args":[{"name":"event_type_class","external_name":"event_type_class","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_class = event_type_class"}},{"html_id":"event_type_name:String|Nil-instance-method","name":"event_type_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name","return_type":"String | ::Nil","visibility":"Public","body":"@event_type_name"}},{"html_id":"event_type_name=(event_type_name:String|Nil)-instance-method","name":"event_type_name=","abstract":false,"args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"args_string":"(event_type_name : String | Nil)","args_html":"(event_type_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L97"},"def":{"name":"event_type_name=","args":[{"name":"event_type_name","external_name":"event_type_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@event_type_name = event_type_name"}},{"html_id":"expected_count:Int64-instance-method","name":"expected_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count","return_type":"Int64","visibility":"Public","body":"@expected_count"}},{"html_id":"expected_count=(expected_count:Int64)-instance-method","name":"expected_count=","abstract":false,"args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"args_string":"(expected_count : Int64)","args_html":"(expected_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L33"},"def":{"name":"expected_count=","args":[{"name":"expected_count","external_name":"expected_count","restriction":"Int64"}],"visibility":"Public","body":"@expected_count = expected_count"}},{"html_id":"last_mod_dt:Date-instance-method","name":"last_mod_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt","return_type":"Date","visibility":"Public","body":"@last_mod_dt"}},{"html_id":"last_mod_dt=(last_mod_dt:Date)-instance-method","name":"last_mod_dt=","abstract":false,"args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"args_string":"(last_mod_dt : Date)","args_html":"(last_mod_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L39"},"def":{"name":"last_mod_dt=","args":[{"name":"last_mod_dt","external_name":"last_mod_dt","restriction":"Date"}],"visibility":"Public","body":"@last_mod_dt = last_mod_dt"}},{"html_id":"last_mod_user:String|Nil-instance-method","name":"last_mod_user","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user","return_type":"String | ::Nil","visibility":"Public","body":"@last_mod_user"}},{"html_id":"last_mod_user=(last_mod_user:String|Nil)-instance-method","name":"last_mod_user=","abstract":false,"args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"args_string":"(last_mod_user : String | Nil)","args_html":"(last_mod_user : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L127"},"def":{"name":"last_mod_user=","args":[{"name":"last_mod_user","external_name":"last_mod_user","restriction":"String | ::Nil"}],"visibility":"Public","body":"@last_mod_user = last_mod_user"}},{"html_id":"organization_id:Int64-instance-method","name":"organization_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id","return_type":"Int64","visibility":"Public","body":"@organization_id"}},{"html_id":"organization_id=(organization_id:Int64)-instance-method","name":"organization_id=","abstract":false,"args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"args_string":"(organization_id : Int64)","args_html":"(organization_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L118"},"def":{"name":"organization_id=","args":[{"name":"organization_id","external_name":"organization_id","restriction":"Int64"}],"visibility":"Public","body":"@organization_id = organization_id"}},{"html_id":"organization_name:String|Nil-instance-method","name":"organization_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name","return_type":"String | ::Nil","visibility":"Public","body":"@organization_name"}},{"html_id":"organization_name=(organization_name:String|Nil)-instance-method","name":"organization_name=","abstract":false,"args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"args_string":"(organization_name : String | Nil)","args_html":"(organization_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L91"},"def":{"name":"organization_name=","args":[{"name":"organization_name","external_name":"organization_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@organization_name = organization_name"}},{"html_id":"post_event_dt:Date-instance-method","name":"post_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt","return_type":"Date","visibility":"Public","body":"@post_event_dt"}},{"html_id":"post_event_dt=(post_event_dt:Date)-instance-method","name":"post_event_dt=","abstract":false,"args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"args_string":"(post_event_dt : Date)","args_html":"(post_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L15"},"def":{"name":"post_event_dt=","args":[{"name":"post_event_dt","external_name":"post_event_dt","restriction":"Date"}],"visibility":"Public","body":"@post_event_dt = post_event_dt"}},{"html_id":"pre_event_dt:Date-instance-method","name":"pre_event_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt","return_type":"Date","visibility":"Public","body":"@pre_event_dt"}},{"html_id":"pre_event_dt=(pre_event_dt:Date)-instance-method","name":"pre_event_dt=","abstract":false,"args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"args_string":"(pre_event_dt : Date)","args_html":"(pre_event_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":109,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L109"},"def":{"name":"pre_event_dt=","args":[{"name":"pre_event_dt","external_name":"pre_event_dt","restriction":"Date"}],"visibility":"Public","body":"@pre_event_dt = pre_event_dt"}},{"html_id":"profile_description:String-instance-method","name":"profile_description","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description","return_type":"String","visibility":"Public","body":"@profile_description"}},{"html_id":"profile_description=(profile_description:String)-instance-method","name":"profile_description=","abstract":false,"args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"args_string":"(profile_description : String)","args_html":"(profile_description : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L24"},"def":{"name":"profile_description=","args":[{"name":"profile_description","external_name":"profile_description","restriction":"String"}],"visibility":"Public","body":"@profile_description = profile_description"}},{"html_id":"profile_id:Int64-instance-method","name":"profile_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id","return_type":"Int64","visibility":"Public","body":"@profile_id"}},{"html_id":"profile_id=(profile_id:Int64)-instance-method","name":"profile_id=","abstract":false,"args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"args_string":"(profile_id : Int64)","args_html":"(profile_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":115,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L115"},"def":{"name":"profile_id=","args":[{"name":"profile_id","external_name":"profile_id","restriction":"Int64"}],"visibility":"Public","body":"@profile_id = profile_id"}},{"html_id":"profile_name:String|Nil-instance-method","name":"profile_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name","return_type":"String | ::Nil","visibility":"Public","body":"@profile_name"}},{"html_id":"profile_name=(profile_name:String|Nil)-instance-method","name":"profile_name=","abstract":false,"args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"args_string":"(profile_name : String | Nil)","args_html":"(profile_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L27"},"def":{"name":"profile_name=","args":[{"name":"profile_name","external_name":"profile_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@profile_name = profile_name"}},{"html_id":"registered_count:Int64-instance-method","name":"registered_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count","return_type":"Int64","visibility":"Public","body":"@registered_count"}},{"html_id":"registered_count=(registered_count:Int64)-instance-method","name":"registered_count=","abstract":false,"args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"args_string":"(registered_count : Int64)","args_html":"(registered_count : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":124,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L124"},"def":{"name":"registered_count=","args":[{"name":"registered_count","external_name":"registered_count","restriction":"Int64"}],"visibility":"Public","body":"@registered_count = registered_count"}},{"html_id":"registration_label:String|Nil-instance-method","name":"registration_label","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label","return_type":"String | ::Nil","visibility":"Public","body":"@registration_label"}},{"html_id":"registration_label=(registration_label:String|Nil)-instance-method","name":"registration_label=","abstract":false,"args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"args_string":"(registration_label : String | Nil)","args_html":"(registration_label : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":136,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L136"},"def":{"name":"registration_label=","args":[{"name":"registration_label","external_name":"registration_label","restriction":"String | ::Nil"}],"visibility":"Public","body":"@registration_label = registration_label"}},{"html_id":"registration_url:String-instance-method","name":"registration_url","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url","return_type":"String","visibility":"Public","body":"@registration_url"}},{"html_id":"registration_url=(registration_url:String)-instance-method","name":"registration_url=","abstract":false,"args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"args_string":"(registration_url : String)","args_html":"(registration_url : String)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L18"},"def":{"name":"registration_url=","args":[{"name":"registration_url","external_name":"registration_url","restriction":"String"}],"visibility":"Public","body":"@registration_url = registration_url"}},{"html_id":"reservation_comment_id:String|Nil-instance-method","name":"reservation_comment_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comment_id"}},{"html_id":"reservation_comment_id=(reservation_comment_id:String|Nil)-instance-method","name":"reservation_comment_id=","abstract":false,"args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"args_string":"(reservation_comment_id : String | Nil)","args_html":"(reservation_comment_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L30"},"def":{"name":"reservation_comment_id=","args":[{"name":"reservation_comment_id","external_name":"reservation_comment_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comment_id = reservation_comment_id"}},{"html_id":"reservation_comments:String|Nil-instance-method","name":"reservation_comments","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_comments"}},{"html_id":"reservation_comments=(reservation_comments:String|Nil)-instance-method","name":"reservation_comments=","abstract":false,"args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"args_string":"(reservation_comments : String | Nil)","args_html":"(reservation_comments : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L103"},"def":{"name":"reservation_comments=","args":[{"name":"reservation_comments","external_name":"reservation_comments","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_comments = reservation_comments"}},{"html_id":"reservation_end_dt:Date-instance-method","name":"reservation_end_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt","return_type":"Date","visibility":"Public","body":"@reservation_end_dt"}},{"html_id":"reservation_end_dt=(reservation_end_dt:Date)-instance-method","name":"reservation_end_dt=","abstract":false,"args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"args_string":"(reservation_end_dt : Date)","args_html":"(reservation_end_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L121"},"def":{"name":"reservation_end_dt=","args":[{"name":"reservation_end_dt","external_name":"reservation_end_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_end_dt = reservation_end_dt"}},{"html_id":"reservation_id:Int64-instance-method","name":"reservation_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id","return_type":"Int64","visibility":"Public","body":"@reservation_id"}},{"html_id":"reservation_id=(reservation_id:Int64)-instance-method","name":"reservation_id=","abstract":false,"args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"args_string":"(reservation_id : Int64)","args_html":"(reservation_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L106"},"def":{"name":"reservation_id=","args":[{"name":"reservation_id","external_name":"reservation_id","restriction":"Int64"}],"visibility":"Public","body":"@reservation_id = reservation_id"}},{"html_id":"reservation_start_dt:Date-instance-method","name":"reservation_start_dt","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt","return_type":"Date","visibility":"Public","body":"@reservation_start_dt"}},{"html_id":"reservation_start_dt=(reservation_start_dt:Date)-instance-method","name":"reservation_start_dt=","abstract":false,"args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"args_string":"(reservation_start_dt : Date)","args_html":"(reservation_start_dt : Date)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":100,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L100"},"def":{"name":"reservation_start_dt=","args":[{"name":"reservation_start_dt","external_name":"reservation_start_dt","restriction":"Date"}],"visibility":"Public","body":"@reservation_start_dt = reservation_start_dt"}},{"html_id":"reservation_state:Int64-instance-method","name":"reservation_state","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state","return_type":"Int64","visibility":"Public","body":"@reservation_state"}},{"html_id":"reservation_state=(reservation_state:Int64)-instance-method","name":"reservation_state=","abstract":false,"args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"args_string":"(reservation_state : Int64)","args_html":"(reservation_state : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L85"},"def":{"name":"reservation_state=","args":[{"name":"reservation_state","external_name":"reservation_state","restriction":"Int64"}],"visibility":"Public","body":"@reservation_state = reservation_state"}},{"html_id":"reservation_state_name:String|Nil-instance-method","name":"reservation_state_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name","return_type":"String | ::Nil","visibility":"Public","body":"@reservation_state_name"}},{"html_id":"reservation_state_name=(reservation_state_name:String|Nil)-instance-method","name":"reservation_state_name=","abstract":false,"args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"args_string":"(reservation_state_name : String | Nil)","args_html":"(reservation_state_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L36"},"def":{"name":"reservation_state_name=","args":[{"name":"reservation_state_name","external_name":"reservation_state_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@reservation_state_name = reservation_state_name"}},{"html_id":"space_reservation:Space-instance-method","name":"space_reservation","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation","return_type":"Space","visibility":"Public","body":"@space_reservation"}},{"html_id":"space_reservation=(space_reservation:Space)-instance-method","name":"space_reservation=","abstract":false,"args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"args_string":"(space_reservation : Space)","args_html":"(space_reservation : Space)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L79"},"def":{"name":"space_reservation=","args":[{"name":"space_reservation","external_name":"space_reservation","restriction":"Space"}],"visibility":"Public","body":"@space_reservation = space_reservation"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data/Space","path":"TwentyFiveLivePro/Models/Reservations/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L41"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/Reservations/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::Reservations::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L42"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"actual_count:String|Nil-instance-method","name":"actual_count","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count","return_type":"String | ::Nil","visibility":"Public","body":"@actual_count"}},{"html_id":"actual_count=(actual_count:String|Nil)-instance-method","name":"actual_count=","abstract":false,"args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"args_string":"(actual_count : String | Nil)","args_html":"(actual_count : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L69"},"def":{"name":"actual_count=","args":[{"name":"actual_count","external_name":"actual_count","restriction":"String | ::Nil"}],"visibility":"Public","body":"@actual_count = actual_count"}},{"html_id":"default_layout_capacity:String|Nil-instance-method","name":"default_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity","return_type":"String | ::Nil","visibility":"Public","body":"@default_layout_capacity"}},{"html_id":"default_layout_capacity=(default_layout_capacity:String|Nil)-instance-method","name":"default_layout_capacity=","abstract":false,"args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"args_string":"(default_layout_capacity : String | Nil)","args_html":"(default_layout_capacity : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L45"},"def":{"name":"default_layout_capacity=","args":[{"name":"default_layout_capacity","external_name":"default_layout_capacity","restriction":"String | ::Nil"}],"visibility":"Public","body":"@default_layout_capacity = default_layout_capacity"}},{"html_id":"formal_name:String|Nil-instance-method","name":"formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@formal_name"}},{"html_id":"formal_name=(formal_name:String|Nil)-instance-method","name":"formal_name=","abstract":false,"args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"args_string":"(formal_name : String | Nil)","args_html":"(formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":75,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L75"},"def":{"name":"formal_name=","args":[{"name":"formal_name","external_name":"formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@formal_name = formal_name"}},{"html_id":"layout_id:Int64-instance-method","name":"layout_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id","return_type":"Int64","visibility":"Public","body":"@layout_id"}},{"html_id":"layout_id=(layout_id:Int64)-instance-method","name":"layout_id=","abstract":false,"args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"args_string":"(layout_id : Int64)","args_html":"(layout_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L51"},"def":{"name":"layout_id=","args":[{"name":"layout_id","external_name":"layout_id","restriction":"Int64"}],"visibility":"Public","body":"@layout_id = layout_id"}},{"html_id":"layout_name:String|Nil-instance-method","name":"layout_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name","return_type":"String | ::Nil","visibility":"Public","body":"@layout_name"}},{"html_id":"layout_name=(layout_name:String|Nil)-instance-method","name":"layout_name=","abstract":false,"args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"args_string":"(layout_name : String | Nil)","args_html":"(layout_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L54"},"def":{"name":"layout_name=","args":[{"name":"layout_name","external_name":"layout_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@layout_name = layout_name"}},{"html_id":"selected_layout_capacity:Int64-instance-method","name":"selected_layout_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity","return_type":"Int64","visibility":"Public","body":"@selected_layout_capacity"}},{"html_id":"selected_layout_capacity=(selected_layout_capacity:Int64)-instance-method","name":"selected_layout_capacity=","abstract":false,"args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"args_string":"(selected_layout_capacity : Int64)","args_html":"(selected_layout_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L66"},"def":{"name":"selected_layout_capacity=","args":[{"name":"selected_layout_capacity","external_name":"selected_layout_capacity","restriction":"Int64"}],"visibility":"Public","body":"@selected_layout_capacity = selected_layout_capacity"}},{"html_id":"shared:String|Nil-instance-method","name":"shared","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared","return_type":"String | ::Nil","visibility":"Public","body":"@shared"}},{"html_id":"shared=(shared:String|Nil)-instance-method","name":"shared=","abstract":false,"args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"args_string":"(shared : String | Nil)","args_html":"(shared : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L48"},"def":{"name":"shared=","args":[{"name":"shared","external_name":"shared","restriction":"String | ::Nil"}],"visibility":"Public","body":"@shared = shared"}},{"html_id":"space_id:Int64-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id","return_type":"Int64","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:Int64)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"args_string":"(space_id : Int64)","args_html":"(space_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L72"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"Int64"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"space_instruction_id:String|Nil-instance-method","name":"space_instruction_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_instruction_id"}},{"html_id":"space_instruction_id=(space_instruction_id:String|Nil)-instance-method","name":"space_instruction_id=","abstract":false,"args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"args_string":"(space_instruction_id : String | Nil)","args_html":"(space_instruction_id : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L63"},"def":{"name":"space_instruction_id=","args":[{"name":"space_instruction_id","external_name":"space_instruction_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instruction_id = space_instruction_id"}},{"html_id":"space_instructions:String|Nil-instance-method","name":"space_instructions","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions","return_type":"String | ::Nil","visibility":"Public","body":"@space_instructions"}},{"html_id":"space_instructions=(space_instructions:String|Nil)-instance-method","name":"space_instructions=","abstract":false,"args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"args_string":"(space_instructions : String | Nil)","args_html":"(space_instructions : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L57"},"def":{"name":"space_instructions=","args":[{"name":"space_instructions","external_name":"space_instructions","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_instructions = space_instructions"}},{"html_id":"space_name:String|Nil-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String|Nil)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"args_string":"(space_name : String | Nil)","args_html":"(space_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/reservations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/reservations.cr#L60"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_name = space_name"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Resource","path":"TwentyFiveLivePro/Models/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L21"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource.cr#L18"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","path":"TwentyFiveLivePro/Models/ResourceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L9"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L64"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","path":"TwentyFiveLivePro/Models/ResourceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L11"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail","name":"ResourceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L12"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L47"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:Array(ExpandedInfo)|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info","return_type":"Array(ExpandedInfo) | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:Array(ExpandedInfo)|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"args_string":"(expanded_info : Array(ExpandedInfo) | Nil)","args_html":"(expanded_info : Array(ExpandedInfo) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L60"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"Array(ExpandedInfo) | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L15"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L18"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Resource)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items","return_type":"Array(Resource)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Resource))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"args_string":"(items : Array(Resource))","args_html":"(items : Array(Resource))","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L43"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Resource)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/Data/Resource.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data::Resource","name":"Resource","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L23"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L24"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L33"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L30"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L27"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"resource_name:String-instance-method","name":"resource_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name","return_type":"String","visibility":"Public","body":"@resource_name"}},{"html_id":"resource_name=(resource_name:String)-instance-method","name":"resource_name=","abstract":false,"args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"args_string":"(resource_name : String)","args_html":"(resource_name : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L36"},"def":{"name":"resource_name=","args":[{"name":"resource_name","external_name":"resource_name","restriction":"String"}],"visibility":"Public","body":"@resource_name = resource_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L39"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/ResourceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L49"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/ResourceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::ResourceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L50"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/resource_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/resource_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Role","path":"TwentyFiveLivePro/Models/Role.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Role","name":"Role","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"contact_id:Int64-instance-method","name":"contact_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id","return_type":"Int64","visibility":"Public","body":"@contact_id"}},{"html_id":"contact_id=(contact_id:Int64)-instance-method","name":"contact_id=","abstract":false,"args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"args_string":"(contact_id : Int64)","args_html":"(contact_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L12"},"def":{"name":"contact_id=","args":[{"name":"contact_id","external_name":"contact_id","restriction":"Int64"}],"visibility":"Public","body":"@contact_id = contact_id"}},{"html_id":"role_id:Int64-instance-method","name":"role_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id","return_type":"Int64","visibility":"Public","body":"@role_id"}},{"html_id":"role_id=(role_id:Int64)-instance-method","name":"role_id=","abstract":false,"args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"args_string":"(role_id : Int64)","args_html":"(role_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/role.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/role.cr#L9"},"def":{"name":"role_id=","args":[{"name":"role_id","external_name":"role_id","restriction":"Int64"}],"visibility":"Public","body":"@role_id = role_id"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/Space","path":"TwentyFiveLivePro/Models/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"can_request:Bool-instance-method","name":"can_request","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request","return_type":"Bool","visibility":"Public","body":"@can_request"}},{"html_id":"can_request=(can_request:Bool)-instance-method","name":"can_request=","abstract":false,"args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"args_string":"(can_request : Bool)","args_html":"(can_request : Bool)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L27"},"def":{"name":"can_request=","args":[{"name":"can_request","external_name":"can_request","restriction":"Bool"}],"visibility":"Public","body":"@can_request = can_request"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L15"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L12"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L9"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L24"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L21"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space.cr#L18"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","path":"TwentyFiveLivePro/Models/SpaceDetail.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models","kind":"module","full_name":"TwentyFiveLivePro::Models","name":"Models"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L8"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"content:Content-instance-method","name":"content","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content","return_type":"Content","visibility":"Public","body":"@content"}},{"html_id":"content=(content:Content)-instance-method","name":"content=","abstract":false,"args":[{"name":"content","external_name":"content","restriction":"Content"}],"args_string":"(content : Content)","args_html":"(content : Content)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L96"},"def":{"name":"content=","args":[{"name":"content","external_name":"content","restriction":"Content"}],"visibility":"Public","body":"@content = content"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","path":"TwentyFiveLivePro/Models/SpaceDetail/Content.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail","name":"SpaceDetail"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L11"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"data:Data-instance-method","name":"data","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data","return_type":"Data","visibility":"Public","body":"@data"}},{"html_id":"data=(data:Data)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Data"}],"args_string":"(data : Data)","args_html":"(data : Data)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L67"},"def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"Data"}],"visibility":"Public","body":"@data = data"}},{"html_id":"expanded_info:ExpandedInfo|Nil-instance-method","name":"expanded_info","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info","return_type":"ExpandedInfo | ::Nil","visibility":"Public","body":"@expanded_info"}},{"html_id":"expanded_info=(expanded_info:ExpandedInfo|Nil)-instance-method","name":"expanded_info=","abstract":false,"args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"args_string":"(expanded_info : ExpandedInfo | Nil)","args_html":"(expanded_info : ExpandedInfo | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L92"},"def":{"name":"expanded_info=","args":[{"name":"expanded_info","external_name":"expanded_info","restriction":"ExpandedInfo | ::Nil"}],"visibility":"Public","body":"@expanded_info = expanded_info"}},{"html_id":"request_id:Int64-instance-method","name":"request_id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id","return_type":"Int64","visibility":"Public","body":"@request_id"}},{"html_id":"request_id=(request_id:Int64)-instance-method","name":"request_id=","abstract":false,"args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"args_string":"(request_id : Int64)","args_html":"(request_id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L14"},"def":{"name":"request_id=","args":[{"name":"request_id","external_name":"request_id","restriction":"Int64"}],"visibility":"Public","body":"@request_id = request_id"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L17"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L20"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"items:Array(Space)-instance-method","name":"items","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items","return_type":"Array(Space)","visibility":"Public","body":"@items"}},{"html_id":"items=(items:Array(Space))-instance-method","name":"items=","abstract":false,"args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"args_string":"(items : Array(Space))","args_html":"(items : Array(Space))","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L63"},"def":{"name":"items=","args":[{"name":"items","external_name":"items","restriction":"Array(Space)"}],"visibility":"Public","body":"@items = items"}}],"types":[{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/Data/Space.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L22"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/Data","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::Data","name":"Data"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L23"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes","return_type":"Array(Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"args_string":"(attributes : Array(Attribute) | Nil)","args_html":"(attributes : Array(Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L56"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories","return_type":"Array(Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"args_string":"(categories : Array(Category) | Nil)","args_html":"(categories : Array(Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L53"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"etag:String-instance-method","name":"etag","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag","return_type":"String","visibility":"Public","body":"@etag"}},{"html_id":"etag=(etag:String)-instance-method","name":"etag=","abstract":false,"args":[{"name":"etag","external_name":"etag","restriction":"String"}],"args_string":"(etag : String)","args_html":"(etag : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L32"},"def":{"name":"etag=","args":[{"name":"etag","external_name":"etag","restriction":"String"}],"visibility":"Public","body":"@etag = etag"}},{"html_id":"features:Array(Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features","return_type":"Array(Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"args_string":"(features : Array(Feature) | Nil)","args_html":"(features : Array(Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L50"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"id:Int64-instance-method","name":"id","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id","return_type":"Int64","visibility":"Public","body":"@id"}},{"html_id":"id=(id:Int64)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"Int64"}],"args_string":"(id : Int64)","args_html":"(id : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L29"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"Int64"}],"visibility":"Public","body":"@id = id"}},{"html_id":"kind:String-instance-method","name":"kind","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind","return_type":"String","visibility":"Public","body":"@kind"}},{"html_id":"kind=(kind:String)-instance-method","name":"kind=","abstract":false,"args":[{"name":"kind","external_name":"kind","restriction":"String"}],"args_string":"(kind : String)","args_html":"(kind : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L26"},"def":{"name":"kind=","args":[{"name":"kind","external_name":"kind","restriction":"String"}],"visibility":"Public","body":"@kind = kind"}},{"html_id":"layouts:Array(Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts","return_type":"Array(Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"args_string":"(layouts : Array(Layout) | Nil)","args_html":"(layouts : Array(Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L47"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"max_capacity:Int64-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity","return_type":"Int64","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:Int64)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"args_string":"(max_capacity : Int64)","args_html":"(max_capacity : Int64)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L41"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"Int64"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"roles:Array(Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles","return_type":"Array(Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"args_string":"(roles : Array(Role) | Nil)","args_html":"(roles : Array(Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L59"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}},{"html_id":"space_formal_name:String|Nil-instance-method","name":"space_formal_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name","return_type":"String | ::Nil","visibility":"Public","body":"@space_formal_name"}},{"html_id":"space_formal_name=(space_formal_name:String|Nil)-instance-method","name":"space_formal_name=","abstract":false,"args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"args_string":"(space_formal_name : String | Nil)","args_html":"(space_formal_name : String | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L38"},"def":{"name":"space_formal_name=","args":[{"name":"space_formal_name","external_name":"space_formal_name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_formal_name = space_formal_name"}},{"html_id":"space_name:String-instance-method","name":"space_name","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name","return_type":"String","visibility":"Public","body":"@space_name"}},{"html_id":"space_name=(space_name:String)-instance-method","name":"space_name=","abstract":false,"args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"args_string":"(space_name : String)","args_html":"(space_name : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L35"},"def":{"name":"space_name=","args":[{"name":"space_name","external_name":"space_name","restriction":"String"}],"visibility":"Public","body":"@space_name = space_name"}},{"html_id":"updated:String-instance-method","name":"updated","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated","return_type":"String","visibility":"Public","body":"@updated"}},{"html_id":"updated=(updated:String)-instance-method","name":"updated=","abstract":false,"args":[{"name":"updated","external_name":"updated","restriction":"String"}],"args_string":"(updated : String)","args_html":"(updated : String)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L44"},"def":{"name":"updated=","args":[{"name":"updated","external_name":"updated","restriction":"String"}],"visibility":"Public","body":"@updated = updated"}}]}]},{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo","path":"TwentyFiveLivePro/Models/SpaceDetail/Content/ExpandedInfo.html","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content::ExpandedInfo","name":"ExpandedInfo","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L69"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/TwentyFiveLivePro/Models/SpaceDetail/Content","kind":"struct","full_name":"TwentyFiveLivePro::Models::SpaceDetail::Content","name":"Content"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L70"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"attributes:Array(Expanded::Attribute)|Nil-instance-method","name":"attributes","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes","return_type":"Array(Expanded::Attribute) | ::Nil","visibility":"Public","body":"@attributes"}},{"html_id":"attributes=(attributes:Array(Expanded::Attribute)|Nil)-instance-method","name":"attributes=","abstract":false,"args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"args_string":"(attributes : Array(Expanded::Attribute) | Nil)","args_html":"(attributes : Array(Expanded::Attribute) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L82"},"def":{"name":"attributes=","args":[{"name":"attributes","external_name":"attributes","restriction":"Array(Expanded::Attribute) | ::Nil"}],"visibility":"Public","body":"@attributes = attributes"}},{"html_id":"categories:Array(Expanded::Category)|Nil-instance-method","name":"categories","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories","return_type":"Array(Expanded::Category) | ::Nil","visibility":"Public","body":"@categories"}},{"html_id":"categories=(categories:Array(Expanded::Category)|Nil)-instance-method","name":"categories=","abstract":false,"args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"args_string":"(categories : Array(Expanded::Category) | Nil)","args_html":"(categories : Array(Expanded::Category) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L79"},"def":{"name":"categories=","args":[{"name":"categories","external_name":"categories","restriction":"Array(Expanded::Category) | ::Nil"}],"visibility":"Public","body":"@categories = categories"}},{"html_id":"contacts:Array(Expanded::Contact)|Nil-instance-method","name":"contacts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts","return_type":"Array(Expanded::Contact) | ::Nil","visibility":"Public","body":"@contacts"}},{"html_id":"contacts=(contacts:Array(Expanded::Contact)|Nil)-instance-method","name":"contacts=","abstract":false,"args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"args_string":"(contacts : Array(Expanded::Contact) | Nil)","args_html":"(contacts : Array(Expanded::Contact) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L88"},"def":{"name":"contacts=","args":[{"name":"contacts","external_name":"contacts","restriction":"Array(Expanded::Contact) | ::Nil"}],"visibility":"Public","body":"@contacts = contacts"}},{"html_id":"features:Array(Expanded::Feature)|Nil-instance-method","name":"features","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features","return_type":"Array(Expanded::Feature) | ::Nil","visibility":"Public","body":"@features"}},{"html_id":"features=(features:Array(Expanded::Feature)|Nil)-instance-method","name":"features=","abstract":false,"args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"args_string":"(features : Array(Expanded::Feature) | Nil)","args_html":"(features : Array(Expanded::Feature) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L76"},"def":{"name":"features=","args":[{"name":"features","external_name":"features","restriction":"Array(Expanded::Feature) | ::Nil"}],"visibility":"Public","body":"@features = features"}},{"html_id":"layouts:Array(Expanded::Layout)|Nil-instance-method","name":"layouts","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts","return_type":"Array(Expanded::Layout) | ::Nil","visibility":"Public","body":"@layouts"}},{"html_id":"layouts=(layouts:Array(Expanded::Layout)|Nil)-instance-method","name":"layouts=","abstract":false,"args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"args_string":"(layouts : Array(Expanded::Layout) | Nil)","args_html":"(layouts : Array(Expanded::Layout) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L73"},"def":{"name":"layouts=","args":[{"name":"layouts","external_name":"layouts","restriction":"Array(Expanded::Layout) | ::Nil"}],"visibility":"Public","body":"@layouts = layouts"}},{"html_id":"roles:Array(Expanded::Role)|Nil-instance-method","name":"roles","abstract":false,"location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles","return_type":"Array(Expanded::Role) | ::Nil","visibility":"Public","body":"@roles"}},{"html_id":"roles=(roles:Array(Expanded::Role)|Nil)-instance-method","name":"roles=","abstract":false,"args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"args_string":"(roles : Array(Expanded::Role) | Nil)","args_html":"(roles : Array(Expanded::Role) | Nil)","location":{"filename":"src/twenty_five_live_pro/models/space_detail.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/models/space_detail.cr#L85"},"def":{"name":"roles=","args":[{"name":"roles","external_name":"roles","restriction":"Array(Expanded::Role) | ::Nil"}],"visibility":"Public","body":"@roles = roles"}}]}]}]}]},{"html_id":"drivers/TwentyFiveLivePro/RoomSchedule","path":"TwentyFiveLivePro/RoomSchedule.html","kind":"class","full_name":"TwentyFiveLivePro::RoomSchedule","name":"RoomSchedule","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/TwentyFiveLivePro","kind":"module","full_name":"TwentyFiveLivePro","name":"TwentyFiveLivePro"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"fetch_and_expose_todays_events-instance-method","name":"fetch_and_expose_todays_events","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L32"},"def":{"name":"fetch_and_expose_todays_events","visibility":"Public","body":"if @request_running\n return\nend\n@request_lock.synchronize do\n begin\n @request_running = true\n @next_countdown.try(&.cancel)\n @next_countdown = nil\n today = Time.local\n todays_events = fetch_events(today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y-%m-%d\"), today.to_s(\"%Y%m%d\"))\n todays_events.sort_by() do |__arg1|\n __arg1.date.duration\n end.reverse!\n todays_events.each_with_index do |e, i|\n if (todays_events.skip(i + 1)).find do |f|\n contains?(e, f)\n end\n e.container = true\n else\n e.container = false\n end\n end\n current_and_past_events, future_events = todays_events.partition do |e|\n Time.local > e.date.start_date\n end\n current_events, past_events = current_and_past_events.partition do |e|\n in_progress?(e)\n end\n if @debug\n self[:todays_upcoming_events] = future_events\n self[:todays_past_events] = past_events\n end\n next_event = future_events.min_by? do |__arg2|\n __arg2.date.start_date\n end\n previous_event = past_events.max_by? do |__arg3|\n __arg3.date.end_date\n end\n current_event = current_events.find do |e|\n !e.container\n end\n current_container_event = current_events.find(&.container)\n update_event_details(previous_event, current_event, next_event)\n advance_countdowns(previous_event, current_event, next_event, current_container_event)\n todays_events\n ensure\n @request_running = false\n end\nend\n"}},{"html_id":"fetch_events(start_date:String,end_date:String,since:String)-instance-method","name":"fetch_events","abstract":false,"args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"args_string":"(start_date : String, end_date : String, since : String)","args_html":"(start_date : String, end_date : String, since : String)","location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L76"},"def":{"name":"fetch_events","args":[{"name":"start_date","external_name":"start_date","restriction":"String"},{"name":"end_date","external_name":"end_date","restriction":"String"},{"name":"since","external_name":"since","restriction":"String"}],"visibility":"Public","body":"relevant_events = [] of Models::Event\nevents = Array(Models::Event).from_json((twenty_five_live_pro.list_events(1, 100, since, nil)).get.not_nil!.to_json)\nevents.each do |event|\n details = Models::EventDetail.from_json((twenty_five_live_pro.get_event_details(event.id, [\"all\"], [\"all\"])).get.not_nil!.to_json)\n if expanded_info = details.content.expanded_info\n if spaces = expanded_info.spaces\n if spaces.empty?\n next\n end\n if @space_id == spaces.first.space_id\n if event_data = details.content.data\n if event_items = event_data.items\n if event_items.empty?\n next\n end\n event_items.each do |event_item|\n if date = event_item.date\n if (date.start_date.to_rfc3339.includes?(start_date)) && (date.end_date.to_rfc3339.includes?(start_date))\n relevant_events.push(Models::Event.from_json(event_item.to_json))\n end\n end\n end\n end\n end\n end\n end\n end\nend\nrelevant_events\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/twenty_five_live_pro/room_schedule.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/twenty_five_live_pro/room_schedule.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@debug = (setting(Bool, :debug)) || false\n@space_id = setting(String, :twenty_five_live_pro_space_id)\n@cron_string = setting(String, :polling_cron)\nschedule.clear\nschedule.cron(@cron_string, immediate: true) do\n fetch_and_expose_todays_events\nend\n"}}]}]},{"html_id":"drivers/UbiPark","path":"UbiPark.html","kind":"module","full_name":"UbiPark","name":"UbiPark","abstract":false,"locations":[{"filename":"src/ubipark/api.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/UbiPark/API","path":"UbiPark/API.html","kind":"class","full_name":"UbiPark::API","name":"API","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/ubipark/api.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/UbiPark","kind":"module","full_name":"UbiPark","name":"UbiPark"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"list_products(car_park_id:Int32|Nil,tenant_id:Int32|Nil)-instance-method","name":"list_products","abstract":false,"args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","args_html":"(car_park_id : Int32 | Nil, tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L84"},"def":{"name":"list_products","args":[{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32 | ::Nil"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif car_park_id.nil?\nelse\n query.push(\"carParkID=#{car_park_id}\")\nend\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/productList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_reasons(tenant_id:Int32|Nil)-instance-method","name":"list_reasons","abstract":false,"args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"args_string":"(tenant_id : Int32 | Nil)","args_html":"(tenant_id : Int32 | Nil)","location":{"filename":"src/ubipark/api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L105"},"def":{"name":"list_reasons","args":[{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"query = [] of String\nif tenant_id.nil?\nelse\n query.push(\"tenantID=#{tenant_id}\")\nend\nurl = query.size > 0 ? \"/api/payment/reasonList?#{query.join(\"&\")}\" : \"/api/payment/productList\"\nresponse = http(\"GET\", url, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_userpermits(max_records:Int32,offset:Int32,from_last_modified_time:String,car_park_id:Int32,user_id:Int32)-instance-method","name":"list_userpermits","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String, car_park_id : Int32, user_id : Int32)","location":{"filename":"src/ubipark/api.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L57"},"def":{"name":"list_userpermits","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"},{"name":"car_park_id","external_name":"car_park_id","restriction":"Int32"},{"name":"user_id","external_name":"user_id","restriction":"Int32"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time, \"carParkId\" => car_park_id, \"userId\" => user_id}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/userpermit/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"list_users(max_records:Int32,offset:Int32,from_last_modified_time:String)-instance-method","name":"list_users","abstract":false,"args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"args_string":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","args_html":"(max_records : Int32, offset : Int32, from_last_modified_time : String)","location":{"filename":"src/ubipark/api.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L37"},"def":{"name":"list_users","args":[{"name":"max_records","external_name":"max_records","restriction":"Int32"},{"name":"offset","external_name":"offset","restriction":"Int32"},{"name":"from_last_modified_time","external_name":"from_last_modified_time","restriction":"String"}],"visibility":"Public","body":"body = {\"maxRecords\" => max_records, \"offset\" => offset, \"fromLastModifiedTime\" => from_last_modified_time}.to_json\nresponse = http(\"GET\", \"/data/export/#{@api_version}/user/list\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"make_payment(payment_id:String,promise_pay_card_name:String,user_id:String,tenant_id:Int32,product_id:String,from_date:String,to_date:String,amount:Float64)-instance-method","name":"make_payment","abstract":false,"args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"args_string":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","args_html":"(payment_id : String, promise_pay_card_name : String, user_id : String, tenant_id : Int32, product_id : String, from_date : String, to_date : String, amount : Float64)","location":{"filename":"src/ubipark/api.cr","line_number":125,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L125"},"def":{"name":"make_payment","args":[{"name":"payment_id","external_name":"payment_id","restriction":"String"},{"name":"promise_pay_card_name","external_name":"promise_pay_card_name","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"tenant_id","external_name":"tenant_id","restriction":"Int32"},{"name":"product_id","external_name":"product_id","restriction":"String"},{"name":"from_date","external_name":"from_date","restriction":"String"},{"name":"to_date","external_name":"to_date","restriction":"String"},{"name":"amount","external_name":"amount","restriction":"Float64"}],"visibility":"Public","body":"if amount < 0\n raise(\"amount can't be less than zero\")\nend\nbody = {\"paymentID\" => payment_id, \"promisePayCardName\" => promise_pay_card_name, \"userID\" => user_id, \"tenantID\" => tenant_id, \"productID\" => product_id, \"fromDate\" => from_date, \"toDate\" => to_date, \"amount\" => (\"%.2f\" % amount).to_f64}.to_json\nresponse = post(\"/api/payment/makepayment\", body: body, headers: HTTP::Headers {\"X-ApiKey\" => @api_key, \"X-ApiTenantID\" => @tenant_id.to_s, \"User-Agent\" => @user_agent, \"Content-Type\" => \"application/json\"})\nlogger.debug do\n \"response status code: #{response.status_code}\"\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nif response.success?\nelse\n self[:error] = \"The response returned by the server had a status code of #{response.status_code}, see the logs for the response body\"\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L17"},"def":{"name":"on_load","visibility":"Public","body":"on_update"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/ubipark/api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/ubipark/api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)\n@tenant_id = setting(Int32, :tenant_id)\n@api_version = setting(String, :api_version)\n@user_agent = (setting?(String, :user_agent)) || \"PlaceOS\"\n"}}]}]},{"html_id":"drivers/Union","path":"Union.html","kind":"struct","full_name":"Union(*T)","name":"Union","abstract":false,"superclass":{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},"ancestors":[{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"lib/http-params-serializable/src/http-params-serializable/ext/union.cr","line_number":2,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/lib/http-params-serializable/src/http-params-serializable/ext/union.cr#L2"},{"filename":"src/place/router/settings.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L170"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"FIXME: submit as PR to crystal standard lib to support this neatly","summary":"

FIXME submit as PR to crystal standard lib to support this neatly

","class_methods":[{"html_id":"from_json_object_key?(key:String)-class-method","name":"from_json_object_key?","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String)","args_html":"(key : String)","location":{"filename":"src/place/router/settings.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/place/router/settings.cr#L171"},"def":{"name":"from_json_object_key?","args":[{"name":"key","external_name":"key","restriction":"String"}],"visibility":"Public","body":"{% for t in T %}\n instance = {{ t }}.from_json_object_key? key\n return instance unless instance.nil?\n {% end %}\nraise(JSON::ParseException.new(\"Couldn't parse #{self} from #{key}\", 176, 0))\n"}}]},{"html_id":"drivers/Vecos","path":"Vecos.html","kind":"module","full_name":"Vecos","name":"Vecos","abstract":false,"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L3"},{"filename":"src/vecos/releezme/booking.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L3"},{"filename":"src/vecos/releezme/location.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L3"},{"filename":"src/vecos/releezme/locker.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L3"},{"filename":"src/vecos/releezme/locker_bank.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L3"},{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L4"},{"filename":"src/vecos/releezme/locker_group.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L3"},{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L3"},{"filename":"src/vecos/releezme/locker_users.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L3"},{"filename":"src/vecos/releezme/paging.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L3"},{"filename":"src/vecos/releezme/section.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Vecos/Allocation","path":"Vecos/Allocation.html","kind":"struct","full_name":"Vecos::Allocation","name":"Allocation","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/allocation.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/allocation.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_by_locker_action_on_release?:Bool-instance-method","name":"allocated_by_locker_action_on_release?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L33"},"def":{"name":"allocated_by_locker_action_on_release?","return_type":"Bool","visibility":"Public","body":"@allocated_by_locker_action_on_release"}},{"html_id":"allocated_for_package?:Bool-instance-method","name":"allocated_for_package?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L30"},"def":{"name":"allocated_for_package?","return_type":"Bool","visibility":"Public","body":"@allocated_for_package"}},{"html_id":"dynamically_allocated?:Bool-instance-method","name":"dynamically_allocated?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L18"},"def":{"name":"dynamically_allocated?","return_type":"Bool","visibility":"Public","body":"@dynamically_allocated"}},{"html_id":"expiring:Time-instance-method","name":"expiring","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L24"},"def":{"name":"expiring","return_type":"Time","visibility":"Public","body":"@expiring"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L12"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"self_releasable?:Bool-instance-method","name":"self_releasable?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":15,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L15"},"def":{"name":"self_releasable?","return_type":"Bool","visibility":"Public","body":"@self_releasable"}},{"html_id":"shared_to_user?:Bool-instance-method","name":"shared_to_user?","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L27"},"def":{"name":"shared_to_user?","return_type":"Bool","visibility":"Public","body":"@shared_to_user"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L21"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}},{"html_id":"user_id:String-instance-method","name":"user_id","doc":"This is the internal user_id - not the user email etc","summary":"

This is the internal user_id - not the user email etc

","abstract":false,"location":{"filename":"src/vecos/releezme/allocation.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/allocation.cr#L9"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Booking","path":"Vecos/Booking.html","kind":"struct","full_name":"Vecos::Booking","name":"Booking","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/booking.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/booking.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"ending:Time-instance-method","name":"ending","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L26"},"def":{"name":"ending","return_type":"Time","visibility":"Public","body":"@ending"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L20"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L17"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_id:String-instance-method","name":"locker_id","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L11"},"def":{"name":"locker_id","return_type":"String","visibility":"Public","body":"@locker_id"}},{"html_id":"starting:Time-instance-method","name":"starting","abstract":false,"location":{"filename":"src/vecos/releezme/booking.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/booking.cr#L23"},"def":{"name":"starting","return_type":"Time","visibility":"Public","body":"@starting"}}]},{"html_id":"drivers/Vecos/Location","path":"Vecos/Location.html","kind":"struct","full_name":"Vecos::Location","name":"Location","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/location.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/location.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"time_zone:String|Nil-instance-method","name":"time_zone","abstract":false,"location":{"filename":"src/vecos/releezme/location.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/location.cr#L14"},"def":{"name":"time_zone","return_type":"String | ::Nil","visibility":"Public","body":"@time_zone"}}]},{"html_id":"drivers/Vecos/Locker","path":"Vecos/Locker.html","kind":"struct","full_name":"Vecos::Locker","name":"Locker","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"blocked:Bool-instance-method","name":"blocked","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L20"},"def":{"name":"blocked","return_type":"Bool","visibility":"Public","body":"@blocked"}},{"html_id":"door_number:Int32-instance-method","name":"door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L35"},"def":{"name":"door_number","return_type":"Int32","visibility":"Public","body":"@door_number"}},{"html_id":"door_number_prefix:String-instance-method","name":"door_number_prefix","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L32"},"def":{"name":"door_number_prefix","return_type":"String","visibility":"Public","body":"@door_number_prefix"}},{"html_id":"dynamic_allocated:Bool|Nil-instance-method","name":"dynamic_allocated","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L41"},"def":{"name":"dynamic_allocated","return_type":"Bool | ::Nil","visibility":"Public","body":"@dynamic_allocated"}},{"html_id":"expires_date_time_utc:Time|Nil-instance-method","name":"expires_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L62"},"def":{"name":"expires_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@expires_date_time_utc"}},{"html_id":"full_door_number:String-instance-method","name":"full_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L29"},"def":{"name":"full_door_number","return_type":"String","visibility":"Public","body":"@full_door_number"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"is_detected:Bool-instance-method","name":"is_detected","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L26"},"def":{"name":"is_detected","return_type":"Bool","visibility":"Public","body":"@is_detected"}},{"html_id":"is_shareable:Bool|Nil-instance-method","name":"is_shareable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L56"},"def":{"name":"is_shareable","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shareable"}},{"html_id":"is_shared:Bool|Nil-instance-method","name":"is_shared","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L53"},"def":{"name":"is_shared","return_type":"Bool | ::Nil","visibility":"Public","body":"@is_shared"}},{"html_id":"is_usable:Bool-instance-method","name":"is_usable","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L23"},"def":{"name":"is_usable","return_type":"Bool","visibility":"Public","body":"@is_usable"}},{"html_id":"locker_bank_id:String-instance-method","name":"locker_bank_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L14"},"def":{"name":"locker_bank_id","return_type":"String","visibility":"Public","body":"@locker_bank_id"}},{"html_id":"locker_brick_id:String-instance-method","name":"locker_brick_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L17"},"def":{"name":"locker_brick_id","return_type":"String","visibility":"Public","body":"@locker_brick_id"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L11"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"number_of_allocations:Int32|Nil-instance-method","name":"number_of_allocations","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L47"},"def":{"name":"number_of_allocations","return_type":"Int32 | ::Nil","visibility":"Public","body":"@number_of_allocations"}},{"html_id":"number_of_digits_for_door_number:Int32-instance-method","name":"number_of_digits_for_door_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L68"},"def":{"name":"number_of_digits_for_door_number","return_type":"Int32","visibility":"Public","body":"@number_of_digits_for_door_number"}},{"html_id":"open_time:Int32-instance-method","name":"open_time","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L44"},"def":{"name":"open_time","return_type":"Int32","visibility":"Public","body":"@open_time"}},{"html_id":"self_release_allowed:Bool|Nil-instance-method","name":"self_release_allowed","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L38"},"def":{"name":"self_release_allowed","return_type":"Bool | ::Nil","visibility":"Public","body":"@self_release_allowed"}},{"html_id":"sequence_number:Int32-instance-method","name":"sequence_number","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L59"},"def":{"name":"sequence_number","return_type":"Int32","visibility":"Public","body":"@sequence_number"}},{"html_id":"shared_to_user:Bool|Nil-instance-method","name":"shared_to_user","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L50"},"def":{"name":"shared_to_user","return_type":"Bool | ::Nil","visibility":"Public","body":"@shared_to_user"}},{"html_id":"start_date_time_utc:Time|Nil-instance-method","name":"start_date_time_utc","abstract":false,"location":{"filename":"src/vecos/releezme/locker.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker.cr#L65"},"def":{"name":"start_date_time_utc","return_type":"Time | ::Nil","visibility":"Public","body":"@start_date_time_utc"}}]},{"html_id":"drivers/Vecos/LockerBank","path":"Vecos/LockerBank.html","kind":"struct","full_name":"Vecos::LockerBank","name":"LockerBank","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"description:String|Nil-instance-method","name":"description","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L29"},"def":{"name":"description","return_type":"String | ::Nil","visibility":"Public","body":"@description"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String|Nil-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L17"},"def":{"name":"location_id","return_type":"String | ::Nil","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"published:Bool-instance-method","name":"published","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L20"},"def":{"name":"published","return_type":"Bool","visibility":"Public","body":"@published"}},{"html_id":"random_allocation:Bool|Nil-instance-method","name":"random_allocation","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L23"},"def":{"name":"random_allocation","return_type":"Bool | ::Nil","visibility":"Public","body":"@random_allocation"}},{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L14"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}},{"html_id":"service_mode:Bool-instance-method","name":"service_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank.cr#L26"},"def":{"name":"service_mode","return_type":"Bool","visibility":"Public","body":"@service_mode"}}]},{"html_id":"drivers/Vecos/LockerBankAndLockerGroup","path":"Vecos/LockerBankAndLockerGroup.html","kind":"struct","full_name":"Vecos::LockerBankAndLockerGroup","name":"LockerBankAndLockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"locker_bank:LockerBank-instance-method","name":"locker_bank","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L9"},"def":{"name":"locker_bank","return_type":"LockerBank","visibility":"Public","body":"@locker_bank"}},{"html_id":"locker_group:LockerGroup-instance-method","name":"locker_group","abstract":false,"location":{"filename":"src/vecos/releezme/locker_bank_and_locker_group.cr","line_number":12,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_bank_and_locker_group.cr#L12"},"def":{"name":"locker_group","return_type":"LockerGroup","visibility":"Public","body":"@locker_group"}}]},{"html_id":"drivers/Vecos/LockerGroup","path":"Vecos/LockerGroup.html","kind":"struct","full_name":"Vecos::LockerGroup","name":"LockerGroup","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"lock_mode:Int32-instance-method","name":"lock_mode","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L14"},"def":{"name":"lock_mode","return_type":"Int32","visibility":"Public","body":"@lock_mode"}},{"html_id":"locker_booking_feature_enabled:Bool-instance-method","name":"locker_booking_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L17"},"def":{"name":"locker_booking_feature_enabled","return_type":"Bool","visibility":"Public","body":"@locker_booking_feature_enabled"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"postal_service_feature_enabled:Bool-instance-method","name":"postal_service_feature_enabled","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group.cr#L20"},"def":{"name":"postal_service_feature_enabled","return_type":"Bool","visibility":"Public","body":"@postal_service_feature_enabled"}}]},{"html_id":"drivers/Vecos/LockerGroupStatus","path":"Vecos/LockerGroupStatus.html","kind":"struct","full_name":"Vecos::LockerGroupStatus","name":"LockerGroupStatus","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"allocated_dynamic_lockers:Int32-instance-method","name":"allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L26"},"def":{"name":"allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_dynamic_lockers"}},{"html_id":"allocated_static_lockers:Int32-instance-method","name":"allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L38"},"def":{"name":"allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@allocated_static_lockers"}},{"html_id":"available_dynamic_lockers:Int32-instance-method","name":"available_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L23"},"def":{"name":"available_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@available_dynamic_lockers"}},{"html_id":"available_static_lockers:Int32-instance-method","name":"available_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L35"},"def":{"name":"available_static_lockers","return_type":"Int32","visibility":"Public","body":"@available_static_lockers"}},{"html_id":"blocked_allocated_dynamic_lockers:Int32-instance-method","name":"blocked_allocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L29"},"def":{"name":"blocked_allocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_dynamic_lockers"}},{"html_id":"blocked_allocated_static_lockers:Int32-instance-method","name":"blocked_allocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L41"},"def":{"name":"blocked_allocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_allocated_static_lockers"}},{"html_id":"blocked_unallocated_dynamic_lockers:Int32-instance-method","name":"blocked_unallocated_dynamic_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L32"},"def":{"name":"blocked_unallocated_dynamic_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_dynamic_lockers"}},{"html_id":"blocked_unallocated_static_lockers:Int32-instance-method","name":"blocked_unallocated_static_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L44"},"def":{"name":"blocked_unallocated_static_lockers","return_type":"Int32","visibility":"Public","body":"@blocked_unallocated_static_lockers"}},{"html_id":"locker_group_id:String-instance-method","name":"locker_group_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L8"},"def":{"name":"locker_group_id","return_type":"String","visibility":"Public","body":"@locker_group_id"}},{"html_id":"locker_group_name:String-instance-method","name":"locker_group_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L11"},"def":{"name":"locker_group_name","return_type":"String","visibility":"Public","body":"@locker_group_name"}},{"html_id":"public_lockers:Int32-instance-method","name":"public_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L20"},"def":{"name":"public_lockers","return_type":"Int32","visibility":"Public","body":"@public_lockers"}},{"html_id":"unusable_lockers:Int32-instance-method","name":"unusable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L17"},"def":{"name":"unusable_lockers","return_type":"Int32","visibility":"Public","body":"@unusable_lockers"}},{"html_id":"usable_lockers:Int32-instance-method","name":"usable_lockers","abstract":false,"location":{"filename":"src/vecos/releezme/locker_group_status.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_group_status.cr#L14"},"def":{"name":"usable_lockers","return_type":"Int32","visibility":"Public","body":"@usable_lockers"}}]},{"html_id":"drivers/Vecos/LockerUsers","path":"Vecos/LockerUsers.html","kind":"struct","full_name":"Vecos::LockerUsers","name":"LockerUsers","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/locker_users.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"email:String|Nil-instance-method","name":"email","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L17"},"def":{"name":"email","return_type":"String | ::Nil","visibility":"Public","body":"@email"}},{"html_id":"first_name:String|Nil-instance-method","name":"first_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L11"},"def":{"name":"first_name","return_type":"String | ::Nil","visibility":"Public","body":"@first_name"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"last_name:String|Nil-instance-method","name":"last_name","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L14"},"def":{"name":"last_name","return_type":"String | ::Nil","visibility":"Public","body":"@last_name"}},{"html_id":"user_id:String-instance-method","name":"user_id","abstract":false,"location":{"filename":"src/vecos/releezme/locker_users.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/locker_users.cr#L20"},"def":{"name":"user_id","return_type":"String","visibility":"Public","body":"@user_id"}}]},{"html_id":"drivers/Vecos/Paging","path":"Vecos/Paging.html","kind":"struct","full_name":"Vecos::Paging","name":"Paging","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/paging.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/paging.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"first_item_on_page:Int32-instance-method","name":"first_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L8"},"def":{"name":"first_item_on_page","return_type":"Int32","visibility":"Public","body":"@first_item_on_page"}},{"html_id":"has_next_page:Bool-instance-method","name":"has_next_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L11"},"def":{"name":"has_next_page","return_type":"Bool","visibility":"Public","body":"@has_next_page"}},{"html_id":"has_previous_page:Bool-instance-method","name":"has_previous_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L14"},"def":{"name":"has_previous_page","return_type":"Bool","visibility":"Public","body":"@has_previous_page"}},{"html_id":"is_first_page:Bool-instance-method","name":"is_first_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L17"},"def":{"name":"is_first_page","return_type":"Bool","visibility":"Public","body":"@is_first_page"}},{"html_id":"is_last_page:Bool-instance-method","name":"is_last_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L20"},"def":{"name":"is_last_page","return_type":"Bool","visibility":"Public","body":"@is_last_page"}},{"html_id":"last_item_on_page:Int32-instance-method","name":"last_item_on_page","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L23"},"def":{"name":"last_item_on_page","return_type":"Int32","visibility":"Public","body":"@last_item_on_page"}},{"html_id":"page_count:Int32-instance-method","name":"page_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L26"},"def":{"name":"page_count","return_type":"Int32","visibility":"Public","body":"@page_count"}},{"html_id":"page_number:Int32-instance-method","name":"page_number","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L29"},"def":{"name":"page_number","return_type":"Int32","visibility":"Public","body":"@page_number"}},{"html_id":"page_size:Int32-instance-method","name":"page_size","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L32"},"def":{"name":"page_size","return_type":"Int32","visibility":"Public","body":"@page_size"}},{"html_id":"total_item_count:Int32-instance-method","name":"total_item_count","abstract":false,"location":{"filename":"src/vecos/releezme/paging.cr","line_number":35,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/paging.cr#L35"},"def":{"name":"total_item_count","return_type":"Int32","visibility":"Public","body":"@total_item_count"}}]},{"html_id":"drivers/Vecos/Releezme","path":"Vecos/Releezme.html","kind":"class","full_name":"Vecos::Releezme","name":"Releezme","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"bank(bank_id:String)-instance-method","name":"bank","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L170"},"def":{"name":"bank","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"LockerBank.from_json(fetch_item(\"/api/lockerbanks/#{bank_id}\"))"}},{"html_id":"bank_group_lockers_available(bank_id:String,group_id:String)-instance-method","name":"bank_group_lockers_available","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String)","args_html":"(bank_id : String, group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L183"},"def":{"name":"bank_group_lockers_available","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/#{group_id}/availablelockers?pageSize=200\")"}},{"html_id":"bank_groups(bank_id:String)-instance-method","name":"bank_groups","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L174"},"def":{"name":"bank_groups","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockergroups?pageSize=200\")"}},{"html_id":"bank_locker_allocations(bank_id:String)-instance-method","name":"bank_locker_allocations","doc":"NOTE:: Only accessible to System Control Clients","summary":"

NOTE : Only accessible to System Control Clients

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":188,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L188"},"def":{"name":"bank_locker_allocations","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/allocations?pageSize=200\")"}},{"html_id":"bank_lockers(bank_id:String)-instance-method","name":"bank_lockers","doc":"returns all the lockers in the bank without paging (but paging json is included)","summary":"

returns all the lockers in the bank without paging (but paging json is included)

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"args_string":"(bank_id : String)","args_html":"(bank_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":179,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L179"},"def":{"name":"bank_lockers","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockerbanks/#{bank_id}/lockers?pageSize=200\")"}},{"html_id":"banks-instance-method","name":"banks","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":166,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L166"},"def":{"name":"banks","visibility":"Public","body":"fetch_pages(\"/api/lockerbanks?pageSize=200\")"}},{"html_id":"bearer_token:String-instance-method","name":"bearer_token","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":106,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L106"},"def":{"name":"bearer_token","visibility":"Public","body":"@bearer_token"}},{"html_id":"book_locker(starting:Int64,ending:Int64,user_id:String,locker_id:String|Nil=nil,group_id:String|Nil=nil,bank_id:String|Nil=nil,timezone:String=\"UTC\")-instance-method","name":"book_locker","abstract":false,"args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"args_string":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = \"UTC\")","args_html":"(starting : Int64, ending : Int64, user_id : String, locker_id : String | Nil = nil, group_id : String | Nil = nil, bank_id : String | Nil = nil, timezone : String = "UTC")","location":{"filename":"src/vecos/releezme.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L244"},"def":{"name":"book_locker","args":[{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"timezone","default_value":"\"UTC\"","external_name":"timezone","restriction":"String"}],"visibility":"Public","body":"tz = Time::Location.load(timezone)\nresponse = post(\"/api/bookings\", body: {\"StartDateTimeUtc\" => ((Time.unix(starting)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"EndDateTimeUtc\" => ((Time.unix(ending)).in(tz)).to_s(\"%m-%d-%Y %H:%M:%S\"), \"LockerGroupId\" => group_id, \"LockerBankId\" => bank_id, \"LockerId\" => locker_id, \"ExternalUserId\" => user_id}.to_json)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"bookings(user_id:String)-instance-method","name":"bookings","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L212"},"def":{"name":"bookings","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings?#{params}\")\n"}},{"html_id":"bookings_availability(user_id:String,starting:Int64,ending:Int64,section_id:String|Nil=nil,location_id:String|Nil=nil,bank_id:String|Nil=nil,group_id:String|Nil=nil,locker_id:String|Nil=nil)-instance-method","name":"bookings_availability","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"args_string":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","args_html":"(user_id : String, starting : Int64, ending : Int64, section_id : String | Nil = nil, location_id : String | Nil = nil, bank_id : String | Nil = nil, group_id : String | Nil = nil, locker_id : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":220,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L220"},"def":{"name":"bookings_availability","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"starting","external_name":"starting","restriction":"Int64"},{"name":"ending","external_name":"ending","restriction":"Int64"},{"name":"section_id","default_value":"nil","external_name":"section_id","restriction":"String | ::Nil"},{"name":"location_id","default_value":"nil","external_name":"location_id","restriction":"String | ::Nil"},{"name":"bank_id","default_value":"nil","external_name":"bank_id","restriction":"String | ::Nil"},{"name":"group_id","default_value":"nil","external_name":"group_id","restriction":"String | ::Nil"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"startDateTimeUtc\", (Time.unix(starting)).to_rfc3339)\n form.add(\"endDateTimeUtc\", (Time.unix(ending)).to_rfc3339)\n if section_id.presence\n form.add(\"sectionId\", section_id.as(String))\n end\n if location_id.presence\n form.add(\"locationId\", location_id.as(String))\n end\n if bank_id.presence\n form.add(\"lockerBankId\", bank_id.as(String))\n end\n if bank_id.presence && group_id.presence\n form.add(\"lockerBankId\", group_id.as(String))\n end\n if locker_id.presence\n form.add(\"lockerId\", locker_id.as(String))\n end\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/bookings/availability?#{params}\")\n"}},{"html_id":"can_allocate_locker?(user_id:String):String-instance-method","name":"can_allocate_locker?","doc":"check if a user can be allocated a new locker","summary":"

check if a user can be allocated a new locker

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : String","args_html":"(user_id : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":274,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L274"},"def":{"name":"can_allocate_locker?","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = get(\"/api/lockers/canallocate?#{params}\")\nresponse.body\n"}},{"html_id":"can_share_locker_with?(locker_id:String,owner_id:String,search:String)-instance-method","name":"can_share_locker_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, search : String)","args_html":"(locker_id : String, owner_id : String, search : String)","location":{"filename":"src/vecos/releezme.cr","line_number":339,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L339"},"def":{"name":"can_share_locker_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"search","external_name":"search","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"searchString\", search)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"companies-instance-method","name":"companies","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L114"},"def":{"name":"companies","visibility":"Public","body":"(JSON.parse(fetch_item(\"/api/companies\")))[\"Companies\"]"}},{"html_id":"fetch_item(location:String):String-instance-method","name":"fetch_item","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : String","args_html":"(location : String) : String","location":{"filename":"src/vecos/releezme.cr","line_number":97,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L97"},"def":{"name":"fetch_item","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"String","visibility":"Public","body":"response = get(location)\nif response.status_code == 401\n @expires = 1.minute.ago\nend\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nlogger.debug do\n \"response body:\\n#{response.body}\"\nend\nresponse.body\n"}},{"html_id":"fetch_pages(location:String):Array(JSON::Any)-instance-method","name":"fetch_pages","abstract":false,"args":[{"name":"location","external_name":"location","restriction":"String"}],"args_string":"(location : String) : Array(JSON::Any)","args_html":"(location : String) : Array(JSON::Any)","location":{"filename":"src/vecos/releezme.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L71"},"def":{"name":"fetch_pages","args":[{"name":"location","external_name":"location","restriction":"String"}],"return_type":"Array(JSON::Any)","visibility":"Public","body":"append = location.includes?('?') ? '&' : '?'\nnext_page = \"#{location}#{append}pageNumber=#{1}\"\ndata = [] of JSON::Any\nloop do\n response = get(next_page)\n if response.status_code == 401\n @expires = 1.minute.ago\n end\n if response.success?\n else\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\n end\n logger.debug do\n \"response body:\\n#{response.body}\"\n end\n payload = (JSON.parse(response.body)).as_h\n pages = if has_paging = payload.delete(\"Paging\")\n Paging.from_json(has_paging.to_json)\n end\n data.concat(payload[payload.keys.first].as_a)\n if pages && pages.has_next_page\n else\n break\n end\n next_page = \"#{location}#{append}pageNumber=#{pages.page_number + 1}\"\nend\ndata\n"}},{"html_id":"group(group_id:String)-instance-method","name":"group","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":200,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L200"},"def":{"name":"group","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"Array(LockerGroup).from_json(fetch_item(\"/api/lockergroups/#{group_id}\"))"}},{"html_id":"group_locker_banks(group_id:String)-instance-method","name":"group_locker_banks","abstract":false,"args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"args_string":"(group_id : String)","args_html":"(group_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":204,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L204"},"def":{"name":"group_locker_banks","args":[{"name":"group_id","external_name":"group_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/lockergroups/#{group_id}/lockerbanks?pageSize=200\")"}},{"html_id":"groups-instance-method","name":"groups","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":196,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L196"},"def":{"name":"groups","visibility":"Public","body":"fetch_pages(\"/api/lockergroups?pageSize=200\")"}},{"html_id":"location(location_id:String)-instance-method","name":"location","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L127"},"def":{"name":"location","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"Location.from_json(fetch_item(\"/api/locations/#{location_id}\"))"}},{"html_id":"location_sections(location_id:String)-instance-method","name":"location_sections","doc":"typically these are floors in the building","summary":"

typically these are floors in the building

","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L132"},"def":{"name":"location_sections","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/locations/#{location_id}/sections?pageSize=200\")"}},{"html_id":"locations-instance-method","name":"locations","doc":"typically these are buildings","summary":"

typically these are buildings

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":123,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L123"},"def":{"name":"locations","visibility":"Public","body":"fetch_pages(\"/api/locations?pageSize=200\")"}},{"html_id":"locker_allocate(locker_id:String,user_id:String)-instance-method","name":"locker_allocate","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, user_id : String)","args_html":"(locker_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":282,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L282"},"def":{"name":"locker_allocate","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_allocate_random(bank_id:String,group_id:String,user_id:String)-instance-method","name":"locker_allocate_random","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(bank_id : String, group_id : String, user_id : String)","args_html":"(bank_id : String, group_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":291,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L291"},"def":{"name":"locker_allocate_random","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String"},{"name":"group_id","external_name":"group_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"lockerBankId\", bank_id)\n form.add(\"lockerGroupId\", group_id)\n form.add(\"externalUserId\", user_id)\nend\nresponse = post(\"/api/lockers/allocate?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\nJSON.parse(response.body)\n"}},{"html_id":"locker_release(locker_id:String,user_id:String|Nil=nil):Nil-instance-method","name":"locker_release","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, user_id : String | Nil = nil) : Nil","args_html":"(locker_id : String, user_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme.cr","line_number":302,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L302"},"def":{"name":"locker_release","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"user_id","default_value":"nil","external_name":"user_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"params = URI::Params.build do |form|\n if user_id.presence\n form.add(\"externalUserId\", user_id)\n end\nend\nresponse = post(\"/api/lockers/#{locker_id}/release?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"locker_shared_with?(locker_id:String,owner_id:String)-instance-method","name":"locker_shared_with?","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String)","args_html":"(locker_id : String, owner_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":347,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L347"},"def":{"name":"locker_shared_with?","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nArray(LockerUsers).from_json(fetch_item(\"/api/lockers/#{locker_id}/shareablelockerusers?#{params}\"), root: \"LockerUsers\")\n"}},{"html_id":"locker_unlock(locker_id:String,pin_code:String|Nil=nil)-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, pin_code : String | Nil = nil)","args_html":"(locker_id : String, pin_code : String | Nil = nil)","location":{"filename":"src/vecos/releezme.cr","line_number":310,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L310"},"def":{"name":"locker_unlock","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"visibility":"Public","body":"pin_route = pin_code ? nil : \"/withoutpincode\"\nresponse = post(\"/api/lockers/#{locker_id}/pincode/unlock#{pin_route}\", body: pin_code)\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\n"}},{"html_id":"lockers_allocated_to(user_id:String)-instance-method","name":"lockers_allocated_to","doc":"the lockers that are currently allocated to the specified user\nthe user ID is typically email - defined by the client","summary":"

the lockers that are currently allocated to the specified user the user ID is typically email - defined by the client

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String)","args_html":"(user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L265"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/lockers/allocated?#{params}\")\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L20"},"def":{"name":"on_update","visibility":"Public","body":"client_id = setting(String, :client_id)\nclient_secret = setting(String, :client_secret)\nusername = setting(String, :username)\npassword = setting(String, :password)\nreleezme_authentication_domain = setting(String, :releezme_authentication_domain)\ntransport.before_request do |req|\n access_token = get_access_token(client_id, client_secret, username, password, releezme_authentication_domain)\n req.headers[\"Authorization\"] = access_token\n req.headers[\"Content-Type\"] = \"application/json\"\n logger.debug do\n \"requesting #{req.method} #{req.path}?#{req.query}\\n#{req.headers}\\n#{req.body}\"\n end\nend\n"}},{"html_id":"section(section_id:String)-instance-method","name":"section","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":145,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L145"},"def":{"name":"section","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"Section.from_json(fetch_item(\"/api/locations/#{section_id}\"))"}},{"html_id":"section_banks_allocatable(section_id:String,user_id:String)-instance-method","name":"section_banks_allocatable","doc":"banks and groups in the banks that the user can allocate to themselves","summary":"

banks and groups in the banks that the user can allocate to themselves

","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(section_id : String, user_id : String)","args_html":"(section_id : String, user_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":154,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L154"},"def":{"name":"section_banks_allocatable","args":[{"name":"section_id","external_name":"section_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", user_id)\n form.add(\"pageSize\", \"200\")\nend\nfetch_pages(\"/api/sections/#{section_id}/lockerbanklockergroups/allocatable?#{params}\")\n"}},{"html_id":"section_locker_banks(section_id:String)-instance-method","name":"section_locker_banks","abstract":false,"args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"args_string":"(section_id : String)","args_html":"(section_id : String)","location":{"filename":"src/vecos/releezme.cr","line_number":149,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L149"},"def":{"name":"section_locker_banks","args":[{"name":"section_id","external_name":"section_id","restriction":"String"}],"visibility":"Public","body":"fetch_pages(\"/api/sections/#{section_id}/lockerbanks?pageSize=200\")"}},{"html_id":"sections-instance-method","name":"sections","doc":"all floors from all buildings in one request","summary":"

all floors from all buildings in one request

","abstract":false,"location":{"filename":"src/vecos/releezme.cr","line_number":141,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L141"},"def":{"name":"sections","visibility":"Public","body":"fetch_pages(\"/api/sections?pageSize=200\")"}},{"html_id":"share_locker_with(locker_id:String,owner_id:String,user_id:String):Bool-instance-method","name":"share_locker_with","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(locker_id : String, owner_id : String, user_id : String) : Bool","args_html":"(locker_id : String, owner_id : String, user_id : String) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":320,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L320"},"def":{"name":"share_locker_with","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\n form.add(\"sharedUserId\", user_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/share?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}},{"html_id":"unshare_locker(locker_id:String,owner_id:String,shared_with_internal_id:String|Nil=nil):Bool-instance-method","name":"unshare_locker","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"args_string":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","args_html":"(locker_id : String, owner_id : String, shared_with_internal_id : String | Nil = nil) : Bool","location":{"filename":"src/vecos/releezme.cr","line_number":330,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme.cr#L330"},"def":{"name":"unshare_locker","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_internal_id","default_value":"nil","external_name":"shared_with_internal_id","restriction":"String | ::Nil"}],"return_type":"Bool","visibility":"Public","body":"params = URI::Params.build do |form|\n form.add(\"externalUserId\", owner_id)\nend\nresponse = post(\"/api/lockers/#{locker_id}/unshare/#{shared_with_internal_id}?#{params}\")\nif response.success?\nelse\n raise(\"unexpected response #{response.status_code}\\n#{response.body}\")\nend\ntrue\n"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations","path":"Vecos/ReleezmeLocations.html","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lockers","kind":"module","full_name":"PlaceOS::Driver::Interface::Lockers","name":"Lockers"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"building_id:String-instance-method","name":"building_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L68"},"def":{"name":"building_id","return_type":"String","visibility":"Public","body":"if (__temp_1 = @building_id).nil?\n @building_id = (get_building_id)\nelse\n __temp_1\nend"}},{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L271"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of lockers on this level","summary":"

array of lockers on this level

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":277,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L277"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching for lockers in zone #{zone_id}\"\nend\nif building_id == zone_id\n return @zone_filter.flat_map do |level_id|\n device_locations(level_id, location)\n end\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nreleexme_section_id = @floor_mappings[zone_id]\nbanks = Array(Vecos::LockerBank).from_json((releezme.section_locker_banks(releexme_section_id)).get.to_json)\nif @door_number_lookup && @last_mapped < 3.hour.ago\n @last_mapped = Time.utc\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n self[locker.full_door_number.downcase] = locker.id\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nelse\n banks.flat_map do |bank|\n lockers = Array(Vecos::Locker).from_json((releezme.bank_lockers(bank.id)).get.to_json)\n lockers.map do |locker|\n PlaceLocker.new(locker, building: building_id, level: zone_id)\n end\n end\nend\n"}},{"html_id":"get_building_id-instance-method","name":"get_building_id","doc":"Finds the building ID for the current location services object","summary":"

Finds the building ID for the current location services object

","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L60"},"def":{"name":"get_building_id","visibility":"Public","body":"begin\n zone_ids = staff_api.zones(tags: \"building\").get.as_a.map() do |__arg1|\n __arg1[\"id\"].as_s\n end\n (zone_ids & system.zones).first\nrescue error\n logger.warn(exception: error) do\n \"unable to determine building zone id\"\n end\n raise(error)\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"array of devices and their x, y coordinates, that are associated with this user","summary":"

array of devices and their x, y coordinates, that are associated with this user

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":258,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L258"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"releezme incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"locker_allocate(user_id:String,bank_id:String|Int64,locker_id:String|Int64|Nil=nil,expires_at:Int64|Nil=nil):PlaceLocker-instance-method","name":"locker_allocate","doc":"allocates a locker now, the allocation may expire","summary":"

allocates a locker now, the allocation may expire

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"args_string":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","args_html":"(user_id : String, bank_id : String | Int64, locker_id : String | Int64 | Nil = nil, expires_at : Int64 | Nil = nil) : PlaceLocker","location":{"filename":"src/vecos/releezme_locations.cr","line_number":132,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L132"},"def":{"name":"locker_allocate","args":[{"name":"user_id","external_name":"user_id","restriction":"String"},{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","default_value":"nil","external_name":"locker_id","restriction":"String | Int64 | ::Nil"},{"name":"expires_at","default_value":"nil","external_name":"expires_at","restriction":"Int64 | ::Nil"}],"return_type":"PlaceLocker","visibility":"Public","body":"user_id = get_user_key(user_id)\nlocker_id = locker_id ? lookup_id(locker_id.to_s) : nil\nif expires_at\n timezone = system.timezone || \"UTC\"\n booking = if locker_id\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, locker_id, timezone: timezone)).get\n else\n group_id = get_group_id(user_id, bank_id)\n (releezme.book_locker(1.minute.ago.to_unix, expires_at, user_id, group_id: group_id, bank_id: bank_id, timezone: timezone)).get\n end\n PlaceLocker.new(Vecos::Booking.from_json(booking.to_json))\nelse\n if locker_id\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate(locker_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n else\n group_id = get_group_id(user_id, bank_id)\n vlocker = Vecos::Locker.from_json((releezme.locker_allocate_random(bank_id, group_id, user_id)).get.to_json)\n PlaceLocker.new(vlocker, true)\n end\nend\n"}},{"html_id":"locker_release(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil):Nil-instance-method","name":"locker_release","doc":"return the locker to the pool","summary":"

return the locker to the pool

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L169"},"def":{"name":"locker_release","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\nif owner_id\n owner_id = get_user_key(owner_id)\nend\n(releezme.locker_release(locker_id, owner_id)).get\n"}},{"html_id":"locker_share(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,share_with:String):Nil-instance-method","name":"locker_share","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, share_with : String) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":190,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L190"},"def":{"name":"locker_share","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"share_with","external_name":"share_with","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.share_locker_with(locker_id, get_user_key(owner_id), get_user_key(share_with))).get\n"}},{"html_id":"locker_shared_with(bank_id:String|Int64,locker_id:String|Int64,owner_id:String):Array(String)-instance-method","name":"locker_shared_with","doc":"a list of user-ids that the locker is shared with.\nthis can be placeos user ids or emails","summary":"

a list of user-ids that the locker is shared with.

","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":225,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L225"},"def":{"name":"locker_shared_with","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"}],"return_type":"Array(String)","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nshared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\nshared_with.map do |user|\n user.email || user.user_id\nend\n"}},{"html_id":"locker_unlock(bank_id:String|Int64,locker_id:String|Int64,owner_id:String|Nil=nil,open_time:Int32=60,pin_code:String|Nil=nil):Nil-instance-method","name":"locker_unlock","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String | Nil = nil, open_time : Int32 = 60, pin_code : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":237,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L237"},"def":{"name":"locker_unlock","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","default_value":"nil","external_name":"owner_id","restriction":"String | ::Nil"},{"name":"open_time","default_value":"60","external_name":"open_time","restriction":"Int32"},{"name":"pin_code","default_value":"nil","external_name":"pin_code","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"locker_id = lookup_id(locker_id.to_s)\n(releezme.locker_unlock(locker_id, pin_code)).get\n"}},{"html_id":"locker_unshare(bank_id:String|Int64,locker_id:String|Int64,owner_id:String,shared_with_id:String|Nil=nil):Nil-instance-method","name":"locker_unshare","abstract":false,"args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"args_string":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","args_html":"(bank_id : String | Int64, locker_id : String | Int64, owner_id : String, shared_with_id : String | Nil = nil) : Nil","location":{"filename":"src/vecos/releezme_locations.cr","line_number":201,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L201"},"def":{"name":"locker_unshare","args":[{"name":"bank_id","external_name":"bank_id","restriction":"String | Int64"},{"name":"locker_id","external_name":"locker_id","restriction":"String | Int64"},{"name":"owner_id","external_name":"owner_id","restriction":"String"},{"name":"shared_with_id","default_value":"nil","external_name":"shared_with_id","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"owner_id = get_user_key(owner_id)\nlocker_id = lookup_id(locker_id.to_s)\nif shared_with_id\n shared_with_external_id = get_user_key(shared_with_id)\n shared_with = Array(Vecos::LockerUsers).from_json((releezme.locker_shared_with?(locker_id, owner_id)).get.to_json)\n shared_user = shared_with.find do |user|\n user.user_id == shared_with_external_id\n end\n if shared_user\n else\n return\n end\n shared_with_id = shared_user.id\nend\n(releezme.unshare_locker(locker_id, owner_id, shared_with_id)).get\n"}},{"html_id":"lockers_allocated_to(user_id:String):Array(PlaceLocker)-instance-method","name":"lockers_allocated_to","doc":"a list of lockers that are allocated to the user","summary":"

a list of lockers that are allocated to the user

","abstract":false,"args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"args_string":"(user_id : String) : Array(PlaceLocker)","args_html":"(user_id : String) : Array(PlaceLocker)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":183,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L183"},"def":{"name":"lockers_allocated_to","args":[{"name":"user_id","external_name":"user_id","restriction":"String"}],"return_type":"Array(PlaceLocker)","visibility":"Public","body":"user_id = get_user_key(user_id)\nlockers = Array(Vecos::Locker).from_json((releezme.lockers_allocated_to(user_id)).get.to_json)\nlockers.map do |locker|\n PlaceLocker.new(locker, true)\nend\n"}},{"html_id":"lookup_id(locker_id:String):String-instance-method","name":"lookup_id","abstract":false,"args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"args_string":"(locker_id : String) : String","args_html":"(locker_id : String) : String","location":{"filename":"src/vecos/releezme_locations.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L70"},"def":{"name":"lookup_id","args":[{"name":"locker_id","external_name":"locker_id","restriction":"String"}],"return_type":"String","visibility":"Public","body":"if @door_number_lookup\n (status?(String, locker_id.downcase)) || locker_id\nelse\n locker_id\nend"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":265,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L265"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"releezme incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L30"},"def":{"name":"on_update","visibility":"Public","body":"@door_number_lookup = (setting?(Bool, :door_number_lookup)) || false\n@user_id_key = (setting?(String, :user_id_key)) || \"email\"\n@floor_mappings = (setting(Hash(String, Mapping), :vecos_floor_mappings)).transform_values(&.section_id)\n@zone_filter = @floor_mappings.keys\n@building_id = nil\nif @door_number_lookup\n schedule.clear\n schedule.in((rand(10)).seconds) do\n @floor_mappings.each_key do |zone_id|\n device_locations(zone_id)\n end\n end\nend\n"}}],"types":[{"html_id":"drivers/Vecos/ReleezmeLocations/Mapping","path":"Vecos/ReleezmeLocations/Mapping.html","kind":"struct","full_name":"Vecos::ReleezmeLocations::Mapping","name":"Mapping","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L54"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme_locations.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L55"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"section_id:String-instance-method","name":"section_id","abstract":false,"location":{"filename":"src/vecos/releezme_locations.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L56"},"def":{"name":"section_id","return_type":"String","visibility":"Public","body":"@section_id"}}]},{"html_id":"drivers/Vecos/ReleezmeLocations/PlaceLocker","path":"Vecos/ReleezmeLocations/PlaceLocker.html","kind":"alias","full_name":"Vecos::ReleezmeLocations::PlaceLocker","name":"PlaceLocker","abstract":false,"locations":[{"filename":"src/vecos/releezme_locations.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme_locations.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","aliased_html":"PlaceOS::Driver::Interface::Lockers::PlaceLocker","const":false,"namespace":{"html_id":"drivers/Vecos/ReleezmeLocations","kind":"class","full_name":"Vecos::ReleezmeLocations","name":"ReleezmeLocations"}}]},{"html_id":"drivers/Vecos/Section","path":"Vecos/Section.html","kind":"struct","full_name":"Vecos::Section","name":"Section","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vecos/releezme/section.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vecos","kind":"module","full_name":"Vecos","name":"Vecos"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vecos/releezme/section.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L5"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L8"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L14"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vecos/releezme/section.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vecos/releezme/section.cr#L11"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}}]}]},{"html_id":"drivers/Vergesense","path":"Vergesense.html","kind":"module","full_name":"Vergesense","name":"Vergesense","abstract":false,"locations":[{"filename":"src/vergesense/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"doc":"Vergesense Data Models","summary":"

Vergesense Data Models

","types":[{"html_id":"drivers/Vergesense/Building","path":"Vergesense/Building.html","kind":"struct","full_name":"Vergesense::Building","name":"Building","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L6"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"address:String|Nil-instance-method","name":"address","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L10"},"def":{"name":"address","return_type":"String | ::Nil","visibility":"Public","body":"@address"}},{"html_id":"address=(address:String|Nil)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"args_string":"(address : String | Nil)","args_html":"(address : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L10"},"def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"String | ::Nil"}],"visibility":"Public","body":"@address = address"}},{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":9,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L9"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L8"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L8"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}}]},{"html_id":"drivers/Vergesense/BuildingWithFloors","path":"Vergesense/BuildingWithFloors.html","kind":"struct","full_name":"Vergesense::BuildingWithFloors","name":"BuildingWithFloors","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":13,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L13"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L14"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id","return_type":"String","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"args_string":"(building_ref_id : String)","args_html":"(building_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":16,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L16"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"floors:Array(Floor)-instance-method","name":"floors","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L17"},"def":{"name":"floors","return_type":"Array(Floor)","visibility":"Public","body":"@floors"}},{"html_id":"floors=(floors:Array(Floor))-instance-method","name":"floors=","abstract":false,"args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"args_string":"(floors : Array(Floor))","args_html":"(floors : Array(Floor))","location":{"filename":"src/vergesense/models.cr","line_number":17,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L17"},"def":{"name":"floors=","args":[{"name":"floors","external_name":"floors","restriction":"Array(Floor)"}],"visibility":"Public","body":"@floors = floors"}}]},{"html_id":"drivers/Vergesense/Environment","path":"Vergesense/Environment.html","kind":"struct","full_name":"Vergesense::Environment","name":"Environment","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L37"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L38"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"humidity:Sensor-instance-method","name":"humidity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L43"},"def":{"name":"humidity","return_type":"Sensor","visibility":"Public","body":"@humidity"}},{"html_id":"humidity=(humidity:Sensor)-instance-method","name":"humidity=","abstract":false,"args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"args_string":"(humidity : Sensor)","args_html":"(humidity : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L43"},"def":{"name":"humidity=","args":[{"name":"humidity","external_name":"humidity","restriction":"Sensor"}],"visibility":"Public","body":"@humidity = humidity"}},{"html_id":"iaq:Sensor|Nil-instance-method","name":"iaq","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L44"},"def":{"name":"iaq","return_type":"Sensor | ::Nil","visibility":"Public","body":"@iaq"}},{"html_id":"iaq=(iaq:Sensor|Nil)-instance-method","name":"iaq=","abstract":false,"args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"args_string":"(iaq : Sensor | Nil)","args_html":"(iaq : Sensor | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L44"},"def":{"name":"iaq=","args":[{"name":"iaq","external_name":"iaq","restriction":"Sensor | ::Nil"}],"visibility":"Public","body":"@iaq = iaq"}},{"html_id":"sensor:String-instance-method","name":"sensor","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L40"},"def":{"name":"sensor","return_type":"String","visibility":"Public","body":"@sensor"}},{"html_id":"sensor=(sensor:String)-instance-method","name":"sensor=","abstract":false,"args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"args_string":"(sensor : String)","args_html":"(sensor : String)","location":{"filename":"src/vergesense/models.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L40"},"def":{"name":"sensor=","args":[{"name":"sensor","external_name":"sensor","restriction":"String"}],"visibility":"Public","body":"@sensor = sensor"}},{"html_id":"temperature:Sensor-instance-method","name":"temperature","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L45"},"def":{"name":"temperature","return_type":"Sensor","visibility":"Public","body":"@temperature"}},{"html_id":"temperature=(temperature:Sensor)-instance-method","name":"temperature=","abstract":false,"args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"args_string":"(temperature : Sensor)","args_html":"(temperature : Sensor)","location":{"filename":"src/vergesense/models.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L45"},"def":{"name":"temperature=","args":[{"name":"temperature","external_name":"temperature","restriction":"Sensor"}],"visibility":"Public","body":"@temperature = temperature"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L41"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L41"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/Floor","path":"Vergesense/Floor.html","kind":"struct","full_name":"Vergesense::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":20,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L20"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L21"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L25"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L25"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"floor_ref_id:String-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id","return_type":"String","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"args_string":"(floor_ref_id : String)","args_html":"(floor_ref_id : String)","location":{"filename":"src/vergesense/models.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L23"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L26"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L24"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vergesense/models.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L24"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"@name = name"}},{"html_id":"spaces:Array(Space)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L27"},"def":{"name":"spaces","return_type":"Array(Space)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(Space))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"args_string":"(spaces : Array(Space))","args_html":"(spaces : Array(Space))","location":{"filename":"src/vergesense/models.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L27"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(Space)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/Vergesense/Geometry","path":"Vergesense/Geometry.html","kind":"struct","full_name":"Vergesense::Geometry","name":"Geometry","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":91,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L91"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":92,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L92"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"coordinates:Array(Array(Array(Float64)))-instance-method","name":"coordinates","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L95"},"def":{"name":"coordinates","return_type":"Array(Array(Array(Float64)))","visibility":"Public","body":"@coordinates"}},{"html_id":"coordinates=(coordinates:Array(Array(Array(Float64))))-instance-method","name":"coordinates=","abstract":false,"args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"args_string":"(coordinates : Array(Array(Array(Float64))))","args_html":"(coordinates : Array(Array(Array(Float64))))","location":{"filename":"src/vergesense/models.cr","line_number":95,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L95"},"def":{"name":"coordinates=","args":[{"name":"coordinates","external_name":"coordinates","restriction":"Array(Array(Array(Float64)))"}],"visibility":"Public","body":"@coordinates = coordinates"}},{"html_id":"type:String-instance-method","name":"type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L94"},"def":{"name":"type","return_type":"String","visibility":"Public","body":"@type"}},{"html_id":"type=(type:String)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"}],"args_string":"(type : String)","args_html":"(type : String)","location":{"filename":"src/vergesense/models.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L94"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"String"}],"visibility":"Public","body":"@type = type"}}]},{"html_id":"drivers/Vergesense/LocationService","path":"Vergesense/LocationService.html","kind":"class","full_name":"Vergesense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/location_service.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L8"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L89"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":94,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L94"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\nfloor = @occupancy_mappings[zone_id]?\nif floor\nelse\n return [] of Nil\nend\ndesk_types = @desk_space_types\nfloor.spaces.compact_map do |space|\n loc_type = space.space_type.in?(desk_types) ? \"desk\" : \"area\"\n if location.presence && (location != loc_type)\n next\n end\n people_count = space.people.try(&.count)\n if @return_empty_spaces || (people_count && people_count > 0)\n if env = space.environment\n humidity = env.humidity.value\n temperature = env.temperature.value\n iaq = env.iaq.try(&.value)\n end\n {location: loc_type, at_location: people_count || 0, map_id: space.name, level: zone_id, building: @building_mappings[zone_id]?, capacity: space.capacity, vergesense_space_id: space.ref_id, vergesense_space_type: space.space_type, area_humidity: humidity, area_temperature: temperature, area_air_quality: iaq, signs_of_life: space.signs_of_life}\n end\nend\n"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/vergesense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L79"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/vergesense/location_service.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L84"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/location_service.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L38"},"def":{"name":"on_update","visibility":"Public","body":"@return_empty_spaces = (setting?(Bool, :return_empty_spaces)) || false\n@notify_updates = (setting?(Bool, :notify_updates)) || false\n@desk_space_types = (setting?(Array(String), :desk_space_types)) || [\"desk\"]\n@floor_mappings = setting(Hash(String, NamedTuple(building_id: String | ::Nil, level_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.values.map do |z|\n level = z[:level_id]\n @building_mappings[level] = z[:building_id]\n level\nend\nbind_floor_status\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Detail|Nil-instance-method","name":"sensor","doc":"===================================\nSensor Interface functions\n===================================","summary":"

=================================== Sensor Interface functions ===================================

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Detail | Nil","location":{"filename":"src/vergesense/location_service.cr","line_number":137,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L137"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if id\n else\n return nil\n end\n zone_id, _, space_id = mac.rpartition('-')\n if zone_id.empty? || space_id.empty?\n return nil\n end\n floor = @occupancy_mappings[zone_id]?\n if floor\n else\n return nil\n end\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return nil\n end\n case id\n when \"people\"\n build_sensor_details(zone_id, floor, floor_space, :people_count)\n when \"presence\"\n build_sensor_details(zone_id, floor, floor_space, :presence)\n when \"humidity\"\n build_sensor_details(zone_id, floor, floor_space, :humidity)\n when \"temp\"\n build_sensor_details(zone_id, floor, floor_space, :temperature)\n when \"air\"\n build_sensor_details(zone_id, floor, floor_space, :air_quality)\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Detail)","location":{"filename":"src/vergesense/location_service.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/location_service.cr#L171"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif mac\n level_zone, _, space_id = mac.rpartition('-')\n if (zone_id && (zone_id != level_zone)) || space_id.empty?\n return NO_MATCH\n end\n zone_id = level_zone\nend\nif zone_id && !(@occupancy_mappings.has_key?(zone_id))\n return NO_MATCH\nend\nif space_id\n floor = @occupancy_mappings[zone_id]\n floor_space = floor.spaces.find do |space|\n space.ref_id == space_id\n end\n if floor_space\n else\n return NO_MATCH\n end\n spaces = [{zone_id, floor, floor_space}]\nelse\n if zone_id\n floor = @occupancy_mappings[zone_id]\n spaces = floor.spaces.map do |space|\n {zone_id, floor, space}\n end\n else\n spaces = @occupancy_mappings.flat_map do |__temp_1103|\n zone, floor = __temp_1103\n floor.spaces.map do |space|\n {zone, floor, space}\n end\n end\n end\nend\nif sensor_type\n spaces.compact_map do |__temp_1104|\n zone, floor, space = __temp_1104\n build_sensor_details(zone.not_nil!, floor, space, sensor_type)\n end\nelse\n spaces.flat_map do |__temp_1105|\n zone, floor, space = __temp_1105\n space_sensors(zone.not_nil!, floor, space)\n end.compact\nend\n"}}]},{"html_id":"drivers/Vergesense/MqttExport","path":"Vergesense/MqttExport.html","kind":"class","full_name":"Vergesense::MqttExport","name":"MqttExport","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/mqtt_export.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L4"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"inspect_state-instance-method","name":"inspect_state","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L42"},"def":{"name":"inspect_state","visibility":"Public","body":"{vergesense_subscriptions: @subscriptions, people_counts: @previous_counts}"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/mqtt_export.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/mqtt_export.cr#L27"},"def":{"name":"on_update","visibility":"Public","body":"@mqtt_root_topic = (setting(String, :mqtt_root_topic)) || \"/t/root-topic\"\n@floors_to_export = (setting(Array(String), :floors_to_export)) || ([] of String)\n@debug = (setting(Bool, :debug)) || false\nsubscriptions.clear\n@subscriptions = 0\n@floors_to_export.each do |floor|\n system.subscribe(:Vergesense_1, floor) do |_subscription, vergesense_floor_json|\n vergesense_to_mqtt(Floor.from_json(vergesense_floor_json))\n end\n @subscriptions = @subscriptions + 1\nend\n"}}]},{"html_id":"drivers/Vergesense/People","path":"Vergesense/People.html","kind":"struct","full_name":"Vergesense::People","name":"People","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L98"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L99"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"count:UInt32|Nil-instance-method","name":"count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L101"},"def":{"name":"count","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@count"}},{"html_id":"count=(count:UInt32|Nil)-instance-method","name":"count=","abstract":false,"args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"args_string":"(count : UInt32 | Nil)","args_html":"(count : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L101"},"def":{"name":"count=","args":[{"name":"count","external_name":"count","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@count = count"}}]},{"html_id":"drivers/Vergesense/Report","path":"Vergesense/Report.html","kind":"struct","full_name":"Vergesense::Report","name":"Report","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L49"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"person_count:Int32|Nil-instance-method","name":"person_count","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L52"},"def":{"name":"person_count","return_type":"Int32 | ::Nil","visibility":"Public","body":"@person_count"}},{"html_id":"person_count=(person_count:Int32|Nil)-instance-method","name":"person_count=","abstract":false,"args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"args_string":"(person_count : Int32 | Nil)","args_html":"(person_count : Int32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L52"},"def":{"name":"person_count=","args":[{"name":"person_count","external_name":"person_count","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@person_count = person_count"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L53"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"timestamp:Time-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L51"},"def":{"name":"timestamp","return_type":"Time","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"args_string":"(timestamp : Time)","args_html":"(timestamp : Time)","location":{"filename":"src/vergesense/models.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L51"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/RoomSensor","path":"Vergesense/RoomSensor.html","kind":"class","full_name":"Vergesense::RoomSensor","name":"RoomSensor","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/room_sensor.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"SENSOR_TYPES","name":"SENSOR_TYPES","value":"{SensorType::PeopleCount, SensorType::Presence, SensorType::Humidity, SensorType::Temperature, SensorType::AirQuality}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"if (__temp_1 = @floor_name).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#floor_name cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"floor_name?:String|Nil-instance-method","name":"floor_name?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":22,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L22"},"def":{"name":"floor_name?","return_type":"String | ::Nil","visibility":"Public","body":"@floor_name"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":24,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L24"},"def":{"name":"on_update","visibility":"Public","body":"@space_id = setting(String, :space_ref_id)\nsubscriptions.clear\nschedule.clear\nsystem.subscribe(:Vergesense, 1, \"init_complete\") do |_sub, value|\n if value == \"true\"\n subscribe_to_sensor\n end\nend\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/vergesense/room_sensor.cr","line_number":96,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L96"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\nend\nif id\nelse\n return nil\nend\nif mac == \"verg-#{@space_id}\"\nelse\n return nil\nend\ncase id\nwhen \"people\"\n build_sensor_details(:people_count)\nwhen \"presence\"\n build_sensor_details(:presence)\nwhen \"humidity\"\n build_sensor_details(:humidity)\nwhen \"temperature\"\n build_sensor_details(:temperature)\nwhen \"air_quality\"\n build_sensor_details(:air_quality)\nend\n"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/vergesense/room_sensor.cr","line_number":77,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L77"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\nend\nif mac && (mac != \"verg-#{@space_id}\")\n return NO_MATCH\nend\nif type\n sensor_type = SensorType.parse(type)\n if SENSOR_TYPES.includes?(sensor_type)\n else\n return NO_MATCH\n end\nend\nif zone_id && !(system.zones.includes?(zone_id))\n return NO_MATCH\nend\nif sensor_type\n sensor = build_sensor_details(sensor_type)\n if sensor\n else\n return NO_MATCH\n end\n [sensor]\nelse\n space_sensors\nend\n"}},{"html_id":"space:Space-instance-method","name":"space","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space","return_type":"Space","visibility":"Public","body":"if (__temp_1 = @space).nil?\n ::raise(::NilAssertionError.new(\"Vergesense::RoomSensor#space cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"space?:Space|Nil-instance-method","name":"space?","abstract":false,"location":{"filename":"src/vergesense/room_sensor.cr","line_number":21,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/room_sensor.cr#L21"},"def":{"name":"space?","return_type":"Space | ::Nil","visibility":"Public","body":"@space"}}]},{"html_id":"drivers/Vergesense/Sensor","path":"Vergesense/Sensor.html","kind":"struct","full_name":"Vergesense::Sensor","name":"Sensor","abstract":false,"superclass":{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L30"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":31,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L31"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"units:String-instance-method","name":"units","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L33"},"def":{"name":"units","return_type":"String","visibility":"Public","body":"@units"}},{"html_id":"units=(units:String)-instance-method","name":"units=","abstract":false,"args":[{"name":"units","external_name":"units","restriction":"String"}],"args_string":"(units : String)","args_html":"(units : String)","location":{"filename":"src/vergesense/models.cr","line_number":33,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L33"},"def":{"name":"units=","args":[{"name":"units","external_name":"units","restriction":"String"}],"visibility":"Public","body":"@units = units"}},{"html_id":"value:Float64-instance-method","name":"value","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L34"},"def":{"name":"value","return_type":"Float64","visibility":"Public","body":"@value"}},{"html_id":"value=(value:Float64)-instance-method","name":"value=","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64"}],"args_string":"(value : Float64)","args_html":"(value : Float64)","location":{"filename":"src/vergesense/models.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L34"},"def":{"name":"value=","args":[{"name":"value","external_name":"value","restriction":"Float64"}],"visibility":"Public","body":"@value = value"}}]},{"html_id":"drivers/Vergesense/Space","path":"Vergesense/Space.html","kind":"class","full_name":"Vergesense::Space","name":"Space","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/models.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L56"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/vergesense/models.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L57"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"building_ref_id:String|Nil-instance-method","name":"building_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@building_ref_id"}},{"html_id":"building_ref_id=(building_ref_id:String|Nil)-instance-method","name":"building_ref_id=","abstract":false,"args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"args_string":"(building_ref_id : String | Nil)","args_html":"(building_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L59"},"def":{"name":"building_ref_id=","args":[{"name":"building_ref_id","external_name":"building_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@building_ref_id = building_ref_id"}},{"html_id":"capacity:UInt32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L64"},"def":{"name":"capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:UInt32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(capacity : UInt32 | Nil)","args_html":"(capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L64"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"environment:Environment|Nil-instance-method","name":"environment","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L69"},"def":{"name":"environment","return_type":"Environment | ::Nil","visibility":"Public","body":"@environment"}},{"html_id":"environment=(environment:Environment|Nil)-instance-method","name":"environment=","abstract":false,"args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"args_string":"(environment : Environment | Nil)","args_html":"(environment : Environment | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L69"},"def":{"name":"environment=","args":[{"name":"environment","external_name":"environment","restriction":"Environment | ::Nil"}],"visibility":"Public","body":"@environment = environment"}},{"html_id":"floor_key-instance-method","name":"floor_key","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L82"},"def":{"name":"floor_key","visibility":"Public","body":"\"#{building_ref_id}-#{floor_ref_id}\".strip"}},{"html_id":"floor_ref_id:String|Nil-instance-method","name":"floor_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@floor_ref_id"}},{"html_id":"floor_ref_id=(floor_ref_id:String|Nil)-instance-method","name":"floor_ref_id=","abstract":false,"args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"args_string":"(floor_ref_id : String | Nil)","args_html":"(floor_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L60"},"def":{"name":"floor_ref_id=","args":[{"name":"floor_ref_id","external_name":"floor_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@floor_ref_id = floor_ref_id"}},{"html_id":"last_reports:Array(Report)|Nil-instance-method","name":"last_reports","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L68"},"def":{"name":"last_reports","return_type":"Array(Report) | ::Nil","visibility":"Public","body":"@last_reports"}},{"html_id":"last_reports=(last_reports:Array(Report)|Nil)-instance-method","name":"last_reports=","abstract":false,"args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"args_string":"(last_reports : Array(Report) | Nil)","args_html":"(last_reports : Array(Report) | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L68"},"def":{"name":"last_reports=","args":[{"name":"last_reports","external_name":"last_reports","restriction":"Array(Report) | ::Nil"}],"visibility":"Public","body":"@last_reports = last_reports"}},{"html_id":"max_capacity:UInt32|Nil-instance-method","name":"max_capacity","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity","return_type":"UInt32 | ::Nil","visibility":"Public","body":"@max_capacity"}},{"html_id":"max_capacity=(max_capacity:UInt32|Nil)-instance-method","name":"max_capacity=","abstract":false,"args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"args_string":"(max_capacity : UInt32 | Nil)","args_html":"(max_capacity : UInt32 | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L65"},"def":{"name":"max_capacity=","args":[{"name":"max_capacity","external_name":"max_capacity","restriction":"UInt32 | ::Nil"}],"visibility":"Public","body":"@max_capacity = max_capacity"}},{"html_id":"motion_detected:Bool|Nil-instance-method","name":"motion_detected","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected","return_type":"Bool | ::Nil","visibility":"Public","body":"@motion_detected"}},{"html_id":"motion_detected=(motion_detected:Bool|Nil)-instance-method","name":"motion_detected=","abstract":false,"args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"args_string":"(motion_detected : Bool | Nil)","args_html":"(motion_detected : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L71"},"def":{"name":"motion_detected=","args":[{"name":"motion_detected","external_name":"motion_detected","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@motion_detected = motion_detected"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L63"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L63"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}},{"html_id":"people:People|Nil-instance-method","name":"people","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L67"},"def":{"name":"people","return_type":"People | ::Nil","visibility":"Public","body":"@people"}},{"html_id":"people=(people:People|Nil)-instance-method","name":"people=","doc":"property geometry : Geometry?","summary":"

property geometry : Geometry?

","abstract":false,"args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"args_string":"(people : People | Nil)","args_html":"(people : People | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L67"},"def":{"name":"people=","args":[{"name":"people","external_name":"people","restriction":"People | ::Nil"}],"visibility":"Public","body":"@people = people"}},{"html_id":"ref_id-instance-method","name":"ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":86,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L86"},"def":{"name":"ref_id","visibility":"Public","body":"(self.space_ref_id || self.floor_ref_id) || self.space_type"}},{"html_id":"signs_of_life:Bool|Nil-instance-method","name":"signs_of_life","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life","return_type":"Bool | ::Nil","visibility":"Public","body":"@signs_of_life"}},{"html_id":"signs_of_life=(signs_of_life:Bool|Nil)-instance-method","name":"signs_of_life=","doc":"NOTE:: not returned by the API, we fill this in","summary":"

NOTE : not returned by the API, we fill this in

","abstract":false,"args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"args_string":"(signs_of_life : Bool | Nil)","args_html":"(signs_of_life : Bool | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":80,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L80"},"def":{"name":"signs_of_life=","args":[{"name":"signs_of_life","external_name":"signs_of_life","restriction":"Bool | ::Nil"}],"visibility":"Public","body":"@signs_of_life = signs_of_life"}},{"html_id":"signs_of_life?:Bool|Nil-instance-method","name":"signs_of_life?","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":73,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L73"},"def":{"name":"signs_of_life?","return_type":"Bool | ::Nil","visibility":"Public","body":"if report = last_reports.try(&.first?)\n if report.timestamp >= 2.hours.ago\n report.signs_of_life\n end\nend"}},{"html_id":"space_ref_id:String|Nil-instance-method","name":"space_ref_id","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id","return_type":"String | ::Nil","visibility":"Public","body":"@space_ref_id"}},{"html_id":"space_ref_id=(space_ref_id:String|Nil)-instance-method","name":"space_ref_id=","abstract":false,"args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"args_string":"(space_ref_id : String | Nil)","args_html":"(space_ref_id : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L61"},"def":{"name":"space_ref_id=","args":[{"name":"space_ref_id","external_name":"space_ref_id","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_ref_id = space_ref_id"}},{"html_id":"space_type:String|Nil-instance-method","name":"space_type","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L62"},"def":{"name":"space_type","return_type":"String | ::Nil","visibility":"Public","body":"@space_type"}},{"html_id":"space_type=(space_type:String|Nil)-instance-method","name":"space_type=","abstract":false,"args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"args_string":"(space_type : String | Nil)","args_html":"(space_type : String | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":62,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L62"},"def":{"name":"space_type=","args":[{"name":"space_type","external_name":"space_type","restriction":"String | ::Nil"}],"visibility":"Public","body":"@space_type = space_type"}},{"html_id":"timestamp:Time|Nil-instance-method","name":"timestamp","abstract":false,"location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L70"},"def":{"name":"timestamp","return_type":"Time | ::Nil","visibility":"Public","body":"@timestamp"}},{"html_id":"timestamp=(timestamp:Time|Nil)-instance-method","name":"timestamp=","abstract":false,"args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"args_string":"(timestamp : Time | Nil)","args_html":"(timestamp : Time | Nil)","location":{"filename":"src/vergesense/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/models.cr#L70"},"def":{"name":"timestamp=","args":[{"name":"timestamp","external_name":"timestamp","restriction":"Time | ::Nil"}],"visibility":"Public","body":"@timestamp = timestamp"}}]},{"html_id":"drivers/Vergesense/VergesenseAPI","path":"Vergesense/VergesenseAPI.html","kind":"class","full_name":"Vergesense::VergesenseAPI","name":"VergesenseAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vergesense/vergesense_api.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"EMPTY_HEADERS","name":"EMPTY_HEADERS","value":"{} of String => String"},{"id":"SUCCESS_RESPONSE","name":"SUCCESS_RESPONSE","value":"{HTTP::Status::OK, EMPTY_HEADERS, nil}"}],"namespace":{"html_id":"drivers/Vergesense","kind":"module","full_name":"Vergesense","name":"Vergesense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"floor_key(space_id:String)-instance-method","name":"floor_key","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":85,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L85"},"def":{"name":"floor_key","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@spaces[space_id]"}},{"html_id":"init_sync-instance-method","name":"init_sync","doc":"Performs initial sync by loading buildings / floors / spaces","summary":"

Performs initial sync by loading buildings / floors / spaces

","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L45"},"def":{"name":"init_sync","visibility":"Public","body":"begin\n @sync_lock.synchronize do\n init_buildings\n if @buildings\n init_floors\n init_spaces\n init_floors_status\n self[\"init_complete\"] = true\n end\n end\nrescue e\n logger.error do\n \"failed to perform vergesense API sync\\n#{e.inspect_with_backtrace}\"\n end\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":27,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L27"},"def":{"name":"on_load","visibility":"Public","body":"on_update\nschedule.in(200.milliseconds) do\n init_sync\nend\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/vergesense/vergesense_api.cr","line_number":32,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L32"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :vergesense_api_key)\n@debug_payload = (setting?(Bool, :debug_payload)) || false\n@poll_every = (setting?(Int32, :poll_every)).try(&.seconds)\nschedule.clear\nif poll_time = @poll_every\n schedule.every(poll_time) do\n init_sync\n end\nend\n"}},{"html_id":"space_report_api(method:String,headers:Hash(String,Array(String)),body:String)-instance-method","name":"space_report_api","doc":"Webhook endpoint for space_report API, expects version 2","summary":"

Webhook endpoint for space_report API, expects version 2

","abstract":false,"args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"args_string":"(method : String, headers : Hash(String, Array(String)), body : String)","args_html":"(method : String, headers : Hash(String, Array(String)), body : String)","location":{"filename":"src/vergesense/vergesense_api.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/vergesense/vergesense_api.cr#L65"},"def":{"name":"space_report_api","args":[{"name":"method","external_name":"method","restriction":"String"},{"name":"headers","external_name":"headers","restriction":"Hash(String, Array(String))"},{"name":"body","external_name":"body","restriction":"String"}],"visibility":"Public","body":"logger.debug do\n \"space_report API received: #{method},\\nheaders #{headers},\\nbody size #{body.size}\"\nend\nif @debug_payload\n logger.debug do\n body\n end\nend\nbegin\n remote_space = Space.from_json(body)\n logger.debug do\n \"parsed vergesense payload\"\n end\n update_floor_space(remote_space)\n update_single_floor_status(remote_space.floor_key, @floors[remote_space.floor_key]?)\nrescue e\n logger.error do\n \"failed to parse vergesense space_report API payload\\n#{e.inspect_with_backtrace}\"\n end\n logger.debug do\n \"failed payload body was\\n#{body}\"\n end\nend\nSUCCESS_RESPONSE\n"}}]}]},{"html_id":"drivers/Whispir","path":"Whispir.html","kind":"module","full_name":"Whispir","name":"Whispir","abstract":false,"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Whispir/Messages","path":"Whispir/Messages.html","kind":"class","full_name":"Whispir::Messages","name":"Messages","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/whispir/messages.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/SMS","kind":"module","full_name":"PlaceOS::Driver::Interface::SMS","name":"SMS"}],"namespace":{"html_id":"drivers/Whispir","kind":"module","full_name":"Whispir","name":"Whispir"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/whispir/messages.cr","line_number":25,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L25"},"def":{"name":"on_update","visibility":"Public","body":"@api_key = setting(String, :api_key)"}},{"html_id":"send_sms(phone_numbers:String|Array(String),message:String,format:String|Nil=\"SMS\",source:String|Nil=nil)-instance-method","name":"send_sms","abstract":false,"args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"args_string":"(phone_numbers : String | Array(String), message : String, format : String | Nil = \"SMS\", source : String | Nil = nil)","args_html":"(phone_numbers : String | Array(String), message : String, format : String | Nil = "SMS", source : String | Nil = nil)","location":{"filename":"src/whispir/messages.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/whispir/messages.cr#L29"},"def":{"name":"send_sms","args":[{"name":"phone_numbers","external_name":"phone_numbers","restriction":"String | Array(String)"},{"name":"message","external_name":"message","restriction":"String"},{"name":"format","default_value":"\"SMS\"","external_name":"format","restriction":"String | ::Nil"},{"name":"source","default_value":"nil","external_name":"source","restriction":"String | ::Nil"}],"visibility":"Public","body":"if phone_numbers.is_a?(Array)\nelse\n phone_numbers = [phone_numbers]\nend\nresponse = post(\"/messages?apikey=#{@api_key}\", body: {to: phone_numbers.join(\";\"), subject: \"PlaceOS Notification\", body: message}.to_json, headers: {\"Content-Type\" => \"application/vnd.whispir.message-v1+json\", \"Accept\" => \"application/vnd.whispir.message-v1+json\", \"x-api-key\" => @api_key})\nif response.status_code == 202\nelse\n raise(\"request failed with #{response.status_code}\")\nend\nlocation = response.headers[\"Location\"]?\nlogger.debug do\n \"message sent: #{location}\"\nend\nlocation\n"}}]}]},{"html_id":"drivers/Wiegand","path":"Wiegand.html","kind":"module","full_name":"Wiegand","name":"Wiegand","abstract":false,"locations":[{"filename":"src/wiegand/models.cr","line_number":1,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L1"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Wiegand/Base","path":"Wiegand/Base.html","kind":"class","full_name":"Wiegand::Base","name":"Base","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":3,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L3"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"drivers/Wiegand/Wiegand26","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26"},{"html_id":"drivers/Wiegand/Wiegand35","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"doc":"Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb","summary":"

Ported from: https://github.com/acaprojects/ruby-engine-drivers/blob/beta/lib/hid/algorithms.rb

","class_methods":[{"html_id":"count_1s(int:UInt32|UInt64)-class-method","name":"count_1s","abstract":false,"args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"args_string":"(int : UInt32 | UInt64)","args_html":"(int : UInt32 | UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":14,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L14"},"def":{"name":"count_1s","args":[{"name":"int","external_name":"int","restriction":"UInt32 | UInt64"}],"visibility":"Public","body":"((int.to_s(2)).gsub(\"0\", \"\")).size"}}],"constructors":[{"html_id":"new(wiegand:UInt64,facility:UInt32,card_number:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","args_html":"(wiegand : UInt64, facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":8,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L8"},"def":{"name":"new","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"},{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(wiegand, facility, card_number)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"card_number:UInt32-instance-method","name":"card_number","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L6"},"def":{"name":"card_number","return_type":"UInt32","visibility":"Public","body":"@card_number"}},{"html_id":"card_number=(card_number:UInt32)-instance-method","name":"card_number=","abstract":false,"args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(card_number : UInt32)","args_html":"(card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L6"},"def":{"name":"card_number=","args":[{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"@card_number = card_number"}},{"html_id":"facility:UInt32-instance-method","name":"facility","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L5"},"def":{"name":"facility","return_type":"UInt32","visibility":"Public","body":"@facility"}},{"html_id":"facility=(facility:UInt32)-instance-method","name":"facility=","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"args_string":"(facility : UInt32)","args_html":"(facility : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L5"},"def":{"name":"facility=","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"}],"visibility":"Public","body":"@facility = facility"}},{"html_id":"wiegand:UInt64-instance-method","name":"wiegand","abstract":false,"location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L4"},"def":{"name":"wiegand","return_type":"UInt64","visibility":"Public","body":"@wiegand"}},{"html_id":"wiegand=(wiegand:UInt64)-instance-method","name":"wiegand=","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":4,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L4"},"def":{"name":"wiegand=","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"@wiegand = wiegand"}}]},{"html_id":"drivers/Wiegand/Wiegand26","path":"Wiegand/Wiegand26.html","kind":"class","full_name":"Wiegand::Wiegand26","name":"Wiegand26","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":19,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L19"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"131070"},{"id":"CARD_PAR_MASK","name":"CARD_PAR_MASK","value":"131071"},{"id":"FAC_PAR_MASK","name":"FAC_PAR_MASK","value":"66977792"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"33423360"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-class-method","name":"from_components","doc":"Convert components to wiegand 26 card data","summary":"

Convert components to wiegand 26 card data

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L44"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = 0\nwiegand = wiegand + (card_number << 1)\nif (count_1s(card_number)).odd?\n wiegand = wiegand + (FAC_PAR_MASK ^ FACILITY_MASK)\nend\nwiegand = wiegand + (facility << 17)\nif (count_1s(facility)).even?\n wiegand = wiegand + 1\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_wiegand(wiegand:UInt64)-instance-method","name":"from_wiegand","doc":"Convert wiegand 26 card data to components\n\nHex card data: 0x21a6616\nCard Number: 13067\nCard Facility Code: 13","summary":"

Convert wiegand 26 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"args_string":"(wiegand : UInt64)","args_html":"(wiegand : UInt64)","location":{"filename":"src/wiegand/models.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L30"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":"UInt64"}],"visibility":"Public","body":"card_number = (wiegand & CARD_MASK) >> 1\ncard_1s = count_1s(wiegand & CARD_PAR_MASK)\nfacility = (wiegand & FACILITY_MASK) >> 17\nfacility_1s = count_1s(wiegand & FAC_PAR_MASK)\nparity_passed = card_1s.odd? && facility_1s.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nWiegand26.new(wiegand.to_u64, facility, card_number)\n"}}]},{"html_id":"drivers/Wiegand/Wiegand35","path":"Wiegand/Wiegand35.html","kind":"class","full_name":"Wiegand::Wiegand35","name":"Wiegand35","abstract":false,"superclass":{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},"ancestors":[{"html_id":"drivers/Wiegand/Base","kind":"class","full_name":"Wiegand::Base","name":"Base"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/wiegand/models.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L59"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CARD_MASK","name":"CARD_MASK","value":"4194300"},{"id":"FACILITY_MASK","name":"FACILITY_MASK","value":"17175674880_i64"},{"id":"PAR_EVEN_MASK","name":"PAR_EVEN_MASK","value":"14725602156_i64"},{"id":"PAR_ODD_MASK","name":"PAR_ODD_MASK","value":"7362801078_i64"}],"namespace":{"html_id":"drivers/Wiegand","kind":"module","full_name":"Wiegand","name":"Wiegand"},"class_methods":[{"html_id":"from_wiegand(wiegand)-class-method","name":"from_wiegand","doc":"Convert wiegand 35 card data to components\n\n1 + 12 + 20 + 2\n1 + facility + card num + 2","summary":"

Convert wiegand 35 card data to components

","abstract":false,"args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"args_string":"(wiegand)","args_html":"(wiegand)","location":{"filename":"src/wiegand/models.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L89"},"def":{"name":"from_wiegand","args":[{"name":"wiegand","external_name":"wiegand","restriction":""}],"visibility":"Public","body":"str = ((wiegand.to_s(2)).rjust(35, '0')).reverse\ndata = str.to_i(2)\neven_count = (count_1s(data & PAR_EVEN_MASK)) + (str[0] == '1' ? 1 : 0)\nodd_count = count_1s(data & PAR_ODD_MASK)\nparity_passed = odd_count.odd? && even_count.even?\nif parity_passed\nelse\n raise(\"parity check error\")\nend\nfacility = (data & FACILITY_MASK) >> 22\ncard_number = (data & CARD_MASK) >> 2\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}],"instance_methods":[{"html_id":"from_components(facility:UInt32,card_number:UInt32)-instance-method","name":"from_components","doc":"Outputs the HEX code of what is written to the swipe card\n\nHex card data: 0x06F20107F\nCard Number: 2540\nCard Facility Code: 4033","summary":"

Outputs the HEX code of what is written to the swipe card

","abstract":false,"args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"args_string":"(facility : UInt32, card_number : UInt32)","args_html":"(facility : UInt32, card_number : UInt32)","location":{"filename":"src/wiegand/models.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/wiegand/models.cr#L70"},"def":{"name":"from_components","args":[{"name":"facility","external_name":"facility","restriction":"UInt32"},{"name":"card_number","external_name":"card_number","restriction":"UInt32"}],"visibility":"Public","body":"wiegand = (facility << 22) + (card_number << 2)\neven_count = count_1s(wiegand & PAR_EVEN_MASK)\nodd_count = count_1s(wiegand & PAR_ODD_MASK)\nif even_count.odd?\n wiegand = wiegand + (1 << 34)\nend\nif odd_count.even?\n wiegand = wiegand + 2\nend\nwiegand = ((wiegand.to_s(2)).rjust(35, '0')).reverse.to_i(2)\nWiegand35.new(wiegand.to_u64, facility, card_number)\n"}}]}]},{"html_id":"drivers/WilliamsAV","path":"WilliamsAV.html","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV","abstract":false,"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM","path":"WilliamsAV/WaveCastFM.html","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"TYPES","name":"TYPES","value":"{Command::TDU8_REBOOT => Type::TT_U8, Command::TDU8_RESTORE_DEFAULTS => Type::TT_U8, Command::TDU8_VU_METER_VALUE => Type::TT_U8, Command::TDU8_INPUT_GAIN => Type::TT_U8, Command::TDU8_INPUT_SOURCE => Type::TT_U8, Command::TDU8_PRESET => Type::TT_U8, Command::TDU8_HIGH_PASS => Type::TT_U8, Command::TDU8_LOW_PASS => Type::TT_U8, Command::TDU8_COMPRESSION => Type::TT_U8, Command::TDU8_USE_DHCP => Type::TT_U8, Command::TDU8_AUDIO_TX_MODE => Type::TT_U8, Command::TDU8_TTL => Type::TT_U8, Command::TDU8_SECURE_MODE => Type::TT_U8, Command::TDU8_PANEL_LOCK => Type::TT_U8, Command::TDU32_RF_TIMEOUT => Type::TT_U32, Command::TDU8_RF_CHANNEL => Type::TT_U8, Command::TDU8_RF_17_CHANNEL_MODE => Type::TT_U8, Command::TDU8_RF_POWER => Type::TT_U8, Command::TDSTR_SERVER_NAME => Type::TT_STRING, Command::TDSTR_STATIC_IP_ADDR => Type::TT_STRING, Command::TDSTR_STATIC_SUBNET_MASK => Type::TT_STRING, Command::TDSTR_STATIC_GATEWAY_ADDR => Type::TT_STRING, Command::TDSTR_MULTICAST_ADDR => Type::TT_STRING, Command::TDSTR_JOIN_CODE => Type::TT_STRING}"}],"namespace":{"html_id":"drivers/WilliamsAV","kind":"module","full_name":"WilliamsAV","name":"WilliamsAV"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"channel_number:Int32|Nil-instance-method","name":"channel_number","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L34"},"def":{"name":"channel_number","return_type":"Int32 | ::Nil","visibility":"Public","body":"@channel_number"}},{"html_id":"channel_offset-instance-method","name":"channel_offset","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":26,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L26"},"def":{"name":"channel_offset","visibility":"Public","body":"(3000 * (@channel_number || 0)) + (rand(750))"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":30,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L30"},"def":{"name":"connected","visibility":"Public","body":"schedule.in(channel_offset.milliseconds) do\n query_state\nend"}},{"html_id":"enable_join_code(state:Bool)-instance-method","name":"enable_join_code","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":186,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L186"},"def":{"name":"enable_join_code","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_SECURE_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"input_gain(value:UInt8)-instance-method","name":"input_gain","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":223,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L223"},"def":{"name":"input_gain","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 50_u8)\nwrite(Command::TDU8_INPUT_GAIN, value)\n"}},{"html_id":"input_source(value:InputSource)-instance-method","name":"input_source","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"args_string":"(value : InputSource)","args_html":"(value : InputSource)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":238,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L238"},"def":{"name":"input_source","args":[{"name":"value","external_name":"value","restriction":"InputSource"}],"visibility":"Public","body":"write(Command::TDU8_INPUT_SOURCE, value.to_u8)"}},{"html_id":"lock_front_panel(state:Bool)-instance-method","name":"lock_front_panel","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":266,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L266"},"def":{"name":"lock_front_panel","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_PANEL_LOCK, state ? 1_u8 : 0_u8)"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":18,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L18"},"def":{"name":"on_update","visibility":"Public","body":"@channel_number = setting?(Int32, :channel_number)\nschedule.clear\nschedule.cron(\"* * * * *\") do\n connected\nend\n"}},{"html_id":"preset(value:Preset)-instance-method","name":"preset","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Preset"}],"args_string":"(value : Preset)","args_html":"(value : Preset)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":250,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L250"},"def":{"name":"preset","args":[{"name":"value","external_name":"value","restriction":"Preset"}],"visibility":"Public","body":"write(Command::TDU8_PRESET, value.to_u8)"}},{"html_id":"query_state-instance-method","name":"query_state","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":99,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L99"},"def":{"name":"query_state","visibility":"Public","body":"if channel = channel_number\n body_data = URI::Params.build do |form|\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end.to_s\n logger.debug do\n \"switching current channel to: #{channel}\"\n end\n response = post(\"/TBL-WRITE\", body: body_data)\n if response.success?\n else\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\n end\nend\nresponse = get(\"/TBL-READ?All\")\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\ncount = 0\n(response.body.split('\\n')).each do |line|\n if line.presence\n else\n next\n end\n parts = (line.split(\",\")).map!(&.strip)\n begin\n type = Type.parse(parts[0])\n command = (Command.parse?(parts[1])) || parts[1]\n value_raw = parts[2]\n value = case type\n in Type::TT_FLOAT\n value_raw.to_f\n in Type::TT_U8, Type::TT_U32, Type::TT_S8, Type::TT_S32\n value_raw.to_i\n in Type::TT_STRING\n value_raw\n end\n set_status(command, value)\n count = count + 1\n rescue error\n raise(\"error parsing response line\\n#{error.inspect_with_backtrace}\")\n end\nend\n\"#{count} values updated\"\n"}},{"html_id":"reboot-instance-method","name":"reboot","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":207,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L207"},"def":{"name":"reboot","visibility":"Public","body":"write(Command::TDU8_REBOOT, 1_u8)"}},{"html_id":"restore_defaults-instance-method","name":"restore_defaults","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":212,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L212"},"def":{"name":"restore_defaults","visibility":"Public","body":"write(Command::TDU8_RESTORE_DEFAULTS, 1_u8)"}},{"html_id":"set_join_code(pin:String)-instance-method","name":"set_join_code","abstract":false,"args":[{"name":"pin","external_name":"pin","restriction":"String"}],"args_string":"(pin : String)","args_html":"(pin : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":191,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L191"},"def":{"name":"set_join_code","args":[{"name":"pin","external_name":"pin","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_JOIN_CODE, pin)"}},{"html_id":"set_multicast_address(ip_address:String)-instance-method","name":"set_multicast_address","abstract":false,"args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"args_string":"(ip_address : String)","args_html":"(ip_address : String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":271,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L271"},"def":{"name":"set_multicast_address","args":[{"name":"ip_address","external_name":"ip_address","restriction":"String"}],"visibility":"Public","body":"write(Command::TDSTR_MULTICAST_ADDR, ip_address)"}},{"html_id":"set_random_join_code(size:Int32=4)-instance-method","name":"set_random_join_code","doc":"creates a numeric pin size digits long","summary":"

creates a numeric pin size digits long

","abstract":false,"args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"args_string":"(size : Int32 = 4)","args_html":"(size : Int32 = 4)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":197,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L197"},"def":{"name":"set_random_join_code","args":[{"name":"size","default_value":"4","external_name":"size","restriction":"Int32"}],"visibility":"Public","body":"pin = String.build do |str|\n size.times do\n (rand(9)).to_s(str)\n end\nend\nset_join_code(pin)\n"}},{"html_id":"set_ttl(value:UInt8)-instance-method","name":"set_ttl","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(value : UInt8)","args_html":"(value : UInt8)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":260,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L260"},"def":{"name":"set_ttl","args":[{"name":"value","external_name":"value","restriction":"UInt8"}],"visibility":"Public","body":"value = value.clamp(0_u8, 30_u8)\nwrite(Command::TDU8_TTL, value)\n"}},{"html_id":"set_vu_meter(value:UInt8,overload:Bool=false)-instance-method","name":"set_vu_meter","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"args_string":"(value : UInt8, overload : Bool = false)","args_html":"(value : UInt8, overload : Bool = false)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":217,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L217"},"def":{"name":"set_vu_meter","args":[{"name":"value","external_name":"value","restriction":"UInt8"},{"name":"overload","default_value":"false","external_name":"overload","restriction":"Bool"}],"visibility":"Public","body":"if overload\nelse\n value = value.clamp(0_u8, 9_u8)\nend\nwrite(Command::TDU8_VU_METER_VALUE, value)\n"}},{"html_id":"transmit_multicast(state:Bool)-instance-method","name":"transmit_multicast","abstract":false,"args":[{"name":"state","external_name":"state","restriction":"Bool"}],"args_string":"(state : Bool)","args_html":"(state : Bool)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":255,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L255"},"def":{"name":"transmit_multicast","args":[{"name":"state","external_name":"state","restriction":"Bool"}],"visibility":"Public","body":"write(Command::TDU8_AUDIO_TX_MODE, state ? 1_u8 : 0_u8)"}},{"html_id":"write(command:Command,value:UInt8|UInt32|String)-instance-method","name":"write","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"args_string":"(command : Command, value : UInt8 | UInt32 | String)","args_html":"(command : Command, value : UInt8 | UInt32 | String)","location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":165,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L165"},"def":{"name":"write","args":[{"name":"command","external_name":"command","restriction":"Command"},{"name":"value","external_name":"value","restriction":"UInt8 | UInt32 | String"}],"visibility":"Public","body":"body_data = URI::Params.build do |form|\n if channel = channel_number\n form.add(\"type\", \"TT_U8\")\n form.add(\"id\", \"TDU8_CURRENT_CHANNEL\")\n form.add(\"value\", channel.to_s)\n end\n form.add(\"type\", TYPES[command].to_s)\n form.add(\"id\", command.to_s)\n form.add(\"value\", value.to_s)\nend.to_s\nlogger.debug do\n \"updating setting: #{body_data}\"\nend\nresponse = post(\"/TBL-WRITE\", body: body_data)\nif response.success?\nelse\n raise(\"request failed with #{response.status_code}\\n#{response.body}\")\nend\nset_status(command, value)\n"}}],"types":[{"html_id":"drivers/WilliamsAV/WaveCastFM/Command","path":"WilliamsAV/WaveCastFM/Command.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Command","name":"Command","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":36,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L36"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TDU8_REBOOT","name":"TDU8_REBOOT","value":"0"},{"id":"TDU8_RESTORE_DEFAULTS","name":"TDU8_RESTORE_DEFAULTS","value":"1"},{"id":"TDU8_VU_METER_VALUE","name":"TDU8_VU_METER_VALUE","value":"2"},{"id":"TDU8_INPUT_GAIN","name":"TDU8_INPUT_GAIN","value":"3"},{"id":"TDU8_INPUT_SOURCE","name":"TDU8_INPUT_SOURCE","value":"4"},{"id":"TDU8_PRESET","name":"TDU8_PRESET","value":"5"},{"id":"TDU8_HIGH_PASS","name":"TDU8_HIGH_PASS","value":"6"},{"id":"TDU8_LOW_PASS","name":"TDU8_LOW_PASS","value":"7"},{"id":"TDU8_COMPRESSION","name":"TDU8_COMPRESSION","value":"8"},{"id":"TDU8_USE_DHCP","name":"TDU8_USE_DHCP","value":"9"},{"id":"TDU8_AUDIO_TX_MODE","name":"TDU8_AUDIO_TX_MODE","value":"10"},{"id":"TDU8_TTL","name":"TDU8_TTL","value":"11"},{"id":"TDU8_SECURE_MODE","name":"TDU8_SECURE_MODE","value":"12"},{"id":"TDU8_PANEL_LOCK","name":"TDU8_PANEL_LOCK","value":"13"},{"id":"TDU32_RF_TIMEOUT","name":"TDU32_RF_TIMEOUT","value":"14"},{"id":"TDU8_RF_CHANNEL","name":"TDU8_RF_CHANNEL","value":"15"},{"id":"TDU8_RF_17_CHANNEL_MODE","name":"TDU8_RF_17_CHANNEL_MODE","value":"16"},{"id":"TDU8_RF_POWER","name":"TDU8_RF_POWER","value":"17"},{"id":"TDSTR_SERVER_NAME","name":"TDSTR_SERVER_NAME","value":"18"},{"id":"TDSTR_STATIC_IP_ADDR","name":"TDSTR_STATIC_IP_ADDR","value":"19"},{"id":"TDSTR_STATIC_SUBNET_MASK","name":"TDSTR_STATIC_SUBNET_MASK","value":"20"},{"id":"TDSTR_STATIC_GATEWAY_ADDR","name":"TDSTR_STATIC_GATEWAY_ADDR","value":"21"},{"id":"TDSTR_MULTICAST_ADDR","name":"TDSTR_MULTICAST_ADDR","value":"22"},{"id":"TDSTR_JOIN_CODE","name":"TDSTR_JOIN_CODE","value":"23"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tdstr_join_code?-instance-method","name":"tdstr_join_code?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L60"},"def":{"name":"tdstr_join_code?","visibility":"Public","body":"self == TDSTR_JOIN_CODE"}},{"html_id":"tdstr_multicast_addr?-instance-method","name":"tdstr_multicast_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":59,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L59"},"def":{"name":"tdstr_multicast_addr?","visibility":"Public","body":"self == TDSTR_MULTICAST_ADDR"}},{"html_id":"tdstr_server_name?-instance-method","name":"tdstr_server_name?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L55"},"def":{"name":"tdstr_server_name?","visibility":"Public","body":"self == TDSTR_SERVER_NAME"}},{"html_id":"tdstr_static_gateway_addr?-instance-method","name":"tdstr_static_gateway_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":58,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L58"},"def":{"name":"tdstr_static_gateway_addr?","visibility":"Public","body":"self == TDSTR_STATIC_GATEWAY_ADDR"}},{"html_id":"tdstr_static_ip_addr?-instance-method","name":"tdstr_static_ip_addr?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L56"},"def":{"name":"tdstr_static_ip_addr?","visibility":"Public","body":"self == TDSTR_STATIC_IP_ADDR"}},{"html_id":"tdstr_static_subnet_mask?-instance-method","name":"tdstr_static_subnet_mask?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L57"},"def":{"name":"tdstr_static_subnet_mask?","visibility":"Public","body":"self == TDSTR_STATIC_SUBNET_MASK"}},{"html_id":"tdu32_rf_timeout?-instance-method","name":"tdu32_rf_timeout?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L51"},"def":{"name":"tdu32_rf_timeout?","visibility":"Public","body":"self == TDU32_RF_TIMEOUT"}},{"html_id":"tdu8_audio_tx_mode?-instance-method","name":"tdu8_audio_tx_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":47,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L47"},"def":{"name":"tdu8_audio_tx_mode?","visibility":"Public","body":"self == TDU8_AUDIO_TX_MODE"}},{"html_id":"tdu8_compression?-instance-method","name":"tdu8_compression?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L45"},"def":{"name":"tdu8_compression?","visibility":"Public","body":"self == TDU8_COMPRESSION"}},{"html_id":"tdu8_high_pass?-instance-method","name":"tdu8_high_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L43"},"def":{"name":"tdu8_high_pass?","visibility":"Public","body":"self == TDU8_HIGH_PASS"}},{"html_id":"tdu8_input_gain?-instance-method","name":"tdu8_input_gain?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L40"},"def":{"name":"tdu8_input_gain?","visibility":"Public","body":"self == TDU8_INPUT_GAIN"}},{"html_id":"tdu8_input_source?-instance-method","name":"tdu8_input_source?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L41"},"def":{"name":"tdu8_input_source?","visibility":"Public","body":"self == TDU8_INPUT_SOURCE"}},{"html_id":"tdu8_low_pass?-instance-method","name":"tdu8_low_pass?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L44"},"def":{"name":"tdu8_low_pass?","visibility":"Public","body":"self == TDU8_LOW_PASS"}},{"html_id":"tdu8_panel_lock?-instance-method","name":"tdu8_panel_lock?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L50"},"def":{"name":"tdu8_panel_lock?","visibility":"Public","body":"self == TDU8_PANEL_LOCK"}},{"html_id":"tdu8_preset?-instance-method","name":"tdu8_preset?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":42,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L42"},"def":{"name":"tdu8_preset?","visibility":"Public","body":"self == TDU8_PRESET"}},{"html_id":"tdu8_reboot?-instance-method","name":"tdu8_reboot?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L37"},"def":{"name":"tdu8_reboot?","visibility":"Public","body":"self == TDU8_REBOOT"}},{"html_id":"tdu8_restore_defaults?-instance-method","name":"tdu8_restore_defaults?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":38,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L38"},"def":{"name":"tdu8_restore_defaults?","visibility":"Public","body":"self == TDU8_RESTORE_DEFAULTS"}},{"html_id":"tdu8_rf_17_channel_mode?-instance-method","name":"tdu8_rf_17_channel_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L53"},"def":{"name":"tdu8_rf_17_channel_mode?","visibility":"Public","body":"self == TDU8_RF_17_CHANNEL_MODE"}},{"html_id":"tdu8_rf_channel?-instance-method","name":"tdu8_rf_channel?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L52"},"def":{"name":"tdu8_rf_channel?","visibility":"Public","body":"self == TDU8_RF_CHANNEL"}},{"html_id":"tdu8_rf_power?-instance-method","name":"tdu8_rf_power?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L54"},"def":{"name":"tdu8_rf_power?","visibility":"Public","body":"self == TDU8_RF_POWER"}},{"html_id":"tdu8_secure_mode?-instance-method","name":"tdu8_secure_mode?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L49"},"def":{"name":"tdu8_secure_mode?","visibility":"Public","body":"self == TDU8_SECURE_MODE"}},{"html_id":"tdu8_ttl?-instance-method","name":"tdu8_ttl?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L48"},"def":{"name":"tdu8_ttl?","visibility":"Public","body":"self == TDU8_TTL"}},{"html_id":"tdu8_use_dhcp?-instance-method","name":"tdu8_use_dhcp?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L46"},"def":{"name":"tdu8_use_dhcp?","visibility":"Public","body":"self == TDU8_USE_DHCP"}},{"html_id":"tdu8_vu_meter_value?-instance-method","name":"tdu8_vu_meter_value?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":39,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L39"},"def":{"name":"tdu8_vu_meter_value?","visibility":"Public","body":"self == TDU8_VU_METER_VALUE"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/InputSource","path":"WilliamsAV/WaveCastFM/InputSource.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::InputSource","name":"InputSource","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":228,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L228"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"AnalogLineIn","name":"AnalogLineIn","value":"1"},{"id":"Mic","name":"Mic","value":"2"},{"id":"PhantomMic","name":"PhantomMic","value":"3"},{"id":"AES","name":"AES","value":"4"},{"id":"S_PDIF","name":"S_PDIF","value":"5"},{"id":"TestTone","name":"TestTone","value":"6"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"aes?-instance-method","name":"aes?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":232,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L232"},"def":{"name":"aes?","visibility":"Public","body":"self == AES"}},{"html_id":"analog_line_in?-instance-method","name":"analog_line_in?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":229,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L229"},"def":{"name":"analog_line_in?","visibility":"Public","body":"self == AnalogLineIn"}},{"html_id":"mic?-instance-method","name":"mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":230,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L230"},"def":{"name":"mic?","visibility":"Public","body":"self == Mic"}},{"html_id":"phantom_mic?-instance-method","name":"phantom_mic?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":231,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L231"},"def":{"name":"phantom_mic?","visibility":"Public","body":"self == PhantomMic"}},{"html_id":"s_pdif?-instance-method","name":"s_pdif?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":233,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L233"},"def":{"name":"s_pdif?","visibility":"Public","body":"self == S_PDIF"}},{"html_id":"test_tone?-instance-method","name":"test_tone?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":234,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L234"},"def":{"name":"test_tone?","visibility":"Public","body":"self == TestTone"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Preset","path":"WilliamsAV/WaveCastFM/Preset.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Preset","name":"Preset","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":242,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L242"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Voice","name":"Voice","value":"1"},{"id":"Music","name":"Music","value":"2"},{"id":"HearingAssist","name":"HearingAssist","value":"3"},{"id":"Custom","name":"Custom","value":"4"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"custom?-instance-method","name":"custom?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":246,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L246"},"def":{"name":"custom?","visibility":"Public","body":"self == Custom"}},{"html_id":"hearing_assist?-instance-method","name":"hearing_assist?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":245,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L245"},"def":{"name":"hearing_assist?","visibility":"Public","body":"self == HearingAssist"}},{"html_id":"music?-instance-method","name":"music?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":244,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L244"},"def":{"name":"music?","visibility":"Public","body":"self == Music"}},{"html_id":"voice?-instance-method","name":"voice?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":243,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L243"},"def":{"name":"voice?","visibility":"Public","body":"self == Voice"}}]},{"html_id":"drivers/WilliamsAV/WaveCastFM/Type","path":"WilliamsAV/WaveCastFM/Type.html","kind":"enum","full_name":"WilliamsAV::WaveCastFM::Type","name":"Type","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/williams_av/wave_cast_fm.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L63"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"TT_FLOAT","name":"TT_FLOAT","value":"0"},{"id":"TT_U8","name":"TT_U8","value":"1"},{"id":"TT_U32","name":"TT_U32","value":"2"},{"id":"TT_S8","name":"TT_S8","value":"3"},{"id":"TT_S32","name":"TT_S32","value":"4"},{"id":"TT_STRING","name":"TT_STRING","value":"5"}],"namespace":{"html_id":"drivers/WilliamsAV/WaveCastFM","kind":"class","full_name":"WilliamsAV::WaveCastFM","name":"WaveCastFM"},"instance_methods":[{"html_id":"tt_float?-instance-method","name":"tt_float?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L64"},"def":{"name":"tt_float?","visibility":"Public","body":"self == TT_FLOAT"}},{"html_id":"tt_s32?-instance-method","name":"tt_s32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L68"},"def":{"name":"tt_s32?","visibility":"Public","body":"self == TT_S32"}},{"html_id":"tt_s8?-instance-method","name":"tt_s8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":67,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L67"},"def":{"name":"tt_s8?","visibility":"Public","body":"self == TT_S8"}},{"html_id":"tt_string?-instance-method","name":"tt_string?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":69,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L69"},"def":{"name":"tt_string?","visibility":"Public","body":"self == TT_STRING"}},{"html_id":"tt_u32?-instance-method","name":"tt_u32?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":66,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L66"},"def":{"name":"tt_u32?","visibility":"Public","body":"self == TT_U32"}},{"html_id":"tt_u8?-instance-method","name":"tt_u8?","abstract":false,"location":{"filename":"src/williams_av/wave_cast_fm.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/williams_av/wave_cast_fm.cr#L65"},"def":{"name":"tt_u8?","visibility":"Public","body":"self == TT_U8"}}]}]}]},{"html_id":"drivers/Winmate","path":"Winmate.html","kind":"module","full_name":"Winmate","name":"Winmate","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Winmate/LedLightBar","path":"Winmate/LedLightBar.html","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":5,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L5"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"COLOUR_LOOKUP","name":"COLOUR_LOOKUP","value":"{16 => Led::Red, 17 => Led::Green, 18 => Led::Blue}"},{"id":"COLOURS","name":"COLOURS","value":"{Led::Red => 16_u8, Led::Green => 17_u8, Led::Blue => 18_u8}"},{"id":"COMMANDS","name":"COMMANDS","value":"{set: 97_u8, get: 96_u8}"},{"id":"DEFAULT_COLOURS","name":"DEFAULT_COLOURS","value":"{\"red\" => {red: 255_u8, green: 0_u8, blue: 0_u8}, \"green\" => {red: 0_u8, green: 255_u8, blue: 0_u8}, \"blue\" => {red: 0_u8, green: 0_u8, blue: 255_u8}, \"orange\" => {red: 200_u8, green: 0_u8, blue: 0_u8}, \"off\" => {red: 0_u8, green: 0_u8, blue: 0_u8}}"}],"namespace":{"html_id":"drivers/Winmate","kind":"module","full_name":"Winmate","name":"Winmate"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"colour(colour:String)-instance-method","name":"colour","abstract":false,"args":[{"name":"colour","external_name":"colour","restriction":"String"}],"args_string":"(colour : String)","args_html":"(colour : String)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":72,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L72"},"def":{"name":"colour","args":[{"name":"colour","external_name":"colour","restriction":"String"}],"visibility":"Public","body":"colours = @colours[colour]\nself[:colour_name] = colour\ncolours.each do |component, intensity|\n led = Led.parse(component.to_s)\n set(led, intensity)\nend\n"}},{"html_id":"connected-instance-method","name":"connected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":53,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L53"},"def":{"name":"connected","visibility":"Public","body":"@buffer = String.new\ntransport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n bytes[0].to_i\nend\ndo_poll\nschedule.every(50.seconds) do\n logger.debug do\n \"-- Polling Winmate LED\"\n end\n do_poll\nend\n"}},{"html_id":"disconnected-instance-method","name":"disconnected","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L68"},"def":{"name":"disconnected","visibility":"Public","body":"schedule.clear"}},{"html_id":"do_poll-instance-method","name":"do_poll","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":121,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L121"},"def":{"name":"do_poll","visibility":"Public","body":"query(:red, priority: 0)\nquery(:green, priority: 0)\nquery(:blue, priority: 0)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":11,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L11"},"def":{"name":"on_load","visibility":"Public","body":"queue.delay = 100.milliseconds\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L48"},"def":{"name":"on_update","visibility":"Public","body":"colours = (setting?(Colours, :colours)) || Colours.new\n@colours = colours.merge(DEFAULT_COLOURS)\n"}},{"html_id":"query(led:Led,**options)-instance-method","name":"query","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"}],"args_string":"(led : Led, **options)","args_html":"(led : Led, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":104,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L104"},"def":{"name":"query","args":[{"name":"led","external_name":"led","restriction":"Led"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"do_send(**options.merge({command: :get, colour: led}))"}},{"html_id":"received(bytes,task)-instance-method","name":"received","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(bytes, task)","args_html":"(bytes, task)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":127,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L127"},"def":{"name":"received","args":[{"name":"bytes","external_name":"bytes","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"received: #{bytes.hexstring}\"\nend\nif check_checksum(bytes)\nelse\n logger.warn do\n \"Error processing response. Possibly incorrect baud rate configured\"\n end\n return task.try(&.abort)\nend\nindicator = bytes[1]\ncolour = COLOUR_LOOKUP[indicator]?\nif colour\n self[colour.to_s.downcase] = bytes[2]\n task.try(&.success(bytes[2]))\nelse\n if indicator == 12\n else\n return task.try(&.abort)\n end\n task.try(&.success)\nend\n"}},{"html_id":"set(led:Led,value:UInt8,**options)-instance-method","name":"set","abstract":false,"args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"args_string":"(led : Led, value : UInt8, **options)","args_html":"(led : Led, value : UInt8, **options)","location":{"filename":"src/winmate/led_light_bar.cr","line_number":111,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L111"},"def":{"name":"set","args":[{"name":"led","external_name":"led","restriction":"Led"},{"name":"value","external_name":"value","restriction":"UInt8"}],"double_splat":{"name":"options","external_name":"options","restriction":""},"visibility":"Public","body":"self[led.to_s.downcase] = value\ndo_send(**options.merge({command: :set, colour: led, value: value}))\n"}}],"types":[{"html_id":"drivers/Winmate/LedLightBar/Colours","path":"Winmate/LedLightBar/Colours.html","kind":"alias","full_name":"Winmate::LedLightBar::Colours","name":"Colours","abstract":false,"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L44"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"Hash(String, NamedTuple(red: UInt8, green: UInt8, blue: UInt8))","aliased_html":"Hash(String, {red: UInt8, green: UInt8, blue: UInt8})","const":false,"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"}},{"html_id":"drivers/Winmate/LedLightBar/Led","path":"Winmate/LedLightBar/Led.html","kind":"enum","full_name":"Winmate::LedLightBar::Led","name":"Led","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/winmate/led_light_bar.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L81"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Red","name":"Red","value":"0"},{"id":"Green","name":"Green","value":"1"},{"id":"Blue","name":"Blue","value":"2"}],"namespace":{"html_id":"drivers/Winmate/LedLightBar","kind":"class","full_name":"Winmate::LedLightBar","name":"LedLightBar"},"instance_methods":[{"html_id":"blue?-instance-method","name":"blue?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":84,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L84"},"def":{"name":"blue?","visibility":"Public","body":"self == Blue"}},{"html_id":"green?-instance-method","name":"green?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":83,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L83"},"def":{"name":"green?","visibility":"Public","body":"self == Green"}},{"html_id":"red?-instance-method","name":"red?","abstract":false,"location":{"filename":"src/winmate/led_light_bar.cr","line_number":82,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/winmate/led_light_bar.cr#L82"},"def":{"name":"red?","visibility":"Public","body":"self == Red"}}]}]}]},{"html_id":"drivers/Xovis","path":"Xovis.html","kind":"module","full_name":"Xovis","name":"Xovis","abstract":false,"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Xovis/SensorAPI","path":"Xovis/SensorAPI.html","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"NO_MATCH","name":"NO_MATCH","value":"[] of Interface::Sensor::Detail"},{"id":"TYPES","name":"TYPES","value":"{\"line-counts\" => SensorType::QueueSize, \"zone-occupancy-counts\" => SensorType::PeopleCount, \"zone-in-out-counts\" => SensorType::Counter}"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor","kind":"module","full_name":"PlaceOS::Driver::Interface::Sensor","name":"Sensor"}],"namespace":{"html_id":"drivers/Xovis","kind":"module","full_name":"Xovis","name":"Xovis"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"capacity_data-instance-method","name":"capacity_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":146,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L146"},"def":{"name":"capacity_data","visibility":"Public","body":"response = get(\"/api/info/persistence\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlast_checked = Time.utc.to_unix\n{\"line\", \"zone-occupancy\", \"zone-in-out\"}.each do |count_name|\n xml_key_name = \"//count-#{count_name}-storage\"\n if count_data = (document.xpath_nodes(xml_key_name)).first?\n count_type = (count_name.split(\"-\", 2))[0]\n capacity = xpath_text(document, \"#{xml_key_name}/capacity\", &.to_i)\n key = \"#{count_name}-counts\"\n @state[key] = self[key] = (document.xpath_nodes(\"#{xml_key_name}/count-#{count_type}s/count-#{count_type}\")).map_with_index do |zone, index|\n attrs = {} of String => String | Int32 | Int64 | Nil\n zone.children.each do |child|\n content = child.text.strip\n attrs[child.name] = case child.name\n when \"entry-count\"\n content.to_i\n when \"first-entry\", \"last-entry\"\n content.empty? ? nil : (Time.parse!(content, \"%Y-%m-%dT%H:%M:%S%z\")).to_unix\n when \"text\"\n next\n else\n content\n end\n end\n last_entry = attrs[\"last-entry\"].as(Int64 | ::Nil)\n sensor = case count_name\n when \"line\"\n SensorDetail.new(SensorType::QueueSize, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"line-#{index}\", attrs[\"name\"].as(String))\n when \"zone-occupancy\"\n SensorDetail.new(SensorType::PeopleCount, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-occupancy-#{index}\", \"Occupancy #{attrs[\"name\"].as(String)}\")\n when \"zone-in-out\"\n SensorDetail.new(SensorType::Counter, (attrs[\"entry-count\"].as(Int32)).to_f, last_entry || last_checked, @mac, \"zone-in-out-#{index}\", \"In Out #{attrs[\"name\"].as(String)}\")\n else\n next\n end\n sensor.capacity = capacity\n sensor.last_entry = last_entry\n sensor.first_entry = attrs[\"first-entry\"].as(Int64 | ::Nil)\n sensor\n end.compact\n end\nend\ntrue\n"}},{"html_id":"count_data-instance-method","name":"count_data","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":126,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L126"},"def":{"name":"count_data","visibility":"Public","body":"response = get(\"/api/count-data\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nlines = {} of String => NamedTuple(name: String, id: String, type: String, sensor: String, data: Hash(String, String | Int32 | Float32))\nlines_xml = document.xpath_nodes(\"//lines/line\")\nself[:lines] = lines_xml.map do |line|\n attrs = {} of String => String | Hash(String, Int32)\n counts = {} of String => Int32\n line.attributes.each do |attr|\n attrs[attr.name] = attr.content\n end\n line.children.each do |child|\n if child.name == \"text\"\n next\n end\n counts[child.name] = child.text.to_i\n end\n attrs[\"counts\"] = counts\n attrs\nend\n"}},{"html_id":"device_status-instance-method","name":"device_status","doc":"Combined `/info` and `/info/status`","summary":"

Combined /info and /info/status

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":198,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L198"},"def":{"name":"device_status","visibility":"Public","body":"response = get(\"/api/info/sensor-status\", headers: {\"Accept\" => \"text/xml\"})\ndocument = check_success(response)\nparse_type_info(document, \"version\")\nparse_type_info(document, \"temperature\")\nif sensor = parse_text_info(document, \"sensor\")\n @mac = sensor[\"serial-number\"]? || @mac\nend\nparse_text_info(document, \"illumination\")\nparse_text_info(document, \"configuration\")\nparse_text_info(document, \"operation\")\ntrue\n"}},{"html_id":"get_logs-instance-method","name":"get_logs","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":105,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L105"},"def":{"name":"get_logs","visibility":"Public","body":"response = get(\"/api/info/log\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining logs: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"get_token-instance-method","name":"get_token","doc":"Alternative to using basic auth, but here really only for testing with postman","summary":"

Alternative to using basic auth, but here really only for testing with postman

","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":98,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L98"},"def":{"name":"get_token","visibility":"Public","body":"response = get(\"/api/auth/token\", headers: {\"Accept\" => \"text\"})\nif response.success?\nelse\n raise(\"issue obtaining token: #{response.status_code}\\n#{response.body}\")\nend\nresponse.body\n"}},{"html_id":"is_alive?-instance-method","name":"is_alive?","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":118,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L118"},"def":{"name":"is_alive?","visibility":"Public","body":"begin\n response = get(\"/api/info/alive\", headers: {\"Accept\" => \"text/xml\"})\n check_success(response)\n true\nrescue\n false\nend"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":28,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L28"},"def":{"name":"on_update","visibility":"Public","body":"@poll_rate = ((setting?(Int32, :poll_rate)) || 15).seconds\n@mac = (URI.parse(config.uri.not_nil!)).hostname.not_nil!\nquery_capacity = setting?(Bool, :query_capacity)\nquery_counts = setting?(Bool, :query_counts)\nschedule.clear\nschedule.every(@poll_rate) do\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\nschedule.every(5.minutes) do\n device_status\nend\nschedule.in(@poll_rate / 3) do\n device_status\n if query_capacity == false\n else\n capacity_data\n end\n if query_counts == false\n else\n count_data\n end\nend\n"}},{"html_id":"reset_count-instance-method","name":"reset_count","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":112,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L112"},"def":{"name":"reset_count","visibility":"Public","body":"response = get(\"/api/count-data/reset\", headers: {\"Accept\" => \"text/xml\"})\ncheck_success(response)\ntrue\n"}},{"html_id":"sensor(mac:String,id:String|Nil=nil):Interface::Sensor::Detail|Nil-instance-method","name":"sensor","doc":"return the specified sensor details","summary":"

return the specified sensor details

","abstract":false,"args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"args_string":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","args_html":"(mac : String, id : String | Nil = nil) : Interface::Sensor::Detail | Nil","location":{"filename":"src/xovis/sensor_api.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L54"},"def":{"name":"sensor","args":[{"name":"mac","external_name":"mac","restriction":"String"},{"name":"id","default_value":"nil","external_name":"id","restriction":"String | ::Nil"}],"return_type":"Interface::Sensor::Detail | ::Nil","visibility":"Public","body":"begin\n logger.debug do\n \"sensor mac: #{mac}, id: #{id} requested\"\n end\n if @mac == mac\n else\n return nil\n end\n if id\n else\n return nil\n end\n sensor, _, index_str = id.rpartition('-')\n if sensor.empty?\n return nil\n end\n index = index_str.to_i\n if sensors = @state[\"#{sensor}-counts\"]?\n sensors[index]?\n end\nrescue error\n logger.warn(exception: error) do\n \"checking for sensor\"\n end\n nil\nend"}},{"html_id":"sensors(type:String|Nil=nil,mac:String|Nil=nil,zone_id:String|Nil=nil):Array(Interface::Sensor::Detail)-instance-method","name":"sensors","doc":"return an array of sensor details\nzone_id can be ignored if location is unknown by the sensor provider\nmac_address can be used to grab data from a single device (basic grouping)","summary":"

return an array of sensor details zone_id can be ignored if location is unknown by the sensor provider mac_address can be used to grab data from a single device (basic grouping)

","abstract":false,"args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"args_string":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","args_html":"(type : String | Nil = nil, mac : String | Nil = nil, zone_id : String | Nil = nil) : Array(Interface::Sensor::Detail)","location":{"filename":"src/xovis/sensor_api.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L81"},"def":{"name":"sensors","args":[{"name":"type","default_value":"nil","external_name":"type","restriction":"String | ::Nil"},{"name":"mac","default_value":"nil","external_name":"mac","restriction":"String | ::Nil"},{"name":"zone_id","default_value":"nil","external_name":"zone_id","restriction":"String | ::Nil"}],"return_type":"Array(Interface::Sensor::Detail)","visibility":"Public","body":"begin\n logger.debug do\n \"sensors of type: #{type}, mac: #{mac}, zone_id: #{zone_id} requested\"\n end\n if mac && (mac != @mac)\n return NO_MATCH\n end\n if type\n else\n return @state.values.flatten.map do |__arg0|\n __arg0.as(Interface::Sensor::Detail)\n end\n end\n sensor_type = SensorType.parse(type)\n matches = [] of Array(Interface::Sensor::Detail)\n TYPES.each do |key, key_type|\n if key_type == sensor_type\n matches << @state[key].map do |__arg1|\n __arg1.as(Interface::Sensor::Detail)\n end\n end\n end\n matches.flatten\nrescue error\n logger.warn(exception: error) do\n \"searching for sensors\"\n end\n NO_MATCH\nend"}}],"types":[{"html_id":"drivers/Xovis/SensorAPI/SensorDetail","path":"Xovis/SensorAPI/SensorDetail.html","kind":"class","full_name":"Xovis::SensorAPI::SensorDetail","name":"SensorDetail","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Sensor/Detail","kind":"class","full_name":"PlaceOS::Driver::Interface::Sensor::Detail","name":"Detail"},{"html_id":"drivers/JSON/Serializable/Unmapped","kind":"module","full_name":"JSON::Serializable::Unmapped","name":"Unmapped"},{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L48"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"drivers/Xovis/SensorAPI","kind":"class","full_name":"Xovis::SensorAPI","name":"SensorAPI"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xovis/sensor_api.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L48"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32|Nil-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity","return_type":"Int32 | ::Nil","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32|Nil)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"args_string":"(capacity : Int32 | Nil)","args_html":"(capacity : Int32 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":49,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L49"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32 | ::Nil"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"first_entry:Int64|Nil-instance-method","name":"first_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@first_entry"}},{"html_id":"first_entry=(first_entry:Int64|Nil)-instance-method","name":"first_entry=","abstract":false,"args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"args_string":"(first_entry : Int64 | Nil)","args_html":"(first_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":50,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L50"},"def":{"name":"first_entry=","args":[{"name":"first_entry","external_name":"first_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@first_entry = first_entry"}},{"html_id":"last_entry:Int64|Nil-instance-method","name":"last_entry","abstract":false,"location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry","return_type":"Int64 | ::Nil","visibility":"Public","body":"@last_entry"}},{"html_id":"last_entry=(last_entry:Int64|Nil)-instance-method","name":"last_entry=","abstract":false,"args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"args_string":"(last_entry : Int64 | Nil)","args_html":"(last_entry : Int64 | Nil)","location":{"filename":"src/xovis/sensor_api.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xovis/sensor_api.cr#L51"},"def":{"name":"last_entry=","args":[{"name":"last_entry","external_name":"last_entry","restriction":"Int64 | ::Nil"}],"visibility":"Public","body":"@last_entry = last_entry"}}]}]}]},{"html_id":"drivers/XYSense","path":"XYSense.html","kind":"module","full_name":"XYSense","name":"XYSense","abstract":false,"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/XYSense/LocationService","path":"XYSense/LocationService.html","kind":"class","full_name":"XYSense::LocationService","name":"LocationService","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":6,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L6"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Locatable","kind":"module","full_name":"PlaceOS::Driver::Interface::Locatable","name":"Locatable"}],"namespace":{"html_id":"drivers/XYSense","kind":"module","full_name":"XYSense","name":"XYSense"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"check_ownership_of(mac_address:String):OwnershipMAC|Nil-instance-method","name":"check_ownership_of","doc":"return `nil` or `{\"location\": \"wireless\", \"assigned_to\": \"bob123\", \"mac_address\": \"abcd\"}`","summary":"

return nil or {"location": "wireless", "assigned_to": "bob123", "mac_address": "abcd"}

","abstract":false,"args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"args_string":"(mac_address : String) : OwnershipMAC | Nil","args_html":"(mac_address : String) : OwnershipMAC | Nil","location":{"filename":"src/xy_sense/location_service.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L187"},"def":{"name":"check_ownership_of","args":[{"name":"mac_address","external_name":"mac_address","restriction":"String"}],"return_type":"OwnershipMAC | ::Nil","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{mac_address}\"\nend\nnil\n"}},{"html_id":"device_locations(zone_id:String,location:String|Nil=nil)-instance-method","name":"device_locations","doc":"array of devices and their x, y coordinates","summary":"

array of devices and their x, y coordinates

","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"args_string":"(zone_id : String, location : String | Nil = nil)","args_html":"(zone_id : String, location : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":192,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L192"},"def":{"name":"device_locations","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"location","default_value":"nil","external_name":"location","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"searching locatable in zone #{zone_id}\"\nend\nif @zone_filter.includes?(zone_id)\nelse\n return [] of Nil\nend\n@occupancy_mappings[zone_id].compact_map do |space_name, space|\n capacity = space.details.capacity\n if capacity == 1\n if space.headcount > 0\n else\n next\n end\n if location.presence && (location != \"desk\")\n next\n end\n {location: :desk, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n else\n if location.presence && (location != \"area\")\n next\n end\n {location: :area, at_location: space.headcount, map_id: space_name, level: zone_id, capacity: capacity, xy_sense_space_id: space.space_id, xy_sense_status: space.status, xy_sense_collected: space.collected.to_unix, xy_sense_category: space.details.category}\n end\nend\n"}},{"html_id":"floor_subscriptions-instance-method","name":"floor_subscriptions","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":134,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L134"},"def":{"name":"floor_subscriptions","visibility":"Public","body":"@floor_subscriptions.keys"}},{"html_id":"level_state_change(zone_id:String,spaces:Array(Occupancy))-instance-method","name":"level_state_change","abstract":false,"args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"args_string":"(zone_id : String, spaces : Array(Occupancy))","args_html":"(zone_id : String, spaces : Array(Occupancy))","location":{"filename":"src/xy_sense/location_service.cr","line_number":157,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L157"},"def":{"name":"level_state_change","args":[{"name":"zone_id","external_name":"zone_id","restriction":"String"},{"name":"spaces","external_name":"spaces","restriction":"Array(Occupancy)"}],"visibility":"Public","body":"begin\n area_occupancy = {} of String => Occupancy\n spaces.each do |space|\n space.details = @space_details[space.space_id]\n space_name = space.details.name\n if space_name\n else\n logger.warn do\n \"missing space name for id #{space.details.id}\"\n end\n next\n end\n area_occupancy[space_name] = space\n end\n @occupancy_mappings[zone_id] = area_occupancy\n area_manager.update_available({zone_id})\nrescue error\n logger.error(exception: error) do\n \"error updating level #{zone_id} space changes\"\n end\nend"}},{"html_id":"locate_user(email:String|Nil=nil,username:String|Nil=nil)-instance-method","name":"locate_user","doc":"===================================\nLocatable Interface functions\n===================================","summary":"

=================================== Locatable Interface functions ===================================

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil)","args_html":"(email : String | Nil = nil, username : String | Nil = nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":177,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L177"},"def":{"name":"locate_user","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"visibility":"Public","body":"logger.debug do\n \"sensor incapable of locating #{email} or #{username}\"\nend\n[] of Nil\n"}},{"html_id":"macs_assigned_to(email:String|Nil=nil,username:String|Nil=nil):Array(String)-instance-method","name":"macs_assigned_to","doc":"return an array of MAC address strings\nlowercase with no seperation characters abcdeffd1234 etc","summary":"

return an array of MAC address strings lowercase with no seperation characters abcdeffd1234 etc

","abstract":false,"args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"args_string":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","args_html":"(email : String | Nil = nil, username : String | Nil = nil) : Array(String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":182,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L182"},"def":{"name":"macs_assigned_to","args":[{"name":"email","default_value":"nil","external_name":"email","restriction":"String | ::Nil"},{"name":"username","default_value":"nil","external_name":"username","restriction":"String | ::Nil"}],"return_type":"Array(String)","visibility":"Public","body":"logger.debug do\n \"sensor incapable of tracking #{email} or #{username}\"\nend\n[] of String\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":29,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L29"},"def":{"name":"on_update","visibility":"Public","body":"@floor_mappings = setting(Hash(String, NamedTuple(zone_id: String)), :floor_mappings)\n@zone_filter = @floor_mappings.map do |_, detail|\n detail[:zone_id]\nend\nschedule.clear\nschedule.every(30.minutes) do\n sync_floor_states\nend\n"}},{"html_id":"sync_floor_states-instance-method","name":"sync_floor_states","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":138,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L138"},"def":{"name":"sync_floor_states","visibility":"Public","body":"logger.debug do\n \"-- updating space details...\"\nend\ndetails = update_space_details\nlogger.debug do\n \"-- details:\\n#{details}\"\nend\nlogger.debug do\n \"-- grabbing floor details...\"\nend\nxy = xy_sense\n@change_lock.synchronize do\n floor_subscriptions.each do |zone_id|\n level_state_change(zone_id, xy.status(Array(Occupancy), zone_id))\n end\nend\nlogger.debug do\n \"-- floor states synced!\"\nend\n@occupancy_mappings\n"}},{"html_id":"update_space_details-instance-method","name":"update_space_details","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":79,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L79"},"def":{"name":"update_space_details","visibility":"Public","body":"@change_lock.synchronize do\n floors = xy_sense.status(Hash(String, FloorDetails), :floors)\n space_details = {} of String => SpaceDetails\n floors.each do |floor_id, floor|\n mapping = @floor_mappings[floor_id]?\n if mapping\n else\n next\n end\n floor.spaces.each do |space|\n space_details[space.id] = space\n end\n end\n @space_details = space_details\nend"}}],"types":[{"html_id":"drivers/XYSense/LocationService/FloorDetails","path":"XYSense/LocationService/FloorDetails.html","kind":"class","full_name":"XYSense::LocationService::FloorDetails","name":"FloorDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":40,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L40"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"doc":"===================================\nBindings into xy-sense data\n===================================","summary":"

=================================== Bindings into xy-sense data ===================================

","constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":41,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L41"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"floor_id:String-instance-method","name":"floor_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id","return_type":"String","visibility":"Public","body":"@floor_id"}},{"html_id":"floor_id=(floor_id:String)-instance-method","name":"floor_id=","abstract":false,"args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"args_string":"(floor_id : String)","args_html":"(floor_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":43,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L43"},"def":{"name":"floor_id=","args":[{"name":"floor_id","external_name":"floor_id","restriction":"String"}],"visibility":"Public","body":"@floor_id = floor_id"}},{"html_id":"floor_name:String-instance-method","name":"floor_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name","return_type":"String","visibility":"Public","body":"@floor_name"}},{"html_id":"floor_name=(floor_name:String)-instance-method","name":"floor_name=","abstract":false,"args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"args_string":"(floor_name : String)","args_html":"(floor_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":44,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L44"},"def":{"name":"floor_name=","args":[{"name":"floor_name","external_name":"floor_name","restriction":"String"}],"visibility":"Public","body":"@floor_name = floor_name"}},{"html_id":"location_id:String-instance-method","name":"location_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id","return_type":"String","visibility":"Public","body":"@location_id"}},{"html_id":"location_id=(location_id:String)-instance-method","name":"location_id=","abstract":false,"args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"args_string":"(location_id : String)","args_html":"(location_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":45,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L45"},"def":{"name":"location_id=","args":[{"name":"location_id","external_name":"location_id","restriction":"String"}],"visibility":"Public","body":"@location_id = location_id"}},{"html_id":"location_name:String-instance-method","name":"location_name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name","return_type":"String","visibility":"Public","body":"@location_name"}},{"html_id":"location_name=(location_name:String)-instance-method","name":"location_name=","abstract":false,"args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"args_string":"(location_name : String)","args_html":"(location_name : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L46"},"def":{"name":"location_name=","args":[{"name":"location_name","external_name":"location_name","restriction":"String"}],"visibility":"Public","body":"@location_name = location_name"}},{"html_id":"spaces:Array(SpaceDetails)-instance-method","name":"spaces","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces","return_type":"Array(SpaceDetails)","visibility":"Public","body":"@spaces"}},{"html_id":"spaces=(spaces:Array(SpaceDetails))-instance-method","name":"spaces=","abstract":false,"args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"args_string":"(spaces : Array(SpaceDetails))","args_html":"(spaces : Array(SpaceDetails))","location":{"filename":"src/xy_sense/location_service.cr","line_number":48,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L48"},"def":{"name":"spaces=","args":[{"name":"spaces","external_name":"spaces","restriction":"Array(SpaceDetails)"}],"visibility":"Public","body":"@spaces = spaces"}}]},{"html_id":"drivers/XYSense/LocationService/Occupancy","path":"XYSense/LocationService/Occupancy.html","kind":"class","full_name":"XYSense::LocationService::Occupancy","name":"Occupancy","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":60,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L60"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L61"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"collected:Time-instance-method","name":"collected","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected","return_type":"Time","visibility":"Public","body":"@collected"}},{"html_id":"collected=(collected:Time)-instance-method","name":"collected=","abstract":false,"args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"args_string":"(collected : Time)","args_html":"(collected : Time)","location":{"filename":"src/xy_sense/location_service.cr","line_number":68,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L68"},"def":{"name":"collected=","args":[{"name":"collected","external_name":"collected","restriction":"Time"}],"visibility":"Public","body":"@collected = collected"}},{"html_id":"details:SpaceDetails-instance-method","name":"details","abstract":false,"def":{"name":"details","return_type":"SpaceDetails","visibility":"Public","body":"if (__temp_1 = @details).nil?\n ::raise(::NilAssertionError.new(\"XYSense::LocationService::Occupancy#details cannot be nil\"))\nelse\n __temp_1\nend"}},{"html_id":"details=(details:SpaceDetails)-instance-method","name":"details=","abstract":false,"args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"args_string":"(details : SpaceDetails)","args_html":"(details : SpaceDetails)","location":{"filename":"src/xy_sense/location_service.cr","line_number":71,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L71"},"def":{"name":"details=","args":[{"name":"details","external_name":"details","restriction":"SpaceDetails"}],"visibility":"Public","body":"@details = details"}},{"html_id":"details?:SpaceDetails|Nil-instance-method","name":"details?","abstract":false,"def":{"name":"details?","return_type":"SpaceDetails | ::Nil","visibility":"Public","body":"@details"}},{"html_id":"headcount:Int32-instance-method","name":"headcount","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount","return_type":"Int32","visibility":"Public","body":"@headcount"}},{"html_id":"headcount=(headcount:Int32)-instance-method","name":"headcount=","abstract":false,"args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"args_string":"(headcount : Int32)","args_html":"(headcount : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":64,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L64"},"def":{"name":"headcount=","args":[{"name":"headcount","external_name":"headcount","restriction":"Int32"}],"visibility":"Public","body":"@headcount = headcount"}},{"html_id":"space_id:String-instance-method","name":"space_id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id","return_type":"String","visibility":"Public","body":"@space_id"}},{"html_id":"space_id=(space_id:String)-instance-method","name":"space_id=","abstract":false,"args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"args_string":"(space_id : String)","args_html":"(space_id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":65,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L65"},"def":{"name":"space_id=","args":[{"name":"space_id","external_name":"space_id","restriction":"String"}],"visibility":"Public","body":"@space_id = space_id"}},{"html_id":"status:String-instance-method","name":"status","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L63"},"def":{"name":"status","return_type":"String","visibility":"Public","body":"@status"}},{"html_id":"status=(status:String)-instance-method","name":"status=","abstract":false,"args":[{"name":"status","external_name":"status","restriction":"String"}],"args_string":"(status : String)","args_html":"(status : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":63,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L63"},"def":{"name":"status=","args":[{"name":"status","external_name":"status","restriction":"String"}],"visibility":"Public","body":"@status = status"}}]},{"html_id":"drivers/XYSense/LocationService/SpaceDetails","path":"XYSense/LocationService/SpaceDetails.html","kind":"class","full_name":"XYSense::LocationService::SpaceDetails","name":"SpaceDetails","abstract":false,"superclass":{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/xy_sense/location_service.cr","line_number":51,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L51"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"drivers/JSON/Serializable","kind":"module","full_name":"JSON::Serializable","name":"Serializable"}],"extended_modules":[{"html_id":"drivers/JSON/Schema","kind":"module","full_name":"JSON::Schema","name":"Schema"}],"namespace":{"html_id":"drivers/XYSense/LocationService","kind":"class","full_name":"XYSense::LocationService","name":"LocationService"},"constructors":[{"html_id":"new(pull:JSON::PullParser)-class-method","name":"new","abstract":false,"args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"args_string":"(pull : JSON::PullParser)","args_html":"(pull : JSON::PullParser)","location":{"filename":"src/xy_sense/location_service.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L52"},"def":{"name":"new","args":[{"name":"pull","external_name":"pull","restriction":"::JSON::PullParser"}],"visibility":"Public","body":"new_from_json_pull_parser(pull)"}}],"instance_methods":[{"html_id":"capacity:Int32-instance-method","name":"capacity","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity","return_type":"Int32","visibility":"Public","body":"@capacity"}},{"html_id":"capacity=(capacity:Int32)-instance-method","name":"capacity=","abstract":false,"args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"args_string":"(capacity : Int32)","args_html":"(capacity : Int32)","location":{"filename":"src/xy_sense/location_service.cr","line_number":56,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L56"},"def":{"name":"capacity=","args":[{"name":"capacity","external_name":"capacity","restriction":"Int32"}],"visibility":"Public","body":"@capacity = capacity"}},{"html_id":"category:String-instance-method","name":"category","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L57"},"def":{"name":"category","return_type":"String","visibility":"Public","body":"@category"}},{"html_id":"category=(category:String)-instance-method","name":"category=","abstract":false,"args":[{"name":"category","external_name":"category","restriction":"String"}],"args_string":"(category : String)","args_html":"(category : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":57,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L57"},"def":{"name":"category=","args":[{"name":"category","external_name":"category","restriction":"String"}],"visibility":"Public","body":"@category = category"}},{"html_id":"id:String-instance-method","name":"id","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L54"},"def":{"name":"id","return_type":"String","visibility":"Public","body":"@id"}},{"html_id":"id=(id:String)-instance-method","name":"id=","abstract":false,"args":[{"name":"id","external_name":"id","restriction":"String"}],"args_string":"(id : String)","args_html":"(id : String)","location":{"filename":"src/xy_sense/location_service.cr","line_number":54,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L54"},"def":{"name":"id=","args":[{"name":"id","external_name":"id","restriction":"String"}],"visibility":"Public","body":"@id = id"}},{"html_id":"name:String|Nil-instance-method","name":"name","abstract":false,"location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L55"},"def":{"name":"name","return_type":"String | ::Nil","visibility":"Public","body":"@name"}},{"html_id":"name=(name:String|Nil)-instance-method","name":"name=","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"args_string":"(name : String | Nil)","args_html":"(name : String | Nil)","location":{"filename":"src/xy_sense/location_service.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/xy_sense/location_service.cr#L55"},"def":{"name":"name=","args":[{"name":"name","external_name":"name","restriction":"String | ::Nil"}],"visibility":"Public","body":"@name = name"}}]}]}]},{"html_id":"drivers/Zencontrol","path":"Zencontrol.html","kind":"module","full_name":"Zencontrol","name":"Zencontrol","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI","path":"Zencontrol/AdvancedTPI.html","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ERROR_CODES","name":"ERROR_CODES","value":"{1_u8 => \"The checksum check failed\", 2_u8 => \"A short on the DALI line was detected\", 3_u8 => \"A receive error occured\", 4_u8 => \"The command in the request is unrecognised\", 176_u8 => \"The command requested relies on a paid feature that hasn't been purchsed\", 177_u8 => \"Invalid arguments supplied for the given command in the re quest\", 178_u8 => \"The command couldn't be processed\", 179_u8 => \"The queue or buffer that's required to process the command in the request\\n is full or broken\", 180_u8 => \"The command in the request may stream multiple responses back, but this\\n feature isn't available for some reason\", 181_u8 => \"The DALI related request couldn't be processed due to an error\", 182_u8 => \"There are an insufficient number of the required resource remaining service\\n the request\", 183_u8 => \"An unexpected result occurred\"}"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L61"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":103,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L103"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(170_u8, area_id.to_u8)\n"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":81,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L81"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"area_id = (((area.as(Area)).id.as(UInt32)).clamp(0, 191)) + 64\nbasic_request(173_u8, area_id.to_u8)\n"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"transport.tokenizer = Tokenizer.new do |io|\n bytes = io.peek\n logger.debug do\n \"Received: #{bytes.hexstring}\"\n end\n bytes.size < 3 ? 0 : (bytes[2].to_i + 4)\nend\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":37,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L37"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :api_version)) || 4_u8"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":187,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L187"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\nio = IO::Memory.new(data)\nresponse = io.read_bytes(ResponseFrame)\ncase response.type\nwhen .okay?, .no_answer?\nwhen .answer?\n if (request = task.try(&.request_payload)) && (request.sequence == response.sequence)\n case request.command\n when 173_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[area.to_s] = response.bytes[0]\n when 170_u8\n area = Area.new((request.address - 64_u8).to_u32)\n self[(area.append(\"level\")).to_s] = response.bytes[0]\n else\n logger.debug do\n \"unknown answer for #{request.command.to_s(16)}\\n - req: #{request.to_slice.hexstring}\\n - resp: #{response.to_slice.hexstring}\"\n end\n end\n end\nwhen .error?\n error_code = response.bytes[0]\n error_message = ERROR_CODES[error_code]?\n logger.error do\n \"request failed with code #{error_code}, message: #{error_message}\"\n end\n return task.try(&.abort(error_message))\nend\nif request = task.try(&.request_payload)\n if request.sequence == response.sequence\n return task.try(&.success)\n else\n return\n end\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":89,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L89"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u32\nbasic_request(162_u8, area_id.to_u8, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L70"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\narea_id = area.id.as(UInt32)\nif area_id == 255_u32\nelse\n area_id = (area_id.clamp(0, 191)) + 64\nend\nself[area.to_s] = scene\nbasic_request(161_u8, area_id.to_u8, scene)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":55,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L55"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/AdvancedTPI/Area","path":"Zencontrol/AdvancedTPI/Area.html","kind":"alias","full_name":"Zencontrol::AdvancedTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"}},{"html_id":"drivers/Zencontrol/AdvancedTPI/BasicRequest","path":"Zencontrol/AdvancedTPI/BasicRequest.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::BasicRequest","name":"BasicRequest","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::BasicRequest]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"basic\", name: version, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: command, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: address, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bitfield\", name: 28, cls: Zencontrol::AdvancedTPI::BasicRequest, onlyif: nil, verify: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: nil, value: -> do\n (((((version ^ sequence) ^ command) ^ address) ^ ((data >> 16) & 255).to_u8) ^ ((data >> 8) & 255).to_u8) ^ (data & 255).to_u8\nend}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":114,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L114"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"address:UInt8-instance-method","name":"address","abstract":false,"def":{"name":"address","return_type":"UInt8","visibility":"Public","body":"@address"}},{"html_id":"address=(address:UInt8)-instance-method","name":"address=","abstract":false,"args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"args_string":"(address : UInt8)","args_html":"(address : UInt8)","def":{"name":"address=","args":[{"name":"address","external_name":"address","restriction":"UInt8"}],"visibility":"Public","body":"@address = address"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"command:UInt8-instance-method","name":"command","abstract":false,"def":{"name":"command","return_type":"UInt8","visibility":"Public","body":"@command"}},{"html_id":"command=(command:UInt8)-instance-method","name":"command=","abstract":false,"args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"args_string":"(command : UInt8)","args_html":"(command : UInt8)","def":{"name":"command=","args":[{"name":"command","external_name":"command","restriction":"UInt8"}],"visibility":"Public","body":"@command = command"}},{"html_id":"data:UInt32-instance-method","name":"data","abstract":false,"def":{"name":"data","return_type":"UInt32","visibility":"Public","body":"@data"}},{"html_id":"data=(data:UInt32)-instance-method","name":"data=","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"args_string":"(data : UInt32)","args_html":"(data : UInt32)","def":{"name":"data=","args":[{"name":"data","external_name":"data","restriction":"UInt32"}],"visibility":"Public","body":"@data = data"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"version:UInt8-instance-method","name":"version","abstract":false,"def":{"name":"version","return_type":"UInt8","visibility":"Public","body":"@version"}},{"html_id":"version=(version:UInt8)-instance-method","name":"version=","abstract":false,"args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"args_string":"(version : UInt8)","args_html":"(version : UInt8)","def":{"name":"version=","args":[{"name":"version","external_name":"version","restriction":"UInt8"}],"visibility":"Public","body":"@version = version"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":113,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L113"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseFrame","path":"Zencontrol/AdvancedTPI/ResponseFrame.html","kind":"class","full_name":"Zencontrol::AdvancedTPI::ResponseFrame","name":"ResponseFrame","abstract":false,"superclass":{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},"ancestors":[{"html_id":"drivers/BinData","kind":"class","full_name":"BinData","name":"BinData"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"AFTER_DESERIALIZE","name":"AFTER_DESERIALIZE","value":"[] of Nil"},{"id":"BEFORE_SERIALIZE","name":"BEFORE_SERIALIZE","value":"[] of Nil"},{"id":"ENDIAN","name":"ENDIAN","value":"[\"big\"]"},{"id":"KLASS_NAME","name":"KLASS_NAME","value":"[Zencontrol::AdvancedTPI::ResponseFrame]"},{"id":"PARTS","name":"PARTS","value":"[{type: \"enum\", name: type, cls: UInt8, onlyif: nil, verify: nil, value: nil, enum_type: ResponseType}, {type: \"basic\", name: sequence, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"basic\", name: size, cls: UInt8, onlyif: nil, verify: nil, value: nil}, {type: \"bytes\", name: bytes, cls: Bytes, onlyif: nil, verify: nil, length: -> do\n size\nend, value: nil}, {type: \"basic\", name: checksum, cls: UInt8, onlyif: nil, verify: -> do\n sum = (type.to_u8 ^ sequence) ^ size\n checksum == (bytes.reduce(sum) do |acc, i|\n i ^ acc\n end)\nend, value: nil}] of Nil"},{"id":"REMAINING","name":"REMAINING","value":"[] of Nil"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"class_methods":[{"html_id":"bit_fields-class-method","name":"bit_fields","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"bit_fields","visibility":"Public","body":"BinData.bit_fields.merge(@@bit_fields)"}}],"instance_methods":[{"html_id":"__format__:IO::ByteFormat-instance-method","name":"__format__","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":175,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L175"},"def":{"name":"__format__","return_type":"IO::ByteFormat","visibility":"Public","body":"IO::ByteFormat::BigEndian"}},{"html_id":"bytes:Bytes-instance-method","name":"bytes","abstract":false,"def":{"name":"bytes","return_type":"Bytes","visibility":"Public","body":"@bytes"}},{"html_id":"bytes=(bytes:Bytes)-instance-method","name":"bytes=","abstract":false,"args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"args_string":"(bytes : Bytes)","args_html":"(bytes : Bytes)","def":{"name":"bytes=","args":[{"name":"bytes","external_name":"bytes","restriction":"Bytes"}],"visibility":"Public","body":"@bytes = bytes"}},{"html_id":"checksum:UInt8-instance-method","name":"checksum","abstract":false,"def":{"name":"checksum","return_type":"UInt8","visibility":"Public","body":"@checksum"}},{"html_id":"checksum=(checksum:UInt8)-instance-method","name":"checksum=","abstract":false,"args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"args_string":"(checksum : UInt8)","args_html":"(checksum : UInt8)","def":{"name":"checksum=","args":[{"name":"checksum","external_name":"checksum","restriction":"UInt8"}],"visibility":"Public","body":"@checksum = checksum"}},{"html_id":"sequence:UInt8-instance-method","name":"sequence","abstract":false,"def":{"name":"sequence","return_type":"UInt8","visibility":"Public","body":"@sequence"}},{"html_id":"sequence=(sequence:UInt8)-instance-method","name":"sequence=","abstract":false,"args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"args_string":"(sequence : UInt8)","args_html":"(sequence : UInt8)","def":{"name":"sequence=","args":[{"name":"sequence","external_name":"sequence","restriction":"UInt8"}],"visibility":"Public","body":"@sequence = sequence"}},{"html_id":"size:UInt8-instance-method","name":"size","abstract":false,"def":{"name":"size","return_type":"UInt8","visibility":"Public","body":"@size"}},{"html_id":"size=(size:UInt8)-instance-method","name":"size=","abstract":false,"args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"args_string":"(size : UInt8)","args_html":"(size : UInt8)","def":{"name":"size=","args":[{"name":"size","external_name":"size","restriction":"UInt8"}],"visibility":"Public","body":"@size = size"}},{"html_id":"type:ResponseType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"ResponseType","visibility":"Public","body":"@type"}},{"html_id":"type=(type:ResponseType)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"args_string":"(type : ResponseType)","args_html":"(type : ResponseType)","def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"ResponseType"}],"visibility":"Public","body":"@type = type"}}],"macros":[{"html_id":"ashrae_dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ashrae_dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ashrae_dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Ashrae::DispatchProtocol = Ashrae::DispatchProtocol.new\n \n"}},{"html_id":"asn1_ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER = ASN1::BER.new\n \n"}},{"html_id":"asn1_ber_extended_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_extended_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_extended_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::ExtendedIdentifier = ASN1::BER::ExtendedIdentifier.new\n \n"}},{"html_id":"asn1_ber_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Identifier = ASN1::BER::Identifier.new\n \n"}},{"html_id":"asn1_ber_length(name,onlyif=nil,verify=nil,value=nil)-macro","name":"asn1_ber_length","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"asn1_ber_length","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : ASN1::BER::Length = ASN1::BER::Length.new\n \n"}},{"html_id":"ba_cnet_abort_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_abort_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_abort_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::AbortResponse = BACnet::AbortResponse.new\n \n"}},{"html_id":"ba_cnet_apdu_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_apdu_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_apdu_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::APDUIndicator = BACnet::APDUIndicator.new\n \n"}},{"html_id":"ba_cnet_bit_string(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_bit_string","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_bit_string","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::BitString = BACnet::BitString.new\n \n"}},{"html_id":"ba_cnet_complex_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck = BACnet::ComplexAck.new\n \n"}},{"html_id":"ba_cnet_complex_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_complex_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_complex_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ComplexAck::Segment = BACnet::ComplexAck::Segment.new\n \n"}},{"html_id":"ba_cnet_confirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest = BACnet::ConfirmedRequest.new\n \n"}},{"html_id":"ba_cnet_confirmed_request_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_confirmed_request_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_confirmed_request_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ConfirmedRequest::Segment = BACnet::ConfirmedRequest::Segment.new\n \n"}},{"html_id":"ba_cnet_data_link_indicator(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_data_link_indicator","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_data_link_indicator","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::DataLinkIndicator = BACnet::DataLinkIndicator.new\n \n"}},{"html_id":"ba_cnet_date(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_date","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_date","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Date = BACnet::Date.new\n \n"}},{"html_id":"ba_cnet_error_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_error_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_error_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ErrorResponse = BACnet::ErrorResponse.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI = BACnet::Message::IPv4::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::Address = BACnet::Message::IPv4::BVLCI::Address.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_bdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_bdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::BDTEntry = BACnet::Message::IPv4::BVLCI::BDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_i_pv4_bvlci_fdt_entry(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_i_pv4_bvlci_fdt_entry","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::IPv4::BVLCI::FDTEntry = BACnet::Message::IPv4::BVLCI::FDTEntry.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI = BACnet::Message::Secure::BVLCI.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_advertisement(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_advertisement","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_advertisement","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Advertisement = BACnet::Message::Secure::BVLCI::Advertisement.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_connect_details(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_connect_details","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_connect_details","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::ConnectDetails = BACnet::Message::Secure::BVLCI::ConnectDetails.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header = BACnet::Message::Secure::BVLCI::Header.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_header_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_header_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_header_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Header::Proprietary = BACnet::Message::Secure::BVLCI::Header::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_proprietary(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_proprietary","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_proprietary","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Proprietary = BACnet::Message::Secure::BVLCI::Proprietary.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result = BACnet::Message::Secure::BVLCI::Result.new\n \n"}},{"html_id":"ba_cnet_message_secure_bvlci_result_error(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_message_secure_bvlci_result_error","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_message_secure_bvlci_result_error","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Message::Secure::BVLCI::Result::Error = BACnet::Message::Secure::BVLCI::Result::Error.new\n \n"}},{"html_id":"ba_cnet_npdu(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU = BACnet::NPDU.new\n \n"}},{"html_id":"ba_cnet_npdu_destination(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_destination","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_destination","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Destination = BACnet::NPDU::Destination.new\n \n"}},{"html_id":"ba_cnet_npdu_source(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_npdu_source","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_npdu_source","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::NPDU::Source = BACnet::NPDU::Source.new\n \n"}},{"html_id":"ba_cnet_object(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Object = BACnet::Object.new\n \n"}},{"html_id":"ba_cnet_object_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_object_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_object_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::ObjectIdentifier = BACnet::ObjectIdentifier.new\n \n"}},{"html_id":"ba_cnet_property_identifier(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_property_identifier","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_property_identifier","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::PropertyIdentifier = BACnet::PropertyIdentifier.new\n \n"}},{"html_id":"ba_cnet_reject_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_reject_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_reject_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::RejectResponse = BACnet::RejectResponse.new\n \n"}},{"html_id":"ba_cnet_segment_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck = BACnet::SegmentAck.new\n \n"}},{"html_id":"ba_cnet_segment_ack_segment(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_segment_ack_segment","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_segment_ack_segment","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SegmentAck::Segment = BACnet::SegmentAck::Segment.new\n \n"}},{"html_id":"ba_cnet_simple_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_simple_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_simple_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::SimpleAck = BACnet::SimpleAck.new\n \n"}},{"html_id":"ba_cnet_time(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_time","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_time","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::Time = BACnet::Time.new\n \n"}},{"html_id":"ba_cnet_unconfirmed_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ba_cnet_unconfirmed_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ba_cnet_unconfirmed_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BACnet::UnconfirmedRequest = BACnet::UnconfirmedRequest.new\n \n"}},{"html_id":"ber(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ber","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ber","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : BER = BER.new\n \n"}},{"html_id":"company3_m_displays_wall_display_request_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_request_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_request_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::RequestPacket = Company3M::Displays::WallDisplay::RequestPacket.new\n \n"}},{"html_id":"company3_m_displays_wall_display_response_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"company3_m_displays_wall_display_response_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"company3_m_displays_wall_display_response_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Company3M::Displays::WallDisplay::ResponsePacket = Company3M::Displays::WallDisplay::ResponsePacket.new\n \n"}},{"html_id":"dispatch_protocol(name,onlyif=nil,verify=nil,value=nil)-macro","name":"dispatch_protocol","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"dispatch_protocol","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : DispatchProtocol = DispatchProtocol.new\n \n"}},{"html_id":"knx_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Address = KNX::Address.new\n \n"}},{"html_id":"knx_cemi(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cemi","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cemi","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CEMI = KNX::CEMI.new\n \n"}},{"html_id":"knx_connect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectRequest = KNX::ConnectRequest.new\n \n"}},{"html_id":"knx_connect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectResponse = KNX::ConnectResponse.new\n \n"}},{"html_id":"knx_connect_state_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateRequest = KNX::ConnectStateRequest.new\n \n"}},{"html_id":"knx_connect_state_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_connect_state_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_connect_state_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ConnectStateResponse = KNX::ConnectStateResponse.new\n \n"}},{"html_id":"knx_crd(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_crd","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_crd","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRD = KNX::CRD.new\n \n"}},{"html_id":"knx_cri(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_cri","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_cri","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::CRI = KNX::CRI.new\n \n"}},{"html_id":"knx_device_info(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_device_info","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_device_info","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DeviceInfo = KNX::DeviceInfo.new\n \n"}},{"html_id":"knx_dib(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_dib","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_dib","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DIB = KNX::DIB.new\n \n"}},{"html_id":"knx_disconnect_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectRequest = KNX::DisconnectRequest.new\n \n"}},{"html_id":"knx_disconnect_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_disconnect_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_disconnect_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::DisconnectResponse = KNX::DisconnectResponse.new\n \n"}},{"html_id":"knx_group_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress = KNX::GroupAddress.new\n \n"}},{"html_id":"knx_group_address2_level(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_group_address2_level","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_group_address2_level","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::GroupAddress2Level = KNX::GroupAddress2Level.new\n \n"}},{"html_id":"knx_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header = KNX::Header.new\n \n"}},{"html_id":"knx_header_timer(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_timer","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_timer","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Timer = KNX::Header::Timer.new\n \n"}},{"html_id":"knx_header_wrapper(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_header_wrapper","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_header_wrapper","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::Header::Wrapper = KNX::Header::Wrapper.new\n \n"}},{"html_id":"knx_hpai(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_hpai","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_hpai","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::HPAI = KNX::HPAI.new\n \n"}},{"html_id":"knx_individual_address(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_individual_address","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_individual_address","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::IndividualAddress = KNX::IndividualAddress.new\n \n"}},{"html_id":"knx_information_block(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_information_block","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_information_block","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::InformationBlock = KNX::InformationBlock.new\n \n"}},{"html_id":"knx_object_server_connection_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_connection_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_connection_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ConnectionHeader = KNX::ObjectServer::ConnectionHeader.new\n \n"}},{"html_id":"knx_object_server_datagram(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_datagram","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_datagram","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Datagram = KNX::ObjectServer::Datagram.new\n \n"}},{"html_id":"knx_object_server_item(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_item","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_item","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::Item = KNX::ObjectServer::Item.new\n \n"}},{"html_id":"knx_object_server_object_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_object_server_object_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_object_server_object_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ObjectServer::ObjectHeader = KNX::ObjectServer::ObjectHeader.new\n \n"}},{"html_id":"knx_search_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchRequest = KNX::SearchRequest.new\n \n"}},{"html_id":"knx_search_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_search_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_search_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SearchResponse = KNX::SearchResponse.new\n \n"}},{"html_id":"knx_service_family(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_service_family","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_service_family","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::ServiceFamily = KNX::ServiceFamily.new\n \n"}},{"html_id":"knx_supported_services(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_supported_services","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_supported_services","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::SupportedServices = KNX::SupportedServices.new\n \n"}},{"html_id":"knx_tunnel_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelRequest = KNX::TunnelRequest.new\n \n"}},{"html_id":"knx_tunnel_response(name,onlyif=nil,verify=nil,value=nil)-macro","name":"knx_tunnel_response","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"knx_tunnel_response","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : KNX::TunnelResponse = KNX::TunnelResponse.new\n \n"}},{"html_id":"mqtt_v3_ack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_ack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_ack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Ack = MQTT::V3::Ack.new\n \n"}},{"html_id":"mqtt_v3_connack(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connack","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connack","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connack = MQTT::V3::Connack.new\n \n"}},{"html_id":"mqtt_v3_connect(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_connect","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_connect","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Connect = MQTT::V3::Connect.new\n \n"}},{"html_id":"mqtt_v3_empty_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_empty_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_empty_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::EmptyPacket = MQTT::V3::EmptyPacket.new\n \n"}},{"html_id":"mqtt_v3_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Header = MQTT::V3::Header.new\n \n"}},{"html_id":"mqtt_v3_publish(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_publish","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_publish","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Publish = MQTT::V3::Publish.new\n \n"}},{"html_id":"mqtt_v3_sub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_sub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_sub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::SubTopic = MQTT::V3::SubTopic.new\n \n"}},{"html_id":"mqtt_v3_suback(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_suback","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_suback","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Suback = MQTT::V3::Suback.new\n \n"}},{"html_id":"mqtt_v3_subscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_subscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_subscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Subscribe = MQTT::V3::Subscribe.new\n \n"}},{"html_id":"mqtt_v3_unsub_topic(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsub_topic","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsub_topic","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::UnsubTopic = MQTT::V3::UnsubTopic.new\n \n"}},{"html_id":"mqtt_v3_unsubscribe(name,onlyif=nil,verify=nil,value=nil)-macro","name":"mqtt_v3_unsubscribe","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"mqtt_v3_unsubscribe","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : MQTT::V3::Unsubscribe = MQTT::V3::Unsubscribe.new\n \n"}},{"html_id":"ntlm_authenticate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate = NTLM::Authenticate.new\n \n"}},{"html_id":"ntlm_authenticate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::DomainLoc = NTLM::Authenticate::DomainLoc.new\n \n"}},{"html_id":"ntlm_authenticate_lm_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_lm_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_lm_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::LmResponseLoc = NTLM::Authenticate::LmResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_nt_response_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_nt_response_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_nt_response_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::NtResponseLoc = NTLM::Authenticate::NtResponseLoc.new\n \n"}},{"html_id":"ntlm_authenticate_session_key_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_session_key_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_session_key_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::SessionKeyLoc = NTLM::Authenticate::SessionKeyLoc.new\n \n"}},{"html_id":"ntlm_authenticate_user_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_user_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_user_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::UserLoc = NTLM::Authenticate::UserLoc.new\n \n"}},{"html_id":"ntlm_authenticate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::Version = NTLM::Authenticate::Version.new\n \n"}},{"html_id":"ntlm_authenticate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_authenticate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_authenticate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Authenticate::WorkstationLoc = NTLM::Authenticate::WorkstationLoc.new\n \n"}},{"html_id":"ntlm_av_pair(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_av_pair","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_av_pair","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::AVPair = NTLM::AVPair.new\n \n"}},{"html_id":"ntlm_challenge(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge = NTLM::Challenge.new\n \n"}},{"html_id":"ntlm_challenge_domain_info_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_info_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_info_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainInfoLoc = NTLM::Challenge::DomainInfoLoc.new\n \n"}},{"html_id":"ntlm_challenge_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::DomainLoc = NTLM::Challenge::DomainLoc.new\n \n"}},{"html_id":"ntlm_challenge_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_challenge_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_challenge_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Challenge::Version = NTLM::Challenge::Version.new\n \n"}},{"html_id":"ntlm_header(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_header","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_header","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Header = NTLM::Header.new\n \n"}},{"html_id":"ntlm_negotiate(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate = NTLM::Negotiate.new\n \n"}},{"html_id":"ntlm_negotiate_domain_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_domain_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_domain_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::DomainLoc = NTLM::Negotiate::DomainLoc.new\n \n"}},{"html_id":"ntlm_negotiate_version(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_version","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_version","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::Version = NTLM::Negotiate::Version.new\n \n"}},{"html_id":"ntlm_negotiate_workstation_loc(name,onlyif=nil,verify=nil,value=nil)-macro","name":"ntlm_negotiate_workstation_loc","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"ntlm_negotiate_workstation_loc","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : NTLM::Negotiate::WorkstationLoc = NTLM::Negotiate::WorkstationLoc.new\n \n"}},{"html_id":"sony_camera_visca_packet(name,onlyif=nil,verify=nil,value=nil)-macro","name":"sony_camera_visca_packet","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"sony_camera_visca_packet","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Sony::Camera::VISCA::Packet = Sony::Camera::VISCA::Packet.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_basic_request(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_basic_request","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_basic_request","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::BasicRequest = Zencontrol::AdvancedTPI::BasicRequest.new\n \n"}},{"html_id":"zencontrol_advanced_tpi_response_frame(name,onlyif=nil,verify=nil,value=nil)-macro","name":"zencontrol_advanced_tpi_response_frame","abstract":false,"args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"args_string":"(name, onlyif = nil, verify = nil, value = nil)","args_html":"(name, onlyif = nil, verify = nil, value = nil)","location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":174,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L174"},"def":{"name":"zencontrol_advanced_tpi_response_frame","args":[{"name":"name","external_name":"name","restriction":""},{"name":"onlyif","default_value":"nil","external_name":"onlyif","restriction":""},{"name":"verify","default_value":"nil","external_name":"verify","restriction":""},{"name":"value","default_value":"nil","external_name":"value","restriction":""}],"visibility":"Public","body":" field \n{{ name.id }}\n : Zencontrol::AdvancedTPI::ResponseFrame = Zencontrol::AdvancedTPI::ResponseFrame.new\n \n"}}]},{"html_id":"drivers/Zencontrol/AdvancedTPI/ResponseType","path":"Zencontrol/AdvancedTPI/ResponseType.html","kind":"enum","full_name":"Zencontrol::AdvancedTPI::ResponseType","name":"ResponseType","abstract":false,"ancestors":[{"html_id":"drivers/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"drivers/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"drivers/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/advanced_tpi.cr","line_number":167,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L167"}],"repository_name":"drivers","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Okay","name":"Okay","value":"160"},{"id":"Answer","name":"Answer","value":"161"},{"id":"NoAnswer","name":"NoAnswer","value":"162"},{"id":"Error","name":"Error","value":"163"}],"namespace":{"html_id":"drivers/Zencontrol/AdvancedTPI","kind":"class","full_name":"Zencontrol::AdvancedTPI","name":"AdvancedTPI"},"instance_methods":[{"html_id":"answer?-instance-method","name":"answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":169,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L169"},"def":{"name":"answer?","visibility":"Public","body":"self == Answer"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":171,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L171"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"no_answer?-instance-method","name":"no_answer?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":170,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L170"},"def":{"name":"no_answer?","visibility":"Public","body":"self == NoAnswer"}},{"html_id":"okay?-instance-method","name":"okay?","abstract":false,"location":{"filename":"src/zencontrol/advanced_tpi.cr","line_number":168,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/advanced_tpi.cr#L168"},"def":{"name":"okay?","visibility":"Public","body":"self == Okay"}}]}]},{"html_id":"drivers/Zencontrol/ClassicTPI","path":"Zencontrol/ClassicTPI.html","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI","abstract":false,"superclass":{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},"ancestors":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"},{"html_id":"drivers/PlaceOS/Driver","kind":"class","full_name":"PlaceOS::Driver","name":"Driver"},{"html_id":"drivers/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"drivers/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":7,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L7"}],"repository_name":"drivers","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"BROADCAST","name":"BROADCAST","value":"Bytes[255, 255, 255, 255, 255, 255]"},{"id":"LEVEL_PERCENTAGE","name":"LEVEL_PERCENTAGE","value":"255 / 100"}],"included_modules":[{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Level","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Level","name":"Level"},{"html_id":"drivers/PlaceOS/Driver/Interface/Lighting/Scene","kind":"module","full_name":"PlaceOS::Driver::Interface::Lighting::Scene","name":"Scene"}],"namespace":{"html_id":"drivers/Zencontrol","kind":"module","full_name":"Zencontrol","name":"Zencontrol"},"class_methods":[{"html_id":"driver_interface:String-class-method","name":"driver_interface","abstract":false,"def":{"name":"driver_interface","return_type":"String","visibility":"Public","body":"if (__temp_1 = @@driver_interface).nil?\n @@driver_interface = ((JSON.parse(KlassExecutor.driver_interface))[\"interface\"].to_json)\nelse\n __temp_1\nend"}}],"instance_methods":[{"html_id":"light_level(area:UInt32,level:Float64)-instance-method","name":"light_level","doc":"Using direct command","summary":"

Using direct command

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"args_string":"(area : UInt32, level : Float64)","args_html":"(area : UInt32, level : Float64)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":52,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L52"},"def":{"name":"light_level","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"level","external_name":"level","restriction":"Float64"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_level(level, area)\n"}},{"html_id":"lighting_level?(area:Area|Nil=nil)-instance-method","name":"lighting_level?","doc":"return the current level","summary":"

return the current level

","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":88,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L88"},"def":{"name":"lighting_level?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[(area.append(\"level\")).to_s]?\nend"}},{"html_id":"lighting_scene?(area:Area|Nil=nil)-instance-method","name":"lighting_scene?","abstract":false,"args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"args_string":"(area : Area | Nil = nil)","args_html":"(area : Area | Nil = nil)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":70,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L70"},"def":{"name":"lighting_scene?","args":[{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"}],"visibility":"Public","body":"if area\n self[area.to_s]?\nend"}},{"html_id":"on_load-instance-method","name":"on_load","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":23,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L23"},"def":{"name":"on_load","visibility":"Public","body":"queue.wait = false\non_update\n"}},{"html_id":"on_update-instance-method","name":"on_update","abstract":false,"location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":34,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L34"},"def":{"name":"on_update","visibility":"Public","body":"@version = (setting?(UInt8, :version)) || 1_u8\ncontroller = setting?(String, :controller_id)\nif controller\n @controller = (controller.rjust(12, '0')).hexbytes\nelse\n @controller = BROADCAST\nend\n"}},{"html_id":"received(data,task)-instance-method","name":"received","abstract":false,"args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"args_string":"(data, task)","args_html":"(data, task)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":101,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L101"},"def":{"name":"received","args":[{"name":"data","external_name":"data","restriction":""},{"name":"task","external_name":"task","restriction":""}],"visibility":"Public","body":"logger.debug do\n \"Zencontrol sent: #{data.hexstring}\"\nend\ntask.try(&.success)\n"}},{"html_id":"set_lighting_level(level:Float64,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_level","doc":"level between 0.0 and 100.0, fade in milliseconds","summary":"

level between 0.0 and 100.0, fade in milliseconds

","abstract":false,"args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(level : Float64, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":76,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L76"},"def":{"name":"set_lighting_level","args":[{"name":"level","external_name":"level","restriction":"Float64"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nlevel = level.clamp(0.0, 100.0)\nlevel_actual = (level * LEVEL_PERCENTAGE).round.to_u8\narea_id = ((area.id.as(UInt32)).clamp(0, 127)).to_u8\nself[(area.append(\"level\")).to_s] = level\ndo_send(area_id, level_actual)\n"}},{"html_id":"set_lighting_scene(scene:UInt32,area:Area|Nil=nil,fade_time:UInt32=1000_u32)-instance-method","name":"set_lighting_scene","abstract":false,"args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"args_string":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","args_html":"(scene : UInt32, area : Area | Nil = nil, fade_time : UInt32 = 1000_u32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":61,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L61"},"def":{"name":"set_lighting_scene","args":[{"name":"scene","external_name":"scene","restriction":"UInt32"},{"name":"area","default_value":"nil","external_name":"area","restriction":"Area | ::Nil"},{"name":"fade_time","default_value":"1000_u32","external_name":"fade_time","restriction":"UInt32"}],"visibility":"Public","body":"area = area.as(Area)\nscene = (scene.clamp(0, 15)) + 16\narea_id = ((area.id.as(UInt32)).clamp(0, 127)) + 128\nself[area.to_s] = scene\ndo_send(area_id.to_u8, scene.to_u8)\n"}},{"html_id":"trigger(area:UInt32,scene:UInt32)-instance-method","name":"trigger","doc":"Using indirect commands","summary":"

Using indirect commands

","abstract":false,"args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"args_string":"(area : UInt32, scene : UInt32)","args_html":"(area : UInt32, scene : UInt32)","location":{"filename":"src/zencontrol/classic_tpi.cr","line_number":46,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L46"},"def":{"name":"trigger","args":[{"name":"area","external_name":"area","restriction":"UInt32"},{"name":"scene","external_name":"scene","restriction":"UInt32"}],"visibility":"Public","body":"area = Area.new(area)\nset_lighting_scene(scene, area)\n"}}],"types":[{"html_id":"drivers/Zencontrol/ClassicTPI/Area","path":"Zencontrol/ClassicTPI/Area.html","kind":"alias","full_name":"Zencontrol::ClassicTPI::Area","name":"Area","abstract":false,"locations":[{"filename":"src/zencontrol/classic_tpi.cr","line_number":10,"url":"https://github.com/PlaceOS/drivers/blob/89208627f72fe7ddfb08b09b2cef1a89bae5881a/src/zencontrol/classic_tpi.cr#L10"}],"repository_name":"drivers","program":false,"enum":false,"alias":true,"aliased":"PlaceOS::Driver::Interface::Lighting::Area","aliased_html":"PlaceOS::Driver::Interface::Lighting::Area","const":false,"namespace":{"html_id":"drivers/Zencontrol/ClassicTPI","kind":"class","full_name":"Zencontrol::ClassicTPI","name":"ClassicTPI"}}]}]}]}}) \ No newline at end of file diff --git a/toplevel.html b/toplevel.html index 8005ff57d3..34ac40395f 100644 --- a/toplevel.html +++ b/toplevel.html @@ -7606,7 +7606,7 @@


@@ -7622,7 +7622,7 @@